public function finalizarPedido($id_pedido_venda, $caixa) { $ItemPedidoVendaDao = new ItemPedidoVendaDao(); $pedido_venda = $this->getPedidoVenda($id_pedido_venda); $pedido_venda['itens'] = $ItemPedidoVendaDao->getItens($id_pedido_venda, null, null); $pedido_gerado = $this->getPedidoMaster($pedido_venda['id']); $pedido_gerado['itens'] = $ItemPedidoVendaDao->getItens($pedido_gerado['id'], null, null); $id_empreendimento = $pedido_venda['id_empreendimento']; $produtos_venda = array(); $Dao = new Dao(); $out = array(); $Dao->setTimeZone($id_empreendimento); $dta = date('Y-m-d H:i:s'); $EstoqueDao = new EstoqueDao(); $EstoqueTO = new EstoqueTO(); $VendaTO = new VendaTO(); $VendaDao = new VendaDao(); $ItemVendaTO = new ItemVendaTO(); $ItemVendaDao = new ItemVendaDao(); $EstoqueEntradaTO = new EstoqueEntradaTO(); $EstoqueEntradaDao = new EstoqueEntradaDao(); $EstoqueEntradaTO->id_empreendimento = $id_empreendimento; $EstoqueEntradaTO->id_deposito = $caixa['id_deposito']; $EstoqueEntradaTO->id_pedido_venda = $id_pedido_venda; $EstoqueEntradaTO->dta_entrada = $dta; $id_estoque_entrada = $EstoqueEntradaDao->saveEstoqueEntrada($EstoqueEntradaTO); if ($id_estoque_entrada) { $ItemEstoqueEntradaTO = new ItemEstoqueEntradaTO(); $ItemEstoqueEntradaDao = new ItemEstoqueEntradaDao(); foreach ($pedido_gerado['itens'] as $key => $value) { $ItemEstoqueEntradaTO->id_estoque_entrada = $id_estoque_entrada; $ItemEstoqueEntradaTO->id_produto = $value['id_produto']; $ItemEstoqueEntradaTO->qtd_item = $value['qtd']; $ItemEstoqueEntradaTO->vlr_custo = NULL; $ItemEstoqueEntradaTO->perc_imposto = NULL; $ItemEstoqueEntradaTO->perc_desconto = NULL; $ItemEstoqueEntradaTO->dta_validade = '2099-12-31'; if ($ItemEstoqueEntradaDao->saveItemEstoqueEntrada($ItemEstoqueEntradaTO)) { $EstoqueTO = new EstoqueTO(); $EstoqueDao = new EstoqueDao(); $PrecoProdutoTO = new PrecoProdutoTO(); $PrecoProdutoDao = new PrecoProdutoDao(); $EstoqueTO->id_deposito = $EstoqueEntradaTO->id_deposito; $EstoqueTO->id_produto = $ItemEstoqueEntradaTO->id_produto; $EstoqueTO->qtd_item = $ItemEstoqueEntradaTO->qtd_item; $EstoqueTO->dta_validade = $ItemEstoqueEntradaTO->dta_validade; if (!$EstoqueDao->atualizaEstoque($EstoqueTO)) { Flight::halt(500, 'erro ao atualizar estoque'); } } else { Flight::halt(500, 'erro ao inserir itens da entrada'); } } } else { Flight::halt(500, 'erro ao inserir entrada no estoque'); } $VendaTO->id_usuario = $pedido_venda['id_usuario']; $VendaTO->id_cliente = $pedido_venda['id_cliente']; $VendaTO->venda_confirmada = 1; $VendaTO->id_empreendimento = $pedido_venda['id_empreendimento']; $VendaTO->id_status_venda = 2; $VendaTO->id_pedido_venda = $pedido_venda['id']; $id_venda = $VendaDao->saveVenda($VendaTO); if (!$id_venda) { Flight::halt(500, 'erro ao inserir venda'); } foreach ($pedido_gerado['itens'] as $key => $value) { $ItemVendaTO->id_venda = $id_venda; $ItemVendaTO->id_produto = $value['id_produto']; $ItemVendaTO->desconto_aplicado = $value['desconto_aplicado']; $ItemVendaTO->valor_desconto = $value['valor_desconto']; $ItemVendaTO->qtd = $value['qtd']; $ItemVendaTO->valor_real_item = $value['valor_real_item']; $ItemVendaTO->vlr_custo = $value['vlr_custo']; $ItemVendaTO->perc_imposto_compra = $value['perc_imposto_compra']; $ItemVendaTO->perc_desconto_compra = $value['perc_desconto_compra']; $ItemVendaTO->perc_margem_aplicada = $value['perc_margem_aplicada']; if (!$ItemVendaDao->saveItemVenda($ItemVendaTO)) { Flight::halt(500, 'erro ao inserir os itens da venda'); } if (!$EstoqueDao->baixaEstoquePDV($id_empreendimento, $id_venda, $value['id_produto'], $caixa['id_deposito'], $value['qtd'])) { Flight::halt(500, 'error ao atualizar estoque'); } } $this->changeStatusPedido($id_pedido_venda, 3); Flight::halt(201); }
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 baixaEstoquePDV($id_empreendimento, $id_venda, $id_produto, $qtd_saida) { $EstoqueDao = new EstoqueDao(); if (!$EstoqueDao->baixaEstoquePDV($id_empreendimento, $id_venda, $id_produto, $qtd_saida)) { Flight::halt(500, 'error ao atualizar estoque'); } Flight::halt(201, 'estoque Atualizado com sucesso'); }