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); } }
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 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 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; } }
public static function getQtdProduto($id_empreendimento, $id_produto) { $EstoqueDao = new EstoqueDao(); $qtd = $EstoqueDao->getQtdProduto($id_empreendimento, $id_produto); if ($qtd >= 0) { Flight::json($qtd); } else { Flight::halt(500, 'error ao solicitar estoque do produto'); } }
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 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 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 static function verificarEstoqueTransferencia() { try { $TransferenciaEstoqueTO = new stdClass(); $TransferenciaEstoqueDao = new TransferenciaEstoqueDao(); $EstoqueDao = new EstoqueDao(); $TransferenciaEstoqueTO->id = isset($_POST['id']) ? $_POST['id'] : NULL; $TransferenciaEstoqueTO->id_usuario_transferencia = isset($_POST['id_usuario_transferencia']) ? $_POST['id_usuario_transferencia'] : NULL; $TransferenciaEstoqueTO->id_status_transferencia = isset($_POST['id_status_transferencia']) ? $_POST['id_status_transferencia'] : NULL; $TransferenciaEstoqueTO->id_empreendimento_transferencia = isset($_POST['id_empreendimento_transferencia']) ? $_POST['id_empreendimento_transferencia'] : NULL; $produtos = $_POST['produtos']; $produtos_estoque = array(); $out = array(); foreach ($produtos as $key => $value) { if (!isset($produtos_estoque[$value['id']])) { $produtos_estoque[$value['id']]['qtd_transferida'] = 0; $produtos_estoque[$value['id']]['id'] = $value['id']; } $produtos_estoque[$value['id']]['qtd_transferida'] += (int) $value['qtd_transferida']; $produtos_estoque[$value['id']]['id_deposito_saida'] = $value['id_deposito_saida']; } foreach ($produtos_estoque as $key => $value) { $qtd_transferida = (int) $value['qtd_transferida']; $estoque = $EstoqueDao->getQtdProduto($TransferenciaEstoqueTO->id_empreendimento_transferencia, $value['id'], null, $value['id_deposito_saida']); $estoque_real = $estoque - $qtd_transferida; if ($estoque_real < 0) { $out[$value['id']] = array('qtd_transferida' => $qtd_transferida, '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; } } catch (Exception $e) { jsonException($e); } }
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); } }