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']); } } }