Search in sources :

Example 76 with AnagraficoBulk

use of it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk in project sigla-main by consiglionazionaledellericerche.

the class ElaboraFileIntraBP method doElaboraFile.

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/", // codice utente abilitato
            Formatta(config.getVal02(), "S", 4, " ") + 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
                // codice utente abilitato
                bw.append(Formatta(config.getVal02(), "S", 4, " "));
                // riservata SDA
                bw.append(Formatta(null, "S", 12, " "));
                // Nome del flusso
                // codice utente abilitato
                bw.append(Formatta(config.getVal02(), "S", 4, " "));
                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"));
                // nome file
                bw.append(".");
                // tipo file Dichiarazioni Intrastat
                bw.append("I");
                // progressivo dell'interchange
                bw.append("01");
                // fine del nome del flusso
                // riservata SDA
                bw.append(Formatta(null, "S", 12, " "));
                if (config.getVal01() == null)
                    throw new ApplicationException("Codice sezione doganale non configurato");
                bw.append(Formatta(config.getVal01(), "D", 6, "0"));
                // riservata SDA
                bw.append(Formatta(null, "S", 4, " "));
                bw.append(Formatta(P_iva, "S", 16, " "));
                if (config.getVal03() == null)
                    throw new ApplicationException("Progressivo sede utente abilitato non configurato");
                // progressivo sede
                bw.append(Formatta(config.getVal03(), "D", 3, "0"));
                // riservata SDA
                bw.append(Formatta(null, "S", 1, " "));
                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;
                // conteggio totale + frontespizi + testata
                bw.append(Formatta(cont.toString(), "D", 5, "0"));
                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"));
                // Tipo record Frontespizio
                bw.append("0");
                // progressivo riga di dettaglio per frontespizio 0
                bw.append(Formatta("0", "D", 5, "0"));
                // Tipo frontespizio Acquisti
                bw.append("A");
                // Tipo frontespizio Acquisti
                bw.append(it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext()).toString().substring(2));
                // Periodicità mensile
                bw.append("M");
                bw.append(Formatta(dett.getMese().toString(), "D", 2, "0"));
                bw.append(P_iva);
                // 0=operazione sono riferite al mese o trimestre completo 9(1)
                bw.append("0");
                // 0=nessun caso particolare                               9(1)
                bw.append("0");
                // partita iva delegato
                bw.append(Formatta(null, "D", 11, "0"));
                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()));
                    }
                }
                // numero det sez1 acq
                bw.append(Formatta(conta_det.toString(), "D", 5, "0"));
                // somma_det sez1 acq
                bw.append(Formatta(somma_det.toString(), "D", 13, "0"));
                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()));
                    }
                }
                // numero det sez2 acq
                bw.append(Formatta(conta_det.toString(), "D", 5, "0"));
                // caso particolare
                if (somma_det.compareTo(BigInteger.ZERO) >= 0)
                    // somma_det sez2 acq
                    bw.append(Formatta(somma_det.toString(), "D", 13, "0"));
                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()));
                    }
                }
                // numero det sez3 acq
                bw.append(Formatta(conta_det.toString(), "D", 5, "0"));
                // somma_det sez3 acq
                bw.append(Formatta(somma_det.toString(), "D", 13, "0"));
                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()));
                    }
                }
                // numero det sez4 acq
                bw.append(Formatta(conta_det.toString(), "D", 5, "0"));
                // somma_det sez4 acq
                bw.append(Formatta(somma_det.toString(), "D", 13, "0"));
                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"));
                    // Sezione Uno Acquisti
                    bw.append("1");
                    // numero progressivo
                    bw.append(Formatta(conta.toString(), "D", 5, "0"));
                    // nazione fornitore
                    bw.append(Formatta(det.getNazFiscale(), "S", 2, " "));
                    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, " "));
                    // Campo aggiunto per sdoppiamento colonna natura della transazione
                    bw.append(Formatta("", "S", 1, " "));
                    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"));
                    // Sezione Due Acquisti
                    bw.append("2");
                    // numero progressivo
                    bw.append(Formatta(conta.toString(), "D", 5, "0"));
                    // fine parte fissa
                    // DA VERIFICARE
                    // mese
                    bw.append(Formatta(det.getMese().toString(), "D", 2, "0"));
                    // 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 
    			*/
                    // trimestre
                    bw.append("0");
                    // 
                    bw.append(det.getEsercizio().toString().substring(2));
                    // Fine da verificare
                    // nazione fornitore
                    bw.append(Formatta(det.getNazFiscale(), "S", 2, " "));
                    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"));
                    // Sezione Tre Acquisti
                    bw.append("3");
                    // numero progressivo
                    bw.append(Formatta(conta.toString(), "D", 5, "0"));
                    // fine parte fissa
                    // nazione fornitore
                    bw.append(Formatta(det.getNazFiscale(), "S", 2, " "));
                    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.getNrFattura(),"S",15," "));
                    bw.append(Formatta(null, "S", 15, " "));
                    // bw.append(Formatta(det.getDtFattura(),"S",6," "));
                    bw.append(Formatta(null, "S", 6, " "));
                    bw.append(Formatta(det.getCdCpa(), "D", 5, "0"));
                    // diminuzione 1 carattere codice cpa
                    bw.append(Formatta(null, "S", 1, "0"));
                    // 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", 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"));
                    // Sezione Quattro Acquisti
                    bw.append("4");
                    // numero progressivo
                    bw.append(Formatta(conta.toString(), "D", 5, "0"));
                    if (config.getVal01() == null)
                        throw new ApplicationException("Codice sezione doganale non configurato");
                    bw.append(Formatta(config.getVal01(), "D", 6, "0"));
                    // anno elenco rettifica
                    bw.append(det.getEsercizio().toString().substring(2));
                    if (det.getNrProtocollo() != null)
                        // protocollo elenco rettifica
                        bw.append(Formatta(det.getNrProtocollo().toString(), "D", 6, "0"));
                    else
                        // protocollo elenco rettifica
                        bw.append(Formatta("0", "D", 6, "0"));
                    if (det.getNrProgressivo() != null)
                        // progressivo della sezione 3 da rettificare
                        bw.append(Formatta(det.getNrProgressivo().toString(), "D", 5, "0"));
                    else
                        // progressivo della sezione 3 da rettificare
                        bw.append(Formatta("0", "D", 5, "0"));
                    // ???????????????????????????????????????????????????????
                    // per la cancellazione non devono essere valorizzati questi campi
                    // nazione fornitore //bw.append(Formatta(det.getNazFiscale(),"S",2," "));
                    bw.append(Formatta(null, "S", 2, " "));
                    // bw.append(Formatta(det.getPartitaIva(),"S",12," "));
                    bw.append(Formatta(null, "S", 12, " "));
                    // 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, "D", 13, "0"));
                    // bw.append(Formatta(det.getNrFattura(),"S",15," "));
                    bw.append(Formatta(null, "S", 15, " "));
                    // bw.append(Formatta(det.getDtFattura(),"S",6," "));
                    bw.append(Formatta(null, "S", 6, " "));
                    bw.append(Formatta(null, "D", 5, "0"));
                    // diminuzione 1 carattere codice cpa
                    bw.append(Formatta(null, "S", 1, "0"));
                    // 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", 1, " "));
                    // bw.append(Formatta(det.getProvenienza(),"S",2," "));
                    bw.append(Formatta(null, "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);
                // Progressivo invio
                bw.append(Formatta(prot.toString(), "D", 6, "0"));
                // Tipo record Frontespizio
                bw.append("0");
                // progressivo riga di dettaglio per frontespizio 0
                bw.append(Formatta("0", "D", 5, "0"));
                // Tipo frontespizio Cessioni
                bw.append("C");
                // Tipo frontespizio VEndite
                bw.append(it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext()).toString().substring(2));
                // Periodicità mensile
                bw.append("M");
                bw.append(Formatta(dett.getMese().toString(), "D", 2, "0"));
                bw.append(P_iva);
                // 0=operazione sono riferite al mese o trimestre completo 9(1)
                bw.append("0");
                // 0=nessun caso particolare                               9(1)
                bw.append("0");
                // partita iva delegato
                bw.append(Formatta(null, "S", 11, "0"));
                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()));
                    }
                }
                // numero det sez1 ven
                bw.append(Formatta(conta_det.toString(), "D", 5, "0"));
                // somma_det sez1 ven
                bw.append(Formatta(somma_det.toString(), "D", 13, "0"));
                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()));
                    }
                }
                // numero det sez2 ven
                bw.append(Formatta(conta_det.toString(), "D", 5, "0"));
                // caso particolare
                if (somma_det.compareTo(BigInteger.ZERO) >= 0)
                    // somma_det sez2 ven
                    bw.append(Formatta(somma_det.toString(), "D", 13, "0"));
                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()));
                    }
                }
                // numero det sez3 ven
                bw.append(Formatta(conta_det.toString(), "D", 5, "0"));
                // somma_det sez3 ven
                bw.append(Formatta(somma_det.toString(), "D", 13, "0"));
                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()));
                    }
                }
                // numero det sez4 ven
                bw.append(Formatta(conta_det.toString(), "D", 5, "0"));
                // somma_det sez4 ven
                bw.append(Formatta(somma_det.toString(), "D", 13, "0"));
                // Numero di righe dettaglio della sezione 5
                bw.append(Formatta("0", "D", 5, "0"));
                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"));
                    // Sezione Uno
                    bw.append("1");
                    // numero progressivo
                    bw.append(Formatta(conta.toString(), "D", 5, "0"));
                    // nazione cliente
                    bw.append(Formatta(det.getNazFiscale(), "S", 2, " "));
                    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, " "));
                    // Campo aggiunto per sdoppiamento colonna natura della transazione
                    bw.append(Formatta("", "S", 1, " "));
                    // Campo aggiunto. Codice del paese di origine della merce
                    bw.append(Formatta("IT", "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"));
                    // Sezione Due
                    bw.append("2");
                    // numero progressivo
                    bw.append(Formatta(conta.toString(), "D", 5, "0"));
                    // fine parte fissa
                    // DA VERIFICARE
                    // mese
                    bw.append(Formatta(det.getMese().toString(), "D", 2, "0"));
                    // 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 
    			*/
                    // trimestre
                    bw.append("0");
                    bw.append(det.getEsercizio().toString().substring(2));
                    // Fine da verificare
                    // nazione cliente
                    bw.append(Formatta(det.getNazFiscale(), "S", 2, " "));
                    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"));
                    // Sezione Tre
                    bw.append("3");
                    // numero progressivo
                    bw.append(Formatta(conta.toString(), "D", 5, "0"));
                    // fine parte fissa
                    // nazione cliente
                    bw.append(Formatta(det.getNazFiscale(), "S", 2, " "));
                    bw.append(Formatta(det.getPartitaIva(), "S", 12, " "));
                    bw.append(Formatta(new BigDecimal(det.getAmmontareEuro()).abs().toString(), "D", 13, "0"));
                    // bw.append(Formatta(det.getNrFattura(),"S",15," "));
                    bw.append(Formatta(null, "S", 15, " "));
                    // bw.append(Formatta(det.getDtFattura(),"S",6," "));
                    bw.append(Formatta(null, "S", 6, " "));
                    bw.append(Formatta(det.getCdCpa(), "D", 5, "0"));
                    // diminuzione 1 carattere codice cpa
                    bw.append(Formatta(null, "S", 1, "0"));
                    // 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", 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"));
                    // Sezione Quattro
                    bw.append("4");
                    // numero progressivo
                    bw.append(Formatta(conta.toString(), "D", 5, "0"));
                    // ???????????????????????????????????????????????????????
                    if (config.getVal01() == null)
                        throw new ApplicationException("Codice sezione doganale non configurato");
                    bw.append(Formatta(config.getVal01(), "D", 6, "0"));
                    // anno elenco rettifica
                    bw.append(det.getEsercizio().toString().substring(2));
                    // protocollo elenco rettifica
                    bw.append(Formatta(det.getNrProtocollo().toString(), "D", 6, "0"));
                    // progressivo della sezione 3 da rettificare
                    bw.append(Formatta(det.getNrProgressivo().toString(), "D", 5, "0"));
                    // ???????????????????????????????????????????????????????
                    // per la cancellazione non devono essere valorizzati questi campi
                    // nazione fornitore //bw.append(Formatta(det.getNazFiscale(),"S",2," "));
                    bw.append(Formatta(null, "S", 2, " "));
                    // bw.append(Formatta(det.getPartitaIva(),"S",12," "));
                    bw.append(Formatta(null, "S", 12, " "));
                    // bw.append(Formatta(new BigDecimal(det.getAmmontareEuro()).abs().toString(),"D",13,"0"));
                    bw.append(Formatta(null, "D", 13, "0"));
                    // bw.append(Formatta(det.getNrFattura(),"S",15," "));
                    bw.append(Formatta(null, "S", 15, " "));
                    // bw.append(Formatta(det.getDtFattura(),"S",6," "));
                    bw.append(Formatta(null, "S", 6, " "));
                    bw.append(Formatta(det.getCdCpa(), "D", 5, "0"));
                    // diminuzione 1 carattere codice cpa
                    bw.append(Formatta(null, "S", 1, "0"));
                    // 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", 1, " "));
                    // bw.append(Formatta(det.getDest(),"S",2," "));
                    bw.append(Formatta(null, "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!");
    }
}
Also used : OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) FileNotFoundException(java.io.FileNotFoundException) BufferedWriter(java.io.BufferedWriter) VIntrastatBulk(it.cnr.contab.docamm00.docs.bulk.VIntrastatBulk) Iterator(java.util.Iterator) BigInteger(java.math.BigInteger) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) IOException(java.io.IOException) BigDecimal(java.math.BigDecimal) BigInteger(java.math.BigInteger) ElaboraFileIntraComponentSession(it.cnr.contab.docamm00.ejb.ElaboraFileIntraComponentSession) ApplicationException(it.cnr.jada.comp.ApplicationException) AnagraficoComponentSession(it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession) FileOutputStream(java.io.FileOutputStream) ComponentException(it.cnr.jada.comp.ComponentException) BigInteger(java.math.BigInteger) OutputStreamWriter(java.io.OutputStreamWriter) RemoteException(java.rmi.RemoteException) EJBException(javax.ejb.EJBException) File(java.io.File)

