public static function get($id_produto) { $ProdutoCombinacaoDao = new ProdutoCombinacaoDao(); $combinacao = $ProdutoCombinacaoDao->get(null, null, array("tpc.id_produto" => $id_produto)); if ($combinacao) { Flight::json($combinacao); } else { Flight::halt(404, 'Não há resultado para a busca'); } }
public static function getEstoque($offset, $limit) { $EstoqueDao = new EstoqueDao(); if (isset($_GET['get_combinacao']) && $_GET['get_combinacao'] == 'true' && isset($_GET['prd->id'])) { $in = array((int) $_GET['prd->id']); $ProdutoCombinacaoDao = new ProdutoCombinacaoDao(); $combinacoes = $ProdutoCombinacaoDao->get(null, null, array("tpc.id_produto" => $_GET['prd->id'])); $combinacoes = $combinacoes ? $combinacoes : array(); unset($_GET['get_combinacao']); foreach ($combinacoes as $key => $value) { if ($_GET['prd->id'] != $value['id_combinacao']) { $in[] = (int) $value['id_combinacao']; } } $_GET['prd->id'] = array('exp' => ' IN (' . join(',', $in) . ')'); } $produtos = $EstoqueDao->getEstoque($offset, $limit, $_GET); if ($produtos) { Flight::json($produtos); } else { Flight::halt(404, 'Produtos não encontrados'); } }
public function getProdutos($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']; } $id_deposito_estoque = null; if (array_key_exists('id_deposito_estoque', $busca)) { $id_deposito_estoque = $busca['id_deposito_estoque']; unset($busca['id_deposito_estoque']); } if (!array_key_exists('pro->flg_excluido', $busca)) { $busca['(pro->flg_excluido']['exp'] = '=0 OR pro.flg_excluido IS NULL)'; } $sql = "SELECT DISTINCT\n\t\t\tpro.id as id_produto,\n\t\t\tpro.*,\n\t\t\ttcp.nome_cor AS sabor ,\n\t\t\ttt.nome_tamanho AS peso,\n\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\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\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\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\n\t\t\tfab.nome_fabricante,\n\t\t\ttpp.vlr_custo,\n\t\t\ttpp.perc_imposto_compra,\n\t\t\ttpp.perc_desconto_compra,\n\t\t\ttpp.perc_venda_atacado,\n\t\t\ttpp.perc_venda_intermediario,\n\t\t\ttpp.perc_venda_varejo,\n\t\t\ttpp.dta_ultima_atualizacao,\n\t\t\ttcinf.num_item AS FormaAquisicao ,\n\t\t\ttcino.num_item AS OrigemMercadoria,\n\t\t\ttcint.num_item AS TipoTributacaoIPI \n\t\t\tFROM tbl_produtos \t\t\t\t\t\tAS pro\n\t\t\tLEFT JOIN tbl_fabricante \t\t\t\tAS fab ON pro.id_fabricante = fab.id\n\t\t\tLEFT JOIN tbl_produto_empreendimento \tAS tpe ON tpe.id_produto = pro.id\n\t\t\tLEFT JOIN tbl_preco_produto \t\t\tAS tpp ON (tpp.id_produto = pro.id AND tpe.id_empreendimento = tpp.id_empreendimento) \n\t\t\tLEFT JOIN tbl_cor_produto AS tcp ON tcp.id = pro.id_cor \n\t\t\tLEFT JOIN tbl_tamanho AS tt ON tt.id = pro.id_tamanho\n\t\t\tLEFT JOIN tbl_estoque \t\t\t\t\tAS est ON est.id_produto = pro.id \n\t\t\tLEFT JOIN tbl_controle_item_nfe AS tcinf ON pro.cod_forma_aquisicao = tcinf.cod_controle_item_nfe\n\t\t\tLEFT JOIN tbl_controle_item_nfe AS tcino ON pro.cod_origem_mercadoria = tcino.cod_controle_item_nfe\n\t\t\tLEFT JOIN tbl_controle_item_nfe AS tcint ON pro.cod_tipo_tributacao_ipi = tcint.cod_controle_item_nfe\n\t\t\tLEFT JOIN tbl_produto_combinacao AS tpc ON pro.id = tpc.id_combinacao"; if (is_array($busca) && count($busca) > 0) { $where = prepareWhere($busca); $sql .= " WHERE " . $where; } $sql .= " GROUP BY pro.id "; $sql .= " ORDER 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) { $ProdutoCombinacaoDao = new ProdutoCombinacaoDao(); $ProdutoCategoriaDao = new ProdutoCategoriaDao(); $FornecedorDao = new FornecedorDao(); $EstoqueDao = new EstoqueDao(); $saida['produtos'] = parse_arr_values($select->fetchAll(PDO::FETCH_ASSOC), 'all', null, array('codigo_barra', 'cod_ncm')); foreach ($saida['produtos'] as $key => $value) { $vlr_custo = (double) $value['vlr_custo_real']; $perc_venda_atacado = (double) $value['perc_venda_atacado']; $perc_venda_intermediario = (double) $value['perc_venda_intermediario']; $perc_venda_varejo = (double) $value['perc_venda_varejo']; $saida['produtos'][$key]['id_produto'] = (int) $saida['produtos'][$key]['id_produto']; $saida['produtos'][$key]['qtd_minima_estoque'] = (int) $saida['produtos'][$key]['qtd_minima_estoque']; $saida['produtos'][$key]['vlr_custo_real'] = (double) $saida['produtos'][$key]['vlr_custo_real']; $saida['produtos'][$key]['vlr_custo'] = (double) $saida['produtos'][$key]['vlr_custo']; $saida['produtos'][$key]['vlr_venda_atacado'] = $vlr_custo + $vlr_custo * $perc_venda_atacado; $saida['produtos'][$key]['vlr_venda_intermediario'] = $vlr_custo + $vlr_custo * $perc_venda_intermediario; $saida['produtos'][$key]['vlr_venda_varejo'] = $vlr_custo + $vlr_custo * $perc_venda_varejo; $saida['produtos'][$key]['perc_imposto_compra'] = (double) $saida['produtos'][$key]['perc_imposto_compra']; $saida['produtos'][$key]['perc_desconto_compra'] = (double) $saida['produtos'][$key]['perc_desconto_compra']; $saida['produtos'][$key]['perc_venda_atacado'] = (double) $saida['produtos'][$key]['perc_venda_atacado']; $saida['produtos'][$key]['perc_venda_intermediario'] = (double) $saida['produtos'][$key]['perc_venda_intermediario']; $saida['produtos'][$key]['perc_venda_varejo'] = (double) $saida['produtos'][$key]['perc_venda_varejo']; $saida['produtos'][$key]['categorias'] = $ProdutoCategoriaDao->get(array("tce.id_empreendimento" => $id_empreendimento, "tpc.id_produto" => $value['id'])); $saida['produtos'][$key]['combinacoes'] = $ProdutoCombinacaoDao->get(null, null, array("tpc.id_produto" => $value['id'])); $saida['produtos'][$key]['combinacoes'] = $saida['produtos'][$key]['combinacoes'] ? $saida['produtos'][$key]['combinacoes'] : array(); if (!is_null($id_empreendimento)) { $saida['produtos'][$key]['qtd_item'] = $EstoqueDao->getQtdProduto($id_empreendimento, $value['id_produto'], null, $id_deposito_estoque); } $saida['produtos'][$key]['fornecedores'] = $FornecedorDao->getFornecedoresByProduto(array('prd.id' => $value['id'])); } $saida['paginacao'] = isset($links_paginacao) ? $links_paginacao : null; return $saida; } else { return false; } } else { return false; } }
public static function AtualizaEstoquePrestaShop() { $dados = $_POST; $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao(); $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO(); $PrestaShopDao = new PrestaShopDao($dados['id_empreendimento']); $ProdutoCombinacaoDao = new ProdutoCombinacaoDao(); $saida = array(); foreach ($dados['produtos'] as $id_produto) { $referencia = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_produtos', 'id_item' => $id_produto, 'tipo' => 'produto', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0)); if ($referencia) { $combinacoes = $ProdutoCombinacaoDao->get(null, null, array('tpc.id_produto' => $id_produto)); $combinacoes = $combinacoes ? $combinacoes : array(); foreach ($combinacoes as $combinacao) { $referenciaCombination = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_produto_combinacao', 'id_item' => $combinacao['id_produto_combinacao'], 'tipo' => 'combinacao', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0)); $saida[] = $PrestaShopDao->atualizaEstoquePrestaShop($dados['id_empreendimento'], $combinacao['id_combinacao'], $referencia['id_item_referencia'], $referenciaCombination['id_item_referencia']); } if (count($combinacoes) == 0) { $saida[] = $PrestaShopDao->atualizaEstoquePrestaShop($dados['id_empreendimento'], $id_produto, $referencia['id_item_referencia'], 0); } } else { $combinacoes = $ProdutoCombinacaoDao->get(null, null, array('tpc.id_combinacao' => $id_produto)); $combinacoes = $combinacoes ? $combinacoes : array(); foreach ($combinacoes as $combinacao) { $referenciaCombination = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_produto_combinacao', 'id_item' => $combinacao['id_produto_combinacao'], 'tipo' => 'combinacao', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0)); $referencia = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_produtos', 'id_item' => $combinacao['id_produto'], 'tipo' => 'produto', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0)); $saida[] = $PrestaShopDao->atualizaEstoquePrestaShop($dados['id_empreendimento'], $combinacao['id_combinacao'], $referencia['id_item_referencia'], $referenciaCombination['id_item_referencia']); } } } Flight::response()->status(200)->header('Content-Type', 'application/json')->write(json_encode(array('status' => true)))->send(); }