Skip to content

Commit

Permalink
BugID: 1361 Gestione Split Payment
Browse files Browse the repository at this point in the history
  • Loading branch information
rpucciarelli committed Mar 2, 2015
1 parent 10406fc commit d5c1dcd
Show file tree
Hide file tree
Showing 16 changed files with 151 additions and 46 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public class Configurazione_cnrBulk extends Configurazione_cnrBase {

public final static String PK_LIMITE_UTILIZZO_CONTANTI = "LIMITE_UTILIZZO_CONTANTI";
public final static String SK_LIMITE1 = "LIMITE1";

public final static String PK_SPLIT_PAYMENT = "SPLIT_PAYMENT";
public final static String PK_CONTO_CORRENTE_BANCA_ITALIA = "CONTO_CORRENTE_BANCA_ITALIA";
public final static String SK_CODICE = "CODICE";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;

import javax.ejb.EJBException;

Expand Down Expand Up @@ -614,7 +615,7 @@ private Forward basicDoRicercaAccertamento(
new Filtro_ricerca_accertamentiVBulk();
filtro.setData_scadenziario(fatturaAttiva.getDt_scadenza());
filtro.setCliente(fatturaAttiva.getCliente());
filtro.setIm_importo(calcolaTotaleSelezionati(models));
filtro.setIm_importo(calcolaTotaleSelezionati(models,fatturaAttiva.quadraturaInDeroga()));
filtro.setCd_unita_organizzativa(fatturaAttiva.getCd_unita_organizzativa());
filtro.setCd_uo_origine(fatturaAttiva.getCd_uo_origine());
filtro.setHasDocumentoCompetenzaCOGEInAnnoPrecedente(fatturaAttiva.hasCompetenzaCOGEInAnnoPrecedente());
Expand Down Expand Up @@ -648,25 +649,35 @@ private Forward basicDoRicercaAccertamento(
* @return
* @throws ApplicationException
*/
protected java.math.BigDecimal calcolaTotaleSelezionati(java.util.List selectedModels)
protected java.math.BigDecimal calcolaTotaleSelezionati(java.util.List selectedModels,
boolean escludiIVA)
throws it.cnr.jada.comp.ApplicationException {

java.math.BigDecimal importo = new java.math.BigDecimal(0);

if (selectedModels != null) {
for (java.util.Iterator i = selectedModels.iterator(); i.hasNext();) {
Fattura_attiva_rigaBulk rigaSelected = (Fattura_attiva_rigaBulk)i.next();
java.math.BigDecimal imTotale = rigaSelected.getIm_imponibile().add(rigaSelected.getIm_iva());
java.math.BigDecimal imTotale =(escludiIVA) ?
rigaSelected.getIm_imponibile() :
rigaSelected.getIm_imponibile().add(rigaSelected.getIm_iva());

java.math.BigDecimal imStornati = new java.math.BigDecimal(0).setScale(2, java.math.BigDecimal.ROUND_HALF_UP );
java.math.BigDecimal imAddebitati = new java.math.BigDecimal(0).setScale(2, java.math.BigDecimal.ROUND_HALF_UP );
if (rigaSelected instanceof Fattura_attiva_rigaIBulk) {
imStornati = imStornati.add(((Fattura_attiva_rigaIBulk)rigaSelected).getIm_totale_storni());
imAddebitati = imAddebitati.add(((Fattura_attiva_rigaIBulk)rigaSelected).getIm_totale_addebiti());
Fattura_attiva_rigaIBulk dettaglioFatturaAttiva = (Fattura_attiva_rigaIBulk)rigaSelected;
java.math.BigDecimal impStorniDiRiga = (escludiIVA) ?
calcolaTotaleSelezionati((Vector)dettaglioFatturaAttiva.getFattura_attivaI().getStorniHashMap().get(dettaglioFatturaAttiva), true) :
dettaglioFatturaAttiva.getIm_totale_storni();
imStornati = imStornati.add(impStorniDiRiga);
java.math.BigDecimal impAddebitiDiRiga = (escludiIVA) ?
calcolaTotaleSelezionati((Vector)dettaglioFatturaAttiva.getFattura_attivaI().getAddebitiHashMap().get(dettaglioFatturaAttiva), true) :
dettaglioFatturaAttiva.getIm_totale_addebiti();
imAddebitati = imAddebitati.add(impAddebitiDiRiga);
}
importo = importo.add(imTotale.add(imAddebitati).subtract(imStornati));
}
importo = importo.add(imTotale.add(imAddebitati).subtract(imStornati));
}
}

importo = importo.setScale(2, java.math.BigDecimal.ROUND_HALF_UP );
return importo;
}
Expand Down Expand Up @@ -1390,15 +1401,17 @@ public Forward doBringBackSearchCliente(
//richiamo il metodo della component completaterzo
fattura_attiva =
fpcs.completaTerzo(context.getUserContext(), fattura_attiva, fornitoreTrovato);

if (!(fattura_attiva.getFl_extra_ue()||fattura_attiva.getFl_intra_ue()||fattura_attiva.getFl_san_marino())){
//imposto il flag liquidazione differita
if (fattura_attiva.getCliente().getAnagrafico() != null &&
if (fattura_attiva.getCliente().getAnagrafico() != null &&
(fattura_attiva.getCliente().getAnagrafico().getFl_fatturazione_differita()!= null &&
fattura_attiva.getCliente().getAnagrafico().getFl_fatturazione_differita().booleanValue()) &&
(fattura_attiva.getFl_liquidazione_differita() != null &&
!fattura_attiva.getFl_liquidazione_differita().booleanValue()))
(fattura_attiva.getFl_liquidazione_differita() != null && !fattura_attiva.getFl_liquidazione_differita().booleanValue()))
fattura_attiva.setFl_liquidazione_differita(Boolean.TRUE);

if (fattura_attiva.getCliente().getAnagrafico() != null &&
(fattura_attiva.getCliente().getAnagrafico().isEntePubblico() && !fattura_attiva.getFl_liquidazione_differita().booleanValue()))
openMessage(context, "Verificare che l'ente pubblico non sia soggetto a split payment ed eventualmente aggiornare l'anagrafica.");
}
crudFattura.setModel(context,fattura_attiva);
crudFattura.resyncChildren(context);

Expand Down Expand Up @@ -1506,7 +1519,7 @@ public Forward doCalcolaTotalePerAccertamento(ActionContext context, Accertament
//calcolo il totale per l'accertamento
if (fatt.getFattura_attiva_accertamentiHash() != null && scadenza != null)
try {
fatt.setImportoTotalePerAccertamento(calcolaTotaleSelezionati((java.util.List)fatt.getFattura_attiva_accertamentiHash().get(scadenza)));
fatt.setImportoTotalePerAccertamento(calcolaTotaleSelezionati((java.util.List)fatt.getFattura_attiva_accertamentiHash().get(scadenza),fatt.quadraturaInDeroga()));
} catch (it.cnr.jada.comp.ApplicationException e) {
fatt.setImportoTotalePerAccertamento(new java.math.BigDecimal(0).setScale(2, java.math.BigDecimal.ROUND_HALF_UP ));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -550,7 +550,7 @@ public Forward doCalcolaTotalePerObbligazione(ActionContext context, Obbligazion
Nota_di_credito_attivaBulk ndC = (Nota_di_credito_attivaBulk)bp.getModel();
if (ndC.getObbligazioniHash() != null && scadenza != null)
try {
ndC.setImportoTotalePerObbligazioni(calcolaTotaleSelezionati((java.util.List)ndC.getObbligazioniHash().get(scadenza)));
ndC.setImportoTotalePerObbligazioni(calcolaTotaleSelezionati((java.util.List)ndC.getObbligazioniHash().get(scadenza),ndC.quadraturaInDeroga()));
} catch (it.cnr.jada.comp.ApplicationException e) {
ndC.setImportoTotalePerObbligazioni(new java.math.BigDecimal(0).setScale(2, java.math.BigDecimal.ROUND_HALF_UP));
}
Expand Down Expand Up @@ -1571,7 +1571,7 @@ private Forward basicDoRicercaObbligazione(
Filtro_ricerca_obbligazioniVBulk filtro = new Filtro_ricerca_obbligazioniVBulk();
filtro.setData_scadenziario(nc_attiva.getDt_scadenza());
filtro.setFornitore(nc_attiva.getCliente());
filtro.setIm_importo(calcolaTotaleSelezionati(models));
filtro.setIm_importo(calcolaTotaleSelezionati(models,nc_attiva.quadraturaInDeroga()));
filtro.setCd_unita_organizzativa(nc_attiva.getCd_uo_origine());
filtro.setHasDocumentoCompetenzaCOGEInAnnoPrecedente(nc_attiva.hasCompetenzaCOGEInAnnoPrecedente());
filtro.setHasDocumentoCompetenzaCOGESoloInAnnoCorrente(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ private Forward basicDoAddebitaDettagli(
new String[] { Nota_di_debito_attivaBulk.STATO_PARZIALE, Nota_di_debito_attivaBulk.STATO_PAGATO });

if (dettagliDaAddebitare != null && !dettagliDaAddebitare.isEmpty()) {
it.cnr.jada.util.RemoteIterator ri = ((FatturaAttivaSingolaComponentSession)bp.createComponentSession()).findAccertamentiFor(context.getUserContext(), notaDiDebito, calcolaTotaleSelezionati(dettagliDaAddebitare));
it.cnr.jada.util.RemoteIterator ri = ((FatturaAttivaSingolaComponentSession)bp.createComponentSession()).findAccertamentiFor(context.getUserContext(), notaDiDebito, calcolaTotaleSelezionati(dettagliDaAddebitare,notaDiDebito.quadraturaInDeroga()));
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context, ri);
if (ri != null && ri.hasMoreElements()) {
it.cnr.jada.util.action.SelezionatoreListaBP slbp = select(context, ri, it.cnr.jada.bulk.BulkInfo.getBulkInfo(Fattura_attiva_rigaIBulk.class), "default", "doSelezionaDettagli");
Expand Down
Loading

0 comments on commit d5c1dcd

Please sign in to comment.