Magento总是可以回复虚假

时间:2013-07-05 17:02:54

标签: php magento magento-1.7

  if (!$this->_current_order->canInvoice()) {
         $this->Msg[] = 'Can not create Invoice';
         return false;
  }

这总是返回false。因此我无法创建发票或发货。

1 个答案:

答案 0 :(得分:4)

在完成/关闭状态下,订单可能会被取消。

可能已经或仍在付款审核中。

可能项目没有发票数量> 0或项目被锁定为发票......

我建议在下面显示的Mage_Sales_Model_Order

方法中的每个IF语句中记录一条日志
    /**
     * Retrieve order invoice availability
     *
     * @return bool
     */
    public function canInvoice()
    {
        if ($this->canUnhold() || $this->isPaymentReview()) {
            return false;
        }
        $state = $this->getState();
        if ($this->isCanceled() || $state === self::STATE_COMPLETE || $state === self::STATE_CLOSED) {
            return false;
        }

        if ($this->getActionFlag(self::ACTION_FLAG_INVOICE) === false) {
            return false;
        }

        foreach ($this->getAllItems() as $item) {
            if ($item->getQtyToInvoice()>0 && !$item->getLockedDoInvoice()) {
                return true;
            }
        }
        return false;
    }