【问题标题】:quickbooks online - Add Sales receiptquickbooks online - 添加销售收据
【发布时间】:2016-11-07 10:08:31
【问题描述】:

我正在尝试创建一个 php 页面,该页面会将销售收据添加到在线 Quickbooks 中。我正在使用 Keith Palmer SDK,它附带了很多示例,但没有显示如何创建销售收据。我尝试了网上找到的各种示例,但似乎都没有。

有人知道我可以用作起点的任何工作示例吗?

以下代码是我得到的最接近的代码,但它给出了以下错误:业务验证错误:只能有一个详细类型为未存款资金的帐户。

<?php


require_once dirname(__FILE__) . '/config.php';


require_once dirname(__FILE__) . '/views/header.tpl.php';



?>



<pre>



<?php



$SalesReceiptService = new QuickBooks_IPP_Service_SalesReceipt();

$SalesReceipt = new QuickBooks_IPP_Object_SalesReceipt();

$SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();


$Line = new QuickBooks_IPP_Object_Line();

$Line->setDetailType('SalesItemLineDetail');

$Line->setAmount(24);

$Line->setDescription("Testing");



/* Create new line detail object */

$SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();

$SalesItemLineDetail->setItemRef(19);

$SalesItemLineDetail->setUnitPrice(3);

$SalesItemLineDetail->setQty(8);


//Add Line Detail to the Sales Receipt Line

$Line->addSalesItemLineDetail($SalesItemLineDetail);


//Add Line to Sales Receipt

$SalesReceipt->addLine($Line);


$TxnTaxDetail = new QuickBooks_IPP_Object_TxnTaxDetail();

    $TxnTaxDetail->setTxnTaxCodeRef(2);

    $SalesReceipt->addTxnTaxDetail($TxnTaxDetail);


$SalesReceipt->setCustomerRef(72);

if ($resp = $SalesReceiptService->add($Context, $realm, $SalesReceipt))
{
print('Our new Sales Receipt ID is: [' . $resp . ']');
}
else
{
print('Error in posting invoice. '.$SalesReceiptService->lastError());
}

/*


print($IPP->lastError($Context));


print("\n\n\n\n");

print('Request [' . $IPP->lastRequest() . ']');

print("\n\n\n\n");

print('Response [' . $IPP->lastResponse() . ']');

print("\n\n\n\n");

*/


?>



</pre>



<?php



require_once dirname(__FILE__) . '/views/footer.tpl.php';



?>

//XML 输出

REQUEST: POST https://sandbox-quickbooks.api.intuit.com/v3/company    /123456789123456/salesreceipt?requestid=3505016a-a3ec-7794-a55f-c2422870442c&    minorversion=6 HTTP/1.1
Content-Type: application/xml
Authorization: OAuth realm="", oauth_signature_method="HMAC-SHA1",     oauth_signature="hss48**********lrqmh13MsaS0%3D",  oauth_nonce="U65P0",     oauth_timestamp="1478554059",     oauth_token="qyprdI6U7kOfbZv**********t69nti4NrT4TgEOcOKpSX0C",     oauth_consumer_key="qyprdT**********uMblouZakTiYrk", oauth_version="1.0"
Content-Length: 561

<SalesReceipt xmlns="http://schema.intuit.com/finance/v3">
<Line xmlns="http://schema.intuit.com/finance/v3">
    <Amount>24</Amount>
    <DetailType>SalesItemLineDetail</DetailType>
    <Description>Testing</Description>
    <SalesItemLineDetail xmlns="http://schema.intuit.com/finance/v3">
        <ItemRef>19</ItemRef>
        <UnitPrice>3</UnitPrice>
        <Qty>8</Qty>
    </SalesItemLineDetail>
</Line>
<TxnTaxDetail xmlns="http://schema.intuit.com/finance/v3">
    <TxnTaxCodeRef>2</TxnTaxCodeRef>
</TxnTaxDetail>
<CustomerRef>72</CustomerRef>
</SalesReceipt>


RESPONSE: HTTP/1.1 400 Bad Request
Server: nginx
Date: Mon, 07 Nov 2016 21:27:33 GMT
Content-Type: application/xml
Content-Length: 492
Connection: keep-alive
Keep-Alive: timeout=5
Strict-Transport-Security: max-age=15552000
intuit_tid: gw-56191ae9-ecce-4713-b335-243cad4f7c2e
X-NewRelic-App-Data:     PxQEVFFbAQoTVVlSDwEAUVYTGhE1AwE2QgNWEVlbQFtcC2VOfw5BDwVaXhsDB21BWThOVgcBa0lOE    xoDTFZPUh5RAVAICgUGC0kMVwBNEVABV1ICBFNdAFUCA1oCVAZESFdXXxEDPg==
Vary: Accept-Encoding

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><IntuitResponse     xmlns="http://schema.intuit.com/finance/v3"         time="2016-11-07T13:27:39.703-08:00"><Fault type="ValidationFault"><Error     code="6000" element=""><Message>A business validation error has     occurred while processing your request</Message><Detail>Business     Validation Error: One or more transaction lines do not have a tax code     associated with it. Please assign a tax code for those lines.</Detail>    </Error></Fault></IntuitResponse>

这里的任何帮助或指示将不胜感激。

另外,使用 KP SDK 查找给定任务所需信息的最佳位置在哪里? (SDK 下载似乎没有提供任何帮助或参考文件)

【问题讨论】:

  • 请发布完整的 XML 请求和 XML 响应,以便我们真正为您提供帮助。
  • 嗨,基思,感谢您的回复。我不确定如何获取您要求的信息。上面的脚本是在另一个站点上找到的,显然可以与您的 sdk 一起使用。我想我只是想找到一个添加简单销售收据的基本版本,这样我就可以尝试扩展它。不幸的是,除了上述代码之外,我找不到与销售收据相关的任何内容。
  • 感谢 Keith,我已经更新了上面的代码以显示 XML 请求和响应。

标签: php quickbooks


【解决方案1】:

错误信息几乎概括了这个问题:

&lt;Detail&gt;Business Validation Error: One or more transaction lines do not have a tax code associated with it. Please assign a tax code for those lines.&lt;/Detail&gt;

听起来您需要为没有关联税码的交易行分配税码。

转到 Intuit 的文档:

展开销售收据的对象属性,直到找到:

TaxCodeRef:
optional
ReferenceType 
Reference to the TaxCode for this item. Query the TaxCode name list resource to determine the appropriate TaxCode object to reference here. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name, respectively.

更改您的代码以便设置税码:

$SalesItemLineDetail->setTaxCodeRef('TAX');     // USA only
$SalesItemLineDetail->setTaxCodeRef('some Id value here');    // Non-USA

【讨论】:

  • 感谢基思,不幸的是,改变这个值并没有帮助。原来是 $SalesReceipt->addTxnTaxDetail($TxnTaxDetail); 中的值不正确价值。现在一切都已排序并正常工作,因此感谢您帮助指出可能的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多