it.cnr.contab.docamm00.bp.ElaboraFileIntraBP Maven / Gradle / Ivy
/*
* Copyright (C) 2019 Consiglio Nazionale delle Ricerche
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package it.cnr.contab.docamm00.bp;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.rmi.RemoteException;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Iterator;
import javax.ejb.EJBException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.PageContext;
import it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk;
import it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession;
import it.cnr.contab.anagraf00.tabrif.bulk.EcfBulk;
import it.cnr.contab.anagraf00.tabter.bulk.ComuneBulk;
import it.cnr.contab.docamm00.docs.bulk.VIntra12Bulk;
import it.cnr.contab.docamm00.docs.bulk.VIntrastatBulk;
import it.cnr.contab.docamm00.ejb.ElaboraFileIntraComponentSession;
import it.cnr.contab.util.Utility;
import it.cnr.jada.action.*;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.persistency.IntrospectionException;
import it.cnr.jada.persistency.PersistencyException;
import it.cnr.jada.util.action.SimpleCRUDBP;
import it.cnr.jada.util.jsp.Button;
import it.cnr.jada.util.jsp.JSPUtils;
public class ElaboraFileIntraBP extends SimpleCRUDBP {
public ElaboraFileIntraBP() {
super();
}
public ElaboraFileIntraBP(String function) {
super(function);
}
public ElaboraFileIntraComponentSession createComponentSession() throws BusinessProcessException
{
return (ElaboraFileIntraComponentSession)createComponentSession("CNRDOCAMM00_EJB_ElaboraFileIntraComponentSession",ElaboraFileIntraComponentSession.class);
}
public boolean isScaricaButtonEnabled() {
if(getFile()!=null)
return true;
else
return false;
}
public boolean isConfermaButtonHidden() {
if (this.getModel() instanceof VIntrastatBulk && getFile()!=null && getInvio() ) {
return false;
}
else
return true;
}
public boolean isElaboraFileInvioButtonHidden() {
if (this.getModel() instanceof VIntrastatBulk ) {
return false;
}
else
return true;
}
protected it.cnr.jada.util.jsp.Button[] createToolbar() {
it.cnr.jada.util.jsp.Button[] toolbar = new it.cnr.jada.util.jsp.Button[4];
int i = 0;
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"Toolbar.start");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"Toolbar.start_inv");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"Toolbar.download");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"Toolbar.conferma");
return toolbar;
}
private String file;
private Boolean invio=new Boolean(false);
public Boolean getInvio() {
return invio;
}
public void setInvio(Boolean invio) {
this.invio = invio;
}
public void doElaboraFile(ActionContext context,VIntrastatBulk dett,Boolean invio) throws BusinessProcessException, ComponentException, PersistencyException, IntrospectionException {
try{
setInvio(invio);
dett.setNrProtocolloAcq(null);
dett.setNrProtocolloVen(null);
AnagraficoComponentSession sess = (AnagraficoComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRANAGRAF00_EJB_AnagraficoComponentSession", AnagraficoComponentSession.class);
AnagraficoBulk ente = sess.getAnagraficoEnte(context.getUserContext());
java.util.List lista=((ElaboraFileIntraComponentSession)createComponentSession()).EstraiLista(context.getUserContext(),getModel());
it.cnr.contab.config00.bulk.Configurazione_cnrBulk config = null;
try {
config = Utility.createConfigurazioneCnrComponentSession().getConfigurazione( context.getUserContext(), it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext()), null, it.cnr.contab.config00.bulk.Configurazione_cnrBulk.PK_COSTANTI, it.cnr.contab.config00.bulk.Configurazione_cnrBulk.SK_MODELLO_INTRASTAT);
} catch (RemoteException e) {
throw new ComponentException(e);
} catch (EJBException e) {
throw new ComponentException(e);
}
if(config.getVal02()==null)
throw new ApplicationException("Codice utente abilitato non configurato");
File f;
if (invio){
f = new File(System.getProperty("tmp.dir.SIGLAWeb")+"/tmp/",
Formatta(config.getVal02(),"S",4," ")+//codice utente abilitato
Formatta(new Integer(EcfBulk.getDateCalendar(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()).get(java.util.Calendar.MONTH)+1).toString(),"D",2,"0")+
Formatta(new Integer(EcfBulk.getDateCalendar(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()).get(java.util.Calendar.DAY_OF_MONTH)).toString(),"D",2,"0")+
".I01");
}
else{
f = new File(System.getProperty("tmp.dir.SIGLAWeb")+"/tmp/",
"scambi.cee");
}
OutputStream os = (OutputStream)new FileOutputStream(f);
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
if (!lista.isEmpty()){
java.util.List listaSezioneUnoAcquisti=((ElaboraFileIntraComponentSession)createComponentSession()).SezioneUnoAcquisti(context.getUserContext(),getModel());
java.util.List listaSezioneDueAcquisti=((ElaboraFileIntraComponentSession)createComponentSession()).SezioneDueAcquisti(context.getUserContext(),getModel());
java.util.List listaSezioneTreAcquisti=((ElaboraFileIntraComponentSession)createComponentSession()).SezioneTreAcquisti(context.getUserContext(),getModel());
java.util.List listaSezioneQuattroAcquisti=((ElaboraFileIntraComponentSession)createComponentSession()).SezioneQuattroAcquisti(context.getUserContext(),getModel());
java.util.List listaSezioneUnoVendite=((ElaboraFileIntraComponentSession)createComponentSession()).SezioneUnoVendite(context.getUserContext(),getModel());
java.util.List listaSezioneDueVendite=((ElaboraFileIntraComponentSession)createComponentSession()).SezioneDueVendite(context.getUserContext(),getModel());
java.util.List listaSezioneTreVendite=((ElaboraFileIntraComponentSession)createComponentSession()).SezioneTreVendite(context.getUserContext(),getModel());
java.util.List listaSezioneQuattroVendite=((ElaboraFileIntraComponentSession)createComponentSession()).SezioneQuattroVendite(context.getUserContext(),getModel());
String P_iva=Formatta(ente.getPartita_iva(),"D",11,"0");
if(invio){
//File invio
bw.append(Formatta(config.getVal02(),"S",4," ")); //codice utente abilitato
bw.append(Formatta(null,"S",12," "));//riservata SDA
//Nome del flusso
bw.append(Formatta(config.getVal02(),"S",4," ")); //codice utente abilitato
bw.append(Formatta(new Integer(EcfBulk.getDateCalendar(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()).get(java.util.Calendar.MONTH)+1).toString(),"D",2,"0"));
bw.append(Formatta(new Integer(EcfBulk.getDateCalendar(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()).get(java.util.Calendar.DAY_OF_MONTH)).toString(),"D",2,"0"));
bw.append(".");// nome file
bw.append("I");// tipo file Dichiarazioni Intrastat
bw.append("01");//progressivo dell'interchange
//fine del nome del flusso
bw.append(Formatta(null,"S",12," "));//riservata SDA
if(config.getVal01()==null)
throw new ApplicationException("Codice sezione doganale non configurato");
bw.append(Formatta(config.getVal01(),"D",6,"0"));
bw.append(Formatta(null,"S",4," "));//riservata SDA
bw.append(Formatta(P_iva,"S",16," "));
if(config.getVal03()==null)
throw new ApplicationException("Progressivo sede utente abilitato non configurato");
bw.append(Formatta(config.getVal03(),"D",3,"0")); //progressivo sede
bw.append(Formatta(null,"S",1," "));//riservata SDA
Integer cont=((listaSezioneUnoAcquisti.size()+listaSezioneDueAcquisti.size()+listaSezioneTreAcquisti.size()+listaSezioneQuattroAcquisti.size())==new Integer(0)?0:1 )+
((listaSezioneUnoVendite.size()+listaSezioneDueVendite.size()+listaSezioneTreVendite.size()+listaSezioneQuattroVendite.size())==new Integer(0)?0:1 )+
+listaSezioneUnoAcquisti.size()+listaSezioneDueAcquisti.size()+listaSezioneTreAcquisti.size()+listaSezioneQuattroAcquisti.size()
+listaSezioneUnoVendite.size()+listaSezioneDueVendite.size()+listaSezioneTreVendite.size()+listaSezioneQuattroVendite.size()+1;
bw.append(Formatta(cont.toString(),"D",5,"0")); //conteggio totale + frontespizi + testata
bw.append("\r\n");
}
//parte iniziale fissa
Integer prot=0;
if(!listaSezioneUnoAcquisti.isEmpty()||
!listaSezioneDueAcquisti.isEmpty()||
!listaSezioneTreAcquisti.isEmpty()||
!listaSezioneQuattroAcquisti.isEmpty()){
bw.append(new String("EUROX"));
bw.append(P_iva);
prot=config.getIm01().intValue()+1;
bw.append(Formatta(prot.toString(),"D",6,"0"));
bw.append("0");// Tipo record Frontespizio
bw.append(Formatta("0","D",5,"0"));// progressivo riga di dettaglio per frontespizio 0
bw.append("A");// Tipo frontespizio Acquisti
bw.append(it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext()).toString().substring(2));// Tipo frontespizio Acquisti
bw.append("M");// Periodicità mensile
bw.append(Formatta(dett.getMese().toString(),"D",2,"0"));
bw.append(P_iva);
bw.append("0");//0=operazione sono riferite al mese o trimestre completo 9(1)
bw.append("0");//0=nessun caso particolare 9(1)
bw.append(Formatta(null,"D",11,"0")); // partita iva delegato
Integer conta_det=0;
java.math.BigInteger somma_det=new java.math.BigInteger("0");
if(!listaSezioneUnoAcquisti.isEmpty()){
conta_det=listaSezioneUnoAcquisti.size();
for (Iterator i=listaSezioneUnoAcquisti.iterator();i.hasNext();){
VIntrastatBulk det=(VIntrastatBulk)i.next();
somma_det=somma_det.add(new java.math.BigInteger(det.getAmmontareEuro().toString()));
}
}
bw.append(Formatta(conta_det.toString(),"D",5,"0")); // numero det sez1 acq
bw.append(Formatta(somma_det.toString(),"D",13,"0")); // somma_det sez1 acq
somma_det=new java.math.BigInteger("0");
conta_det=0;
if(!listaSezioneDueAcquisti.isEmpty()){
conta_det=listaSezioneDueAcquisti.size();
for (Iterator i=listaSezioneDueAcquisti.iterator();i.hasNext();){
VIntrastatBulk det=(VIntrastatBulk)i.next();
if(det.getPgStorico() !=null && det.getNrProtocollo() !=null)
somma_det=somma_det.subtract(new java.math.BigInteger(det.getAmmontareEuro().toString()));
else
somma_det=somma_det.add(new java.math.BigInteger(det.getAmmontareEuro().toString()));
}
}
bw.append(Formatta(conta_det.toString(),"D",5,"0")); // numero det sez2 acq
// caso particolare
if (somma_det.compareTo(BigInteger.ZERO)>=0)
bw.append(Formatta(somma_det.toString(),"D",13,"0")); // somma_det sez2 acq
else
{
switch (new Integer(somma_det.toString().substring(somma_det.toString().length()-1,somma_det.toString().length())).intValue()) {
case 0:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("p"),"D",13,"0").toLowerCase());
break;
case 1:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("q"),"D",13,"0").toLowerCase());
break;
case 2:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("r"),"D",13,"0").toLowerCase());
break;
case 3:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("s"),"D",13,"0").toLowerCase());
break;
case 4:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("t"),"D",13,"0").toLowerCase());
break;
case 5:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("u"),"D",13,"0").toLowerCase());
break;
case 6:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("v"),"D",13,"0").toLowerCase());
break;
case 7:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("w"),"D",13,"0").toLowerCase());
break;
case 8:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("x"),"D",13,"0").toLowerCase());
break;
case 9:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("y"),"D",13,"0").toLowerCase());
break;
default:
break;
}
}
somma_det=new java.math.BigInteger("0");
conta_det=0;
if(!listaSezioneTreAcquisti.isEmpty()){
conta_det=listaSezioneTreAcquisti.size();
for (Iterator i=listaSezioneTreAcquisti.iterator();i.hasNext();){
VIntrastatBulk det=(VIntrastatBulk)i.next();
somma_det=somma_det.add(new java.math.BigInteger(det.getAmmontareEuro().toString()));
}
}
bw.append(Formatta(conta_det.toString(),"D",5,"0")); // numero det sez3 acq
bw.append(Formatta(somma_det.toString(),"D",13,"0")); // somma_det sez3 acq
somma_det=new java.math.BigInteger("0");
conta_det=0;
if(!listaSezioneQuattroAcquisti.isEmpty()){
conta_det=listaSezioneQuattroAcquisti.size();
for (Iterator i=listaSezioneQuattroAcquisti.iterator();i.hasNext();){
VIntrastatBulk det=(VIntrastatBulk)i.next();
somma_det=somma_det.subtract(new java.math.BigInteger(det.getAmmontareEuro().toString()));
}
}
bw.append(Formatta(conta_det.toString(),"D",5,"0")); // numero det sez4 acq
bw.append(Formatta(somma_det.toString(),"D",13,"0")); // somma_det sez4 acq
bw.append("\r\n");
}
Integer conta=0;
if(!listaSezioneUnoAcquisti.isEmpty()){
for (Iterator i=listaSezioneUnoAcquisti.iterator();i.hasNext();){
conta=conta+1;
VIntrastatBulk det=(VIntrastatBulk)i.next();
// parte fissa
bw.append(new String("EUROX"));
bw.append(P_iva);
bw.append(Formatta(prot.toString(),"D",6,"0"));
bw.append("1");// Sezione Uno Acquisti
bw.append(Formatta(conta.toString(),"D",5,"0"));// numero progressivo
bw.append(Formatta(det.getNazFiscale(),"S",2," "));//nazione fornitore
bw.append(Formatta(det.getPartitaIva(),"S",12," "));
bw.append(Formatta(new BigDecimal(det.getAmmontareEuro()).abs().toString(),"D",13,"0"));
bw.append(Formatta(new BigDecimal(det.getAmmontareDivisa()).abs().toString(),"D",13,"0"));
bw.append(Formatta(det.getCdNaturaTransazione(),"S",1," "));
bw.append(Formatta(det.getCdNomenclaturaCombinata(),"D",8,"0"));
bw.append(Formatta(new BigDecimal(det.getMassaNetta()).abs().toString(),"D",10,"0"));
bw.append(Formatta(new BigDecimal(det.getUnitaSupplementari()).abs().toString(),"D",10,"0"));
bw.append(Formatta(new BigDecimal(det.getValoreStatistico()).abs().toString(),"D",13,"0"));
bw.append(Formatta(det.getCdConsegna(),"S",1," "));
bw.append(Formatta(det.getCdModalitaTrasporto(),"D",1,"0"));
bw.append(Formatta(det.getProvenienza(),"S",2," "));
bw.append(Formatta(det.getOrigine(),"S",2," "));
bw.append(Formatta(det.getCdProvinciaDestinazione(),"S",2," "));
bw.append("\r\n");
}
}
conta=0;
if(!listaSezioneDueAcquisti.isEmpty()){
for (Iterator i=listaSezioneDueAcquisti.iterator();i.hasNext();){
conta=conta+1;
VIntrastatBulk det=(VIntrastatBulk)i.next();
// parte fissa
bw.append(new String("EUROX"));
bw.append(P_iva);
bw.append(Formatta(prot.toString(),"D",6,"0"));
bw.append("2");// Sezione Due Acquisti
bw.append(Formatta(conta.toString(),"D",5,"0"));// numero progressivo
// fine parte fissa
// DA VERIFICARE
bw.append(Formatta(det.getMese().toString(),"D",2,"0"));//mese
//Calcolo trimestre non serve
/*BigDecimal resto =new BigDecimal(det.getMese().toString()).remainder(new BigDecimal("3"));
BigInteger trim_i =new BigInteger(det.getMese().toString()).divide(new BigInteger("3"));
if(resto.compareTo(BigDecimal.ZERO)==0)
bw.append(trim_i.toString());//trimestre
else
bw.append(trim_i.add(new BigInteger("1")).toString());//trimestre
*/
bw.append("0");//trimestre
bw.append(det.getEsercizio().toString().substring(2));//
// Fine da verificare
bw.append(Formatta(det.getNazFiscale(),"S",2," "));//nazione fornitore
bw.append(Formatta(det.getPartitaIva(),"S",12," "));
/*if (new BigDecimal(det.getAmmontareEuro()).abs().compareTo(new BigDecimal(det.getAmmontareEuro()))==0)
bw.append("+");
else
bw.append("-");*/
if(det.getPgStorico() !=null && det.getNrProtocollo() !=null)
bw.append("-");
else
bw.append("+");
bw.append(Formatta(new BigDecimal(det.getAmmontareEuro()).abs().toString(),"D",13,"0"));
bw.append(Formatta(new BigDecimal(det.getAmmontareDivisa()).abs().toString(),"D",13,"0"));
bw.append(Formatta(det.getCdNaturaTransazione(),"S",1," "));
bw.append(Formatta(det.getCdNomenclaturaCombinata(),"D",8,"0"));
bw.append(Formatta(new BigDecimal(det.getValoreStatistico()).abs().toString(),"D",13,"0"));
bw.append("\r\n");
}
}
conta=0;
if(!listaSezioneTreAcquisti.isEmpty()){
for (Iterator i=listaSezioneTreAcquisti.iterator();i.hasNext();){
conta=conta+1;
VIntrastatBulk det=(VIntrastatBulk)i.next();
// parte fissa
bw.append(new String("EUROX"));
bw.append(P_iva);
bw.append(Formatta(prot.toString(),"D",6,"0"));
bw.append("3");// Sezione Tre Acquisti
bw.append(Formatta(conta.toString(),"D",5,"0"));// numero progressivo
// fine parte fissa
bw.append(Formatta(det.getNazFiscale(),"S",2," "));//nazione fornitore
bw.append(Formatta(det.getPartitaIva(),"S",12," "));
bw.append(Formatta(new BigDecimal(det.getAmmontareEuro()).abs().toString(),"D",13,"0"));
bw.append(Formatta(new BigDecimal(det.getAmmontareDivisa()).abs().toString(),"D",13,"0"));
bw.append(Formatta(null,"S",15," "));//bw.append(Formatta(det.getNrFattura(),"S",15," "));
bw.append(Formatta(null,"S",6," "));//bw.append(Formatta(det.getDtFattura(),"S",6," "));
bw.append(Formatta(det.getCdCpa(),"D",5,"0"));
bw.append(Formatta(null,"S",1,"0"));//diminuzione 1 carattere codice cpa
bw.append(Formatta(null,"S",1," "));//bw.append(Formatta(det.getCdModalitaErogazione(),"S",1," "));
bw.append(Formatta(null,"S",1," "));//bw.append(Formatta(det.getCdModalitaIncasso(),"S",1," "));
bw.append(Formatta(det.getProvenienza(),"S",2," "));
bw.append("\r\n");
}
}
conta=0;
if(!listaSezioneQuattroAcquisti.isEmpty()){
for (Iterator i=listaSezioneQuattroAcquisti.iterator();i.hasNext();){
conta=conta+1;
VIntrastatBulk det=(VIntrastatBulk)i.next();
// parte fissa
bw.append(new String("EUROX"));
bw.append(P_iva);
bw.append(Formatta(prot.toString(),"D",6,"0"));
bw.append("4");// Sezione Quattro Acquisti
bw.append(Formatta(conta.toString(),"D",5,"0"));// numero progressivo
// fine parte fissa
//???????????????????????????????????????????????????????
if(config.getVal01()==null)
throw new ApplicationException("Codice sezione doganale non configurato");
bw.append(Formatta(config.getVal01(),"D",6,"0"));
bw.append(det.getEsercizio().toString().substring(2));// anno elenco rettifica
if(det.getNrProtocollo()!=null)
bw.append(Formatta(det.getNrProtocollo().toString(),"D",6,"0")); // protocollo elenco rettifica
else
bw.append(Formatta("0","D",6,"0")); // protocollo elenco rettifica
if(det.getNrProgressivo()!=null)
bw.append(Formatta(det.getNrProgressivo().toString(),"D",5,"0")); // progressivo della sezione 3 da rettificare
else
bw.append(Formatta("0","D",5,"0")); // progressivo della sezione 3 da rettificare
//???????????????????????????????????????????????????????
//per la cancellazione non devono essere valorizzati questi campi
bw.append(Formatta(null,"S",2," "));//nazione fornitore //bw.append(Formatta(det.getNazFiscale(),"S",2," "));
bw.append(Formatta(null,"S",12," "));//bw.append(Formatta(det.getPartitaIva(),"S",12," "));
bw.append(Formatta(null,"D",13,"0"));//bw.append(Formatta(new BigDecimal(det.getAmmontareEuro()).abs().toString(),"D",13,"0"));
bw.append(Formatta(null,"D",13,"0"));//bw.append(Formatta(new BigDecimal(det.getAmmontareDivisa()).abs().toString(),"D",13,"0"));
bw.append(Formatta(null,"S",15," "));//bw.append(Formatta(det.getNrFattura(),"S",15," "));
bw.append(Formatta(null,"S",6," "));//bw.append(Formatta(det.getDtFattura(),"S",6," "));
bw.append(Formatta(null,"D",5,"0"));
bw.append(Formatta(null,"S",1,"0"));//diminuzione 1 carattere codice cpa
bw.append(Formatta(null,"S",1," "));//bw.append(Formatta(det.getCdModalitaErogazione(),"S",1," "));
bw.append(Formatta(null,"S",1," "));//bw.append(Formatta(det.getCdModalitaIncasso(),"S",1," "));
bw.append(Formatta(null,"S",2," "));//bw.append(Formatta(det.getProvenienza(),"S",2," "));
bw.append("\r\n");
}
}
// VENDITE
if(!listaSezioneUnoVendite.isEmpty()||
!listaSezioneDueVendite.isEmpty()||
!listaSezioneTreVendite.isEmpty()||
!listaSezioneQuattroVendite.isEmpty()){
if(prot!=0)
prot=prot+1;
else
prot=config.getIm01().intValue()+1;
//parte iniziale fissa
bw.append(new String("EUROX"));
bw.append(P_iva);
bw.append(Formatta(prot.toString(),"D",6,"0")); // Progressivo invio
bw.append("0");// Tipo record Frontespizio
bw.append(Formatta("0","D",5,"0"));// progressivo riga di dettaglio per frontespizio 0
bw.append("C");// Tipo frontespizio Cessioni
bw.append(it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext()).toString().substring(2));// Tipo frontespizio VEndite
bw.append("M");// Periodicità mensile
bw.append(Formatta(dett.getMese().toString(),"D",2,"0"));
bw.append(P_iva);
bw.append("0");//0=operazione sono riferite al mese o trimestre completo 9(1)
bw.append("0");//0=nessun caso particolare 9(1)
bw.append(Formatta(null,"S",11,"0")); // partita iva delegato
Integer conta_det=0;
java.math.BigInteger somma_det=new java.math.BigInteger("0");
if(!listaSezioneUnoVendite.isEmpty()){
conta_det=listaSezioneUnoVendite.size();
for (Iterator i=listaSezioneUnoVendite.iterator();i.hasNext();){
VIntrastatBulk det=(VIntrastatBulk)i.next();
somma_det=somma_det.add(new java.math.BigInteger(det.getAmmontareEuro().toString()));
}
}
bw.append(Formatta(conta_det.toString(),"D",5,"0")); // numero det sez1 ven
bw.append(Formatta(somma_det.toString(),"D",13,"0")); // somma_det sez1 ven
somma_det=new java.math.BigInteger("0");
conta_det=0;
if(!listaSezioneDueVendite.isEmpty()){
conta_det=listaSezioneDueVendite.size();
for (Iterator i=listaSezioneDueVendite.iterator();i.hasNext();){
VIntrastatBulk det=(VIntrastatBulk)i.next();
if(det.getPgStorico() !=null && det.getNrProtocollo() !=null)
somma_det=somma_det.subtract(new java.math.BigInteger(det.getAmmontareEuro().toString()));
else
somma_det=somma_det.add(new java.math.BigInteger(det.getAmmontareEuro().toString()));
}
}
bw.append(Formatta(conta_det.toString(),"D",5,"0")); // numero det sez2 ven
// caso particolare
if (somma_det.compareTo(BigInteger.ZERO)>=0)
bw.append(Formatta(somma_det.toString(),"D",13,"0")); // somma_det sez2 ven
else
{
switch (new Integer(somma_det.toString().substring(somma_det.toString().length()-1,somma_det.toString().length())).intValue()) {
case 0:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("p"),"D",13,"0").toLowerCase());
break;
case 1:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("q"),"D",13,"0").toLowerCase());
break;
case 2:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("r"),"D",13,"0").toLowerCase());
break;
case 3:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("s"),"D",13,"0").toLowerCase());
break;
case 4:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("t"),"D",13,"0").toLowerCase());
break;
case 5:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("u"),"D",13,"0").toLowerCase());
break;
case 6:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("v"),"D",13,"0").toLowerCase());
break;
case 7:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("w"),"D",13,"0").toLowerCase());
break;
case 8:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("x"),"D",13,"0").toLowerCase());
break;
case 9:
bw.append(Formatta(somma_det.abs().toString().substring(0,somma_det.abs().toString().length()-1).concat("y"),"D",13,"0").toLowerCase());
break;
default:
break;
}
}
somma_det=new java.math.BigInteger("0");
conta_det=0;
if(!listaSezioneTreVendite.isEmpty()){
conta_det=listaSezioneTreVendite.size();
for (Iterator i=listaSezioneTreVendite.iterator();i.hasNext();){
VIntrastatBulk det=(VIntrastatBulk)i.next();
somma_det=somma_det.add(new java.math.BigInteger(det.getAmmontareEuro().toString()));
}
}
bw.append(Formatta(conta_det.toString(),"D",5,"0")); // numero det sez3 ven
bw.append(Formatta(somma_det.toString(),"D",13,"0")); // somma_det sez3 ven
somma_det=new java.math.BigInteger("0");
conta_det=0;
if(!listaSezioneQuattroVendite.isEmpty()){
conta_det=listaSezioneQuattroVendite.size();
for (Iterator i=listaSezioneQuattroVendite.iterator();i.hasNext();){
VIntrastatBulk det=(VIntrastatBulk)i.next();
somma_det=somma_det.add(new java.math.BigInteger(det.getAmmontareEuro().toString()));
}
}
bw.append(Formatta(conta_det.toString(),"D",5,"0")); // numero det sez4 ven
bw.append(Formatta(somma_det.toString(),"D",13,"0")); // somma_det sez4 ven
bw.append("\r\n");
}
conta=0;
if(!listaSezioneUnoVendite.isEmpty()){
for (Iterator i=listaSezioneUnoVendite.iterator();i.hasNext();){
conta=conta+1;
VIntrastatBulk det=(VIntrastatBulk)i.next();
// parte fissa
bw.append(new String("EUROX"));
bw.append(P_iva);
bw.append(Formatta(prot.toString(),"D",6,"0"));
bw.append("1");// Sezione Uno
bw.append(Formatta(conta.toString(),"D",5,"0"));// numero progressivo
bw.append(Formatta(det.getNazFiscale(),"S",2," "));//nazione cliente
bw.append(Formatta(det.getPartitaIva(),"S",12," "));
bw.append(Formatta(new BigDecimal(det.getAmmontareEuro()).abs().toString(),"D",13,"0"));
bw.append(Formatta(det.getCdNaturaTransazione(),"S",1," "));
bw.append(Formatta(det.getCdNomenclaturaCombinata(),"D",8,"0"));
bw.append(Formatta(new BigDecimal(det.getMassaNetta()).abs().toString(),"D",10,"0"));
bw.append(Formatta(new BigDecimal(det.getUnitaSupplementari()).abs().toString(),"D",10,"0"));
bw.append(Formatta(new BigDecimal(det.getValoreStatistico()).abs().toString(),"D",13,"0"));
bw.append(Formatta(det.getCdConsegna(),"S",1," "));
bw.append(Formatta(det.getCdModalitaTrasporto(),"D",1,"0"));
bw.append(Formatta(det.getDest(),"S",2," "));
bw.append(Formatta(det.getCdProvinciaOrigine(),"S",2," "));
bw.append("\r\n");
}
}
conta=0;
if(!listaSezioneDueVendite.isEmpty()){
for (Iterator i=listaSezioneDueVendite.iterator();i.hasNext();){
conta=conta+1;
VIntrastatBulk det=(VIntrastatBulk)i.next();
// parte fissa
bw.append(new String("EUROX"));
bw.append(P_iva);
bw.append(Formatta(prot.toString(),"D",6,"0"));
bw.append("2");// Sezione Due
bw.append(Formatta(conta.toString(),"D",5,"0"));// numero progressivo
// fine parte fissa
// DA VERIFICARE
bw.append(Formatta(det.getMese().toString(),"D",2,"0"));//mese
//Calcolo trimestre non serve
/*BigDecimal resto =new BigDecimal(det.getMese().toString()).remainder(new BigDecimal("3"));
BigInteger trim_i =new BigInteger(det.getMese().toString()).divide(new BigInteger("3"));
if(resto.compareTo(BigDecimal.ZERO)==0)
bw.append(trim_i.toString());//trimestre
else
bw.append(trim_i.add(new BigInteger("1")).toString());//trimestre
*/
bw.append("0");//trimestre
bw.append(det.getEsercizio().toString().substring(2));
// Fine da verificare
bw.append(Formatta(det.getNazFiscale(),"S",2," "));//nazione cliente
bw.append(Formatta(det.getPartitaIva(),"S",12," "));
/*if (new BigDecimal(det.getAmmontareEuro()).abs().compareTo(new BigDecimal(det.getAmmontareEuro()))==0)
bw.append("+");
else
bw.append("-");*/
if(det.getPgStorico() !=null && det.getNrProtocollo() !=null)
bw.append("-");
else
bw.append("+");
bw.append(Formatta(new BigDecimal(det.getAmmontareEuro()).abs().toString(),"D",13,"0"));
bw.append(Formatta(det.getCdNaturaTransazione(),"S",1," "));
bw.append(Formatta(det.getCdNomenclaturaCombinata(),"D",8,"0"));
bw.append(Formatta(new BigDecimal(det.getValoreStatistico()).abs().toString(),"D",13,"0"));
bw.append("\r\n");
}
}
conta=0;
if(!listaSezioneTreVendite.isEmpty()){
for (Iterator i=listaSezioneTreVendite.iterator();i.hasNext();){
conta=conta+1;
VIntrastatBulk det=(VIntrastatBulk)i.next();
// parte fissa
bw.append(new String("EUROX"));
bw.append(P_iva);
bw.append(Formatta(prot.toString(),"D",6,"0"));
bw.append("3");// Sezione Tre
bw.append(Formatta(conta.toString(),"D",5,"0"));// numero progressivo
// fine parte fissa
bw.append(Formatta(det.getNazFiscale(),"S",2," "));//nazione cliente
bw.append(Formatta(det.getPartitaIva(),"S",12," "));
bw.append(Formatta(new BigDecimal(det.getAmmontareEuro()).abs().toString(),"D",13,"0"));
bw.append(Formatta(null,"S",15," "));//bw.append(Formatta(det.getNrFattura(),"S",15," "));
bw.append(Formatta(null,"S",6," "));//bw.append(Formatta(det.getDtFattura(),"S",6," "));
bw.append(Formatta(det.getCdCpa(),"D",5,"0"));
bw.append(Formatta(null,"S",1,"0"));//diminuzione 1 carattere codice cpa
bw.append(Formatta(null,"S",1," "));//bw.append(Formatta(det.getCdModalitaErogazione(),"S",1," "));
bw.append(Formatta(null,"S",1," "));//bw.append(Formatta(det.getCdModalitaIncasso(),"S",1," "));
bw.append(Formatta(det.getDest(),"S",2," "));
bw.append("\r\n");
}
}
conta=0;
if(!listaSezioneQuattroVendite.isEmpty()){
for (Iterator i=listaSezioneQuattroVendite.iterator();i.hasNext();){
conta=conta+1;
VIntrastatBulk det=(VIntrastatBulk)i.next();
// parte fissa
bw.append(new String("EUROX"));
bw.append(P_iva);
bw.append(Formatta(prot.toString(),"D",6,"0"));
bw.append("4");// Sezione Quattro
bw.append(Formatta(conta.toString(),"D",5,"0"));// numero progressivo
// fine parte fissa
//???????????????????????????????????????????????????????
if(config.getVal01()==null)
throw new ApplicationException("Codice sezione doganale non configurato");
bw.append(Formatta(config.getVal01(),"D",6,"0"));
bw.append(det.getEsercizio().toString().substring(2));// anno elenco rettifica
bw.append(Formatta(det.getNrProtocollo().toString(),"D",6,"0")); // protocollo elenco rettifica
bw.append(Formatta(det.getNrProgressivo().toString(),"D",5,"0")); // progressivo della sezione 3 da rettificare
//???????????????????????????????????????????????????????
//per la cancellazione non devono essere valorizzati questi campi
bw.append(Formatta(null,"S",2," "));//nazione fornitore //bw.append(Formatta(det.getNazFiscale(),"S",2," "));
bw.append(Formatta(null,"S",12," "));//bw.append(Formatta(det.getPartitaIva(),"S",12," "));
bw.append(Formatta(null,"D",13,"0"));//bw.append(Formatta(new BigDecimal(det.getAmmontareEuro()).abs().toString(),"D",13,"0"));
bw.append(Formatta(null,"S",15," "));//bw.append(Formatta(det.getNrFattura(),"S",15," "));
bw.append(Formatta(null,"S",6," "));//bw.append(Formatta(det.getDtFattura(),"S",6," "));
bw.append(Formatta(det.getCdCpa(),"D",5,"0"));
bw.append(Formatta(null,"S",1,"0"));//diminuzione 1 carattere codice cpa
bw.append(Formatta(null,"S",1," "));//bw.append(Formatta(det.getCdModalitaErogazione(),"S",1," "));
bw.append(Formatta(null,"S",1," "));//bw.append(Formatta(det.getCdModalitaIncasso(),"S",1," "));
bw.append(Formatta(null,"S",2," "));//bw.append(Formatta(det.getDest(),"S",2," "));
bw.append("\r\n");
}
}
bw.flush();
bw.close();
osw.close();
os.close();
dett.setNrProtocollo(prot.toString());
setFile("/tmp/"+f.getName());
}else{
bw.flush();
bw.close();
osw.close();
os.close();
throw new ApplicationException("Non ci sono dati da elaborare per il mese selezionato!");
}
} catch (FileNotFoundException e) {
throw new ApplicationException("File non trovato!");
}
catch (IllegalArgumentException e) {
throw new ApplicationException("Formato file non valido!");
}
catch (IOException e) {
throw new ApplicationException("Errore nella scrittura del file!");
}
}
/**
* @param s Stringa in Input
* @param allineamento del testo "D" Destra - "S" Sinistra
* @param dimensione richiesta del campo
* @param riempimento carattere di riempimento per raggiungere la dimensione richiesta
* @return La stringa formattata e riempita con l'allinemento richiesto
*/
public String Formatta(String s, String allineamento,Integer dimensione,String riempimento){
if (s==null)
s=riempimento;
if (s.length()< dimensione){
if (allineamento.compareTo("D")==0){
while (s.length() dimensione){
s=s.substring(0,dimensione);
return s.toUpperCase();
}
return s.toUpperCase();
}
public void writeToolbar(PageContext pagecontext) throws IOException, ServletException {
Button[] toolbar = getToolbar();
if(getFile()!=null){
HttpServletResponse httpservletresp = (HttpServletResponse)pagecontext.getResponse();
HttpServletRequest httpservletrequest = (HttpServletRequest)pagecontext.getRequest();
StringBuffer stringbuffer = new StringBuffer();
stringbuffer.append(pagecontext.getRequest().getScheme());
stringbuffer.append("://");
stringbuffer.append(pagecontext.getRequest().getServerName());
stringbuffer.append(':');
stringbuffer.append(pagecontext.getRequest().getServerPort());
stringbuffer.append(JSPUtils.getAppRoot(httpservletrequest));
toolbar[2].setHref("javascript:doPrint('"+stringbuffer+getFile()+ "')");
}
super.writeToolbar(pagecontext);
}
public String getFile() {
return file;
}
public void setFile(String file) {
this.file = file;
}
public void doElaboraFile(ActionContext context, VIntra12Bulk dett)throws BusinessProcessException, ComponentException, PersistencyException, IntrospectionException {
try{
File f = new File(System.getProperty("tmp.dir.SIGLAWeb")+"/tmp/",
"INTRASTAT"
+EcfBulk.getDateCalendar(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()).get(java.util.Calendar.DAY_OF_MONTH)+
+new Integer(EcfBulk.getDateCalendar(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()).get(java.util.Calendar.MONTH)+1)+
+EcfBulk.getDateCalendar(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()).get(java.util.Calendar.YEAR)+"intra12.cee");
OutputStream os = (OutputStream)new FileOutputStream(f);
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
AnagraficoComponentSession sess = (AnagraficoComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRANAGRAF00_EJB_AnagraficoComponentSession", AnagraficoComponentSession.class);
AnagraficoBulk ente = sess.getAnagraficoEnte(context.getUserContext());
java.util.List lista=((ElaboraFileIntraComponentSession)createComponentSession()).EstraiListaIntra12(context.getUserContext(),getModel());
AnagraficoBulk resp=null;
if (!lista.isEmpty()){
it.cnr.contab.config00.bulk.Configurazione_cnrBulk config = null;
try {
config = Utility.createConfigurazioneCnrComponentSession().getConfigurazione( context.getUserContext(), it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext()), null, it.cnr.contab.config00.bulk.Configurazione_cnrBulk.PK_COSTANTI, it.cnr.contab.config00.bulk.Configurazione_cnrBulk.SK_MODELLO_INTRA_12);
resp = (AnagraficoBulk)sess.findByPrimaryKey(context.getUserContext(), new AnagraficoBulk(new Integer(config.getVal03())));
} catch (RemoteException e) {
throw new ComponentException(e);
} catch (EJBException e) {
throw new ComponentException(e);
}
BigDecimal totImpIntra=new BigDecimal("0");
BigDecimal totIvaIntra=new BigDecimal("0");
BigDecimal totImpBeniIntra=new BigDecimal("0");
BigDecimal totIvaBeniIntra=new BigDecimal("0");
BigDecimal totImpServIntra=new BigDecimal("0");
BigDecimal totIvaServIntra=new BigDecimal("0");
BigDecimal totImpS30Intra=new BigDecimal("0");
BigDecimal totImpServExtra=new BigDecimal("0");
BigDecimal totIvaServExtra=new BigDecimal("0");
BigDecimal totImpS30Extra=new BigDecimal("0");
BigDecimal totImpBeniExtra=new BigDecimal("0");
BigDecimal totIvaBeniExtra=new BigDecimal("0");
for (Iterator i = lista.iterator(); i.hasNext();) {
VIntra12Bulk d=(VIntra12Bulk)i.next();
if(d.getFlIntraUe()){
totImpIntra=totImpIntra.add(d.getImponibile());
totIvaIntra=totIvaIntra.add(d.getIva());
if(d.getCdBeneServizio().compareTo("BENI")==0){
totImpBeniIntra=totImpBeniIntra.add(d.getImponibile());
totIvaBeniIntra=totIvaBeniIntra.add(d.getIva());
}
else if(d.getCdBeneServizio().compareTo("S030")==0) {
totImpS30Intra=totImpS30Intra.add(d.getImponibile());
totImpServIntra=totImpServIntra.add(d.getImponibile());
totIvaServIntra=totIvaServIntra.add(d.getIva());
}else{
totImpServIntra=totImpServIntra.add(d.getImponibile());
totIvaServIntra=totIvaServIntra.add(d.getIva());
}
}else if(d.getFlExtraUe()){
if(d.getCdBeneServizio().compareTo("S030")==0) {
totImpS30Extra=totImpS30Extra.add(d.getImponibile());
totImpServExtra=totImpServExtra.add(d.getImponibile());
totIvaServExtra=totIvaServExtra.add(d.getIva());
}else if (d.getCdBeneServizio().compareTo("BENI")!=0){
totImpServExtra=totImpServExtra.add(d.getImponibile());
totIvaServExtra=totIvaServExtra.add(d.getIva());
} else if(d.getCdBeneServizio().compareTo("BENI")==0){
totImpBeniExtra=totImpBeniExtra.add(d.getImponibile());
totIvaBeniExtra=totIvaBeniExtra.add(d.getIva());
}
}
}
// Tipo Record A Testata
bw.append("A"); // tipo record
bw.append(Formatta(null,"S",14," "));// Filler
bw.append("T1210"); // Codice fornitura
bw.append("01"); // Soggetti che inviano proprie dichiarazioni
String Codice_Fiscale =ente.getCodice_fiscale();
String P_iva =ente.getPartita_iva();
if (Codice_Fiscale==null)
throw new ApplicationException("Codice Fiscale non valorizzati per l'ente!");
bw.append(Formatta(Codice_Fiscale,"S",16," "));// Codice fiscale
bw.append(Formatta(null,"S",483," "));// Filler
bw.append(Formatta(null,"S",4,"0")); //Filler
bw.append(Formatta(null,"S",4,"0")); //Filler
bw.append(Formatta(null,"S",100," "));// Filler campo utente
bw.append(Formatta(null,"S",1068," "));// Filler
bw.append(Formatta(null,"S",200," "));// Filler
bw.append("A"); //
bw.append("\r\n");
// fine record A Testata
// Tipo Record B Frontespizio
bw.append("B"); // tipo record
bw.append(Formatta(Codice_Fiscale,"S",16," "));// Codice fiscale
bw.append(Formatta("1","D",8,"0"));// Progressivo modulo (VALE 1)
bw.append(Formatta(null,"S",3," "));// Filler campo utente
bw.append(Formatta(null,"S",25," "));// Filler
bw.append(Formatta(null,"S",20," "));// Filler campo utente x identificazione dichiarazione
bw.append(Formatta(resp.getCodice_fiscale(),"S",16," "));// Codice fiscale produttore software (PRESIDENTE)
bw.append("1"); // Vale 0 o 1(dichiarazione confermata)
bw.append(Formatta(config.getVal01(),"S",3," "));// Ufficio Compentente
bw.append(Formatta(it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext()).toString(),"S",4," "));// Esercizio
bw.append(Formatta(((VIntra12Bulk)getModel()).getMese().toString(),"D",2,"0"));// Mese
bw.append(Formatta("1","D",1,"0"));// Correttiva nei termini?? checkbox
bw.append(Formatta(P_iva,"D",11,"0"));// P_iva
bw.append(Formatta(config.getVal02(),"S",6," "));// CODICE ATTIVITA ???
bw.append(Formatta("0","D",1,"0"));// Eventi eccezionali checkbox
bw.append(Formatta(null,"S",24," "));// Cognome
bw.append(Formatta(null,"S",20," "));// Nome
bw.append(Formatta(null,"S",40," "));// Comune nascita
bw.append(Formatta(null,"S",2," "));// prov. nascita
bw.append(Formatta(null,"D",8,"0"));// dt. nascita
bw.append(Formatta(null,"D",1," "));// sesso
// Obbligatori se non è Persona Fisica
bw.append(Formatta(ente.getRagione_sociale(),"S",60," "));
bw.append(Formatta(config.getIm01().toString(),"D",2,"0"));// NATURA GIURIDICA ????????? messo 1 PERCHè OBBLIGATORIO
bw.append(Formatta(null,"S",40," "));// Filler
bw.append(Formatta(null,"S",2," "));// Filler
bw.append(Formatta(null,"S",35," "));// Filler
bw.append(Formatta(null,"S",5," "));// Filler
bw.append(Formatta(null,"S",4," "));// Filler
bw.append(Formatta(resp.getCodice_fiscale(),"S",16," "));//codice fiscale rappresentante
bw.append(Formatta(config.getIm02().toString(),"D",2,"0"));//carica rappresentante ??????? messo 2 PERCHè OBBLIGATORIO
bw.append(Formatta(Codice_Fiscale,"S",11," "));//codice fiscale societa dichiarante
bw.append(Formatta(resp.getCognome(),"S",24," "));//cognome rappresentante ???????????????
bw.append(Formatta(resp.getNome(),"S",20," "));//nome rappresentante ???????????????
bw.append(resp.getTi_sesso());//sesso rappresentante ???????????????
GregorianCalendar dataNascita = new GregorianCalendar();
dataNascita.setTime(new Date(resp.getDt_nascita().getTime()));
bw.append(Formatta(new Integer(dataNascita.get(GregorianCalendar.DAY_OF_MONTH)).toString(),"D",2,"0"));
bw.append(Formatta(new Integer(dataNascita.get(GregorianCalendar.MONTH)+1).toString(),"D",2,"0"));
bw.append(Formatta(new Integer(dataNascita.get(GregorianCalendar.YEAR)).toString(),"D",4,"0"));
ComuneBulk comune = (ComuneBulk)sess.findByPrimaryKey(context.getUserContext(), new ComuneBulk(resp.getComune_nascita().getPg_comune()));
if(comune==null)
throw new ApplicationException("Dati anagrafici del rappresentante non completi!");
else
{
bw.append(Formatta(comune.getDs_comune(),"S",40," "));//COMUNE nascita rappresentante ???????????????
bw.append(Formatta(comune.getCd_provincia(),"S",2," "));//PROV nascita rappresentante ???????????????
}
//cambiato il tracciato dal 01/10/2015 diventati tutti filler
bw.append(Formatta(null,"S",3," "));//codice stato estero rappresentante ???????????????
//bw.append(Formatta(null,"D",3,"0"));//codice stato estero rappresentante ???????????????
bw.append(Formatta(null,"S",24," "));//stato fed rappresentante ???????????????
bw.append(Formatta(null,"S",24," "));//residenza rappresentante ???????????????
bw.append(Formatta(null,"S",35," "));//indirizzo estero rappresentante ???????????????
bw.append(Formatta(null,"S",12," "));//cell rappresentante ???????????????
bw.append(Formatta("1","D",1,"0"));// Firma checkbox
// Sezione intermediario
bw.append(Formatta(null,"S",16," "));
bw.append(Formatta(null,"S",5,"0"));
bw.append(Formatta("0","D",1,"0"));//
// cambiato il tracciato dal 01/10/2015
bw.append(Formatta(null,"S",1," "));
// fine cambio
bw.append(Formatta(null,"D",8,"0"));
bw.append(Formatta("0","D",1,"0"));// Firma intermediario
//bw.append(Formatta(null,"S",1228," "));// Filler -- cambiato il tracciato dal 01/10/2015
bw.append(Formatta(null,"S",1227," "));// Filler -- cambiato il tracciato dal 01/10/2015
bw.append(Formatta(null,"S",20," "));// Filler
bw.append(Formatta(null,"S",34," "));// Filler
bw.append("A"); //
bw.append("\r\n");
// fine record B
// Tipo Record C Coda
bw.append("C"); // tipo record
bw.append(Formatta(Codice_Fiscale,"S",16," "));// Codice fiscale
bw.append(Formatta("1","D",8,"0"));// Progressivo modulo (VALE 1)
bw.append(Formatta(null,"S",3," "));// Filler campo utente
bw.append(Formatta(null,"S",25," "));// Filler
bw.append(Formatta(null,"S",20," "));// Filler campo utente x identificazione dichiarazione
bw.append(Formatta(null,"S",16," "));// Codice fiscale produttore software
Integer limite_col=75;
Integer num_col=0;
// Campi non posizionali
/*if(totImpIntra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012001");
bw.append(Formatta(totImpIntra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if(totIvaIntra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012002");
bw.append(Formatta(totIvaIntra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if(totImpBeniIntra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012003");
bw.append(Formatta(totImpBeniIntra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if(totIvaBeniIntra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012004");
bw.append(Formatta(totIvaBeniIntra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
*/
if(totImpBeniIntra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012001");
bw.append(Formatta(totImpBeniIntra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if(totIvaBeniIntra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012002");
bw.append(Formatta(totIvaBeniIntra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if(BigDecimal.ZERO.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012003");// Beni soggetti stabiliti in altri stati comunita (beni assemblati in Italia)
bw.append(Formatta(BigDecimal.ZERO.toString(),"D",16," "));
num_col++;
}
if(BigDecimal.ZERO.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012004");// Iva Beni soggetti stabiliti in altri stati comunita (beni assemblati in Italia)
bw.append(Formatta(BigDecimal.ZERO.toString(),"D",16," "));
num_col++;
}
if(totImpServIntra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012005");
bw.append(Formatta(totImpServIntra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if(totImpS30Intra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012006");
bw.append(Formatta(totImpS30Intra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if(totIvaServIntra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012007");
bw.append(Formatta(totIvaServIntra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if(totImpBeniExtra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012008");// Bolle doganali ignorare imponibile - considerato beni san marino
bw.append(Formatta(totImpBeniExtra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if(totIvaBeniExtra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012009");// Bolle doganali ignorare iva
bw.append(Formatta(totIvaBeniExtra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if(totImpServExtra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012010");
bw.append(Formatta(totImpServExtra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if(totImpS30Extra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012011");
bw.append(Formatta(totImpS30Extra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if(totIvaServExtra.compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012012");
bw.append(Formatta(totIvaServExtra.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString().replace(".", ","),"D",16," "));
num_col++;
}
if((totIvaServExtra.add(totIvaServIntra).add(totIvaBeniIntra).add(totIvaBeniExtra)).compareTo(BigDecimal.ZERO)!=0){
bw.append("TR012013");
bw.append(Formatta((((totIvaServExtra.add(totIvaServIntra).add(totIvaBeniIntra).add(totIvaBeniExtra)).setScale(2, java.math.BigDecimal.ROUND_HALF_UP)).toString().replace(".", ",")),"D",16," "));
num_col++;
}
// Campi non posizionali
bw.append("TR012014");// data versamento
java.util.Date data=((ElaboraFileIntraComponentSession)createComponentSession()).recuperoMaxDtPagamentoLiq(context.getUserContext(),getModel());
if(data!=null) {
bw.append(Formatta(null,"D",8," "));//completamento 16 caratteri non necessari per data
GregorianCalendar datagc = new GregorianCalendar();
datagc.setTime(new Date(data.getTime()));
bw.append(Formatta(new Integer(datagc.get(GregorianCalendar.DAY_OF_MONTH)).toString(),"D",2,"0"));
bw.append(Formatta(new Integer(datagc.get(GregorianCalendar.MONTH)+1).toString(),"D",2,"0"));
bw.append(Formatta(new Integer(datagc.get(GregorianCalendar.YEAR)).toString(),"D",4,"0"));
}
else
throw new ApplicationException("Il pagamento della liquidazione iva ente per il mese selezionato non è stato effettuato!");
num_col++;
bw.append(Formatta(null,"D",(limite_col-num_col)*24," "));
bw.append(Formatta(null,"D",8," "));// Filler
bw.append("A"); //
bw.append("\r\n");
// fine record C
// Tipo Record Z Coda
bw.append("Z"); // tipo record
bw.append(Formatta(null,"S",14," "));// Filler
bw.append(Formatta("1","D",9,"0"));// N° record tipo B
bw.append(Formatta("1","D",9,"0"));// N° record tipo C
bw.append(Formatta(null,"S",1864," "));// Filler
bw.append("A"); //
bw.append("\r\n");
// fine record Z Coda
bw.flush();
bw.close();
osw.close();
os.close();
setFile("/tmp/"+f.getName());
}else{
bw.flush();
bw.close();
osw.close();
os.close();
throw new ApplicationException("Non ci sono dati da elaborare per il mese selezionato!");
}
} catch (FileNotFoundException e) {
throw new ApplicationException("File non trovato!");
}
catch (IllegalArgumentException e) {
throw new ApplicationException("Formato file non valido!");
}
catch (IOException e) {
throw new ApplicationException("Errore nella scrittura del file!");
}
}
public void confermaElaborazione(ActionContext context, VIntrastatBulk dett) throws ComponentException, PersistencyException, IntrospectionException, RemoteException, BusinessProcessException {
((ElaboraFileIntraComponentSession)createComponentSession()).confermaElaborazione(context.getUserContext(),dett);
setFile(null);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy