当前位置: 首页>>代码示例>>PHP>>正文


PHP QuickBooks_Utilities::keyForAction方法代码示例

本文整理汇总了PHP中QuickBooks_Utilities::keyForAction方法的典型用法代码示例。如果您正苦于以下问题:PHP QuickBooks_Utilities::keyForAction方法的具体用法?PHP QuickBooks_Utilities::keyForAction怎么用?PHP QuickBooks_Utilities::keyForAction使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在QuickBooks_Utilities的用法示例。


在下文中一共展示了QuickBooks_Utilities::keyForAction方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: onAuthenticate


//.........这里部分代码省略.........
                     if (strlen($arr[QUICKBOOKS_DRIVER_SQL_FIELD_ERROR_NUMBER])) {
                         // Do not sync this record until the error is resolved
                         continue;
                     }
                     // Queue up this MOD request
                     $Driver->queueEnqueue($user, $action, $arr[QUICKBOOKS_DRIVER_SQL_FIELD_ID], true, $priority);
                     $actions[] = $action;
                     // Mark the record as enqueued   - let's wait until the hashing is in for this
                     //$Driver->query(..., $errnum, $errmsg);
                 }
             }
         }
     }
     //print('4 [' . (microtime(true) - $start) . ']' . "\n\n"); $start = microtime(true);
     if ($mode == QuickBooks_WebConnector_Server_SQL::MODE_WRITEONLY or $mode == QuickBooks_WebConnector_Server_SQL::MODE_READWRITE) {
         // Check if any *voided* objects need to be voided in QuickBooks
         foreach ($sql_add as $action => $priority) {
             $object = QuickBooks_Utilities::actionToObject($action);
             $dependency = null;
             if ($object == QUICKBOOKS_OBJECT_BILL) {
                 // Bill VOID dependency is PurchaseOrderMod because we want to be able to manually close POs (but need to VOID the bills first)
                 $dependency = QUICKBOOKS_MOD_PURCHASEORDER;
             }
             $priority = QuickBooks_Utilities::priorityForAction(QUICKBOOKS_VOID_TRANSACTION, $dependency);
             $table_and_field = array();
             // Convert to table and primary key, select qbsql id
             QuickBooks_SQL_Schema::mapPrimaryKey($object, QUICKBOOKS_SQL_SCHEMA_MAP_TO_SQL, $table_and_field);
             //$Driver->log('Searching table: ' . print_r($table_and_field, true) . ' for VOIDED records.', null, QUICKBOOKS_LOG_DEBUG);
             if (!empty($table_and_field[0])) {
                 $sql = "\n\t\t\t\t\t\tSELECT \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_ID . "\n\t\t\t\t\t\tFROM \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_PREFIX_SQL . $table_and_field[0] . " \n\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_DISCOVER . " IS NOT NULL AND \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_TO_DELETE . " != 1 AND \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_FLAG_DELETED . " != 1 AND \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_TO_VOID . " = 1 AND \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_FLAG_VOIDED . " != 1 AND \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_MODIFY . " <= '" . $NOW . "' ";
                 $errnum = 0;
                 $errmsg = '';
                 $res = $Driver->query($sql, $errnum, $errmsg);
                 $extra = array('object' => $object);
                 while ($arr = $Driver->fetch($res)) {
                     $Driver->queueEnqueue($user, QUICKBOOKS_VOID_TRANSACTION, $arr[QUICKBOOKS_DRIVER_SQL_FIELD_ID], true, $priority, $extra);
                 }
             }
         }
     }
     //print('5 [' . (microtime(true) - $start) . ']' . "\n\n"); $start = microtime(true);
     if ($mode == QuickBooks_WebConnector_Server_SQL::MODE_WRITEONLY or $mode == QuickBooks_WebConnector_Server_SQL::MODE_READWRITE) {
         // Check if any *deleted* objects need to be deleted from QuickBooks
         foreach ($sql_add as $action => $priority) {
             break;
             $priority = 1000 - $priority;
             $object = QuickBooks_Utilities::actionToObject($action);
             $table_and_field = array();
             // Convert to table and primary key, select qbsql id
             QuickBooks_SQL_Schema::mapPrimaryKey($object, QUICKBOOKS_SQL_SCHEMA_MAP_TO_SQL, $table_and_field);
             // Delete if it's marked for deletion and it hasn't been deleted already
             if (!empty($table_and_field[0])) {
                 $sql = "\n\t\t\t\t\t\tSELECT \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_ID . "\n\t\t\t\t\t\tFROM \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_PREFIX_SQL . $table_and_field[0] . " \n\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\t " . QUICKBOOKS_DRIVER_SQL_FIELD_TO_DELETE . " = 1 AND \n\t\t\t\t\t\t\t " . QUICKBOOKS_DRIVER_SQL_FIELD_FLAG_DELETED . " != 1 AND \n\t\t\t\t\t\t\t " . QUICKBOOKS_DRIVER_SQL_FIELD_MODIFY . " <= '" . $NOW . "' ";
                 $errnum = 0;
                 $errmsg = '';
                 $res = $Driver->query($sql, $errnum, $errmsg);
                 $key = QuickBooks_Utilities::keyForAction($action);
                 if ($key == 'ListID') {
                     $useAction = 'ListDel';
                 } else {
                     $useAction = 'TxnDel';
                 }
                 $extra['objectType'] = $object;
                 while ($arr = $Driver->fetch($res)) {
                     $Driver->queueEnqueue($user, $useAction, $extra['objectType'] . $arr[QUICKBOOKS_DRIVER_SQL_FIELD_ID], true, $priority, $extra);
                 }
             }
         }
     }
     //print('6 [' . (microtime(true) - $start) . ']' . "\n\n"); $start = microtime(true);
     /*
     // This makes sure that timestamps are set up for every action we're doing (fixes a bug where timestamps never get recorded on initial sync without iterator)
     foreach ($actions as $action)
     {
     	$module = __CLASS__;
     	
     	$key_curr = QuickBooks_Callbacks_SQL_Callbacks::_keySyncCurr($action);
     	$key_prev = QuickBooks_Callbacks_SQL_Callbacks::_keySyncPrev($action);
     	
     	$type = null;
     	$opts = null;
     	$curr_sync_datetime = $Driver->configRead($user, $module, $key_curr, $type, $opts);	// last sync started... 
     	$prev_sync_datetime = $Driver->configRead($user, $module, $key_prev, $type, $opts);	// last sync started... 
     	
     	$datetime = QuickBooks_Utilities::datetime('1983-01-02');
     	
     	if (!$curr_sync_datetime)
     	{
     		$Driver->configWrite($user, $module, $key_curr, $datetime, null);
     	}
     	
     	if (!$prev_sync_datetime)
     	{
     		$Driver->configWrite($user, $module, $key_prev, $datetime, null);
     	}
     }
     */
     //print("\n\n" . 'here [ ' . (microtime(true) - $_start) . ']' . "\n\n\n");
     return true;
 }
