public static function abrirCaixaPedido($id_caixa, $id_empreendimento)
 {
     $AberturaCaixaDao = new AberturaCaixaDao();
     $AberturaCaixaTO = new AberturaCaixaTO();
     $ConfiguracaoDao = new ConfiguracaoDao();
     $caixa_aberto = $AberturaCaixaDao->caixaAberto(array('abt.id_caixa' => $id_caixa, "abt.id_empreendimento" => $id_empreendimento, "date_format(abt.dta_abertura,'%Y-%m-%d')" => array('exp' => "< '" . date('Y-m-d') . "' AND abt.dta_fechamento IS NULL")));
     if ($caixa_aberto) {
         $MovimentacaoCaixaDao = new MovimentacaoCaixaDao();
         $configuracao = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
         $result = $MovimentacaoCaixaDao->fechamentoCaixa($caixa_aberto['id'], $configuracao['id_conta_bancaria_padrao_fechamento_automatico'], date('Y-m-d 23:59:59', strtotime($caixa_aberto['dta_abertura'])));
         if (!$result) {
             Flight::halt(500, 'Erro ao fechar o caixa');
         }
     }
     $caixa_aberto = $AberturaCaixaDao->caixaAberto(array('abt.id_caixa' => $id_caixa, "abt.id_empreendimento" => $id_empreendimento, "date_format(abt.dta_abertura,'%Y-%m-%d')" => array('exp' => "='" . date('Y-m-d') . "' AND abt.dta_fechamento IS NULL")));
     $config = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
     if ($caixa_aberto) {
         $ConfiguracaoDao = new ConfiguracaoDao();
         Flight::response()->status(200)->header('Content-Type', 'application/json')->write(json_encode(array_merge($caixa_aberto, $config)))->send();
     }
     $AberturaCaixaTO->id_caixa = $id_caixa;
     $AberturaCaixaTO->dta_fechamento = NULL;
     $AberturaCaixaTO->id_empreendimento = $id_empreendimento;
     if ($AberturaCaixaDao->abrirCaixa($AberturaCaixaTO)) {
         $caixa_aberto = $AberturaCaixaDao->caixaAberto(array('abt.id_caixa' => $id_caixa, "abt.id_empreendimento" => $id_empreendimento, "date_format(abt.dta_abertura,'%Y-%m-%d')" => array('exp' => "='" . date('Y-m-d') . "' AND abt.dta_fechamento IS NULL")));
         Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array_merge($caixa_aberto, $config)))->send();
     } else {
         Flight::response()->status(404)->header('Content-Type', 'application/json')->write(json_encode(array('msg' => 'Ocorreu um erro inesperado ao abrir o caixa')))->send();
     }
 }
 public static function updateStatus($idNotaFiscal, $id_empreendimento)
 {
     try {
         $NotaFiscalDao = new NotaFiscalDao();
         $ConfiguracaoDao = new ConfiguracaoDao();
         $conf = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
         $flg_ambiente_nfe = isset($conf['flg_ambiente_nfe']) && ((int) $conf['flg_ambiente_nfe'] == 1 || (int) $conf['flg_ambiente_nfe'] == 0) ? (int) $conf['flg_ambiente_nfe'] : 0;
         $tokens['token_focus_producao'] = isset($conf['token_focus_producao']) ? $conf['token_focus_producao'] : '';
         $tokens['token_focus_homologacao'] = isset($conf['token_focus_homologacao']) ? $conf['token_focus_homologacao'] : '';
         $NfeDao = new NfeDao($flg_ambiente_nfe, $tokens);
         $NfeDao->id_ref = $idNotaFiscal;
         $retornoParceiro = $NfeDao->buscaNfe();
         $nfTO = new stdClass();
         $nfTO->cod_nota_fiscal = $idNotaFiscal;
         $nfTO->status = $retornoParceiro->status;
         $nfTO->status_sefaz = $retornoParceiro->status_sefaz;
         $nfTO->mensagem_sefaz = $retornoParceiro->mensagem_sefaz;
         $nfTO->status_sefaz_cancelamento = isset($retornoParceiro->status_sefaz_cancelamento) ? $retornoParceiro->status_sefaz_cancelamento : NULL;
         $nfTO->mensagem_sefaz_cancelamento = isset($retornoParceiro->mensagem_sefaz_cancelamento) ? $retornoParceiro->mensagem_sefaz_cancelamento : NULL;
         $nfTO->caminho_xml_cancelamento = isset($retornoParceiro->caminho_xml_cancelamento) ? substr($NfeDao->server, 0, -1) . $retornoParceiro->caminho_xml_cancelamento : NULL;
         if ($nfTO->status == 'autorizado') {
             $nfTO->serie = $retornoParceiro->serie;
             $nfTO->numero = $retornoParceiro->numero;
             $nfTO->chave_nfe = $retornoParceiro->chave_nfe;
             $nfTO->caminho_xml_nota_fiscal = substr($NfeDao->server, 0, -1) . $retornoParceiro->caminho_xml_nota_fiscal;
             $nfTO->caminho_danfe = substr($NfeDao->server, 0, -1) . $retornoParceiro->caminho_danfe;
         }
         $NotaFiscalDao->updateNota($nfTO);
         $notaAtualizada = $NotaFiscalDao->getNota($idNotaFiscal);
         Flight::json($notaAtualizada);
     } catch (Exception $e) {
         jsonException($e);
     }
 }
