public static function updateImportador()
 {
     $ImportadorTO = new ImportadorTO();
     $ImportadorDao = new ImportadorDao();
     $ImportadorTO->nome_importador = isset($_POST['nome_importador']) ? $_POST['nome_importador'] : '';
     $ImportadorTO->id = isset($_POST['id']) ? $_POST['id'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O nome do Importador é obrigatório')->set('nome_importador', $ImportadorTO->nome_importador)->is_required();
     $validator->set_msg('O codigo do Importador é obrigatório')->set('id', $ImportadorTO->id)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     $empreendimentosAssociados = $_POST['empreendimentos'];
     if ($ImportadorDao->updateImportador($ImportadorTO)) {
         if (!$ImportadorDao->removeEmpreendimentos($ImportadorTO->id)) {
             Flight::halt(500, 'Erro ao remover empreendimentos associados');
         } else {
             foreach ($empreendimentosAssociados as $key => $empreendimento) {
                 if (!$ImportadorDao->associarEmpreendimento($ImportadorTO->id, $empreendimento['id'])) {
                     Flight::halt(500, 'Erro ao associar empreendimento');
                 }
             }
         }
         Flight::halt(200);
     } else {
         Flight::halt(500, 'erro ao atualizar');
     }
 }
 public static function update()
 {
     try {
         $SerieDocumentoFiscalTO = new SerieDocumentoFiscalTO();
         $SerieDocumentoFiscalDao = new SerieDocumentoFiscalDao();
         $SerieDocumentoFiscalTO->id = $_POST['id'];
         $SerieDocumentoFiscalTO->cod_empreendimento = isset($_POST['cod_empreendimento']) ? $_POST['cod_empreendimento'] : NULL;
         $SerieDocumentoFiscalTO->serie_documento_fiscal = isset($_POST['serie_documento_fiscal']) ? $_POST['serie_documento_fiscal'] : NULL;
         $SerieDocumentoFiscalTO->num_modelo_documento_fiscal = isset($_POST['num_modelo_documento_fiscal']) ? $_POST['num_modelo_documento_fiscal'] : NULL;
         $SerieDocumentoFiscalTO->num_ultimo_documento_fiscal = isset($_POST['num_ultimo_documento_fiscal']) ? $_POST['num_ultimo_documento_fiscal'] : NULL;
         $validator = new DataValidator();
         $validator->set_msg('Este campo é obrigatório')->set('descricao_categoria', $SerieDocumentoFiscalTO->cod_empreendimento)->is_required();
         $validator->set_msg('Este campo é obrigatório')->set('descricao_categoria', $SerieDocumentoFiscalTO->serie_documento_fiscal)->is_required();
         $validator->set_msg('Este campo é obrigatório')->set('descricao_categoria', $SerieDocumentoFiscalTO->num_modelo_documento_fiscal)->is_required();
         $validator->set_msg('Este campo é obrigatório')->set('descricao_categoria', $SerieDocumentoFiscalTO->num_ultimo_documento_fiscal)->is_required();
         if (!$validator->validate()) {
             Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
             return;
         }
         $conn = Conexao::getInstance();
         $conn->beginTransaction();
         $SerieDocumentoFiscalDao->update($SerieDocumentoFiscalTO);
         $conn->commit();
         Flight::halt(201);
     } catch (Exception $e) {
         $conn->rollback();
         echo $e->getMessage();
     }
 }
 public static function updateCategoria()
 {
     $CategoriaTO = new CategoriaTO();
     $CategoriaDao = new CategoriaDao();
     $CategoriaTO->descricao_categoria = isset($_POST['descricao_categoria']) ? $_POST['descricao_categoria'] : '';
     $CategoriaTO->id = isset($_POST['id']) ? $_POST['id'] : '';
     $CategoriaTO->id_pai = isset($_POST['id_pai']) ? $_POST['id_pai'] : NULL;
     $validator = new DataValidator();
     $validator->set_msg('O nome do Categoria é obrigatório')->set('descricao_categoria', $CategoriaTO->descricao_categoria)->is_required();
     $validator->set_msg('O codigo do Categoria é obrigatório')->set('id', $CategoriaTO->id)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     $empreendimentosAssociados = $_POST['empreendimentos'];
     if ($CategoriaDao->updateCategoria($CategoriaTO)) {
         if (!$CategoriaDao->removeEmpreendimentos($CategoriaTO->id)) {
             Flight::halt(500, 'Erro ao remover empreendimentos associados');
         } else {
             foreach ($empreendimentosAssociados as $key => $empreendimento) {
                 if (!$CategoriaDao->associarEmpreendimento($CategoriaTO->id, $empreendimento['id'])) {
                     Flight::halt(500, 'Erro ao associar empreendimento');
                 }
             }
         }
         Flight::halt(200);
     } else {
         Flight::halt(500, 'Erro ao atualizar dados');
     }
 }
 public static function update()
 {
     $EspecializacaoNcmTO = new EspecializacaoNcmTO();
     $EspecializacaoNcmDao = new EspecializacaoNcmDao();
     $EspecializacaoNcmTO->cod_especializacao_ncm = isset($_POST['cod_especializacao_ncm']) ? $_POST['cod_especializacao_ncm'] : '';
     $EspecializacaoNcmTO->cod_ncm = isset($_POST['cod_ncm']) ? $_POST['cod_ncm'] : '';
     $EspecializacaoNcmTO->ex_tipi = isset($_POST['ex_tipi']) ? $_POST['ex_tipi'] : '';
     $EspecializacaoNcmTO->dsc_especializacao_ncm = isset($_POST['dsc_especializacao_ncm']) ? $_POST['dsc_especializacao_ncm'] : '';
     $EspecializacaoNcmTO->cod_empreendimento = isset($_POST['cod_empreendimento']) ? $_POST['cod_empreendimento'] : '';
     $validator = new DataValidator();
     $validator->set_msg('Este Campo é Obrigatório')->set('cod_especializacao_ncm', $EspecializacaoNcmTO->cod_especializacao_ncm)->is_required();
     $validator->set_msg('Este Campo é Obrigatório')->set('cod_ncm', $EspecializacaoNcmTO->cod_ncm)->is_required();
     $validator->set_msg('Este Campo é Obrigatório')->set('dsc_especializacao_ncm', $EspecializacaoNcmTO->dsc_especializacao_ncm)->is_required();
     $validator->set_msg('Este Campo é Obrigatório')->set('cod_empreendimento', $EspecializacaoNcmTO->cod_empreendimento)->is_required();
     $validator = new DataValidator();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     if ($EspecializacaoNcmDao->update($EspecializacaoNcmTO)) {
         Flight::halt(200);
     } else {
         Flight::halt(500, 'erro ao atualizar');
     }
 }
 public static function saveHistoricoPaciente()
 {
     $HistoricoPacienteTO = new HistoricoPacienteTO();
     $HistoricoPacienteDao = new HistoricoPacienteDao();
     $VendaDao = new VendaDao();
     try {
         $HistoricoPacienteTO->id_paciente = isset($_POST['id_paciente']) ? $_POST['id_paciente'] : NULL;
         $HistoricoPacienteTO->id_usuario = isset($_POST['id_usuario']) ? $_POST['id_usuario'] : NULL;
         $HistoricoPacienteTO->id_profissional = isset($_POST['id_profissional']) ? $_POST['id_profissional'] : NULL;
         $HistoricoPacienteTO->id_acao = isset($_POST['id_acao']) ? $_POST['id_acao'] : NULL;
         $HistoricoPacienteTO->descricao = isset($_POST['descricao']) ? $_POST['descricao'] : NULL;
         $HistoricoPacienteTO->dta = isset($_POST['dta']) ? $_POST['dta'] : NULL;
         $HistoricoPacienteTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : NULL;
         $validator = new DataValidator();
         $validator->set_msg('Campo obrigatório')->set('id_usuario', $HistoricoPacienteTO->id_usuario)->is_required();
         $validator->set_msg('Campo obrigatório')->set('id_acao', $HistoricoPacienteTO->id_acao)->is_required();
         $validator->set_msg('Campo obrigatório')->set('id_empreendimento', $HistoricoPacienteTO->id_empreendimento)->is_required();
         if (!$validator->validate()) {
             Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
             return;
         }
         $HistoricoPacienteDao->saveHistoricoPaciente($HistoricoPacienteTO);
         Flight::halt(201);
     } catch (Exception $e) {
         jsonException($e, 500);
     }
 }
 public static function saveCorProduto()
 {
     $CorProdutoDao = new CorProdutoDao();
     $nome_cor = isset($_POST['nome_cor']) ? $_POST['nome_cor'] : '';
     $empreendimentos = isset($_POST['empreendimentos']) ? $_POST['empreendimentos'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O nome da cor/sabor é obrigatório')->set('nome_cor', $nome_cor)->is_required();
     $validator->set_msg('Informe ao menos um empreendimento')->set('empreendimentos', $empreendimentos)->is_arr();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     $emp_cadastrados = $CorProdutoDao->CorProdutoExists($nome_cor, $empreendimentos);
     $change = is_bool($emp_cadastrados) ? true : !$emp_cadastrados['change'];
     $id_cor_produto = is_bool($emp_cadastrados) ? null : $emp_cadastrados['id_cor_produto'];
     $emp_cadastrados = is_bool($emp_cadastrados) ? $emp_cadastrados : $emp_cadastrados['empreendimentos'];
     if (is_bool($emp_cadastrados) && $emp_cadastrados == true) {
         $validator->_errors['nome_cor'][] = 'Está cor já está cadastrada';
     }
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     $empreendimentos = $emp_cadastrados;
     $last_id = $CorProdutoDao->saveCorProduto($nome_cor, $empreendimentos, $change, $id_cor_produto);
     if ($last_id) {
         Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('id' => $last_id)))->send();
     } else {
         Flight::halt(500, 'erro ao inserir cor');
     }
 }
 public static function updateProcedimento()
 {
     $ProcedimentoTO = new ProcedimentoTO();
     $ProcedimentoDao = new ProcedimentoDao();
     $ProcedimentoTO->id = $_POST['id'];
     $ProcedimentoTO->id_especialidade = isset($_POST['id_especialidade']) ? $_POST['id_especialidade'] : NULL;
     $ProcedimentoTO->cod_procedimento = isset($_POST['cod_procedimento']) ? $_POST['cod_procedimento'] : NULL;
     $ProcedimentoTO->id_empreendimento = $_POST['id_empreendimento'];
     $ProcedimentoTO->dsc_procedimento = isset($_POST['dsc_procedimento']) ? $_POST['dsc_procedimento'] : NULL;
     $ProcedimentoTO->vlr_procedimento = isset($_POST['vlr_procedimento']) ? $_POST['vlr_procedimento'] : NULL;
     $ProcedimentoTO->tma_procedimento = isset($_POST['tma_procedimento']) ? $_POST['tma_procedimento'] : NULL;
     $validator = new DataValidator();
     $validator->set_msg('Campo obrigatório')->set('cod_procedimento', $ProcedimentoTO->cod_procedimento)->is_required();
     $validator->set_msg('Campo obrigatório')->set('dsc_procedimento', $ProcedimentoTO->dsc_procedimento)->is_required();
     $validator->set_msg('Campo obrigatório')->set('id_especialidade', $ProcedimentoTO->id_especialidade)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     try {
         $ProcedimentoDao->updateProcedimento($ProcedimentoTO);
         Flight::halt(200);
     } catch (Exception $e) {
         Flight::halt(500, $e->getMessage());
     }
 }
 public static function saveDesejo()
 {
     $DesejoClienteTO = new DesejoClienteTO();
     $DesejosClienteDao = new DesejosClienteDao();
     $DesejoClienteTO->id_usuario = isset($_POST['id_usuario']) ? $_POST['id_usuario'] : '';
     $DesejoClienteTO->id_produto = isset($_POST['id_produto']) ? $_POST['id_produto'] : '';
     $DesejoClienteTO->qtd = isset($_POST['qtd']) ? $_POST['qtd'] : '';
     $DesejoClienteTO->sabor_desejado = isset($_POST['sabor_desejado']) ? $_POST['sabor_desejado'] : '';
     $DesejoClienteTO->data_enviado = isset($_POST['data_enviado']) ? $_POST['data_enviado'] : '';
     $DesejoClienteTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O cod do usuario é obrigatório')->set('id_usuario', $DesejoClienteTO->id_usuario)->is_required();
     $validator->set_msg('O cod do produto é obrigatório')->set('id_produto', $DesejoClienteTO->id_produto)->is_required();
     $validator->set_msg('A quantidade é obrigatória')->set('qtd', $DesejoClienteTO->qtd)->is_required();
     $validator->set_msg('O sabor é obrigatório')->set('sabor_desejado', $DesejoClienteTO->sabor_desejado)->is_required();
     $validator->set_msg('O cod do Empreendimento é obrigatório')->set('id_empreendimento', $DesejoClienteTO->id_empreendimento)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     try {
         $DesejosClienteDao->saveDesejo($DesejoClienteTO);
         Flight::halt(201);
     } catch (Exception $e) {
         Flight::halt(500, $e->getMessage());
     }
 }
 public static function updatePlanoConta()
 {
     $PlanoContasTO = new PlanoContasTO();
     $PlanoContasDao = new PlanoContasDao();
     $PlanoContasTO->id = isset($_POST['id']) ? $_POST['id'] : '';
     $PlanoContasTO->cod_plano = isset($_POST['cod_plano']) ? $_POST['cod_plano'] : '';
     $PlanoContasTO->dsc_plano = isset($_POST['dsc_plano']) ? $_POST['dsc_plano'] : '';
     $PlanoContasTO->id_plano_pai = isset($_POST['id_plano_pai']) ? $_POST['id_plano_pai'] : NULL;
     $validator = new DataValidator();
     $validator->set_msg('O id do plano é obrigatório')->set('id', $PlanoContasTO->cod_plano)->is_required();
     $validator->set_msg('O código do plano é obrigatório')->set('cod_plano', $PlanoContasTO->cod_plano)->is_required();
     $validator->set_msg('A descrição do plano é obrigatório')->set('dsc_plano', $PlanoContasTO->dsc_plano)->is_required();
     if (!is_null($PlanoContasTO->id_plano_pai)) {
         $validator->set_msg('O ID do plano pai não é valido')->set('id_plano_pai', $PlanoContasTO->id_plano_pai)->is_required();
     }
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     if ($PlanoContasDao->updatePlanoConta($PlanoContasTO)) {
         Flight::halt(200);
     } else {
         Flight::halt(500, 'erro ao atualizar');
     }
 }
 public static function updateFaixaDescontoPermitido()
 {
     $FaixaDescontoPermitidoTO = new FaixaDescontoPermitidoTO();
     $FaixaDescontoPermitidoDao = new FaixaDescontoPermitidoDao();
     $validator = new DataValidator();
     $FaixaDescontoPermitidoTO->id = isset($_POST["id"]) ? $_POST["id"] : null;
     $FaixaDescontoPermitidoTO->perc_desconto_max = isset($_POST["perc_desconto_max"]) ? $_POST["perc_desconto_max"] : null;
     $FaixaDescontoPermitidoTO->id_empreendimento = isset($_POST["id_empreendimento"]) ? $_POST["id_empreendimento"] : null;
     $usuarios = isset($_POST["usuarios"]) && count($_POST["usuarios"]) > 0 ? $_POST["usuarios"] : false;
     $delete_usuarios = isset($_POST["delete_usuarios"]) && count($_POST["delete_usuarios"]) > 0 ? $_POST["delete_usuarios"] : false;
     $validator->set_msg('O ID da faixa é obrigatório')->set('id', $FaixaDescontoPermitidoTO->id)->is_required();
     $validator->set_msg('Informe o valor máximo de desconto desta faixa')->set('perc_desconto_max', $FaixaDescontoPermitidoTO->perc_desconto_max)->is_required();
     $validator->set_msg('O id do empreendimento é obrigatório')->set('id_empreendimento', $FaixaDescontoPermitidoTO->id_empreendimento)->is_required();
     if ($FaixaDescontoPermitidoDao->verificarFaixa($FaixaDescontoPermitidoTO->perc_desconto_max, $FaixaDescontoPermitidoTO->id_empreendimento, $FaixaDescontoPermitidoTO->id) && $FaixaDescontoPermitidoTO->perc_desconto_max > 0) {
         $validator->_errors['perc_desconto_max'][] = 'Já existe outra faixa com este valor máximo ';
     }
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     $lastInsertId = $FaixaDescontoPermitidoDao->updateFaixaDescontoPermitido($FaixaDescontoPermitidoTO);
     if ($lastInsertId) {
         $UsuarioFaixaDescontoPermitidoDao = new UsuarioFaixaDescontoPermitidoDao();
         $UsuarioFaixaDescontoPermitidoTO = new UsuarioFaixaDescontoPermitidoTO();
         if ($usuarios) {
             $Dao = new Dao();
             $Dao->setTimeZone($FaixaDescontoPermitidoTO->id_empreendimento);
             $UsuarioFaixaDescontoPermitidoTO->dta_entrada = date('Y-m-d H:i:s');
             foreach ($usuarios as $usuario) {
                 $UsuarioFaixaDescontoPermitidoTO->id_usuario = $usuario['id_usuario'];
                 $UsuarioFaixaDescontoPermitidoTO->id_faixa_desconto_permitido = $FaixaDescontoPermitidoTO->id;
                 $UsuarioFaixaDescontoPermitidoTO->flg_ativo = $usuario['flg_ativo'];
                 $UsuarioFaixaDescontoPermitidoTO->id_responsavel_atv = $usuario['id_responsavel_atv'];
                 if (!$UsuarioFaixaDescontoPermitidoDao->saveUsuarioFaixaDescontoPermitido($UsuarioFaixaDescontoPermitidoTO)) {
                     Flight::halt(500, 'Erro ao vincular usuario a faixa ');
                 }
             }
         }
         if ($delete_usuarios) {
             foreach ($delete_usuarios as $usuario) {
                 if (!$UsuarioFaixaDescontoPermitidoDao->deleteUsuarioFaixaDescontoPermitido($usuario['id_rel'])) {
                     Flight::halt(500, 'Erro ao deletar usuario');
                 }
             }
         }
         Flight::halt(201);
     } else {
         Flight::halt(500, 'Erro ao inserir Desconto');
     }
 }
 public static function saveOrdemProducao()
 {
     $OrdemProducaoTO = new OrdemProducaoTO();
     $OrdemProducaoDao = new OrdemProducaoDao();
     $OrdemProducaoTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : '';
     $OrdemProducaoTO->id_responsavel = isset($_POST['id_responsavel']) ? $_POST['id_responsavel'] : '';
     $OrdemProducaoTO->id_status = isset($_POST['id_status']) ? $_POST['id_status'] : 1;
     $OrdemProducaoTO->id_deposito = isset($_POST['id_deposito']) ? $_POST['id_deposito'] : '';
     $itens = isset($_POST['itens']) && is_array($_POST['itens']) ? $_POST['itens'] : false;
     $Dao = new Dao();
     $Dao->setTimeZone($OrdemProducaoTO->id_empreendimento);
     $OrdemProducaoTO->dta_create = date('Y-m-d H:m:i');
     $validator = new DataValidator();
     $validator->set_msg('O Responsavel é obrigatório')->set('id_responsavel', $OrdemProducaoTO->id_responsavel)->is_required();
     $validator->set_msg('O Depósito é obrigatório')->set('nme_deposito', $OrdemProducaoTO->id_deposito)->is_required();
     if ($itens == false) {
         $validator->_errors['itens'][] = 'É obrigatório informar ao menos um produto a ser produzido';
     }
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     try {
         $id_ordem_producao = $OrdemProducaoDao->saveOrdemProducao($OrdemProducaoTO);
         if (!$id_ordem_producao) {
             Flight::halt(500, 'Erro ao cadastrar ordem de producão');
         }
         $ItensOrdemProducaoTO = new ItensOrdemProducaoTO();
         $ItensOrdemProducaoDao = new ItensOrdemProducaoDao();
         foreach ($itens as $key => $value) {
             $ItensOrdemProducaoTO->id_ordem_producao = $id_ordem_producao;
             $ItensOrdemProducaoTO->id_produto = $value['id'];
             $ItensOrdemProducaoTO->qtd = $value['qtd'];
             if (!$ItensOrdemProducaoDao->saveItensOrdemProducao($ItensOrdemProducaoTO)) {
                 Flight::halt(500, 'Erro ao cadastrar itens ordem de producão');
             }
         }
         if (!$OrdemProducaoDao->savechangeOrdemProducao($id_ordem_producao, $OrdemProducaoTO->id_status, $OrdemProducaoTO->dta_create)) {
             Flight::halt(500, 'Erro ao cadastrar mudança de status');
         }
         Flight::halt(201);
     } catch (Exception $e) {
         Flight::halt(500, $e->getMessage());
     }
 }
 public static function saveDevolucao()
 {
     $PagamentoTO = new PagamentoTO();
     $PagamentoDao = new PagamentoDao();
     $validator = new DataValidator();
     $PagamentoTO->id_cliente = isset($_POST['id_cliente']) ? $_POST['id_cliente'] : '';
     $PagamentoTO->id_forma_pagamento = 7;
     $PagamentoTO->valor_pagamento = isset($_POST['valor_pagamento']) ? removeMaskNumber($_POST['valor_pagamento']) : '';
     $PagamentoTO->status_pagamento = 1;
     $validator->set_msg('O codigo do cliente é obrigatório')->set('id_cliente', $PagamentoTO->id_cliente)->is_num();
     $validator->set_msg('O codigo do empreendimeto é obrigatório')->set('id_empreendimento', $PagamentoTO->id_cliente)->is_num();
     $validator->set_msg('O valor do pagamento é obrigatório')->set('id_cliente', $PagamentoTO->id_cliente)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     $id_pagamento = $PagamentoDao->savePagamento($PagamentoTO);
     if ($id_pagamento) {
         $DevolucaoTO = new DevolucaoTO();
         $DevolucaoDao = new DevolucaoDao();
         $DevolucaoTO->id_cliente = $PagamentoTO->id_cliente;
         $DevolucaoTO->id_pagamento = $id_pagamento;
         $DevolucaoTO->id_empreendimento = $_POST['id_empreendimento'];
         $DevolucaoTO->obs_devolucao = $_POST['obs_devolucao'];
         $id_devolucao = $DevolucaoDao->saveDevolucao($DevolucaoTO);
         if ($id_devolucao) {
             $ItemDevolucaoTO = new ItemDevolucaoTO();
             $ItemDevolucaoDao = new ItemDevolucaoDao();
             foreach ($_POST['itens'] as $item) {
                 $ItemDevolucaoTO->id_devolucao = $id_devolucao;
                 $ItemDevolucaoTO->id_produto = $item["id_produto"];
                 $ItemDevolucaoTO->qtd = $item["qtd"];
                 $ItemDevolucaoTO->valor_real_devolucao = removeMaskNumber($item["valor_real_devolucao"]);
                 if ($ItemDevolucaoDao->saveItemDevolucao($ItemDevolucaoTO)) {
                 } else {
                     Flight::response()->status(500)->header('Content-Type', 'application/json')->write(json_encode(array("msg_error" => "Erro ao cadastrar Itens")))->send();
                 }
             }
         } else {
             Flight::response()->status(500)->header('Content-Type', 'application/json')->write(json_encode(array("msg_error" => "Erro ao efetuar devolução")))->send();
         }
     } else {
         Flight::response()->status(500)->header('Content-Type', 'application/json')->write(json_encode(array("msg_error" => "Erro ao efetuar devolução")))->send();
     }
 }
 public static function save()
 {
     $perfilTO = new PerfilTO();
     $perfilTO->cod_perfil = isset($_POST['cod_perfil']) ? $_POST['cod_perfil'] : "";
     $perfilTO->nme_perfil = isset($_POST['nme_perfil']) ? $_POST['nme_perfil'] : "";
     $perfilTO->flg_ativo = isset($_POST['flg_ativo']) ? $_POST['flg_ativo'] : array();
     $perfilTO->modulos = isset($_POST['modulos']) ? $_POST['modulos'] : array();
     $validator = new DataValidator();
     $validator->set_msg('A Descrição é obrigatória')->set('nme_perfil', $perfilTO->nme_perfil)->is_required();
     if (count($modulos) == 0) {
         $validator->set_msg('Selecione ao menos um módulo')->set('modulos', $perfilTO->modulos)->set_custom_error();
     }
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     try {
         $perfilDao = new PerfilDao();
         if ($cod_perfil === "") {
             $perfilTO->cod_perfil = $perfilDao->savePerfil($perfilTO);
         } else {
             if (!$perfilDao->updatePerfil($perfilTO)) {
                 Flight::halt(500, "Falha ao atualizar o perfil [" . $perfilTO->nme_perfil . "]");
             }
         }
         if ($perfilTO->cod_perfil) {
             $moduloPerfilDao = new ModuloPerfilDao();
             if ($moduloPerfilDao->deleteAllModulosPerfil($perfilTO->cod_perfil)) {
                 foreach ($modus as $key => $modulo) {
                     $moduloPerfilTO = new ModuloPerfilTO();
                     $moduloPerfilTO->cod_modulo = $modulo['cod_modulo'];
                     $moduloPerfilTO->cod_perfil = $perfilTO->cod_perfil;
                     if (!$moduloPerfilDao->saveModuloPerfil($moduloPerfilTO)) {
                         Flight::halt(500, "Falha ao gravar os módulos ao perfil [" . $perfilTO->nme_perfil . "]");
                     }
                 }
             }
         } else {
             Flight::halt(500, "Falha ao salvar o perfil [" . $perfilTO->nme_perfil . "]");
         }
     } catch (PDOException $e) {
         Flight::halt(500, $e->getMessage());
     }
 }
 public static function update()
 {
     $RegraTributosTO = new RegraTributosTO();
     $RegraTributosDao = new RegraTributosDao();
     $RegraTributosTO->dsc_regra_tributos = isset($_POST['dsc_regra_tributos']) ? $_POST['dsc_regra_tributos'] : '';
     $RegraTributosTO->cod_regra_tributos = isset($_POST['cod_regra_tributos']) ? $_POST['cod_regra_tributos'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O Campo descrição é obrigatório')->set('dsc_regra_tributos', $RegraTributosTO->dsc_regra_tributos)->is_required();
     $validator->set_msg('O codigo é obrigatorio')->set('cod_regra_tributos', $RegraTributosTO->dsc_regra_tributos)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     if ($RegraTributosDao->update($RegraTributosTO)) {
         Flight::halt(200);
     } else {
         Flight::halt(500, 'erro ao atualizar');
     }
 }
 public static function update()
 {
     $situacao = $_POST;
     $SituacaoEspecialDao = new SituacaoEspecialDao();
     $situacao['dsc_situacao_especial'] = isset($situacao['dsc_situacao_especial']) ? $situacao['dsc_situacao_especial'] : '';
     $situacao['cod_empreendimento'] = isset($situacao['cod_empreendimento']) ? $situacao['cod_empreendimento'] : '';
     $validator = new DataValidator();
     $validator->set_msg('A descrição é obrigatória')->set('dsc_situacao_especial', $situacao['dsc_situacao_especial'])->is_required();
     $validator->set_msg('O id do Empreendimento é obrigatório')->set('cod_empreendimento', $situacao['cod_empreendimento'])->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     if ($SituacaoEspecialDao->update($situacao)) {
         Flight::halt(200);
     } else {
         Flight::halt(500, 'erro ao atualizar');
     }
 }
 public static function updateDeposito()
 {
     $DepositoTO = new DepositoTO();
     $DepositoDao = new DepositoDao();
     $DepositoTO->nme_deposito = isset($_POST['nme_deposito']) ? $_POST['nme_deposito'] : '';
     $DepositoTO->id = isset($_POST['id']) ? $_POST['id'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O nome do Deposito é obrigatório')->set('nme_deposito', $DepositoTO->nme_deposito)->is_required();
     $validator->set_msg('O codigo do Deposito é obrigatório')->set('id', $DepositoTO->id)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     if ($DepositoDao->updateDeposito($DepositoTO)) {
         Flight::halt(200);
     } else {
         Flight::halt(500, 'erro ao atualizar');
     }
 }
 public static function updateCategoria()
 {
     $ControleProteseTO = new ControleProteseTO();
     $ControleProteseDao = new ControleProteseDao();
     $ControleProteseTO->descricao_categoria = isset($_POST['descricao_categoria']) ? $_POST['descricao_categoria'] : '';
     $ControleProteseTO->id = isset($_POST['id']) ? $_POST['id'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O nome do Categoria é obrigatório')->set('descricao_categoria', $ControleProteseTO->descricao_categoria)->is_required();
     $validator->set_msg('O codigo do Categoria é obrigatório')->set('id', $ControleProteseTO->id)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     if ($ControleProteseDao->updateCategoria($ControleProteseTO)) {
         Flight::halt(200);
     } else {
         Flight::halt(500, 'erro ao atualizar');
     }
 }
 public static function saveFornecedor()
 {
     $FornecedorTO = new FornecedorTO();
     $FornecedorDao = new FornecedorDao();
     $FornecedorTO->nome_fornecedor = isset($_POST['nome_fornecedor']) ? $_POST['nome_fornecedor'] : '';
     $FornecedorTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O nome do fornecedor é obrigatório')->set('nome_fornecedor', $FornecedorTO->nome_fornecedor)->is_required();
     $validator->set_msg('o codigo do empreendimento é obrigatório')->set('id_empreendimento', $FornecedorTO->id_empreendimento)->is_num();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     if ($FornecedorDao->saveFornecedor($FornecedorTO)) {
         Flight::halt(201);
     } else {
         Flight::halt(500, 'erro ao inserir Fornecedor');
     }
 }
 public static function update()
 {
     try {
         $PerfilUsuarioTO = new PerfilUsuarioTO();
         $PerfilUsuarioDao = new PerfilUsuarioDao();
         $ModuloPerfilTO = new ModuloPerfilTO();
         $ModuloPerfilDao = new ModuloPerfilDao();
         $PerfilUsuarioTO->__setAll($_POST);
         $modulos = isset($_POST['modulos']) ? $_POST['modulos'] : array();
         $empreendimentos = isset($_POST['empreendimentos']) ? $_POST['empreendimentos'] : array();
         $validator = new DataValidator();
         $validator->set_msg('O ID do perfil é obrigatório')->set('nome', $PerfilUsuarioTO->id)->is_required();
         $validator->set_msg('O nome do perfil é obrigatório')->set('nome', $PerfilUsuarioTO->nome)->is_required();
         $validator->set_msg('Deve ser selecionado ao menos um módulo')->set('modulos', count($modulos))->min_value(0);
         $validator->set_msg('Deve ser selecionado ao menos um empreendimento')->set('modulos', count($empreendimentos))->min_value(0);
         if (!$validator->validate()) {
             Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
             return;
         }
         $PerfilUsuarioDao->updatePerfil($PerfilUsuarioTO, 'id=' . $PerfilUsuarioTO->id);
         $ModuloPerfilDao->deleteModuloPerfil('id_perfil=' . $PerfilUsuarioTO->id);
         foreach ($modulos as $id_modulo) {
             $ModuloPerfilTO->id_modulo = $id_modulo;
             $ModuloPerfilTO->id_perfil = $PerfilUsuarioTO->id;
             $ModuloPerfilDao->save($ModuloPerfilTO);
         }
         $PerfilUsuarioEmpreendimentoDao = new PerfilUsuarioEmpreendimentoDao();
         $PerfilUsuarioEmpreendimentoDao->deletePerfilUsuarioEmpreendimento('id_perfil=' . $PerfilUsuarioTO->id);
         foreach ($empreendimentos as $empreendimento) {
             $PerfilUsuarioEmpreendimentoTO = new PerfilUsuarioEmpreendimentoTO();
             $empreendimento['id_perfil'] = $PerfilUsuarioTO->id;
             $PerfilUsuarioEmpreendimentoTO->__setAll($empreendimento);
             $PerfilUsuarioEmpreendimentoDao->savePerfilUsuarioEmpreendimento($PerfilUsuarioEmpreendimentoTO);
         }
         Flight::response()->status(200)->header('Content-Type', 'application/json')->write(json_encode(array('id' => $PerfilUsuarioTO->id)))->send();
     } catch (Exception $e) {
         $Conexao = new Conexao();
         $Conexao::getInstance();
         $Conexao->rollback();
         jsonException($e);
     }
 }
 public static function update()
 {
     $controle = $_POST;
     $ControleNfeDao = new ControleNfeDao();
     $controle['nme_controle_nfe'] = isset($controle['nme_controle_nfe']) ? $controle['nme_controle_nfe'] : '';
     $controle['cod_controle_nfe'] = isset($controle['cod_controle_nfe']) ? $controle['cod_controle_nfe'] : '';
     $validator = new DataValidator();
     $validator->set_msg('A nome é obrigatório')->set('nme_controle_nfe', $controle['nme_controle_nfe'])->is_required();
     $validator->set_msg('O cod do controle é obrigatório')->set('cod_controle_nfe', $controle['cod_controle_nfe'])->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     try {
         $ControleNfeDao->update($controle);
         Flight::halt(201);
     } catch (Exception $e) {
         Flight::halt(500, $e->getMessage());
     }
 }
 public static function updateGrupoComissaoVendedor()
 {
     $grupoTO = new GrupoComissaoVendedorTO();
     $grupoDao = new GrupoComissaoVendedorDao();
     $grupoTO->nme_grupo_comissao = isset($_POST['nme_grupo_comissao']) ? $_POST['nme_grupo_comissao'] : '';
     $grupoTO->perc_comissao = isset($_POST['perc_comissao']) ? $_POST['perc_comissao'] : '';
     $grupoTO->id = isset($_POST['id']) ? $_POST['id'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O nome do grupo é obrigatório')->set('nme_grupo_comissao', $grupoTO->nme_grupo_comissao)->is_required();
     $validator->set_msg('O percentual de comissão é obrigatório')->set('perc_comissao', $grupoTO->perc_comissao)->is_required();
     $validator->set_msg('O codigo do grupo é obrigatório')->set('id', $grupoTO->id)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     if ($grupoDao->updateGrupoComissaoVendedor($grupoTO)) {
         Flight::halt(200);
     } else {
         Flight::halt(500, 'erro ao atualizar');
     }
 }
 public static function update()
 {
     $ZoneamentoTO = new ZoneamentoTO();
     $ZoneamentoDao = new ZoneamentoDao();
     $ZoneamentoTO->dsc_zoneamento = isset($_POST['dsc_zoneamento']) ? $_POST['dsc_zoneamento'] : '';
     $ZoneamentoTO->cod_zoneamento = isset($_POST['cod_zoneamento']) ? $_POST['cod_zoneamento'] : '';
     $ZoneamentoTO->cod_empreendimento = isset($_POST['cod_empreendimento']) ? $_POST['cod_empreendimento'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O cod do regime especial é obrigatório')->set('dsc_zoneamento', $ZoneamentoTO->dsc_zoneamento)->is_required();
     $validator->set_msg('O id do zoneamento é obrigatório')->set('cod_zoneamento', $ZoneamentoTO->cod_zoneamento)->is_required();
     $validator->set_msg('O COD do Empreendimento é obrigatório')->set('cod_empreendimento', $ZoneamentoTO->cod_empreendimento)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     if ($ZoneamentoDao->update($ZoneamentoTO)) {
         Flight::halt(200);
     } else {
         Flight::halt(500, 'erro ao atualizar');
     }
 }
 public static function savePedidoFornecedor()
 {
     $PedidosFornecedoresTO = new PedidosFornecedoresTO();
     $PedidosFornecedoresDao = new PedidosFornecedoresDao();
     $PedidosFornecedoresTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : '';
     $PedidosFornecedoresTO->id_usuario = isset($_POST['id_usuario']) ? $_POST['id_usuario'] : '';
     $PedidosFornecedoresTO->id_fornecedor = isset($_POST['id_fornecedor']) ? $_POST['id_fornecedor'] : '';
     $PedidosFornecedoresTO->flg_pedido_real = isset($_POST['flg_pedido_real']) ? $_POST['flg_pedido_real'] : '';
     $itens = $_POST['itens'];
     $validator = new DataValidator();
     $validator->set_msg('O codigo do usuario é obrigatório')->set('id_usuario', $PedidosFornecedoresTO->id_usuario)->is_num();
     $validator->set_msg('O codigo do empreendimento é obrigatório')->set('id_empreendimento', $PedidosFornecedoresTO->id_empreendimento)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     if ($PedidosFornecedoresDao->savePedidoFornecedor($PedidosFornecedoresTO, $itens)) {
         Flight::halt(201);
     } else {
         Flight::halt(500, 'erro ao inserir Pedido');
     }
 }
 public static function updateFaixaDesconto()
 {
     $FaixaDescontoTO = new FaixaDescontoTO();
     $FaixaDescontoDao = new FaixaDescontoDao();
     $FaixaDescontoTO->id = isset($_POST['id']) ? $_POST['id'] : '';
     $FaixaDescontoTO->perc_desconto_min = isset($_POST['perc_desconto_min']) ? $_POST['perc_desconto_min'] : '';
     $FaixaDescontoTO->perc_desconto_max = isset($_POST['perc_desconto_max']) ? $_POST['perc_desconto_max'] : '';
     $FaixaDescontoTO->id_cor = isset($_POST['id_cor']) ? $_POST['id_cor'] : '';
     $FaixaDescontoTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : '';
     $validator = new DataValidator();
     $validator->set_msg('O id da faixa é obrigatório')->set('perc_desconto_min', $FaixaDescontoTO->perc_desconto_min)->is_num();
     $validator->set_msg('O Valor minimo do desconto é obrigatório')->set('perc_desconto_min', $FaixaDescontoTO->perc_desconto_min)->is_num();
     $validator->set_msg('O Valor máximo do desconto é obrigatório')->set('perc_desconto_max', $FaixaDescontoTO->perc_desconto_max)->is_required();
     $validator->set_msg('A escolha do emprenendimento é obrigatório')->set('id_empreendimento', $FaixaDescontoTO->id_empreendimento)->is_required();
     $validator->set_msg('A escolha da cor é e obrigatória')->set('id_cor', $FaixaDescontoTO->id_cor)->is_required();
     if ($FaixaDescontoDao->verificarFaixa($FaixaDescontoTO->perc_desconto_min, $FaixaDescontoTO->id_empreendimento)) {
         $faixa = $FaixaDescontoDao->verificarFaixa($FaixaDescontoTO->perc_desconto_min, $FaixaDescontoTO->id_empreendimento);
         if (!$faixa['id'] == $FaixaDescontoTO->id) {
             $validator->_errors['perc_desconto_min'][] = 'Está porcentagem ja está incluida em outra faixa';
         }
     }
     if ($FaixaDescontoDao->verificarFaixa($FaixaDescontoTO->perc_desconto_max, $FaixaDescontoTO->id_empreendimento) && $FaixaDescontoTO->perc_desconto_max > 0) {
         $faixa = $FaixaDescontoDao->verificarFaixa($FaixaDescontoTO->perc_desconto_max, $FaixaDescontoTO->id_empreendimento);
         if (!$faixa['id'] == $FaixaDescontoTO->id) {
             $validator->_errors['perc_desconto_max'][] = 'Está porcentagem ja está incluida em outra faixa';
         }
     }
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     try {
         $FaixaDescontoDao->updateFaixaDesconto($FaixaDescontoTO);
         Flight::halt(201);
     } catch (Exception $e) {
         Flight::halt(500, $e->getMessage());
     }
 }
 public static function logar()
 {
     $nme_login = isset($_POST['nme_login']) ? $_POST['nme_login'] : "";
     $nme_senha = isset($_POST['nme_senha']) ? $_POST['nme_senha'] : "";
     $validator = new DataValidator();
     $validator->set_msg('O login é obrigatório')->set('nme_login', $nme_login)->is_required();
     $validator->set_msg('A senha é obrigatória')->set('nme_senha', $nme_senha)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     try {
         $loginDao = new LoginDao();
         $usuario = $loginDao->logar($nme_login, md5($nme_senha));
         if ($usuario) {
             Flight::json($usuario);
         } else {
             Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode(array("msg" => "Login ou Senha inválidos!")))->send();
         }
     } catch (PDOException $e) {
         Flight::halt(500, $e->getMessage());
     }
 }
 public static function update()
 {
     $base_tributaria = $_POST;
     $BaseTributariaDao = new BaseTributariaDao();
     $base_tributaria['dsc_base_tributaria'] = isset($base_tributaria['dsc_base_tributaria']) ? $base_tributaria['dsc_base_tributaria'] : '';
     $validator = new DataValidator();
     $validator->set_msg('A descrição é obrigatória')->set('dsc_base_tributaria', $base_tributaria['dsc_base_tributaria'])->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     if ($BaseTributariaDao->update($base_tributaria)) {
         Flight::halt(200);
     } else {
         Flight::halt(500, 'erro ao atualizar');
     }
 }
 public static function updateMaquineta()
 {
     $MaquinetaTO = new MaquinetaTO();
     $MaquinetaDao = new MaquinetaDao();
     $MaquinetaTO->num_serie_maquineta = isset($_POST['num_serie_maquineta']) ? $_POST['num_serie_maquineta'] : '';
     $MaquinetaTO->id_conta_bancaria = isset($_POST['id_conta_bancaria']) ? $_POST['id_conta_bancaria'] : '';
     $MaquinetaTO->per_margem_credito = isset($_POST['per_margem_credito']) ? $_POST['per_margem_credito'] : '';
     $MaquinetaTO->per_margem_debito = isset($_POST['per_margem_debito']) ? $_POST['per_margem_debito'] : '';
     $MaquinetaTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : '';
     $MaquinetaTO->id_maquineta = isset($_POST['id_maquineta']) ? $_POST['id_maquineta'] : '';
     $delete_taxa = isset($_POST['delete_taxa']) && is_array($_POST['delete_taxa']) && count($_POST['delete_taxa']) > 0 ? $_POST['delete_taxa'] : array();
     $update_taxa = isset($_POST['update_taxa']) && is_array($_POST['update_taxa']) && count($_POST['update_taxa']) > 0 ? $_POST['update_taxa'] : array();
     $validator = new DataValidator();
     $validator->set_msg('O número de série é obrigatório')->set('num_serie_maquineta', $MaquinetaTO->num_serie_maquineta)->is_required();
     $validator->set_msg('A conta bancaria é obrigatório')->set('id_conta_bancaria', $MaquinetaTO->id_conta_bancaria)->is_required();
     $validator->set_msg('A margem de débito é obrigatório')->set('per_margem_debito', $MaquinetaTO->per_margem_debito)->is_required();
     $validator->set_msg('O id do Empreendimento é obrigatório')->set('id_empreendimento', $MaquinetaTO->id_empreendimento)->is_required();
     $validator->set_msg('O ID da maquineta é obrigatório')->set('num_serie_maquineta', $MaquinetaTO->num_serie_maquineta)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     if ($MaquinetaDao->updateMaquineta($MaquinetaTO)) {
         $TaxaMaquinetaDao = new TaxaMaquinetaDao();
         $TaxaMaquinetaTO = new TaxaMaquinetaTO();
         foreach ($delete_taxa as $key => $taxa) {
             $TaxaMaquinetaDao->deleteFaixa($taxa['id']);
         }
         foreach ($update_taxa as $key => $taxa) {
             $TaxaMaquinetaTO->id_maquineta = $MaquinetaTO->id_maquineta;
             $TaxaMaquinetaTO->qtd_parcelas_inicio = isset($taxa['qtd_parcelas_inicio']) ? $taxa['qtd_parcelas_inicio'] : '';
             $TaxaMaquinetaTO->qtd_parcelas_fim = isset($taxa['qtd_parcelas_fim']) && is_numeric($taxa['qtd_parcelas_fim']) && (int) $taxa['qtd_parcelas_fim'] > 0 ? $taxa['qtd_parcelas_fim'] : NULL;
             $TaxaMaquinetaTO->prc_taxa = isset($taxa['prc_taxa']) ? $taxa['prc_taxa'] : '';
             if (!$TaxaMaquinetaDao->savetaxaMaquineta($TaxaMaquinetaTO)) {
                 Flight::halt(500, 'Erro ao salvar taxas');
             }
         }
         Flight::halt(200);
     } else {
         Flight::halt(500, 'erro ao atualizar');
     }
 }
 public static function saveEspecialidade()
 {
     $EspecialidadeTO = new EspecialidadeTO();
     $EspecialidadeDao = new EspecialidadeDao();
     $EspecialidadeTO->dsc_especialidade = isset($_POST['dsc_especialidade']) ? $_POST['dsc_especialidade'] : '';
     $EspecialidadeTO->hex_cor = isset($_POST['hex_cor']) ? $_POST['hex_cor'] : '';
     $EspecialidadeTO->id_empreendimento = $_POST['id_empreendimento'];
     $validator = new DataValidator();
     $validator->set_msg('Campo obrigatório')->set('dsc_especialidade', $EspecialidadeTO->dsc_especialidade)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     try {
         $last_id = $EspecialidadeDao->saveEspecialidade($EspecialidadeTO);
         Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('id_especialidade' => (int) $last_id)))->send();
     } catch (Exception $e) {
         Flight::halt(500, $e->getMessage());
     }
 }
 public static function getConsolidadoEstoque()
 {
     $validator = new DataValidator();
     $id_empreendimento = isset($_GET['id_empreendimento']) ? $_GET['id_empreendimento'] : '';
     $id_deposito = isset($_GET['id_deposito']) ? $_GET['id_deposito'] : null;
     $id_deposito = strtolower($id_deposito) == 'null' ? NULL : $id_deposito;
     $validator->set_msg('O id do empreendimento é obrigatório')->set('id_empreendimento', $id_empreendimento)->is_required();
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     try {
         $relatorioDao = new RelatorioDao();
         $result = $relatorioDao->getConsolidadoEstoque($id_empreendimento, $id_deposito);
         if ($result) {
             Flight::json($result);
         } else {
             Flight::halt(404, 'Não há estoques de depósitos para o empreendimento selecionado');
         }
     } catch (Exception $e) {
         Flight::halt(500, $e->getMessage());
     }
 }
 public static function addNewColaborador()
 {
     // Capturando os valores do front-end
     $colTO = new ColaboradorTO();
     $colTO->cod_colaborador = isset($_POST['cod_colaborador']) ? $_POST['cod_colaborador'] : "";
     $colTO->num_matricula = isset($_POST['num_matricula']) ? $_POST['num_matricula'] : "";
     $colTO->nme_colaborador = isset($_POST['nme_colaborador']) ? $_POST['nme_colaborador'] : "";
     $colTO->flg_portador_necessidades_especiais = isset($_POST['flg_portador_necessidades_especiais']) ? $_POST['flg_portador_necessidades_especiais'] : "";
     $colTO->cod_empresa_contratante = isset($_POST['empresaContratante']) ? $_POST['empresaContratante']['cod_empresa'] : "";
     $colTO->cod_contrato = isset($_POST['contrato']) ? $_POST['contrato']['cod_origem'] : "";
     $colTO->cod_regime_contratacao = isset($_POST['cod_regime_contratacao']) ? $_POST['cod_regime_contratacao'] : "";
     $colTO->cod_departamento = isset($_POST['cod_departamento']) ? $_POST['cod_departamento'] : "";
     $colTO->cod_estado_civil = isset($_POST['cod_estado_civil']) ? $_POST['cod_estado_civil'] : "";
     $colTO->flg_cm = isset($_POST['flg_cm']) ? $_POST['flg_cm'] : "";
     $colTO->cod_local_trabalho = isset($_POST['localTrabalho']) ? $_POST['localTrabalho']['cod_local_trabalho'] : "";
     $colTO->cod_grade_horario = isset($_POST['gradeHorario']) ? $_POST['gradeHorario']['cod_grade_horario'] : "";
     $colTO->flg_ativo = isset($_POST['flg_ativo']) ? $_POST['flg_ativo'] : "";
     $colTO->dta_admissao = isset($_POST['dta_admissao']) ? $_POST['dta_admissao'] : "";
     $colTO->dta_demissao = isset($_POST['dta_demissao']) ? $_POST['dta_demissao'] : "";
     $colTO->num_ctps = isset($_POST['num_ctps']) ? $_POST['num_ctps'] : "";
     $colTO->num_serie_ctps = isset($_POST['num_serie_ctps']) ? $_POST['num_serie_ctps'] : "";
     $colTO->cod_estado_ctps = isset($_POST['cod_estado_ctps']) ? $_POST['cod_estado_ctps'] : "";
     $colTO->dta_emissao_ctps = isset($_POST['dta_emissao_ctps']) ? $_POST['dta_emissao_ctps'] : "";
     $colTO->num_rg = isset($_POST['num_rg']) ? $_POST['num_rg'] : "";
     $colTO->num_cpf = isset($_POST['num_cpf']) ? $_POST['num_cpf'] : "";
     $colTO->num_pis = isset($_POST['num_pis']) ? $_POST['num_pis'] : "";
     $colTO->num_titulo_eleitor = isset($_POST['num_titulo_eleitor']) ? $_POST['num_titulo_eleitor'] : "";
     $colTO->num_zona_eleitoral = isset($_POST['num_zona_eleitoral']) ? $_POST['num_zona_eleitoral'] : "";
     $colTO->num_secao_eleitoral = isset($_POST['num_secao_eleitoral']) ? $_POST['num_secao_eleitoral'] : "";
     $colTO->num_reservista = isset($_POST['num_reservista']) ? $_POST['num_reservista'] : "";
     $colTO->dsc_endereco = isset($_POST['dsc_endereco']) ? $_POST['dsc_endereco'] : "";
     $colTO->num_endereco = isset($_POST['num_endereco']) ? $_POST['num_endereco'] : "";
     $colTO->nme_bairro = isset($_POST['nme_bairro']) ? $_POST['nme_bairro'] : "";
     $colTO->dsc_complemento = isset($_POST['dsc_complemento']) ? $_POST['dsc_complemento'] : "";
     $colTO->cod_cidade_moradia = isset($_POST['cod_cidade_moradia']) ? $_POST['cod_cidade_moradia'] : "";
     $colTO->cod_estado_moradia = isset($_POST['cod_estado_moradia']) ? $_POST['cod_estado_moradia'] : "";
     $colTO->num_cep = isset($_POST['num_cep']) ? $_POST['num_cep'] : "";
     $colTO->dta_nascimento = isset($_POST['dta_nascimento']) ? $_POST['dta_nascimento'] : "";
     $colTO->cod_cidade_naturalidade = isset($_POST['cod_cidade_naturalidade']) ? $_POST['cod_cidade_naturalidade'] : "";
     $colTO->cod_estado_naturalidade = isset($_POST['cod_estado_naturalidade']) ? $_POST['cod_estado_naturalidade'] : "";
     $colTO->num_cnh = isset($_POST['num_cnh']) ? $_POST['num_cnh'] : "";
     $colTO->nme_categoria_cnh = isset($_POST['nme_categoria_cnh']) ? $_POST['nme_categoria_cnh'] : "";
     $colTO->dta_validade_cnh = isset($_POST['dta_validade_cnh']) ? $_POST['dta_validade_cnh'] : "";
     $colTO->flg_sexo = isset($_POST['flg_sexo']) ? $_POST['flg_sexo'] : "";
     $colTO->cod_banco = isset($_POST['banco']) ? $_POST['banco']['cod_banco'] : "";
     $colTO->num_agencia = isset($_POST['num_agencia']) ? $_POST['num_agencia'] : "";
     $colTO->num_digito_agencia = isset($_POST['num_digito_agencia']) ? $_POST['num_digito_agencia'] : "";
     $colTO->num_conta_corrente = isset($_POST['num_conta_corrente']) ? $_POST['num_conta_corrente'] : "";
     $colTO->num_digito_conta_corrente = isset($_POST['num_digito_conta_corrente']) ? $_POST['num_digito_conta_corrente'] : "";
     $colTO->cod_sindicato = isset($_POST['sindicato']) ? $_POST['sindicato']['cod_sindicato'] : "";
     $colTO->cod_entidade = isset($_POST['entidade']) ? $_POST['entidade']['cod_entidade'] : "";
     $colTO->num_entidade = isset($_POST['num_entidade']) ? $_POST['num_entidade'] : "";
     $colTO->qtd_horas_contratadas = isset($_POST['qtd_horas_contratadas']) ? $_POST['qtd_horas_contratadas'] : "";
     $colTO->cod_empreendimento = isset($_POST['cod_empreendimento']) ? $_POST['cod_empreendimento'] : "";
     $colTO->flg_hora_extra = isset($_POST['flg_hora_extra']) ? $_POST['flg_hora_extra'] : "";
     $colTO->flg_trabalho_fim_semana = isset($_POST['flg_trabalho_fim_semana']) ? $_POST['flg_trabalho_fim_semana'] : "";
     $colTO->flg_trabalho_feriado = isset($_POST['flg_trabalho_feriado']) ? $_POST['flg_trabalho_feriado'] : "";
     $colTO->flg_ajusta_folha_ponto = isset($_POST['flg_ajusta_folha_ponto']) ? $_POST['flg_ajusta_folha_ponto'] : "";
     $colTO->flg_ensino_superior = isset($_POST['flg_ensino_superior']) ? $_POST['flg_ensino_superior'] : "";
     // ANEXOS
     /*$colTO->files = array();
     		$colTO->files['file_foto'] 					= (isset($_POST['files']['file_foto'])) 				? $_POST['files']['file_foto'] : null;
     		$colTO->files['file_rg'] 					= (isset($_POST['files']['file_rg'])) 					? $_POST['files']['file_rg'] : null;
     		$colTO->files['file_cpf'] 					= (isset($_POST['files']['file_cpf'])) 					? $_POST['files']['file_cpf'] : null;
     		$colTO->files['file_pis'] 					= (isset($_POST['files']['file_pis'])) 					? $_POST['files']['file_pis'] : null;
     		$colTO->files['file_certidao'] 				= (isset($_POST['files']['file_certidao'])) 			? $_POST['files']['file_certidao'] : null;
     		$colTO->files['file_cartao_sus'] 			= (isset($_POST['files']['file_cartao_sus'])) 			? $_POST['files']['file_cartao_sus'] : null;
     		$colTO->files['file_comprovante_endereco'] 	= (isset($_POST['files']['file_comprovante_endereco'])) ? $_POST['files']['file_comprovante_endereco'] : null;
     		$colTO->files['file_comprovante_bancario'] 	= (isset($_POST['files']['file_comprovante_bancario'])) ? $_POST['files']['file_comprovante_bancario'] : null;
     		$colTO->files['file_contrato_trabalho'] 	= (isset($_POST['files']['file_contrato_trabalho'])) 	? $_POST['files']['file_contrato_trabalho'] : null;
     		$colTO->files['file_diploma'] 				= (isset($_POST['files']['file_diploma'])) 				? $_POST['files']['file_diploma'] : null;
     		$colTO->files['file_curriculo'] 			= (isset($_POST['files']['file_curriculo'])) 			? $_POST['files']['file_curriculo'] : null;
     		$colTO->files['file_historico_escolar']		= (isset($_POST['files']['file_historico_escolar'])) 	? $_POST['files']['file_historico_escolar'] : null;
     		$colTO->files['file_titulo_eleitor'] 		= (isset($_POST['files']['file_titulo_eleitor'])) 		? $_POST['files']['file_titulo_eleitor'] : null;
     		$colTO->files['file_cnh'] 					= (isset($_POST['files']['file_cnh'])) 					? $_POST['files']['file_cnh'] : null;
     		$colTO->files['file_reservista'] 			= (isset($_POST['files']['file_reservista'])) 			? $_POST['files']['file_reservista'] : null;*/
     // Arrays auxiliares de telefones e funções
     $telefones = isset($_POST['telefones']) ? $_POST['telefones'] : array();
     $funcoes = isset($_POST['funcoes']) ? $_POST['funcoes'] : array();
     $emails = isset($_POST['emails']) ? $_POST['emails'] : array();
     $dependentes = isset($_POST['dependentes']) ? $_POST['dependentes'] : array();
     // Plano de Saúde
     $beneficioTO = null;
     if (isset($_POST['planoSaude'])) {
         $beneficioTO = new BeneficioTO();
         $beneficioTO->cod_tipo_beneficio = 9;
         // ASSISTÊNCIA MÉDICA
         $beneficioTO->cod_referencia_beneficio = $_POST['planoSaude']['cod_plano_saude'];
     }
     // Validando os campos obrigatórios
     $validator = new DataValidator();
     $validator->set_msg('O número da Matrícula é obrigatório')->set('num_matricula', $colTO->num_matricula)->is_required();
     $validator->set_msg('O nome do Colaborador é obrigatório')->set('nme_colaborador', $colTO->nme_colaborador)->is_required();
     $validator->set_msg('O nome da Empresa é obrigatório')->set('empresaContratante', $colTO->cod_empresa_contratante)->is_required();
     $validator->set_msg('O Regime de Contratação é obrigatório')->set('cod_regime_contratacao', $colTO->cod_regime_contratacao)->is_required();
     $validator->set_msg('O Departamento é obrigatório')->set('cod_departamento', $colTO->cod_departamento)->is_required();
     $validator->set_msg('O Estado Civil é obrigatório')->set('cod_estado_civil', $colTO->cod_estado_civil)->is_required();
     $validator->set_msg('A data de Admissão é obrigatória')->set('dta_admissao', $colTO->dta_admissao)->is_required();
     $validator->set_msg('O número da CTPS é obrigatório')->set('num_ctps', $colTO->num_ctps)->is_required();
     $validator->set_msg('O número de série da CTPS é obrigatório')->set('num_serie_ctps', $colTO->num_serie_ctps)->is_required();
     $validator->set_msg('O estado da CTPS é obrigatório')->set('cod_estado_ctps', $colTO->cod_estado_ctps)->is_required();
     $validator->set_msg('A data de emissão da CTPS é obrigatória')->set('dta_emissao_ctps', $colTO->dta_emissao_ctps)->is_required();
     $validator->set_msg('O RG é obrigatório')->set('num_rg', $colTO->num_rg)->is_required();
     $validator->set_msg('O CPF é obrigatório')->set('num_cpf', $colTO->num_cpf)->is_required();
     $validator->set_msg('O PIS é obrigatório')->set('num_pis', $colTO->num_pis)->is_required();
     $validator->set_msg('O Titulo de Eleitor é obrigatório')->set('num_titulo_eleitor', $colTO->num_titulo_eleitor)->is_required();
     $validator->set_msg('A Zona Eleitoral é obrigatória')->set('num_zona_eleitoral', $colTO->num_zona_eleitoral)->is_required();
     $validator->set_msg('A Seção Eleitoral é obrigatória')->set('num_secao_eleitoral', $colTO->num_secao_eleitoral)->is_required();
     $validator->set_msg('O Endereço é obrigatório')->set('dsc_endereco', $colTO->dsc_endereco)->is_required();
     $validator->set_msg('O Número é obrigatório')->set('num_endereco', $colTO->num_endereco)->is_required();
     $validator->set_msg('O Bairro é obrigatório')->set('nme_bairro', $colTO->nme_bairro)->is_required();
     $validator->set_msg('A Cidade é obrigatória')->set('cod_cidade_moradia', $colTO->cod_cidade_moradia)->is_required();
     $validator->set_msg('O Estado é obrigatório')->set('cod_estado_moradia', $colTO->cod_estado_moradia)->is_required();
     $validator->set_msg('O CEP é obrigatório')->set('num_cep', $colTO->num_cep)->is_required();
     $validator->set_msg('A Data de Nascimento é obrigatória')->set('dta_nascimento', $colTO->dta_nascimento)->is_required();
     $validator->set_msg('A Cidade é obrigatória')->set('cod_cidade_naturalidade', $colTO->cod_cidade_naturalidade)->is_required();
     $validator->set_msg('O Estado é obrigatório')->set('cod_estado_naturalidade', $colTO->cod_estado_naturalidade)->is_required();
     $validator->set_msg('O Banco é obrigatório')->set('banco', $colTO->cod_banco)->is_required();
     $validator->set_msg('O Número da Agência é obrigatório')->set('num_agencia', $colTO->num_agencia)->is_required();
     $validator->set_msg('A Conta é obrigatória')->set('num_conta_corrente', $colTO->num_conta_corrente)->is_required();
     $validator->set_msg('O Dígito é obrigatório')->set('num_digito_conta_corrente', $colTO->num_digito_conta_corrente)->is_required();
     $validator->set_msg('O Sindicato é obrigatório')->set('sindicato', $colTO->cod_sindicato)->is_required();
     $validator->set_msg('A Grade de Horário é obrigatória')->set('gradeHorario', $colTO->cod_grade_horario)->is_required();
     $validator->set_msg('O Local de Trabalho é obrigatório')->set('localTrabalho', $colTO->cod_local_trabalho)->is_required();
     $validator->set_msg('As Horas Contratadas são obrigatórias')->set('qtd_horas_contratadas', $colTO->qtd_horas_contratadas)->is_required();
     $validator->set_msg('O sexo é obrigatório')->set('flg_sexo', $colTO->flg_sexo)->is_required();
     $validator->set_msg('Insira pelo menos um telefone')->set('telefones', $telefones)->is_required();
     $validator->set_msg('Insira pelo menos uma função')->set('funcoes', $funcoes)->is_required();
     $validator->set_msg('O Contrato é obrigatório')->set('contrato', $colTO->cod_contrato)->is_required();
     // ANEXOS - INICIO
     /*$validator->set_msg('A Foto é obrigatória')
       ->set('file_foto', $colTO->files['file_foto'])
       ->is_required();*/
     /*$validator->set_msg('O RG é obrigatório')
     				  ->set('file_rg', $colTO->files['file_rg'])
     				  ->is_required();
     
     		$validator->set_msg('O CPF é obrigatório')
     				  ->set('file_cpf', $colTO->files['file_cpf'])
     				  ->is_required();
     
     		$validator->set_msg('O PIS é obrigatório')
     				  ->set('file_pis', $colTO->files['file_pis'])
     				  ->is_required();
     
     		$validator->set_msg('A Certidão é obrigatória')
     				  ->set('file_certidao', $colTO->files['file_certidao'])
     				  ->is_required();
     
     		$validator->set_msg('O Cartão do SUS é obrigatório')
     				  ->set('file_cartao_sus', $colTO->files['file_cartao_sus'])
     				  ->is_required();
     
     		$validator->set_msg('O Comprovante de Endereço é obrigatório')
     				  ->set('file_comprovante_endereco', $colTO->files['file_comprovante_endereco'])
     				  ->is_required();
     
     		$validator->set_msg('O Comprovante Bancário é obrigatório')
     				  ->set('file_comprovante_bancario', $colTO->files['file_comprovante_bancario'])
     				  ->is_required();
     
     		$validator->set_msg('O Contrato de Trabalho é obrigatório')
     				  ->set('file_contrato_trabalho', $colTO->files['file_contrato_trabalho'])
     				  ->is_required();
     
     		$validator->set_msg('O Diploma é obrigatório')
     				  ->set('file_diploma', $colTO->files['file_diploma'])
     				  ->is_required();
     
     		$validator->set_msg('O Currículo é obrigatório')
     				  ->set('file_curriculo', $colTO->files['file_curriculo'])
     				  ->is_required();
     
     		$validator->set_msg('O Histórico Escolar é obrigatório')
     				  ->set('file_historico_escolar', $colTO->files['file_historico_escolar'])
     				  ->is_required();
     
     		$validator->set_msg('O Título de Eleitor é obrigatório')
     				  ->set('file_titulo_eleitor', $colTO->files['file_titulo_eleitor'])
     				  ->is_required();
     
     		$validator->set_msg('O CNH é obrigatório')
     				  ->set('file_cnh', $colTO->files['file_cnh'])
     				  ->is_required();
     
     		$validator->set_msg('A Reservista é obrigatória')
     				  ->set('file_reservista', $colTO->files['file_reservista'])
     				  ->is_required();*/
     // ANEXOS - FIM
     if (!$validator->validate()) {
         // Se retornar false, significa que algum campo obrigatório não foi preenchido
         // Envia os campos não preenchidos com a respectiva mensagem de erro para o front-end
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     // Grava os dados do colaborador
     $colaboradorDao = new ColaboradorDao();
     if (!$colTO->cod_colaborador) {
         $colTO->cod_colaborador = $colaboradorDao->saveColaborador($colTO);
         // Grava os telefones do colaborador
         $telefoneDao = new TelefoneDao();
         foreach ($telefones as $index => $telefone) {
             $telefoneTO = new TelefoneTO();
             $telefoneTO->cod_colaborador = $colTO->cod_colaborador;
             $telefoneTO->num_ddd = $telefone['num_ddd'];
             $telefoneTO->num_telefone = $telefone['num_telefone'];
             $telefoneTO->cod_tipo_telefone = $telefone['tipoTelefone']['cod_tipo_telefone'];
             $telefoneDao->saveTelefone($telefoneTO);
         }
         // Grava os emails do colaborador
         $emailDao = new EmailDao();
         foreach ($emails as $index => $email) {
             $emailTO = new EmailTO();
             $emailTO->cod_colaborador = $colTO->cod_colaborador;
             $emailTO->end_email = $email['end_email'];
             $emailDao->saveEmail($emailTO);
         }
         // Grava as funções do colaborador
         $funColDao = new FuncaoColaboradorDao();
         foreach ($funcoes as $index => $funcao) {
             $funColTO = new FuncaoColaboradorTO();
             $funColTO->cod_colaborador = $colTO->cod_colaborador;
             $funColTO->cod_funcao = $funcao['funcao']['cod_funcao'];
             $funColTO->vlr_salario = $funcao['vlr_salario'];
             $funColTO->nme_motivo_alteracao_funcao = $funcao['motivoAlteracaoFuncao']['nme_motivo_alteracao_funcao'];
             $funColTO->dta_alteracao = $funcao['dta_alteracao'];
             $funColDao->saveFuncaoColaborador($funColTO);
         }
         // Grava os dependentes do colaborador
         $depDao = new DependenteDao();
         foreach ($dependentes as $index => $dep) {
             $depTO = new DependenteTO();
             $depTO->cod_colaborador = $colTO->cod_colaborador;
             $depTO->cod_tipo_dependencia = $dep['tipoDependencia']['cod_tipo_dependencia'];
             $depTO->nme_dependente = $dep['nme_dependente'];
             // $depTO->pth_documento 					= $dep['pth_documento'];
             $depTO->dta_nascimento = $dep['dta_nascimento'];
             $depTO->flg_plano_saude = $dep['flg_plano_saude'];
             $depTO->cod_plano_saude = isset($dep['planoSaude']) ? $dep['planoSaude']['cod_plano_saude'] : NULL;
             $depTO->flg_deduz_irrf = $dep['flg_deduz_irrf'];
             $depTO->flg_curso_superior = isset($dep['flg_curso_superior']) ? $dep['flg_curso_superior'] : 0;
             $depDao->saveDependente($depTO);
         }
         // Salva o plano de saúde do colaborador
         if ($beneficioTO != null) {
             $beneficioTO->cod_colaborador = $colTO->cod_colaborador;
             $benDao = new BeneficioDao();
             if (!$benDao->saveBeneficio($beneficioTO)) {
                 Flight::halt(500, 'Erro ao salvar o plano de saúde [' . $_POST['planoSaude']['nme_plano_saude'] . '] de [' . $colTO->nme_colaborador . ']');
             }
         }
         // Salva os anexos no banco de dados
         $anexoDao = new AnexoColaboradorDao();
         foreach ($colTO->files as $key => $file) {
             $anexoTO = new AnexoTO();
             $anexoTO->cod_colaborador = $colTO->cod_colaborador;
             $anexoTO->nme_anexo = $file['nme_anexo'];
             $anexoTO->pth_anexo = $file['pth_anexo'];
             $anexoTO->dsc_tipo_anexo = $file['dsc_tipo_anexo'];
             $anexoTO->dsc_contexto_anexo = $key;
             if (!$anexoDao->saveAnexoColaborador($anexoTO)) {
                 Flight::halt(500, 'Erro ao salvar anexo [ ' . $key . ' ]');
             }
             die;
         }
     } else {
         $colaboradorDao->updateColaborador($colTO);
         // Atualizando os telefones do colaborador
         $telefoneDao = new TelefoneDao();
         foreach ($telefones as $key => $telefone) {
             if (isset($telefone['flg_removido']) && $telefone['flg_removido'] === "true") {
                 if (!$telefoneDao->deleteTelefone($telefone['cod_telefone'])) {
                     Flight::halt(500, 'Erro ao excluir o telefone [(' . $telefone['num_ddd'] . ') ' . $telefone['num_telefone'] . ']');
                     die;
                 }
             } else {
                 if (isset($telefone['cod_telefone'])) {
                     $telefoneTO = new TelefoneTO();
                     $telefoneTO->cod_telefone = $telefone['cod_telefone'];
                     $telefoneTO->num_ddd = $telefone['num_ddd'];
                     $telefoneTO->num_telefone = $telefone['num_telefone'];
                     $telefoneTO->cod_tipo_telefone = $telefone['tipoTelefone']['cod_tipo_telefone'];
                     if (!$telefoneDao->updateTelefone($telefoneTO)) {
                         Flight::halt(500, 'Erro ao atualizar o telefone [(' . $telefoneTO->num_ddd . ') ' . $telefoneTO->num_telefone . ']');
                         die;
                     }
                 } else {
                     $telefoneTO = new TelefoneTO();
                     $telefoneTO->cod_colaborador = $colTO->cod_colaborador;
                     $telefoneTO->num_ddd = $telefone['num_ddd'];
                     $telefoneTO->num_telefone = $telefone['num_telefone'];
                     $telefoneTO->cod_tipo_telefone = $telefone['tipoTelefone']['cod_tipo_telefone'];
                     if (!$telefoneDao->saveTelefone($telefoneTO)) {
                         Flight::halt(500, 'Erro ao salvar o telefone [(' . $telefoneTO->num_ddd . ') ' . $telefoneTO->num_telefone . ']');
                         die;
                     }
                 }
             }
         }
         // Atualizando os e-mails do colaborador
         $emailDao = new EmailDao();
         foreach ($emails as $key => $email) {
             if (isset($email['flg_removido']) && $email['flg_removido'] === "true") {
                 if (!$emailDao->deleteEmail($email['cod_email'])) {
                     Flight::halt(500, 'Erro ao excluir o email [' . $email['end_email'] . ']');
                     die;
                 }
             } else {
                 if (isset($email['cod_email'])) {
                     $emailTO = new EmailTO();
                     $emailTO->cod_email = $email['cod_email'];
                     $emailTO->end_email = $email['end_email'];
                     if (!$emailDao->updateEmail($emailTO)) {
                         Flight::halt(500, 'Erro ao atualizar o email [' . $emailTO->end_email . ']');
                         die;
                     }
                 } else {
                     $emailTO = new EmailTO();
                     $emailTO->cod_colaborador = $colTO->cod_colaborador;
                     $emailTO->end_email = $email['end_email'];
                     if (!$emailDao->saveEmail($emailTO)) {
                         Flight::halt(500, 'Erro ao salvar o email [' . $emailTO->end_email . ']');
                         die;
                     }
                 }
             }
         }
         // Atualizando as funções do colaborador
         $funcaoDao = new FuncaoColaboradorDao();
         foreach ($funcoes as $key => $funcao) {
             if (isset($funcao['flg_removido']) && $funcao['flg_removido'] === "true") {
                 if (!$funcaoDao->deleteFuncaoColaborador($funcao['cod_alteracao_funcao'])) {
                     Flight::halt(500, 'Erro ao excluir a função [' . $funcao['funcao']['nme_funcao'] . ']');
                     die;
                 }
             } else {
                 if (!isset($funcao['cod_alteracao_funcao'])) {
                     $funColTO = new FuncaoColaboradorTO();
                     $funColTO->cod_colaborador = $colTO->cod_colaborador;
                     $funColTO->cod_funcao = $funcao['funcao']['cod_funcao'];
                     $funColTO->vlr_salario = $funcao['vlr_salario'];
                     $funColTO->cod_motivo_alteracao_funcao = $funcao['motivoAlteracaoFuncao']['cod_motivo_alteracao_funcao'];
                     $funColTO->dta_alteracao = $funcao['dta_alteracao'];
                     if (!$funcaoDao->saveFuncaoColaborador($funColTO)) {
                         Flight::halt(500, 'Erro ao salvar a funcao [(' . $funColTO->cod_funcao . ') ');
                         die;
                     }
                 }
             }
         }
         // Atualizando os dependentes do colaborador
         $depDao = new DependenteDao();
         foreach ($dependentes as $key => $dep) {
             if (isset($dep['flg_removido']) && $dep['flg_removido'] === "true") {
                 if (!$depDao->deleteDependente($dep['cod_dependente'])) {
                     Flight::halt(500, 'Erro ao excluir o dependente [' . $dep['nme_dependente'] . ']');
                     die;
                 }
             } else {
                 if (isset($dep['flg_atualizado']) && $dep['flg_atualizado'] === "true") {
                     $depTO = new DependenteTO();
                     $depTO->cod_dependente = $dep['cod_dependente'];
                     $depTO->cod_tipo_dependencia = $dep['tipoDependencia']['cod_tipo_dependencia'];
                     $depTO->nme_dependente = $dep['nme_dependente'];
                     // $depTO->pth_documento 					= $dep['pth_documento'];
                     $depTO->dta_nascimento = $dep['dta_nascimento'];
                     $depTO->flg_plano_saude = $dep['flg_plano_saude'];
                     $depTO->cod_plano_saude = isset($dep['planoSaude']) ? $dep['planoSaude']['cod_plano_saude'] : NULL;
                     $depTO->flg_deduz_irrf = $dep['flg_deduz_irrf'];
                     $depTO->flg_curso_superior = isset($dep['flg_curso_superior']) ? $dep['flg_curso_superior'] : 0;
                     if ($depDao->updateDependente($depTO) === false) {
                         Flight::halt(500, 'Erro ao atualizar o dependente [' . $depTO->nme_dependente . ']');
                         die;
                     }
                 } else {
                     if (!isset($dep['cod_dependente'])) {
                         $depTO = new DependenteTO();
                         $depTO->cod_colaborador = $colTO->cod_colaborador;
                         $depTO->cod_tipo_dependencia = $dep['tipoDependencia']['cod_tipo_dependencia'];
                         $depTO->nme_dependente = $dep['nme_dependente'];
                         // $depTO->pth_documento 					= $dep['pth_documento'];
                         $depTO->dta_nascimento = $dep['dta_nascimento'];
                         $depTO->flg_plano_saude = $dep['flg_plano_saude'];
                         $depTO->cod_plano_saude = isset($dep['planoSaude']) ? $dep['planoSaude']['cod_plano_saude'] : NULL;
                         $depTO->flg_deduz_irrf = $dep['flg_deduz_irrf'];
                         $depTO->flg_curso_superior = isset($dep['flg_curso_superior']) ? $dep['flg_curso_superior'] : 0;
                         if (!$depDao->saveDependente($depTO)) {
                             Flight::halt(500, 'Erro ao salvar o dependente [' . $depTO->nme_dependente . ']');
                             die;
                         }
                     }
                 }
             }
         }
         // Salva o plano de saúde do colaborador
         if ($beneficioTO != null) {
             $beneficioTO->cod_colaborador = $colTO->cod_colaborador;
             $benDao = new BeneficioDao();
             if (!$benDao->updateBeneficio($beneficioTO)) {
                 Flight::halt(500, 'Erro ao atualizar o plano de saúde [' . $_POST['planoSaude']['nme_plano_saude'] . '] de [' . $colTO->nme_colaborador . ']');
             }
         }
     }
     Flight::halt(200, 'Colaborador salvo com sucesso!');
 }