phpexact-onlinepicqer-exact-php-client

excatonline php contact list won't show all complete information from the created user account


I tried to get data of "Contact" but i can't get these tags "AddressLine, City, FaxNumber, MiddelInitial, Note, State, ZipCode"

When i looked in ExactOnline i saw that under "Contact" Voornaam, Tussenvoegsel, Achternaam, Functienaam, Telefoon, Mobiel, E-mail and these are the thing I only get a output of (if its filled in).

Then I looked further and I saw "Relatie" over here are the parts i want but can't call it.

How can i fix this?

 ================================
           Exactonline         
           Connection          
 ================================

try {
        //Code
        for($i = 0; $i <1;) {
        //AddressLine2
        for($o = 0; $o <1;) {
        //BusinessPhone
        for($p = 0; $p <1;) {
        //City 
        for($q = 0; $q <1;) {
        //Country    
        for($w = 0; $w <1;) {
        //Created
        for($e = 0; $e <1;) {
        //Email
        for($r = 0; $r <1;) {
        //BusinessFax
        for($t = 0; $t <1;) {
        //FirstName
        for($y = 0; $y <1;) {
        //LastName
        for($u = 0; $u <1;) {
        //Initials
        for($a = 0; $a <1;) {
        //Mobile
        for($s = 0; $s <1;) {
        //Notes
        for($d = 0; $d <1;) {
        //Phone
        for($f = 0; $f <1;) {
        //State
        for($g = 0; $g <1;) {
        //Postcode
        for($h = 0; $h <1;) {

        $result = array();
        $contact = new \Picqer\Financials\Exact\Contact($connection);
        $result   = $contact->get();
        foreach ($result as $contact) {
        //Code
            ob_start();
            $i++;
            echo $result[]= $contact->Code;
            $filei[$i] = ob_get_contents();
            ob_end_clean();
            //echo $filei[$i]; //(Print available)
         //AddressLine2
            ob_start();
            $o++;
            echo $result[]= $contact->AddressLine2;
            $fileo[$o] = ob_get_contents();
            ob_end_clean();
            //echo $fileo[$o]; //(Print available)
          //BusinessPhone
            ob_start();
            $p++;
            echo $result[]= $contact->BusinessPhone;
            $filep[$p] = ob_get_contents();
            ob_end_clean();
            //echo $fileo[$p]; //(Print available)
          //City 
            ob_start();
            $q++;
            echo $result[]= $contact->City;
            $fileq[$q] = ob_get_contents();
            ob_end_clean();
            //echo $fileq[$q]; //(Print available)
          //Country
            ob_start();
            $w++;
            echo $result[]= $contact->Country;
            $filew[$w] = ob_get_contents();
            ob_end_clean();
            //echo $filea[$a]; //(Print available
         //Created
            ob_start();
            $e++;
            echo $result[]= $contact->Created;
            $filee[$e] = ob_get_contents();
            ob_end_clean();
            //echo $filee[$e]; //(Print available)  
        //Email
            ob_start();
            $r++;
            echo $result[]= $contact->Email;
            $filer[$r] = ob_get_contents();
            ob_end_clean();
            //echo $filer[$r]; //(Print available)
        //BusinessFax
            ob_start();
            $t++;
            echo $result[]= $contact->BusinessFax;
            $filet[$t] = ob_get_contents();
            ob_end_clean();
            //echo $filet[$t]; //(Print available)
       //FirstName
            ob_start();
            $y++;
            echo $result[]= $contact->FirstName;
            $filey[$y] = ob_get_contents();
            ob_end_clean();
            //echo $filey[$y]; //(Print available)
       //LastName
            ob_start();
            $u++;
            echo $result[]= $contact->LastName;
            $fileu[$u] = ob_get_contents();
            ob_end_clean();
            //echo $fileu[$u]; //(Print available)
       //Title
            ob_start();
            $a++;
            echo $result[]= $contact->Title;
            $filea[$a] = ob_get_contents();
            ob_end_clean();
            //echo $filea[$a]; //(Print available)
       //Mobile
            ob_start();
            $s++;
            echo $result[]= $contact->Mobile;
            $files[$s] = ob_get_contents();
            ob_end_clean();
            //echo $files[$s]; //(Print available)
       //Notes
            ob_start();
            $d++;
            echo $result[]= $contact->Notes;
            $filed[$d] = ob_get_contents();
            ob_end_clean();
            //echo $filed[$d]; //(Print available)
      //Phone
            ob_start();
            $f++;
            echo $result[]= $contact->Phone;
            $filef[$f] = ob_get_contents();
            ob_end_clean();
            //echo $filef[$f]; //(Print available)
       //State
            ob_start();
            $g++;
            echo $result[]= $contact->State;
            $fileg[$g] = ob_get_contents();
            ob_end_clean();
            //echo $fileg[$g]; //(Print available)
      //Postcode
            ob_start();
            $h++;
           echo $result[]= $contact->Postcode;
            $fileh[$h] = ob_get_contents();
            ob_end_clean();
            //echo $fileh[$h]; //(Print available)
                    }
                   }
                  }
                 }
                }
               }
              }
             }
            }
           }
          }   
         } 
        }
       } 
      }
     }  
    }
     //Witch contact 1,2,3,4,...
       $k = 1;
      //Code
       echo 'Code   = ' .$filei[1];
      //AddressLine2
      echo 'AddressLine   = ' .$fileo[$k];
      //BusinessPhone
      echo 'BusinessPhone = ' .$filep[$k];
      //City 
      echo 'City = ' .$fileq[$k];
      //Country
      echo 'Country = ' .$filew[$k];
      //Created
      echo 'created =  ' . $filee[$k];
      //Email
      echo 'Email = ' . $filer[$k];
      //BusinessFax
      echo 'BusinessFax  = ' . $filet[$k];
      //FirstName
      echo 'FirstName = ' .$filey[$k];
      //LastName
      echo 'Your last name = ' .$fileu[$k];
      //Initials
      echo 'Title = ' .$filea[$k];
      //Mobile
      echo 'Mobile = ' . $files[$k];
      //Notes
      echo 'Notes = ' .  $filed[$k];
      //Phone
      echo 'Phone = ' .  $filef[$k];
      //State
      echo 'State = ' .  $fileg[$k];
      //Postcode
      echo 'Postcode = ' . $fileh[$k];



        json_encode($result);
    } catch (\Exception $e) {
        json_encode(array(get_class($e) . ' : ' . $e->getMessage()));
    }

   =====================================
                   Autotask              
                 Connection            
    =====================================
    require_once 'C:\xampp\htdocs\Api\Autotask\vendor\autoload.php';
    $username = '++++++++++++++++++++++++++++++++++++++';
    $password = '++++++++++++++++';

    $contact= new ATWS\AutotaskObjects\Contact();
    $contact->id = 0; //0 for new and ID for update
    $contact->AccountID = 236;
    $contact->AlternatePhone = $filep[$k];
    $contact->Country = $filew[$k];
    $contact->CreatDate = $filee[$k];
    $contact->EMailAddress = $filer[$k];
    $contact->FirstName = $filey[$k];
    $contact->LastName = $fileu[$k];
    $contact->MobilePhone = $files[$k];
    $contact->Phone = $filef[$k];
    $contact->Active = '0';

    //$contact->AddressLine = $fileo[$k];+
    //$contact->City = $fileq[$k];+
    //$contact->FaxNumber = $filet[$k];+
    //$contact->MiddleInitial = $filea[$k];+
    //$contact->Note = $filed[$k];+
    //$contact->State = $fileg[$k];+
    //$contact->ZipCode = $fileh[$k];+
    echo "Auotask client created";


    $authWsdl = 'https://webservices.autotask.net/atservices/1.5/atws.wsdl';
    $opts = array('trace' => 1);
    $client = new ATWS\Client($authWsdl, $opts);
    $zoneInfo = $client->getZoneInfo($username);

    $authOpts = array(
        'login' => $username,
        'password' => $password,
        'trace' => 1,   // Allows us to debug by getting the XML requests sent
    );
    $wsdl = str_replace('.asmx', '.wsdl', $zoneInfo->getZoneInfoResult->URL);
    $client = new ATWS\Client($wsdl, $authOpts);

    print_r($client->create($contact));

