QuickBooks API - 查询 SalesItemLineDetail

QuickBooks API - query SalesItemLineDetail

我正在使用 PHP API 在 QB 中创建发票。 DetailType 是必需的,因此我添加了 $Line->setDetailType('SalesItemLineDetail');,就像 https://github.com/consolibyte/quickbooks-php/blob/master/docs/partner_platform/example_app_ipp_v3/example_invoice_add.php#L21 中的示例一样。

然后设置

$SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
$SalesItemLineDetail->setItemRef('8');
$SalesItemLineDetail->setUnitPrice(20 * 0.516129);
$SalesItemLineDetail->setQty(1.00000);

请注意 setItemRef 被硬编码为 8。

现在我想按名称搜索 SalesItemLineDetail 并获取参考。

只是想看看我是否能得到所有我尝试过的东西,

$pref->query($Context, $realm, "SELECT * FROM SalesItemLineDetail");

通常我们 query 提供服务。在我的例子中是 $pref

我试过了,InvoiceServiceSalesOrderServicePreferencesServiceItemService,但我没有得到任何结果。

请帮我按名称在 Invoice 中找到一个 Product / Service 并获取它的引用。

提前致谢

您不能按 SalesLineItemDetail 搜索。 Intuit 不支持它。

如果您只想在现有发票中查找 ItemRef,您可以先查询发票:

$list = $InvoiceService->query($Context, $realm, "SELECT *, Line.* FROM Invoice WHERE Id = '5' ");

然后遍历订单项以获取数据:

for ($i = 0; $i < $num_lines; $i++)
{
    $Line = $Invoice->getLine($i);

    if ($Line->getDetailType() == 'SalesItemLineDetail')
    {
        $Detail = $Line->getSalesItemLineDetail();
        $item_id = $Detail->getItemRef();

    }
}

我想出来了!

我们需要的是ItemService。我就是这样做的。

$ItemService = new \QuickBooks_IPP_Service_Item();
$response = $ItemService->query($Context, $realm, "SELECT * FROM Item where Name = 'Services'");

$response 我得到了 ID。这样我就不需要硬编码任何 ID。

希望这可以帮助遇到此问题的任何人。