public function save(Customer $customer) { $data = array('identification' => $customer->getIdentification(), 'identification_type' => $customer->getIdentificationType(), 'first_name' => $customer->getFirstName(), 'last_name' => $customer->getLastName(), 'emails' => $customer->getEmails(), 'addresses' => $customer->getAddresses(), 'phones' => $customer->getPhones(), 'zipcode' => $customer->getZipcode(), 'company' => $customer->getCompany(), 'manager' => $customer->getManager(), 'webpage' => $customer->getWebpage(), 'birthday' => date($customer->getBirthday(), time()), 'alias' => $customer->getAlias(), 'description' => $customer->getDescription(), 'city' => $customer->getCity()); $id = (int) $customer->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; } } }