/** * <p>Title: T2Ti ERP</p> * <p>Description: PAF-ECF + TEF - Regras de negócio/persistência dos Valores pagos * em determinada venda com os respectivos tipos de pagamento.</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.view.Caixa; import com.t2tierp.pafecf.vo.MeiosPagamentoVO; import com.t2tierp.pafecf.vo.R07VO; import com.t2tierp.pafecf.vo.TotalTipoPagamentoVO; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class TotalTipoPagamentoController { String consultaSQL; Statement stm; PreparedStatement pstm; ResultSet rs; AcessoBanco bd = new AcessoBanco(); public void gravaTotaisVenda(ArrayList<TotalTipoPagamentoVO> pListaTotalTipoPagamento) { TotalTipoPagamentoVO totalTipoPagamento; try { for (int i = 0; i < pListaTotalTipoPagamento.size(); i++) { totalTipoPagamento = pListaTotalTipoPagamento.get(i); consultaSQL = "insert into ECF_TOTAL_TIPO_PGTO (ID_ECF_VENDA_CABECALHO,ID_ECF_TIPO_PAGAMENTO,VALOR,NSU) " + "values (?, ?, ?, ?)"; pstm = bd.conectar().prepareStatement(consultaSQL); pstm.setInt(1, totalTipoPagamento.getIdVendaCabecalho()); pstm.setInt(2, totalTipoPagamento.getTipoPagamentoVO().getId()); pstm.setDouble(3, totalTipoPagamento.getValor()); if (totalTipoPagamento.getNSU() != null) { pstm.setString(4, totalTipoPagamento.getNSU()); } else { pstm.setNull(4, java.sql.Types.VARCHAR); } pstm.executeUpdate(); //TODO : Esse é o melhor lugar para gerar o R07? R07VO R07 = new R07VO(); try { R07.setCCF(Integer.valueOf(Caixa.ACBrECF.getNumCCF())); } catch (Throwable t) { } R07.setMeioPagamento(totalTipoPagamento.getTipoPagamentoVO().getDescricao()); R07.setValorPagamento(totalTipoPagamento.getValor()); //TODO : Como fazer o controle dos estornos? R07.setIndicadorEstorno("N"); R07.setValorEstorno(0.0); RegistroRController RegistroRControl = new RegistroRController(); RegistroRControl.gravaR07(R07); } } catch (Exception e) { e.printStackTrace(); } finally { bd.desconectar(); } } public List<MeiosPagamentoVO> meiosPagamento(String pDataInicio, String pDataFim, Integer pIdImpressora) { consultaSQL = "SELECT V.DATA_HORA_VENDA, M.ID_ECF_IMPRESSORA, P.DESCRICAO, SUM(TP.VALOR) AS TOTAL " + "FROM " + "ECF_VENDA_CABECALHO V, ECF_MOVIMENTO M, ECF_TIPO_PAGAMENTO P, ECF_TOTAL_TIPO_PGTO TP " + "WHERE " + "V.ID_ECF_MOVIMENTO = M.ID AND " + "TP.ID_ECF_VENDA_CABECALHO=V.ID AND " + "TP.ID_ECF_TIPO_PAGAMENTO = P.ID AND " + "M.ID_ECF_IMPRESSORA = " + pIdImpressora + " AND " + "(V.DATA_HORA_VENDA BETWEEN '" + pDataInicio + "' and '" + pDataFim + "') GROUP BY " + "P.DESCRICAO,V.DATA_HORA_VENDA,M.ID_ECF_IMPRESSORA"; try { List<MeiosPagamentoVO> listaMeiosPagamento = new ArrayList<MeiosPagamentoVO>(); stm = bd.conectar().createStatement(); rs = stm.executeQuery(consultaSQL); rs.beforeFirst(); while (rs.next()) { MeiosPagamentoVO meiosPagamento = new MeiosPagamentoVO(); meiosPagamento.setDescricao(rs.getString("DESCRICAO")); meiosPagamento.setDataHora(rs.getDate("DATA_HORA_VENDA")); meiosPagamento.setTotal(rs.getDouble("TOTAL")); listaMeiosPagamento.add(meiosPagamento); } return listaMeiosPagamento; } catch (Exception e) { e.printStackTrace(); return null; } finally { bd.desconectar(); } } }