public static function getPrecos($offset, $limit)
 {
     $PrecoProdutoDao = new PrecoProdutoDao();
     $precos = $PrecoProdutoDao->getPrecos($offset, $limit, $_GET);
     if ($precos) {
         Flight::json($precos);
     } else {
         Flight::halt(404, 'Não há resultado para a busca');
     }
 }
 public static function requestUpdateProduto()
 {
     try {
         $id_empreendimento = $_POST['id_empreendimento'];
         $produto = $_POST['produto'];
         $suppliers = isset($_POST['suppliers']) && is_array($_POST['suppliers']) ? $_POST['suppliers'] : array();
         $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao();
         $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO();
         $PrestaShopDao = new PrestaShopDao($id_empreendimento);
         $ProdutoDao = new ProdutoDao();
         $ProdutoTO = new StdClass();
         $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO();
         $ReferenciaIntegracaoTO->sistema_integrado = 'PrestaShop';
         $ReferenciaIntegracaoTO->tabela = 'tbl_produtos';
         $ReferenciaIntegracaoTO->id_item_referencia = $produto['id'];
         $ReferenciaIntegracaoTO->tipo = 'produto';
         $ReferenciaIntegracaoTO->id_empreendimento = $id_empreendimento;
         $referenciaProduto = $ReferenciaIntegracaoDao->refExists($ReferenciaIntegracaoTO, true);
         if (!$referenciaProduto) {
             self::requestSaveProduto();
             return;
         }
         $PrestaShopDao->requestsaveProdutoFornecedores($dados['id_empreendimento'], $referenciaProduto['id_item'], $produto['id'], $id_empreendimento, $suppliers);
         $ProdutoTO->nome = $produto['name'][1];
         $ProdutoTO->descricao = $produto['description'][1];
         $ProdutoTO->descricao_curta = $produto['description_short'][1];
         $ProdutoTO->codigo_barra = $produto['ean13'];
         if (!$ProdutoDao->produtoUpdate($ProdutoTO, 'id=' . $referenciaProduto['id_item'])) {
             throw new Exception('Erro ao atualizar produto', 1);
         }
         if ((double) $produto['price'] > (double) $produto['wholesale_price'] && (double) $produto['wholesale_price'] > 0) {
             $ex = (double) $produto['price'] - $produto['wholesale_price'];
             $perc_venda_varejo = $ex * 100 / (double) $produto['wholesale_price'];
         } else {
             $perc_venda_varejo = 0;
         }
         $PrecoProdutoDao = new PrecoProdutoDao();
         $PrecoProdutoTO = new PrecoProdutoTO();
         $PrecoProdutoTO->id_produto = $referenciaProduto['id_item'];
         $PrecoProdutoTO->id_empreendimento = $id_empreendimento;
         $PrecoProdutoTO->vlr_custo = $produto['wholesale_price'];
         $PrecoProdutoTO->perc_imposto_compra = 0;
         $PrecoProdutoTO->perc_desconto_compra = 0;
         $PrecoProdutoTO->perc_venda_atacado = 0;
         $PrecoProdutoTO->perc_venda_intermediario = 0;
         $PrecoProdutoTO->perc_venda_varejo = $perc_venda_varejo / 100;
         if (!$PrecoProdutoDao->atualizaPreco($PrecoProdutoTO)) {
             throw new Exception('erro ao cadastrar preço');
         }
         /*if(!$referencia){
         			$self::requestSaveUsuario();
         			return ;
         			//throw new Exception('Referencia não encontrada', 1);
         		}*/
     } 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());
     }
 }
 public function exportarProdutos($id_empreendimento)
 {
     $ProdutoDao = new ProdutoDao();
     $produtos = $ProdutoDao->getProdutos(null, null, array("tpe->id_empreendimento" => 1));
     $produtos = $produtos['produtos'];
     foreach ($produtos as $key => $value) {
         $sql = " INSERT INTO tbl_produtos(`codigo_barra`, `nome`, `img`, `descricao`,`sabor`, `peso`) VALUES\n\t\t\t\t\t\t\t\t ('" . $value['codigo_barra'] . "','" . $value['nome'] . "','" . $value['img'] . "','" . $value['descricao'] . "','" . $value['sabor'] . "','" . $value['peso'] . "')";
         $sql_prd = $this->conn->prepare($sql);
         $sql_prd->execute();
         $last_id_produto = $this->conn->lastInsertId();
         $PrecoProdutoTO = new PrecoProdutoTO();
         $PrecoProdutoDao = new PrecoProdutoDao();
         $PrecoProdutoTO->id_produto = $last_id_produto;
         $PrecoProdutoTO->vlr_custo = $value['vlr_venda_atacado'];
         if (!$PrecoProdutoDao->atualizaPreco($PrecoProdutoTO)) {
             return false;
         }
         $ProdutoEmpreendimentoTO = new ProdutoEmpreendimentoTO();
         $ProdutoEmpreendimentoTO->id_produto = $last_id_produto;
         $ProdutoEmpreendimentoTO->id_empreendimento = $id_empreendimento;
         if (!$ProdutoDao->produtoEmpreendimento($ProdutoEmpreendimentoTO)) {
             return false;
         }
     }
     return true;
 }
 public function updateProdutoCombinacao($id_produto, $combinacao, $id_empreendimento)
 {
     //var_dump($combinacao);die;
     $id_tamanho = isset($combinacao['id_tamanho']) && is_numeric($combinacao['id_tamanho']) ? $combinacao['id_tamanho'] : 'NULL';
     $id_cor = isset($combinacao['id_cor']) && is_numeric($combinacao['id_cor']) ? $combinacao['id_cor'] : 'NULL';
     $codigo_barra = isset($combinacao['codigo_barra']) && is_numeric($combinacao['codigo_barra']) ? $combinacao['codigo_barra'] : 'NULL';
     $id_combinacao = $combinacao['id_combinacao'];
     $sql_update = "\n\t\t\t\tUPDATE tbl_produtos AS tp\n\t\t\t\tINNER JOIN tbl_produtos AS tp2 ON tp2.id = {$id_produto}\n\t\t\t\t\tSET\n\t\t\t\t\t\ttp.codigo_barra = '{$codigo_barra}',\n\t\t\t\t\t\ttp.nome = tp2.nome,\n\t\t\t\t\t\ttp.img = tp2.img,\n\t\t\t\t\t\ttp.descricao = tp2.descricao,\n\t\t\t\t\t\ttp.em_estoque = tp2.em_estoque,\n\t\t\t\t\t\ttp.qtd = tp2.qtd,\n\t\t\t\t\t\ttp.valor = tp2.valor,\n\t\t\t\t\t\ttp.imposto = tp2.imposto,\n\t\t\t\t\t\ttp.desconto = tp2.desconto,\n\t\t\t\t\t\ttp.valor_desconto = tp2.valor_desconto,\n\t\t\t\t\t\ttp.valor_com_desconto = tp2.valor_com_desconto,\n\t\t\t\t\t\ttp.valor__desconto_imposto = tp2.valor__desconto_imposto,\n\t\t\t\t\t\ttp.custo_compra = tp2.custo_compra,\n\t\t\t\t\t\ttp.margem_atacado = tp2.margem_atacado,\n\t\t\t\t\t\ttp.venda_atacado = tp2.venda_atacado,\n\t\t\t\t\t\ttp.margem_intermediario = tp2.margem_intermediario,\n\t\t\t\t\t\ttp.venda_intermediario = tp2.venda_intermediario,\n\t\t\t\t\t\ttp.margem_varejo = tp2.margem_varejo,\n\t\t\t\t\t\ttp.venda_varejo = tp2.venda_varejo,\n\t\t\t\t\t\ttp.valor_desconto_cliente = tp2.valor_desconto_cliente,\n\t\t\t\t\t\ttp.id_fabricante = tp2.id_fabricante,\n\t\t\t\t\t\ttp.id_importador = tp2.id_importador,\n\t\t\t\t\t\ttp.id_categoria = tp2.id_categoria,\n\t\t\t\t\t\ttp.qtd_minima_estoque = tp2.qtd_minima_estoque,\n\t\t\t\t\t\ttp.nme_arquivo_nutricional = tp2.nme_arquivo_nutricional,\n\t\t\t\t\t\ttp.id_ref = tp2.id_ref,\n\t\t\t\t\t\ttp.id_empreendimento = tp2.id_empreendimento,\n\t\t\t\t\t\ttp.dsc_unidade_medida = tp2.dsc_unidade_medida,\n\t\t\t\t\t\ttp.cod_ncm = tp2.cod_ncm,\n\t\t\t\t\t\ttp.ex_tipi = tp2.ex_tipi,\n\t\t\t\t\t\ttp.cod_especializacao_ncm = tp2.cod_especializacao_ncm,\n\t\t\t\t\t\ttp.cod_forma_aquisicao = tp2.cod_forma_aquisicao,\n\t\t\t\t\t\ttp.cod_origem_mercadoria = tp2.cod_origem_mercadoria,\n\t\t\t\t\t\ttp.cod_tipo_tributacao_ipi = tp2.cod_tipo_tributacao_ipi,\n\t\t\t\t\t\ttp.cod_regra_tributos = tp2.cod_regra_tributos,\n\t\t\t\t\t\ttp.num_cest = tp2.num_cest,\n\t\t\t\t\t\ttp.flg_excluido = tp2.flg_excluido,\n\t\t\t\t\t\ttp.id_tamanho = {$id_tamanho},\n\t\t\t\t\t\ttp.id_cor = {$id_cor},\n\t\t\t\t\t\ttp.flg_produto_composto = tp2.flg_produto_composto,\n\t\t\t\t\t\ttp.nome_original = tp2.nome_original,\n\t\t\t\t\t\ttp.meta_title = tp2.meta_title,\n\t\t\t\t\t\ttp.meta_description = tp2.meta_description,\n\t\t\t\t\t\ttp.descricao_curta = tp2.descricao_curta\n\t\t\t\tWHERE tp.id = {$id_combinacao}\n\t\t";
     $update = $this->conn->prepare($sql_update);
     if (!$update->execute()) {
         $e = $update->errorInfo();
         throw new Exception($e[2], 1);
     }
     $sql_delete = "DELETE FROM tbl_produto_empreendimento WHERE id_produto = {$id_combinacao} ";
     $delete = $this->conn->prepare($sql_delete);
     if (!$delete->execute()) {
         $e = $delete->errorInfo();
         throw new Exception($e[2], 1);
     }
     $sql_emp = "\n\t\t\tINSERT INTO tbl_produto_empreendimento\n\t\t\tSELECT NULL, {$id_combinacao}, id_empreendimento FROM tbl_produto_empreendimento WHERE id_produto = {$id_produto}\n\t\t";
     $insert_emp = $this->conn->prepare($sql_emp);
     if (!$insert_emp->execute()) {
         $e = $insert_emp->errorInfo();
         throw new Exception($insert_emp[2], 1);
     }
     $precos = isset($combinacao['precos']) && is_array($combinacao['precos']) ? $combinacao['precos'] : array();
     foreach ($precos as $preco) {
         $PrecoProdutoTO = new PrecoProdutoTO();
         $PrecoProdutoDao = new PrecoProdutoDao();
         $PrecoProdutoTO->id_produto = $id_combinacao;
         $PrecoProdutoTO->id_empreendimento = $id_empreendimento;
         $PrecoProdutoTO->vlr_custo = $preco['vlr_custo'];
         $PrecoProdutoTO->perc_imposto_compra = isset($preco['perc_imposto_compra']) && is_numeric($preco['perc_imposto_compra']) && $preco['perc_imposto_compra'] != 0 ? (double) $preco['perc_imposto_compra'] / 100 : 0;
         $PrecoProdutoTO->perc_desconto_compra = isset($preco['perc_desconto_compra']) && is_numeric($preco['perc_desconto_compra']) && $preco['perc_desconto_compra'] != 0 ? (double) $preco['perc_desconto_compra'] / 100 : 0;
         $PrecoProdutoTO->perc_venda_atacado = isset($preco['perc_venda_atacado']) && is_numeric($preco['perc_venda_atacado']) && $preco['perc_venda_atacado'] != 0 ? (double) $preco['perc_venda_atacado'] / 100 : 0;
         $PrecoProdutoTO->perc_venda_intermediario = isset($preco['perc_venda_intermediario']) && is_numeric($preco['perc_venda_intermediario']) && $preco['perc_venda_intermediario'] != 0 ? (double) $preco['perc_venda_intermediario'] / 100 : 0;
         $PrecoProdutoTO->perc_venda_varejo = isset($preco['perc_venda_varejo']) && is_numeric($preco['perc_venda_varejo']) && $preco['perc_venda_varejo'] != 0 ? (double) $preco['perc_venda_varejo'] / 100 : 0;
         if (!$PrecoProdutoDao->atualizaPreco($PrecoProdutoTO)) {
             throw new Exception('erro ao atualizar preço da combinação', 1);
         }
     }
     return array('id_produto_combinacao' => $combinacao['id_produto_combinacao'], 'id_combinacao' => $id_combinacao);
 }
 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');
     }
 }