2013-07-05 124 views

回答

4

也許訂單被取消,在完成/關閉狀態。

也許它在付款審查舉行或靜止。

可能的項目沒有數量的發票> 0或項目已鎖定,發票......

我會建議把日誌中的每個在下面顯示的方法中的IF語句的類Mage_Sales_Model_Order

/** 
    * 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; 
    }