public static function updateConta()
 {
     $ContaBancariaTO = new ContaBancariaTO();
     $ContaBancariaDao = new ContaBancariaDao();
     $ContaBancariaTO->dsc_conta_bancaria = isset($_POST['dsc_conta_bancaria']) ? $_POST['dsc_conta_bancaria'] : NULL;
     $ContaBancariaTO->id_banco = isset($_POST['id_banco']) ? $_POST['id_banco'] : NULL;
     $ContaBancariaTO->num_agencia = isset($_POST['num_agencia']) ? $_POST['num_agencia'] : NULL;
     $ContaBancariaTO->num_conta_corrente = isset($_POST['num_conta_corrente']) ? $_POST['num_conta_corrente'] : NULL;
     $ContaBancariaTO->id_tipo_conta = isset($_POST['id_tipo_conta']) ? $_POST['id_tipo_conta'] : NULL;
     $ContaBancariaTO->perc_taxa_maquineta = isset($_POST['perc_taxa_maquineta']) ? $_POST['perc_taxa_maquineta'] : NULL;
     $ContaBancariaTO->id = isset($_POST['id']) ? $_POST['id'] : NULL;
     $ContaBancariaTO->pth_local = isset($_POST['pth_local']) ? $_POST['pth_local'] : NULL;
     $ContaBancariaTO->qtd_vias_impressao = isset($_POST['qtd_vias_impressao']) ? $_POST['qtd_vias_impressao'] : NULL;
     $ContaBancariaTO->id_deposito = isset($_POST['id_deposito']) ? $_POST['id_deposito'] : NULL;
     $ContaBancariaTO->id_ws_web = isset($_POST['id_ws_web']) ? $_POST['id_ws_web'] : NULL;
     $ContaBancariaTO->id_ws_dsk = isset($_POST['id_ws_dsk']) ? $_POST['id_ws_dsk'] : NULL;
     $ContaBancariaTO->flg_imprimir_sat_cfe = isset($_POST['flg_imprimir_sat_cfe']) ? $_POST['flg_imprimir_sat_cfe'] : 0;
     $ContaBancariaTO->cod_operacao_padrao_sat_cfe = isset($_POST['cod_operacao_padrao_sat_cfe']) ? $_POST['cod_operacao_padrao_sat_cfe'] : NULL;
     $ContaBancariaTO->mod_impressora = isset($_POST['mod_impressora']) ? $_POST['mod_impressora'] : NULL;
     $depositos = isset($_POST['depositos']) && is_array($_POST['depositos']) ? $_POST['depositos'] : array();
     $validator = new DataValidator();
     $validator->set_msg('O id é obrigatório')->set('id', $ContaBancariaTO->id)->is_required();
     $validator->set_msg('A descrição é obrigatório')->set('dsc_conta_bancaria', $ContaBancariaTO->dsc_conta_bancaria)->is_required();
     $validator->set_msg('O tipo da conta é obrigatório')->set('id_tipo_conta', $ContaBancariaTO->id_tipo_conta)->is_required();
     /*if($ContaBancariaTO->id_tipo_conta == 5){
     			$validator->set_msg('O depósito é obrigatório')
     					  ->set('id_deposito',$ContaBancariaTO->id_deposito)
     					  ->is_required();
     		}*/
     if ($ContaBancariaTO->id_tipo_conta == 5) {
         $validator->set_msg('Informe um IP válido')->set('pth_local', $ContaBancariaTO->pth_local)->is_ip();
     }
     if ((int) $ContaBancariaTO->flg_imprimir_sat_cfe == 1) {
         $validator->set_msg('O código da operação é obrigatório')->set('cod_operacao_padrao_sat_cfe', $ContaBancariaTO->cod_operacao_padrao_sat_cfe)->is_required();
     }
     /*
     $validator->set_msg('A escolha do banco é obrigatório')
     		  ->set('id_banco',$ContaBancariaTO->id_banco)
     		  ->is_required();
     
     $validator->set_msg('O numero da agencia é obrigatório')
     		  ->set('num_agencia',$ContaBancariaTO->num_agencia)
     		  ->is_required();
     
     $validator->set_msg('O numero da conta corrente é obrigatório')
     		  ->set('num_conta_corrente',$ContaBancariaTO->num_conta_corrente)
     		  ->is_required();
     
     $validator->set_msg('O tipo da conta é obrigatório')
     		  ->set('id_tipo_conta',$ContaBancariaTO->id_tipo_conta)
     		  ->is_required();
     
     $validator->set_msg('A taixa da maquineta é obrigatório')
     		  ->set('perc_taxa_maquineta',$ContaBancariaTO->perc_taxa_maquineta)
     		  ->is_required();
     */
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
     }
     try {
         if ($ContaBancariaDao->updateConta($ContaBancariaTO)) {
             if ($ContaBancariaTO->id_tipo_conta == 5 && count($depositos > 0)) {
                 $CaixaDepositoDao = new CaixaDepositoDao();
                 $ids = array();
                 foreach ($depositos as $key => $deposito) {
                     $CaixaDepositoTO = new CaixaDepositoTO();
                     $deposito['id_caixa'] = $ContaBancariaTO->id;
                     if (isset($deposito['id']) && is_numeric($deposito['id'])) {
                         $deposito = $CaixaDepositoTO->__setAll($deposito, true);
                         $CaixaDepositoDao->updateCaixaDeposito($deposito, 'id=' . $deposito->id);
                         $ids[] = $deposito->id;
                     } else {
                         $CaixaDepositoTO->__setAll($deposito);
                         $ids[] = $CaixaDepositoDao->saveCaixaDeposito($CaixaDepositoTO);
                     }
                 }
                 $where = ' id_caixa = ' . $ContaBancariaTO->id . (count($ids > 0) ? ' AND id NOT IN (' . join($ids, ',') . ')' : '');
                 $CaixaDepositoDao->deleteCaixaDeposito($where);
             }
             Flight::halt(200);
         } else {
             Flight::halt(500, "error ao alterar conta");
         }
     } catch (Exception $e) {
         Flight::halt(500, $e->getMessage());
     }
 }