Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- error_reporting(0);
- if (function_exists('date_default_timezone_set')) {
- date_default_timezone_set('America/New_York');
- }
- require_once '../../QuickBooks.php';
- $user = 'quickbooks';
- $pass = 'password';
- $map = array(
- QUICKBOOKS_QUERY_CUSTOMER => array( '_quickbooks_customer_query_request', '_quickbooks_customer_query_response' ),
- QUICKBOOKS_QUERY_INVENTORYITEM => array( '_quickbooks_inventoryitem_query_request', '_quickbooks_inventoryitem_query_response' ),
- QUICKBOOKS_ADD_CUSTOMER => array( '_quickbooks_customer_add_request', '_quickbooks_customer_add_response' ),
- QUICKBOOKS_ADD_INVENTORYITEM => array( '_quickbooks_inventoryitem_add_request', '_quickbooks_inventoryitem_add_response' ),
- QUICKBOOKS_ADD_INVOICE => array( '_quickbooks_invoice_add_request', '_quickbooks_invoice_add_response' )
- );
- $errmap = array(
- 3070 => '_quickbooks_error_stringtoolong',
- 'CustomerQuery' => '_quickbooks_customer_query_error'
- );
- $hooks = array();
- $log_level = QUICKBOOKS_LOG_DEBUG;
- $soapserver = QUICKBOOKS_SOAPSERVER_BUILTIN;
- $soap_options = array();
- $handler_options = array(
- 'deny_concurrent_logins' => false,
- 'deny_reallyfast_logins' => false
- );
- $driver_options = array();
- $callback_options = array();
- $dsn = 'mysql://learning_db:weprl2oENxz]@localhost/learning_db';
- if (!QuickBooks_Utilities::initialized($dsn)) {
- QuickBooks_Utilities::initialize($dsn);
- QuickBooks_Utilities::createUser($dsn, $user, $pass);
- $primary_key_of_your_customer_get = 011;
- $Queue = new QuickBooks_WebConnector_Queue($dsn);
- $Queue->enqueue(QUICKBOOKS_QUERY_CUSTOMER, $primary_key_of_your_customer_get);
- // $primary_key_of_your_inventoryitem_get = 012;
- // $Queue = new QuickBooks_WebConnector_Queue($dsn);
- // $Queue->enqueue(QUICKBOOKS_QUERY_INVENTORYITEM, $primary_key_of_your_inventoryitem_get);
- $primary_key_of_your_customer = 013;
- $Queue = new QuickBooks_WebConnector_Queue($dsn);
- $Queue->enqueue(QUICKBOOKS_ADD_CUSTOMER, $primary_key_of_your_customer);
- // $primary_key_of_your_inventoryitem = 014;
- // $Queue = new QuickBooks_WebConnector_Queue($dsn);
- // $Queue->enqueue(QUICKBOOKS_ADD_INVENTORYITEM, $primary_key_of_your_inventoryitem);
- // $primary_key_of_your_invoice = 015;
- // $Queue = new QuickBooks_WebConnector_Queue($dsn);
- // $Queue->enqueue(QUICKBOOKS_ADD_INVOICE, $primary_key_of_your_invoice);
- }
- $Server = new QuickBooks_WebConnector_Server($dsn, $map, $errmap, $hooks, $log_level, $soapserver, QUICKBOOKS_WSDL, $soap_options, $handler_options, $driver_options, $callback_options);
- $response = $Server->handle(true, true);
- function _quickbooks_customer_query_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale) {
- $record = mysql_fetch_array(mysql_query("SELECT * FROM tblOrderIndex WHERE ID = " . (int) $ID));
- $xml = '<?xml version="1.0" encoding="utf-8"?>
- <?qbxml version="2.0"?>
- <QBXML>
- <QBXMLMsgsRq onError="stopOnError">
- <CustomerQueryRq requestID="' . $requestID . '">
- <FullName>'.$record['BillName'].'</FullName>
- </CustomerQueryRq>
- </QBXMLMsgsRq>
- </QBXML>';
- return $xml;
- }
- function _quickbooks_customer_query_response($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $xml, $idents) {
- $syncRecord = mysql_fetch_array(mysql_query("SELECT count(*) AS num_rows FROM test_customer WHERE OrderId = " . (int) $ID));
- if($syncRecord['num_rows'] == 0) {
- mysql_query("INSERT INTO test_customer SET ListID = '" . mysql_escape_string($idents['ListID']) . "', OrderId = $ID, SyncStatus = 1");
- }
- }
- function _quickbooks_customer_query_error($requestID, $user, $action, $ID, $extra, &$err, $xml, $errnum, $errmsg) {
- $syncRecord = mysql_fetch_array(mysql_query("SELECT count(*) AS num_rows FROM test_customer WHERE OrderId = " . (int) $ID));
- if($syncRecord['num_rows'] == 0) {
- mysql_query("INSERT INTO test_customer SET OrderId = $ID, SyncStatus = 0");
- }
- }
- function _quickbooks_inventoryitem_query_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale) {
- $record = mysql_fetch_array(mysql_query("SELECT * FROM tblOrderItem WHERE ID = " . (int) $ID));
- $xml = '<?xml version="1.0" ?>
- <?qbxml version="2.0" ?>
- <QBXML>
- <QBXMLMsgsRq onError="stopOnError">
- <ItemInventoryQueryRq requestID="' . $requestID . '">
- <FullName>'.substr($record['Title'], 0, 30).'</FullName>
- </ItemInventoryQueryRq>
- </QBXMLMsgsRq>
- </QBXML>';
- return $xml;
- }
- function _quickbooks_inventoryitem_query_response($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $xml, $idents) {
- mysql_query("INSERT INTO test_item SET Name = '" . mysql_escape_string($idents['FullName']) . "', ListID = '" . mysql_escape_string($idents['ListID']) . "'");
- }
- function _quickbooks_customer_add_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale) {
- $syncRecord = mysql_fetch_array(mysql_query("SELECT * FROM test_customer WHERE OrderId = " . (int) $ID));
- if($syncRecord['SyncStatus'] == 0) {
- $record = mysql_fetch_array(mysql_query("SELECT * FROM tblOrderIndex WHERE ID = " . (int) $ID));
- $xml = '<?xml version="1.0" encoding="utf-8"?>
- <?qbxml version="2.0"?>
- <QBXML>
- <QBXMLMsgsRq onError="stopOnError">
- <CustomerAddRq requestID="' . $requestID . '">
- <CustomerAdd>
- <Name>'.substr($record['BillName'],0,30).'</Name>
- <CompanyName>'.(($record['organization'])?$record['organization']:"NA").'</CompanyName>
- <FirstName>'.substr($record['BillName'],0,30).'</FirstName>
- <LastName></LastName>
- <BillAddress>
- <Addr1>'.$record['BillAddress01'].'</Addr1>
- <Addr2>'.$record['BillAddress02'].'</Addr2>
- <City>'.$record['BillCity'].'</City>
- <State>'.$record['BillProvince'].'</State>
- <PostalCode>'.$record['BillPostal'].'</PostalCode>
- <Country>'.$record['BillCountry'].'</Country>
- </BillAddress>
- <ShipAddress>
- <Addr1>'.$record['ShipAddress01'].'</Addr1>
- <Addr2>'.$record['ShipAddress02'].'</Addr2>
- <City>'.$record['ShipCity'].'</City>
- <State>'.$record['ShipProvince'].'</State>
- <PostalCode>'.$record['ShipPostal'].'</PostalCode>
- <Country>'.$record['ShipCountry'].'</Country>
- </ShipAddress>
- <Phone>'.$record['Phone'].'</Phone>
- <AltPhone> </AltPhone>
- <Fax></Fax>
- <Email>'.$record['Email'].'</Email>
- <Contact></Contact>
- </CustomerAdd>
- </CustomerAddRq>
- </QBXMLMsgsRq>
- </QBXML>';
- return $xml;
- }
- }
- function _quickbooks_customer_add_response($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $xml, $idents) {
- mysql_query("UPDATE test_customer SET ListID = '" . mysql_escape_string($idents['ListID']) . "', SyncStatus = 1 WHERE OrderId = " . (int) $ID);
- }
- function _quickbooks_inventoryitem_add_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale) {
- $record = mysql_fetch_array(mysql_query("SELECT * FROM tblOrderItem WHERE ID = " . (int) $ID));
- $xml = '<?xml version="1.0" encoding="utf-8"?>
- <?qbxml version="2.0"?>
- <QBXML>
- <QBXMLMsgsRq onError="stopOnError">
- <ItemInventoryAddRq requestID="' . $requestID . '">
- <ItemInventoryAdd>
- <Name>'.substr($record['Title'], 0, 30).'</Name>
- <SalesDesc>'.substr($record['Title'], 0, 30).'</SalesDesc>
- <SalesPrice>'.$record['Price'].'</SalesPrice>
- <IncomeAccountRef>
- <FullName>Inventory Asset</FullName>
- </IncomeAccountRef>
- <COGSAccountRef>
- <FullName>Cost of Goods Sold</FullName>
- </COGSAccountRef>
- <AssetAccountRef>
- <FullName>Inventory Asset</FullName>
- </AssetAccountRef>
- <QuantityOnHand>1000</QuantityOnHand>
- </ItemInventoryAdd>
- </ItemInventoryAddRq>
- </QBXMLMsgsRq>
- </QBXML>';
- return $xml;
- }
- function _quickbooks_inventoryitem_add_response($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $xml, $idents) {}
- function _quickbooks_invoice_add_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale) {
- $xmlItem = "";
- $query = mysql_query("SELECT * FROM tblOrderItem WHERE OrderId = " . (int) $ID);
- while($record = mysql_fetch_array($query)) {
- $xmlItem .= '<InvoiceLineAdd>
- <ItemRef>
- <FullName>'.substr($record['Title'], 0, 30).'</FullName>
- </ItemRef>
- <Desc>'.substr($record['Title'], 0, 30).'</Desc>
- <Quantity>'.$record['Quantity'].'</Quantity>
- <Rate>'.$record['Price'].'</Rate>
- </InvoiceLineAdd>';
- }
- $record = mysql_fetch_array(mysql_query("SELECT * FROM tblOrderIndex WHERE ID = " . (int) $ID));
- $xml = '<?xml version="1.0" encoding="utf-8"?>
- <?qbxml version="2.0"?>
- <QBXML>
- <QBXMLMsgsRq onError="stopOnError">
- <InvoiceAddRq requestID="' . $requestID . '">
- <InvoiceAdd>
- <CustomerRef>
- <FullName>'.substr($record['BillName'],0,30).'</FullName>
- </CustomerRef>
- <TxnDate>'.date('Y-m-d', strtotime($record['Stamp'])).'</TxnDate>
- <BillAddress>
- <Addr1>'.substr($record['BillAddress01'],0,30).'</Addr1>
- <City>'.$record['BillCity'].'</City>
- <State>'.$record['BillProvince'].'</State>
- <PostalCode>'.$record['BillPostal'].'</PostalCode>
- <Country>'.$record['BillCountry'].'</Country>
- </BillAddress>
- ' . $xmlItem . '
- </InvoiceAdd>
- </InvoiceAddRq>
- </QBXMLMsgsRq>
- </QBXML>';
- return $xml;
- }
- function _quickbooks_invoice_add_response($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $xml, $idents) {}
- function _quickbooks_error_stringtoolong($requestID, $user, $action, $ID, $extra, &$err, $xml, $errnum, $errmsg) {
- mail('jyoti.goel@supraits.com',
- 'QuickBooks error occured!',
- 'QuickBooks thinks that ' . $action . ': ' . $ID . ' has a value which will not fit in a QuickBooks field...');
- }
Add Comment
Please, Sign In to add comment