addChild("Ид", $accountId); } /** * Return reference of account by $cmlAccount object. * @param CmlAccount $cmlAccount */ private function getReference($cmlAccount) { $name = $cmlAccount->getName(); $result = $this->query("select id from Accounts where accountname='$name';"); return $this->getFirstReference($result); } /** * Return REST fields, needed only to SalesOrder * @param array $restData */ private function trimAccountRest($restData) { $trimmedRest['account_id'] = $restData['id']; $trimmedRest['bill_street'] = $restData['bill_street']; $trimmedRest['ship_street'] = $restData['ship_street']; return $trimmedRest; } /** * Retrur REST data of account neede to SalesOrder * @param CmlAccount $cmlAccount */ public function getSalesOrderAccountRest($cmlAccount) { $reference = $this->getReference($cmlAccount); if($reference == null) { $reference = $this->create('Accounts', $cmlAccount->toRestDescription()); } $restData = $this->retrieve($reference); return $this->trimAccountRest($restData); } /** * Return account description as SimpleXmlElement without shipping and billing addresses. * @param String $reference * return SimpleXmlElement */ public function getXmlBaseAccount($reference) { $accountRest = $this->retrieve($reference); $accountXml = new SimpleXmlElement("<Контрагент>"); $this->addXmlAccountId($accountXml, $accountRest); $accountXml->addChild("Наименование",$accountRest['accountname']); $accountXml->addChild("ПолноеНаименование",$accountRest['accountname']); $accountXml->addChild("Роль","Покупатель"); $accountXml->addChild("ИНН", $accountRest['inn']); $accountXml->addChild("КПП", $accountRest['kpp']); $address = $accountXml->addChild("АдресРегистрации"); $address->addChild("Представление", $accountRest['bill_street']); return $accountXml; } }