public function save(ReceiveInventory $receiveInventory)
 {
     $data = array('register_date' => date("Y-m-d H:i:s", time()), 'user' => $receiveInventory->getUser(), 'customer' => $receiveInventory->getCustomer(), 'payment_method' => $receiveInventory->getPaymentMethod(), 'shipment' => $receiveInventory->getShipment(), 'guide' => $receiveInventory->getGuideNumber(), 'invoice' => $receiveInventory->getInvoice(), 'invoice_file' => $receiveInventory->getInvoiceFile(), 'observations' => $receiveInventory->getObservation());
     $id = (int) $receiveInventory->getId();
     $params = array();
     $params['table'] = $this->tableGateway->getTableName();
     $params['operation'] = 1;
     $params['data'] = json_encode($data);
     if ($id == 0) {
         $this->tableGateway->insert($data);
         $id = $this->tableGateway->getLastInsertValue();
         if ($id) {
             $params['id'] = $id;
             $this->featureSet->getEventManager()->trigger("log.save", $this, $params);
             return $id;
         } else {
             return false;
         }
     } else {
         if ($this->get($id)) {
             $params['id'] = $id;
             $params['operation'] = 2;
             $this->featureSet->getEventManager()->trigger("log.save", $this, $params);
             $this->tableGateway->update($data, array('id' => $id));
             return $id;
         } else {
             return false;
         }
     }
 }