Ejemplo n.º 3
0
 public function setTimeZone($id_empreendimento)
 {
     $ConfiguracaoDao = new ConfiguracaoDao();
     $conf = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
     $time_zone = $conf['time_zone'];
     date_default_timezone_set($time_zone);
 }
 public static function getDadosCnf($id_venda, $id_caixa)
 {
     $vendaDao = new VendaDao();
     $venda = $vendaDao->getVenda($id_venda);
     $itemVendaDao = new ItemVendaDao();
     $itensVenda = $itemVendaDao->getItens($id_venda, null, null, null);
     $empreendimentoDao = new EmpreendimentoDao();
     $empreendimento = $empreendimentoDao->getEmpreendimentoById($venda['id_empreendimento']);
     $contaBancariaDao = new ContaBancariaDao();
     $caixa = $contaBancariaDao->getContaBancaria($id_caixa);
     $usuarioDao = new UsuarioDao();
     $saldoDevedor = $usuarioDao->getSaldoDevedor($venda['id_empreendimento'], $venda['id_cliente']);
     $configuracaoDao = new ConfiguracaoDao();
     $config = $configuracaoDao->getConfiguracoes($venda['id_empreendimento']);
     Flight::json(array('venda' => $venda, 'itensVenda' => $itensVenda, 'empreendimento' => $empreendimento, 'printerModel' => $caixa['mod_impressora'], 'saldoDevedor' => $saldoDevedor['vlr_saldo_devedor']));
 }
 public static function detalhesPagamentosDia($id_empreendimento, $date)
 {
     $AgendaFornecedorDao = new AgendaFornecedorDao();
     $ConfiguracaoDao = new ConfiguracaoDao();
     $configuracao_agenda = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
     $configuracao_agenda = isset($configuracao_agenda['pagamentos_fornecedores_agenda']) ? json_decode($configuracao_agenda['pagamentos_fornecedores_agenda'], true) : false;
     $valores_agenda = null;
     if (is_array($configuracao_agenda)) {
         $pagamentos_realizados = $AgendaFornecedorDao->getPagByDay($id_empreendimento, array($date => null));
         $pagamentos_realizados = isset($pagamentos_realizados[$date]) ? $pagamentos_realizados[$date] : 0;
         $dias_agenda = self::getDiasAgenda($configuracao_agenda['dias_semana']);
         if ($configuracao_agenda['forma_valor'] == 1) {
             $valores_semana = self::getValoresAgenda($configuracao_agenda['dias_semana'], 'valor');
         } else {
             if ($configuracao_agenda['forma_porcentagem'] == 1) {
                 $valores_semana = self::getValoresAgenda($configuracao_agenda['dias_semana'], 'porcentagem');
             }
         }
         $vlr_permitido_dia = isset($valores_semana[(int) date('N', strtotime($date))]) ? $valores_semana[(int) date('N', strtotime($date))] : 0;
         $valores_agenda = array('vlr_permitido_dia' => $vlr_permitido_dia, 'pagamentos_realizados' => $pagamentos_realizados, 'disponivel' => $vlr_permitido_dia - $pagamentos_realizados);
     }
     $lancamentos = $AgendaFornecedorDao->detalhesPagamentosDia($id_empreendimento, $date);
     $saida = array('faturamento' => $lancamentos, 'valores_agenda' => $valores_agenda);
     if ($lancamentos) {
         Flight::json($saida);
     } else {
         Flight::halt(404, 'Nenhum lançamento encontrado!');
     }
 }
 public function fechamentoCaixa($id_abertura_caixa, $id_conta_bancaria, $dta_fechamento)
 {
     $sql = "SELECT pg_venda.*,tcpv.dta_pagamento AS dta_entrada, mov_caixa.id AS id_mov, mov_caixa.id_venda FROM `tbl_movimentacao_caixa` AS mov_caixa\n\t\t\t\tINNER JOIN tbl_pagamentos_venda AS pg_venda ON mov_caixa.id_lancamento_entrada = pg_venda.id\n\t\t\t\tINNER JOIN tbl_controle_pagamento_venda AS tcpv ON pg_venda.id_controle_pagamento = tcpv.id\n\t\t\t\tWHERE mov_caixa.id_tipo_movimentacao != 2 AND mov_caixa.id_abertura_caixa = {$id_abertura_caixa}";
     $select = $this->conn->prepare($sql);
     $select->execute();
     $AberturaCaixaDao = new AberturaCaixaDao();
     $ConfiguracaoDao = new ConfiguracaoDao();
     $caixa = $AberturaCaixaDao->caixaAberto(array('abt.id' => $id_abertura_caixa));
     $id_empreendimento = $caixa['id_empreendimento'];
     $id_caixa = $caixa['id_caixa'];
     $config = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
     $this->setTimeZone($id_empreendimento);
     //return $caixa;
     $id_plano_conta = $config['id_plano_fechamento_caixa'];
     $id_fornecedor = $config['id_fornecedor_movimentacao_caixa'];
     $AberturaCaixaDao = new AberturaCaixaDao();
     $valor_dinheiro = $AberturaCaixaDao->vlrEmCaixa($id_abertura_caixa, 3);
     $valor_dinheiro = (double) $valor_dinheiro['vlr_em_caixa'];
     $lancamentos_entrada = $select->fetchAll(PDO::FETCH_ASSOC);
     $dta_fechamento = $dta_fechamento == null ? date('Y-m-d H:i:s') : $dta_fechamento;
     $valor_total_baixa = $AberturaCaixaDao->vlrEmCaixa($id_abertura_caixa);
     $valor_total_baixa = $valor_total_baixa['vlr_em_caixa'];
     $MaquinetaDao = new MaquinetaDao();
     foreach ($lancamentos_entrada as $key => $value) {
         if ($value['id_forma_pagamento'] == 2 || $value['id_forma_pagamento'] == 3 || $value['id_forma_pagamento'] == 7 || $value['id_forma_pagamento'] == 4 || $value['id_forma_pagamento'] == 8 || $value['id_forma_pagamento'] == 9) {
             if ($value['id_forma_pagamento'] != 8) {
                 $lancamentos_entrada[$key]['id_conta_bancaria'] = $id_conta_bancaria;
             } else {
                 $lancamentos_entrada[$key]['id_conta_bancaria'] = $lancamentos_entrada[$key]['id_conta_transferencia_destino'];
             }
             $lancamentos_entrada[$key]['id_plano_conta'] = $id_plano_conta;
         } else {
             $maquineta = $MaquinetaDao->getMaquineta($lancamentos_entrada[$key]['id_maquineta']);
             $lancamentos_entrada[$key]['id_conta_bancaria'] = $maquineta['id_conta_bancaria'];
             $lancamentos_entrada[$key]['id_plano_conta'] = $id_plano_conta;
         }
     }
     $lancamentos_entrada_cc = array();
     foreach ($lancamentos_entrada as $key => $value) {
         if ($value['id_forma_pagamento'] == 6 && empty($value['id_parcelamento'])) {
             $lancamentos_entrada_cc[] = $value;
             unset($lancamentos_entrada[$key]);
         }
     }
     $cc_parcelas = array();
     foreach ($lancamentos_entrada_cc as $key => $value) {
         $parcelas_atuais = array('id_forma_pagamento' => $value['id_forma_pagamento'], 'id_controle_pagamento' => $value['id_controle_pagamento'], 'dta_entrada' => $value['dta_entrada'], 'parcelas' => array($value));
         foreach ($lancamentos_entrada as $i => $v) {
             if ($value['id'] == $v['id_parcelamento']) {
                 $parcelas_atuais['parcelas'][] = $v;
                 unset($lancamentos_entrada[$i]);
             }
         }
         $cc_parcelas[] = $parcelas_atuais;
     }
     foreach ($cc_parcelas as $key => $value) {
         $lancamentos_entrada[] = $value;
     }
     $ControlePagamentoVendaDao = new ControlePagamentoVendaDao();
     $lancamentos_controle = array();
     foreach ($lancamentos_entrada as $key => $value) {
         if (isset($lancamentos_controle[$value['id_controle_pagamento']])) {
             $lancamentos_controle[$value['id_controle_pagamento']][] = $value;
         } else {
             $lancamentos_controle[$value['id_controle_pagamento']] = array();
             $lancamentos_controle[$value['id_controle_pagamento']][] = $value;
             $lancamentos_controle[$value['id_controle_pagamento']]['dta_entrada'] = $value['dta_entrada'];
         }
     }
     foreach ($lancamentos_controle as $key_cp => $value_cp) {
         $id_controle_pagamento = $ControlePagamentoVendaDao->saveControlePagamento($value_cp['dta_entrada']);
         unset($value_cp['dta_entrada']);
         foreach ($value_cp as $key => $value) {
             if ($value['id_forma_pagamento'] != 6) {
                 $value['id_banco'] = is_numeric($value['id_banco']) ? "'" . $value['id_banco'] . "'" : 'NULL';
                 $value['id_maquineta'] = is_numeric($value['id_maquineta']) ? "'" . $value['id_maquineta'] . "'" : 'NULL';
                 $value['num_conta_corrente'] = !empty($value['num_conta_corrente']) ? "'" . $value['num_conta_corrente'] . "'" : 'NULL';
                 $value['num_cheque'] = !empty($value['num_cheque']) ? "'" . $value['num_cheque'] . "'" : 'NULL';
                 $value['flg_cheque_predatado'] = !empty($value['flg_cheque_predatado']) ? "'" . $value['flg_cheque_predatado'] . "'" : 'NULL';
                 $value['taxa_maquineta'] = !empty($value['taxa_maquineta']) ? "'" . $value['taxa_maquineta'] . "'" : 'NULL';
                 $value['id_vale_troca'] = !empty($value['id_vale_troca']) ? "'" . $value['id_vale_troca'] . "'" : 'NULL';
                 $value['doc_boleto'] = !empty($value['doc_boleto']) ? "'" . $value['doc_boleto'] . "'" : 'NULL';
                 $value['num_boleto'] = !empty($value['num_boleto']) ? "'" . $value['num_boleto'] . "'" : 'NULL';
                 $value['agencia_transferencia'] = !empty($value['agencia_transferencia']) ? "'" . $value['agencia_transferencia'] . "'" : 'NULL';
                 $value['conta_transferencia'] = !empty($value['conta_transferencia']) ? "'" . $value['conta_transferencia'] . "'" : 'NULL';
                 $value['proprietario_conta_transferencia'] = !empty($value['proprietario_conta_transferencia']) ? "'" . $value['proprietario_conta_transferencia'] . "'" : 'NULL';
                 $value['id_conta_transferencia_destino'] = !empty($value['id_conta_transferencia_destino']) ? "'" . $value['id_conta_transferencia_destino'] . "'" : 'NULL';
                 $value['obs_pagamento'] = "Pagamento proveniente de um fechamento de caixa";
                 $sql_update_lancamento = "UPDATE tbl_pagamentos_venda SET flg_caixa_fechado = 1 WHERE id = " . $value['id'];
                 $slq_lancamentos_entrada = " INSERT INTO tbl_pagamentos_venda ( `id_cliente`,`id_controle_pagamento`  , `id_forma_pagamento`, `data_pagamento`, `valor_pagamento`, `status_pagamento`, `id_empreendimento`,`id_banco`,`num_conta_corrente`,`num_cheque`,`flg_cheque_predatado`, `id_plano_conta`, `id_conta_bancaria`, `obs_pagamento`, `id_maquineta`, `taxa_maquineta`,`id_vale_troca`, `doc_boleto`,`num_boleto`,`agencia_transferencia`,`conta_transferencia`,`proprietario_conta_transferencia`,`id_conta_transferencia_destino`)\n\t\t\t\t\t\t\t\t\t\t\t\t VALUES  ('" . $value['id_cliente'] . "', '" . $id_controle_pagamento . "' ,'" . $value['id_forma_pagamento'] . "', '" . $value['data_pagamento'] . "', '" . $value['valor_pagamento'] . "', '" . $value['status_pagamento'] . "', '" . $value['id_empreendimento'] . "'," . $value['id_banco'] . ", " . $value['num_conta_corrente'] . " , " . $value['num_cheque'] . " , " . $value['flg_cheque_predatado'] . " ,'" . $value['id_plano_conta'] . "', '" . $value['id_conta_bancaria'] . "', '" . $value['obs_pagamento'] . "' , " . $value['id_maquineta'] . ", " . $value['taxa_maquineta'] . ", " . $value['id_vale_troca'] . ", " . $value['doc_boleto'] . ", " . $value['num_boleto'] . ", " . $value['agencia_transferencia'] . ", " . $value['conta_transferencia'] . ", " . $value['proprietario_conta_transferencia'] . ", " . $value['id_conta_transferencia_destino'] . ")";
                 $update_lancamento = $this->conn->prepare($sql_update_lancamento);
                 $insert = $this->conn->prepare($slq_lancamentos_entrada);
                 if (!$update_lancamento->execute()) {
                     return false;
                 }
                 if (!$insert->execute()) {
                     return false;
                 }
                 $id_lancamento_entrada = $this->conn->lastInsertId();
                 $value['id_venda'] = is_numeric($value['id_venda']) ? "'" . $value['id_venda'] . "'" : 'NULL';
                 $value['dsc_movimentacao'] = "Transferência do registro de movimentacão #" . $value['id_mov'];
                 $sql_movimentacao = "INSERT INTO tbl_movimentacao_caixa (`id`, `id_abertura_caixa`, `id_plano_conta`, `id_tipo_movimentacao`, `dsc_movimentacao` , `id_venda`, `id_lancamento_entrada`, `id_lancamento_saida`, `id_maquineta`, `dta_movimentacao`)\n\t\t\t\t\t\t\t\t\t\t VALUES (NULL,'" . $id_abertura_caixa . "', '" . $id_plano_conta . "', '4', '" . $value['dsc_movimentacao'] . "', " . $value['id_venda'] . ", '" . $id_lancamento_entrada . "', NULL, " . $value['id_maquineta'] . ", '" . $dta_fechamento . "');";
                 $update_lancamento = $this->conn->prepare($sql_update_lancamento);
                 $insert = $this->conn->prepare($sql_movimentacao);
                 if (!$insert->execute()) {
                     return false;
                 }
             } else {
                 if ($value['id_forma_pagamento'] == 6) {
                     $cont_parcelas = 0;
                     $id_parcelamento = NULL;
                     foreach ($value['parcelas'] as $i => $v) {
                         $v['id_banco'] = is_numeric($v['id_banco']) ? "'" . $v['id_banco'] . "'" : 'NULL';
                         $v['id_maquineta'] = is_numeric($v['id_maquineta']) ? "'" . $v['id_maquineta'] . "'" : 'NULL';
                         $v['num_conta_corrente'] = !empty($v['num_conta_corrente']) ? "'" . $v['num_conta_corrente'] . "'" : 'NULL';
                         $v['num_cheque'] = !empty($v['num_cheque']) ? "'" . $v['num_cheque'] . "'" : 'NULL';
                         $v['flg_cheque_predatado'] = !empty($v['flg_cheque_predatado']) ? "'" . $v['flg_cheque_predatado'] . "'" : 'NULL';
                         $v['taxa_maquineta'] = !empty($v['taxa_maquineta']) ? "'" . $v['taxa_maquineta'] . "'" : 'NULL';
                         $v['obs_pagamento'] = "Pagamento proveniente de um fechamento de caixa";
                         $id_parcelamento = $cont_parcelas == 0 ? 'NULL' : $id_parcelamento;
                         $sql_update_lancamento = "UPDATE tbl_pagamentos_venda SET flg_caixa_fechado = 1 WHERE id = " . $v['id'];
                         $slq_lancamentos_entrada = "INSERT INTO tbl_pagamentos_venda ( `id_cliente`,`id_controle_pagamento`, `id_parcelamento`, `id_forma_pagamento`, `data_pagamento`, `valor_pagamento`, `status_pagamento`, `id_empreendimento`,`id_banco`,`num_conta_corrente`,`num_cheque`,`flg_cheque_predatado`, `id_plano_conta`, `id_conta_bancaria`, `obs_pagamento`, `id_maquineta`, `taxa_maquineta`)\n\t\t\t\t\t\t\t\t\t\t\t\t\t VALUES  ('" . $v['id_cliente'] . "', '" . $id_controle_pagamento . "', {$id_parcelamento} ,'" . $v['id_forma_pagamento'] . "', '" . $v['data_pagamento'] . "', '" . $v['valor_pagamento'] . "', '" . $v['status_pagamento'] . "', '" . $v['id_empreendimento'] . "'," . $v['id_banco'] . ", " . $v['num_conta_corrente'] . " , " . $v['num_cheque'] . " , " . $v['flg_cheque_predatado'] . " ,'" . $v['id_plano_conta'] . "', '" . $v['id_conta_bancaria'] . "','" . $v['obs_pagamento'] . "'," . $v['id_maquineta'] . ", " . $v['taxa_maquineta'] . " )";
                         $update_lancamento = $this->conn->prepare($sql_update_lancamento);
                         $insert = $this->conn->prepare($slq_lancamentos_entrada);
                         if (!$update_lancamento->execute()) {
                             return false;
                         }
                         if (!$insert->execute()) {
                             return false;
                         }
                         $id_lancamento_entrada = $this->conn->lastInsertId();
                         $id_parcelamento = $cont_parcelas == 0 ? $id_lancamento_entrada : $id_parcelamento;
                         $v['id_venda'] = is_numeric($v['id_venda']) ? "'" . $v['id_venda'] . "'" : 'NULL';
                         $v['dsc_movimentacao'] = "Transferência do registro de movimentacão #" . $v['id_mov'];
                         $sql_movimentacao = "INSERT INTO tbl_movimentacao_caixa (`id`, `id_abertura_caixa`, `id_plano_conta`, `id_tipo_movimentacao`, `dsc_movimentacao`, `id_venda`, `id_lancamento_entrada`, `id_lancamento_saida`, `id_maquineta`, `dta_movimentacao`)\n\t\t\t\t\t\t\t\t\t\t\t VALUES (NULL,'" . $id_abertura_caixa . "', '" . $id_plano_conta . "', '4','" . $v['dsc_movimentacao'] . "', " . $v['id_venda'] . ", '" . $id_lancamento_entrada . "', NULL, " . $v['id_maquineta'] . ", '" . $dta_fechamento . "');";
                         $insert = $this->conn->prepare($sql_movimentacao);
                         if (!$insert->execute()) {
                             return false;
                         }
                         $cont_parcelas++;
                     }
                 }
             }
         }
     }
     $ControlePagamentoFornecedorDao = new ControlePagamentoFornecedorDao();
     $id_controle_pagamento = $ControlePagamentoFornecedorDao->saveControlePagamento();
     $slq_lancamentos_saida = "INSERT INTO `tbl_pagamentos_fornecedores` ( `id_controle_pagamento`,`id_fornecedor`, `id_forma_pagamento`, `data_pagamento`, `valor_pagamento`, `status_pagamento`, `id_empreendimento`,`id_plano_conta`, `id_conta_bancaria`)\n\t\t\t\t\t\t\t\t VALUES ('" . $id_controle_pagamento . "','" . $id_fornecedor . "', '3', '" . $dta_fechamento . "', '" . $valor_total_baixa . "', '1', '" . $id_empreendimento . "','" . $id_plano_conta . "', '" . $id_caixa . "');";
     $insert = $this->conn->prepare($slq_lancamentos_saida);
     if (!$insert->execute()) {
         return false;
     }
     $id_lancamento_saida = $this->conn->lastInsertId();
     $obs_pagamento_abt = "Transferência para abatimento do caixa";
     $sql_movimentacao = "INSERT INTO tbl_movimentacao_caixa (`id`, `id_abertura_caixa`, `id_plano_conta`, `id_tipo_movimentacao`, `dsc_movimentacao`, `id_venda`, `id_lancamento_entrada`, `id_lancamento_saida`, `id_maquineta`, `dta_movimentacao`)\n\t\t\t\t\t\t\t VALUES (NULL, '" . $id_abertura_caixa . "', '" . $id_plano_conta . "', '4','" . $obs_pagamento_abt . "', NULL, NULL, '" . $id_lancamento_saida . "', NULL, '" . $dta_fechamento . "');";
     $insert = $this->conn->prepare($sql_movimentacao);
     if (!$insert->execute()) {
         return false;
     }
     $sql_update_caixa = "UPDATE tbl_abertura_caixa SET dta_fechamento = '" . $dta_fechamento . "' WHERE id = {$id_abertura_caixa}";
     $insert = $this->conn->prepare($sql_update_caixa);
     if (!$insert->execute()) {
         return false;
     }
     return true;
 }
 public function getCaixa($pth_local, $id_empreendimento)
 {
     $sql = "SELECT * FROM `tbl_conta_bancaria` WHERE id_tipo_conta = 5 AND pth_local = '" . $pth_local . "' AND id_empreendimento = " . $id_empreendimento;
     $select = $this->conn->prepare($sql);
     $select->execute();
     $caixa = $select->fetch(PDO::FETCH_ASSOC);
     $ConfiguracaoDao = new ConfiguracaoDao();
     $config = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
     return array_merge($caixa, $config);
 }
            }
        }
    }
    foreach ($cartao_credito as $key => $value) {
        $saida[] = $value;
    }
    foreach ($entrada as $key => $value) {
        if ($value['id_forma_pagamento'] != 6) {
            $saida[] = $value;
        }
    }
    return $saida;
}
$ConfiguracaoDao = new ConfiguracaoDao();
$id_empreendimento = $dados['id_empreendimento'];
$configuracoes = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
$id_plano_conta_pagamento_profissional = $configuracoes['id_plano_conta_pagamento_profissional'];
$id_fornecedor_movimentacao_caixa = $configuracoes['id_fornecedor_movimentacao_caixa'];
$now = $dados['now'];
/*Busca Pagamentos aos Profissioais*/
$totalDespesas = 0;
$LancamentosFinanceirosDao = new LancamentosFinanceirosDao();
$where = "(id_tipo_conta  <> 5 OR (id_tipo_conta =5 AND (flg_caixa_fechado = 0 OR flg_caixa_fechado IS NULL ) )  AND flg_tipo_lancamento = 'D' ) AND (flg_transferencia_conta = 0 OR \n\t\t\t flg_transferencia_conta IS NULL) AND id_empreendimento = {$id_empreendimento} AND dta_entrada between '{$now} 00:00:00' and '{$now}  23:59:59' \n\t\t\t AND id_plano_conta = '{$id_plano_conta_pagamento_profissional}' order by \n\t\t     dta_entrada asc";
$aux = $LancamentosFinanceirosDao->getLancamentos(null, null, array('cplSql' => $where));
$comissionados = $aux ? getParcelas($aux['pagamentos']) : array();
usort($comissionados, 'ordenaDta');
/* end */
/*Busca Pagamentos a fornecedores*/
$where = "(id_tipo_conta  <> 5 OR (id_tipo_conta =5 AND (flg_caixa_fechado = 0 OR flg_caixa_fechado IS NULL ) )  AND flg_tipo_lancamento = 'D' ) AND (flg_transferencia_conta = 0 OR \n\t\t\t flg_transferencia_conta IS NULL) AND id_empreendimento = {$id_empreendimento} AND data_pagamento between '{$now} 00:00:00' and '{$now}  23:59:59' \n\t\t\t AND id_plano_conta <> '{$id_plano_conta_pagamento_profissional}' AND id_clienteORfornecedor <> '{$id_fornecedor_movimentacao_caixa}' AND  flg_tipo_lancamento = 'D' AND status_pagamento = 1 order by \n\t\t     dta_entrada asc";
$aux = $LancamentosFinanceirosDao->getLancamentos(null, null, array('cplSql' => $where));
$outrasDespesas = $aux ? getParcelas($aux['pagamentos']) : array();
Ejemplo n.º 9
0
 public function getPagamentosAgenda($id_empreendimento, $first_date, $last_date)
 {
     $ConfiguracaoDao = new ConfiguracaoDao();
     $conf = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
     $id_fornecedor_movimentacao_caixa = isset($conf['id_fornecedor_movimentacao_caixa']) && is_numeric($conf['id_fornecedor_movimentacao_caixa']) ? (int) $conf['id_fornecedor_movimentacao_caixa'] : 0;
     $now = date('Y-m-d');
     $sql = "SELECT * FROM tbl_fornecedores tf\n\t\t\t\tINNER JOIN tbl_pagamentos_fornecedores AS tpf ON tf.id = tpf.id_fornecedor \n\t\t\t\tWHERE  tpf.data_pagamento BETWEEN '{$first_date}' AND '{$last_date}' AND tf.id_empreendimento = {$id_empreendimento}  AND tf.id != {$id_fornecedor_movimentacao_caixa}\n\t\t\t\tORDER BY tpf.data_pagamento ASC ";
     $select = $this->conn->prepare($sql);
     if ($select->execute()) {
         if ($select->rowCount() > 0) {
             $pagamentos = $select->fetchAll(PDO::FETCH_ASSOC);
             $agenda = array();
             foreach ($pagamentos as $key => $pagamento) {
                 $item = array("id" => $pagamento['id'], "title" => 'Pag. ao for. ' . $pagamento['nome_fornecedor'] . ' no valor de R$ ' . number_format($pagamento['valor_pagamento'], 2, ',', '.'), "start" => $pagamento['data_pagamento'], "color" => $now > $pagamento['data_pagamento'] ? 'rgb(240, 57, 57)' : '#3A87AD', "className" => "agenda-event", "description" => '<strong>Pag. ao For. ' . strtoupper($pagamento['nome_fornecedor']) . ' no valor de R$ ' . number_format($pagamento['valor_pagamento'], 2, ',', '.') . '</strong>');
                 $agenda[] = $item;
             }
             return $agenda;
         } else {
             return false;
         }
     } else {
         return false;
     }
 }
 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());
     }
 }
