Exemple #1
0
 /**
  * Create new invoice item and save
  *
  * @param RM_Holder_Invoice 	$obInvoice
  * @param RM_Holder_iHolderable 	$obEntity
  * @return RM_Holder_Invoice_Item
  */
 public function createInvoiceItem(&$itemsList, RM_Holder_Invoice $obInvoice, RM_Holder_iHolderable $obEntity)
 {
     if (!isset($itemsList[$obEntity->guidType()][$obEntity->id()])) {
         $itemsList[$obEntity->guidType()][$obEntity->id()] = $this->_storage['invoice_item']->createObject(array('invoice_id' => $obInvoice->id(), 'entity_id' => $obEntity->id(), 'entity_type' => $obEntity->guidType(), 'invoice_state' => RM_Holder_Invoice_Item_State::ADD, 'cdate' => M('Date')->dbDateTime()));
     } elseif ($itemsList[$obEntity->guidType()][$obEntity->id()]->getState()->getName() == RM_Holder_Invoice_Item_State::DEL) {
         $itemsList[$obEntity->guidType()][$obEntity->id()]->changeState(RM_Holder_Invoice_Item_State::ADD);
     }
     return $itemsList[$obEntity->guidType()][$obEntity->id()]->save();
 }
Exemple #2
0
 /**
  * Remove equipment from invoice
  *
  * @param 		RM_Holder_iHolderable $obEntity
  * @return 		void
  */
 public function removeEntity(RM_Holder_iHolderable $obEntity)
 {
     if (!$this->canChangeItemState()) {
         return FALSE;
     }
     $this->_items();
     if ($this->is_deleted || $this->state == RM_Holder_Invoice_State::CLOSED) {
         throw new RM_Base_Exception_BadUsage(__METHOD__ . ' : change closed invoice');
     }
     if (!isset($this->_items[$obEntity->guidType()][$obEntity->id()])) {
         throw new RM_Base_Exception_BadUsage(__METHOD__ . ' : remove unknown entity');
     }
     if (!$this->_items[$obEntity->guidType()][$obEntity->id()]->changeState(RM_Holder_Invoice_Item_State::DEL)) {
         return FALSE;
     }
     $this->_items[$obEntity->guidType()][$obEntity->id()]->mdate = M('Date')->dbDateTime();
     if ($this->_items[$obEntity->guidType()][$obEntity->id()]->save()) {
         unset($this->_items[$obEntity->guidType()][$obEntity->id()]);
         $obEntity->setInvoice();
         $obEntity->save();
     }
     return TRUE;
 }