/** * <p>Title: T2Ti ERP</p> * <p>Description: PAF-ECF + TEF - Regras de negócio/persistência do Produto.</p> * * <p>The MIT License</p> * * <p>Copyright: Copyright (C) 2010 T2Ti.COM</p> * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * The author may be contacted at: * t2ti.com@gmail.com</p> * * @author Albert Eije (T2Ti.COM) * @version 1.0 */ package com.t2tierp.pafecf.controller; import com.t2tierp.pafecf.bd.AcessoBanco; import com.t2tierp.pafecf.vo.ProdutoVO; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class ProdutoController { String consultaSQL; Statement stm; PreparedStatement pstm; ResultSet rs; AcessoBanco bd = new AcessoBanco(); public ProdutoVO consulta(String codigo) { ProdutoVO produtoVO = new ProdutoVO(); consultaSQL = "select P.ID, P.ID_ECF_TRIBUTOS, P.ID_UNIDADE_PRODUTO, P.GTIN, P.CODIGO_INTERNO, " + "P.NOME AS NOME_PRODUTO, P.DESCRICAO, P.DESCRICAO_PDV, P.VALOR_VENDA, P.QTD_ESTOQUE, P.ESTOQUE_MIN, " + "P.ESTOQUE_MAX, P.IAT, P.IPPT, P.NCM, U.NOME AS NOME_UNIDADE, T.ECF_ICMS, T.CST, T.TOTALIZADOR_PARCIAL " + "from PRODUTO P, UNIDADE_PRODUTO U, ECF_TRIBUTO_PRODUTO T where GTIN=" + codigo; try { stm = bd.conectar().createStatement(); rs = stm.executeQuery(consultaSQL); rs.beforeFirst(); if (rs.next()) { produtoVO.setId(rs.getInt("ID")); produtoVO.setGTIN(rs.getString("GTIN")); produtoVO.setDescricaoPDV(rs.getString("DESCRICAO_PDV")); produtoVO.setValorVenda(rs.getDouble("VALOR_VENDA")); produtoVO.setIdTributo(rs.getInt("ID_ECF_TRIBUTOS")); produtoVO.setIdUnidade(rs.getInt("ID_UNIDADE_PRODUTO")); produtoVO.setCodigoInterno(rs.getString("CODIGO_INTERNO")); produtoVO.setNome(rs.getString("NOME_PRODUTO")); produtoVO.setDescricao(rs.getString("DESCRICAO")); produtoVO.setQuantidadeEstoque(rs.getDouble("QTD_ESTOQUE")); produtoVO.setEstoqueMaximo(rs.getDouble("ESTOQUE_MAX")); produtoVO.setEstoqueMinimo(rs.getDouble("ESTOQUE_MIN")); produtoVO.setIAT(rs.getString("IAT")); produtoVO.setIPPT(rs.getString("IPPT")); produtoVO.setNCM(rs.getString("NCM")); produtoVO.setUnidadeProduto(rs.getString("NOME_UNIDADE")); produtoVO.setSituacaoTributaria(rs.getString("CST")); produtoVO.setECFICMS(rs.getString("ECF_ICMS")); produtoVO.setTotalizadorParcial(rs.getString("TOTALIZADOR_PARCIAL")); return produtoVO; } else { return null; } } catch (Exception e) { e.printStackTrace(); return null; } finally { bd.desconectar(); } } public ProdutoVO consultaId(Integer pId) { ProdutoVO produto = new ProdutoVO(); consultaSQL = "select P.ID, P.ID_ECF_TRIBUTOS, P.ID_UNIDADE_PRODUTO, P.GTIN, P.CODIGO_INTERNO, " + "P.NOME AS NOME_PRODUTO, P.DESCRICAO, P.DESCRICAO_PDV, P.VALOR_VENDA, P.QTD_ESTOQUE, P.ESTOQUE_MIN, " + "P.ESTOQUE_MAX, P.IAT, P.IPPT, P.NCM, U.NOME AS NOME_UNIDADE, T.ECF_ICMS, T.CST, T.TOTALIZADOR_PARCIAL " + "from PRODUTO P, UNIDADE_PRODUTO U, ECF_TRIBUTO_PRODUTO T where P.ID=" + pId; try { stm = bd.conectar().createStatement(); rs = stm.executeQuery(consultaSQL); rs.beforeFirst(); if (rs.next()) { produto.setId(rs.getInt("ID")); produto.setGTIN(rs.getString("GTIN")); produto.setDescricaoPDV(rs.getString("DESCRICAO_PDV")); produto.setValorVenda(rs.getDouble("VALOR_VENDA")); produto.setIdTributo(rs.getInt("ID_ECF_TRIBUTOS")); produto.setIdUnidade(rs.getInt("ID_UNIDADE_PRODUTO")); produto.setCodigoInterno(rs.getString("CODIGO_INTERNO")); produto.setNome(rs.getString("NOME_PRODUTO")); produto.setDescricao(rs.getString("DESCRICAO")); produto.setQuantidadeEstoque(rs.getDouble("QTD_ESTOQUE")); produto.setEstoqueMaximo(rs.getDouble("ESTOQUE_MAX")); produto.setEstoqueMinimo(rs.getDouble("ESTOQUE_MIN")); produto.setIAT(rs.getString("IAT")); produto.setIPPT(rs.getString("IPPT")); produto.setNCM(rs.getString("NCM")); produto.setUnidadeProduto(rs.getString("NOME_UNIDADE")); produto.setSituacaoTributaria(rs.getString("CST")); produto.setECFICMS(rs.getString("ECF_ICMS")); produto.setTotalizadorParcial(rs.getString("TOTALIZADOR_PARCIAL")); return produto; } else { return null; } } catch (Exception e) { e.printStackTrace(); return null; } finally { bd.desconectar(); } } public List<ProdutoVO> tabelaProduto() { consultaSQL = "select count(*) as TOTAL " + "from PRODUTO P, UNIDADE_PRODUTO U, ECF_TRIBUTO_PRODUTO T " + "where P.ID_UNIDADE_PRODUTO = U.ID AND P.ID_ECF_TRIBUTOS = T.ID "; try { stm = bd.conectar().createStatement(); rs = stm.executeQuery(consultaSQL); rs.first(); Integer totalRegistros = rs.getInt("TOTAL"); if (totalRegistros > 0) { List<ProdutoVO> listaProduto = new ArrayList<ProdutoVO>(); consultaSQL = "select P.ID AS PID,P.ID_UNIDADE_PRODUTO,P.GTIN,P.DESCRICAO_PDV, " + "P.IAT,P.IPPT,P.VALOR_VENDA,P.QTD_ESTOQUE,P.DESCRICAO,P.NOME AS PNOME, " + "P.ID_ECF_TRIBUTOS, U.ID AS UID, U.NOME AS UNOME, T.ID AS TID, T.CST, T.ECF_ICMS, " + "T.TOTALIZADOR_PARCIAL, T.TAXA_ICMS " + "from PRODUTO P, UNIDADE_PRODUTO U, ECF_TRIBUTO_PRODUTO T " + "where P.ID_UNIDADE_PRODUTO = U.ID AND P.ID_ECF_TRIBUTOS = T.ID"; stm = bd.conectar().createStatement(); rs = stm.executeQuery(consultaSQL); rs.beforeFirst(); while (rs.next()) { ProdutoVO produto = new ProdutoVO(); produto.setId(rs.getInt("PID")); produto.setGTIN(rs.getString("produto")); produto.setDescricaoPDV(rs.getString("DESCRICAO_PDV")); produto.setDescricao(rs.getString("DESCRICAO")); produto.setNome(rs.getString("PNOME")); produto.setUnidadeProduto(rs.getString("UNOME")); produto.setIAT(rs.getString("IAT")); produto.setIPPT(rs.getString("IPPT")); produto.setSituacaoTributaria(rs.getString("CST")); produto.setECFICMS(rs.getString("ECF_ICMS")); produto.setAliquotaICMS(rs.getDouble("TAXA_ICMS")); produto.setTotalizadorParcial(rs.getString("TOTALIZADOR_PARCIAL")); produto.setQuantidadeEstoque(rs.getDouble("QTD_ESTOQUE")); produto.setValorVenda(rs.getDouble("VALOR_VENDA")); listaProduto.add(produto); } return listaProduto; } else { //caso nao existam registros retorna nulo return null; } } catch (Exception e) { e.printStackTrace(); return null; } finally { bd.desconectar(); } } public List<ProdutoVO> produtoFiltro(String filtroNome) { String procurePor = "%" + filtroNome + "%"; consultaSQL = "SELECT COUNT(*) as TOTAL FROM PRODUTO " + "WHERE NOME LIKE '" + procurePor + "'"; try { stm = bd.conectar().createStatement(); rs = stm.executeQuery(consultaSQL); rs.first(); Integer totalRegistros = rs.getInt("TOTAL"); if (totalRegistros > 0) { List<ProdutoVO> listaProduto = new ArrayList<ProdutoVO>(); consultaSQL = "SELECT * FROM PRODUTO " + "WHERE NOME LIKE '" + procurePor + "'" + " ORDER BY NOME"; stm = bd.conectar().createStatement(); rs = stm.executeQuery(consultaSQL); rs.beforeFirst(); while (rs.next()) { ProdutoVO produto = new ProdutoVO(); produto.setNome(rs.getString("NOME")); produto.setValorVenda(rs.getDouble("VALOR_VENDA")); produto.setDescricaoPDV(rs.getString("DESCRICAO_PDV")); produto.setGTIN(rs.getString("GTIN")); produto.setCodigoInterno(rs.getString("CODIGO_INTERNO")); produto.setQuantidadeEstoque(rs.getDouble("QTD_ESTOQUE")); produto.setEstoqueMinimo(rs.getDouble("ESTOQUE_MIN")); produto.setEstoqueMaximo(rs.getDouble("ESTOQUE_MAX")); listaProduto.add(produto); } return listaProduto; } else { //caso nao existam registros retorna nulo return null; } } catch (Exception e) { e.printStackTrace(); return null; } finally { bd.desconectar(); } } }