Ejemplo n.º 11
0
 public function atualizaEstoquePrestaShop($id_empreendimento, $id_item, $id_item_referencia, $id_combinaco)
 {
     $xmlProduto = $this->webService->get(array('resource' => 'products', 'id' => $id_item_referencia));
     $resourcesProduto = $xmlProduto->children()->children();
     $stock_available = $resourcesProduto->xpath('//stock_availables[id_product_attribute=' . $id_combinaco . ']');
     if (count($stock_available) != 1) {
         return array('status' => false, 'errors' => array(array("id stock_availables não pode ser encontrado")));
     }
     $xml = $this->webService->get(array('resource' => 'stock_availables', 'id' => $stock_available[0]->id));
     $resources = $xml->children()->children();
     $ConfiguracaoDao = new ConfiguracaoDao();
     $config = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
     $prestashop_depositos = isset($config['prestashop_depositos']) && is_array(json_decode($config['prestashop_depositos'])) ? json_decode($config['prestashop_depositos']) : array();
     $EstoqueDao = new EstoqueDao();
     $estoque = $EstoqueDao->getEstoque(null, null, array('prd.id' => $id_item, 'emp->id_empreendimento' => $id_empreendimento));
     $estoque = isset($estoque['produtos']) && is_array($estoque['produtos']) ? $estoque['produtos'] : array();
     $qtd_estoque = 0;
     foreach ($estoque as $item) {
         if (in_array($item['id_deposito'], $prestashop_depositos)) {
             $qtd_estoque += (int) $item['qtd_item'];
         }
     }
     $resources->quantity = $qtd_estoque;
     try {
         $opt = array('resource' => 'stock_availables');
         $opt['id'] = $stock_available[0]->id;
         $opt['putXml'] = $xml->asXML();
         $xml = $this->webService->edit($opt);
         return array('status' => true, 'responseXml' => $xml->asXML(), 'stock_availables' => $xml->stock_availables);
     } catch (PrestaShopWebserviceException $e) {
         return array('status' => false, 'errors' => $this->webService->response->errors);
     }
 }
 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);
 }
