AAAAhome/academiac/www/plugins/vmcalculation/avalara/classes/TaxServiceSoap.class.php 0000604 00000032224 15137312344 0024314 0 ustar 00 * Example: *
* $taxService = new TaxServiceSoap(); * $result = $taxService->ping(); ** * @author Avalara * @copyright � 2004 - 2011 Avalara, Inc. All rights reserved. * @package Tax */ if(!class_exists('AvalaraSoapClient')) require (VMAVALARA_CLASS_PATH.DS.'AvalaraSoapClient.class.php'); class TaxServiceSoap extends AvalaraSoapClient { static $servicePath = '/Tax/TaxSvc.asmx'; static protected $classmap = array( 'BaseAddress' => 'Address', 'ValidAddress' => 'ValidAddress', 'Message' => 'Message', 'ValidateRequest' => 'ValidateRequest', 'IsAuthorizedResult' => 'IsAuthorizedResult', 'PingResult' => 'PingResult', 'ValidateResult' => 'ValidateResult', 'Line'=>'Line', 'AdjustTaxRequest'=>'AdjustTaxRequest', 'AdjustTaxResult'=>'AdjustTaxResult', 'CancelTaxRequest'=>'CancelTaxRequest', 'CancelTaxResult'=>'CancelTaxResult', 'CommitTaxRequest'=>'CommitTaxRequest', 'CommitTaxResult'=>'CommitTaxResult', 'GetTaxRequest'=>'GetTaxRequest', 'GetTaxResult'=>'GetTaxResult', 'GetTaxHistoryRequest'=>'GetTaxHistoryRequest', 'GetTaxHistoryResult'=>'GetTaxHistoryResult', 'PostTaxRequest'=>'PostTaxRequest', 'PostTaxResult'=>'PostTaxResult', 'ReconcileTaxHistoryRequest'=>'ReconcileTaxHistoryRequest', 'ReconcileTaxHistoryResult'=>'ReconcileTaxHistoryResult', 'TaxLine'=>'TaxLine', 'TaxDetail' => 'TaxDetail', 'ApplyPaymentRequest'=>'ApplyPaymentRequest', 'ApplyPaymentResult'=>'ApplyPaymentResult', 'BaseResult'=>'BaseResult', 'TaxOverride'=>'TaxOverride' ); public function __construct($configurationName = 'Default') { $config = new ATConfig($configurationName); if(!class_exists('DynamicSoapClient')) require (VMAVALARA_CLASS_PATH.DS.'DynamicSoapClient.class.php'); $this->client = new DynamicSoapClient ( $config->taxWSDL, array ( 'location' => $config->url.$config->taxService, 'trace' => $config->trace, 'classmap' => TaxServiceSoap::$classmap ), $config ); } /** * Calculates taxes on a document such as a sales order, sales invoice, purchase order, purchase invoice, or credit memo. *
* This is only available for saved tax documents (Sales Invoices, Purchase Invoices). *
** A document can be indicated solely by the {@link PostTaxRequest#getDocId} if it is known. * Otherwise the request must specify all of {@link PostTaxRequest#getCompanyCode}, see {@link PostTaxRequest#getDocCode} * and {@link PostTaxRequest#getDocType} in order to uniquely identify the document. *
* * @param getTaxHistoryRequest a {@link GetTaxHistoryRequest} object indicating the document for which history should be retrieved. * @return a {@link GetTaxHistoryResult} object * @throws SoapFault */ /*public com.avalara.avatax.services.tax.GetTaxHistoryResult getTaxHistory(com.avalara.avatax.services.tax.GetTaxHistoryRequest getTaxHistoryRequest) throws SoapFault; */ public function getTaxHistory(&$getTaxHistoryRequest) { $result = $this->client->GetTaxHistory(array('GetTaxHistoryRequest'=>$getTaxHistoryRequest))->GetTaxHistoryResult; $result->getGetTaxRequest()->postFetch(); return $result; } /** * Posts a previously calculated tax ** This is only available for saved tax documents (Sales Invoices, Purchase Invoices). *
** A document can be indicated solely by the {@link PostTaxRequest#getDocId} if it is known. * Otherwise the request must specify all of {@link PostTaxRequest#getCompanyCode}, {@link PostTaxRequest#getDocCode}, and * {@link PostTaxRequest#getDocType} in order to uniquely identify the document. *
* * @param postTaxRequest a {@link PostTaxRequest} object indicating the document that should be posted. * @return a {@link PostTaxResult} object * @throws SoapFault */ /*public com.avalara.avatax.services.tax.PostTaxResult postTax(com.avalara.avatax.services.tax.PostTaxRequest postTaxRequest) throws SoapFault; */ public function postTax(&$postTaxRequest) { return $this->client->PostTax(array('PostTaxRequest'=>$postTaxRequest))->PostTaxResult; } /** * Commits a previously posted tax. ** This is only available for posted tax documents (Sales Invoices, Purchase Invoices). Committed documents cannot * be changed or deleted. *
** A document can be indicated solely by the {@link CommitTaxRequest#getDocId} if it is known. Otherwise the * request must specify all of {@link CommitTaxRequest#getCompanyCode}, {@link CommitTaxRequest#getDocCode}, and * {@link CommitTaxRequest#getDocType} in order to uniquely identify the document. *
* * @param commitTaxRequest a {@link CommitTaxRequest} object indicating the document that should be committed. * @return a {@link CommitTaxResult} object * @throws SoapFault */ /*public com.avalara.avatax.services.tax.CommitTaxResult commitTax(com.avalara.avatax.services.tax.CommitTaxRequest commitTaxRequest) throws SoapFault; */ public function commitTax(&$commitTaxRequest) { return $this->client->CommitTax(array('CommitTaxRequest'=>$commitTaxRequest))->CommitTaxResult; } /** * Cancels a previously calculated tax; This is for use as a * compensating action when posting on the client fails to complete. ** This is only available for saved tax document types (Sales Invoices, Purchase Invoices). A document that is saved * but not posted will be deleted if canceled. A document that has been posted will revert to a saved state if canceled * (in this case CancelTax should be called with a {@link CancelTaxRequest#getCancelCode} of * PostFailed). A document that has been committed cannot be reverted to a posted state or deleted. In the case * that a document on the client side no longer exists, a committed document can be virtually removed by calling * CancelTax with a CancelCode of DocDeleted. The record will be retained in history but removed * from all reports. *
** A document can be indicated solely by the {@link CancelTaxRequest#getDocId} if it is known. Otherwise the request * must specify all of {@link CancelTaxRequest#getCompanyCode}, {@link CancelTaxRequest#getDocCode}, and * {@link CancelTaxRequest#getDocType} in order to uniquely identify the document. * * @param cancelTaxRequest a {@link CancelTaxRequest} object indicating the document that should be canceled. * @return a {@link CancelTaxResult} object * @throws SoapFault */ /* public com.avalara.avatax.services.tax.CancelTaxResult cancelTax(com.avalara.avatax.services.tax.CancelTaxRequest cancelTaxRequest) throws SoapFault; */ public function cancelTax(&$cancelTaxRequest) { return $this->client->CancelTax(array('CancelTaxRequest'=>$cancelTaxRequest))->CancelTaxResult; } /** * Reconciles tax history to ensure the client data matches the * AvaTax history. *
The Reconcile operation allows reconciliation of the AvaTax history with the client accounting system. * It must be used periodically according to your service contract. *
** Because there may be a large number of documents to reconcile, it is designed to be called repetitively * until all documents have been reconciled. It should be called until no more documents are returned. * Each subsequent call should pass the previous results {@link ReconcileTaxHistoryRequest#getLastDocId}. *
** When all results have been reconciled, Reconcile should be called once more with * {@link ReconcileTaxHistoryRequest#getLastDocId} * equal to the last document code processed and {@link ReconcileTaxHistoryRequest#isReconciled} set to true to indicate * that all items have been reconciled. If desired, this may be done incrementally with each result set. Just send * Reconciled as true when requesting the next result set and the prior results will be marked as reconciled. *
** The {@link #postTax}, {@link #commitTax}, and {@link #cancelTax} operations can be used to correct any differences. * {@link #getTax} should be called if any committed documents are out of balance * ({@link GetTaxResult#getTotalAmount} or {@link GetTaxResult#getTotalTax} * don't match the accounting system records). This is to make sure the correct tax is reported. *
* * @param reconcileTaxHistoryRequest a Reconciliation request * @return A collection of documents that have been posted or committed since the last reconciliation. * @throws SoapFault */ /*public com.avalara.avatax.services.tax.ReconcileTaxHistoryResult reconcileTaxHistory(com.avalara.avatax.services.tax.ReconcileTaxHistoryRequest reconcileTaxHistoryRequest) throws SoapFault; */ public function reconcileTaxHistory(&$reconcileTaxHistoryRequest) { return $this->client->ReconcileTaxHistory(array('ReconcileTaxHistoryRequest'=>$reconcileTaxHistoryRequest))->ReconcileTaxHistoryResult; } /** * Adjusts a previously calculated tax. ** This is only available for unlocked tax documents (Sales Invoices, Purchase Invoices). *
**
* * @param adjustTaxRequest a {@link AdjustTaxRequest} object indicating the document that should be edited. * @return a {@link AdjustTaxResult} object * @throws SoapFault */ /*public com.avalara.avatax.services.tax.CommitTaxResult commitTax(com.avalara.avatax.services.tax.CommitTaxRequest commitTaxRequest) throws SoapFault; */ public function adjustTax(&$adjustTaxRequest) { $adjustTaxRequest->getGetTaxRequest()->prepare(); return $this->client->AdjustTax(array('AdjustTaxRequest'=>$adjustTaxRequest))->AdjustTaxResult; } /** * Checks authentication of and authorization to one or more * operations on the service. * * This operation allows pre-authorization checking of any * or all operations. It will return a comma delimited set of * operation names which will be all or a subset of the requested * operation names. For security, it will never return operation * names other than those requested (no phishing allowed). * * Example: isAuthorized("GetTax,PostTax")
*
* @param string $operations a comma-delimited list of operation names
*
* @return IsAuthorizedResult
* @throws SoapFault
*/
public function isAuthorized($operations)
{
return $this->client->IsAuthorized(array('Operations' => $operations))->IsAuthorizedResult;
}
/**
* Verifies connectivity to the web service and returns version
* information about the service.
*
* NOTE:This replaces TestConnection and is available on
* every service.
*
* @param string $message for future use
* @return PingResult
* @throws SoapFault
*/
public function ping($message = '')
{
return $this->client->Ping(array('Message' => $message))->PingResult;
}
/**
* This method is used to apply a payment to a document for cash basis accounting. Applies a payment date to an existing invoice
* It sets the document PaymentDate and changes the reporting date from the DocDate default. It may be called before or after a document is committed. It should not be used for accrual basis accounting
*
* @param ApplyPaymentRequest $applyPaymentRequest
* @return ApplyPaymentResult
*/
public function applyPayment(&$applyPaymentRequest)
{
return $this->client->ApplyPayment(array('ApplyPaymentRequest' => $applyPaymentRequest))->ApplyPaymentResult;
}
}
?>