--- /dev/null
+<?php
+
+class SugarContract extends SugarObject {
+
+ const CONTRAT_MAINTENANCE_ACCOUNT_RELATIONSHIP = 'accountsntrat_maintenance';
+
+ public function getModuleName(){
+ return "maint_contrat_maintenance";
+ }
+
+ public function getFieldsToRetrieve(){
+ return array(
+ 'id',
+ 'name',
+ 'etat_contrat_c',
+ 'resp_name',
+ 'resp_id',
+ 'date_debut_c',
+ 'date_fin_c',
+ );
+ }
+
+ public function getLinkFieldsToRetrieve(){
+ return array(
+ array('name' => self::CONTRAT_MAINTENANCE_ACCOUNT_RELATIONSHIP, 'value' => array('id')),
+ );
+ }
+
+ public function listContracts() {
+ $result = parent::listObject();
+ foreach($result as $sugar_id => $data){
+ $customer_sugar_id = false;
+ if (isset($result[$sugar_id]['link']) ) {
+ $customer_sugar_id = $result[$sugar_id]['link'][self::CONTRAT_MAINTENANCE_ACCOUNT_RELATIONSHIP][0]['id'];
+ }
+ $result[$sugar_id]['account_id'] = $customer_sugar_id;
+ unset($result[$sugar_id]['link']);
+ }
+ return $result;
+
+ }
+
+ public function synchronize(){
+ $sugar_contract_list = $this->listContracts();
+
+ $pdoContractsManager = new PdoContractManager();
+ $pdoCustomersManager = new PdoCustomerManager();
+
+ foreach($sugar_contract_list as $sugar_id => $contrat_entry){
+ $contract = $pdoContractsManager->getBySugarId($sugar_id);
+ if (! $contract){
+ $contract = new Contract();
+ }
+ $contract->sugar_id = $sugar_id;
+ $contract->number = $contrat_entry['name'];
+ $contract->start_date = $contrat_entry['date_debut_c'];
+ $contract->end_date = $contrat_entry['date_fin_c'];
+ $contract->state = $contrat_entry['etat_contrat_c'];
+ $contract->customer_id = 0;
+
+ $customer = $pdoCustomersManager->getBySugarId($contrat_entry['account_id']);
+ if ($customer){
+ $contract->customer_id = $customer->id;
+ }
+ $pdoContractsManager->edit($contract);
+ }
+ return true;
+ }
+
+}