This is the output i get if i run php script.

Code = 24
    AddressLine = 000000000
    BusinessPhone = 040-44445511
    City = 0000000
    Country = NL 
    created = /Date(1493085780497)/
    Email = test@sportmartbv.nl
    BusinessFax = 000000
    FirstName = Ellis
    Your last name = Renners
    Title = MEVR
    Mobile = 0682121519
    Notes = 000000000
    Phone = 040-444151151
    State = 000000000
    Postcode = 00000000

I would like to get full user information in the output.

Any help would be greatly appreciated.


Solution

  • for($i=0;$i<1;){...} is equivalent to $i=0; while($i<1){...} so you should make sure that at some point, the value of $i changes and you leave the loop.

    In your case, if $result = $contact->get(); returns an empty list, you won't enter the foreach and therefore you will never reach the parts with $x++ (replace x with whatever one-char variable you used in your nested for loops).

    You usually add $i++ in the third input of a for, or you can add another condition, like :

    $iterations=0; 
    for($i=0; $i<1 && $iterations<50; $iterations++)
    {
        ...
    }
    

    so the loop will run until either $i >= 1 or $iterations >= 50.
    Which means unless you change $iterations' value in your loop, it will run 50 times max.

    This is in case you are expecting the input to change at some point, but if you really want to just get one input, you shouldn't use a for loop at all, instead just remove all those loops, remove all $x++; (with x in all your one-char variable names) and use only one variable initialized to 0.

    Again, it is considered good practice to name your variables in an intelligible way.


    Note : Nothing from the above is php-specific, this is algorithmics -- common to most programming languages.