Exemplo n.º 1
0
 public function getProdutosPedido($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'];
     }
     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\t\t\tpro.id as id_produto,\n\t\t\t\t\tpro.*,\n\t\t\t\t\tpro.nome AS nome_produto, \n\t\t\t\t\ttcp.nome_cor AS nome_cor ,\n\t\t\t\t\ttt.nome_tamanho AS nome_tamanho,\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\t\t\n\t\t\t\t\tfab.nome_fabricante,\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\t\ttpp.dta_ultima_atualizacao,\n\t\t\t\t\tnull AS qtd,\n\t\t\t\tif(tcep.nome_campo = 'flg_tira','tira','acessorio') AS tipo_produto\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 AND tpe.id_empreendimento = tpp.id_empreendimento)\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_valor_campo_extra_produto AS tvcep ON pro.id = tvcep.id_produto\n\t\t\t\tLEFT JOIN tbl_campo_extra_produto       AS tcep  ON tvcep.id_campo = tcep.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;
     }
     //WHERE (tcep.nome_campo IN ('flg_tira','flg_tira_piercing') AND tvcep.valor_campo = '1')
     $sql .= " GROUP BY pro.id ";
     $sql .= " ";
     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();
             $saida['produtos'] = $select->fetchAll(PDO::FETCH_ASSOC);
             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'];
                 if (!is_null($id_empreendimento)) {
                     $saida['produtos'][$key]['qtd_item'] = $EstoqueDao->getQtdProduto($id_empreendimento, $value['id_produto'], null, null);
                 }
                 $saida['produtos'][$key]['fornecedores'] = $FornecedorDao->getFornecedoresByProduto(array('prd.id' => $value['id']));
             }
             if (isset($links_paginacao)) {
                 return array("tiras" => $saida['produtos'], "paginacao" => $links_paginacao);
             } else {
                 return $saida['produtos'];
             }
         } else {
             return false;
         }
     } else {
         return false;
     }
 }
 public function requestsaveProdutoFornecedores($id_item, $id_item_referencia, $id_empreendimento, $arr)
 {
     $FornecedorDao = new FornecedorDao();
     $ProdutoDao = new ProdutoDao();
     $ProdutoFornecedorDao = new ProdutoFornecedorDao();
     $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao();
     $fornecedores = $FornecedorDao->getFornecedoresByProduto(array('prd.id' => $id_item));
     $fornecedores = $fornecedores ? $fornecedores : array();
     $ids = array();
     $arr = is_array($arr) ? $arr : array();
     foreach ($arr as $key => $value) {
         $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO();
         $ReferenciaIntegracaoTO->sistema_integrado = 'PrestaShop';
         $ReferenciaIntegracaoTO->tabela = 'tbl_fornecedores';
         $ReferenciaIntegracaoTO->id_item_referencia = $value;
         $ReferenciaIntegracaoTO->tipo = 'fornecedor';
         $ReferenciaIntegracaoTO->id_empreendimento = $id_empreendimento;
         $referencia = $ReferenciaIntegracaoDao->refExists($ReferenciaIntegracaoTO, true);
         if ($referencia) {
             $ids[] = $referencia['id_item'];
             $find = getArrayINarray('id_fornecedor', $referencia['id_item'], $fornecedores);
             if ($find == false) {
                 $ProdutoFornecedorTO = new ProdutoFornecedorTO();
                 $ProdutoFornecedorTO->id_produto = $id_item;
                 $ProdutoFornecedorTO->id_fornecedor = $referencia['id_item'];
                 if (!$ProdutoDao->fornecedorProduto($ProdutoFornecedorTO)) {
                     throw new Exception('erro ao vincular fornecedoor ao enpreendimento ', 1);
                 }
             }
         }
     }
     foreach ($fornecedores as $value) {
         if (!in_array($value['id_fornecedor'], $ids)) {
             $ProdutoFornecedorDao->deleteItem('id=' . $value['id_produto_fornecedor']);
         }
     }
 }