it.cnr.contab.docamm00.actions.CRUDFatturaPassivaElettronicaAction Maven / Gradle / Ivy
/*
* Copyright (C) 2019 Consiglio Nazionale delle Ricerche
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package it.cnr.contab.docamm00.actions;
import it.cnr.contab.anagraf00.bp.CRUDTerzoBP;
import it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk;
import it.cnr.contab.anagraf00.core.bulk.Modalita_pagamentoBulk;
import it.cnr.contab.anagraf00.core.bulk.TerzoBulk;
import it.cnr.contab.docamm00.bp.CRUDFatturaPassivaBP;
import it.cnr.contab.docamm00.bp.CRUDFatturaPassivaElettronicaBP;
import it.cnr.contab.docamm00.docs.bulk.Fattura_passivaBulk;
import it.cnr.contab.docamm00.ejb.FatturaElettronicaPassivaComponentSession;
import it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleIvaBulk;
import it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleTestataBulk;
import it.cnr.contab.utenze00.bulk.CNRUserInfo;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.action.Forward;
import it.cnr.jada.action.HookForward;
import it.cnr.jada.action.HttpActionContext;
import it.cnr.jada.action.MessageToUser;
import it.cnr.jada.bulk.FillException;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.util.RemoteIterator;
import it.cnr.jada.util.action.*;
import it.cnr.jada.util.ejb.EJBCommonServices;
import it.gov.agenziaentrate.ivaservizi.docs.xsd.fatture.v1.RegimeFiscaleType;
import it.gov.agenziaentrate.ivaservizi.docs.xsd.fatture.v1.SoggettoEmittenteType;
import java.math.BigDecimal;
import java.rmi.RemoteException;
import java.util.Iterator;
import javax.ejb.RemoveException;
public class CRUDFatturaPassivaElettronicaAction extends CRUDAction {
private static final long serialVersionUID = 1L;
@Override
public Forward doCerca(ActionContext actioncontext) throws RemoteException,
InstantiationException, RemoveException {
try {
CRUDFatturaPassivaElettronicaBP fatturaPassivaElettronicaBP = (CRUDFatturaPassivaElettronicaBP) actioncontext.getBusinessProcess();
DocumentoEleTestataBulk bulk = (DocumentoEleTestataBulk) fatturaPassivaElettronicaBP.getModel();
fillModel(actioncontext);
RemoteIterator remoteiterator = fatturaPassivaElettronicaBP.find(actioncontext, null, bulk);
if(remoteiterator == null || remoteiterator.countElements() == 0)
{
EJBCommonServices.closeRemoteIterator(actioncontext,remoteiterator);
fatturaPassivaElettronicaBP.setMessage("La ricerca non ha fornito alcun risultato.");
return actioncontext.findDefaultForward();
}
if(remoteiterator.countElements() == 1)
{
OggettoBulk oggettobulk1 = (OggettoBulk)remoteiterator.nextElement();
EJBCommonServices.closeRemoteIterator(actioncontext,remoteiterator);
fatturaPassivaElettronicaBP.setMessage(FormBP.INFO_MESSAGE,"La ricerca ha fornito un solo risultato.");
return doRiportaSelezione(actioncontext, oggettobulk1);
} else
{
fatturaPassivaElettronicaBP.setModel(actioncontext, bulk);
SelezionatoreListaBP selezionatorelistabp = (SelezionatoreListaBP)actioncontext.createBusinessProcess("SelezionatoreFatturaElettronicaBP");
selezionatorelistabp.setModel(actioncontext, bulk);
selezionatorelistabp.setIterator(actioncontext, remoteiterator);
selezionatorelistabp.setBulkInfo(fatturaPassivaElettronicaBP.getSearchBulkInfo());
selezionatorelistabp.setColumns(getBusinessProcess(actioncontext).getSearchResultColumns());
actioncontext.addHookForward("seleziona", this, "doRiportaSelezione");
return actioncontext.addBusinessProcess(selezionatorelistabp);
}
} catch (Exception e) {
return handleException(actioncontext, e);
}
}
public static class SelezionatoreFatturaPassivaElettronicaAction extends SelezionatoreListaAction {
private static final long serialVersionUID = 1L;
public SelezionatoreFatturaPassivaElettronicaAction() {
super();
}
public Forward doCambiaVisibilita(ActionContext actioncontext)
throws RemoteException {
SelezionatoreListaBP bp = (SelezionatoreListaBP)actioncontext.getBusinessProcess();
DocumentoEleTestataBulk bulk = (DocumentoEleTestataBulk)bp.getModel();
try {
fillModel(actioncontext);
String statoDocumento = bulk.getStatoDocumento();
if (statoDocumento.equalsIgnoreCase(DocumentoEleTestataBulk.STATO_DOCUMENTO_TUTTI))
bulk.setStatoDocumento(null);
EJBCommonServices.closeRemoteIterator(actioncontext,bp.detachIterator());
bp.setIterator(actioncontext, ((FatturaElettronicaPassivaComponentSession)
bp.createComponentSession("CNRDOCAMM00_EJB_FatturaElettronicaPassivaComponentSession", FatturaElettronicaPassivaComponentSession.class)).
cerca(actioncontext.getUserContext(), null, bulk));
bp.refresh(actioncontext);
bulk.setStatoDocumento(statoDocumento);
return actioncontext.findDefaultForward();
} catch(Throwable e) {
bulk.setStatoDocumento(null);
return handleException(actioncontext,e);
}
}
}
public Forward doBringBackCRUDPrestatore(ActionContext context, DocumentoEleTestataBulk bulk, TerzoBulk terzo) {
if (terzo != null) {
if (terzo.getAnagrafico().getPartita_iva() == null)
throw new MessageToUser("Terzo non valido! Partita IVA obbligatoria!");
if (terzo.getAnagrafico().getCodice_fiscale() == null)
throw new MessageToUser("Terzo non valido! Codice Fiscale obbligatorio!");
if (bulk.getDocumentoEleTrasmissione().getPrestatoreCodicefiscale() != null) {
if (!bulk.getDocumentoEleTrasmissione().getPrestatoreCodicefiscale().equals(terzo.getAnagrafico().getCodice_fiscale()))
throw new MessageToUser("Terzo non valido! Codice Fiscale non congruente!");
}
if (bulk.getDocumentoEleTrasmissione().getPrestatoreCodice() != null) {
if (!bulk.getDocumentoEleTrasmissione().getPrestatoreCodice().equals(terzo.getAnagrafico().getPartita_iva()))
throw new MessageToUser("Terzo non valido! Partita IVA non congruente!");
}
bulk.getDocumentoEleTrasmissione().setPrestatore(terzo);
bulk.getDocumentoEleTrasmissione().setPrestatoreAnag(terzo.getAnagrafico());
}
return context.findDefaultForward();
}
@SuppressWarnings("unchecked")
public Forward doBringBackCRUDModalitaPagamento(ActionContext context, DocumentoEleTestataBulk bulk, TerzoBulk terzo) {
if (terzo != null) {
if (!terzo.equalsByPrimaryKey(bulk.getDocumentoEleTrasmissione().getPrestatore()))
throw new MessageToUser("Il Terzo selezionato non è valido!");
Modalita_pagamentoBulk modalitaPagamento = null;
for (Iterator iterator = terzo.getModalita_pagamento().iterator(); iterator.hasNext();) {
Modalita_pagamentoBulk modPag = iterator.next();
if (modPag.getRif_modalita_pagamento().getTipoPagamentoSdi() != null &&
modPag.getRif_modalita_pagamento().getTipoPagamentoSdi().equals(bulk.getBeneficiarioModPag()))
modalitaPagamento = modPag;
}
if (modalitaPagamento == null )
throw new MessageToUser("La Modalità di pagamento non è valida!");
bulk.setModalitaPagamento(modalitaPagamento);
}
return context.findDefaultForward();
}
public Forward doCRUDModalitaPagamento(ActionContext context) throws FillException, BusinessProcessException {
CRUDFatturaPassivaElettronicaBP fatturaPassivaElettronicaBP = (CRUDFatturaPassivaElettronicaBP) context.getBusinessProcess();
DocumentoEleTestataBulk bulk = (DocumentoEleTestataBulk) fatturaPassivaElettronicaBP.getModel();
AnagraficoBulk anagrafico = null;
TerzoBulk terzo = null;
if (bulk.getDocumentoEleTrasmissione().getSoggettoEmittente() != null &&
bulk.getDocumentoEleTrasmissione().getSoggettoEmittente().equals(SoggettoEmittenteType.TZ.value())) {
if (bulk.getDocumentoEleTrasmissione().getIntermediarioCdTerzo() != null){
anagrafico = bulk.getDocumentoEleTrasmissione().getIntermediarioAnag();
terzo = bulk.getDocumentoEleTrasmissione().getIntermediario();
} else if (bulk.getDocumentoEleTrasmissione().getRappresentanteCdTerzo() != null) {
anagrafico = bulk.getDocumentoEleTrasmissione().getRappresentanteAnag();
terzo = bulk.getDocumentoEleTrasmissione().getRappresentante();
} else {
anagrafico = bulk.getDocumentoEleTrasmissione().getPrestatoreAnag();
terzo = bulk.getDocumentoEleTrasmissione().getPrestatore();
}
} else {
anagrafico = bulk.getDocumentoEleTrasmissione().getPrestatoreAnag();
terzo = bulk.getDocumentoEleTrasmissione().getPrestatore();
}
FormField formfield = getFormField(context, "main.modalitaPagamento");
try {
CRUDTerzoBP nbp = (CRUDTerzoBP)context.createBusinessProcess("CRUDTerzoBP",
new Object[] {"M", anagrafico}
);
nbp.basicEdit(context, terzo, true);
nbp.setTab("tab", "tabModalitaPagamento");
context.addHookForward("bringback", this, "doBringBackCRUD");
HookForward hookforward = (HookForward)context.findForward("bringback");
hookforward.addParameter("field", formfield);
nbp.setBringBack(true);
return context.addBusinessProcess(nbp);
} catch(Throwable e) {
return handleException(context,e);
}
}
public Forward doReinviaEsito(ActionContext context) throws FillException, BusinessProcessException {
CRUDFatturaPassivaElettronicaBP fatturaPassivaElettronicaBP = (CRUDFatturaPassivaElettronicaBP) context.getBusinessProcess();
DocumentoEleTestataBulk bulk = (DocumentoEleTestataBulk) fatturaPassivaElettronicaBP.getModel();
try {
fatturaPassivaElettronicaBP.reinviaEsito(context, bulk);
fatturaPassivaElettronicaBP.setMessage("Esito inviato correttamente, in attesa di risposta dal Sistema di Interscambio.");
return context.findDefaultForward();
} catch(Throwable e) {
return handleException(context,e);
}
}
public Forward doConfirmRifiutaFattura(ActionContext context, it.cnr.jada.util.action.OptionBP option) throws BusinessProcessException {
CRUDFatturaPassivaElettronicaBP fatturaPassivaElettronicaBP = (CRUDFatturaPassivaElettronicaBP) context.getBusinessProcess();
DocumentoEleTestataBulk bulk = (DocumentoEleTestataBulk) fatturaPassivaElettronicaBP.getModel();
try {
if (option.getOption() == it.cnr.jada.util.action.OptionBP.YES_BUTTON) {
Object motivoRifiuto = ((HttpActionContext)context).getRequest().getParameter("main.motivoRifiuto");
if (motivoRifiuto != null && String.valueOf(motivoRifiuto).length() > 0) {
bulk.setMotivoRifiuto(String.valueOf(motivoRifiuto));
fatturaPassivaElettronicaBP.rifiutaFattura(context, bulk);
} else {
fatturaPassivaElettronicaBP.setMessage("Il Motivo del rifiuto è obbligatorio!");
}
}
} catch (Exception e) {
return handleException(context,e);
}
return context.findDefaultForward();
}
public Forward doRifiutaFattura(ActionContext context) throws FillException, BusinessProcessException {
try {
CRUDFatturaPassivaElettronicaBP fatturaPassivaElettronicaBP = (CRUDFatturaPassivaElettronicaBP) context.getBusinessProcess();
DocumentoEleTestataBulk bulk = (DocumentoEleTestataBulk) fatturaPassivaElettronicaBP.getModel();
if (bulk.getFlDecorrenzaTermini().equalsIgnoreCase("S")) {
fatturaPassivaElettronicaBP.setMessage("Ricevuta decorrenza termini - non è possibile effettuare il Rifiuto. Registrare il documento e richiedere nota credito, oppure rifiutare il documento secondo le modalità di invio PEC (Vedere Manuale)!");
} else {
String message = "Inserire il motivo di rifiuto della fattura:";
message += "";
openConfirm( context, message, it.cnr.jada.util.action.OptionBP.CONFIRM_YES_NO, "doConfirmRifiutaFattura");
}
return context.findDefaultForward();
} catch (Exception e) {
return handleException(context,e);
}
}
public Forward doCompilaFattura(ActionContext context) throws FillException, BusinessProcessException {
try {
CRUDFatturaPassivaElettronicaBP fatturaPassivaElettronicaBP = (CRUDFatturaPassivaElettronicaBP) context.getBusinessProcess();
DocumentoEleTestataBulk bulk = (DocumentoEleTestataBulk) fatturaPassivaElettronicaBP.getModel();
BigDecimal tot_riepilogo=BigDecimal.ZERO;
boolean hasAccesso = ((it.cnr.contab.utente00.nav.ejb.GestioneLoginComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRUTENZE00_NAV_EJB_GestioneLoginComponentSession")).controllaAccesso(context.getUserContext(), "AMMFATTURDOCSFATPASA");
if (bulk.getImportoDocumento() == null) {
fatturaPassivaElettronicaBP.setMessage("Prima di procedere verificare il totale del documento!");
return context.findDefaultForward();
} else if (!bulk.getDocEleIVAColl().isEmpty()){
for(Iterator i=bulk.getDocEleIVAColl().iterator();i.hasNext();)
{
DocumentoEleIvaBulk rigaEle=(DocumentoEleIvaBulk)i.next();
// prof
if ((bulk.getDocEleTributiColl()!=null && !bulk.getDocEleTributiColl().isEmpty())
||(bulk.getDocumentoEleTrasmissione().getRegimefiscale()!= null &&
(bulk.getDocumentoEleTrasmissione().getRegimefiscale().equals(RegimeFiscaleType.RF_02.name()) ||
bulk.getDocumentoEleTrasmissione().getRegimefiscale().equals(RegimeFiscaleType.RF_19.name())))) {
if (!bulk.isAttivoSplitPaymentProf() && (rigaEle.getImposta()!=null && rigaEle.getImposta().compareTo(BigDecimal.ZERO)!=0) &&
rigaEle.getEsigibilitaIva()!=null && rigaEle.getEsigibilitaIva().compareTo("I")!=0 && !hasAccesso ) {
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd/MM/yyyy");
fatturaPassivaElettronicaBP.setMessage("La tipologia di esigibilità IVA non deve essere di tipo 'Differita' "
+ "o 'Split Payment'"
+ (fatturaPassivaElettronicaBP.getDataAttivazioneSplitProf()!=null?
" per documenti con data emissione antecedente al "+sdf.format(fatturaPassivaElettronicaBP.getDataAttivazioneSplitProf()):"")
+(fatturaPassivaElettronicaBP.getDataDisattivazioneSplitProf()!=null?
" o successiva al "+sdf.format(fatturaPassivaElettronicaBP.getDataDisattivazioneSplitProf()):"")
+ ". Il documento deve essere rifiutato!");
return context.findDefaultForward();
}
}else{
if (!bulk.isAttivoSplitPayment() && rigaEle.getEsigibilitaIva()!=null && rigaEle.getEsigibilitaIva().compareTo("I")!=0) {
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd/MM/yyyy");
fatturaPassivaElettronicaBP.setMessage("La tipologia di esigibilità IVA non deve essere di tipo 'Differita' "
+ "o 'Split Payment'"
+ (fatturaPassivaElettronicaBP.getDataAttivazioneSplit()!=null?
" per documenti con data emissione antecedente al "+sdf.format(fatturaPassivaElettronicaBP.getDataAttivazioneSplit()):"")
+(fatturaPassivaElettronicaBP.getDataDisattivazioneSplit()!=null?
" o successiva al "+sdf.format(fatturaPassivaElettronicaBP.getDataDisattivazioneSplit()):"")
+ ". Il documento deve essere rifiutato!");
return context.findDefaultForward();
}
}
if (rigaEle.getImponibileImporto()!=null)
tot_riepilogo=tot_riepilogo.add(rigaEle.getImponibileImporto());
if (rigaEle.getImposta()!=null)
tot_riepilogo=tot_riepilogo.add(rigaEle.getImposta());
}
if(bulk.getImportoDocumento().compareTo(BigDecimal.ZERO)==0 && bulk.getImportoDocumento() .compareTo(tot_riepilogo)!=0) {
fatturaPassivaElettronicaBP.setMessage("Prima di procedere verificare il totale del documento!");
return context.findDefaultForward();
}
}
if ((bulk.getDocEleTributiColl()!=null && !bulk.getDocEleTributiColl().isEmpty())
||(bulk.getDocumentoEleTrasmissione().getRegimefiscale()!= null &&
(bulk.getDocumentoEleTrasmissione().getRegimefiscale().equals(RegimeFiscaleType.RF_02.name()) ||
bulk.getDocumentoEleTrasmissione().getRegimefiscale().equals(RegimeFiscaleType.RF_19.name()))))
{
if (bulk.isAttivoSplitPaymentProf()) {
if (!bulk.isDocumentoSplitPaymentProf() && !Fattura_passivaBulk.TIPO_NOTA_DI_CREDITO.equals(bulk.getTipoDocumentoSIGLA()) &&
!bulk.getDocumentoEleTrasmissione().getRegimefiscale().equals(RegimeFiscaleType.RF_12.name()) &&
!bulk.getDocumentoEleTrasmissione().getRegimefiscale().equals(RegimeFiscaleType.RF_04.name())
&& !hasAccesso
) {
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd/MM/yyyy");
fatturaPassivaElettronicaBP.setMessage("La tipologia di esigibilità IVA deve essere di tipo 'Split Payment'"
+ (fatturaPassivaElettronicaBP.getDataAttivazioneSplitProf()!=null?
" per documenti con data emissione dal "+sdf.format(fatturaPassivaElettronicaBP.getDataAttivazioneSplitProf()):"")
+ (fatturaPassivaElettronicaBP.getDataDisattivazioneSplitProf()!=null?
" per documenti con data emissione al "+sdf.format(fatturaPassivaElettronicaBP.getDataDisattivazioneSplitProf()):"")
+ ". Il documento deve essere rifiutato!");
return context.findDefaultForward();
}
}
}
else{
if (bulk.isAttivoSplitPayment()) {
if (!bulk.isDocumentoSplitPayment() && !Fattura_passivaBulk.TIPO_NOTA_DI_CREDITO.equals(bulk.getTipoDocumentoSIGLA()) &&
!bulk.getDocumentoEleTrasmissione().getRegimefiscale().equals(RegimeFiscaleType.RF_12.name()) &&
!bulk.getDocumentoEleTrasmissione().getRegimefiscale().equals(RegimeFiscaleType.RF_04.name())
&& !hasAccesso
) {
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd/MM/yyyy");
fatturaPassivaElettronicaBP.setMessage("La tipologia di esigibilità IVA deve essere di tipo 'Split Payment'"
+ (fatturaPassivaElettronicaBP.getDataAttivazioneSplit()!=null?
" per documenti con data emissione dal "+sdf.format(fatturaPassivaElettronicaBP.getDataAttivazioneSplit()):"")
+ (fatturaPassivaElettronicaBP.getDataDisattivazioneSplit()!=null?
" per documenti con data emissione al "+sdf.format(fatturaPassivaElettronicaBP.getDataDisattivazioneSplit()):"")
+ ". Il documento deve essere rifiutato!");
return context.findDefaultForward();
}
}
}
String message = "La compilazione della Fattura e il suo successivo salvataggio, ";
message += "comporta l'accettazione del documento elettronico.
Si desidera procedere?";
return openConfirm( context, message, it.cnr.jada.util.action.OptionBP.CONFIRM_YES_NO, "doConfirmCompilaFattura");
} catch (Exception e) {
return handleException(context,e);
}
}
public Forward doBringBackCompilaFattura(ActionContext context) throws RemoteException {
try{
CRUDFatturaPassivaElettronicaBP fatturaPassivaElettronicaBP = (CRUDFatturaPassivaElettronicaBP) context.getBusinessProcess();
fatturaPassivaElettronicaBP.edit(context, (OggettoBulk) fatturaPassivaElettronicaBP.createComponentSession().findByPrimaryKey(context.getUserContext(), fatturaPassivaElettronicaBP.getModel()));
return super.doDefault(context);
} catch(BusinessProcessException businessprocessexception){
return handleException(context, businessprocessexception);
} catch (ComponentException e) {
return handleException(context, e);
}
}
public Forward doVisualizzaFattura(ActionContext context) throws FillException, BusinessProcessException {
CRUDFatturaPassivaElettronicaBP fatturaPassivaElettronicaBP = (CRUDFatturaPassivaElettronicaBP) context.getBusinessProcess();
DocumentoEleTestataBulk bulk = (DocumentoEleTestataBulk) fatturaPassivaElettronicaBP.getModel();
try {
CRUDFatturaPassivaBP nbp = (CRUDFatturaPassivaBP)context.createBusinessProcess(bulk.getBusinessProcessFattura(),
new Object[] {"M"}
);
nbp = (CRUDFatturaPassivaBP) context.addBusinessProcess(nbp);
nbp.edit(context, ((FatturaElettronicaPassivaComponentSession)fatturaPassivaElettronicaBP.createComponentSession()).
cercaFatturaPassiva(context.getUserContext(), bulk));
return nbp;
} catch(Throwable e) {
return handleException(context,e);
}
}
public Forward doConfirmCompilaFattura(ActionContext context, it.cnr.jada.util.action.OptionBP option) throws FillException, BusinessProcessException {
if (option.getOption() == it.cnr.jada.util.action.OptionBP.YES_BUTTON) {
CRUDFatturaPassivaElettronicaBP fatturaPassivaElettronicaBP = (CRUDFatturaPassivaElettronicaBP) context.getBusinessProcess();
DocumentoEleTestataBulk bulk = (DocumentoEleTestataBulk) fatturaPassivaElettronicaBP.getModel();
CRUDFatturaPassivaAction action = new CRUDFatturaPassivaAction();
CRUDFatturaPassivaBP nbp = null;
try {
nbp = (CRUDFatturaPassivaBP)context.createBusinessProcess("CRUDFatturaPassivaBP",
new Object[] {"M"}
);
String mode = it.cnr.contab.utenze00.action.GestioneUtenteAction.getComponentSession().
validaBPPerUtente(context.getUserContext(),((CNRUserInfo)context.getUserInfo()).getUtente(),
((CNRUserInfo)context.getUserInfo()).getUtente().isUtenteComune() ?
((CNRUserInfo)context.getUserInfo()).getUnita_organizzativa().getCd_unita_organizzativa() :
"*","CRUDFatturaPassivaBP");
if (mode == null || mode.equals("V"))
throw new it.cnr.jada.action.MessageToUser("Accesso non consentito alla mappa di creazione delle fatture. Impossibile continuare.");
if (bulk.getTipoDocumentoSIGLA().equalsIgnoreCase(Fattura_passivaBulk.TIPO_NOTA_DI_CREDITO)) {
if(bulk.getModalitaPagamento()==null)
throw new it.cnr.jada.action.MessageToUser("Prima di procedere indicare la modalità di pagamento!");
}
context.addHookForward("default",this,"doBringBackCompilaFattura");
nbp = (CRUDFatturaPassivaBP) context.addBusinessProcess(nbp);
if (bulk.getTipoDocumentoSIGLA().equalsIgnoreCase(Fattura_passivaBulk.TIPO_NOTA_DI_CREDITO) ||
bulk.getTipoDocumentoSIGLA().equalsIgnoreCase(Fattura_passivaBulk.TIPO_NOTA_DI_DEBITO)) {
Fattura_passivaBulk fatturaPassivaBulk = ((FatturaElettronicaPassivaComponentSession)fatturaPassivaElettronicaBP.createComponentSession()).
cercaFatturaPassivaForNota(context.getUserContext(), bulk);
nbp.edit(context, fatturaPassivaBulk);
nbp.setFromFatturaElettronica(Boolean.TRUE);
CRUDFatturaPassivaBP notaBp = null;
if (bulk.getTipoDocumentoSIGLA().equalsIgnoreCase(Fattura_passivaBulk.TIPO_NOTA_DI_CREDITO))
notaBp = (CRUDFatturaPassivaBP)action.doGeneraNotaDiCredito(context);
else if (bulk.getTipoDocumentoSIGLA().equalsIgnoreCase(Fattura_passivaBulk.TIPO_NOTA_DI_DEBITO))
notaBp = (CRUDFatturaPassivaBP)action.doGeneraNotaDiDebito(context);
notaBp.setModel(context, fatturaPassivaElettronicaBP.completaFatturaPassiva(context, (Fattura_passivaBulk) notaBp.getModel(), notaBp, fatturaPassivaBulk));
} else {
Fattura_passivaBulk fatturaPassivaBulk = (Fattura_passivaBulk) nbp.getModel();
nbp.setModel(context, fatturaPassivaElettronicaBP.completaFatturaPassiva(context, fatturaPassivaBulk, nbp, null));
}
return nbp;
} catch(Throwable e) {
if (nbp != null){
context.closeBusinessProcess(nbp);
if(nbp.getMessage()!=null)
throw new it.cnr.jada.action.MessageToUser(nbp.getMessage());
}
return handleException(context,e);
}
}
return context.findDefaultForward();
}
public Forward doOnCambiaImportoDocumento(ActionContext context) throws ComponentException, RemoteException, BusinessProcessException{
CRUDFatturaPassivaElettronicaBP bp = (CRUDFatturaPassivaElettronicaBP)getBusinessProcess(context);
DocumentoEleTestataBulk bulk = (DocumentoEleTestataBulk) bp.getModel();
DocumentoEleTestataBulk DocumentoEleTestataBulkDB =(DocumentoEleTestataBulk) bp.createComponentSession().findByPrimaryKey(context.getUserContext(),bp.getModel());
try{
fillModel(context);
if (!bulk.isAbilitato())
if(DocumentoEleTestataBulkDB.getImportoDocumento()!=null && DocumentoEleTestataBulkDB.getImportoDocumento().compareTo(BigDecimal.ZERO)!=0 && bulk.getImportoDocumento()!=null &&
DocumentoEleTestataBulkDB.getImportoDocumento().compareTo(bulk.getImportoDocumento())!=0){
throw new it.cnr.jada.comp.ApplicationException("Importo documento non modificabile se già indicato!");
}
}catch (Throwable e){
bulk.setImportoDocumento(DocumentoEleTestataBulkDB.getImportoDocumento());
return handleException(context,e);
}
return context.findDefaultForward();
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy