public function detailsAction()
 {
     $container = new Container('output_inventory');
     $viewModel = new ViewModel();
     if (!$container->id) {
         return $this->redirect()->toRoute('process/output_inventory');
     }
     $outputInventoryId = $container->id;
     $user = $container->user;
     $outputInventory = $this->getOutputInventoryTable()->get($outputInventoryId, $user);
     $form = new DetailsOutputInventoryForm();
     $detailsOutputInventory = new DetailsOutputInventory();
     $form->setInputFilter($detailsOutputInventory->getInputFilter());
     $request = $this->getRequest();
     $data = $request->getPost()->toArray();
     $form->setData($data);
     if ($request->isPost()) {
         if ($form->isValid()) {
             $data['output_inventory'] = $outputInventoryId;
             $data['serial'] = $data['product'];
             $data['cost'] = str_replace('.', '', $data['cost']);
             $productsReceiveInventory = $this->getProductsReceiveInventoryTable()->getBySerial($data['serial']);
             $detailsReceiveInventory = $productsReceiveInventory->getDetailsReceiveInventory();
             $number = $productsReceiveInventory->getNumber();
             $product = $productsReceiveInventory->getProduct();
             $data['product'] = $product;
             $this->getProductsReceiveInventoryTable()->update($detailsReceiveInventory, $number);
             $detailsOutputInventory->exchangeArray($data);
             $this->getDetailsOutputInventoryTable()->save($detailsOutputInventory);
             return $this->redirect()->toRoute('process/output_inventory/add/details');
         }
     }
     $detailsOutputInventory = $this->getDetailsOutputInventoryTable()->get($container->id);
     $viewModel->setVariable('form', $form);
     $viewModel->setVariable('outputInventory', $outputInventory);
     $viewModel->setVariable('config', $this->config);
     $viewModel->setVariable('detailsOutputInventory', $detailsOutputInventory);
     $viewModel->setTemplate("process/output-inventory/details");
     return $viewModel;
 }
 public function save(DetailsOutputInventory $detailsOutputInventory)
 {
     $data = array('output_inventory' => $detailsOutputInventory->getOutputInventory(), 'product' => $detailsOutputInventory->getProduct(), 'cost' => $detailsOutputInventory->getCost(), 'iva' => $detailsOutputInventory->getIva(), 'serial' => $detailsOutputInventory->getSerial(), 'register_date' => date("Y-m-d H:i:s", time()), 'update_date' => date("Y-m-d H:i:s", time()));
     $id = (int) $detailsOutputInventory->getId();
     if ($id == 0) {
         $this->tableGateway->insert($data);
         $id = $this->tableGateway->getLastInsertValue();
         if ($id) {
             return $id;
         } else {
             return false;
         }
     } else {
         if ($this->get($id)) {
             $this->tableGateway->update($data, array('id' => $id));
             return $id;
         } else {
             return false;
         }
     }
 }