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

항상 false를 반환합니다.이 때문에 인보이스 또는 배송을 생성 할 수 없습니다.Magento caninvoice 항상 false 반환

답변

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