Ejemplo n.º 13
0
 public static function cancelarNfe($id_ref, $justificativa, $id_empreendimento)
 {
     $ConfiguracaoDao = new ConfiguracaoDao();
     $id_empreendimento = $id_empreendimento;
     $conf = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
     $flg_ambiente_nfe = isset($conf['flg_ambiente_nfe']) && ((int) $conf['flg_ambiente_nfe'] == 1 || (int) $conf['flg_ambiente_nfe'] == 0) ? (int) $conf['flg_ambiente_nfe'] : 0;
     $tokens['token_focus_producao'] = isset($conf['token_focus_producao']) ? $conf['token_focus_producao'] : '';
     $tokens['token_focus_homologacao'] = isset($conf['token_focus_homologacao']) ? $conf['token_focus_homologacao'] : '';
     $NfeDao = new NfeDao($flg_ambiente_nfe, $tokens);
     $NfeDao->id_ref = $id_ref;
     $retorno = $NfeDao->cancelarNfe($justificativa);
     if ($retorno) {
         $NotaFiscalDao = new NotaFiscalDao();
         $nfTO = new stdClass();
         $nfTO->cod_nota_fiscal = $id_ref;
         $nfTO->status = 'processando_cancelamento';
         $NotaFiscalDao->updateNota($nfTO);
         Flight::halt(200);
     } else {
         Flight::halt(500);
     }
 }
