Esempio n. 1
0
 /**
  * @param IFormInterface $Stage
  * @param TblCommodity   $tblCommodity
  * @param                $Commodity
  *
  * @return IFormInterface|string
  */
 public function executeEditCommodity(IFormInterface &$Stage = null, TblCommodity $tblCommodity, $Commodity)
 {
     /**
      * Skip to Frontend
      */
     if (null === $Commodity) {
         return $Stage;
     }
     $Error = false;
     if (isset($Commodity['Name']) && empty($Commodity['Name'])) {
         $Stage->setError('Commodity[Name]', 'Bitte geben Sie einen Namen an');
         $Error = true;
     } else {
         if (isset($Commodity['Name']) && $tblCommodity->getName() !== $Commodity['Name'] && (new Data($this->Binding))->entityCommodityByName($Commodity['Name'])) {
             $Stage->setError('Commodity[Name]', 'Die Leistung exisitiert bereits.
             Bitte geben Sie eine anderen Name an');
             $Error = true;
         }
     }
     if (!$Error) {
         if ((new Data($this->Binding))->actionEditCommodity($tblCommodity, $Commodity['Name'], $Commodity['Description'], $this->entityCommodityTypeById($Commodity['Type']))) {
             $Stage .= new Success('Änderungen gespeichert, die Daten werden neu geladen...') . new Redirect('/Billing/Inventory/Commodity', 1);
         } else {
             $Stage .= new Danger('Änderungen konnten nicht gespeichert werden');
         }
     }
     return $Stage;
 }
Esempio n. 2
0
 /**
  * @param TblCommodity  $tblCommodity
  * @param TblItem       $tblItem
  * @param TblBasket     $tblBasket
  * @param TblBasketItem $tblBasketItem
  * @param TblInvoice    $tblInvoice
  */
 private function actionCreateInvoiceItem(TblCommodity $tblCommodity, TblItem $tblItem, TblBasket $tblBasket, TblBasketItem $tblBasketItem, TblInvoice $tblInvoice)
 {
     $Entity = new TblInvoiceItem();
     $Entity->setCommodityName($tblCommodity->getName());
     $Entity->setCommodityDescription($tblCommodity->getDescription());
     $Entity->setItemName($tblItem->getName());
     $Entity->setItemDescription($tblItem->getDescription());
     if ($tblCommodity->getTblCommodityType()->getName() == 'Einzelleistung') {
         $Entity->setItemPrice($tblBasketItem->getPrice());
     } else {
         $Entity->setItemPrice($tblBasketItem->getPrice() / Basket::useService()->countPersonByBasket($tblBasket));
     }
     $Entity->setItemQuantity($tblBasketItem->getQuantity());
     $Entity->setTblInvoice($tblInvoice);
     $this->Connection->getEntityManager()->saveEntity($Entity);
     Protocol::useService()->createInsertEntry($this->Connection->getDatabase(), $Entity);
     $tblItemAccountList = Commodity::useService()->entityItemAccountAllByItem($tblItem);
     /** @var TblItemAccount $tblItemAccount */
     foreach ($tblItemAccountList as $tblItemAccount) {
         $EntityItemAccount = new TblInvoiceAccount();
         $EntityItemAccount->setTblInvoiceItem($Entity);
         $EntityItemAccount->setServiceBilling_Account($tblItemAccount->getServiceBilling_Account());
         $this->Connection->getEntityManager()->saveEntity($EntityItemAccount);
         Protocol::useService()->createInsertEntry($this->Connection->getDatabase(), $EntityItemAccount);
     }
 }