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();
     $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'];
     $flg_comanda = isset($_POST['id_mesa']) && is_numeric($_POST['id_mesa']) ? 1 : 0;
     $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 = isset($value['status_pagamento']) && ((int) $value['status_pagamento'] == 1 || (int) $value['status_pagamento'] == 0) ? (int) $value['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_venda = isset($value['id_venda']) ? $value['id_venda'] : NULL;
             $PagamentoClienteTO->id_item_venda = isset($value['id_item_venda']) ? $value['id_item_venda'] : 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_venda = isset($parcela['id_venda']) ? $parcela['id_venda'] : NULL;
                     $PagamentoClienteTO->id_item_venda = isset($parcela['id_item_venda']) ? $parcela['id_item_venda'] : NULL;
                     $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;
     }
     $MesaDao = new MesaDao();
     $mesa = null;
     if ((int) $flg_comanda == 1) {
         $mesa = $MesaDao->getResumoMesa($_POST['id_mesa']);
     }
     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, 'mesa' => $mesa)))->send();
 }
 public static function getOrdemProducao($id_ordem_producao)
 {
     $MesaDao = new MesaDao();
     $ordem_producao = $MesaDao->getOrdemProducao($id_ordem_producao);
     if ($ordem_producao) {
         Flight::json($ordem_producao);
     } else {
         Flight::halt(404, 'Não a dados para a busca');
     }
 }