Ejemplo n.º 14
0
 public function baixaEstoquePDV($id_empreendimento, $id_venda, $id_produto, $id_deposito, $qtd_saida, $id_usuario, $id_caixa = null)
 {
     $ConfiguracaoDao = new ConfiguracaoDao();
     $config = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
     $configuracao = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
     if (isset($configuracao['flg_controlar_estoque']) && (int) $configuracao['flg_controlar_estoque'] == 0) {
         $controlar_estoque = false;
     } else {
         $controlar_estoque = true;
     }
     if ($controlar_estoque) {
         $busca = array("etq.qtd_item" => array('exp' => '>0'), "prd.id" => $id_produto);
     } else {
         $busca = array("prd.id" => $id_produto);
     }
     if (is_array($id_deposito)) {
         if ($controlar_estoque) {
             $busca['orderby'] = ' tcd.ordem_saida ASC, dta_validade ASC ';
         } else {
             $busca['orderby'] = ' tcd.ordem_saida ASC, etq.qtd_item DESC , dta_validade ASC ';
         }
         $busca['etq.id_deposito']['exp'] = ' IN(' . join($id_deposito, ',') . ')';
         $busca['tcd.id_caixa'] = $id_caixa;
     } else {
         if ($controlar_estoque) {
             $busca['orderby'] = ' dta_validade ASC ';
         } else {
             $busca['orderby'] = '  etq.qtd_item DESC, dta_validade ASC ';
         }
         $busca['etq.id_deposito'] = $id_deposito;
     }
     $estoque = parse_arr_values($this->getEstoque(null, null, $busca), 'all');
     $estoque = $estoque['produtos'];
     $estoque_saida = array();
     $qtd_saida_restante = $qtd_saida;
     foreach ($estoque as $key => $value) {
         $qtd_item = $value['qtd_item'];
         if ($qtd_item >= $qtd_saida_restante) {
             $estoque_saida[] = array('id' => $value['id'], 'qtd_item' => $qtd_item - $qtd_saida_restante, 'dta_validade' => $value['dta_validade'], 'qtd_saida' => $qtd_saida_restante, 'id_deposito' => $value['id_deposito'], 'id_produto' => $value['id_produto']);
             break;
         } else {
             if ($controlar_estoque || $key + 1 < count($estoque)) {
                 $qtd_saida_restante = abs($qtd_item - $qtd_saida_restante);
                 $estoque_saida[] = array('id' => $value['id'], 'qtd_item' => 0, 'dta_validade' => $value['dta_validade'], 'qtd_saida' => $qtd_item, 'id_deposito' => $value['id_deposito'], 'id_produto' => $value['id_produto']);
             } else {
                 $estoque_saida[] = array('id' => $value['id'], 'qtd_item' => $qtd_item - $qtd_saida_restante, 'dta_validade' => $value['dta_validade'], 'qtd_saida' => $qtd_item, 'id_deposito' => $value['id_deposito'], 'id_produto' => $value['id_produto']);
                 $qtd_saida_restante = 0;
             }
         }
     }
     $sql = "";
     $EstoqueSaidaTO = new EstoqueSaidaTO();
     $EstoqueSaidaDao = new EstoqueSaidaDao();
     $EstoqueSaidaTO->id_venda = $id_venda;
     $EstoqueSaidaTO->id_empreendimento = $id_empreendimento;
     $EstoqueSaidaTO->id_usuario = $id_usuario;
     $id_estoque_saida = $EstoqueSaidaDao->saveEstoqueSaida($EstoqueSaidaTO);
     if (!$id_estoque_saida) {
         return false;
     }
     $ItemEstoqueSaidaTO = new ItemEstoqueSaidaTO();
     $ItemEstoqueSaidaDao = new ItemEstoqueSaidaDao();
     foreach ($estoque_saida as $key => $value) {
         $ItemEstoqueSaidaTO->id_estoque_saida = $id_estoque_saida;
         $ItemEstoqueSaidaTO->id_deposito = $value['id_deposito'];
         $ItemEstoqueSaidaTO->id_produto = $value['id_produto'];
         $ItemEstoqueSaidaTO->dta_validade = $value['dta_validade'];
         $ItemEstoqueSaidaTO->qtd_item = $value['qtd_saida'];
         $id_item_estoque_saida = $ItemEstoqueSaidaDao->saveItemEstoqueSaida($ItemEstoqueSaidaTO);
         if (!$id_item_estoque_saida) {
             return false;
         }
         $dadosTrigger = new stdClass();
         $dadosTrigger->acao_movimentacao = 'SAIDA';
         $dadosTrigger->id_tipo_movimentacao_estoque = 8;
         $dadosTrigger->id_venda = $id_venda;
         $dadosTrigger->id_responsavel = $id_usuario;
         $dadosTrigger->id_empreendimento = $id_empreendimento;
         $dadosTrigger->qtd_saida = $value['qtd_saida'];
         $dadosTrigger->id_estoque_saida = $id_estoque_saida;
         $dadosTrigger->id_item_estoque_saida = $id_item_estoque_saida;
         $TRGTblEstoqueAUTO = new TRGTblEstoqueAUTO();
         $TRGTblEstoqueAUTO->__setAll($dadosTrigger);
         $varTriggerSql = "";
         if (!empty($dadosTrigger)) {
             foreach ($TRGTblEstoqueAUTO as $keyTrigger => $valueTrigger) {
                 if ($valueTrigger == null) {
                     $varTriggerSql .= "SET @{$keyTrigger} = NULL;";
                 } else {
                     $varTriggerSql .= "SET @{$keyTrigger} = '{$valueTrigger}';";
                 }
             }
         }
         $this->rumQuery($varTriggerSql, false);
         $sql = 'UPDATE tbl_estoque SET qtd_item = ' . $value['qtd_item'] . ', dta_ultima_atualizacao = NOW() WHERE id = ' . $value['id'] . ';';
         $update = $this->conn->prepare($sql);
         if (!$update->execute()) {
             return false;
         }
     }
     return true;
 }