Example 77 with AnagraficoBulk

use of it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk in project sigla-main by consiglionazionaledellericerche.

the class ElaboraFilePoliBP method doElaboraFile.

public void doElaboraFile(ActionContext context, VSpesometroBulk dett) throws BusinessProcessException, ComponentException, PersistencyException, IntrospectionException {
    try {
        conta = 0;
        Integer conta_bl3 = 0;
        Integer conta_bl4 = 0;
        Integer conta_fa = 0;
        AnagraficoComponentSession sess = (AnagraficoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRANAGRAF00_EJB_AnagraficoComponentSession", AnagraficoComponentSession.class);
        AnagraficoBulk ente = sess.getAnagraficoEnte(context.getUserContext());
        // configurato dal  2014 - versione precedente gestita da altro Bp e su altra view altro tracciato
        it.cnr.contab.config00.bulk.Configurazione_cnrBulk configblack = null;
        try {
            configblack = 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_BLACKLIST);
        } catch (RemoteException e) {
            throw new ComponentException(e);
        } catch (EJBException e) {
            throw new ComponentException(e);
        }
        if (configblack.getVal01().compareTo("M") == 0) {
            if (dett.isFlBlacklist() && dett.getMese() == null)
                throw new ApplicationException("Attenzione: specificare il Mese");
        } else if (configblack.getVal01().compareTo("M") != 0) {
            if (dett.isFlBlacklist() && dett.getMese() != null)
                throw new ApplicationException("In caso di comunicazione annuale, il mese non deve essere indicato!");
        }
        java.util.List lista = ((ElaboraFileIntraComponentSession) createComponentSession()).EstraiBlacklist(context.getUserContext(), getModel(), null);
        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);
        } catch (RemoteException e) {
            throw new ComponentException(e);
        } catch (EJBException e) {
            throw new ComponentException(e);
        }
        File f;
        if (dett.getMese() != null)
            f = new File(System.getProperty("tmp.dir.SIGLAWeb") + "/tmp/", // codice fiscale
            ente.getCodice_fiscale() + "_" + Formatta((CNRUserContext.getEsercizio(context.getUserContext())).toString().substring(2), "D", 2, "0") + "M" + Formatta(new Integer(dett.getMese()).toString(), "D", 2, "0") + ".ccf");
        else
            f = new File(System.getProperty("tmp.dir.SIGLAWeb") + "/tmp/", // codice fiscale
            ente.getCodice_fiscale() + "_" + (dett.isFlBlacklist() ? "BL_" : "") + (CNRUserContext.getEsercizio(context.getUserContext())).toString() + ".ccf");
        OutputStream os = (OutputStream) new FileOutputStream(f);
        OutputStreamWriter osw = new OutputStreamWriter(os);
        BufferedWriter bw = new BufferedWriter(osw);
        AnagraficoBulk resp = null;
        if (!lista.isEmpty()) {
            try {
                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);
            }
            // parte iniziale fissa record A
            bw.append(new String("A"));
            bw.append(Formatta(null, "S", 14, " "));
            bw.append("NSP00");
            // Invio propri dati
            bw.append("01");
            bw.append(Formatta(ente.getCodice_fiscale(), "S", 16, " "));
            bw.append(Formatta(null, "S", 483, " "));
            // PROGRESSIVO 1???
            bw.append(Formatta("0", "D", 4, "0"));
            // NUM TOTALE INVII TELEMATICI 1???
            bw.append(Formatta("0", "D", 4, "0"));
            bw.append(Formatta(null, "S", 100, " "));
            bw.append(Formatta(null, "S", 1068, " "));
            bw.append(Formatta(null, "S", 200, " "));
            bw.append("A");
            bw.append("\r\n");
            // //fine record A
            // //record B
            bw.append("B");
            bw.append(Formatta(ente.getCodice_fiscale(), "S", 16, " "));
            // Progressivo Modulo
            bw.append(Formatta("1", "D", 8, "0"));
            bw.append(Formatta(null, "S", 3, " "));
            bw.append(Formatta(null, "S", 25, " "));
            bw.append(Formatta(null, "S", 20, " "));
            // bw.append(Formatta(resp.getCodice_fiscale(),"S",16," "));// Codice fiscale produttore software (PRESIDENTE)
            bw.append(Formatta(null, "S", 16, " "));
            // fisso ordinaria
            bw.append("1");
            // sostitutiva
            bw.append("0");
            // di annullamento
            bw.append("0");
            // da indicare per sostitutiva
            bw.append(Formatta(null, "D", 17, "0"));
            // da indicare per sostitutiva
            bw.append(Formatta(null, "D", 6, "0"));
            // fisso dati aggregati
            bw.append("1");
            // dati analitici
            bw.append("0");
            // quadri compilati sia annuale che mensile
            if (dett.isFlBlacklist()) {
                // quadro FA
                bw.append("0");
                // quadro SA
                bw.append("0");
                // quadro BL
                bw.append("1");
                // quadro FE
                bw.append("0");
                // quadro FR
                bw.append("0");
                // quadro NE
                bw.append("0");
                // quadro NR
                bw.append("0");
                // quadro DF
                bw.append("0");
                // quadro FN
                bw.append("0");
                // quadro SE
                bw.append("0");
                // quadro TU
                bw.append("0");
                // quadro TA
                bw.append("1");
            } else {
                // quadro FA
                bw.append("1");
                // quadro SA
                bw.append("0");
                // quadro BL
                bw.append("1");
                // quadro FE
                bw.append("0");
                // quadro FR
                bw.append("0");
                // quadro NE
                bw.append("0");
                // quadro NR
                bw.append("0");
                // quadro DF
                bw.append("0");
                // quadro FN
                bw.append("0");
                // quadro SE
                bw.append("0");
                // quadro TU
                bw.append("0");
                // quadro TA
                bw.append("1");
            }
            bw.append(Formatta(ente.getPartita_iva(), "S", 11, " "));
            bw.append(Formatta(config.getVal02(), "S", 6, " "));
            // tel
            bw.append(Formatta(null, "S", 12, " "));
            // fax
            bw.append(Formatta(null, "S", 12, " "));
            // email
            bw.append(Formatta(null, "S", 50, " "));
            // Obbligatori se non è Persona Fisica
            // Cognome
            bw.append(Formatta(null, "S", 24, " "));
            // Nome
            bw.append(Formatta(null, "S", 20, " "));
            // sesso
            bw.append(Formatta(null, "D", 1, " "));
            // dt. nascita
            bw.append(Formatta(null, "D", 8, "0"));
            // Comune nascita
            bw.append(Formatta(null, "S", 40, " "));
            // prov. nascita
            bw.append(Formatta(null, "S", 2, " "));
            // // Obbligatori se non è Persona Fisica
            bw.append(Formatta(ente.getRagione_sociale(), "S", 60, " "));
            bw.append((CNRUserContext.getEsercizio(context.getUserContext())).toString());
            if (dett.getMese() != null)
                // Mese (Da valorizzare solo per se presenti ACQUISTI DA SAN MARINO
                bw.append(Formatta(new Integer(dett.getMese()).toString(), "D", 2, "0"));
            else
                bw.append(Formatta(null, "D", 2, "0"));
            // Da verificare
            // 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(null,"D",8,"0"));// dt. inizio procedura
            // bw.append(Formatta(null,"D",8,"0"));// dt. fine
            // 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     ???????????????
            // }
            // codice fiscale rappresentante
            bw.append(Formatta(null, "S", 16, " "));
            // carica rappresentante  ??????? messo 2 PERCHè OBBLIGATORIO
            bw.append(Formatta(null, "D", 2, "0"));
            // dt. inizio procedura
            bw.append(Formatta(null, "D", 8, "0"));
            // dt. fine
            bw.append(Formatta(null, "D", 8, "0"));
            // cognome rappresentante     ???????????????
            bw.append(Formatta(null, "S", 24, " "));
            // nome rappresentante     ???????????????
            bw.append(Formatta(null, "S", 20, " "));
            // sesso rappresentante     ???????????????
            bw.append(" ");
            // data nascita
            bw.append(Formatta(null, "D", 8, "0"));
            // COMUNE nascita rappresentante     ???????????????
            bw.append(Formatta(null, "S", 40, " "));
            // PROV nascita rappresentante     ???????????????
            bw.append(Formatta(null, "S", 2, " "));
            // ragione sociale rappresentante     ???????????????
            bw.append(Formatta(null, "S", 60, " "));
            // // Sezione intermediario
            bw.append(Formatta(null, "S", 16, " "));
            bw.append(Formatta(null, "D", 5, "0"));
            // /???
            bw.append("0");
            bw.append(Formatta(null, "S", 1, " "));
            bw.append(Formatta(null, "D", 8, "0"));
            // Filler
            bw.append(Formatta(null, "S", 1258, " "));
            // Filler
            bw.append(Formatta(null, "S", 20, " "));
            // Filler
            bw.append(Formatta(null, "S", 18, " "));
            bw.append("A");
            bw.append("\r\n");
            // // fine record B
            Integer limite_col = 75;
            Integer num_col = 0;
            GregorianCalendar dataNascita = new GregorianCalendar();
            // tipo record C parte fissa
            for (Iterator i = lista.iterator(); i.hasNext(); ) {
                VSpesometroBulk det = (VSpesometroBulk) i.next();
                if (det.getQuadro().compareTo("BL") == 0 || conta_fa % 3 == 0) {
                    num_col = 0;
                    bw.append("C");
                    conta++;
                    // codice fiscale
                    bw.append(Formatta(ente.getCodice_fiscale(), "S", 16, " "));
                    // Progressivo modulo (VALE 1)
                    bw.append(Formatta(conta.toString(), "D", 8, "0"));
                    // Filler campo utente
                    bw.append(Formatta(null, "S", 3, " "));
                    // Filler
                    bw.append(Formatta(null, "S", 25, " "));
                    // Filler campo utente x identificazione dichiarazione
                    bw.append(Formatta(null, "S", 20, " "));
                    // codice fiscale prod sw
                    bw.append(Formatta(null, "S", 16, " "));
                }
                // Campi non posizionali
                if (det.getQuadro().compareTo("BL") == 0) {
                    if (det.getCognome() != null) {
                        num_col = Formatta(det.getCognome(), "S", 16, " ", bw, "BL001001", num_col);
                        num_col = Formatta(det.getNome(), "S", 16, " ", bw, "BL001002", num_col);
                        // completamento 16 caratteri non necessari per data
                        num_col = Formatta(null, "D", 8, " ", bw, "BL001003", num_col);
                        dataNascita.setTime(new Date(det.getDtNascita().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"));
                        num_col = Formatta(det.getStatoNascita(), "S", 16, " ", bw, "BL001004", num_col);
                        num_col = Formatta(det.getProvincia(), "S", 16, " ", bw, "BL001005", num_col);
                        num_col = Formatta(det.getCodiceStatoEstero(), "D", 16, " ", bw, "BL001006", num_col);
                    } else {
                        num_col = Formatta(det.getRagioneSociale(), "S", 16, " ", bw, "BL001007", num_col);
                        num_col = Formatta(det.getComuneSede(), "S", 16, " ", bw, "BL001008", num_col);
                        num_col = Formatta(det.getCodiceStatoEstero(), "D", 16, " ", bw, "BL001009", num_col);
                        num_col = Formatta(det.getIndirizzoSede(), "S", 16, " ", bw, "BL001010", num_col);
                    }
                    // valorizzazione del mese nella view solo per BL Fiscalità speciale
                    if (det.getTipoFiscalita().compareTo("FS") == 0) {
                        num_col = Formatta("1", "D", 16, " ", bw, "BL002002", num_col);
                        if (det.getImponibileFa().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getImponibileFa().toString(), "D", 16, " ", bw, "BL003001", num_col);
                        if (det.getIvaFa().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getIvaFa().toString(), "D", 16, " ", bw, "BL003002", num_col);
                        // attive bl004 indicato da ufficio competente mai valorizzato!!!
                        if (det.getImponibileNdFa().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getImponibileNdFa().toString(), "D", 16, " ", bw, "BL005001", num_col);
                        if (det.getIvaNdFa().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getIvaNdFa().toString(), "D", 16, " ", bw, "BL005002", num_col);
                        if (det.getImponibileFp().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getImponibileFp().toString(), "D", 16, " ", bw, "BL006001", num_col);
                        if (det.getIvaFp().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getIvaFp().toString(), "D", 16, " ", bw, "BL006002", num_col);
                        // attive bl007 indicato da ufficio competente mai valorizzato!!!
                        if (det.getImponibileNdFp().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getImponibileNdFp().toString(), "D", 16, " ", bw, "BL008001", num_col);
                        if (det.getIvaNdFp().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getIvaNdFp().toString(), "D", 16, " ", bw, "BL008002", num_col);
                    } else {
                        if (det.getTipo().compareTo("PASSIVE") == 0 && det.getTiBeneServizio().compareTo(Bene_servizioBulk.SERVIZIO) == 0) {
                            conta_bl4++;
                            num_col = Formatta("1", "D", 16, " ", bw, "BL002004", num_col);
                            if (det.getImponibileFp().compareTo(BigDecimal.ZERO) != 0)
                                num_col = Formatta(det.getImponibileFp().toString(), "D", 16, " ", bw, "BL006001", num_col);
                            if (det.getIvaFp().compareTo(BigDecimal.ZERO) != 0)
                                num_col = Formatta(det.getIvaFp().toString(), "D", 16, " ", bw, "BL006002", num_col);
                        } else {
                            conta_bl3++;
                            num_col = Formatta("1", "D", 16, " ", bw, "BL002003", num_col);
                            if (det.getImponibileFa().compareTo(BigDecimal.ZERO) != 0)
                                num_col = Formatta(det.getImponibileFa().toString(), "D", 16, " ", bw, "BL003001", num_col);
                            if (det.getIvaFa().compareTo(BigDecimal.ZERO) != 0)
                                num_col = Formatta(det.getIvaFa().toString(), "D", 16, " ", bw, "BL003002", num_col);
                            if (det.getImponibileFp().compareTo(BigDecimal.ZERO) != 0)
                                num_col = Formatta(det.getImponibileFp().toString(), "D", 16, " ", bw, "BL006001", num_col);
                            if (det.getIvaFp().compareTo(BigDecimal.ZERO) != 0)
                                num_col = Formatta(det.getIvaFp().toString(), "D", 16, " ", bw, "BL006002", num_col);
                        }
                    }
                } else // FINO QUADRO BL
                {
                    // controllo forse inutile ma impedisce problemi sulla correttezza del file
                    if (det.getCodiceFiscale() != null || det.getPartitaIva() != null) {
                        String c = null;
                        if (conta_fa % 3 == 0)
                            c = new String("1");
                        else
                            c = ((Integer) ((conta_fa % 3) + 1)).toString();
                        conta_fa++;
                        if (det.getCodiceFiscale() != null)
                            num_col = Formatta(det.getCodiceFiscale(), "S", 16, " ", bw, "FA00" + c + "002", num_col);
                        else if (det.getPartitaIva() != null)
                            num_col = Formatta(det.getPartitaIva(), "S", 16, " ", bw, "FA00" + c + "001", num_col);
                        if (det.getNrAttive() != 0)
                            num_col = Formatta(det.getNrAttive().toString(), "D", 16, " ", bw, "FA00" + c + "004", num_col);
                        if (det.getNrPassive() != 0)
                            num_col = Formatta(det.getNrPassive().toString(), "D", 16, " ", bw, "FA00" + c + "005", num_col);
                        if (det.getImponibileFa().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getImponibileFa().toString(), "D", 16, " ", bw, "FA00" + c + "007", num_col);
                        if (det.getIvaFa().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getIvaFa().toString(), "D", 16, " ", bw, "FA00" + c + "008", num_col);
                        if (det.getImponibileNdFa().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getImponibileNdFa().toString(), "D", 16, " ", bw, "FA00" + c + "0010", num_col);
                        if (det.getIvaNdFa().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getIvaNdFa().toString(), "D", 16, " ", bw, "FA00" + c + "011", num_col);
                        if (det.getImponibileFp().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getImponibileFp().toString(), "D", 16, " ", bw, "FA00" + c + "012", num_col);
                        if (det.getIvaFp().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getIvaFp().toString(), "D", 16, " ", bw, "FA00" + c + "013", num_col);
                        if (det.getImponibileNdFp().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getImponibileNdFp().toString(), "D", 16, " ", bw, "FA00" + c + "0015", num_col);
                        if (det.getIvaNdFa().compareTo(BigDecimal.ZERO) != 0)
                            num_col = Formatta(det.getIvaNdFp().toString(), "D", 16, " ", bw, "FA00" + c + "016", num_col);
                    }
                }
                if (det.getQuadro().compareTo("BL") == 0 || (conta_fa % 3 == 0 && (det.getCodiceFiscale() != null || det.getPartitaIva() != null))) {
                    bw.append(Formatta(null, "D", (limite_col - num_col) * 24, " "));
                    // Filler
                    bw.append(Formatta(null, "D", 8, " "));
                    bw.append("A");
                    bw.append("\r\n");
                }
            }
            if (conta_fa != 0 && conta_fa % 3 != 0) {
                bw.append(Formatta(null, "D", (limite_col - num_col) * 24, " "));
                // Filler
                bw.append(Formatta(null, "D", 8, " "));
                bw.append("A");
                bw.append("\r\n");
            }
            // fine record C
            // tipo record E
            bw.append("E");
            bw.append(Formatta(ente.getCodice_fiscale(), "S", 16, " "));
            // Progressivo Modulo
            bw.append(Formatta("1", "D", 8, "0"));
            bw.append(Formatta(null, "S", 3, " "));
            bw.append(Formatta(null, "S", 25, " "));
            bw.append(Formatta(null, "S", 20, " "));
            bw.append(Formatta(null, "S", 16, " "));
            num_col = 0;
            // campi non posizionali
            if (dett.isFlBlacklist()) {
                if (lista != null && lista.size() != 0) {
                    bw.append("TA003001");
                    // numero contraparti blacklist BL002002
                    bw.append(Formatta(new Integer(lista.size()).toString(), "D", 16, " "));
                    num_col++;
                }
            }
            if (conta_fa != 0) {
                bw.append("TA001001");
                // numero contraparti fa
                bw.append(Formatta(conta_fa.toString(), "D", 16, " "));
                num_col++;
            }
            if (conta_bl3 != 0) {
                bw.append("TA003002");
                // numero contraparti operazione con soggetti non residenti beni BL002003
                bw.append(Formatta(conta_bl3.toString(), "D", 16, " "));
                num_col++;
            }
            if (conta_bl4 != 0) {
                bw.append("TA003003");
                // numero contraparti servizi non residenti BL002004
                bw.append(Formatta(conta_bl4.toString(), "D", 16, " "));
                num_col++;
            }
            bw.append(Formatta(null, "D", (limite_col - num_col) * 24, " "));
            // Filler
            bw.append(Formatta(null, "D", 8, " "));
            bw.append("A");
            bw.append("\r\n");
            // fine record E
            // Tipo Record Z Coda
            // tipo record
            bw.append("Z");
            // Filler
            bw.append(Formatta(null, "S", 14, " "));
            // N° record tipo B
            bw.append(Formatta("1", "D", 9, "0"));
            // bw.append(Formatta(new Integer(lista.size()).toString(),"D",9,"0"));// N° record tipo C
            // N° record tipo C
            bw.append(Formatta(conta.toString(), "D", 9, "0"));
            // N° record tipo D
            bw.append(Formatta("0", "D", 9, "0"));
            // N° record tipo E
            bw.append(Formatta("1", "D", 9, "0"));
            // Filler
            bw.append(Formatta(null, "S", 1846, " "));
            // 
            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!");
    }
}
Also used : OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) FileNotFoundException(java.io.FileNotFoundException) BufferedWriter(java.io.BufferedWriter) VSpesometroBulk(it.cnr.contab.docamm00.docs.bulk.VSpesometroBulk) Iterator(java.util.Iterator) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) GregorianCalendar(java.util.GregorianCalendar) IOException(java.io.IOException) Date(java.util.Date) ElaboraFileIntraComponentSession(it.cnr.contab.docamm00.ejb.ElaboraFileIntraComponentSession) ApplicationException(it.cnr.jada.comp.ApplicationException) AnagraficoComponentSession(it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession) FileOutputStream(java.io.FileOutputStream) ComponentException(it.cnr.jada.comp.ComponentException) OutputStreamWriter(java.io.OutputStreamWriter) RemoteException(java.rmi.RemoteException) EJBException(javax.ejb.EJBException) File(java.io.File)

