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()); } }