public static function updateStatusPagamento()
 {
     $idLancamento = $_POST['idLancamento'];
     $newStatus = $_POST['newStatus'];
     $flgTipo = $_POST['flgTipo'];
     $data_pagamento = $_POST['data_pagamento'];
     $id_conta_bancaria = $_POST['id_conta_bancaria'];
     switch ($flgTipo) {
         case 'D':
             $pgtoDao = new PagamentoFornecedorDao();
             if ($pgtoDao->updateStatusPagamento($idLancamento, $newStatus, $data_pagamento, $id_conta_bancaria)) {
                 Flight::halt(200, '');
             } else {
                 Flight::halt(500, 'Falha ao atualizar o status do lançamento!');
             }
             break;
         case 'C':
             $rbtoDao = new PagamentoClienteDao();
             if ($rbtoDao->updateStatusPagamento($idLancamento, $newStatus, $data_pagamento, $id_conta_bancaria)) {
                 Flight::halt(200, '');
             } else {
                 Flight::halt(500, 'Falha ao atualizar o status do lançamento!');
             }
             break;
     }
 }
 public static function saveVenda()
 {
     $EstoqueDao = new EstoqueDao();
     $out = array();
     $modo_venda = $_POST['modo_venda'];
     $produtos = $_POST['produtos'];
     $venda = $_POST['venda'];
     $id_empreendimento = $venda['id_empreendimento'];
     $id_deposito = $venda['id_deposito'];
     $pagamentos = $_POST['pagamentos'];
     foreach ($produtos as $key => $value) {
         $qtd = (int) $value['qtd'];
         $estoque = $EstoqueDao->getQtdProduto($id_empreendimento, $value['id_produto'], null, $id_deposito);
         $estoque_real = $estoque - $qtd;
         if ($estoque_real < 0) {
             $out[] = array($value['id_produto']);
         }
     }
     if (count($out) > 0) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($out))->send();
         return;
     }
     /*
     Flight::response()->status(500)
     					  ->header('Content-Type', 'application/json')
     					  ->write(json_encode($arrayName))
     					  ->send();
     return ;
     */
     $VendaDao = new VendaDao();
     $VendaTO = new VendaTO();
     $VendaTO->id_usuario = isset($venda['id_usuario']) ? $venda['id_usuario'] : NULL;
     $VendaTO->id_cliente = is_numeric($venda['id_cliente']) ? $venda['id_cliente'] : NULL;
     $VendaTO->venda_confirmada = isset($venda['venda_confirmada']) ? $venda['venda_confirmada'] : '';
     $VendaTO->id_empreendimento = isset($venda['id_empreendimento']) ? $venda['id_empreendimento'] : '';
     $VendaTO->id_status_venda = 4;
     $id_venda = $VendaDao->saveVenda($VendaTO);
     if (!$id_venda) {
         Flight::halt(500, 'erro ao inserir venda');
     }
     $ItemVendaDao = new ItemVendaDao();
     $ItemVendaTO = new ItemVendaTO();
     foreach ($produtos as $key => $value) {
         $ItemVendaTO->id_venda = $id_venda;
         $ItemVendaTO->id_produto = $value['id_produto'];
         $ItemVendaTO->desconto_aplicado = isset($value['desconto_aplicado']) ? $value['desconto_aplicado'] : 0;
         $ItemVendaTO->valor_desconto = isset($value['valor_desconto']) ? $value['valor_desconto'] : 0;
         $ItemVendaTO->qtd = $value['qtd'];
         $ItemVendaTO->valor_real_item = $value['valor_produto'];
         if (!$ItemVendaDao->saveItemVenda($ItemVendaTO)) {
             Flight::halt(500, 'erro ao inserir os itens da venda');
         }
         if (!$EstoqueDao->baixaEstoquePDV($id_empreendimento, $id_venda, $value['id_produto'], $id_deposito, $value['qtd'])) {
             Flight::halt(500, 'error ao atualizar estoque');
         }
     }
     $MovimentacaoCaixaTO = new MovimentacaoCaixaTO();
     $MovimentacaoCaixaDao = new MovimentacaoCaixaDao();
     foreach ($pagamentos as $key => $value) {
         if ($value['id_tipo_movimentacao'] != 5) {
             $PagamentoClienteTO = new PagamentoClienteTO();
             $PagamentoClienteDao = new PagamentoClienteDao();
             $PagamentoClienteTO->id_cliente = isset($value['id_cliente']) ? $value['id_cliente'] : "";
             $PagamentoClienteTO->id_forma_pagamento = isset($value['id_forma_pagamento']) ? $value['id_forma_pagamento'] : "";
             $PagamentoClienteTO->valor_pagamento = isset($value['valor']) ? $value['valor_pagamento'] : "";
             $PagamentoClienteTO->status_pagamento = isset($value['status_pagamento']) ? $value['status_pagamento'] : "";
             $PagamentoClienteTO->data_pagamento = isset($value['data_pagamento']) ? $value['data_pagamento'] : "";
             $PagamentoClienteTO->id_empreendimento = isset($value['id_empreendimento']) ? $value['id_empreendimento'] : "";
             $PagamentoClienteTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : "";
             $PagamentoClienteTO->id_conta_bancaria = isset($value['id_conta_bancaria']) ? $value['id_conta_bancaria'] : "";
             $PagamentoClienteTO->id_banco = isset($value['id_banco']) ? $value['id_banco'] : NULL;
             $PagamentoClienteTO->num_conta_corrente = isset($value['num_conta_corrente']) ? $value['num_conta_corrente'] : NULL;
             $PagamentoClienteTO->num_cheque = isset($value['num_cheque']) ? $value['num_cheque'] : NULL;
             $PagamentoClienteTO->flg_cheque_predatado = isset($value['flg_cheque_predatado']) ? $value['flg_cheque_predatado'] : NULL;
             $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $value['id_cliente_lancamento'];
             $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO);
             if (!$id_lancamento_entrada) {
                 Flight::halt(500, 'erro ao inserir pagamento ao cliente');
             }
         }
         $MovimentacaoCaixaTO->id_abertura_caixa = isset($value['id_abertura_caixa']) ? $value['id_abertura_caixa'] : NULL;
         $MovimentacaoCaixaTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : NULL;
         $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($value['id_tipo_movimentacao']) ? $value['id_tipo_movimentacao'] : NULL;
         $MovimentacaoCaixaTO->dsc_movimentacao = 'Venda';
         $MovimentacaoCaixaTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL;
         $MovimentacaoCaixaTO->id_venda = $id_venda;
         $MovimentacaoCaixaTO->id_lancamento_entrada = $value['id_tipo_movimentacao'] != 5 ? $id_lancamento_entrada : NULL;
         $valor_pagamento = isset($value['valor']) ? $value['valor'] : NULL;
         $MovimentacaoCaixaTO->para_receber = $value['id_tipo_movimentacao'] == 5 ? $value['valor'] : NULL;
         if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) {
             Flight::halt(500, 'erro ao inserir movimentacao');
         }
     }
     $UsuarioDao = new UsuarioDao();
     $vlr_saldo_devedor = $UsuarioDao->getUsuarios(null, null, array('usu.id' => $venda['id_cliente']));
     $vlr_saldo_devedor = $vlr_saldo_devedor['usuarios'][0]["vlr_saldo_devedor"];
     Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('id_venda' => $id_venda, 'vlr_saldo_devedor' => $vlr_saldo_devedor)))->send();
 }
 public static function deletePagamentoCliente($id)
 {
     $PagamentoClienteDao = new PagamentoClienteDao();
     if (is_numeric($id)) {
         if ($PagamentoClienteDao->deletePagamentoCliente($id)) {
             Flight::halt(200, '');
         } else {
             Flight::halt(500, 'erro ao excluir');
         }
     } else {
         Flight::halt(406, 'parametro recusado');
     }
 }
