List<LibroGiornaleFooterTotaliPaginaFile> listaFooterTotaliPagina = new ArrayList<LibroGiornaleFooterTotaliPaginaFile>();
List<LibroGiornaleFooterTotaliRiportoFile> listaFooterTotaliRiporto = new ArrayList<LibroGiornaleFooterTotaliRiportoFile>();
ByteArrayOutputStream txtfinale = new ByteArrayOutputStream();
FileCreatorFromClass fileCreator = new FileCreatorFromClass();
ParametroSocieta psoc = dominiFacade.getParametroSocieta("PSOC");
SimpleDateFormat sdfAnno = new SimpleDateFormat("yyyy");
Double riportiDare = null;
Double riportiAvere = null;
Double sommadare=0d;
Double sommaavere=0d;
int contapag = 0;
int contarighe = 0;
Integer numeroPagina = 0;
String rigatrattini="----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------";
String rigasemitrat=" -------------------------------------------------";
try{
log.debug("codiceSocietaVeicolo : " + codiceSocietaVeicolo);
log.debug("primoNumeroBollatoDaStampare.longValue() : " + primoNumeroBollatoDaStampare.longValue());
log.debug("dataInizioEsercizio : " + dataInizioEsercizio);
log.debug("stampareSinoAllaData : " + stampareSinoAllaData);
numeroPagina = primaPaginaDaStampare;
if(primoNumeroBollatoDaStampare == null) primoNumeroBollatoDaStampare = 1;
riportiDare = contabilitaFacade.getRiportiDareLibroGiornale(codiceSocietaVeicolo, primoNumeroBollatoDaStampare.longValue(), dataInizioEsercizio, stampareSinoAllaData);
riportiAvere = contabilitaFacade.getRiportiAvereLibroGiornale(codiceSocietaVeicolo, primoNumeroBollatoDaStampare.longValue(), dataInizioEsercizio, stampareSinoAllaData);
log.debug("riportiDare : " + riportiDare);
log.debug("riportiAvere : " + riportiAvere);
if(riportiDare==null)riportiDare=0d;
if(riportiAvere==null)riportiAvere=0d;
}catch (ImpossibileCercareMovimentoContabileException e) {
e.printStackTrace();
}
for(LibroGiornale lista : listaStampa){
if(contapag==0){
LibroGiornaleHeaderPaginaFile headerPagina = new LibroGiornaleHeaderPaginaFile();
String ragioneSociale="";
if(psoc.getRagioneSociale()!=null){
if(psoc.getRagioneSociale().length()>26) ragioneSociale=(psoc.getRagioneSociale()).substring(0,26);
else ragioneSociale = psoc.getRagioneSociale();
}
headerPagina.setRagioneSociale(StringUtility.rpad(ragioneSociale,40,' '));
headerPagina.setDescrizioneTitolo(StringUtility.rpad(messageBundle.getMessage("TextLGStampaDescrizioneTitolo"),108,' '));
headerPagina.setPagina(messageBundle.getMessage("TextStampaPagina") + " " +
sdfAnno.format(stampareSinoAllaData)+"/" + " " + numeroPagina);
listaHeaderPagina.add(headerPagina);
ByteArrayOutputStream xmlheaderpagina = fileCreator.creaStreamXmlDaClasse(listaHeaderPagina, LibroGiornaleHeaderPaginaFile.class);
ByteArrayOutputStream txtheaderpagina = fileCreator.creaStreamTxtDaXml(xmlheaderpagina);
txtheaderpagina.writeTo(txtfinale);
// System.out.println("headerPagina");
LibroGiornaleHeaderColonneFile headerColonne = new LibroGiornaleHeaderColonneFile();
headerColonne.setTestataNumeroRiga(StringUtility.rpad(messageBundle.getMessage("TextLGStampaNumeroRiga"),12,' '));
headerColonne.setTestataDataLibroGiornale(StringUtility.rpad(messageBundle.getMessage("TextLGStampaData"),11,' '));
headerColonne.setTestataGruppoMastroConto(StringUtility.rpad(messageBundle.getMessage("TextLGStampaGruppoMastroConto"),17,' '));
headerColonne.setTestataDescrizioneConto(StringUtility.rpad(messageBundle.getMessage("TextLGStampaDescrizioneConto"),51,' '));
headerColonne.setTestataOperazione(StringUtility.rpad(messageBundle.getMessage("TextLGStampaOperazione"),6,' '));
headerColonne.setTestataDescrizioneOperazione(StringUtility.rpad(messageBundle.getMessage("TextLGStampaDescrizioneOperazione"),92,' '));
headerColonne.setTestataDare(StringUtility.rpad(messageBundle.getMessage("TextLGStampaDare"),20,' '));
headerColonne.setTestataAvere(StringUtility.rpad(messageBundle.getMessage("TextLGStampaAvere"),5,' '));
listaHeaderColonne.add(headerColonne);
ByteArrayOutputStream xmlheadercolonne = fileCreator.creaStreamXmlDaClasse(listaHeaderColonne, LibroGiornaleHeaderColonneFile.class);
ByteArrayOutputStream txtheadercolonne = fileCreator.creaStreamTxtDaXml(xmlheadercolonne);
txtheadercolonne.writeTo(txtfinale);
// System.out.println("headerColonne");
// try{
//
// log.debug("codiceSocietaVeicolo : " + codiceSocietaVeicolo);
// log.debug("primoNumeroBollatoDaStampare.longValue() : " + primoNumeroBollatoDaStampare.longValue());
// log.debug("dataInizioEsercizio : " + dataInizioEsercizio);
// log.debug("stampareSinoAllaData : " + stampareSinoAllaData);
//
// if(primoNumeroBollatoDaStampare == null) primoNumeroBollatoDaStampare = 1;
// riportiDare = contabilitaFacade.getRiportiDareLibroGiornale(codiceSocietaVeicolo, primoNumeroBollatoDaStampare.longValue(), dataInizioEsercizio, stampareSinoAllaData);
// riportiAvere = contabilitaFacade.getRiportiAvereLibroGiornale(codiceSocietaVeicolo, primoNumeroBollatoDaStampare.longValue(), dataInizioEsercizio, stampareSinoAllaData);
// if(riportiDare==null)riportiDare=0d;
// if(riportiAvere==null)riportiAvere=0d;
//
// }catch (ImpossibileCercareMovimentoContabileException e) {
// e.printStackTrace();
// }
LibroGiornaleHeaderTotaliRiportoFile headerTotaliRiporto = new LibroGiornaleHeaderTotaliRiportoFile();
headerTotaliRiporto.setFillerInizioRiga(StringUtility.rpad("",148,' '));
headerTotaliRiporto.setRiporto(StringUtility.rpad(messageBundle.getMessage("TextLGStampaRiporto"),24,' '));
headerTotaliRiporto.setRiportoDare(StringUtility.lpad(NumberUtils.formattaNumeroMigliaia(riportiDare),21,' '));
headerTotaliRiporto.setRiportoAvere(StringUtility.lpad(NumberUtils.formattaNumeroMigliaia(riportiAvere),21,' '));
listaHeaderTotali.add(headerTotaliRiporto);
ByteArrayOutputStream xmlheadertotaliriporto = fileCreator.creaStreamXmlDaClasse(listaHeaderTotali, LibroGiornaleHeaderTotaliRiportoFile.class);
ByteArrayOutputStream txtheadertotaliriporto = fileCreator.creaStreamTxtDaXml(xmlheadertotaliriporto);
txtheadertotaliriporto.writeTo(txtfinale);
// System.out.println("headerTotaliRiporto");
fileCreator.inserisciRigaInTxt(txtfinale, rigatrattini);
}
LibroGiornaleBodyFile bodyfile = new LibroGiornaleBodyFile();
bodyfile.setRigaDiStampa(lista.getRigaDiStampa());
listaBody.add(bodyfile);
// System.out.println("body " + contapag);
sommadare = sommadare + NumberUtils.checkNull(lista.getImportoDare());
sommaavere = sommaavere + NumberUtils.checkNull(lista.getImportoAvere());
contarighe++;
if(contapag==NUMERO_RIGHE_PER_PAGINA-1 || contarighe==listaStampa.size()){
riportiDare=riportiDare+sommadare;
riportiAvere=riportiAvere+sommaavere;
// System.out.println("contarighe : " + contarighe + " listaStampa.size() : " + listaStampa.size());
// aggiungo il body
ByteArrayOutputStream xmlbody = fileCreator.creaStreamXmlDaClasse(listaBody, LibroGiornaleBodyFile.class);
ByteArrayOutputStream txtbody = fileCreator.creaStreamTxtDaXml(xmlbody);
txtbody.writeTo(txtfinale);
// System.out.println("AGGIUNGO BODY " + contapag);
fileCreator.inserisciRigaInTxt(txtfinale, rigasemitrat);
// aggiungo i footer
LibroGiornaleFooterTotaliPaginaFile footerTotaliPagina = new LibroGiornaleFooterTotaliPaginaFile();
footerTotaliPagina.setFillerInizioRiga(StringUtility.rpad("",148,' '));
footerTotaliPagina.setTotalePagina(StringUtility.rpad(messageBundle.getMessage("TextLGStampaTotaliPagina"),17,' '));
footerTotaliPagina.setNumeroPagina(StringUtility.rpad(numeroPagina.toString(),7,' '));
footerTotaliPagina.setTotalePaginaDare(StringUtility.lpad(NumberUtils.formattaNumeroMigliaia(sommadare),21,' '));
footerTotaliPagina.setTotalePaginaAvere(StringUtility.lpad(NumberUtils.formattaNumeroMigliaia(sommaavere),21,' '));
listaFooterTotaliPagina.add(footerTotaliPagina);
ByteArrayOutputStream xmlfootertotalipagina = fileCreator.creaStreamXmlDaClasse(listaFooterTotaliPagina, LibroGiornaleFooterTotaliPaginaFile.class);
ByteArrayOutputStream txtfootertotalipagina = fileCreator.creaStreamTxtDaXml(xmlfootertotalipagina);
txtfootertotalipagina.writeTo(txtfinale);
// System.out.println("footerPagina");
fileCreator.inserisciRigaInTxt(txtfinale, rigatrattini);
LibroGiornaleFooterTotaliRiportoFile footerTotaliRiporto = new LibroGiornaleFooterTotaliRiportoFile();
footerTotaliRiporto.setFillerInizioRiga(StringUtility.rpad("",148,' '));
footerTotaliRiporto.setTotaleRiporto(StringUtility.rpad(messageBundle.getMessage("TextLGStampaTotaliDaRiportare"),24,' '));
footerTotaliRiporto.setTotaleRiportoDare(StringUtility.lpad(NumberUtils.formattaNumeroMigliaia(riportiDare),21,' '));
footerTotaliRiporto.setTotaleRiportoAvere(StringUtility.lpad(NumberUtils.formattaNumeroMigliaia(riportiAvere),21,' '));
listaFooterTotaliRiporto.add(footerTotaliRiporto);
ByteArrayOutputStream xmlfootertotaliriporto = fileCreator.creaStreamXmlDaClasse(listaFooterTotaliRiporto, LibroGiornaleFooterTotaliRiportoFile.class);
ByteArrayOutputStream txtfootertotaliriporto = fileCreator.creaStreamTxtDaXml(xmlfootertotaliriporto);
txtfootertotaliriporto.writeTo(txtfinale);
// System.out.println("footerTotaliRapporto");
fileCreator.inserisciRigaInTxt(txtfinale, null);
numeroPagina++;
}