it.cnr.contab.ordmag.magazzino.bp.ScaricoManualeMagazzinoBP 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.ordmag.magazzino.bp;
import java.math.BigDecimal;
import java.rmi.RemoteException;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk;
import it.cnr.contab.docamm00.tabrif.bulk.Bene_servizioBulk;
import it.cnr.contab.ordmag.anag00.UnitaMisuraBulk;
import it.cnr.contab.ordmag.magazzino.bulk.LottoMagBulk;
import it.cnr.contab.ordmag.magazzino.bulk.ScaricoMagazzinoBulk;
import it.cnr.contab.ordmag.magazzino.bulk.ScaricoMagazzinoRigaBulk;
import it.cnr.contab.ordmag.magazzino.bulk.ScaricoMagazzinoRigaLottoBulk;
import it.cnr.contab.ordmag.magazzino.ejb.MovimentiMagComponentSession;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.action.Config;
import it.cnr.jada.bulk.BulkList;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.bulk.ValidationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.persistency.PersistencyException;
import it.cnr.jada.util.action.SimpleCRUDBP;
import it.cnr.jada.util.action.SimpleDetailCRUDController;
public class ScaricoManualeMagazzinoBP extends SimpleCRUDBP {
private static final long serialVersionUID = 1L;
private final SimpleDetailCRUDController beniServiziColl = new SimpleDetailCRUDController("Righe",ScaricoMagazzinoRigaBulk.class,"scaricoMagazzinoRigaColl",this){
public void add(ActionContext actioncontext) throws BusinessProcessException {
ScaricoMagazzinoBulk scarico = (ScaricoMagazzinoBulk)this.getParentModel();
if (scarico.getUnitaOperativaAbilitata()==null||scarico.getUnitaOperativaAbilitata().getCdUnitaOperativa()==null)
((SimpleCRUDBP)getParentController()).setMessage("Occorre selezionare l'Unità Operativa prima di associare i beni/servizi.");
else if (scarico.getMagazzinoAbilitato()==null||scarico.getMagazzinoAbilitato().getCdMagazzino()==null)
((SimpleCRUDBP)getParentController()).setMessage("Occorre selezionare il Magazzino prima di associare i beni/servizi.");
else if (scarico.getTipoMovimentoMag()==null||scarico.getTipoMovimentoMag().getCdTipoMovimento()==null)
((SimpleCRUDBP)getParentController()).setMessage("Occorre selezionare il Tipo Movimento prima di associare i beni/servizi.");
else if (scarico.getDataCompetenza()==null)
((SimpleCRUDBP)getParentController()).setMessage("Occorre selezionare la Data di Competenza prima di associare i beni/servizi.");
else
super.add(actioncontext);
};
protected void validate(ActionContext actioncontext, OggettoBulk oggettobulk) throws ValidationException {
ScaricoMagazzinoRigaBulk riga = (ScaricoMagazzinoRigaBulk)oggettobulk;
if (riga.getBeneServizio()==null || riga.getBeneServizio().getCd_bene_servizio()==null)
throw new ValidationException("Valorizzare il Bene/Servizio.");
if (riga.getUnitaMisura()==null || riga.getUnitaMisura().getCdUnitaMisura()==null)
throw new ValidationException("Valorizzare l'Unità di Misura.");
if (Optional.ofNullable(riga.getCoefConv()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ZERO)<=0)
throw new ValidationException("Il Coefficiente di Conversione deve avere un valore positivo.");
if (Optional.ofNullable(riga.getQtScarico()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ZERO)<=0 &&
Optional.ofNullable(riga.getTotQtScaricoLotti()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ZERO)<=0)
throw new ValidationException("Valorizzare la quantità da scaricare.");
if (riga.getUnitaOperativaRicevente()==null || riga.getUnitaOperativaRicevente().getCdUnitaOperativa()==null)
throw new ValidationException("Valorizzare l'Unità Operativa Ricevente.");
super.validate(actioncontext,oggettobulk);
}
};
private final SimpleDetailCRUDController lottiMagazzinoColl = new SimpleDetailCRUDController("Lotti",ScaricoMagazzinoRigaLottoBulk.class,"scaricoMagazzinoRigaLottoColl",beniServiziColl);
public ScaricoManualeMagazzinoBP() {
super();
}
public ScaricoManualeMagazzinoBP(String function) {
super(function);
}
@Override
protected void init(Config config, ActionContext actioncontext) throws BusinessProcessException {
setTab("tabArticolo","tabBeneServizio");
super.init(config, actioncontext);
}
@Override
public boolean isDeleteButtonHidden() {
return true;
}
@Override
public boolean isSaveButtonHidden() {
return true;
}
@Override
public boolean isSearchButtonHidden() {
return true;
}
@Override
public boolean isFreeSearchButtonHidden() {
return true;
}
@Override
public boolean isNewButtonHidden() {
return true;
}
public it.cnr.jada.util.jsp.Button[] createToolbar() {
it.cnr.jada.util.jsp.Button[] toolbar = new it.cnr.jada.util.jsp.Button[1];
int i = 0;
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"buttons.scaricaMagazzino");
return toolbar;
}
public SimpleDetailCRUDController getBeniServiziColl() {
return beniServiziColl;
}
public SimpleDetailCRUDController getLottiMagazzinoColl() {
return lottiMagazzinoColl;
}
public ScaricoMagazzinoBulk scaricaMagazzino(ActionContext context) throws BusinessProcessException{
try {
ScaricoMagazzinoBulk model = ((MovimentiMagComponentSession)createComponentSession()).scaricaMagazzino(context.getUserContext(), (ScaricoMagazzinoBulk)getModel());
Stream streamRiga = model.getScaricoMagazzinoRigaColl().stream().map(ScaricoMagazzinoRigaBulk.class::cast);
List newRigheList = streamRiga.filter(e->e.getAnomalia()!=null).collect(Collectors.toList());
model.setScaricoMagazzinoRigaColl(new BulkList(newRigheList));
this.setModel(context, model);
return (ScaricoMagazzinoBulk)this.getModel();
} catch (ComponentException | PersistencyException | RemoteException | BusinessProcessException e) {
throw new BusinessProcessException(e);
}
}
@Override
public OggettoBulk initializeModelForInsert(ActionContext actioncontext, OggettoBulk oggettobulk)
throws BusinessProcessException {
try {
oggettobulk = super.initializeModelForInsert(actioncontext, oggettobulk);
return ((MovimentiMagComponentSession)createComponentSession()).initializeScaricoMagazzino(actioncontext.getUserContext(), (ScaricoMagazzinoBulk)oggettobulk);
} catch (ComponentException | PersistencyException | RemoteException | BusinessProcessException e) {
throw new BusinessProcessException(e);
}
}
public void inizializeBeneServizio(ActionContext actioncontext, ScaricoMagazzinoRigaBulk scaricoRiga, Bene_servizioBulk beneServizio) throws BusinessProcessException {
try {
scaricoRiga.setBeneServizio(beneServizio);
scaricoRiga.setUnitaMisura(beneServizio.getUnitaMisura());
scaricoRiga.setCoefConv(BigDecimal.ONE);
scaricoRiga.setQtScarico(BigDecimal.ZERO);
List lottiList = ((MovimentiMagComponentSession)this.createComponentSession()).find(actioncontext.getUserContext(), LottoMagBulk.class, "findLottiMagazzinoByClause", scaricoRiga);
scaricoRiga.setScaricoMagazzinoRigaLottoColl(
new BulkList(
lottiList.stream().map(lotto->{
ScaricoMagazzinoRigaLottoBulk rigaLotto = new ScaricoMagazzinoRigaLottoBulk();
rigaLotto.setScaricoMagazzinoRiga(scaricoRiga);
rigaLotto.setLottoMagazzino(lotto);
rigaLotto.setQtScarico(BigDecimal.ZERO);
return rigaLotto;
}).collect(Collectors.toList()))
);
this.inizializeUnitaMisura(actioncontext, scaricoRiga, scaricoRiga.getUnitaMisura());
} catch (ComponentException | RemoteException | BusinessProcessException e) {
throw new BusinessProcessException(e);
}
}
public void inizializeUnitaMisura(ActionContext actioncontext, ScaricoMagazzinoRigaBulk scaricoRiga, UnitaMisuraBulk unitaMisura) throws BusinessProcessException {
Optional.ofNullable(scaricoRiga).ifPresent(sr->{
Optional.ofNullable(unitaMisura).ifPresent(um->{
sr.setUnitaMisura(um);
Optional.ofNullable(sr.getBeneServizio())
.filter(e->e.getUnitaMisura().equalsByPrimaryKey(unitaMisura)).ifPresent(bs->{
sr.setCoefConv(BigDecimal.ONE);
});
});
});
}
public String[][] getTabsArticolo() {
if (this.getBeniServiziColl().getModel()!=null &&
((ScaricoMagazzinoRigaBulk)this.getBeniServiziColl().getModel()).getBeneServizio()!=null &&
((ScaricoMagazzinoRigaBulk)this.getBeniServiziColl().getModel()).getBeneServizio().getCd_bene_servizio()!=null)
return new String[][] {
{ "tabBeneServizio","Articolo","/ordmag/magazzini/tab_bene_servizio.jsp" },
{ "tabLottiMagazzino","Lotti Magazzino","/ordmag/magazzini/tab_lotti_magazzino.jsp" } };
return new String[][] {
{ "tabBeneServizio","Articolo","/ordmag/magazzini/tab_bene_servizio.jsp" } };
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy