function encode(DOMElement $container, DOMDocument $doc) { parent::encode($container, $doc); if ($this->productDetails) { $detailsNode = $doc->createElement("fieldlabel"); $detailsNode->setAttribute("value", "Product Details"); foreach ($this->productDetails as $i => $productDetail) { $row = $doc->createElement("product"); $row->setAttribute("no", $i + 1); $productDetail->encode($row, $doc); $detailsNode->appendChild($row); } $container->appendChild($detailsNode); } }
/** * @param Scalr_Service_ZohoCrm_Entity $entity * @return Scalr_Service_ZohoCrm_Entity */ function update($entity) { $request = $this->newRequest(); $row = $request->createElement("row"); $row->setAttribute("no", "1"); $entity->encode($row, $request); $request->documentElement->appendChild($row); $response = $this->request(array("method" => self::METHOD_UPDATE, "xmlData" => $request, "queryParams" => array("id" => $entity->id))); $xpath = new DOMXPath($response); $recorddetails = $xpath->query("//response/result/recorddetail"); if ($recorddetails->length) { $this->decodeRecordDetail($entity, $recorddetails->item(0), $xpath); } else { throw new Scalr_Service_ZohoCrm_Exception("Cannot find 'recorddetail' node in response xml"); } return $entity; }