public static function BaixaProdutoClinica() { try { $id_empreendimento = $_POST['id_empreendimento']; $id_deposito = $_POST['id_deposito']; $id_usuario = $_POST['id_usuario']; $id_profissional = $_POST['id_profissional']; $produtos = $_POST['produtos']; $EstoqueDao = new EstoqueDao(); $out = array(); $out_desconto = array(); $produtos_estoque = array(); foreach ($produtos as $key => $value) { if (!isset($produtos_estoque[$value['id']])) { $produtos_estoque[$value['id']]['qtd_saida'] = 0; $produtos_estoque[$value['id']]['id'] = $value['id']; } $produtos_estoque[$value['id']]['qtd_saida'] += (int) $value['qtd_saida']; } foreach ($produtos_estoque as $key => $value) { $qtd_saida = (int) $value['qtd_saida']; $estoque = $EstoqueDao->getQtdProduto($id_empreendimento, $value['id'], null, $id_deposito); $estoque_real = $estoque - $qtd_saida; if ($estoque_real < 0) { $out[$value['id']] = array('qtd_saida' => $qtd_saida, 'qtd_estoque' => $estoque); } } if (count($out) > 0) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode(array('out_estoque' => $out)))->send(); return; } $EstoqueDao = new EstoqueDao(); $EstoqueDao->baixaEstoqueClinica($id_empreendimento, $produtos, $id_deposito, null, $id_usuario, $id_profissional, 1); } catch (Exception $e) { jsonException($e); } }
$value['status'] = "sucesso"; } else { $value['status'] = "erro"; } echo json_encode($value); /* * editar cliente */ } elseif ($act == "edit") { /* * dados do formulário de produto */ $id = $_POST['id']; $v1 = $_POST['add-quantidade']; $v2 = $_POST['quantidade']; $total = $v1 + $v2; /* * setando modelo de produto */ $estoque = new Estoque(); $estoque->setId($id); $estoque->setQuantidade($total); $estoqueDAO = new EstoqueDao(); $estoqueDAO->addEstoque($estoque); if ($estoqueDAO) { $value['status'] = "sucesso"; } else { $value['status'] = "erro"; } echo json_encode($value); }
public function getAnaliticoEstoque($id_deposito, $id_empreendimento, $offset, $limit) { $sql = "SELECT\n\t\t\t\t\tpro.id,\n\t\t\t\t\tpro.nome,\n\t\t\t\t\tfab.nome_fabricante,\n\t\t\t\t\ttcp.nome_cor AS sabor,\n\t\t\t\t\ttt.nome_tamanho AS peso,\n\t\t\t\t\test.qtd_item,\n\t\t\t\t\test.dta_validade,\n\t\t\t\t\ttpp.vlr_custo,\n\t\t\t\t\ttpp.perc_imposto_compra,\n\t\t\t\t\ttpp.perc_desconto_compra,\n\t\t\t\t\ttpp.perc_venda_atacado,\n\t\t\t\t\ttpp.perc_venda_intermediario,\n\t\t\t\t\ttpp.perc_venda_varejo\n\t\t\t\tFROM tbl_preco_produto \t\tAS tpp\n\t\t\t\tINNER JOIN tbl_estoque \t\tAS est ON est.id_produto = tpp.id_produto\n\t\t\t\tINNER JOIN tbl_produtos \tAS pro ON pro.id = tpp.id_produto\n\t\t\t\tLEFT JOIN tbl_cor_produto AS tcp ON tcp.id = pro.id_cor \n\t\t\t\tLEFT JOIN tbl_tamanho AS tt ON tt.id = pro.id_tamanho\n\t\t\t\tLEFT JOIN tbl_fabricante \tAS fab ON fab.id = pro.id_fabricante\n\t\t\t\tWHERE est.id_deposito = {$id_deposito} and tpp.id_empreendimento = {$id_empreendimento}\n\t\t\t\tORDER BY pro.nome ASC, tt.nome_tamanho ASC , tcp.nome_cor ASC"; if ($limit > 0) { $pag = $offset / $limit + 1; $Paginacao = new PaginacaoController($sql); $Paginacao->num_paginas = 10; $Paginacao->resultados_pagina = $limit; $Paginacao->paginarResultado($pag); $links_paginacao = $Paginacao->paginasDisponiveis($pag); $sql = $Paginacao->_sql_paginacao; } $select = $this->conn->prepare($sql); if ($select->execute()) { if ($select->rowCount() > 0) { $data['dados'] = $select->fetchAll(PDO::FETCH_ASSOC); $prdDao = new ProdutoDao(); $estDao = new EstoqueDao(); // Calculando preços de custo e venda, e disponbilidade de estoque foreach ($data['dados'] as $key => $value) { $data['dados'][$key]['vlr_custo'] = (double) $data['dados'][$key]['vlr_custo']; $data['dados'][$key]['perc_imposto_compra'] = (double) $data['dados'][$key]['perc_imposto_compra']; $data['dados'][$key]['perc_desconto_compra'] = (double) $data['dados'][$key]['perc_desconto_compra']; $data['dados'][$key]['perc_venda_atacado'] = (double) $data['dados'][$key]['perc_venda_atacado']; $data['dados'][$key]['perc_venda_intermediario'] = (double) $data['dados'][$key]['perc_venda_intermediario']; $data['dados'][$key]['perc_venda_varejo'] = (double) $data['dados'][$key]['perc_venda_varejo']; $data['dados'][$key]['vlr_custo_total'] = 0; $data['dados'][$key]['vlr_total_venda_atacado'] = 0; $data['dados'][$key]['vlr_total_venda_intermediario'] = 0; $data['dados'][$key]['vlr_total_venda_varejo'] = 0; $vlr_custo_real = $prdDao->calculaValorCustoReal($data['dados'][$key]['vlr_custo'], $data['dados'][$key]['perc_imposto_compra'], $data['dados'][$key]['perc_desconto_compra']); $data['dados'][$key]['id'] = (int) $data['dados'][$key]['id']; $data['dados'][$key]['qtd_item'] = (int) $data['dados'][$key]['qtd_item']; $data['dados'][$key]['vlr_custo_real'] = $vlr_custo_real; $data['dados'][$key]['vlr_venda_atacado'] = $prdDao->calculaValorVenda($vlr_custo_real, $data['dados'][$key]['perc_venda_atacado']); $data['dados'][$key]['vlr_venda_intermediario'] = $prdDao->calculaValorVenda($vlr_custo_real, $data['dados'][$key]['perc_venda_intermediario']); $data['dados'][$key]['vlr_venda_varejo'] = $prdDao->calculaValorVenda($vlr_custo_real, $data['dados'][$key]['perc_venda_varejo']); $data['dados'][$key]['qtd_item'] = $estDao->getQtdProduto($id_empreendimento, $data['dados'][$key]['id'], $data['dados'][$key]['dta_validade']); if ($data['dados'][$key]['qtd_item'] == 0) { unset($data['dados'][$key]); } else { $data['dados'][$key]['vlr_custo_total'] += $data['dados'][$key]['qtd_item'] * $data['dados'][$key]['vlr_custo_real']; $data['dados'][$key]['vlr_total_venda_atacado'] += $data['dados'][$key]['qtd_item'] * $data['dados'][$key]['vlr_venda_atacado']; $data['dados'][$key]['vlr_total_venda_intermediario'] += $data['dados'][$key]['qtd_item'] * $data['dados'][$key]['vlr_venda_intermediario']; $data['dados'][$key]['vlr_total_venda_varejo'] += $data['dados'][$key]['qtd_item'] * $data['dados'][$key]['vlr_venda_varejo']; } } $data['paginacao'] = isset($links_paginacao) ? $links_paginacao : null; return $data; } else { return false; } } else { return false; } }
<?php /* * import de classes */ require_once '../../lib/jqsImports/JqsAutoImports.php'; $JqsAutoImports = new JqsAutoImports(); $id = $_GET['id']; $estoque = new EstoqueDao(); $est = $estoque->localizarEstoque($id); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Preciata</title> <link href="../assets/bootstrap-3.3.6-dist/css/bootstrap.min.css" rel="stylesheet" /> <link href="../assets/estilo_custom.css" rel="stylesheet" /> <script src="//code.jquery.com/jquery-1.12.0.min.js"></script> <script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script> <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> <link rel="stylesheet" href="/resources/demos/style.css" /> <script type="text/javascript" src="../assets/scripts/produtos.js"></script>
public static function getProdutosEstoque($estoque_min, $offset, $limit) { $estoque_min = strtolower($estoque_min) == 'null' ? null : $estoque_min; $EstoqueDao = new EstoqueDao(); $produtos = $EstoqueDao->getProdutosEstoque($estoque_min, $offset, $limit, $_GET); if ($produtos) { Flight::json($produtos); } else { Flight::halt(404, 'Produtos não encontrados'); } }
public function salvarDevolucao(DevolucaoTO $DevolucaoTO, $itens_devolucao, $id_deposito) { $dta_criacao = date('Y-m-d H:i:s'); $vlr_devolucao = 0; $sql_insert_devolucao = "INSERT INTO tbl_devolucao (id_empreendimento, id_venda, obs_devolucao, dta_devolucao,id_operador) \n\t\t\t\t\t\t\t\t\t VALUES (:id_empreendimento, :id_venda, :obs_devolucao, :dta_devolucao,:id_operador);"; $sql_insert_item_devolucao = "INSERT INTO tbl_itens_devolucao (id_produto, id_devolucao, qtd, valor_real_devolucao, dta_validade) \n\t\t\t\t\t\t\t\t \t VALUES (:id_produto, :id_devolucao, :qtd, :valor_real_devolucao, :dta_validade)"; $sql_update_itens_venda = " UPDATE tbl_itens_venda SET flg_produto_devolvido = :flg_produto_devolvido, qtd_devolvida = qtd_devolvida+:qtd_devolvida\n\t\t\t\t\t\t\t\t \t WHERE id = :id"; $sql_insert_vale_troca = "INSERT INTO tbl_vale_troca (id_devolucao, dta_criacao, vlr_disponivel) \n\t\t\t\t\t\t\t\t\t VALUES (:id_devolucao, :dta_criacao, :vlr_disponivel);"; $insert_devolucao = $this->conn->prepare($sql_insert_devolucao); $insert_devolucao->bindValue(':id_empreendimento', $DevolucaoTO->id_empreendimento, PDO::PARAM_STR); $insert_devolucao->bindValue(':id_venda', $DevolucaoTO->id_venda, PDO::PARAM_STR); $insert_devolucao->bindValue(':id_operador', $DevolucaoTO->id_operador, PDO::PARAM_STR); $insert_devolucao->bindValue(':obs_devolucao', $DevolucaoTO->obs_devolucao, PDO::PARAM_STR); $insert_devolucao->bindValue(':dta_devolucao', $dta_criacao, PDO::PARAM_STR); if ($insert_devolucao->execute()) { $id_devolucao = $this->conn->lastInsertId(); $EstoqueEntradaDao = new EstoqueEntradaDao(); $EstoqueEntradaTO = new EstoqueEntradaTO(); $EstoqueEntradaTO->id_empreendimento = $DevolucaoTO->id_empreendimento; $EstoqueEntradaTO->dta_entrada = $dta_criacao; $EstoqueEntradaTO->id_devolucao = $id_devolucao; $EstoqueEntradaTO->vlr_total_imposto = 0; $EstoqueEntradaTO->vlr_frete = 0; $EstoqueEntradaTO->vlr_total_nota_fiscal = 0; $EstoqueEntradaTO->id_deposito = $id_deposito; $id_estoque_entrada = $EstoqueEntradaDao->saveEstoqueEntrada($EstoqueEntradaTO); foreach ($itens_devolucao as $key => $value) { $insert_item_devolucao = $this->conn->prepare($sql_insert_item_devolucao); $insert_item_devolucao->bindValue(':id_produto', $value['id_produto'], PDO::PARAM_STR); $insert_item_devolucao->bindValue(':id_devolucao', $id_devolucao, PDO::PARAM_STR); $insert_item_devolucao->bindValue(':qtd', $value['qtd'], PDO::PARAM_STR); $insert_item_devolucao->bindValue(':valor_real_devolucao', $value['valor_real_devolucao'], PDO::PARAM_STR); $insert_item_devolucao->bindValue(':dta_validade', $value['dta_validade'], PDO::PARAM_STR); $vlr_devolucao += (int) $value['qtd'] * (double) $value['valor_real_devolucao']; if (!$insert_item_devolucao->execute()) { $this->PDOException($insert_item_devolucao); } $ItemEstoqueEntradaTO = new ItemEstoqueEntradaTO(); $ItemEstoqueEntradaDao = new ItemEstoqueEntradaDao(); $ItemEstoqueEntradaTO->id_estoque_entrada = $id_estoque_entrada; $ItemEstoqueEntradaTO->id_produto = $value['id_produto']; $ItemEstoqueEntradaTO->qtd_item = $value['qtd']; $ItemEstoqueEntradaTO->vlr_custo = $value['vlr_custo']; $ItemEstoqueEntradaTO->perc_imposto = isset($value['perc_imposto_compra']) ? $value['perc_imposto_compra'] : 0; $ItemEstoqueEntradaTO->perc_desconto = isset($value['perc_desconto_compra']) ? $value['perc_desconto_compra'] : 0; $ItemEstoqueEntradaTO->dta_validade = $value['dta_validade']; $ItemEstoqueEntradaTO->id_deposito = $value['id_deposito']; $id_item_estoque_entrada = $ItemEstoqueEntradaDao->saveItem($ItemEstoqueEntradaTO); $update_itens_venda = $this->conn->prepare($sql_update_itens_venda); $update_itens_venda->bindValue(':flg_produto_devolvido', 1, PDO::PARAM_STR); $update_itens_venda->bindValue(':qtd_devolvida', (int) $value['qtd'], PDO::PARAM_INT); $update_itens_venda->bindValue(':id', $value['id_item_venda'], PDO::PARAM_STR); if (!$update_itens_venda->execute()) { $this->PDOException($update_itens_venda); } $EstoqueDao = new EstoqueDao(); $exist = $EstoqueDao->existProdutoEstoque($value['id_produto'], $value['id_deposito'], $value['dta_validade']); if ($exist) { $sql_atualiza_estoque = "UPDATE tbl_estoque SET qtd_item = qtd_item + :qtd_item , dta_ultima_atualizacao = NOW(),\n\t\t\t\t\t\t\t\tdta_validade = :dta_validade\n\t\t\t\t\t\t\t WHERE id_produto = :id_produto AND id_deposito = :id_deposito AND dta_validade = :dta_validade"; } else { $sql_atualiza_estoque = "INSERT INTO tbl_estoque (id_deposito ,id_produto, qtd_item,dta_ultima_atualizacao,dta_validade)\n\t\t\t\t\t\t\t\tVALUES (:id_deposito, :id_produto, :qtd_item, NOW(),:dta_validade);"; } $atualiza_estoque = $this->conn->prepare($sql_atualiza_estoque); $atualiza_estoque->bindValue(':id_deposito', $value['id_deposito'], PDO::PARAM_STR); $atualiza_estoque->bindValue(':id_produto', $value['id_produto'], PDO::PARAM_STR); $atualiza_estoque->bindValue(':qtd_item', (int) $value['qtd'], PDO::PARAM_INT); $atualiza_estoque->bindValue(':dta_validade', $value['dta_validade'], PDO::PARAM_STR); $dadosTrigger = new StdClass(); $dadosTrigger->qtd_entrada = $value['qtd']; $dadosTrigger->acao_movimentacao = 'ENTRADA'; $dadosTrigger->id_tipo_movimentacao_estoque = 6; $dadosTrigger->id_estoque_entrada = $id_estoque_entrada; $dadosTrigger->id_item_estoque_entrada = $id_item_estoque_entrada; $dadosTrigger->id_responsavel = $DevolucaoTO->id_operador; $dadosTrigger->id_empreendimento = $DevolucaoTO->id_empreendimento; $dadosTrigger->id_devolucao = $id_devolucao; $varTriggerSql = ""; $TRGTblEstoqueAUTO = new TRGTblEstoqueAUTO(); $TRGTblEstoqueAUTO->__setAll($dadosTrigger); if (!empty($dadosTrigger)) { foreach ($TRGTblEstoqueAUTO as $keyTrigger => $valueTrigger) { if ($valueTrigger == null) { $varTriggerSql .= "SET @{$keyTrigger} = NULL;"; } else { $varTriggerSql .= "SET @{$keyTrigger} = '{$valueTrigger}';"; } } } $this->rumQuery($varTriggerSql); if (!$atualiza_estoque->execute()) { $this->PDOException($atualiza_estoque); } } $insert_vale_troca = $this->conn->prepare($sql_insert_vale_troca); $insert_vale_troca->bindValue(':id_devolucao', $id_devolucao, PDO::PARAM_STR); $insert_vale_troca->bindValue(':dta_criacao', $dta_criacao, PDO::PARAM_STR); $insert_vale_troca->bindValue(':vlr_disponivel', $vlr_devolucao, PDO::PARAM_STR); if (!$insert_vale_troca->execute()) { $this->PDOException($insert_vale_troca); } return true; } else { $this->PDOException($insert_devolucao); } }
public function getProdutosExport($offset, $limit, $busca) { $offset = $offset == null ? 0 : $offset; $limit = $limit == null ? 0 : $limit; $id_empreendimento = null; if (array_key_exists('tpe->id_empreendimento', $busca)) { $id_empreendimento = $busca['tpe->id_empreendimento']; } $sql = "SELECT DISTINCT\n\t\t\t\t\tpro.id as id_produto,\n\t\t\t\t\tpro.nome ,\n\t\t\t\t\tfab.nome_fabricante,\n\t\t\t\t\tpro.peso,\n\t\t\t\t\tNULL AS qtd_item,\n\t\t\t\t\tROUND((tpp.vlr_custo + (tpp.vlr_custo * tpp.perc_imposto_compra)) - (tpp.vlr_custo * tpp.perc_desconto_compra),2) AS vlr_custo_real,\n\t\t\t\t\tROUND(ROUND((tpp.vlr_custo + (tpp.vlr_custo * tpp.perc_imposto_compra)) - (tpp.vlr_custo * tpp.perc_desconto_compra),2) + (ROUND((tpp.vlr_custo + (tpp.vlr_custo * tpp.perc_imposto_compra)) - (tpp.vlr_custo * tpp.perc_desconto_compra),2) * perc_venda_atacado),2) AS vlr_venda_atacado,\n\t\t\t\t\tROUND(ROUND((tpp.vlr_custo + (tpp.vlr_custo * tpp.perc_imposto_compra)) - (tpp.vlr_custo * tpp.perc_desconto_compra),2) + (ROUND((tpp.vlr_custo + (tpp.vlr_custo * tpp.perc_imposto_compra)) - (tpp.vlr_custo * tpp.perc_desconto_compra),2) * perc_venda_intermediario),2) AS vlr_venda_intermediario,\n\t\t\t\t\tROUND(ROUND((tpp.vlr_custo + (tpp.vlr_custo * tpp.perc_imposto_compra)) - (tpp.vlr_custo * tpp.perc_desconto_compra),2) + (ROUND((tpp.vlr_custo + (tpp.vlr_custo * tpp.perc_imposto_compra)) - (tpp.vlr_custo * tpp.perc_desconto_compra),2) * perc_venda_varejo),2) AS vlr_venda_varejo,\n\t\t\t\t\ttpp.perc_venda_atacado,\n\t\t\t\t\ttpp.perc_venda_intermediario,\n\t\t\t\t\ttpp.perc_venda_varejo\n\t\t\t\tFROM tbl_produtos \t\t\t\t\t\tAS pro\n\t\t\t\tLEFT JOIN tbl_fabricante \t\t\t\tAS fab ON pro.id_fabricante = fab.id\n\t\t\t\tLEFT JOIN tbl_produto_empreendimento \tAS tpe ON tpe.id_produto = pro.id\n\t\t\t\tLEFT JOIN tbl_preco_produto \t\t\tAS tpp ON tpp.id_produto = pro.id\n\t\t\t\tLEFT JOIN tbl_estoque \t\t\t\t\tAS est ON est.id_produto = pro.id "; if (is_array($busca) && count($busca) > 0) { $where = prepareWhere($busca); $sql .= " WHERE " . $where; } $sql .= " GROUP BY pro.id "; $sql .= " ORDER BY pro.id ASC "; if ($limit > 0) { $pag = $offset / $limit + 1; $Paginacao = new PaginacaoController($sql); $Paginacao->num_paginas = 10; $Paginacao->resultados_pagina = $limit; $Paginacao->paginarResultado($pag); $links_paginacao = $Paginacao->paginasDisponiveis($pag); $sql = $Paginacao->_sql_paginacao; } $select = $this->conn->prepare($sql); if ($select->execute()) { if ($select->rowCount() > 0) { $FornecedorDao = new FornecedorDao(); $EstoqueDao = new EstoqueDao(); $produtos = $select->fetchAll(PDO::FETCH_ASSOC); foreach ($produtos as $key => $value) { if (!is_null($id_empreendimento)) { $produtos[$key]['perc_venda_atacado'] = number_format($produtos[$key]['perc_venda_atacado'] * 100, 2, ',', '.'); } $produtos[$key]['perc_venda_intermediario'] = number_format($produtos[$key]['perc_venda_intermediario'] * 100, 2, ',', '.'); $produtos[$key]['perc_venda_varejo'] = number_format($produtos[$key]['perc_venda_varejo'] * 100, 2, ',', '.'); $produtos[$key]['vlr_custo_real'] = number_format($produtos[$key]['vlr_custo_real'], 2, ',', '.'); $produtos[$key]['vlr_venda_atacado'] = number_format($produtos[$key]['vlr_venda_intermediario'], 2, ',', '.'); $produtos[$key]['vlr_venda_intermediario'] = number_format($produtos[$key]['vlr_venda_intermediario'], 2, ',', '.'); $produtos[$key]['vlr_venda_varejo'] = number_format($produtos[$key]['vlr_venda_varejo'], 2, ',', '.'); $produtos[$key]['qtd_item'] = $EstoqueDao->getQtdProduto($id_empreendimento, $value['id_produto'], null, null); } $head = array("ID", "Produto", "Fabricante", "Peso", "Qtd", "Vlr Custo", "Vlr Atacado", "Vlr Intermediário", "Vlr Varejo", "% Atacado", "% Intermediário", "% Varejo"); $filename = "example"; header("Content-type: text/csv"); header("Content-Disposition: attachment; filename={$filename}.csv"); header("Pragma: no-cache"); header("Expires: 0"); $outputBuffer = fopen("php://output", 'w'); fputcsv($outputBuffer, $head); foreach ($produtos as $val) { fputcsv($outputBuffer, $val); } fclose($outputBuffer); die; return $produtos; } else { return false; } } else { return false; } }
public static function changeStatus($id_ordem_producao, $id_status_change, $id_empreendimento, $id_usuario) { $OrdemProducaoDao = new OrdemProducaoDao(); $ItensOrdemProducaoDao = new ItensOrdemProducaoDao(); $EstoqueDao = new EstoqueDao(); $Dao = new Dao(); $ProdutoDao = new ProdutoDao(); $out = array(); $Dao->setTimeZone($id_empreendimento); $dta_change = date('Y-m-d H:i:s'); $itens = $ItensOrdemProducaoDao->getItensOrdemProducao(null, null, array('tiop.id_ordem_producao' => $id_ordem_producao)); $aux = array(); $insumos = array(); $OrdensProducao = $OrdemProducaoDao->getOrdemProducao(NULL, NULL, array('top->id' => $id_ordem_producao)); $OrdensProducao = $OrdensProducao[0]; $status = $OrdemProducaoDao->getStatus(array("id" => $id_status_change)); $status = $status[0]; foreach ($itens as $key => $value) { $item_aux = $value; $item_aux['qtd_produzir'] = (int) $value['qtd']; $item_aux['itens'] = $ProdutoDao->getInsumos($value['id_produto'], null); $aux[$value['id_produto']] = $item_aux; foreach ($item_aux['itens'] as $key_i => $value_i) { $qtd_produzir = $item_aux['qtd_produzir']; $qtd = $value_i['qtd']; if (isset($insumos[$value_i['id']])) { $insumos[$value_i['id']]['qtd'] += $qtd_produzir * $qtd; } else { $insumos[$value_i['id']] = array('qtd' => $qtd_produzir * $qtd); } } } if ((int) $id_status_change == 2 || (int) $id_status_change == 3) { foreach ($insumos as $key => $value) { $qtd = (int) $value['qtd']; $estoque = $EstoqueDao->getQtdProduto($id_empreendimento, $key, null, $OrdensProducao['id_deposito']); $estoque_real = $estoque - $qtd; if ($estoque_real < 0) { $out[] = array((double) $key); } } } if (count($out) > 0) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode(array('out_estoque' => $out, 'lista' => $aux)))->send(); return; } try { $Conexao = new Conexao(); $Conexao::$alto_commit = false; $Conexao::getInstance(); $Conexao->beginTransaction(); if ((int) $id_status_change == 3) { $EstoqueEntradaTO = new EstoqueEntradaTO(); $EstoqueEntradaDao = new EstoqueEntradaDao(); $EstoqueEntradaTO->id_empreendimento = $id_empreendimento; $EstoqueEntradaTO->id_deposito = $OrdensProducao['id_deposito']; $EstoqueEntradaTO->id_ordem_producao = $id_ordem_producao; $EstoqueEntradaTO->dta_entrada = $dta_change; $EstoqueEntradaTO->id_usuario = $id_usuario; $id_estoque_entrada = $EstoqueEntradaDao->saveEstoqueEntrada($EstoqueEntradaTO); if ($id_estoque_entrada) { $ItemEstoqueEntradaTO = new ItemEstoqueEntradaTO(); $ItemEstoqueEntradaDao = new ItemEstoqueEntradaDao(); foreach ($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'; $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 = new StdClass(); $dadosTrigger->qtd_entrada = $EstoqueTO->qtd_item; $dadosTrigger->acao_movimentacao = 'ENTRADA'; $dadosTrigger->id_tipo_movimentacao_estoque = 4; $dadosTrigger->id_estoque_entrada = $id_estoque_entrada; $dadosTrigger->id_item_estoque_entrada = $id_item_estoque_entrada; $dadosTrigger->id_responsavel = $id_usuario; $dadosTrigger->id_empreendimento = $id_empreendimento; $dadosTrigger->id_ordem_producao = $id_ordem_producao; if (!$EstoqueDao->atualizaEstoque($EstoqueTO, 'update', $dadosTrigger)) { $Conexao->back(); Flight::halt(500, 'erro ao atualizar estoque'); } } else { $Conexao->back(); Flight::halt(500, 'erro ao inserir itens da entrada'); } } } else { $Conexao->back(); Flight::halt(500, 'erro ao inserir entrada no estoque'); } foreach ($insumos as $key => $value) { if (!$EstoqueDao->baixaEstoqueOrdemProducao($OrdensProducao['id_empreendimento'], $OrdensProducao['id'], $key, $OrdensProducao['id_deposito'], $value['qtd'], $id_usuario)) { $Conexao->back(); Flight::halt(500, 'error ao atualizar saida estoque'); } } } if (!$OrdemProducaoDao->ChangeStatus($id_ordem_producao, $id_status_change, $dta_change)) { $Conexao->back(); Flight::halt(500, 'Erro ao cadastrar mudança de status 1'); } if (!$OrdemProducaoDao->savechangeOrdemProducao($id_ordem_producao, $id_status_change, $dta_change)) { $Conexao->back(); Flight::halt(500, 'Erro ao cadastrar mudança de status 2'); } $Conexao->commit(); Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('status' => $status)))->send(); } catch (Exception $e) { $Conexao->back(); jsonException($e); } }
public static function changeStatusPedido($id_pedido, $id_status_pedido, $id_deposito = null) { $PedidoVendaDao = new PedidoVendaDao(); $Conexao = new Conexao(); $Conexao->beginTransaction(); if ((int) $id_status_pedido == 2) { $PedidoVendaDao = new PedidoVendaDao(); $EstoqueDao = new EstoqueDao(); $ItemPedidoVendaDao = new ItemPedidoVendaDao(); $pedido_venda = $PedidoVendaDao->getPedidoVenda($id_pedido); $pedido_venda['itens'] = $ItemPedidoVendaDao->getItens($id_pedido, null, null); $arr_qtd = array(); $out = array(); foreach ($pedido_venda['itens'] as $x => $y) { if (!isset($arr_qtd[$y['id_produto']])) { $arr_qtd[$y['id_produto']] = 0; } $arr_qtd[$y['id_produto']] += (int) $y['qtd']; } foreach ($arr_qtd as $id_produto => $value) { $id_empreendimento = $pedido_venda['id_empreendimento']; $qtd = (int) $value; $estoque = $EstoqueDao->getQtdProduto($pedido_venda['id_empreendimento'], $id_produto, null, $id_deposito); $estoque_real = $estoque - $qtd; if ($estoque_real < 0) { $out[] = array((double) $id_produto); } } if (count($out) > 0) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode(array('out_estoque' => $out)))->send(); return; } if (!$EstoqueDao->baixaEstoquePedido($id_empreendimento, $id_pedido, $pedido_venda['itens'], $id_deposito, $value['qtd'])) { $Conexao->back(); Flight::halt(500, 'Erro ao dar baixa no estoque'); } } if (!$PedidoVendaDao->changeStatusPedido($id_pedido, $id_status_pedido)) { $Conexao->back(); Flight::halt(500, 'Erro ao mudar status'); } if ((int) $id_status_pedido == 4) { $id_status_venda = 3; } else { if ((int) $id_status_pedido == 5) { $id_status_venda = 4; } } if (isset($id_status_venda)) { $PedidoVendaDao->changeStatusVenda($id_pedido, $id_status_venda); } Flight::json($PedidoVendaDao->getStatusByid($id_status_pedido)); }
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 function salveInventarioSimples($inventario = null, $id_empreendimento = null) { $InventarioTO = new InventarioTO(); $InventarioDao = new InventarioDao(); foreach ($inventario as $item_inventario) { if ($item_inventario['tipo'] == 'entrada') { $InventarioTO->id_deposito = isset($item_inventario['id_deposito']) ? $item_inventario['id_deposito'] : ''; $InventarioTO->flg_tela_produto = 1; $InventarioTO->id_usuario_responsavel = isset($item_inventario['id_usuario_responsavel']) ? $item_inventario['id_usuario_responsavel'] : ''; $InventarioTO->dta_contagem = isset($item_inventario['dta_contagem']) ? date('Y-m-d H:m:s', strtotime(str_replace('/', '-', $item_inventario['dta_contagem']))) : ''; $validator = new DataValidator(); $validator->set_msg('A escolha do deposito é obrigatório')->set('nome_deposito', $InventarioTO->id_deposito)->is_required(); $validator->set_msg('O codigo do pedido é obrigatório')->set('id_usuario_responsavel', $InventarioTO->id_usuario_responsavel)->is_required(); $validator->set_msg('A data do inventario é obrigatória')->set('dta_contagem', $InventarioTO->dta_contagem)->is_date('Y-m-d H:m:s'); if (!$validator->validate()) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send(); return; } $id_inventario = $InventarioDao->salveInventario($InventarioTO); if ($id_inventario) { $ItemInventarioTO = new ItemInventarioTO(); $ItemInventarioDao = new ItemInventarioDao(); $EstoqueTO = new EstoqueTO(); $EstoqueDao = new EstoqueDao(); var_dump($item_inventario); die; foreach ($item_inventario['itens'] as $key => $value) { $ItemInventarioTO->id_inventario = $id_inventario; $ItemInventarioTO->id_produto = $value['id']; $ItemInventarioTO->qtd_contagem = $value['qtd_ivn']; $ItemInventarioTO->dta_validade = $value['dta_validade']; $id_item_inventario = $ItemInventarioDao->saveItemInventario($ItemInventarioTO); if (!$id_item_inventario) { Flight::halt(500, 'erro ao inserir itens do inventario'); } $total_item = 0; foreach ($item_inventario['itens'] as $key_item => $val) { if ($val['id'] == $value['id']) { $total_item += (int) $val['qtd_ivn']; } } $EstoqueTO->id_deposito = $item_inventario['id_deposito']; $EstoqueTO->dta_validade = $value['dta_validade']; $EstoqueTO->id_produto = $value['id']; $EstoqueTO->qtd_item = $value['qtd_ivn']; $dadosTrigger = new stdClass(); $dadosTrigger->acao_movimentacao = 'INVENTÁRIO'; $dadosTrigger->id_tipo_movimentacao_estoque = 7; $dadosTrigger->id_inventario = $id_inventario; $dadosTrigger->id_responsavel = $InventarioTO->id_usuario_responsavel; $dadosTrigger->id_empreendimento = $id_empreendimento; $dadosTrigger->id_item_inventario = $id_item_inventario; $dadosTrigger->qtd_entrada = $EstoqueTO->qtd_item; if (!$EstoqueDao->atualizaEstoque($EstoqueTO, 'set', $dadosTrigger)) { Flight::halt(500, 'erro ao atualizar estoque'); } } } else { Flight::halt(500, 'erro ao inserir inventario'); } } else { if ($item_inventario['tipo'] == 'saida') { $EstoqueDao = new EstoqueDao(); $id_empreendimento = $item_inventario['id_empreendimento']; $id_produto = $item_inventario['id_produto']; $id_deposito = $item_inventario['id_deposito']; $qtd_saida = $item_inventario['qtd_saida']; if (!$EstoqueDao->baixaEstoqueSimples($id_empreendimento, $id_produto, $id_deposito, $qtd_saida)) { Flight::halt(500, 'error ao atualizar estoque'); } } } } }
} echo json_encode($value); /* * localizar produto */ } elseif ($act == "find_cli") { $param = $_POST['fdBuscarCliente']; $loteDao = new LoteDao(); $rs = $loteDao->buscarCliente($param); echo $rs; /* * localizar produtos em estoque */ } elseif ($act == "find") { @($param = $_POST['fdBuscarEstoque']); $estoqueDao = new EstoqueDao(); $rs = $estoqueDao->listarEstoque($param); echo $rs; /* * Listar lotes */ } elseif ($act == "list") { $param = $_POST['fdBuscarLote']; $loteDao = new LoteDao(); $rs = $loteDao->listarLote($param); echo $rs; /* * excluir cliente */ } elseif ($act == "list_itens") { @($param = $_POST['idLote']);
public static function baixaEstoque($id_empreendimento, $id_usuario, $produtos, $id_transferencia_estoque, $validade = false) { $EstoqueSaidaTO = new EstoqueSaidaTO(); $EstoqueSaidaDao = new EstoqueSaidaDao(); $EstoqueDao = new EstoqueDao(); $EstoqueSaidaTO->id_empreendimento = $id_empreendimento; $EstoqueSaidaTO->id_usuario = $id_usuario; $EstoqueSaidaTO->id_transferencia_estoque = $id_transferencia_estoque; $id_estoque_saida = $EstoqueSaidaDao->saveEstoqueSaida($EstoqueSaidaTO); foreach ($produtos as $key => $produto) { if ((int) $produto['qtd_transferida'] > 0) { $busca = array("orderby" => " etq.qtd_item DESC,dta_validade ASC ", "etq.id_deposito" => $produto['id_deposito_saida'], "prd.id" => $produto['id_produto'], "etq.qtd_item" => array('exp' => '>0')); if ($validade) { $busca['etq.dta_validade'] = $produto['dta_validade']; } $estoque = parse_arr_values($EstoqueDao->getEstoque(null, null, $busca), 'all'); $estoque = $estoque['produtos']; $estoque_saida = array(); $qtd_saida_restante = $produto['qtd_transferida']; 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 { $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']); } } $sql = ""; $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->qtd_saida = $value['qtd_saida']; $dadosTrigger->acao_movimentacao = 'SAIDA'; $dadosTrigger->id_tipo_movimentacao_estoque = 5; $dadosTrigger->id_estoque_saida = $id_estoque_saida; $dadosTrigger->id_item_estoque_saida = $id_item_estoque_saida; $dadosTrigger->id_responsavel = $id_usuario; $dadosTrigger->id_empreendimento = $id_empreendimento; $dadosTrigger->id_transferencia = $id_transferencia_estoque; $varTriggerSql = ""; $TRGTblEstoqueAUTO = new TRGTblEstoqueAUTO(); $TRGTblEstoqueAUTO->__setAll($dadosTrigger); if (!empty($dadosTrigger)) { foreach ($TRGTblEstoqueAUTO as $keyTrigger => $valueTrigger) { if ($valueTrigger == null) { $varTriggerSql .= "SET @{$keyTrigger} = NULL;"; } else { $varTriggerSql .= "SET @{$keyTrigger} = '{$valueTrigger}';"; } } } $sql = 'UPDATE tbl_estoque SET qtd_item = ' . $value['qtd_item'] . ', dta_ultima_atualizacao = NOW() WHERE id = ' . $value['id'] . ';'; $EstoqueDao->rumQuery($varTriggerSql, false); $EstoqueDao->rumQuery($sql, false); } /*foreach ($estoque_saida as $key => $value) { $sql .= 'UPDATE tbl_estoque SET qtd_item = '.$value['qtd_item'].', dta_ultima_atualizacao = NOW() WHERE id = '.$value['id'].';'; } $EstoqueDao->rumQuery($sql);*/ } } return true; }
public function getAcessorios($id_empreendimento, $offset, $limit, $busca = array()) { $offset = $offset == null ? 0 : $offset; $limit = $limit == null ? 0 : $limit; $sql = "SELECT \n\t\t\t\t\ttp.id \t\t\tAS id_produto,\n\t\t\t\t\ttp.nome \t\tAS nome_produto,\n\t\t\t\t\ttt.id \t\t\tAS id_tamanho,\n\t\t\t\t\ttt.nome_tamanho,\n\t\t\t\t\ttcp.id \t\t\tAS id_cor,\n\t\t\t\t\ttcp.nome_cor,\n\t\t\t\t\ttf.id \t\t\tAS id_fabricante,\n\t\t\t\t\ttf.nome_fabricante,\n\t\t\t\t\ttpp.perc_desconto_compra,tpp.perc_imposto_compra,tpp.perc_venda_atacado,tpp.perc_venda_intermediario,tpp.perc_venda_varejo,\n\t\t\t\t\tROUND(( ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0) )) - ( ( ifnull(tpp.vlr_custo,2) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0) )) * ifnull(tpp.perc_desconto_compra,0) ) ,2) AS vlr_custo_real,\n\t\t\t\t\tROUND(ROUND((ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0))) - (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_desconto_compra,0)),2) + (ROUND((ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0))) - (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_desconto_compra,0)),2) * ifnull(perc_venda_atacado,0)),2) AS vlr_venda_atacado,\n\t\t\t\t\tROUND(ROUND((ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0))) - (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_desconto_compra,0)),2) + (ROUND((ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0))) - (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_desconto_compra,0)),2) * ifnull(perc_venda_intermediario,0)),2) AS vlr_venda_intermediario,\n\t\t\t\t\tROUND(ROUND((ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0))) - (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_desconto_compra,0)),2) + (ROUND((ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0))) - (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_desconto_compra,0)),2) * ifnull(perc_venda_varejo,0)),2) AS vlr_venda_varejo\n\t\t\t\tFROM tbl_produtos AS tp\n\t\t\t\tINNER JOIN tbl_produto_empreendimento \t\tAS tpe \t\tON tp.id \t\t\t= tpe.id_produto \n\t\t\t\tINNER JOIN tbl_valor_campo_extra_produto \tAS tvcep \tON tp.id \t\t\t= tvcep.id_produto \n\t\t\t\tINNER JOIN tbl_campo_extra_produto \t\t\tAS tcep \tON tvcep.id_campo \t= tcep.id \n\t\t\t\tLEFT JOIN tbl_cor_produto \t\t\t\t\tAS tcp \t\tON tp.id_cor \t\t= tcp.id \n\t\t\t\tLEFT JOIN tbl_tamanho \t\t\t\t\t\tAS tt \t\tON tp.id_tamanho \t= tt.id \n\t\t\t\tLEFT JOIN tbl_fabricante \t\t\t\t\tAS tf \t\tON tp.id_fabricante = tf.id\n\t\t\t\tLEFT JOIN tbl_preco_produto \t\t\t\tAS tpp \t\tON tpp.id_produto = tp.id AND tpp.id_empreendimento = {$id_empreendimento} \n\t\t\t\tWHERE \n\t\t\t\t\ttpe.id_empreendimento = {$id_empreendimento} AND \n\t\t\t\t\ttp.flg_excluido \t != 1 \t\t\t\tAND \n\t\t\t\t\ttcep.nome_campo \t = 'flg_acessorio' \tAND \n\t\t\t\t\ttvcep.valor_campo\t = '1'\n\t\t\t \t"; if (is_array($busca) && count($busca) > 0) { $where = prepareWhere($busca); $sql .= " AND " . $where; } if ($limit > 0) { $pag = $offset / $limit + 1; $Paginacao = new PaginacaoController($sql); $Paginacao->num_paginas = 10; $Paginacao->resultados_pagina = $limit; $Paginacao->paginarResultado($pag); $links_paginacao = $Paginacao->paginasDisponiveis($pag); $sql = $Paginacao->_sql_paginacao; } $select = $this->conn->prepare($sql); if ($select->execute()) { if ($select->rowCount() > 0) { $saida = array(); $saida['acessorios'] = parse_arr_values($select->fetchAll(PDO::FETCH_ASSOC), 'all'); $EstoqueDao = new EstoqueDao(); foreach ($saida['acessorios'] as $key => $prd) { $saida['acessorios'][$key]['qtd_real_estoque'] = $EstoqueDao->getQtdProduto($id_empreendimento, $prd['id_produto'], null, null); } $saida['paginacao'] = isset($links_paginacao) ? $links_paginacao : null; return $saida; } else { return false; } } else { throw new ExceptionJSON("Erro ao Buscar Acessorios#" . json_encode($select->errorInfo()), 4, ExceptionJSON::SELECT); } }
public static function editItemComanda() { try { $ItemVendaTO = new ItemVendaTO(); $MesaDao = new MesaDao(); $Conexao = new Conexao(); $Conexao::getInstance(); $EstoqueDao = new EstoqueDao(); $itemVenda = $ItemVendaTO->__setAll($_POST['campos'], true); $produtos[] = $_POST['campos']; $where = $_POST['where']; $out = array(); foreach ($produtos as $key => $value) { if (!isset($produtos_estoque[$value['id_produto']])) { $produtos_estoque[$value['id_produto']] = $value; $produtos_estoque[$value['id_produto']]['qtd'] = 0; $produtos_estoque[$value['id_produto']]['id_produto'] = $value['id_produto']; } $produtos_estoque[$value['id_produto']]['qtd'] += (int) $value['qtd']; } foreach ($produtos_estoque as $key => $value) { $qtd = (int) $value['qtd']; $estoque = $EstoqueDao->getQtdProduto($value['id_empreendimento'], $value['id_produto'], null, $value['id_deposito'], $value['id_venda']); $estoque_real = $estoque - $qtd; if ($estoque_real < 0) { $out[] = array((double) $value['id_produto']); } } if (count($out) > 0) { $Conexao->rumQuery('UNLOCK TABLES;', false); Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode(array('out_estoque' => $out)))->send(); return; } $MesaDao->editItemComanda($itemVenda, $where); $mesa = $MesaDao->getResumoMesa($_POST['id_mesa']); Flight::response()->status(200)->header('Content-Type', 'application/json')->write(json_encode(array('mesa' => $mesa)))->send(); } catch (Exception $e) { jsonException($e); } }
public static function saveVendaLoja() { $EstoqueDao = new EstoqueDao(); $ConfiguracaoDao = new ConfiguracaoDao(); $out = array(); $produtos = $_POST['produtos']; $venda = $_POST['venda']; $id_empreendimento = $venda['id_empreendimento']; $config = $ConfiguracaoDao->getConfiguracoes($id_empreendimento); foreach ($produtos as $key => $value) { $qtd = (int) $value['qtd']; $estoque = $EstoqueDao->getQtdProduto($id_empreendimento, $value['id_produto']); $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; } $VendaDao = new VendaDao(); $VendaTO = new VendaTO(); $VendaTO->id_usuario = $config['id_usuario_venda_vitrine']; $VendaTO->id_cliente = isset($venda['id_cliente']) ? $venda['id_cliente'] : ''; $VendaTO->venda_confirmada = isset($venda['venda_confirmada']) ? $venda['venda_confirmada'] : 0; $VendaTO->id_empreendimento = isset($venda['id_empreendimento']) ? $venda['id_empreendimento'] : ''; $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'); } } Flight::halt(201); }
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'); } }