--- /dev/null
+<?php
+
+class SugarCustomer extends SugarObject {
+
+ public function getModuleName(){
+ return "Accounts";
+ }
+
+ public function getFieldsToRetrieve(){
+ return array(
+ 'id',
+ 'name',
+ 'officenumber_c',
+ 'billing_address_street',
+ 'billing_address_city',
+ 'billing_address_postalcode',
+ 'billing_address_country',
+ 'assigned_user_id'
+ );
+ }
+
+ public function listCustomer() {
+ $result = $this->listObject();
+
+ $assigned_user_list = array();
+ foreach($result as $sugar_id=>$customer_info){
+ if ($customer_info['assigned_user_id']) {
+ $assigned_user_list[$customer_info['assigned_user_id']] = true;
+ }
+ }
+
+ $assigned_user_entry_result = $this->getSugarWrapper()->getEntries("Users",array_keys($assigned_user_list),array("email1"));
+
+ foreach($result as $i=>$result_entry){
+ if (isset($assigned_user_entry_result[$result_entry['assigned_user_id']]['email1'])){
+ $result[$i]['assigned_user_email'] = $assigned_user_entry_result[$result_entry['assigned_user_id']]['email1'];
+ } else {
+ $result[$i]['assigned_user_email'] = '';
+ }
+ }
+ return $result;
+ }
+
+ public function synchronize(){
+ $accounts_list = $this->listCustomer();
+
+ $pdoCustomersManager = new PdoCustomerManager();
+
+ foreach($accounts_list as $sugar_id => $account){
+ $customer = $pdoCustomersManager->getBySugarId($sugar_id);
+ if (! $customer){
+ $customer = new Customer();
+ }
+ $customer->sugar_id = $sugar_id;
+ $customer->name = $account['name'];
+ $customer->ap_id = $account['officenumber_c'];
+ $customer->ap_contact = $account['assigned_user_email'];
+ $pdoCustomersManager->edit($customer);
+ }
+ return true;
+ }
+}