开发者ID:djeraseit,项目名称:quickbooks-php,代码行数:101,代码来源:Callbacks.php

示例2: receiveResponseXML


//.........这里部分代码省略.........
                 $action = '';
                 $ident = '';
                 $this->_parseRequestID($requestID, $action, $ident);
                 // Fetch the request that was processed and EXPERIENCED AN ERROR!
                 $extra = '';
                 if ($current = $this->_driver->queueFetch($user, $action, $ident, QUICKBOOKS_STATUS_PROCESSING)) {
                     if ($current['extra']) {
                         $extra = unserialize($current['extra']);
                     }
                 }
                 if ($obj->message) {
                     $errmsg = $obj->message;
                 } else {
                     if ($status = $this->_extractStatusMessage($obj->response)) {
                         $errmsg = $status;
                     }
                 }
                 $errerr = '';
                 $continue = $this->_handleError($obj->ticket, $errnum, $errmsg, $requestID, $action, $ident, $extra, $errerr, $obj->response, array());
                 //					$errnum, $errmsg, $requestID, $action, $ident, $extra, &$err, $xml, $qb_identifiers = array()
                 if ($errerr) {
                     // The error handler returned an error too...
                     $this->_driver->log('An error occured while handling quickbooks error ' . $errnum . ': ' . $errmsg . ': ' . $errerr, $obj->ticket, QUICKBOOKS_LOG_NORMAL);
                 }
             } else {
                 $errerr = '';
                 $continue = $this->_handleError($obj->ticket, $obj->hresult, $obj->message, null, null, null, null, $errerr, $obj->response, array());
                 if ($errerr) {
                     // The error handler returned an error too...
                     $this->_driver->log('An error occured while handling generic error ' . $obj->hresult . ': ' . $obj->message . ': ' . $errerr, $obj->ticket, QUICKBOOKS_LOG_NORMAL);
                 }
             }
             // Calculate the percentage done
             $progress = $this->_calculateProgress($obj->ticket);
             if (!$continue) {
                 $progress = -1;
             }
             $this->_driver->log('Transaction error at ' . $progress . '% complete... ', $obj->ticket, QUICKBOOKS_LOG_VERBOSE);
             return new QuickBooks_Result_ReceiveResponseXML($progress);
         }
         $action = null;
         $ident = null;
         $requestID = null;
         if ($requestID = $this->_extractRequestID($obj->response)) {
             //$action = current(explode('|', $requestID));
             //$ident = end(explode('|', $requestID));
             $action = '';
             $ident = '';
             $this->_parseRequestID($requestID, $action, $ident);
             // Fetch the request that's being processed
             $extra = '';
             if ($current = $this->_driver->queueFetch($user, $action, $ident, QUICKBOOKS_STATUS_PROCESSING)) {
                 if ($current['extra']) {
                     $extra = unserialize($current['extra']);
                 }
             }
             // Update the status to success (no error occured)
             $this->_driver->queueStatus($obj->ticket, $action, $ident, QUICKBOOKS_STATUS_SUCCESS);
         }
         // Extract ListID, TxnID, etc. from the response
         $identifiers = $this->_extractIdentifiers($obj->response);
         //$this->_driver->log(var_export($identifiers, true), $obj->ticket, QUICKBOOKS_LOG_VERBOSE);
         // Auto-map $ident unique identifier from web application to the QuickBooks ListID or TxnID
         if ($this->_config['map_application_identifiers']) {
             $adds = QuickBooks_Utilities::listActions('*Add*');
             $mods = QuickBooks_Utilities::listActions('*Mod*');
             $qbkey = QuickBooks_Utilities::keyForAction($action);
             $type = QuickBooks_Utilities::actionToObject($action);
             $EditSequence = '';
             if (isset($identifiers['EditSequence'])) {
                 $EditSequence = $identifiers['EditSequence'];
             }
             if (in_array($action, $adds) and isset($identifiers[$qbkey]) and $type) {
                 // Try to map the $ident to the QuickBooks identifier
                 $this->_driver->identMap($user, $type, $ident, $identifiers[$qbkey], $EditSequence);
             } else {
                 if (in_array($action, $mods) and isset($identifiers[$qbkey]) and $type) {
                     // Try to map the $ident to the QuickBooks identifier
                     $this->_driver->identMap($user, $type, $ident, $identifiers[$qbkey], $EditSequence);
                 }
             }
         }
         $err = null;
         $last_action_time = $this->_driver->queueActionLast($user, $action);
         $last_actionident_time = $this->_driver->queueActionIdentLast($user, $action, $ident);
         $this->_callMappedFunction(1, $user, $action, $ident, $extra, $err, $last_action_time, $last_actionident_time, $obj->response, $identifiers);
         // Calculate the percentage done
         $progress = $this->_calculateProgress($obj->ticket);
         if ($err) {
             $errerr = '';
             $continue = $this->_handleError($obj->ticket, QUICKBOOKS_ERROR_HANDLER, $err, $requestID, $action, $ident, $extra, $errerr, $obj->response, $identifiers);
             if (!$continue) {
                 $progress = -1;
             }
         }
         $this->_driver->log($progress . '% complete... ', $obj->ticket, QUICKBOOKS_LOG_VERBOSE);
         return new QuickBooks_Result_ReceiveResponseXML($progress);
     }
     return new QuickBooks_Result_ReceiveResponseXML(-1);
 }
