public static function receber() { try { $conn = Conexao::getInstance(); if (!$conn->inTransaction()) { $conn->beginTransaction(); } $TransferenciaEstoqueTO = new stdClass(); $TransferenciaEstoqueDao = new TransferenciaEstoqueDao(); $EstoqueDao = new EstoqueDao(); $EstoqueEntradaDao = new EstoqueEntradaDao(); $id = $_POST['id']; $id_empreendimento_pedido = $_POST['id_empreendimento_pedido']; $TransferenciaEstoqueTO->dta_recebido = $_POST['dta_recebido']; $TransferenciaEstoqueTO->id_usuario_recebeu = $_POST['id_usuario_recebeu']; $TransferenciaEstoqueTO->id_status_transferencia = $_POST['id_status_transferencia']; $TransferenciaEstoqueTO->flg_controle_validade = $_POST['flg_controle_validade']; $produtos = $_POST['produtos']; $TransferenciaEstoqueDao->updateTransferencia($TransferenciaEstoqueTO, 'id=' . $id); $ItemTransferenciaEstoqueDao = new ItemTransferenciaEstoqueDao(); foreach ($produtos as $key => $value) { $ItemTransferenciaEstoqueTO = new stdClass(); $ItemTransferenciaEstoqueTO->qtd_recebida = $value['qtd_recebida']; $ItemTransferenciaEstoqueTO->id_deposito_entrada = isset($value['id_deposito_entrada']) ? $value['id_deposito_entrada'] : NULL; $ItemTransferenciaEstoqueDao->updateItemTransferencia($ItemTransferenciaEstoqueTO, 'id_produto=' . $value['id_produto'] . ' AND id_transferencia =' . $id); if ((int) $value['atualizar_custo'] == 1) { $PrecoProdutoDao = new PrecoProdutoDao(); $PrecoProdutoTO = new PrecoProdutoTO(); $PrecoProdutoTO->id_produto = $value['id_produto']; $PrecoProdutoTO->vlr_custo = $value['vlr_custo_sugerido']; $PrecoProdutoTO->perc_imposto_compra = 0; $PrecoProdutoTO->perc_desconto_compra = 0; $PrecoProdutoTO->id_empreendimento = $id_empreendimento_pedido; if (!$PrecoProdutoDao->atualizaVlrCusto($PrecoProdutoTO)) { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500); } } } $EstoqueEntradaTO = new EstoqueEntradaTO(); $EstoqueEntradaTO->id_empreendimento = $id_empreendimento_pedido; $EstoqueEntradaTO->dta_entrada = $TransferenciaEstoqueTO->dta_recebido; $EstoqueEntradaTO->id_transferencia_estoque = $id; $EstoqueEntradaTO->vlr_total_imposto = 0; $EstoqueEntradaTO->vlr_frete = 0; $EstoqueEntradaTO->vlr_total_nota_fiscal = 0; $id_estoque_entrada = $EstoqueEntradaDao->saveEstoqueEntrada($EstoqueEntradaTO); if ($id_estoque_entrada) { $ItemEstoqueEntradaTO = new ItemEstoqueEntradaTO(); $ItemEstoqueEntradaDao = new ItemEstoqueEntradaDao(); foreach ($produtos as $key => $value) { if ((int) $value['qtd_recebida'] > 0) { $ItemEstoqueEntradaTO->id_estoque_entrada = $id_estoque_entrada; $ItemEstoqueEntradaTO->id_produto = $value['id_produto']; $ItemEstoqueEntradaTO->qtd_item = $value['qtd_recebida']; $ItemEstoqueEntradaTO->vlr_custo = $value['vlr_custo_real']; $ItemEstoqueEntradaTO->perc_imposto = isset($value['perc_imposto']) ? $value['imposto'] : 0; $ItemEstoqueEntradaTO->perc_desconto = isset($value['perc_desconto']) ? $value['desconto'] : 0; $ItemEstoqueEntradaTO->dta_validade = isset($value['dta_validade']) ? $value['dta_validade'] : '2099-12-31'; $ItemEstoqueEntradaTO->id_deposito = $value['id_deposito_entrada']; $id_item_estoque_entrada = $ItemEstoqueEntradaDao->saveItemEstoqueEntrada($ItemEstoqueEntradaTO); if ($id_item_estoque_entrada) { $EstoqueTO = new EstoqueTO(); $EstoqueDao = new EstoqueDao(); $PrecoProdutoTO = new PrecoProdutoTO(); $PrecoProdutoDao = new PrecoProdutoDao(); $EstoqueTO->id_deposito = $value['id_deposito_entrada']; $EstoqueTO->id_produto = $ItemEstoqueEntradaTO->id_produto; $EstoqueTO->qtd_item = $ItemEstoqueEntradaTO->qtd_item; $EstoqueTO->dta_validade = $ItemEstoqueEntradaTO->dta_validade; $dadosTrigger = new StdClass(); $dadosTrigger->qtd_entrada = $EstoqueTO->qtd_item; $dadosTrigger->acao_movimentacao = 'ENTRADA'; $dadosTrigger->id_tipo_movimentacao_estoque = 5; $dadosTrigger->id_estoque_entrada = $id_estoque_entrada; $dadosTrigger->id_item_estoque_entrada = $id_item_estoque_entrada; $dadosTrigger->id_responsavel = $TransferenciaEstoqueTO->id_usuario_recebeu; $dadosTrigger->id_empreendimento = $id_empreendimento_pedido; $dadosTrigger->id_transferencia = $id; if (!$EstoqueDao->atualizaEstoque($EstoqueTO, 'update', $dadosTrigger)) { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'erro ao atualizar estoque'); } } else { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'erro ao inserir itens da entrada'); } } } if ($conn->inTransaction()) { $conn->commit(); } Flight::halt(201); } else { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500); } } catch (Exception $e) { if ($conn->inTransaction()) { $conn->rollback(); } jsonException($e); } }
public static function saveEstoqueEntrada() { $EstoqueEntradaTO = new EstoqueEntradaTO(); $EstoqueEntradaDao = new EstoqueEntradaDao(); $EstoqueEntradaTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : NULL; $EstoqueEntradaTO->id_pedido_fornecedor = isset($_POST['id_pedido_fornecedor']) && !empty($_POST['id_pedido_fornecedor']) ? $_POST['id_pedido_fornecedor'] : NULL; $EstoqueEntradaTO->id_deposito = isset($_POST['id_deposito']) ? $_POST['id_deposito'] : NULL; $EstoqueEntradaTO->dta_entrada = isset($_POST['dta_entrada']) ? $_POST['dta_entrada'] : NULL; $EstoqueEntradaTO->num_nota_fiscal = isset($_POST['num_nota_fiscal']) ? $_POST['num_nota_fiscal'] : NULL; $EstoqueEntradaTO->id_fornecedor = isset($_POST['id_fornecedor']) ? $_POST['id_fornecedor'] : NULL; $EstoqueEntradaTO->id_usuario = isset($_POST['id_usuario']) ? $_POST['id_usuario'] : NULL; $EstoqueEntradaTO->vlr_total_imposto = isset($_POST['vlr_total_imposto']) ? removeMaskNumber($_POST['vlr_total_imposto']) : NULL; $EstoqueEntradaTO->vlr_frete = isset($_POST['vlr_frete']) ? removeMaskNumber($_POST['vlr_frete']) : 0; $EstoqueEntradaTO->vlr_total_nota_fiscal = isset($_POST['vlr_total_nota_fiscal']) ? removeMaskNumber($_POST['vlr_total_nota_fiscal']) : NULL; $validator = new DataValidator(); $validator->set_msg('O codigo do empreendimento é obrigatório')->set('id_empreendimento', $EstoqueEntradaTO->id_empreendimento)->is_required(); $validator->set_msg('E obrigatório a escolha de um fornecedor')->set('nme_fornecedor', isset($_POST['nme_fornecedor']) ? $_POST['nme_fornecedor'] : '')->is_required(); $validator->set_msg('E obrigatório a escolha de um depósito')->set('nme_deposito', $EstoqueEntradaTO->id_deposito)->is_required(); $validator->set_msg('O numero da nota fiscal é obrigatório')->set('num_nota_fiscal', $EstoqueEntradaTO->num_nota_fiscal)->is_required(); $validator->set_msg('A data de entrada é obrigatória')->set('dta_entrada', $EstoqueEntradaTO->dta_entrada)->is_date('Y-m-d'); if (!$validator->validate()) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send(); return; } $id_estoque_entrada = $EstoqueEntradaDao->saveEstoqueEntrada($EstoqueEntradaTO); if ($id_estoque_entrada) { $ItemEstoqueEntradaTO = new ItemEstoqueEntradaTO(); $ItemEstoqueEntradaDao = new ItemEstoqueEntradaDao(); $dadosTrigger = new stdClass(); $dadosTrigger->acao_movimentacao = 'ENTRADA'; $dadosTrigger->id_tipo_movimentacao_estoque = 3; $dadosTrigger->id_estoque_entrada = $id_estoque_entrada; $dadosTrigger->id_responsavel = $EstoqueEntradaTO->id_usuario; $dadosTrigger->id_pedido_fornecedor = $EstoqueEntradaTO->id_pedido_fornecedor; $dadosTrigger->id_empreendimento = $EstoqueEntradaTO->id_empreendimento; foreach ($_POST['itens'] as $key => $value) { $ItemEstoqueEntradaTO->id_estoque_entrada = $id_estoque_entrada; $ItemEstoqueEntradaTO->id_produto = $value['id_produto']; $ItemEstoqueEntradaTO->qtd_item = isset($value['qtd']) ? $value['qtd'] : 0; $ItemEstoqueEntradaTO->vlr_custo = removeMaskNumber($value['custo']); $ItemEstoqueEntradaTO->perc_imposto = isset($value['imposto']) ? removeMaskNumber($value['imposto']) : 0; $ItemEstoqueEntradaTO->perc_desconto = isset($value['desconto']) ? removeMaskNumber($value['desconto']) : 0; $ItemEstoqueEntradaTO->dta_validade = $value['dta_validade']; $id_item_estoque_entrada = $ItemEstoqueEntradaDao->saveItemEstoqueEntrada($ItemEstoqueEntradaTO); if ($id_item_estoque_entrada) { $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; $dadosTrigger->id_item_estoque_entrada = $id_item_estoque_entrada; $dadosTrigger->qtd_entrada = $EstoqueTO->qtd_item; if (!$EstoqueDao->atualizaEstoque($EstoqueTO, 'update', $dadosTrigger)) { Flight::halt(500, 'erro ao atualizar estoque'); } $PrecoProdutoTO->id_produto = $value['id_produto']; $PrecoProdutoTO->id_empreendimento = $EstoqueEntradaTO->id_empreendimento; $PrecoProdutoTO->vlr_custo = removeMaskNumber($value['custo']); $PrecoProdutoTO->perc_imposto_compra = isset($value['imposto']) ? removeMaskNumber($value['imposto']) : 0; $PrecoProdutoTO->perc_desconto_compra = isset($value['desconto']) ? removeMaskNumber($value['desconto']) : 0; //$PrecoProdutoTO->perc_venda_atacado = $value['margem_atacado']; //$PrecoProdutoTO->perc_venda_intermediario = $value['margem_intermediario']; //$PrecoProdutoTO->perc_venda_varejo = $value['margem_varejo']; if (!$PrecoProdutoDao->atualizaVlrCusto($PrecoProdutoTO)) { Flight::halt(500, 'erro ao atualizar preço'); } } else { Flight::halt(500, 'erro ao inserir itens da entrada'); } } Flight::halt(201); } else { Flight::halt(500, 'erro ao inserir entrada no estoque'); } }