gpt4 book ai didi

php - 为部分订单开具发票;总数未更新

转载 作者:搜寻专家 更新时间:2023-10-31 21:17:26 25 4
gpt4 key购买 nike

在我们的订单流程中,可以发送部分订单的发票。因此,当有几个订单行正在发货时,还必须发送发票。

为了使这成为可能,我使用了这段代码:

 $invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice($items);

if (!$invoice->getTotalQty()) {
Mage::throwException(Mage::helper('core')->__('Cannot create an invoice without products.'));
}

$invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);
$invoice->register();
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($invoice)
->addObject($invoice->getOrder());

$transactionSave->save();

$invoice->sendEmail();
$invoice->setEmailSent(true);
$invoice->save();

$items 变量是一个数组,其中包含订单 ID 和要开具发票的产品数量。

创建的发票显示了要开具发票的正确产品,但总计未更新。总计仍然是完整订单的总计,而不是部分发票。

我可能必须更新或重新计算总数,但找不到正确的代码来强制更新。

身边有没有人能帮我指明正确的方向?

最佳答案

嗯,看来我找到问题了。上述功能可以在管理员界面中手动执行。上面包含的代码我只通过更改 Magento 的核心文件来工作。

如果您将 Mage_Sales_Model_Service_Order 的第 103 行从 continue; 更改为 $qty = 0;,该功能有效。

简而言之,这就是发生的事情。随着继续,第二行项目没有添加到发票使发票认为当前项目是整个订单的最后一个项目,因此需要开具完整未结金额的发票。在我的例子中,我想开具发票的发票和我不想开具发票的行。

我已将其作为 Magento 问题列表中的问题提交。

关于php - 为部分订单开具发票;总数未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5700667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com