开发者ID:dsesar,项目名称:quickbooks-php-devkit,代码行数:101,代码来源:Handlers.php

示例3: onAuthenticate


//.........这里部分代码省略.........
         $sql_query[$action] = QuickBooks_Utilities::priorityForAction($action);
     }
     $sql_query = QuickBooks_Server_SQL_Callbacks::_filterActions($sql_query, $callback_config['_only_query'], $callback_config['_dont_query'], QUICKBOOKS_QUERY);
     // Which things you want to *add* to QuickBooks (SQL => QuickBooks (adds only!))
     //	@todo These should be changed to use QuickBooks_Utilities::listActions('*ADD*')
     foreach (QuickBooks_Utilities::listActions('*ADD*') as $action) {
         $sql_add[$action] = QuickBooks_Utilities::priorityForAction($action);
     }
     $sql_add = QuickBooks_Server_SQL_Callbacks::_filterActions($sql_add, $callback_config['_only_add'], $callback_config['_dont_add'], QUICKBOOKS_ADD);
     // Which things you want to *modify* in QuickBooks (SQL => QuickBooks (modifys only!))
     //	@todo These should be changed to use QuickBooks_Utilities::listActions('*MOD*')
     foreach (QuickBooks_Utilities::listActions('*MOD*') as $action) {
         $sql_mod[$action] = QuickBooks_Utilities::priorityForAction($action);
     }
     $sql_mod = QuickBooks_Server_SQL_Callbacks::_filterActions($sql_mod, $callback_config['_only_modify'], $callback_config['_dont_modify'], QUICKBOOKS_MOD);
     // Queueing class
     //$Queue = new QuickBooks_Queue($dsn_or_conn);
     if ($mode == QUICKBOOKS_SERVER_SQL_MODE_READONLY or $mode == QUICKBOOKS_SERVER_SQL_MODE_READWRITE) {
         //print_r($sql_query);
         //print_r($sql_map);
         // Register recurring events for things you want to query
         foreach ($sql_query as $action => $priority) {
             // Make sure that there are handlers registered for this recurring action
             if (!isset($sql_map[$action])) {
                 //trigger_error('No registered handler for: ' . $action);
                 continue;
             }
             //$Queue->recurring($run_every, $action, md5(__FILE__), $priority, null, $user);
             $Driver->recurEnqueue($user, $run_every, $action, md5(__FILE__), true, $priority);
         }
     }
     // Objects that need to be *ADDED* to QuickBooks
     if ($mode == QUICKBOOKS_SERVER_SQL_MODE_WRITEONLY or $mode == QUICKBOOKS_SERVER_SQL_MODE_READWRITE) {
         // Check if any objects need to be pushed back to QuickBooks
         foreach ($sql_add as $action => $priority) {
             $object = QuickBooks_Utilities::actionToObject($action);
             $table_and_field = array();
             // Convert to table and primary key, select qbsql id
             QuickBooks_SQL_Schema::mapPrimaryKey($object, QUICKBOOKS_SQL_SCHEMA_MAP_TO_SQL, $table_and_field);
             //print_r($table_and_field);
             if (!empty($table_and_field[0]) and !empty($table_and_field[1])) {
                 $sql = "\n\t\t\t\t\t\tSELECT \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_ID . "\n\t\t\t\t\t\tFROM \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_PREFIX_SQL . $table_and_field[0] . " \n\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\t " . QUICKBOOKS_DRIVER_SQL_FIELD_MODIFY . " IS NOT NULL AND \n\t\t\t\t\t\t\t " . QUICKBOOKS_DRIVER_SQL_FIELD_RESYNC . " IS NULL AND \n\t\t\t\t\t\t\t " . QUICKBOOKS_DRIVER_SQL_FIELD_TO_SKIP . " != 1 ";
                 $errnum = 0;
                 $errmsg = '';
                 $res = $Driver->query($sql, $errnum, $errmsg);
                 while ($arr = $Driver->fetch($res)) {
                     $Driver->queueEnqueue($user, $action, $arr[QUICKBOOKS_DRIVER_SQL_FIELD_ID], true, $priority);
                 }
             }
         }
     }
     // Objects that need to be *MODIFIED* within QuickBooks
     if ($mode == QUICKBOOKS_SERVER_SQL_MODE_WRITEONLY or $mode == QUICKBOOKS_SERVER_SQL_MODE_READWRITE) {
         // Check if any objects need to be pushed back to QuickBooks
         foreach ($sql_mod as $action => $priority) {
             $object = QuickBooks_Utilities::actionToObject($action);
             $table_and_field = array();
             // Convert to table and primary key, select qbsql id
             QuickBooks_SQL_Schema::mapPrimaryKey($object, QUICKBOOKS_SQL_SCHEMA_MAP_TO_SQL, $table_and_field);
             $Driver->log('Searching table: ' . QUICKBOOKS_DRIVER_SQL_PREFIX_SQL . $table_and_field[0] . ' for MODIFIED records.', null, QUICKBOOKS_LOG_DEBUG);
             // If we managed to map a table, we need to search that table for changed records
             if (!empty($table_and_field[0]) and !empty($table_and_field[1])) {
                 $sql = "\n\t\t\t\t\t\tSELECT \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_ID . "\n\t\t\t\t\t\tFROM \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_PREFIX_SQL . $table_and_field[0] . " \n\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_DISCOVER . " IS NOT NULL AND \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_RESYNC . " IS NOT NULL AND\n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_MODIFY . " > " . QUICKBOOKS_DRIVER_SQL_FIELD_RESYNC . " AND\n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_TO_DELETE . " != 1 AND \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_TO_SKIP . " != 1 ";
                 $errnum = 0;
                 $errmsg = '';
                 $res = $Driver->query($sql, $errnum, $errmsg);
                 while ($arr = $Driver->fetch($res)) {
                     $Driver->queueEnqueue($user, $action, $arr[QUICKBOOKS_DRIVER_SQL_FIELD_ID], true, $priority);
                 }
             }
         }
     }
     if ($mode == QUICKBOOKS_SERVER_SQL_MODE_WRITEONLY or $mode == QUICKBOOKS_SERVER_SQL_MODE_READWRITE) {
         // Check if any *deleted* objects need to be deleted from QuickBooks
         foreach ($sql_add as $action => $priority) {
             $priority = 1000 - $priority;
             $object = QuickBooks_Utilities::actionToObject($action);
             $table_and_field = array();
             // Convert to table and primary key, select qbsql id
             QuickBooks_SQL_Schema::mapPrimaryKey($object, QUICKBOOKS_SQL_SCHEMA_MAP_TO_SQL, $table_and_field);
             if (!empty($table_and_field[0])) {
                 $sql = "\n\t\t\t\t\t\tSELECT \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_FIELD_ID . "\n\t\t\t\t\t\tFROM \n\t\t\t\t\t\t\t" . QUICKBOOKS_DRIVER_SQL_PREFIX_SQL . $table_and_field[0] . " \n\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\t " . QUICKBOOKS_DRIVER_SQL_FIELD_TO_DELETE . " = 1 ";
                 $errnum = 0;
                 $errmsg = '';
                 $res = $Driver->query($sql, $errnum, $errmsg);
                 $key = QuickBooks_Utilities::keyForAction($action);
                 if ($key == 'ListID') {
                     $useAction = 'ListDel';
                 } else {
                     $useAction = 'TxnDel';
                 }
                 $extra['objectType'] = $object;
                 while ($arr = $Driver->fetch($res)) {
                     $Driver->queueEnqueue($user, $useAction, $extra['objectType'] . $arr[QUICKBOOKS_DRIVER_SQL_FIELD_ID], true, $priority, $extra);
                 }
             }
         }
     }
     return true;
 }
开发者ID:dsesar,项目名称:quickbooks-php-devkit,代码行数:101,代码来源:Callbacks.php


注:本文中的QuickBooks_Utilities::keyForAction方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。