在快速手册中添加与客户的日记条目时出现问题 - 消息:在构建引用类型时,传递的数组没有用于'Value'键



我浏览了这个文档"https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/journalentry">

并尝试添加具有客户行的日记账分录,如以下代码所示:

$journal_entry_create['TxnDate'] = date('Y-m-d');
$journal_entry_line = array(
'Amount' => $amount,
'DetailType' => 'JournalEntryLineDetail',

'JournalEntryLineDetail' => array(
'PostingType' => Credit,
'Entity' => array(
'Type' => 'Customer',
'EntityRef' => array(
'type' => 'Customer',
'value' => "2",
'name' => 'Abc'
)
),
'AccountRef' => array(
'name' => 'Account Name',
'value' => '1'
),
)
);
$journal_entry_lines[] = $journal_entry_line;
$journal_entry_create['Line'] = $journal_entry_lines;
$journal_entry_receipt_create = QBJournalEntry::create($journal_entry_create);
$journal_entry_receipt_create_result = $dataService->Add($journal_entry_receipt_create);

没有EntityRef,它可以正常工作,但当我添加EntityRef时,它会给我错误"消息:构造ReferenceType时,传递的数组没有'Value'的键">

我自己刚刚遇到这个问题。他们确实解决了这个问题,但似乎根本没有记录下来,也没有告诉任何人。在源代码中找到修复程序。您需要在"JournalEntryLineDetail"下使用"JournalEntryNentity"而不是"Entity",如下所示:

'JournalEntryLineDetail' => array(
'PostingType' => "Credit",
'JournalEntryEntity' => array(
'Type' => 'Customer',
'EntityRef' => array(
'value' => "2"
)
),
'AccountRef' => array(
'name' => 'Account Name',
'value' => '1'
),
)

此外,我还使用了PHP SDK V3中的FacadeHelper(我不确定它是否能与您使用的方法一起使用):

use QuickBooksOnlineAPIFacadesFacadeHelper;
...
$journal_entry_receipt_create = FacadeHelper::reflectArrayToObject('JournalEntry', $journal_entry_create);
$journal_entry_receipt_create_result = $dataService->Add($journal_entry_receipt_create);

我知道这对你来说可能太晚了,OP,但希望它能帮助其他人!

最新更新