Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Export; import com.itextpdf.text.BadElementException; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.Font; import com.itextpdf.text.FontFactory; import com.itextpdf.text.Image; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.Phrase; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfContentByte; import com.itextpdf.text.pdf.PdfGState; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfPageEventHelper; import com.itextpdf.text.pdf.PdfWriter; import conexao.Call; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.sql.ResultSet; import java.sql.Types; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Locale; import java.util.function.Consumer; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JTextPane; import lib.Moeda; import modelo.CreditoDebito; import modelo.Movimento; import org.primefaces.context.RequestContext; /** * * @author AhmedJorge */ public class FuncPagamento { private String reString; static String PAGAMENTO = "PAGAMENTO", CODPAGAMENTO = "COD PAGAMENTO", FORMAPAGAMENTO = "FORMA PAGAMENTO", DOCFORMAPAGAMENTO = "DOC FORMA PAGAMENTO", BENEFICIARIO = "BENEFICIARIO", DESCRICAOPAGAMENTO = "DESCRICAO PAGAMENTO", VALORPAGAMENTO = "VALOR PAGAMENTO", NUMERODACONTABANCO = "NUMERO DA CONTA BANCO", TITULOCONTAPAGAMENTO = "TITULO CONTA PAGAMENTO", DESCRICAOCONTABANCO = "DESCRICAO CONTA BANCO", MOEDA = "MOEDA", SIGLA = "SIGLA", REGISTRO = "REGISTRO", QUANTIDADE = "QUANTIDADE", CODIGOCONTAPAGAMENTO = "CODIGO CONTA PAGAMENTO", RETENCAOFONTE = "RETENCAO_FONTE"; public String criarDoc(String user, String numPagamento, String nomeUser, int i) { String re = ((i == 2) ? folhaPagamento(numPagamento, user, nomeUser, i) : pequenoPagamento(numPagamento, user, nomeUser, i)); return re; } private String folhaPagamento(String numPagamento, String user, String nomeUser, int j) throws NumberFormatException { try { SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy hh'.'mm'.'ss"); Font fontCabecalhoN = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 9.5f); Font fontCorpo = FontFactory.getFont(ConfigDoc.Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 9f); Font fontCorpoP = FontFactory.getFont(ConfigDoc.Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 8f); Font fontCorpoN = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 9f); Font fontCorpoNU = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 9f, Font.UNDERLINE); Font fontCorpoNG = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 11.5f); Font fontCorpoNGT = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 13f, Font.UNDERLINE); Font fontCabecalhoNG = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 16f, Font.UNDERLINE); ArrayList<HashMap<String, Object>> mapList = getObj(numPagamento); Document documento = new Document(); documento.setPageSize(PageSize.A4); documento.setMargins(20f, 20f, 10f, 5f); String Ddata = sdf1.format(new Date()); int size = mapList.size(), i = 0; File ff = new File(ConfigDoc.Fontes.getDiretorio() + "/" + user + "/Pagamentos/"); ff.mkdirs(); ff = new File(ff.getAbsoluteFile() + "/" + "Pagamentos Func " + Ddata + ".pdf"); OutputStream outputStraem = new FileOutputStream(ff); PdfWriter writer = PdfWriter.getInstance(documento, outputStraem); MyFooter event = new MyFooter(); writer.setPageEvent(event); documento.open(); for (HashMap<String, Object> hashMap : mapList) { i++; PdfPTable pTableEmpresaPricipal = new PdfPTable(new float[] { 25f, 75f }); pTableEmpresaPricipal.setWidthPercentage(90); PdfPTable pTableEmpresaInforImpres1 = new PdfPTable(1); PdfPTable pTableEmpresaInforImpres5 = new PdfPTable(1); PdfPTable pTableNull = new PdfPTable(1); PdfPCell cellNull = new PdfPCell(new Phrase(" ", fontCorpoP)); cellNull.setBorder(0); pTableNull.addCell(cellNull); PdfPCell pCellNomeEmpresa = new PdfPCell(new Phrase(ConfigDoc.Empresa.NOME, fontCabecalhoNG)); pCellNomeEmpresa.setBorder(0); PdfPCell pCellNomeEndereco = new PdfPCell(new Phrase(ConfigDoc.Empresa.ENDERECO, fontCabecalhoN)); pCellNomeEndereco.setBorder(0); PdfPCell pCellCaixaPostal = new PdfPCell(new Phrase(ConfigDoc.Empresa.CAIXAPOSTAL, fontCabecalhoN)); pCellCaixaPostal.setBorder(0); PdfPCell pCellTeleFax = new PdfPCell( new Phrase(ConfigDoc.Empresa.TELEFAX + " " + ConfigDoc.Empresa.EMAIL, fontCabecalhoN)); pCellTeleFax.setBorder(0); PdfPCell pCellSociedade = new PdfPCell(new Phrase(ConfigDoc.Empresa.SOCIEDADE, fontCabecalhoN)); pCellSociedade.setBorder(0); Image imageEmpresa = Image.getInstance("logo.png"); imageEmpresa.scaleToFit(120f, 85f); pTableEmpresaInforImpres1.addCell(pCellNomeEmpresa); pTableEmpresaInforImpres1.addCell(pCellNomeEndereco); pTableEmpresaInforImpres1.addCell(pCellCaixaPostal); pTableEmpresaInforImpres1.addCell(pCellTeleFax); pTableEmpresaInforImpres1.addCell(pCellSociedade); PdfPCell cellTabela3 = new PdfPCell(pTableEmpresaInforImpres1); cellTabela3.setBorder(0); pTableEmpresaInforImpres5.addCell(cellTabela3); PdfPCell cellTabela5 = new PdfPCell(pTableEmpresaInforImpres5); cellTabela5.setBorder(0); PdfPCell cellTabela6 = new PdfPCell(imageEmpresa); cellTabela6.setBorder(0); pTableEmpresaPricipal.addCell(cellTabela6); pTableEmpresaPricipal.addCell(cellTabela5); documento.add(pTableEmpresaPricipal); documento.add(pTableNull); documento.add(pTableNull); PdfPTable pTableTitulo = new PdfPTable(new float[] { 50, 50 }); pTableTitulo.setWidthPercentage(90f); PdfPCell cellTitulo = new PdfPCell(new Phrase("Comprovativo de Pagamento", fontCorpoNGT)); cellTitulo.setBorder(0); cellTitulo.setHorizontalAlignment(Element.ALIGN_RIGHT); cellTitulo.setPaddingRight(-80f); cellTitulo.setPaddingTop(-26f); pTableTitulo.addCell(cellTitulo); cellTitulo = new PdfPCell(new Phrase("N: " + hashMap.get(PAGAMENTO), fontCorpoNGT)); cellTitulo.setHorizontalAlignment(Element.ALIGN_RIGHT); cellTitulo.setBorder(0); cellTitulo.setPaddingBottom(5f); pTableTitulo.addCell(cellTitulo); documento.add(pTableTitulo); PdfPTable pTableAno = new PdfPTable(new float[] { 100 }); pTableAno.setWidthPercentage(90f); PdfPCell cellAno = new PdfPCell(new Phrase(toData(hashMap.get(REGISTRO), j), fontCorpoNGT)); cellAno.setBorder(0); cellAno.setPaddingBottom(20f); pTableAno.addCell(cellAno); documento.add(pTableAno); PdfPTable pTableDetalhesPagamento = new PdfPTable(new float[] { 100 }); pTableDetalhesPagamento.setWidthPercentage(90f); PdfPCell cellDetalhesPagamento = new PdfPCell(); Paragraph pDetalhesPagamento = new Paragraph(); pDetalhesPagamento.add(new Paragraph("\nDetalhes de Pagamento ", fontCorpoNG)); pDetalhesPagamento.add(new Phrase("Beneficirio: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(toString(hashMap.get(BENEFICIARIO)) + "\n", fontCorpo)); pDetalhesPagamento.add(new Phrase("Descrio do pagamento: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(toString(hashMap.get(DESCRICAOPAGAMENTO)), fontCorpo)); pDetalhesPagamento.add(new Paragraph("CONFORME APROVADO\n\n", fontCorpoN)); pDetalhesPagamento.add(new Paragraph("Valor Pagamento", fontCorpoNG)); pDetalhesPagamento.add(new Phrase("Valor Numerico: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase( toMoeda(hashMap.get(VALORPAGAMENTO), toString(hashMap.get(SIGLA))) + "\n", fontCorpo)); System.err.println(toString(hashMap.get(RETENCAOFONTE)) + " hfhfh retensao"); if (toString(hashMap.get(RETENCAOFONTE)).trim().equals("1")) { double ret = getValorImportRetensao(); pDetalhesPagamento.add(new Phrase("Valor Retensao Fonte: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(toMoeda(ret, "%") + "\n", fontCorpo)); pDetalhesPagamento.add(new Phrase("Valor Retido: ", fontCorpoN)); double valret = toDouble(hashMap.get(VALORPAGAMENTO)) * ret; pDetalhesPagamento .add(new Phrase(toMoeda(valret, toString(hashMap.get(SIGLA))) + "\n", fontCorpo)); } JTextPane jtp = new JTextPane(); Double valor = Double.valueOf((hashMap.get(VALORPAGAMENTO) + "")); Moeda.EscreverEstenso(valor, jtp, toString(hashMap.get(MOEDA))); pDetalhesPagamento.add(new Phrase("Valor por Extenso: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(jtp.getText().trim() + " \n\n", fontCorpo)); pDetalhesPagamento.add(new Paragraph("Descrio da Conta", fontCorpoNG)); pDetalhesPagamento.add(new Phrase("Cod Conta: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(hashMap.get(CODIGOCONTAPAGAMENTO) + "\n", fontCorpo)); pDetalhesPagamento.add(new Phrase("Titulo da Conta: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(hashMap.get(TITULOCONTAPAGAMENTO) + "\n", fontCorpo)); /** * For alter */ pDetalhesPagamento.add(new Phrase("Forma de Pagamento: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(hashMap.get(FORMAPAGAMENTO) + " \n", fontCorpo)); pDetalhesPagamento.add(new Phrase("Documento de Pagamento: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(toString(hashMap.get(DESCRICAOCONTABANCO)) + " - " + toString(hashMap.get(DOCFORMAPAGAMENTO)) + "\n\n", fontCorpo)); pDetalhesPagamento.add(new Paragraph(" ", fontCorpoN)); cellDetalhesPagamento.addElement(pDetalhesPagamento); pTableDetalhesPagamento.addCell(cellDetalhesPagamento); cellDetalhesPagamento = new PdfPCell(); pDetalhesPagamento = new Paragraph(); pDetalhesPagamento.add(new Paragraph(" ", fontCorpo)); pDetalhesPagamento.add(new Phrase("Preparado por: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(nomeUser + " ", fontCorpoP)); pDetalhesPagamento.add(new Phrase(" Examinado por", fontCorpoN)); pDetalhesPagamento.add(new Phrase("____________________\n", fontCorpo)); pDetalhesPagamento.add(new Paragraph(" ", fontCorpoN)); pDetalhesPagamento.add(new Paragraph("Pagamento Autorizado por:", fontCorpoNG)); pDetalhesPagamento.add(new Paragraph(" ", fontCorpoN)); pDetalhesPagamento.add(new Phrase("Assinatura: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(" ____________________________________________", fontCorpo)); pDetalhesPagamento.add(new Phrase(" Data ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(" ______________________\n\n", fontCorpo)); pDetalhesPagamento.add(new Phrase("Assinatura: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(" ____________________________________________", fontCorpo)); pDetalhesPagamento.add(new Phrase(" Data ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(" ______________________\n", fontCorpo)); pDetalhesPagamento.add(new Paragraph(" ", fontCorpo)); pDetalhesPagamento.add(new Paragraph( "............................................................................." + "...........................................................................", fontCorpoN)); pDetalhesPagamento.add(new Paragraph(" ", fontCorpo)); Paragraph pReceip = new Paragraph("RECIBO", fontCorpoN); pReceip.setAlignment(Element.ALIGN_CENTER); pDetalhesPagamento.add(pReceip); pDetalhesPagamento.add(new Paragraph(" ", fontCorpo)); pDetalhesPagamento.add(new Phrase("Recebi o valor de: ", fontCorpo)); pDetalhesPagamento.add(new Phrase(jtp.getText() + " \n", fontCorpoNU)); pDetalhesPagamento.add(new Paragraph(" ", fontCorpoN)); PdfPTable pTableNumCheque = new PdfPTable( new float[] { 33.3333333333f, 33.3333333333f, 33.3333333333f }); pTableNumCheque.setWidthPercentage(90f); pTableNumCheque.setWidthPercentage(100f); PdfPCell cellNumCheque = new PdfPCell(new Phrase("_______________________", fontCorpo)); cellNumCheque.setBorder(0); cellNumCheque.setHorizontalAlignment(Element.ALIGN_CENTER); pTableNumCheque.addCell(cellNumCheque); cellNumCheque = new PdfPCell(new Phrase("_______________________", fontCorpo)); cellNumCheque.setBorder(0); cellNumCheque.setHorizontalAlignment(Element.ALIGN_CENTER); pTableNumCheque.addCell(cellNumCheque); cellNumCheque = new PdfPCell(new Phrase("_______________________", fontCorpo)); cellNumCheque.setBorder(0); cellNumCheque.setHorizontalAlignment(Element.ALIGN_CENTER); pTableNumCheque.addCell(cellNumCheque); cellNumCheque = new PdfPCell(new Phrase("Cheque No.", fontCorpoN)); cellNumCheque.setBorder(0); cellNumCheque.setHorizontalAlignment(Element.ALIGN_CENTER); pTableNumCheque.addCell(cellNumCheque); cellNumCheque = new PdfPCell(new Phrase("Data", fontCorpoN)); cellNumCheque.setBorder(0); cellNumCheque.setHorizontalAlignment(Element.ALIGN_CENTER); pTableNumCheque.addCell(cellNumCheque); cellNumCheque = new PdfPCell(new Phrase("Receiver Name & Signature", fontCorpoN)); cellNumCheque.setBorder(0); cellNumCheque.setHorizontalAlignment(Element.ALIGN_CENTER); pTableNumCheque.addCell(cellNumCheque); pDetalhesPagamento.add(pTableNumCheque); pDetalhesPagamento.add(new Phrase( "\nNOTA: Um recibo oficial pode ser obtido por um pagamento e informado na parte inversa deste comprovativo. \n\n", fontCorpo)); cellDetalhesPagamento.addElement(pDetalhesPagamento); pTableDetalhesPagamento.addCell(cellDetalhesPagamento); documento.add(pTableDetalhesPagamento); if (i != size) { documento.newPage(); } } documento.close(); reString = "../Documentos/" + user + "/Pagamentos/" + "Pagamentos Func " + Ddata + ".pdf"; return reString; } catch (BadElementException | IOException ex) { Logger.getLogger(FuncPagamento.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(FuncPagamento.class.getName()).log(Level.SEVERE, null, ex); } return reString; } private String pequenoPagamento(String numPagamento, String user, String nomeUser, int i) { OutputStream outputStraem; try { SimpleDateFormat sdf = new SimpleDateFormat("MMMM yyyy - dd", new Locale("pt", "BR")); SimpleDateFormat sdf3 = new SimpleDateFormat("dd-MM-yyyy"); SimpleDateFormat sdf2 = new SimpleDateFormat("dd 'de' MMMM 'de' yyyy", new Locale("pt", "BR")); SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy hh'.'mm'.'ss"); Font fontCabecalhoN = FontFactory.getFont(ConfigDoc.Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 14f); Font fontCorpo = FontFactory.getFont(ConfigDoc.Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 8.5f); Font fontCorpoU = FontFactory.getFont(ConfigDoc.Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 9f, Font.UNDERLINE); // Font fontCorpoP= FontFactory.getFont(ConfigDoc.Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED ,8f ); Font fontCorpoN = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 9f); Font fontCorpoNG = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 8.5f); // Font fontCorpoNGT= FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED , 13f ,Font.UNDERLINE); Font fontCabecalhoNG = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 16f, Font.UNDERLINE); Document documento = new Document(); documento.setPageSize(PageSize.A4); documento.setMargins(20f, 20f, 10f, 5f); String Ddata = sdf1.format(new Date()); ArrayList<HashMap<String, Object>> mapList = getObj(numPagamento); int total = mapList.size(); File ff = new File(ConfigDoc.Fontes.getDiretorio() + "/" + user + "/Pagamentos/"); ff.mkdirs(); ff = new File(ff.getAbsoluteFile() + "/" + "Pagamentos Func " + Ddata + ".pdf"); outputStraem = new FileOutputStream(ff); PdfWriter writer = PdfWriter.getInstance(documento, outputStraem); MyFooterA5 event = new MyFooterA5(); writer.setPageEvent(event); documento.open(); PdfPTable pTableTitile = new PdfPTable(new float[] { 100 }); pTableTitile.setWidthPercentage(95f); PdfPCell cellTitile = new PdfPCell(); cellTitile.setBorder(0); Paragraph pTitile = new Paragraph(); pTitile.add(new Phrase(ConfigDoc.Empresa.NOME.toUpperCase(), fontCabecalhoNG)); pTitile.setAlignment(Element.ALIGN_CENTER); PdfPTable pTableSubTitile = new PdfPTable(new float[] { 80, 20 }); pTableSubTitile.setWidthPercentage(101f); PdfPCell cellSubTitile = new PdfPCell( new Phrase("Petty cash voucher no.".toUpperCase(), fontCabecalhoN)); cellSubTitile.setBorder(0); cellSubTitile.setHorizontalAlignment(Element.ALIGN_RIGHT); cellSubTitile.setPaddingBottom(20); cellSubTitile.setPaddingRight(67); cellSubTitile.setPaddingTop(10); pTableSubTitile.addCell(cellSubTitile); cellSubTitile = new PdfPCell( new Phrase(toData((mapList.size() > 0) ? mapList.get(0).get(REGISTRO) : " ", i).toUpperCase(), fontCabecalhoN)); cellSubTitile.setHorizontalAlignment(Element.ALIGN_LEFT); cellSubTitile.setBorder(0); cellSubTitile.setPaddingBottom(20); cellSubTitile.setPaddingTop(10); pTableSubTitile.addCell(cellSubTitile); // pTitile.add(cellSubTitile); pTitile.add(pTableSubTitile); cellTitile.addElement(pTitile); pTableTitile.addCell(cellTitile); documento.add(pTableTitile); PdfPTable pTableDados = new PdfPTable(new float[] { 5.6f, 6.05f, 53.5f, 17.95f, 19f }); pTableDados.setWidthPercentage(95f); PdfPCell cellDados = new PdfPCell(new Phrase("S/N", fontCorpoNG)); cellDados.setHorizontalAlignment(Element.ALIGN_CENTER); pTableDados.addCell(cellDados); cellDados = new PdfPCell(new Phrase("Qty", fontCorpoNG)); cellDados.setHorizontalAlignment(Element.ALIGN_CENTER); pTableDados.addCell(cellDados); cellDados = new PdfPCell(new Phrase("Detail Description", fontCorpoNG)); cellDados.setHorizontalAlignment(Element.ALIGN_CENTER); pTableDados.addCell(cellDados); cellDados = new PdfPCell(new Phrase("Unit price", fontCorpoNG)); cellDados.setHorizontalAlignment(Element.ALIGN_CENTER); pTableDados.addCell(cellDados); cellDados = new PdfPCell(new Phrase("AMT (STD)", fontCorpoNG)); cellDados.setHorizontalAlignment(Element.ALIGN_CENTER); pTableDados.addCell(cellDados); Double toPa = 0.0; for (int j = 0; j < total; j++) { int tLinha = toString(mapList.get(j).get(DESCRICAOPAGAMENTO)).split("\n").length; float pad = setPadding(total, tLinha); cellDados = new PdfPCell(new Phrase((j + 1) + "", fontCorpo)); cellDados.setPaddingBottom(pad); cellDados.setVerticalAlignment(Element.ALIGN_MIDDLE); cellDados.setPaddingTop(pad); pTableDados.addCell(cellDados); cellDados = new PdfPCell(new Phrase(toInt(mapList.get(j).get(QUANTIDADE)) + "", fontCorpo)); cellDados.setPaddingBottom(pad); cellDados.setVerticalAlignment(Element.ALIGN_MIDDLE); cellDados.setPaddingTop(pad); pTableDados.addCell(cellDados); cellDados = new PdfPCell(new Phrase(toString(mapList.get(j).get(DESCRICAOPAGAMENTO)), fontCorpo)); cellDados.setPaddingBottom(pad); cellDados.setVerticalAlignment(Element.ALIGN_MIDDLE); cellDados.setPaddingTop(pad); pTableDados.addCell(cellDados); cellDados = new PdfPCell(new Phrase(toMoeda( (toDouble(mapList.get(j).get(VALORPAGAMENTO)) / (float) toInt(mapList.get(j).get(QUANTIDADE))), toString(mapList.get(j).get(SIGLA))), fontCorpo)); cellDados.setPaddingBottom(pad); cellDados.setVerticalAlignment(Element.ALIGN_MIDDLE); cellDados.setPaddingTop(pad); pTableDados.addCell(cellDados); cellDados = new PdfPCell(new Phrase( toMoeda(toDouble(mapList.get(j).get(VALORPAGAMENTO)), toString(mapList.get(j).get(SIGLA))), fontCorpo)); cellDados.setPaddingBottom(pad); cellDados.setVerticalAlignment(Element.ALIGN_MIDDLE); cellDados.setPaddingTop(pad); pTableDados.addCell(cellDados); toPa += toDouble(mapList.get(j).get(VALORPAGAMENTO)); } // 5.6f,5.6f,53.5f,17.95f,19.45f PdfPTable pTableRodape = new PdfPTable(new float[] { 5.6f, 6.05f, 19.795f, 33.705f, 17.95f, 19f }); pTableRodape.setWidthPercentage(95f); cellDados = new PdfPCell(new Phrase(" ", fontCorpoNG)); pTableRodape.addCell(cellDados); cellDados = new PdfPCell(new Phrase("CODE", fontCorpoNG)); pTableRodape.addCell(cellDados); cellDados = new PdfPCell(new Phrase(toString(mapList.get(0).get(DOCFORMAPAGAMENTO)), fontCorpoNG)); pTableRodape.addCell(cellDados); cellDados = new PdfPCell(new Phrase(toString(mapList.get(0).get(DESCRICAOCONTABANCO)), fontCorpoNG)); pTableRodape.addCell(cellDados); cellDados = new PdfPCell(new Phrase("TOTAL", fontCorpoNG)); pTableRodape.addCell(cellDados); cellDados = new PdfPCell(new Phrase(toMoeda(toPa, toString(mapList.get(0).get(SIGLA))), fontCorpoNG)); pTableRodape.addCell(cellDados); documento.add(pTableDados); documento.add(pTableRodape); PdfPTable pTableAssiEstenso = new PdfPTable(new float[] { 100f }); pTableAssiEstenso.setWidthPercentage(95f); PdfPCell cellAssiEstenso = new PdfPCell(); Paragraph pAssiEstenso = new Paragraph(); PdfPTable pTableResposavel = new PdfPTable(new float[] { 70, 30 }); pTableResposavel.setWidthPercentage(100f); PdfPCell cellResposavel = new PdfPCell(); cellResposavel .addElement(new Phrase("Requested by:_________________________________________", fontCorpoN)); cellResposavel.setPaddingTop(10f); cellResposavel.setPaddingBottom(20f); cellResposavel.setBorder(0); pTableResposavel.addCell(cellResposavel); cellResposavel = new PdfPCell(); cellResposavel.addElement(new Phrase(" HOD:___________________", fontCorpoN)); cellResposavel.setPaddingTop(10f); cellResposavel.setPaddingBottom(20f); cellResposavel.setBorder(0); pTableResposavel.addCell(cellResposavel); cellResposavel = new PdfPCell(); cellResposavel .addElement(new Phrase("Approveds by:_________________________________________", fontCorpoN)); cellResposavel.setPaddingTop(-5f); cellResposavel.setPaddingBottom(20f); cellResposavel.setBorder(0); pTableResposavel.addCell(cellResposavel); cellResposavel = new PdfPCell(); cellResposavel.addElement(new Phrase(" Date:___________________", fontCorpoN)); cellResposavel.setPaddingTop(-5f); cellResposavel.setPaddingBottom(20f); cellResposavel.setBorder(0); pTableResposavel.addCell(cellResposavel); pAssiEstenso.add(pTableResposavel); cellAssiEstenso.addElement(pAssiEstenso); PdfPTable pTableExteso = new PdfPTable(new float[] { 25f, 75f }); pTableExteso.setWidthPercentage(100f); JTextPane jtp = new JTextPane(); Moeda.EscreverEstenso(toPa, jtp, ((mapList.size() > 0) ? toString(mapList.get(0).get(MOEDA)) : "")); PdfPCell cellExteso = new PdfPCell(new Phrase("Recived the sum of", fontCorpoN)); cellExteso.setBorder(0); pTableExteso.addCell(cellExteso); cellExteso = new PdfPCell(new Phrase(jtp.getText().toUpperCase().trim(), fontCorpoU)); cellExteso.setBorder(0); pTableExteso.addCell(cellExteso); pAssiEstenso.add(pTableExteso); PdfPTable pTableAss = new PdfPTable(new float[] { 45f, 55f }); pTableAss.setWidthPercentage(100f); PdfPCell cellAss = new PdfPCell(new Phrase(" ______________", fontCorpoN)); cellAss.setPaddingTop(15f); cellAss.setHorizontalAlignment(Element.ALIGN_CENTER); cellAss.setBorder(0); cellAss.setPaddingBottom(0f); pTableAss.addCell(cellAss); cellAss = new PdfPCell(new Phrase(" ____________________________________________", fontCorpoN)); cellAss.setPaddingTop(15f); cellAss.setPaddingBottom(0f); cellAss.setHorizontalAlignment(Element.ALIGN_CENTER); cellAss.setBorder(0); pTableAss.addCell(cellAss); cellAss = new PdfPCell(new Phrase("Date", fontCorpoN)); cellAss.setHorizontalAlignment(Element.ALIGN_CENTER); cellAss.setBorder(0); pTableAss.addCell(cellAss); cellAss = new PdfPCell(new Phrase("Receiver name & signature", fontCorpoN)); cellAss.setHorizontalAlignment(Element.ALIGN_CENTER); cellAss.setBorder(0); pTableAss.addCell(cellAss); pTableAss.setHorizontalAlignment(Element.ALIGN_CENTER); pAssiEstenso.add(pTableAss); pAssiEstenso.setAlignment(Element.ALIGN_CENTER); pAssiEstenso.add(new Phrase( "NOTA: Um recibo oficial pode ser obtido por um pagamento e informado na parte inversa deste comprovativo.\n\n", fontCorpoN)); cellAssiEstenso = new PdfPCell(); cellAssiEstenso.addElement(pAssiEstenso); pTableAssiEstenso.addCell(cellAssiEstenso); documento.add(pTableAssiEstenso); documento.close(); reString = "../Documentos/" + user + "/Pagamentos/" + "Pagamentos Func " + Ddata + ".pdf"; return reString; } catch (FileNotFoundException | DocumentException ex) { Logger.getLogger(FuncPagamento.class.getName()).log(Level.SEVERE, null, ex); } return reString; } private float setPadding(float total, int linha) { return ((((75 / (2)) / total) - (linha * total)) < 0) ? 0 : (((75 / (2)) / total) - (linha * total)); } static class MyFooter extends PdfPageEventHelper { @Override public void onStartPage(PdfWriter writer, Document document) { try { PdfContentByte canvas = writer.getDirectContentUnder(); Image image = Image.getInstance("rodape.png"); image.scaleAbsolute(PageSize.A4.rotate()); image.scaleToFit(550f, 400f); image.setAbsolutePosition(60, 195); canvas.saveState(); PdfGState state = new PdfGState(); state.setFillOpacity(0.15f); canvas.setGState(state); canvas.addImage(image); canvas.restoreState(); } catch (BadElementException | IOException ex) { Logger.getLogger(ReciboPagamento.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(ReciboPagamento.class.getName()).log(Level.SEVERE, null, ex); } } } class MyFooterA5 extends PdfPageEventHelper { @Override public void onStartPage(PdfWriter writer, Document document) { try { PdfContentByte canvas = writer.getDirectContentUnder(); Image image = Image.getInstance("rodape.png"); image.scaleAbsolute(PageSize.A4); image.scaleToFit(300f, 250f); image.setAbsolutePosition(145, 530); canvas.saveState(); PdfGState state = new PdfGState(); state.setFillOpacity(0.15f); canvas.setGState(state); canvas.addImage(image); canvas.restoreState(); } catch (BadElementException | IOException ex) { Logger.getLogger(ReciboPagamento.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(ReciboPagamento.class.getName()).log(Level.SEVERE, null, ex); } } } public static void main(String[] args) { // new FuncPagamento().criarDoc("ah", "105", "Ahmed Ferreira", 1); FuncPagamento.folhaPagamentoOnlyMovCre("ah", "105", "Ahmed Ferreira", 1); } public ArrayList<HashMap<String, Object>> getObj(String numPagamento) { ArrayList<HashMap<String, Object>> listMap = new ArrayList<>(); HashMap<String, Object> mapLista = new HashMap<>(); ResultSet rs = Call.selectFrom("VER_PAGAMENTO_ITEMS where \"PAGAMENTO\" = ?", "*", numPagamento); Consumer<HashMap<String, Object>> act = (map) -> { mapLista.putAll(map); listMap.add(new HashMap<>(mapLista)); }; Call.forEchaResultSet(act, rs); return listMap; } static private ArrayList<HashMap<String, Object>> setObj(String numPagamento, Object ob) { ArrayList<HashMap<String, Object>> listMap = new ArrayList<>(); HashMap<String, Object> mapLista; SimpleDateFormat sdf = new SimpleDateFormat("dd 'de' MMMM 'de' yyyy", new Locale("pt", "BR")); if (ob instanceof CreditoDebito) { CreditoDebito cd = (CreditoDebito) ob; mapLista = new HashMap<>(); ContaBanco cb = new ContaBanco(cd.getConta()); mapLista.put(BENEFICIARIO, cb.NUMEROBANCARIO); mapLista.put(DESCRICAOPAGAMENTO, "Novo " + (cd.getTipo().equals("1") ? "Credito" : "Debito") + " efetuado para a conta " + cb.NUMEROBANCARIO + " em " + sdf.format(new Date())); mapLista.put(VALORPAGAMENTO, cd.getValor()); mapLista.put(CODIGOCONTAPAGAMENTO, cb.NUMEROBANCARIO); mapLista.put(TITULOCONTAPAGAMENTO, cb.DESCRICAO); mapLista.put(DESCRICAOCONTABANCO, cb.BANCO + " " + cb.SIGLA + " " + cb.TIPOMOVIMENTO); mapLista.put(DOCFORMAPAGAMENTO, cd.getNumeroDucumento()); mapLista.put(MOEDA, cb.NOMEMOEDA); mapLista.put(SIGLA, cb.SIGLA); mapLista.put(PAGAMENTO, numPagamento); } else { Movimento m = (Movimento) ob; mapLista = new HashMap<>(); ContaBanco cb1 = new ContaBanco(m.getPara()); ContaBanco cb2 = new ContaBanco(m.getDe()); float valor = Float.valueOf(m.getValor()); float taxa = 1; if (!cb2.SIGLA.equals(cb1.SIGLA)) { int id1 = Moeda.getIdMoedaBySigla(cb1.SIGLA); int id2 = Moeda.getIdMoedaBySigla(cb2.SIGLA); taxa = Moeda.getTaxaMoeda(id2, id1, new Date()); valor *= taxa; } mapLista.put(BENEFICIARIO, cb1.NUMEROBANCARIO); mapLista.put(DESCRICAOPAGAMENTO, m.getDescricao() + "\nTransferncia de " + Moeda.format(Double.valueOf(m.getValor())) + " " + cb2.SIGLA + " da Conta " + cb2.NUMEROBANCARIO + " para " + cb1.NUMEROBANCARIO + ((!cb2.SIGLA.equals(cb1.SIGLA)) ? "\nCmbio do dia: 1 " + cb2.SIGLA + " = " + Moeda.format(taxa) + " " + cb1.SIGLA + " equivalente a " + Moeda.format(valor) + " " + cb1.SIGLA + " em " + sdf.format(new Date()) : " em " + sdf.format(new Date()))); mapLista.put(VALORPAGAMENTO, m.getValor()); mapLista.put(CODIGOCONTAPAGAMENTO, cb1.NUMEROBANCARIO); mapLista.put(TITULOCONTAPAGAMENTO, cb1.DESCRICAO); mapLista.put(DESCRICAOCONTABANCO, cb2.BANCO + " " + cb2.SIGLA + " " + cb2.TIPOMOVIMENTO); // mapLista.put(DOCFORMAPAGAMENTO, "10"); mapLista.put(MOEDA, cb2.NOMEMOEDA); mapLista.put(SIGLA, cb2.SIGLA); mapLista.put(PAGAMENTO, numPagamento); } listMap.add(mapLista); return listMap; } public static String toMoeda(Object o, String moeda) { if (o != null) { return Moeda.format(Double.valueOf(o.toString())) + " " + moeda; } else { return " "; } } public static String toString(Object o) { return ((o != null) ? o.toString() : ""); } public static Double toDouble(Object o) { return ((o != null) ? Double.valueOf(o.toString()) : 0); } public static int toInt(Object o) { return ((o != null) ? Integer.valueOf(o.toString()) : 0); } public static String toData(Object o, int i) { SimpleDateFormat sdfout = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy"); SimpleDateFormat sdf1 = new SimpleDateFormat("MMMM '('dd/MM/yyyy')'", new Locale("pt", "BR")); if (o != null) { try { return (i == 2) ? sdf1.format(sdfout.parse(o.toString())) : sdf2.format(sdfout.parse(o.toString())); } catch (ParseException ex) { return " "; } } else { return " "; } } public static String folhaPagamentoOnlyMovCre(String numPagamento, String user, String nomeUser, Object ob) throws NumberFormatException { try { SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy hh'.'mm'.'ss"); Font fontCabecalhoN = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 9.5f); Font fontCorpo = FontFactory.getFont(ConfigDoc.Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 9f); Font fontCorpoP = FontFactory.getFont(ConfigDoc.Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 8f); Font fontCorpoN = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 9f); Font fontCorpoNU = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 9f, Font.UNDERLINE); Font fontCorpoNG = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 11.5f); Font fontCorpoNGT = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 13f, Font.UNDERLINE); Font fontCabecalhoNG = FontFactory.getFont(ConfigDoc.Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 16f, Font.UNDERLINE); ArrayList<HashMap<String, Object>> mapList = setObj(numPagamento, ob); Document documento = new Document(); documento.setPageSize(PageSize.A4); documento.setMargins(20f, 20f, 10f, 5f); String Ddata = sdf1.format(new Date()); int size = mapList.size(), i = 0; File ff = new File(ConfigDoc.Fontes.getDiretorio() + "/" + user + "/Pagamentos/"); ff.mkdirs(); ff = new File(ff.getAbsoluteFile() + "/" + "Pagamentos Func " + Ddata + ".pdf"); OutputStream outputStraem = new FileOutputStream(ff); PdfWriter writer = PdfWriter.getInstance(documento, outputStraem); MyFooter event = new MyFooter(); writer.setPageEvent(event); documento.open(); for (HashMap<String, Object> hashMap : mapList) { i++; PdfPTable pTableEmpresaPricipal = new PdfPTable(new float[] { 25f, 75f }); pTableEmpresaPricipal.setWidthPercentage(90); PdfPTable pTableEmpresaInforImpres1 = new PdfPTable(1); PdfPTable pTableEmpresaInforImpres5 = new PdfPTable(1); PdfPTable pTableNull = new PdfPTable(1); PdfPCell cellNull = new PdfPCell(new Phrase(" ", fontCorpoP)); cellNull.setBorder(0); pTableNull.addCell(cellNull); PdfPCell pCellNomeEmpresa = new PdfPCell(new Phrase(ConfigDoc.Empresa.NOME, fontCabecalhoNG)); pCellNomeEmpresa.setBorder(0); PdfPCell pCellNomeEndereco = new PdfPCell(new Phrase(ConfigDoc.Empresa.ENDERECO, fontCabecalhoN)); pCellNomeEndereco.setBorder(0); PdfPCell pCellCaixaPostal = new PdfPCell(new Phrase(ConfigDoc.Empresa.CAIXAPOSTAL, fontCabecalhoN)); pCellCaixaPostal.setBorder(0); PdfPCell pCellTeleFax = new PdfPCell( new Phrase(ConfigDoc.Empresa.TELEFAX + " " + ConfigDoc.Empresa.EMAIL, fontCabecalhoN)); pCellTeleFax.setBorder(0); PdfPCell pCellSociedade = new PdfPCell(new Phrase(ConfigDoc.Empresa.SOCIEDADE, fontCabecalhoN)); pCellSociedade.setBorder(0); Image imageEmpresa = Image.getInstance("logo.png"); imageEmpresa.scaleToFit(120f, 85f); pTableEmpresaInforImpres1.addCell(pCellNomeEmpresa); pTableEmpresaInforImpres1.addCell(pCellNomeEndereco); pTableEmpresaInforImpres1.addCell(pCellCaixaPostal); pTableEmpresaInforImpres1.addCell(pCellTeleFax); pTableEmpresaInforImpres1.addCell(pCellSociedade); PdfPCell cellTabela3 = new PdfPCell(pTableEmpresaInforImpres1); cellTabela3.setBorder(0); pTableEmpresaInforImpres5.addCell(cellTabela3); PdfPCell cellTabela5 = new PdfPCell(pTableEmpresaInforImpres5); cellTabela5.setBorder(0); PdfPCell cellTabela6 = new PdfPCell(imageEmpresa); cellTabela6.setBorder(0); pTableEmpresaPricipal.addCell(cellTabela6); pTableEmpresaPricipal.addCell(cellTabela5); documento.add(pTableEmpresaPricipal); documento.add(pTableNull); documento.add(pTableNull); PdfPTable pTableTitulo = new PdfPTable(new float[] { 50, 50 }); pTableTitulo.setWidthPercentage(90f); PdfPCell cellTitulo = new PdfPCell(new Phrase("Comprovativo de Pagamento", fontCorpoNGT)); cellTitulo.setBorder(0); cellTitulo.setHorizontalAlignment(Element.ALIGN_RIGHT); cellTitulo.setPaddingRight(-80f); cellTitulo.setPaddingTop(-26f); pTableTitulo.addCell(cellTitulo); cellTitulo = new PdfPCell(new Phrase("N: " + hashMap.get(PAGAMENTO), fontCorpoNGT)); cellTitulo.setHorizontalAlignment(Element.ALIGN_RIGHT); cellTitulo.setBorder(0); cellTitulo.setPaddingBottom(5f); pTableTitulo.addCell(cellTitulo); documento.add(pTableTitulo); PdfPTable pTableAno = new PdfPTable(new float[] { 100 }); pTableAno.setWidthPercentage(90f); SimpleDateFormat sdfVeiw = new SimpleDateFormat("MMMM '('dd/MM/yyyy')'", new Locale("pt", "BR")); PdfPCell cellAno = new PdfPCell(new Phrase(sdfVeiw.format(new Date()), fontCorpoNGT)); cellAno.setBorder(0); cellAno.setPaddingBottom(20f); pTableAno.addCell(cellAno); documento.add(pTableAno); PdfPTable pTableDetalhesPagamento = new PdfPTable(new float[] { 100 }); pTableDetalhesPagamento.setWidthPercentage(90f); PdfPCell cellDetalhesPagamento = new PdfPCell(); Paragraph pDetalhesPagamento = new Paragraph(); pDetalhesPagamento.add(new Paragraph("\nDetalhes de Pagamento ", fontCorpoNG)); pDetalhesPagamento.add(new Phrase("Beneficirio: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(toString(hashMap.get(BENEFICIARIO)) + "\n", fontCorpo)); pDetalhesPagamento.add(new Phrase("Descrio do pagamento: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(toString(hashMap.get(DESCRICAOPAGAMENTO)), fontCorpo)); pDetalhesPagamento.add(new Paragraph("CONFORME APROVADO\n\n", fontCorpoN)); pDetalhesPagamento.add(new Paragraph("Valor Pagamento", fontCorpoNG)); pDetalhesPagamento.add(new Phrase("Valor Numerico: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase( toMoeda(hashMap.get(VALORPAGAMENTO), toString(hashMap.get(SIGLA))) + "\n", fontCorpo)); System.err.println(toString(hashMap.get(RETENCAOFONTE)) + " hfhfh retensao"); if (toString(hashMap.get(RETENCAOFONTE)).trim().equals("1")) { double ret = getValorImportRetensao(); pDetalhesPagamento.add(new Phrase("Valor Retensao Fonte: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(toMoeda(ret, "%") + "\n", fontCorpo)); pDetalhesPagamento.add(new Phrase("Valor Retido: ", fontCorpoN)); double valret = toDouble(hashMap.get(VALORPAGAMENTO)) * ret; pDetalhesPagamento .add(new Phrase(toMoeda(valret, toString(hashMap.get(SIGLA))) + "\n", fontCorpo)); } JTextPane jtp = new JTextPane(); Double valor = Double.valueOf((hashMap.get(VALORPAGAMENTO) + "")); Moeda.EscreverEstenso(valor, jtp, toString(hashMap.get(MOEDA))); pDetalhesPagamento.add(new Phrase("Valor por Extenso: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(jtp.getText().trim() + " \n\n", fontCorpo)); pDetalhesPagamento.add(new Paragraph("Descrio da Conta", fontCorpoNG)); pDetalhesPagamento.add(new Phrase("Cod Conta: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(hashMap.get(CODIGOCONTAPAGAMENTO) + "\n", fontCorpo)); pDetalhesPagamento.add(new Phrase("Titulo da Conta: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(hashMap.get(TITULOCONTAPAGAMENTO) + "\n", fontCorpo)); /** * For alter */ // pDetalhesPagamento.add(new Phrase("Forma de Pagamento: ", fontCorpoN)); // pDetalhesPagamento.add(new Phrase(hashMap.get(FORMAPAGAMENTO) + " \n", fontCorpo)); pDetalhesPagamento.add(new Phrase("Documento de Pagamento: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(toString(hashMap.get(DESCRICAOCONTABANCO)) + " - " + toString(hashMap.get(DOCFORMAPAGAMENTO)) + "\n\n", fontCorpo)); pDetalhesPagamento.add(new Paragraph(" ", fontCorpoN)); cellDetalhesPagamento.addElement(pDetalhesPagamento); pTableDetalhesPagamento.addCell(cellDetalhesPagamento); cellDetalhesPagamento = new PdfPCell(); pDetalhesPagamento = new Paragraph(); pDetalhesPagamento.add(new Paragraph(" ", fontCorpo)); pDetalhesPagamento.add(new Phrase("Preparado por: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(nomeUser + " ", fontCorpoP)); pDetalhesPagamento.add(new Phrase(" Examinado por", fontCorpoN)); pDetalhesPagamento.add(new Phrase("____________________\n", fontCorpo)); pDetalhesPagamento.add(new Paragraph(" ", fontCorpoN)); pDetalhesPagamento.add(new Paragraph("Pagamento Autorizado por:", fontCorpoNG)); pDetalhesPagamento.add(new Paragraph(" ", fontCorpoN)); pDetalhesPagamento.add(new Phrase("Assinatura: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(" ____________________________________________", fontCorpo)); pDetalhesPagamento.add(new Phrase(" Data ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(" ______________________\n\n", fontCorpo)); pDetalhesPagamento.add(new Phrase("Assinatura: ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(" ____________________________________________", fontCorpo)); pDetalhesPagamento.add(new Phrase(" Data ", fontCorpoN)); pDetalhesPagamento.add(new Phrase(" ______________________\n", fontCorpo)); pDetalhesPagamento.add(new Paragraph(" ", fontCorpo)); pDetalhesPagamento.add(new Paragraph( "............................................................................." + "...........................................................................", fontCorpoN)); pDetalhesPagamento.add(new Paragraph(" ", fontCorpo)); Paragraph pReceip = new Paragraph("RECIBO", fontCorpoN); pReceip.setAlignment(Element.ALIGN_CENTER); pDetalhesPagamento.add(pReceip); pDetalhesPagamento.add(new Paragraph(" ", fontCorpo)); pDetalhesPagamento.add(new Phrase("Recebi o valor de: ", fontCorpo)); pDetalhesPagamento.add(new Phrase(jtp.getText() + " \n", fontCorpoNU)); pDetalhesPagamento.add(new Paragraph(" ", fontCorpoN)); PdfPTable pTableNumCheque = new PdfPTable( new float[] { 33.3333333333f, 33.3333333333f, 33.3333333333f }); pTableNumCheque.setWidthPercentage(90f); pTableNumCheque.setWidthPercentage(100f); PdfPCell cellNumCheque = new PdfPCell(new Phrase("_______________________", fontCorpo)); cellNumCheque.setBorder(0); cellNumCheque.setHorizontalAlignment(Element.ALIGN_CENTER); pTableNumCheque.addCell(cellNumCheque); cellNumCheque = new PdfPCell(new Phrase("_______________________", fontCorpo)); cellNumCheque.setBorder(0); cellNumCheque.setHorizontalAlignment(Element.ALIGN_CENTER); pTableNumCheque.addCell(cellNumCheque); cellNumCheque = new PdfPCell(new Phrase("_______________________", fontCorpo)); cellNumCheque.setBorder(0); cellNumCheque.setHorizontalAlignment(Element.ALIGN_CENTER); pTableNumCheque.addCell(cellNumCheque); cellNumCheque = new PdfPCell(new Phrase("Cheque No.", fontCorpoN)); cellNumCheque.setBorder(0); cellNumCheque.setHorizontalAlignment(Element.ALIGN_CENTER); pTableNumCheque.addCell(cellNumCheque); cellNumCheque = new PdfPCell(new Phrase("Data", fontCorpoN)); cellNumCheque.setBorder(0); cellNumCheque.setHorizontalAlignment(Element.ALIGN_CENTER); pTableNumCheque.addCell(cellNumCheque); cellNumCheque = new PdfPCell(new Phrase("Receiver Name & Signature", fontCorpoN)); cellNumCheque.setBorder(0); cellNumCheque.setHorizontalAlignment(Element.ALIGN_CENTER); pTableNumCheque.addCell(cellNumCheque); pDetalhesPagamento.add(pTableNumCheque); pDetalhesPagamento.add(new Phrase( "\nNOTA: Um recibo oficial pode ser obtido por um pagamento e informado na parte inversa deste comprovativo. \n\n", fontCorpo)); cellDetalhesPagamento.addElement(pDetalhesPagamento); pTableDetalhesPagamento.addCell(cellDetalhesPagamento); documento.add(pTableDetalhesPagamento); if (i != size) { documento.newPage(); } } documento.close(); String ret = "../Documentos/" + user + "/Pagamentos/" + "Pagamentos Func " + Ddata + ".pdf"; RequestContext.getCurrentInstance().execute("openAllDocument('" + ret + "')"); return ret; } catch (BadElementException | IOException ex) { Logger.getLogger(FuncPagamento.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(FuncPagamento.class.getName()).log(Level.SEVERE, null, ex); } return null; } private static class ContaBanco { String ID; String DESCRICAO; String SIGLA; String BANCO; String NUMEROBANCARIO; String TIPOCONTA; String TIPOMOVIMENTO; String SALDO; String DEBITO; String CREDITO; String ESTADO; String NOMEMOEDA; String ID_ = "ID"; String DESCRICAO_ = "DESCRICAO"; String SIGLA_ = "MOEDA"; String BANCO_ = "BANCO"; String NUMEROBANCARIO_ = "NUMERO BANCARIO"; String TIPOCONTA_ = "TIPO CONTA"; String TIPOMOVIMENTO_ = "TIPO MOVIMENTO"; String SALDO_ = "SALDO"; String DEBITO_ = "DEBITO"; String CREDITO_ = "CREDITO"; String ESTADO_ = "ESTADO"; String NOMEMOEDA_ = "NOME MOEDA"; public ContaBanco(String ID) { this.ID = ID; ResultSet rs = Call .selectFrom("VER_CONTA_CONTABIL WHERE \"TIPO CONTA\"='Conta Banco' and ID ='" + ID + "'", "*"); Consumer<HashMap<String, Object>> act = (map) -> { this.DESCRICAO = FuncPagamento.toString(map.get(this.DESCRICAO_)); this.SIGLA = FuncPagamento.toString(map.get(this.SIGLA_)); this.NOMEMOEDA = FuncPagamento.toString(map.get(this.NOMEMOEDA_)); this.BANCO = FuncPagamento.toString(map.get(this.BANCO_)); this.NUMEROBANCARIO = FuncPagamento.toString(map.get(this.NUMEROBANCARIO_)); this.TIPOCONTA = FuncPagamento.toString(map.get(this.TIPOCONTA_)); this.TIPOMOVIMENTO = FuncPagamento.toString(map.get(this.TIPOMOVIMENTO_)); this.SALDO = FuncPagamento.toString(map.get(this.SALDO_)); this.DEBITO = FuncPagamento.toString(map.get(this.DEBITO_)); this.CREDITO = FuncPagamento.toString(map.get(this.CREDITO_)); this.ESTADO = FuncPagamento.toString(map.get(this.ESTADO_)); }; Call.forEchaResultSet(act, rs); } } public static Double getValorImportRetensao() { Object re = Call.callSampleFunction("FUNC_GET_IMPOSTO_TAXA_VALOR", Types.FLOAT, "RETENCAO"); Double ret = ((re != null) ? Double.valueOf(re.toString()) : 0); return ret; } }