Example 78 with AnagraficoBulk

use of it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk in project sigla-main by consiglionazionaledellericerche.

the class ElaboraFileSpesometroBP method init.

@Override
protected void init(Config config, ActionContext context) throws BusinessProcessException {
    try {
        super.init(config, context);
        AnagraficoComponentSession sess = (AnagraficoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRANAGRAF00_EJB_AnagraficoComponentSession", AnagraficoComponentSession.class);
        AnagraficoBulk ente = sess.getAnagraficoEnte(context.getUserContext());
        VSpesometroNewBulk bulk = new VSpesometroNewBulk();
        bulk.setNome_file(NazioneITType.IT + ente.getCodice_fiscale() + "_" + "DF" + "_" + "00001");
        setModel(context, bulk);
    } catch (Throwable e) {
        throw handleException(e);
    }
}
Also used : VSpesometroNewBulk(it.cnr.contab.docamm00.docs.bulk.VSpesometroNewBulk) AnagraficoComponentSession(it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk)

Example 79 with AnagraficoBulk

use of it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk in project sigla-main by consiglionazionaledellericerche.

the class ElaboraFileBlackListBP method doElaboraFile.

public void doElaboraFile(ActionContext context, VFatcomBlacklistBulk dett) throws BusinessProcessException, ComponentException, PersistencyException, IntrospectionException {
    try {
        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()).EstraiBlacklist(context.getUserContext(), getModel(), null);
        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);
        } catch (RemoteException e) {
            throw new ComponentException(e);
        } catch (EJBException e) {
            throw new ComponentException(e);
        }
        File f = new File(System.getProperty("tmp.dir.SIGLAWeb") + "/tmp/", // codice fiscale
        ente.getCodice_fiscale() + "_" + Formatta((CNRUserContext.getEsercizio(context.getUserContext())).toString().substring(2), "D", 2, "0") + "M" + Formatta(new Integer(dett.getMese()).toString(), "D", 2, "0") + ".ivl");
        OutputStream os = (OutputStream) new FileOutputStream(f);
        OutputStreamWriter osw = new OutputStreamWriter(os);
        BufferedWriter bw = new BufferedWriter(osw);
        AnagraficoBulk resp = null;
        if (!lista.isEmpty()) {
            try {
                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);
            }
            // parte iniziale fissa record A
            bw.append(new String("A"));
            bw.append(Formatta(null, "S", 14, " "));
            bw.append("IVL10");
            // Invio propri dati
            bw.append("01");
            bw.append(Formatta(ente.getCodice_fiscale(), "S", 16, " "));
            bw.append(Formatta(null, "S", 483, " "));
            bw.append(Formatta(null, "D", 4, "0"));
            bw.append(Formatta(null, "D", 4, "0"));
            bw.append(Formatta(null, "S", 100, " "));
            bw.append(Formatta(null, "S", 1068, " "));
            bw.append(Formatta(null, "S", 200, " "));
            bw.append("A");
            bw.append("\r\n");
            // fine record A
            // record B
            bw.append(new String("B"));
            bw.append(Formatta(ente.getCodice_fiscale(), "S", 16, " "));
            // Progressivo Modulo
            bw.append(Formatta("1", "D", 8, "0"));
            bw.append(Formatta(null, "S", 3, " "));
            bw.append(Formatta(null, "S", 25, " "));
            bw.append(Formatta(null, "S", 20, " "));
            // Codice fiscale produttore software (PRESIDENTE)
            bw.append(Formatta(resp.getCodice_fiscale(), "S", 16, " "));
            bw.append(Formatta(null, "D", 1, "0"));
            // correttiva nei termini
            bw.append("0");
            // integrativa
            bw.append("0");
            bw.append((CNRUserContext.getEsercizio(context.getUserContext())).toString());
            // Mese
            bw.append(Formatta(dett.getMese().toString(), "D", 2, "0"));
            // TRimestre
            bw.append("0");
            // Calcolo trimestre non serve
            // BigDecimal resto =new BigDecimal(dett.getMese().toString()).remainder(new BigDecimal("3"));
            // BigInteger trim_i =new BigInteger(dett.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
            // Varizione periodicità
            bw.append("0");
            bw.append(Formatta(ente.getPartita_iva(), "D", 11, "0"));
            // email
            bw.append(Formatta(null, "S", 100, " "));
            // tel
            bw.append(Formatta(null, "S", 12, " "));
            // fax
            bw.append(Formatta(null, "S", 12, " "));
            // Obbligatori se non è Persona Fisica
            // Cognome
            bw.append(Formatta(null, "S", 24, " "));
            // Nome
            bw.append(Formatta(null, "S", 20, " "));
            // sesso
            bw.append(Formatta(null, "D", 1, " "));
            // Comune nascita
            bw.append(Formatta(null, "S", 79, " "));
            // prov. nascita
            bw.append(Formatta(null, "S", 2, " "));
            // dt. nascita
            bw.append(Formatta(null, "D", 8, "0"));
            // Obbligatori se non è Persona Fisica
            bw.append(Formatta(ente.getRagione_sociale(), "S", 60, " "));
            // NATURA GIURIDICA ????????? messo 1 PERCHè OBBLIGATORIO
            bw.append(Formatta(config.getIm01().toString(), "D", 2, "0"));
            // Stato estero di residenza
            bw.append(Formatta(null, "S", 24, " "));
            // Codice paese estero
            bw.append(Formatta(null, "D", 3, "0"));
            // Numero di identificazione IVA estero
            bw.append(Formatta(null, "S", 24, " "));
            // codice fiscale rappresentante
            bw.append(Formatta(resp.getCodice_fiscale(), "S", 16, " "));
            // carica rappresentante  ??????? messo 2 PERCHè OBBLIGATORIO
            bw.append(Formatta(config.getIm02().toString(), "D", 2, "0"));
            // codice fiscale societa dichiarante
            bw.append(Formatta(ente.getCodice_fiscale(), "S", 11, " "));
            // cognome rappresentante     ???????????????
            bw.append(Formatta(resp.getCognome(), "S", 24, " "));
            // nome rappresentante     ???????????????
            bw.append(Formatta(resp.getNome(), "S", 20, " "));
            // sesso rappresentante     ???????????????
            bw.append(resp.getTi_sesso());
            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 {
                // COMUNE nascita rappresentante     ???????????????
                bw.append(Formatta(comune.getDs_comune(), "S", 40, " "));
                // PROV nascita rappresentante     ???????????????
                bw.append(Formatta(comune.getCd_provincia(), "S", 2, " "));
            }
            ComuneBulk comune_res = (ComuneBulk) sess.findByPrimaryKey(context.getUserContext(), new ComuneBulk(resp.getComune_fiscale().getPg_comune()));
            if (comune_res == null)
                throw new ApplicationException("Dati anagrafici del rappresentante non completi!");
            else {
                // COMUNE residenza rappresentante     ???????????????
                bw.append(Formatta(comune_res.getDs_comune(), "S", 40, " "));
                // PROV residenza rappresentante     ???????????????
                bw.append(Formatta(comune_res.getCd_provincia(), "S", 2, " "));
                // cap residenza rappresentante     ???????????????
                bw.append(Formatta(resp.getCap_comune_fiscale(), "D", 5, "0"));
                // via residenza rappresentante     ???????????????
                bw.append(Formatta(resp.getVia_fiscale() + " " + resp.getNum_civico_fiscale().toString(), "S", 35, " "));
                // tel rappresentante
                bw.append(Formatta(null, "S", 12, " "));
            }
            // Firma checkbox
            bw.append(Formatta(new Integer(lista.size()).toString(), "D", 8, "0"));
            // Firma checkbox
            bw.append(Formatta("1", "D", 1, "0"));
            // Sezione intermediario
            bw.append(Formatta(null, "S", 16, " "));
            bw.append(Formatta(null, "S", 5, "0"));
            // 
            bw.append(Formatta("0", "D", 1, "0"));
            bw.append(Formatta(null, "D", 8, "0"));
            // Firma intermediario
            bw.append(Formatta("0", "D", 1, "0"));
            // Filler
            bw.append(Formatta(null, "S", 1103, " "));
            // Filler
            bw.append(Formatta(null, "S", 20, " "));
            // Filler
            bw.append(Formatta(null, "S", 34, " "));
            bw.append("A");
            bw.append("\r\n");
            // fine record B
            Integer old_terzo = null;
            Integer conta = 0;
            // tipo record C parte fissa
            for (Iterator i = lista.iterator(); i.hasNext(); ) {
                VFatcomBlacklistBulk det = (VFatcomBlacklistBulk) i.next();
                if (old_terzo == null || (old_terzo != det.getCd_terzo())) {
                    bw.append("C");
                    conta++;
                    // codice fiscale
                    bw.append(Formatta(ente.getCodice_fiscale(), "S", 16, " "));
                    // Progressivo modulo (VALE 1)
                    bw.append(Formatta(conta.toString(), "D", 8, "0"));
                    // Filler campo utente
                    bw.append(Formatta(null, "S", 3, " "));
                    // Filler
                    bw.append(Formatta(null, "S", 25, " "));
                    // Filler campo utente x identificazione dichiarazione
                    bw.append(Formatta(null, "S", 20, " "));
                    // codice fiscale prod sw
                    bw.append(Formatta(resp.getCodice_fiscale(), "S", 16, " "));
                    // parte variabile
                    Integer limite_col = 75;
                    Integer num_col = 0;
                    // Campi non posizionali
                    if (det.getPersona().compareTo(AnagraficoBulk.FISICA) == 0) {
                        num_col = Formatta(det.getCognome(), "S", 16, " ", bw, "A100101A", num_col);
                        num_col = Formatta(det.getNome(), "S", 16, " ", bw, "A1001002", num_col);
                        if (det.getItaliano_estero().compareTo(NazioneBulk.ITALIA) == 0) {
                            // Dalla nazione di nascita
                            bw.append("A1001003");
                            dataNascita.setTime(new Date(det.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"));
                            num_col++;
                            num_col = Formatta(det.getComune_nascita(), "S", 16, " ", bw, "A1001004", num_col);
                            bw.append("A1001005");
                            bw.append(Formatta(det.getCd_provincia(), "S", 16, " "));
                            num_col++;
                        } else {
                            num_col = Formatta(det.getStato_nascita(), "S", 16, " ", bw, "A1001004", num_col);
                        }
                    } else {
                        num_col = Formatta(det.getRagione_sociale(), "S", 16, " ", bw, "A100101B", num_col);
                    }
                    bw.append("A1001006");
                    bw.append(Formatta(det.getCd_nazione(), "D", 16, " "));
                    num_col++;
                    num_col = Formatta(det.getDs_nazione(), "S", 16, " ", bw, "A1001007", num_col);
                    num_col = Formatta(det.getComune_sede(), "S", 16, " ", bw, "A1001008", num_col);
                    num_col = Formatta(det.getIndirizzo_sede(), "S", 16, " ", bw, "A1001009", num_col);
                    if (det.getId_fiscale_estero() != null) {
                        num_col = Formatta(det.getId_fiscale_estero(), "S", 16, " ", bw, "A1001010", num_col);
                    }
                    if (det.getCodice_fiscale() != null) {
                        num_col = Formatta(det.getCodice_fiscale(), "S", 16, " ", bw, "A1001011", num_col);
                    }
                    java.util.List lista_terzo = ((ElaboraFileIntraComponentSession) createComponentSession()).EstraiBlacklist(context.getUserContext(), getModel(), new TerzoBulk(det.getCd_terzo()));
                    BigDecimal TotBeniImpAttiva = BigDecimal.ZERO;
                    BigDecimal TotIvaBeniImpAttiva = BigDecimal.ZERO;
                    BigDecimal TotServiziImpAttiva = BigDecimal.ZERO;
                    BigDecimal TotIvaServiziImpAttiva = BigDecimal.ZERO;
                    BigDecimal TotBeniNoImpAttiva = BigDecimal.ZERO;
                    BigDecimal TotServiziNoImpAttiva = BigDecimal.ZERO;
                    BigDecimal TotEsentiAttiva = BigDecimal.ZERO;
                    BigDecimal TotBeniNoSogAttiva = BigDecimal.ZERO;
                    BigDecimal TotServiziNoSogAttiva = BigDecimal.ZERO;
                    BigDecimal TotBeniImpPassiva = BigDecimal.ZERO;
                    BigDecimal TotIvaBeniImpPassiva = BigDecimal.ZERO;
                    BigDecimal TotServiziImpPassiva = BigDecimal.ZERO;
                    BigDecimal TotIvaServiziImpPassiva = BigDecimal.ZERO;
                    BigDecimal TotBeniNoImpPassiva = BigDecimal.ZERO;
                    BigDecimal TotServiziNoImpPassiva = BigDecimal.ZERO;
                    BigDecimal TotEsentiPassiva = BigDecimal.ZERO;
                    BigDecimal TotBeniNoSogPassiva = BigDecimal.ZERO;
                    BigDecimal TotServiziNoSogPassiva = BigDecimal.ZERO;
                    for (Iterator k = lista_terzo.iterator(); k.hasNext(); ) {
                        VFatcomBlacklistBulk det_terzo = (VFatcomBlacklistBulk) k.next();
                        if (det_terzo.getTipo().compareTo("A") == 0) {
                            if (det_terzo.getBene_servizio().compareTo(Fattura_passivaBulk.FATTURA_DI_BENI) == 0) {
                                TotBeniImpAttiva = TotBeniImpAttiva.add(det_terzo.getImponibile());
                                TotIvaBeniImpAttiva = TotIvaBeniImpAttiva.add(det_terzo.getIva());
                                TotBeniNoImpAttiva = TotBeniNoImpAttiva.add(det_terzo.getImp_non_imp());
                                TotBeniNoSogAttiva = TotBeniNoSogAttiva.add(det_terzo.getImp_non_soggetto());
                            } else // servizi
                            {
                                TotServiziImpAttiva = TotServiziImpAttiva.add(det_terzo.getImponibile());
                                TotIvaServiziImpAttiva = TotIvaServiziImpAttiva.add(det_terzo.getIva());
                                TotServiziNoImpAttiva = TotServiziNoImpAttiva.add(det_terzo.getImp_non_imp());
                                TotServiziNoSogAttiva = TotServiziNoSogAttiva.add(det_terzo.getImp_non_soggetto());
                            }
                            TotEsentiAttiva = TotEsentiAttiva.add(det_terzo.getImp_esente());
                        } else {
                            // Passive
                            if (det_terzo.getBene_servizio().compareTo(Fattura_passivaBulk.FATTURA_DI_BENI) == 0) {
                                TotBeniImpPassiva = TotBeniImpPassiva.add(det_terzo.getImponibile());
                                TotIvaBeniImpPassiva = TotIvaBeniImpPassiva.add(det_terzo.getIva());
                                TotBeniNoImpPassiva = TotBeniNoImpPassiva.add(det_terzo.getImp_non_imp());
                                TotBeniNoSogPassiva = TotBeniNoSogPassiva.add(det_terzo.getImp_non_soggetto());
                            } else // servizi
                            {
                                TotServiziImpPassiva = TotServiziImpPassiva.add(det_terzo.getImponibile());
                                TotIvaServiziImpPassiva = TotIvaServiziImpPassiva.add(det_terzo.getIva());
                                TotServiziNoImpPassiva = TotServiziNoImpPassiva.add(det_terzo.getImp_non_imp());
                                TotServiziNoSogPassiva = TotServiziNoSogPassiva.add(det_terzo.getImp_non_soggetto());
                            }
                            TotEsentiPassiva = TotEsentiPassiva.add(det_terzo.getImp_esente());
                        }
                    }
                    old_terzo = det.getCd_terzo();
                    if (TotBeniImpAttiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1002001");
                        bw.append(Formatta(TotBeniImpAttiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotIvaBeniImpAttiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1003001");
                        bw.append(Formatta(TotIvaBeniImpAttiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotServiziImpAttiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1004001");
                        bw.append(Formatta(TotServiziImpAttiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotIvaServiziImpAttiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1005001");
                        bw.append(Formatta(TotIvaServiziImpAttiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotBeniNoImpAttiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1006001");
                        bw.append(Formatta(TotBeniNoImpAttiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotServiziNoImpAttiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1007001");
                        bw.append(Formatta(TotServiziNoImpAttiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotEsentiAttiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1008001");
                        bw.append(Formatta(TotEsentiAttiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotBeniNoSogAttiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1009001");
                        bw.append(Formatta(TotBeniNoSogAttiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotServiziNoSogAttiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1010001");
                        bw.append(Formatta(TotServiziNoSogAttiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    // Passive
                    if (TotBeniImpPassiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1019001");
                        bw.append(Formatta(TotBeniImpPassiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotIvaBeniImpPassiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1020001");
                        bw.append(Formatta(TotIvaBeniImpPassiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotServiziImpPassiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1021001");
                        bw.append(Formatta(TotServiziImpPassiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotIvaServiziImpPassiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1022001");
                        bw.append(Formatta(TotIvaServiziImpPassiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotBeniNoImpPassiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1023001");
                        bw.append(Formatta(TotBeniNoImpPassiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotServiziNoImpPassiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1024001");
                        bw.append(Formatta(TotServiziNoImpPassiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotEsentiPassiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1025001");
                        bw.append(Formatta(TotEsentiPassiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotBeniNoSogPassiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1026001");
                        bw.append(Formatta(TotBeniNoSogPassiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    if (TotServiziNoSogPassiva.compareTo(BigDecimal.ZERO) != 0) {
                        bw.append("A1027001");
                        bw.append(Formatta(TotServiziNoSogPassiva.toString(), "D", 16, " "));
                        num_col++;
                    }
                    bw.append(Formatta(null, "D", (limite_col - num_col) * 24, " "));
                    // Filler
                    bw.append(Formatta(null, "D", 8, " "));
                    // 
                    bw.append("A");
                    bw.append("\r\n");
                }
            // fine record C
            }
            // Tipo Record Z Coda
            // tipo record
            bw.append("Z");
            // Filler
            bw.append(Formatta(null, "S", 14, " "));
            // N° record tipo B
            bw.append(Formatta("1", "D", 9, "0"));
            // N° record tipo C
            bw.append(Formatta(new Integer(lista.size()).toString(), "D", 9, "0"));
            // Filler
            bw.append(Formatta(null, "S", 1864, " "));
            // 
            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!");
    }
}
Also used : OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) FileNotFoundException(java.io.FileNotFoundException) BufferedWriter(java.io.BufferedWriter) VFatcomBlacklistBulk(it.cnr.contab.docamm00.docs.bulk.VFatcomBlacklistBulk) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) Iterator(java.util.Iterator) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) GregorianCalendar(java.util.GregorianCalendar) IOException(java.io.IOException) Date(java.util.Date) BigDecimal(java.math.BigDecimal) ElaboraFileIntraComponentSession(it.cnr.contab.docamm00.ejb.ElaboraFileIntraComponentSession) ApplicationException(it.cnr.jada.comp.ApplicationException) AnagraficoComponentSession(it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession) FileOutputStream(java.io.FileOutputStream) ComponentException(it.cnr.jada.comp.ComponentException) OutputStreamWriter(java.io.OutputStreamWriter) RemoteException(java.rmi.RemoteException) EJBException(javax.ejb.EJBException) File(java.io.File) ComuneBulk(it.cnr.contab.anagraf00.tabter.bulk.ComuneBulk)

Aggregations

AnagraficoBulk (it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk)48 ApplicationException (it.cnr.jada.comp.ApplicationException)33 TerzoBulk (it.cnr.contab.anagraf00.core.bulk.TerzoBulk)31 PersistencyException (it.cnr.jada.persistency.PersistencyException)26 ComponentException (it.cnr.jada.comp.ComponentException)24 RemoteException (java.rmi.RemoteException)24 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)17 BigDecimal (java.math.BigDecimal)14 Timestamp (java.sql.Timestamp)14 ComuneBulk (it.cnr.contab.anagraf00.tabter.bulk.ComuneBulk)13 it.cnr.jada.bulk (it.cnr.jada.bulk)13 java.util (java.util)13 it.cnr.contab.anagraf00.core.bulk (it.cnr.contab.anagraf00.core.bulk)12 AnagraficoComponentSession (it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession)12 EJBException (javax.ejb.EJBException)12 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)11 Iterator (java.util.Iterator)11 AnagraficoHome (it.cnr.contab.anagraf00.core.bulk.AnagraficoHome)10 IOException (java.io.IOException)10 TerzoHome (it.cnr.contab.anagraf00.core.bulk.TerzoHome)9