<?php

$PagamentoClienteDao = new PagamentoClienteDao();
$AtendimentoDao = new AtendimentoDao();
$UsuarioDao = new UsuarioDao();
$usuario = (object) $UsuarioDao->getUsuario($dados['id_empreendimento'], $dados['id_paciente']);
$pagamentos = $PagamentoClienteDao->getPagamentosCliente($dados['id_paciente'], null, null, array('pag.id_empreendimento' => $dados['id_empreendimento']));
$pagamentos = $pagamentos['pagamentos'];
$atendimentos = $AtendimentoDao->getItensVenda($dados['id_paciente'], null, null, null);
$fichaPaciente = array();
if (count($atendimentos) >= count($pagamentos)) {
    foreach ($atendimentos as $key => $value) {
        $item = new stdClass();
        $item->dta_venda = date('d/m/Y', strtotime($value['dta_venda']));
        $item->cod_dente = $value['cod_dente'];
        $item->cod_procedimento = $value['cod_procedimento'];
        $item->nome_profissional = $value['nome_profissional'];
        $item->valor_real_item = $value['valor_real_item'];
        $item->dta_entrada = isset($pagamentos[$key]['dta_entrada']) ? date('d/m/Y', strtotime($pagamentos[$key]['dta_entrada'])) : null;
        $item->descricao_forma_pagamento = isset($pagamentos[$key]['descricao_forma_pagamento']) ? $pagamentos[$key]['descricao_forma_pagamento'] : null;
        $item->data_pagamento = isset($pagamentos[$key]['data_pagamento']) ? $pagamentos[$key]['data_pagamento'] : null;
        $item->valor_pagamento = isset($pagamentos[$key]['valor_pagamento']) ? $pagamentos[$key]['valor_pagamento'] : null;
        $item->id_forma_pagamento = isset($pagamentos[$key]['id_forma_pagamento']) ? $pagamentos[$key]['id_forma_pagamento'] : null;
        $item->num_parcelas = isset($pagamentos[$key]['num_parcelas']) ? $pagamentos[$key]['num_parcelas'] : null;
        $fichaPaciente[] = $item;
    }
} else {
    foreach ($pagamentos as $key => $value) {
        $item = new stdClass();
        $item->dta_venda = isset($atendimentos[$key]['dta_venda']) ? date('d/m/Y', strtotime($atendimentos[$key]['dta_venda'])) : null;
        $item->cod_dente = isset($atendimentos[$key]['cod_dente']) ? $atendimentos[$key]['cod_dente'] : null;
 public static function saveMovimentacaoSangria()
 {
     $MovimentacaoCaixaTO = new MovimentacaoCaixaTO();
     $MovimentacaoCaixaDao = new MovimentacaoCaixaDao();
     $MovimentacaoCaixaTO->id_abertura_caixa = isset($_POST['id_abertura_caixa']) ? $_POST['id_abertura_caixa'] : NULL;
     $MovimentacaoCaixaTO->id_plano_conta = isset($_POST['id_plano_conta']) ? $_POST['id_plano_conta'] : NULL;
     $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($_POST['id_tipo_movimentacao']) ? $_POST['id_tipo_movimentacao'] : NULL;
     $MovimentacaoCaixaTO->id_venda = isset($_POST['id_venda']) ? $_POST['id_venda'] : NULL;
     $conta_destino = isset($_POST['id_conta_bancaria_destino']) ? $_POST['id_conta_bancaria_destino'] : NULL;
     $valor_pagamento = isset($_POST['valor_pagamento']) ? $_POST['valor_pagamento'] : NULL;
     $obs_pagamento = isset($_POST['obs_pagamento']) ? $_POST['obs_pagamento'] : NULL;
     $validator = new DataValidator();
     $validator->set_msg('O ID da abertura de caixa e obrigatório')->set('id_abertura_caixa', $MovimentacaoCaixaTO->id_abertura_caixa)->is_required();
     $validator->set_msg('O ID do plano é obrigatório')->set('id_plano_conta', $MovimentacaoCaixaTO->id_plano_conta)->is_required();
     $validator->set_msg('O ID do tipo da movimentacao é obrigatório')->set('id_tipo_movimentacao', $MovimentacaoCaixaTO->id_tipo_movimentacao)->is_required();
     $validator->set_msg('A Conta de destino é obrigatória')->set('conta_destino', $conta_destino)->is_required();
     $validator->set_msg('O valor da retirada é obrigatório')->set('valor_retirada', $valor_pagamento)->is_required();
     $AberturaCaixaDao = new AberturaCaixaDao();
     $valor_em_caixa = $AberturaCaixaDao->vlrEmCaixa($MovimentacaoCaixaTO->id_abertura_caixa, 3);
     $valor_em_caixa = $valor_em_caixa['vlr_em_caixa'];
     if ($valor_em_caixa < (double) $valor_pagamento) {
         $validator->_errors['valor_nao_permitido'][] = 'Operação não permitida, o valor da sangria e maior que o valor em dinheiro no caixa';
     }
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     try {
         $PagamentoFornecedorTO = new PagamentoFornecedorTO();
         $PagamentoFornecedorDao = new PagamentoFornecedorDao();
         $id_empreendimento = $_POST['id_empreendimento'];
         $Dao = new Dao();
         $Dao->setTimeZone($id_empreendimento);
         $dta_movimentacao = date('Y-m-d H:i:s');
         $PagamentoFornecedorTO->id_fornecedor = isset($_POST['id_fornecedor']) ? $_POST['id_fornecedor'] : "";
         $PagamentoFornecedorTO->id_forma_pagamento = isset($_POST['id_forma_pagamento']) ? $_POST['id_forma_pagamento'] : "";
         $PagamentoFornecedorTO->valor_pagamento = isset($_POST['valor_pagamento']) ? $_POST['valor_pagamento'] : "";
         $PagamentoFornecedorTO->status_pagamento = isset($_POST['status_pagamento']) ? $_POST['status_pagamento'] : "";
         $PagamentoFornecedorTO->data_pagamento = $dta_movimentacao;
         $PagamentoFornecedorTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : "";
         $PagamentoFornecedorTO->id_plano_conta = isset($_POST['id_plano_conta']) ? $_POST['id_plano_conta'] : "";
         $PagamentoFornecedorTO->id_conta_bancaria = isset($_POST['id_conta_bancaria']) ? $_POST['id_conta_bancaria'] : "";
         $PagamentoFornecedorTO->obs_pagamento = isset($_POST['obs_pagamento']) ? $_POST['obs_pagamento'] : NULL;
         $PagamentoFornecedorTO->flg_transferencia_conta = 1;
         $id_lancamento_saida = $PagamentoFornecedorDao->savePagamentoFornecedor($PagamentoFornecedorTO);
         if (!$id_lancamento_saida) {
             Flight::halt(500, 'erro ao inserir pagamento ao fornecedor');
         }
         $PagamentoClienteTO = new PagamentoClienteTO();
         $PagamentoClienteDao = new PagamentoClienteDao();
         $PagamentoClienteTO->id_cliente = isset($_POST['id_cliente']) ? $_POST['id_cliente'] : "";
         $PagamentoClienteTO->id_forma_pagamento = isset($_POST['id_forma_pagamento']) ? $_POST['id_forma_pagamento'] : "";
         $PagamentoClienteTO->valor_pagamento = isset($_POST['valor_pagamento']) ? $_POST['valor_pagamento'] : "";
         $PagamentoClienteTO->status_pagamento = isset($_POST['status_pagamento']) ? $_POST['status_pagamento'] : "";
         $PagamentoClienteTO->data_pagamento = $dta_movimentacao;
         $PagamentoClienteTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : "";
         $PagamentoClienteTO->id_plano_conta = isset($_POST['id_plano_conta']) ? $_POST['id_plano_conta'] : "";
         $PagamentoClienteTO->id_conta_bancaria = isset($_POST['id_conta_bancaria_destino']) ? $_POST['id_conta_bancaria_destino'] : "";
         $PagamentoClienteTO->obs_pagamento = isset($_POST['obs_pagamento']) ? $_POST['obs_pagamento'] : NULL;
         $PagamentoClienteTO->flg_transferencia_conta = 1;
         $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO);
         if (!$id_lancamento_entrada) {
             Flight::halt(500, 'erro ao inserir pagamento ao cliente');
         }
         $MovimentacaoCaixaTO->id_lancamento_entrada = $id_lancamento_entrada;
         $MovimentacaoCaixaTO->id_lancamento_saida = $id_lancamento_saida;
         $MovimentacaoCaixaTO->dsc_movimentacao = isset($_POST['dsc_movimentacao']) ? $_POST['dsc_movimentacao'] : NULL;
         $MovimentacaoCaixaTO->dta_movimentacao = $dta_movimentacao;
         if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) {
             Flight::halt(500, 'erro ao inserir movimentacao');
         }
         Flight::halt(201);
     } catch (Exception $e) {
         Flight::halt(500, $e->getMessage());
     }
 }
 public static function gravarMovimentacoes($pagamentos, $id_pedido_venda, $id_cliente, $id_empreendimento)
 {
     $MovimentacaoCaixaTO = new MovimentacaoCaixaTO();
     $MovimentacaoCaixaDao = new MovimentacaoCaixaDao();
     $PagamentoClienteTO = new PagamentoClienteTO();
     $PagamentoClienteDao = new PagamentoClienteDao();
     $ControlePagamentoVendaTO = new ControlePagamentoVendaTO();
     $ControlePagamentoVendaDao = new ControlePagamentoVendaDao();
     $MaquinetaDao = new MaquinetaDao();
     $pagamentos = $pagamentos;
     $id_pedido_venda = $id_pedido_venda;
     $id_cliente = $id_cliente;
     $id_empreendimento = $id_empreendimento;
     $Dao = new Dao();
     $Dao->setTimeZone($id_empreendimento);
     $dta_entrada = date('Y-m-d H:i:s');
     $id_controle_pagamento = $ControlePagamentoVendaDao->saveControlePagamento($dta_entrada);
     if (!$id_controle_pagamento) {
         Flight::halt(500, 'erro ao inserir pagamento ao cliente');
     }
     foreach ($pagamentos as $key => $value) {
         $parcela = null;
         if ($value['id_tipo_movimentacao'] != 5 && $value['id_forma_pagamento'] != 6) {
             $PagamentoClienteTO->id_cliente = isset($value['id_cliente']) ? $value['id_cliente'] : "";
             $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento;
             $PagamentoClienteTO->id_forma_pagamento = isset($value['id_forma_pagamento']) ? $value['id_forma_pagamento'] : "";
             $PagamentoClienteTO->valor_pagamento = isset($value['valor']) ? $value['valor_pagamento'] : "";
             if ($value['id_forma_pagamento'] == 2) {
                 $PagamentoClienteTO->status_pagamento = 0;
             } else {
                 if ($value['id_forma_pagamento'] == 4) {
                     $PagamentoClienteTO->status_pagamento = isset($value['status_pagamento']) ? $value['status_pagamento'] : 0;
                     $PagamentoClienteTO->doc_boleto = isset($value['doc_boleto']) ? $value['doc_boleto'] : NULL;
                     $PagamentoClienteTO->num_boleto = isset($value['num_boleto']) ? $value['num_boleto'] : NULL;
                 } else {
                     $PagamentoClienteTO->status_pagamento = 1;
                 }
             }
             $PagamentoClienteTO->data_pagamento = isset($value['data_pagamento']) ? $value['data_pagamento'] : "";
             $PagamentoClienteTO->id_empreendimento = isset($value['id_empreendimento']) ? $value['id_empreendimento'] : "";
             $PagamentoClienteTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : "";
             $PagamentoClienteTO->id_conta_bancaria = isset($value['id_conta_bancaria']) ? $value['id_conta_bancaria'] : NULL;
             $PagamentoClienteTO->flg_caixa_fechado = 0;
             $PagamentoClienteTO->id_banco = isset($value['id_banco']) ? $value['id_banco'] : NULL;
             $PagamentoClienteTO->num_conta_corrente = isset($value['num_conta_corrente']) ? $value['num_conta_corrente'] : NULL;
             $PagamentoClienteTO->num_cheque = isset($value['num_cheque']) ? $value['num_cheque'] : NULL;
             $PagamentoClienteTO->flg_cheque_predatado = isset($value['flg_cheque_predatado']) ? $value['flg_cheque_predatado'] : NULL;
             $PagamentoClienteTO->id_vale_troca = (int) $value['id_forma_pagamento'] == 7 ? $value['id_vale_troca'] : NULL;
             $PagamentoClienteTO->agencia_transferencia = isset($value['agencia_transferencia']) ? $value['agencia_transferencia'] : NULL;
             $PagamentoClienteTO->conta_transferencia = isset($value['conta_transferencia']) ? $value['conta_transferencia'] : NULL;
             $PagamentoClienteTO->proprietario_conta_transferencia = isset($value['proprietario_conta_transferencia']) ? $value['proprietario_conta_transferencia'] : NULL;
             $PagamentoClienteTO->id_conta_transferencia_destino = isset($value['id_conta_transferencia_destino']) ? $value['id_conta_transferencia_destino'] : NULL;
             if ($value['id_forma_pagamento'] == 5) {
                 $maquineta = $MaquinetaDao->getMaquineta($value['id_maquineta']);
                 $txa_maquineta = $maquineta['per_margem_debito'];
                 $PagamentoClienteTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL;
                 $PagamentoClienteTO->taxa_maquineta = $txa_maquineta;
             } else {
                 $PagamentoClienteTO->id_maquineta = NULL;
                 $PagamentoClienteTO->taxa_maquineta = NULL;
             }
             $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $value['id_cliente_lancamento'];
             $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO);
             if (!$id_lancamento_entrada) {
                 Flight::halt(500, 'erro ao inserir pagamento ao cliente');
             }
         } else {
             if ($value['id_tipo_movimentacao'] != 5) {
                 $repeat_parcelas = 0;
                 $id_parcelamento = false;
                 $arr_parcelas = $value['parcelas'];
                 $n_parcelas = count($arr_parcelas);
                 foreach ($arr_parcelas as $key_par => $parcela) {
                     $maquineta = $MaquinetaDao->getMaquineta($parcela['id_maquineta']);
                     $txa_maquineta = $MaquinetaDao->getTaxaMaquineta($parcela['id_maquineta'], $n_parcelas);
                     $PagamentoClienteTO->id_cliente = isset($parcela['id_cliente']) ? $parcela['id_cliente'] : "";
                     $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento;
                     $PagamentoClienteTO->id_forma_pagamento = isset($parcela['id_forma_pagamento']) ? $parcela['id_forma_pagamento'] : "";
                     $PagamentoClienteTO->valor_pagamento = isset($parcela['valor_pagamento']) ? $parcela['valor_pagamento'] : "";
                     $PagamentoClienteTO->status_pagamento = 0;
                     $PagamentoClienteTO->data_pagamento = isset($parcela['data_pagamento']) ? $parcela['data_pagamento'] : "";
                     $PagamentoClienteTO->obs_pagamento = isset($parcela['obs_pagamento']) ? $parcela['obs_pagamento'] : "";
                     $PagamentoClienteTO->id_empreendimento = isset($parcela['id_empreendimento']) ? $parcela['id_empreendimento'] : "";
                     $PagamentoClienteTO->id_banco = isset($parcela['id_banco']) ? $parcela['id_banco'] : "";
                     $PagamentoClienteTO->num_conta_corrente = isset($parcela['num_conta_corrente']) ? $parcela['num_conta_corrente'] : "";
                     $PagamentoClienteTO->num_cheque = isset($parcela['num_cheque']) ? $parcela['num_cheque'] : "";
                     $PagamentoClienteTO->flg_cheque_predatado = isset($parcela['flg_cheque_predatado']) ? $parcela['flg_cheque_predatado'] : "";
                     $PagamentoClienteTO->id_plano_conta = isset($parcela['id_plano_conta']) ? $parcela['id_plano_conta'] : "";
                     $PagamentoClienteTO->id_conta_bancaria = isset($parcela['id_conta_bancaria']) ? $parcela['id_conta_bancaria'] : "";
                     $PagamentoClienteTO->id_maquineta = isset($parcela['id_maquineta']) ? $parcela['id_maquineta'] : NULL;
                     $PagamentoClienteTO->taxa_maquineta = $txa_maquineta;
                     $PagamentoClienteTO->id_parcelamento = is_numeric($id_parcelamento) ? $id_parcelamento : NULL;
                     $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $parcela['id_cliente_lancamento'];
                     $PagamentoClienteTO->flg_caixa_fechado = 0;
                     if ($PagamentoClienteTO->id_forma_pagamento != 2) {
                         $PagamentoClienteTO->id_banco = NULL;
                         $PagamentoClienteTO->num_conta_corrente = NULL;
                         $PagamentoClienteTO->num_cheque = NULL;
                         $PagamentoClienteTO->flg_cheque_predatado = NULL;
                     }
                     $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO);
                     if (!$id_lancamento_entrada) {
                         Flight::halt(500, 'erro ao inserir pagamento ao cliente');
                     }
                     $MovimentacaoCaixaTO->id_abertura_caixa = isset($parcela['id_abertura_caixa']) ? $parcela['id_abertura_caixa'] : NULL;
                     $MovimentacaoCaixaTO->id_plano_conta = isset($parcela['id_plano_conta']) ? $parcela['id_plano_conta'] : NULL;
                     $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($parcela['id_tipo_movimentacao']) ? $parcela['id_tipo_movimentacao'] : NULL;
                     $MovimentacaoCaixaTO->dsc_movimentacao = 'Pedido de Venda';
                     $MovimentacaoCaixaTO->id_maquineta = isset($parcela['id_maquineta']) ? $parcela['id_maquineta'] : NULL;
                     $MovimentacaoCaixaTO->id_pedido_venda = $id_pedido_venda;
                     $MovimentacaoCaixaTO->id_lancamento_entrada = $id_lancamento_entrada;
                     $valor_pagamento = isset($parcela['valor']) ? $parcela['valor'] : NULL;
                     $MovimentacaoCaixaTO->para_receber = $parcela['id_tipo_movimentacao'] == 5 ? $parcela['valor'] : NULL;
                     $MovimentacaoCaixaTO->dta_movimentacao = $dta_entrada;
                     if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) {
                         Flight::halt(500, 'erro ao inserir movimentacao');
                     }
                     $id_parcelamento = is_numeric($id_parcelamento) ? $id_parcelamento : $id_lancamento_entrada;
                 }
                 $id_lancamento_entrada = $id_parcelamento;
             }
         }
         if ($parcela == null) {
             $MovimentacaoCaixaTO->id_abertura_caixa = isset($value['id_abertura_caixa']) ? $value['id_abertura_caixa'] : NULL;
             $MovimentacaoCaixaTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : NULL;
             $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($value['id_tipo_movimentacao']) ? $value['id_tipo_movimentacao'] : NULL;
             $MovimentacaoCaixaTO->dsc_movimentacao = 'Pedido de Venda';
             $MovimentacaoCaixaTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL;
             $MovimentacaoCaixaTO->id_pedido_venda = $id_pedido_venda;
             $MovimentacaoCaixaTO->id_lancamento_entrada = $value['id_tipo_movimentacao'] != 5 ? $id_lancamento_entrada : NULL;
             $valor_pagamento = isset($value['valor']) ? $value['valor'] : NULL;
             $MovimentacaoCaixaTO->para_receber = $value['id_tipo_movimentacao'] == 5 ? $value['valor'] : NULL;
             $MovimentacaoCaixaTO->dta_movimentacao = $dta_entrada;
             if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) {
                 Flight::halt(500, 'erro ao inserir movimentacao');
             }
         }
     }
     return true;
 }
 public static function requestSaveVenda()
 {
     try {
         $dados = $_POST;
         $VendaDao = new VendaDao();
         $VendaTO = new VendaTO();
         $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao();
         $PrestaShopDao = new PrestaShopDao($dados['id_empreendimento']);
         $ProdutoCombinacaoDao = new ProdutoCombinacaoDao();
         $ItemVendaDao = new ItemVendaDao();
         $ItemVendaTO = new ItemVendaTO();
         $refCliente = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_usuarios', 'id_item_referencia' => $dados['customer']['id'], 'tipo' => 'usuario', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0));
         if ($refCliente) {
             $id_cliente = $refCliente['id_item'];
         } else {
             $id_cliente = NULL;
         }
         $PagamentoClienteTO = new PagamentoClienteTO();
         $PagamentoClienteDao = new PagamentoClienteDao();
         $ControlePagamentoVendaTO = new ControlePagamentoVendaTO();
         $ControlePagamentoVendaDao = new ControlePagamentoVendaDao();
         $ConfiguracaoDao = new ConfiguracaoDao();
         $config = $ConfiguracaoDao->getConfiguracoes($dados['id_empreendimento']);
         $id_controle_pagamento = $ControlePagamentoVendaDao->saveControlePagamento();
         $PagamentoClienteTO->id_usuario = $config['prestashop_id_usuario_padrao'];
         $PagamentoClienteTO->id_cliente = $id_cliente;
         $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento;
         $PagamentoClienteTO->obs_pagamento = 'Pagamento PrestaShop';
         $PagamentoClienteTO->valor_pagamento = $dados['order']['total_products_wt'];
         $PagamentoClienteTO->status_pagamento = 0;
         $PagamentoClienteTO->id_empreendimento = $dados['id_empreendimento'];
         $PagamentoClienteTO->id_plano_conta = $config['prestashop_id_plano_conta_padrao'];
         $PagamentoClienteTO->id_conta_bancaria = $config['prestashop_id_conta_bancaria_padrao'];
         $PagamentoClienteTO->data_pagamento = date('Y-m-d H:i:s');
         if (strtolower($dados['order']['payment']) == 'cheque') {
             $PagamentoClienteTO->id_forma_pagamento = 2;
         } else {
             $PagamentoClienteTO->id_forma_pagamento = 8;
         }
         $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO);
         $ReferenciaIntegracaoPagTO = new ReferenciaIntegracaoTO();
         $ReferenciaIntegracaoPagTO->sistema_integrado = 'PrestaShop';
         $ReferenciaIntegracaoPagTO->tabela = 'tbl_pagamentos_venda';
         $ReferenciaIntegracaoPagTO->id_item = $id_lancamento_entrada;
         $ReferenciaIntegracaoPagTO->id_item_referencia = $dados['cart']['id'];
         $ReferenciaIntegracaoPagTO->tipo = 'pagamento';
         $ReferenciaIntegracaoPagTO->id_empreendimento = $dados['id_empreendimento'];
         $ReferenciaIntegracaoDao->save($ReferenciaIntegracaoPagTO);
         $produtos = array();
         $VendaTO->id_usuario = $config['prestashop_id_usuario_padrao'];
         $VendaTO->id_cliente = $id_cliente;
         $VendaTO->venda_confirmada = 0;
         $VendaTO->id_empreendimento = $dados['id_empreendimento'];
         $VendaTO->id_status_venda = 1;
         $VendaTO->dta_venda = $dados['order']['date_add'];
         $VendaTO->vlr_saldo_anterior = NULL;
         $id_venda = $VendaDao->saveVenda($VendaTO);
         $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO();
         $ReferenciaIntegracaoTO->sistema_integrado = 'PrestaShop';
         $ReferenciaIntegracaoTO->tabela = 'tbl_vendas';
         $ReferenciaIntegracaoTO->id_item = $id_venda;
         $ReferenciaIntegracaoTO->id_item_referencia = $dados['cart']['id'];
         $ReferenciaIntegracaoTO->tipo = 'venda';
         $ReferenciaIntegracaoTO->id_empreendimento = $dados['id_empreendimento'];
         $ReferenciaIntegracaoDao->save($ReferenciaIntegracaoTO);
         foreach ($dados['order']['product_list'] as $value) {
             if (isset($value['id_product_attribute'])) {
                 $refCombinacao = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_produto_combinacao', 'id_item_referencia' => $value['id_product_attribute'], 'tipo' => 'combinacao', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0));
                 if ($refCombinacao) {
                     $comb = $ProdutoCombinacaoDao->get(null, null, array('tpc.id' => $refCombinacao['id_item']));
                     if ($comb) {
                         $id_produto = $comb[0]['id_combinacao'];
                     }
                 } else {
                     $refProduto = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_produtos', 'id_item_referencia' => $value['id_product'], 'tipo' => 'produto', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0));
                     if ($refProduto) {
                         $id_produto = $refProduto['id_item'];
                     }
                 }
             }
             $ex = (double) $value['price_with_reduction_without_tax'] - (double) $value['wholesale_price'];
             $perc_venda_varejo = $ex * 100 / (double) $value['wholesale_price'];
             $perc_venda_varejo = $perc_venda_varejo / 100;
             $ItemVendaTO->id_venda = $id_venda;
             $ItemVendaTO->id_produto = $id_produto;
             $ItemVendaTO->valor_real_item = $value['price'];
             $ItemVendaTO->vlr_custo = round($value['wholesale_price'], 2);
             $ItemVendaTO->perc_margem_aplicada = $perc_venda_varejo;
             $ItemVendaTO->desconto_aplicado = 0;
             $ItemVendaTO->valor_desconto = 0;
             $ItemVendaTO->qtd = $value['quantity'];
             $ItemVendaTO->perc_imposto_compra = 0;
             $ItemVendaTO->perc_desconto_compra = 0;
             $ItemVendaDao->saveItemVenda($ItemVendaTO);
         }
     } catch (Exception $e) {
         $log = new KLogger("logs/logErrorPrestaShop.txt", KLogger::DEBUG);
         $log->LogError($e->getMessage() . '- file:' . $e->getFile() . ' - line:' . $e->getLine());
         $log->LogDebug(json_encode($_POST));
         $log->LogJunp();
         Flight::halt(500, $e->getMessage());
     }
 }
 public static function gravarMovimentacoes()
 {
     $MovimentacaoCaixaTO = new MovimentacaoCaixaTO();
     $MovimentacaoCaixaDao = new MovimentacaoCaixaDao();
     $PagamentoClienteTO = new PagamentoClienteTO();
     $PagamentoClienteDao = new PagamentoClienteDao();
     $ControlePagamentoVendaTO = new ControlePagamentoVendaTO();
     $ControlePagamentoVendaDao = new ControlePagamentoVendaDao();
     $MaquinetaDao = new MaquinetaDao();
     $VendaDao = new VendaDao();
     $AtendimentoDao = new AtendimentoDao();
     $pagamentos = $_POST['pagamentos'];
     $id_venda = isset($_POST['id_venda']) ? $_POST['id_venda'] : NULL;
     $id_venda = empty($_POST['id_venda']) ? NULL : $id_venda;
     $id_cliente = $_POST['id_cliente'];
     $id_empreendimento = $_POST['id_empreendimento'];
     $id_atendimento = isset($_POST['id_atendimento']) ? $_POST['id_atendimento'] : NULL;
     $Dao = new Dao();
     $Dao->setTimeZone($id_empreendimento);
     $dta_entrada = date('Y-m-d H:i:s');
     $id_controle_pagamento = $ControlePagamentoVendaDao->saveControlePagamento($dta_entrada);
     if (!$id_controle_pagamento) {
         Flight::halt(500, 'erro ao inserir pagamento ao cliente');
     }
     foreach ($pagamentos as $key => $value) {
         $parcela = null;
         if ($value['id_tipo_movimentacao'] != 5 && $value['id_forma_pagamento'] != 6) {
             $PagamentoClienteTO->id_cliente = isset($value['id_cliente']) ? $value['id_cliente'] : "";
             $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento;
             $PagamentoClienteTO->id_forma_pagamento = isset($value['id_forma_pagamento']) ? $value['id_forma_pagamento'] : "";
             $PagamentoClienteTO->valor_pagamento = isset($value['valor']) ? $value['valor_pagamento'] : "";
             if ($value['id_forma_pagamento'] == 2) {
                 $PagamentoClienteTO->status_pagamento = 0;
             } else {
                 if ($value['id_forma_pagamento'] == 4) {
                     $PagamentoClienteTO->status_pagamento = isset($value['status_pagamento']) ? $value['status_pagamento'] : 0;
                     $PagamentoClienteTO->doc_boleto = isset($value['doc_boleto']) ? $value['doc_boleto'] : NULL;
                     $PagamentoClienteTO->num_boleto = isset($value['num_boleto']) ? $value['num_boleto'] : NULL;
                 } else {
                     $PagamentoClienteTO->status_pagamento = 1;
                 }
             }
             $PagamentoClienteTO->data_pagamento = isset($value['data_pagamento']) ? $value['data_pagamento'] : "";
             $PagamentoClienteTO->id_empreendimento = isset($value['id_empreendimento']) ? $value['id_empreendimento'] : "";
             $PagamentoClienteTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : "";
             $PagamentoClienteTO->id_conta_bancaria = isset($value['id_conta_bancaria']) ? $value['id_conta_bancaria'] : NULL;
             $PagamentoClienteTO->flg_caixa_fechado = 0;
             $PagamentoClienteTO->id_banco = isset($value['id_banco']) ? $value['id_banco'] : NULL;
             $PagamentoClienteTO->num_conta_corrente = isset($value['num_conta_corrente']) ? $value['num_conta_corrente'] : NULL;
             $PagamentoClienteTO->num_cheque = isset($value['num_cheque']) ? $value['num_cheque'] : NULL;
             $PagamentoClienteTO->flg_cheque_predatado = isset($value['flg_cheque_predatado']) ? $value['flg_cheque_predatado'] : NULL;
             $PagamentoClienteTO->id_vale_troca = (int) $value['id_forma_pagamento'] == 7 ? $value['id_vale_troca'] : NULL;
             $PagamentoClienteTO->agencia_transferencia = isset($value['agencia_transferencia']) ? $value['agencia_transferencia'] : NULL;
             $PagamentoClienteTO->conta_transferencia = isset($value['conta_transferencia']) ? $value['conta_transferencia'] : NULL;
             $PagamentoClienteTO->proprietario_conta_transferencia = isset($value['proprietario_conta_transferencia']) ? $value['proprietario_conta_transferencia'] : NULL;
             $PagamentoClienteTO->id_conta_transferencia_destino = isset($value['id_conta_transferencia_destino']) ? $value['id_conta_transferencia_destino'] : NULL;
             $PagamentoClienteTO->id_parcelamento = NULL;
             if ($value['id_forma_pagamento'] == 5) {
                 $maquineta = $MaquinetaDao->getMaquineta($value['id_maquineta']);
                 $txa_maquineta = $maquineta['per_margem_debito'];
                 $PagamentoClienteTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL;
                 $PagamentoClienteTO->taxa_maquineta = $txa_maquineta;
             } else {
                 $PagamentoClienteTO->id_maquineta = NULL;
                 $PagamentoClienteTO->taxa_maquineta = NULL;
             }
             $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $value['id_cliente_lancamento'];
             $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO);
             if (!$id_lancamento_entrada) {
                 Flight::halt(500, 'erro ao inserir pagamento ao cliente');
             }
         } else {
             if ($value['id_tipo_movimentacao'] != 5) {
                 $repeat_parcelas = 0;
                 $id_parcelamento = false;
                 $arr_parcelas = $value['parcelas'];
                 $n_parcelas = count($arr_parcelas);
                 foreach ($arr_parcelas as $key_par => $parcela) {
                     $maquineta = $MaquinetaDao->getMaquineta($parcela['id_maquineta']);
                     $txa_maquineta = $MaquinetaDao->getTaxaMaquineta($parcela['id_maquineta'], $n_parcelas);
                     $PagamentoClienteTO->id_cliente = isset($parcela['id_cliente']) ? $parcela['id_cliente'] : "";
                     $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento;
                     $PagamentoClienteTO->id_forma_pagamento = isset($parcela['id_forma_pagamento']) ? $parcela['id_forma_pagamento'] : "";
                     $PagamentoClienteTO->valor_pagamento = isset($parcela['valor_pagamento']) ? $parcela['valor_pagamento'] : "";
                     $PagamentoClienteTO->status_pagamento = 0;
                     $PagamentoClienteTO->data_pagamento = isset($parcela['data_pagamento']) ? $parcela['data_pagamento'] : "";
                     $PagamentoClienteTO->obs_pagamento = isset($parcela['obs_pagamento']) ? $parcela['obs_pagamento'] : "";
                     $PagamentoClienteTO->id_empreendimento = isset($parcela['id_empreendimento']) ? $parcela['id_empreendimento'] : "";
                     $PagamentoClienteTO->id_banco = isset($parcela['id_banco']) ? $parcela['id_banco'] : "";
                     $PagamentoClienteTO->num_conta_corrente = isset($parcela['num_conta_corrente']) ? $parcela['num_conta_corrente'] : "";
                     $PagamentoClienteTO->num_cheque = isset($parcela['num_cheque']) ? $parcela['num_cheque'] : "";
                     $PagamentoClienteTO->flg_cheque_predatado = isset($parcela['flg_cheque_predatado']) ? $parcela['flg_cheque_predatado'] : "";
                     $PagamentoClienteTO->id_plano_conta = isset($parcela['id_plano_conta']) ? $parcela['id_plano_conta'] : "";
                     $PagamentoClienteTO->id_conta_bancaria = isset($parcela['id_conta_bancaria']) ? $parcela['id_conta_bancaria'] : "";
                     $PagamentoClienteTO->id_maquineta = isset($parcela['id_maquineta']) ? $parcela['id_maquineta'] : NULL;
                     $PagamentoClienteTO->taxa_maquineta = $txa_maquineta;
                     $PagamentoClienteTO->id_parcelamento = is_numeric($id_parcelamento) ? $id_parcelamento : NULL;
                     $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $parcela['id_cliente_lancamento'];
                     $PagamentoClienteTO->flg_caixa_fechado = 0;
                     if ($PagamentoClienteTO->id_forma_pagamento != 2) {
                         $PagamentoClienteTO->id_banco = NULL;
                         $PagamentoClienteTO->num_conta_corrente = NULL;
                         $PagamentoClienteTO->num_cheque = NULL;
                         $PagamentoClienteTO->flg_cheque_predatado = NULL;
                     }
                     $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO);
                     if (!$id_lancamento_entrada) {
                         Flight::halt(500, 'erro ao inserir pagamento ao cliente');
                     }
                     $MovimentacaoCaixaTO->id_abertura_caixa = isset($parcela['id_abertura_caixa']) ? $parcela['id_abertura_caixa'] : NULL;
                     $MovimentacaoCaixaTO->id_plano_conta = isset($parcela['id_plano_conta']) ? $parcela['id_plano_conta'] : NULL;
                     $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($parcela['id_tipo_movimentacao']) ? $parcela['id_tipo_movimentacao'] : NULL;
                     $MovimentacaoCaixaTO->dsc_movimentacao = $id_venda == NULL ? 'Pagamento' : 'Venda';
                     $MovimentacaoCaixaTO->id_maquineta = isset($parcela['id_maquineta']) ? $parcela['id_maquineta'] : NULL;
                     $MovimentacaoCaixaTO->id_venda = $id_venda;
                     $MovimentacaoCaixaTO->id_lancamento_entrada = $id_lancamento_entrada;
                     $valor_pagamento = isset($parcela['valor']) ? $parcela['valor'] : NULL;
                     $MovimentacaoCaixaTO->para_receber = $parcela['id_tipo_movimentacao'] == 5 ? $parcela['valor'] : NULL;
                     $MovimentacaoCaixaTO->dta_movimentacao = $dta_entrada;
                     $MovimentacaoCaixaTO->id_item_venda = isset($parcela['id_item_venda']) ? $parcela['id_item_venda'] : NULL;
                     if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) {
                         Flight::halt(500, 'erro ao inserir movimentacao');
                     }
                     $id_parcelamento = is_numeric($id_parcelamento) ? $id_parcelamento : $id_lancamento_entrada;
                 }
                 $id_lancamento_entrada = $id_parcelamento;
             }
         }
         if ($parcela == null) {
             $MovimentacaoCaixaTO->id_abertura_caixa = isset($value['id_abertura_caixa']) ? $value['id_abertura_caixa'] : NULL;
             $MovimentacaoCaixaTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : NULL;
             $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($value['id_tipo_movimentacao']) ? $value['id_tipo_movimentacao'] : NULL;
             $MovimentacaoCaixaTO->dsc_movimentacao = $id_venda == NULL ? 'Pagamento' : 'Venda';
             $MovimentacaoCaixaTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL;
             $MovimentacaoCaixaTO->id_venda = $id_venda;
             $MovimentacaoCaixaTO->id_lancamento_entrada = $value['id_tipo_movimentacao'] != 5 ? $id_lancamento_entrada : NULL;
             $valor_pagamento = isset($value['valor']) ? $value['valor'] : NULL;
             $MovimentacaoCaixaTO->para_receber = $value['id_tipo_movimentacao'] == 5 ? $value['valor'] : NULL;
             $MovimentacaoCaixaTO->dta_movimentacao = $dta_entrada;
             $MovimentacaoCaixaTO->id_item_venda = isset($value['id_item_venda']) ? $value['id_item_venda'] : NULL;
             if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) {
                 Flight::halt(500, 'erro ao inserir movimentacao');
             }
         }
     }
     $UsuarioDao = new UsuarioDao();
     if (is_numeric($id_cliente)) {
         $vlr_saldo_devedor = $UsuarioDao->getSaldoDevedor($id_empreendimento, $id_cliente);
         $vlr_saldo_devedor = $vlr_saldo_devedor["vlr_saldo_devedor"];
     } else {
         $vlr_saldo_devedor = 0;
     }
     //$VendaDao->changeStatusVenda($id_venda,6);
     //$AtendimentoTO = new stdClass();
     //$AtendimentoTO->id_status = 3 ;
     //$AtendimentoDao->updateAtendimento($AtendimentoTO,'id='.$id_atendimento);
     Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('vlr_saldo_devedor' => $vlr_saldo_devedor, 'id_controle_pagamento' => $id_controle_pagamento)))->send();
 }
 public static function save($isIndividual)
 {
     $ConfiguracaoDao = new ConfiguracaoDao();
     if ($isIndividual === "true") {
         if ($ConfiguracaoDao->existsKey($_POST['nome'], $_POST['id_empreendimento'])) {
             if (!$ConfiguracaoDao->updateKey($_POST['nome'], $_POST['valor'], $_POST['id_empreendimento'])) {
                 Flight::halt(500, 'erro ao atualizar chave de configuração');
             }
         } else {
             if (!$ConfiguracaoDao->saveKey($_POST['nome'], $_POST['valor'], $_POST['id_empreendimento'])) {
                 Flight::halt(500, 'erro ao cadastrar chave de configuração');
             }
         }
     } else {
         $chaves = isset($_POST['chaves']) ? $_POST['chaves'] : null;
         if ($chaves == null) {
             Flight::halt(406);
         }
         $id_empreendimento = $chaves[0]['id_empreendimento'];
         foreach ($chaves as $key => $value) {
             $nome = isset($value['nome']) ? $value['nome'] : NULL;
             $valor = isset($value['valor']) ? $value['valor'] : NULL;
             $id_empreendimento = isset($value['id_empreendimento']) ? $value['id_empreendimento'] : NULL;
             if ($nome === "id_plano_caixa") {
                 $cfg = $ConfiguracaoDao->getConfiguracoes($id_empreendimento, "id_plano_caixa");
                 if ($cfg && $cfg != null) {
                     $pgtoClienteDao = new PagamentoClienteDao();
                     $pgtoClienteDao->updatePlanoContaPagamento($id_empreendimento, $cfg['id_plano_caixa'], $valor);
                     $pgtoFornecedorDao = new PagamentoFornecedorDao();
                     $pgtoFornecedorDao->updatePlanoContaPagamento($id_empreendimento, $cfg['id_plano_caixa'], $valor);
                 }
             }
             if ($nome === "id_plano_fechamento_caixa") {
                 $cfg = $ConfiguracaoDao->getConfiguracoes($id_empreendimento, "id_plano_fechamento_caixa");
                 if ($cfg && $cfg != null) {
                     $pgtoClienteDao = new PagamentoClienteDao();
                     $pgtoClienteDao->updatePlanoContaPagamento($id_empreendimento, $cfg['id_plano_fechamento_caixa'], $valor);
                     $pgtoFornecedorDao = new PagamentoFornecedorDao();
                     $pgtoFornecedorDao->updatePlanoContaPagamento($id_empreendimento, $cfg['id_plano_fechamento_caixa'], $valor);
                 }
             }
             if ($ConfiguracaoDao->existsKey($nome, $value['id_empreendimento'])) {
                 if (!$ConfiguracaoDao->updateKey($nome, $valor, $id_empreendimento)) {
                     Flight::halt(500, 'erro ao atualizar chave de configuração');
                 }
             } else {
                 if (!$ConfiguracaoDao->saveKey($nome, $valor, $id_empreendimento)) {
                     Flight::halt(500, 'erro ao cadastrar chave de configuração');
                 }
             }
         }
         if (!$ConfiguracaoDao->existsKey('id_fornecedor_movimentacao_caixa', $value['id_empreendimento'])) {
             $FornecedorTO = new FornecedorTO();
             $FornecedorDao = new FornecedorDao();
             $FornecedorTO->nome_fornecedor = 'fornecedor de movimentação de caixa';
             $FornecedorTO->id_empreendimento = $value['id_empreendimento'];
             $id_fornecedor = $FornecedorDao->saveFornecedor($FornecedorTO);
             if ($id_fornecedor) {
                 if (!$ConfiguracaoDao->saveKey('id_fornecedor_movimentacao_caixa', $id_fornecedor, $value['id_empreendimento'])) {
                     Flight::halt(500, 'erro ao cadastrar chave de movimentação');
                 }
             } else {
                 Flight::halt(500, 'erro ao inserir Fornecedor de movimentação');
             }
         }
         if (!$ConfiguracaoDao->existsKey('id_cliente_movimentacao_caixa', $value['id_empreendimento'])) {
             $ClienteTO = new ClienteTO();
             $ClienteDao = new ClienteDao();
             $ClienteTO->nome = 'cliente de movimentação de caixa';
             $id_cliente = $ClienteDao->saveCliente($ClienteTO);
             if (!$id_cliente) {
                 Flight::halt(500, 'erro ao inserir cliente de movimentação');
             }
             $EmpreendimentoDao = new EmpreendimentoDao();
             $UsuarioEmpreendimentoTO = new UsuarioEmpreendimentoTO();
             $UsuarioEmpreendimentoTO->id_usuario = $id_cliente;
             $UsuarioEmpreendimentoTO->id_empreendimento = $value['id_empreendimento'];
             if (!$EmpreendimentoDao->saveUsuarioEmpreendimento($UsuarioEmpreendimentoTO)) {
                 Flight::halt(500, 'erro ao lincar usuario ao empreendimento');
             }
             if (!$ConfiguracaoDao->saveKey('id_cliente_movimentacao_caixa', $id_cliente, $value['id_empreendimento'])) {
                 Flight::halt(500, 'erro ao cadastrar chave de movimentação');
             }
         }
     }
     Flight::halt(201);
 }