Skip to content

Conversation

@NouddeBrouwer
Copy link

@NouddeBrouwer NouddeBrouwer commented Nov 24, 2025

hoi,

ik heb getCustomerData compleet gemaakt.

willen jullie heel aub mergen?

dank,
Noud de Brouwer
06 1987 3003

P.S. ik heb met deze code getest:

<?php

use Inserve\RoutITAPI\RoutITAPIClient;
use Inserve\RoutITAPI\Request\CustomerDataRequest;
use Inserve\RoutITAPI\Request\Enum\CustomerDataOrderByMember;

final class RoutITController
{
    private RoutITAPIClient $apiClient;

    public function __construct()
    {
        $this->apiClient = new RoutITAPIClient(
            baseUri: 'https://service-accept.grexx.today'
        );

        $this->apiClient->configure(
            '<USERNAME>',
            '<PASSWORD>',
            'interfaces/kpn/kpn_partners_acceptatieomgeving/<ID>'
        );
    }
    public function getCustomerData(): void
    {
        $customerData = [];
        $skip = 0;
        $take = 100;    // Maximum 100 records per request
        echo "Fetching customer data...\n";
        $customerDataRequest = new CustomerDataRequest();
        $name = $_GET['name'] ?? null;
        if ($name !== null && $name !== "") {
            $customerDataRequest->setName($name);
        }
        $street = $_GET['street'] ?? null;
        if ($street !== null && $street !== "") {
            $customerDataRequest->setStreet($street);
        }
        $zipCode = $_GET['zip_code'] ?? null;
        if ($zipCode !== null && $zipCode !== "") {
            $customerDataRequest->setZipCode($zipCode);
        }
        $city = $_GET['city'] ?? null;
        if ($city !== null && $city !== "") {
            $customerDataRequest->setCity($city);
        }
        $countryCode = $_GET['country_code'] ?? null;
        if ($countryCode !== null && $countryCode !== "") {
            $customerDataRequest->setCountryCode($countryCode);
        }
        $phone1 = $_GET['phone1'] ?? null;
        if ($phone1 !== null && $phone1 !== "") {
            $customerDataRequest->setPhone1($phone1);
        }
        $phone2 = $_GET['phone2'] ?? null;
        if ($phone2 !== null && $phone2 !== "") {
            $customerDataRequest->setPhone2($phone2);
        }
        $debitNr = $_GET['debit_nr'] ?? null;
        if ($debitNr !== null && $debitNr !== "") {
            $customerDataRequest->setDebitNr($debitNr);
        }
        $externalId = $_GET['external_id'] ?? null;
        if ($externalId !== null && $externalId !== "") {
            $customerDataRequest->setExternalId($externalId);
        }
        $chamberOfCommerceNr = $_GET['chamber_of_commerce_nr'] ?? null;
        if ($chamberOfCommerceNr !== null && $chamberOfCommerceNr !== "") {
            $customerDataRequest->setChamberOfCommerceNr($chamberOfCommerceNr);
        }
        $vATNr = $_GET['v_a_t_nr'] ?? null;
        if ($vATNr !== null && $vATNr !== "") {
            $customerDataRequest->setVATNr($vATNr);
        }
        $includeInactiveCustomers = $_GET['include_inactive_customers'] ?? null;
        if ($includeInactiveCustomers !== null && $includeInactiveCustomers !== "") {
            $customerDataRequest->setIncludeInactiveCustomers($includeInactiveCustomers);
        }
        $orderByMemberString = $_GET['order_by_member'] ?? null;
        if ($orderByMemberString !== null) {
            $enum = CustomerDataOrderByMember::tryFrom($orderByMemberString);
            $customerDataRequest->setOrderByMember($enum);
        }
        $orderByDescending = $_GET['order_by_descending'] ?? null;
        if ($orderByDescending !== null) {
            $customerDataRequest->setOrderByDescending($orderByDescending);
        }
        do {
            $customerDataRequest->setSkip($skip);
            $customerDataRequest->setTake($take);
            $customerDataResponse = $this->apiClient->getCustomerData($customerDataRequest);
            $totalNumberOfRecords = $customerDataResponse?->getTotalNumberOfRecords() ?? 0;
            $customerDataPaginated = $customerDataResponse?->getCustomerData() ?? [];
            $customerData = array_merge($customerData, $customerDataPaginated);
            $skip += $take;
        } while ($skip < $totalNumberOfRecords);
        echo "Total Customers Found: " . count($customerData) . "\n";
        foreach ($customerData as $customer) {
            echo "Customer ID: " . $customer->getId() . "\n";
            echo "Name: " . $customer->getName() . "\n";
            echo "Street: " . $customer->getStreet() . "\n";
            echo "HouseNr: " . $customer->getHouseNr() . "\n";
            echo "HouseNrExtension: " . $customer->getHouseNrExtension() . "\n";
            echo "ZipCode: " . $customer->getZipCode() . "\n";
            echo "City: " . $customer->getCity() . "\n";
            echo "CountryCode: " . $customer->getCountryCode() . "\n";
            echo "Phone1: " . $customer->getPhone1() . "\n";
            echo "Phone2: " . $customer->getPhone2() . "\n";
            echo "DateCreated: " . $customer->getDateCreated()->format('Y-m-d') . "\n";
            echo "IsActive: " . $customer->getIsActive() . "\n";
            echo "Email: " . $customer->getEmail() . "\n";
            echo "Website: " . $customer->getWebsite() . "\n";
            echo "DebitNr: " . $customer->getDebitNr() . "\n";
            echo "LegalStatus: " . $customer->getLegalStatus() . "\n";
            echo "ExternalId: " . $customer->getExternalId() . "\n";
            echo "ChamberOfCommerceNr: " . $customer->getChamberOfCommerceNr() . "\n";
            echo "IBAN: " . $customer->getIBAN() . "\n";
            echo "BIC: " . $customer->getBIC() . "\n";
            echo "VATNr: " . $customer->getVATNr() . "\n";
            $firstBillingDate = $customer->getFirstBillingDate();
            echo "FirstBillingDate: " . ($firstBillingDate instanceof \DateTimeInterface ? $firstBillingDate->format('Y-m-d') : 'n.v.t.') . "\n";
            echo "KrnId: " . $customer->getKrnId() . "\n";
            echo "-----------------------\n";
        }
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant