/** * @param \Empresa\Entity\Empresa * @return ResultInterface */ public function save(EmpresaEntity $empresa) { $db = $this->getDbAdapter(); $con = $db->getDriver()->getConnection(); $con->beginTransaction(); try { if (!$empresa->getId()) { $arrUser = $this->usuarioMapper->getHydrator()->extract($empresa->getUsuario()); unset($arrUser['id']); $arrEnd = $this->enderecoMapper->getHydrator()->extract($empresa->getEndereco()); unset($arrEnd['id']); $empresa->setUsrId($this->usuarioMapper->insert($arrUser)->getGeneratedValue())->setEnderecoId($this->enderecoMapper->insert($arrEnd)->getGeneratedValue()); parent::insert($empresa); } else { //entitys to array $arrayUser = $this->usuarioMapper->getHydrator()->extract($empresa->getUsuario()); $usr_id = $arrayUser['id']; unset($arrayUser['id']); $arrayEnd = $this->enderecoMapper->getHydrator()->extract($empresa->getEndereco()); $end_id = $arrayEnd['id']; unset($arrayEnd['id']); $this->usuarioMapper->update($arrayUser, sprintf("usr_id = %s", $usr_id)); $this->enderecoMapper->update($arrayEnd, sprintf("end_id = %s", $end_id)); $empresa->setUsrId($empresa->getUsuario()->getId())->setEnderecoId($empresa->getEndereco()->getId()); $arrayEmp = $this->getHydrator()->extract($empresa); $emp_id = $arrayEmp['id']; unset($arrayEmp['id']); parent::update($arrayEmp, sprintf("id = %s", $emp_id)); } $con->commit(); } catch (Exception $e) { $con->rollback(); throw $e; } }
public function saveEmpresa($dados, $files = null) { $id = $dados['id'] ? $dados['id'] : null; $usr_id = $dados['usr_id'] ? $dados['usr_id'] : null; $end_id = $dados['end_id'] ? $dados['end_id'] : null; $status = $dados['status'] ? $dados['status'] : 'A'; $origem = $dados['origem'] ? $dados['origem'] : 'C'; $certDig = $files['certificado-digital'] ? $files['certificado-digital'] : $dados['certificado-digital']; $contrato = $files['contrato'] ? $files['contrato'] : $dados['contrato']; $usuarioEntity = new UsuarioEntity(); $usuarioEntity->setId($usr_id)->setDataCadastro(date('Y-m-d H:i:s'))->setEmail($dados['email'])->setLogin($dados['login'])->setSenha($dados['senha'])->setOrigem($origem)->setStatus($status); $enderecoEntity = new EnderecoEntity(); $enderecoEntity->setId($end_id)->setLogradouro($dados['logradouro'])->setNumero($dados['numero'])->setComplemento($dados['complemento'])->setBairro($dados['bairro'])->setMunicipio($dados['municipio'])->setCep($dados['cep'])->setEstado($dados['estado']); $empresaEntity = new EmpresaEntity(); $empresaEntity->setId($id)->setUsuario($usuarioEntity)->setRazaoSocial($dados['razao-social'])->setNomeFantasia($dados['nome-fantasia'])->setCnpj($dados['cnpj'])->setEndereco($enderecoEntity)->setInscricaoMunicipal($dados['inscricao-municipal'])->setInscricaoEstadual($dados['inscricao-estadual'])->setCNAEPrincipal($dados['cnae-principal'])->setCNAESecundario($dados['cnae-secundario'])->setRegimeTributacao($dados['regime-tributacao'])->setValorHonorarios(Money::toFloat($dados['valor-honorarios']))->setVencimentoHonorarios(Conversion::conversion($dados['vencimento-honorarios']))->setVencimentoProcuracaoCaixa(Conversion::conversion($dados['vencimento-procuracao-caixa']))->setVencimentoProcuracaoRFB(Conversion::conversion($dados['vencimento-procuracao-rfb']))->setCertificadoDigital($certDig)->setSenhaWeb($dados['senha-web'])->setSenhaFazenda($dados['senha-fazenda'])->setTipoEmpresa($dados['tipo-empresa'])->setContrato($contrato)->setVencimentoContrato(Conversion::conversion($dados['vencimento-contrato'])); try { $mapperEmpresa = $this->getService()->get('Application\\Mapper\\Empresa'); $id = $mapperEmpresa->save($empresaEntity); } catch (\Exception $e) { throw $e; } return $id; }