Ejemplo n.º 15
0
 public static function atualizarStatus($cod_nota_fiscal, $cod_empreendimento)
 {
     try {
         // Obtendo configurações da API de consulta de NFS-e
         $confDao = new ConfiguracaoDao();
         $conf = $confDao->getConfiguracoes($cod_empreendimento);
         $flg_ambiente_nfe = isset($conf['flg_ambiente_nfe']) && ((int) $conf['flg_ambiente_nfe'] == 1 || (int) $conf['flg_ambiente_nfe'] == 0) ? (int) $conf['flg_ambiente_nfe'] : 0;
         $apiTokens = array();
         $apiTokens['token_focus_producao'] = isset($conf['token_focus_producao']) ? $conf['token_focus_producao'] : '';
         $apiTokens['token_focus_homologacao'] = isset($conf['token_focus_homologacao']) ? $conf['token_focus_homologacao'] : '';
         $nfseDao = new NFSeDao($flg_ambiente_nfe, $apiTokens);
         $nfseDao->id_ref = $cod_nota_fiscal;
         $retorno = $nfseDao->buscaNFSe();
         $nfTO = new stdClass();
         $nfTO->cod_nota_fiscal = $cod_nota_fiscal;
         $nfTO->status = $retorno->status;
         if ($nfTO->status == 'autorizado') {
             $nfTO->numero = $retorno->numero;
             $nfTO->caminho_xml_nota_fiscal = substr($nfseDao->server, 0, -1) . $retorno->caminho_xml_nota_fiscal;
             $nfTO->caminho_danfe = $retorno->uri;
             $nfTO->mensagem_sefaz = "";
         } else {
             $msg = "";
             foreach ($retorno->erros as $key => $erro) {
                 $msg .= "Cod. Erro: " . $erro->codigo . "\n";
                 $msg .= "Msg. Erro: " . $erro->mensagem . "\n";
                 $msg .= "Msg. Correcao: " . $erro->correcao . "\n\n";
             }
             if (isset($retorno->erros)) {
                 $nfTO->mensagem_sefaz = $msg;
             }
         }
         $nfDao = new NotaFiscalDao();
         $nfDao->updateNota($nfTO);
         Flight::json($nfDao->getNota($cod_nota_fiscal));
     } catch (Exception $e) {
         jsonException($e);
     }
 }