コード例 #1
0
 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');
     }
 }
コード例 #2
0
 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');
     }
 }
コード例 #3
0
 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;
     }
 }
コード例 #4
0
 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();
 }