posX = convert(10);
posY = convert(10);
page.addElement(drawHorizontalDottedLine(0, posY-4, convert(210)));
for(Billet billet : billets){
String valueDiscount = new Money(billet.getParcel().getValueAfterParcelDateExpiration()-billet.getParcel().getValueBeforeParcelDateExpiration()).getFormatedValue();
String responsableName = "";
String studentname = "";
studentname = billet.getPerson().getName();
if (ResponsableValidator.checkStudentUnderAge(new GDDate(billet.getPerson().getBirthDate()).getFormatedDate())) {
Student student = (Student) billet.getPerson().getPersonType("student");
responsableName = student.getResponsableName();
} else {
responsableName = billet.getPerson().getName();
}
page.addElement(drawRectangle(posX, posY, 145, 185, 0));
page.addElement(printImage("corporateLogo.jpg", posX+10, posY+3, 35 , 15));
page.addElement(drawVerticalLine(posX+70, posY+3, 14));
page.addElement(insertCenterBoldText(billet.getRegistration().getIdRegistration() + "-" + billet.getParcelId(), posX+70, posY+5, 50));
page.addElement(drawVerticalLine(posX+120, posY+3, 14));
page.addElement(drawHorizontalLine(posX, posY+20, 145));
page.addElement(insertNormalText("Parcela:", posX+5, posY+25, 90, 12));
page.addElement(insertBoldRightText(( billet.getParcelId().length() > 1 ? billet.getParcelId() : "0"+billet.getParcelId() ) + " / " + ( billet.getRegistration().getParcels().size() > 9 ? billet.getRegistration().getParcels().size() :"0"+billet.getRegistration().getParcels().size() ) , posX+40, posY+24, 100));
page.addElement(drawHorizontalLine(posX, posY+35, 145));
page.addElement(insertNormalText("Vencimento:", posX+5, posY+39, 90, 12));
page.addElement(insertBoldRightText(billet.getParcel().getDate(), posX+55, posY+39, 85));
page.addElement(drawHorizontalLine(posX, posY+50, 145));
page.addElement(insertNormalText("Valor at� Vencimento:", posX+5, posY+55, 90, 12));
page.addElement(insertBoldRightText(new Money(billet.getParcel().getValueBeforeParcelDateExpiration()).getFormatedValue(), posX+85, posY+54, 55));
page.addElement(drawHorizontalLine(posX, posY+65, 145));
page.addElement(insertNormalText("(+) Mora / Multa:", posX+5, posY+70, 90, 12));
page.addElement(drawHorizontalLine(posX, posY+80, 145));
page.addElement(insertNormalText("(+) Outros Acr�scimos:", posX+5, posY+85, 90, 12));
page.addElement(drawHorizontalLine(posX, posY+95, 145));
page.addElement(insertNormalText("(-) Desconto:", posX+5, posY+100, 90, 12));
page.addElement(drawHorizontalLine(posX, posY+110, 145));
page.addElement(insertNormalText("(-) Outros Abatimentos:", posX+5, posY+115, 90, 12));
page.addElement(drawHorizontalLine(posX, posY+125, 145));
page.addElement(insertNormalText("(=) Valor Cobrado:", posX+5, posY+130, 90, 12));
page.addElement(drawHorizontalLine(posX, posY+140, 145));
page.addElement(insertNormalText("Data Pagamento:", posX+5, posY+145, 90, 12));
page.addElement(drawHorizontalLine(posX, posY+155, 145));
page.addElement(insertNormalText("Sacado:", posX+5, posY+160, 90, 12));
page.addElement(insertNormalText(responsableName, posX+35, posY+160, 90, 12));
page.addElement(drawHorizontalLine(posX, posY+170, 145));
page.addElement(insertCenterBoldText("Recibo do Sacado", posX, posY+174, 150));
page.addElement(drawRectangle(posX+152, posY, 385, 185, 0));
page.addElement(drawVerticalLine(posX+160, posY+3, 14));
page.addElement(insertCenterBoldText(billet.getRegistration().getIdRegistration() + "-" + billet.getParcelId(), posX+160, posY+5, 50));
page.addElement(drawVerticalLine(posX+210, posY+3, 14));
page.addElement(drawVerticalDottedLine(posX+148, posY+1, 182));
page.addElement(insertNormalText("Aluno", posX+220, posY+7, 50, 12));
page.addElement(insertBoldText(studentname, posX+245, posY+6, 270));
page.addElement(drawHorizontalLine(posX+152, posY+20, 385));
page.addElement(insertNormalText("Local de Pagamento:", posX+155, posY+25, 90, 12));
String address = (String) gd.get("street") + ", " + (String) gd.get("streetnumber");
if (address.length()>35){
page.addElement(insertBoldText(" "+address.substring(0, 34), posX+160, posY+24, 240));
page.addElement(insertBoldText(address.substring(34, address.length()), posX+160, posY+39, 270));
}else{
page.addElement(insertBoldText(" "+address, posX+160, posY+24, 240));
}
page.addElement(insertNormalText("Parcela:", posX+410, posY+25, 40, 12));
page.addElement(insertBoldRightText( ( billet.getParcelId().length() > 1 ? billet.getParcelId() : "0"+billet.getParcelId() ) + " / " + ( billet.getRegistration().getParcels().size() > 9 ? billet.getRegistration().getParcels().size() :"0"+billet.getRegistration().getParcels().size() ), posX+445, posY+24, 87));
page.addElement(drawHorizontalLine(posX+152, posY+35, 385));
page.addElement(insertNormalText("Vencimento:", posX+410, posY+40, 70, 12));
page.addElement(insertBoldRightText(billet.getParcel().getDate(), posX+460, posY+39, 72));
page.addElement(drawHorizontalLine(posX+152, posY+50, 385));
page.addElement(insertNormalText("At� Vencimento:", posX+155, posY+55, 70, 12));
page.addElement(insertNormalText("Valor at� Vencimento R$:", posX+410, posY+55, 90, 12));
page.addElement(insertBoldRightText(new Money(billet.getParcel().getValueBeforeParcelDateExpiration()).getFormatedValue(), posX+490, posY+54, 42));
page.addElement(insertNormalText("(+) Mora / Multa:", posX+410, posY+70, 90, 12));
page.addElement(drawHorizontalLine(posX+405, posY+80, 130));
page.addElement(insertBoldText("Desconto de Pontualidade: "+valueDiscount, posX+230, posY+54, 155));
page.addElement(drawHorizontalLine(posX+152, posY+65, 385));
page.addElement(insertNormalText("Ap�s Vencimento:", posX+155, posY+70, 70, 12));