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; } }