/** * * * @param boolean $todo_for_empty_elements A constant, one of: QUICKBOOKS_XML_XML_COMPRESS, QUICKBOOKS_XML_XML_DROP, QUICKBOOKS_XML_XML_PRESERVE * @param string $indent * @param string $root * @return string */ public function asQBXML($request, $todo_for_empty_elements = QUICKBOOKS_OBJECT_XML_DROP, $indent = "\t", $root = null) { $this->_cleanup(); return parent::asQBXML($request, $todo_for_empty_elements, $indent, $root); }
/** * * * @param string $request * @param QuickBooks_Object $obj * @param boolean $continue_on_error * @param string $err * @return array */ protected function _mapApplicationIDs($request, &$obj, $continue_on_error, &$err) { foreach ($obj->asList($request) as $key => $value) { if (is_array($value)) { // this function neeeds to beable to handle arrays, or objects /* foreach ($value as $subvalue) { $err = ''; if ($this->_mapApplicationIDs($request, $subvalue, $continue_on_error, $err)) { ; // do nothing } else if (!$continue_on_error) { $err = 'Recursive map error: ' . $err; return false; } } */ } else { /* if (substr($key, strlen(QUICKBOOKS_API_APPLICATIONID) * -1, strlen(QUICKBOOKS_API_APPLICATIONID)) == QUICKBOOKS_API_APPLICATIONID) { $type = null; $tag = null; $ID = null; $obj->decodeApplicationID($value, $type, $tag, $ID); if ($ListID_or_TxnID = $this->_mapToQuickBooksID($type, $ID)) { $back = substr($key, 0, -1 * (strlen(QUICKBOOKS_API_APPLICATIONID) + 1)); $obj->set($back . ' ' . $tag, $ListID_or_TxnID); } else if (!$continue_on_error) { $err = 'Unable to map key: ' . $key; return false; } }*/ } } return true; }
/** * Create a new QuickBooks_Object_Check_ExpenseLine object * * @param array $arr */ public function __construct($arr = array()) { parent::__construct($arr); }
/** * * * @param QuickBooks_Object $Product * @param mixed $ProductID * @return boolean */ protected function _integrateProduct($Product, $ProductID) { // Call a hook to indicate the order is being pushed to QuickBooks $hook_data = array('ProductID' => $ProductID, 'Product' => $Product); $this->_callHooks(QUICKBOOKS_SERVER_INTEGRATOR_HOOK_INTEGRATEPRODUCT, null, $user, null, $err, $hook_data); switch ($Product->object()) { case QUICKBOOKS_OBJECT_INVENTORYITEM: return $this->_api->addInventoryItem($Product, 'QuickBooks_Server_Integrator_Callbacks::addInventoryItem', $ProductID); case QUICKBOOKS_OBJECT_NONINVENTORYITEM: return $this->_api->addNonInventoryItem($Product, 'QuickBooks_Server_Integrator_Callbacks::addNonInventoryItem', $ProductID); case QUICKBOOKS_OBJECT_SERVICEITEM: return $this->_api->addServiceItem($Product, 'QuickBooks_Server_Integrator_Callbacks::addServiceItem', $ProductID); case QUICKBOOKS_OBJECT_DISCOUNTITEM: return $this->_api->addDiscountItem($Product, 'QuickBooks_Server_Integrator_Callbacks::addDiscountItem', $ProductID); case QUICKBOOKS_OBJECT_OTHERCHARGEITEM: return $this->_api->addOtherChargeItem($Product, 'QuickBooks_Server_Integrator_Callbacks::addOtherChargeItem', $ProductID); default: return false; } }
</CustomerRet>'; // Create the customer $Object = QuickBooks_Object::fromQBXML($qbxml); // Print it out print_r($Object); // Does it work for qbXML ADD requests too? $qbxml = ' <CustomerAdd> <Name>20706 - Eastern XYZ University</Name> <CompanyName>Eastern XYZ University</CompanyName> <FirstName>Keith</FirstName> <LastName>Palmer</LastName> <BillAddress> <Addr1>Eastern XYZ University</Addr1> <Addr2>College of Engineering</Addr2> <Addr3>123 XYZ Road</Addr3> <City>Storrs-Mansfield</City> <State>CT</State> <PostalCode>06268</PostalCode> <Country>United States</Country> </BillAddress> <Phone>860-634-1602</Phone> <AltPhone>860-429-0021</AltPhone> <Fax>860-429-5183</Fax> <Email>keith@consolibyte.com</Email> <Contact>Keith Palmer</Contact> </CustomerAdd>'; // Create it... $Object = QuickBooks_Object::fromQBXML($qbxml); // Print it... print_r($Object);
/** * Convert a qbXML string to a QuickBooks_Object_* object instance * * @param string $qbxml * @param string $action_or_object * @return QuickBooks_Object */ public static function fromQBXML($qbxml, $action_or_object = null) { $errnum = null; $errmsg = null; $Parser = new QuickBooks_XML_Parser($qbxml); if ($Doc = $Parser->parse($errnum, $errmsg)) { $XML = $Doc->getRoot(); return QuickBooks_Object::fromXML($XML, $action_or_object); } return false; }
<TimeModified>2009-10-11T14:26:12</TimeModified> <EditSequence>1234</EditSequence> <Name>7lb Box</Name> <IsActive>true</IsActive> <UnitOfMeasureType>Weight</UnitOfMeasureType> <BaseUnit> <Name>Pounds</Name> <Abbreviation>lbs</Abbreviation> </BaseUnit> <RelatedUnit> <Name>15lb Box</Name> <Abbreviation>15lbs</Abbreviation> <ConversionRatio>2</ConversionRatio> </RelatedUnit> <RelatedUnit> <Name>25lb Box</Name> <Abbreviation>25lbs</Abbreviation> <ConversionRatio>4</ConversionRatio> </RelatedUnit> <DefaultUnit> <UnitUsedFor>Sales</UnitUsedFor> <Unit>Pound</Unit> </DefaultUnit> <DefaultUnit> <UnitUsedFor>Purchase</UnitUsedFor> <Unit>2 Pounds</Unit> </DefaultUnit> </UnitOfMeasureSetRet>'; $UnitOfMeasureSet = QuickBooks_Object::fromQBXML($qbxml); print_r($UnitOfMeasureSet); print $UnitOfMeasureSet->asQBXML(QUICKBOOKS_ADD_UNITOFMEASURESET);
/** * * * */ protected static function _objectFromXML($action, $XML) { return QuickBooks_Object::fromXML($XML, $action); }