[ROSSOGARGANO]
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
- fatturazione conto deposito
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.IntegryCustomer;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250203154925 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
createSetupQuery("FATT_V_VAL", "Fatture di vendita solo a valore", "SELECT COD_DTIP + '|' + COD_DTIP + ' - ' + DESCRIZIONE \n" + "FROM DTB_TIPI WHERE GESTIONE = 'V' AND\n" + "segno_qta_scar = 0 and segno_val_scar > 0 and cod_ccau is not null ORDER BY 1");executeStatement("UPDATE stb_gest_setup SET query_default = 'FATT_V_VAL' where where gest_name = 'DATI_AZIENDA' and section = 'CONTO_DEPOSITO' and key_section = 'COD_DTIP_V'");
|
||||
String value = null;
|
||||
if (isCustomer(IntegryCustomer.RossoGargano))
|
||||
value = "AD";
|
||||
|
||||
createSetup("DATI_AZIENDA","CONTO_DEPOSITO","COD_DTIP",value,"Tipo documento per le fatture conto deposito","FATT_V_VAL");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.IntegryCustomer;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250203184408 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
String value = null;
|
||||
if (isCustomer(IntegryCustomer.RossoGargano))
|
||||
value = "03.01";
|
||||
createSetup("DATI_AZIENDA","CONTO_DEPOSITO","COD_MDEP",value,"deposito aziendale per fatturazione conto deposito","COD_MDEP");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package it.integry.ems.product.controller;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.product.dto.FatturaContoDepositoDTO;
|
||||
import it.integry.ems.product.service.ContrattiDiVenditaService;
|
||||
import it.integry.ems.response.EsitoType;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
@@ -75,5 +76,18 @@ public class ContrattiVenditaController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping(value = "fatturaContoDeposito", method = RequestMethod.POST)
|
||||
public ServiceRestResponse fatturaContoDeposito(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestBody FatturaContoDepositoDTO dto) {
|
||||
try {
|
||||
return ServiceRestResponse.createPositiveResponse(contrattiDiVenditaService.fatturaContoDeposito(dto));
|
||||
} catch (Exception e) {
|
||||
logger.error(request.getRequestURI(), e);
|
||||
return ServiceRestResponse.createNegativeResponse(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package it.integry.ems.product.dto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class FatturaContoDepositoDTO {
|
||||
|
||||
private Long idContratto;
|
||||
private String codAnag;
|
||||
private List<FatturaContoDepositoRowDTO> articoli = new ArrayList<>();
|
||||
|
||||
public Long getIdContratto() {
|
||||
return idContratto;
|
||||
}
|
||||
|
||||
public FatturaContoDepositoDTO setIdContratto(Long idContratto) {
|
||||
this.idContratto = idContratto;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodAnag() {
|
||||
return codAnag;
|
||||
}
|
||||
|
||||
public FatturaContoDepositoDTO setCodAnag(String codAnag) {
|
||||
this.codAnag = codAnag;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public List<FatturaContoDepositoRowDTO> getArticoli() {
|
||||
return articoli;
|
||||
}
|
||||
|
||||
public FatturaContoDepositoDTO setArticoli(List<FatturaContoDepositoRowDTO> articoli) {
|
||||
this.articoli = articoli;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package it.integry.ems.product.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class FatturaContoDepositoRowDTO {
|
||||
|
||||
private String codMart;
|
||||
private BigDecimal qtaDoc;
|
||||
private BigDecimal valUnt;
|
||||
private String untMis;
|
||||
private BigDecimal sconto1;
|
||||
private BigDecimal sconto2;
|
||||
private BigDecimal sconto3;
|
||||
private BigDecimal sconto4;
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public FatturaContoDepositoRowDTO setCodMart(String codMart) {
|
||||
this.codMart = codMart;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaDoc() {
|
||||
return qtaDoc;
|
||||
}
|
||||
|
||||
public FatturaContoDepositoRowDTO setQtaDoc(BigDecimal qtaDoc) {
|
||||
this.qtaDoc = qtaDoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getValUnt() {
|
||||
return valUnt;
|
||||
}
|
||||
|
||||
public FatturaContoDepositoRowDTO setValUnt(BigDecimal valUnt) {
|
||||
this.valUnt = valUnt;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getUntMis() {
|
||||
return untMis;
|
||||
}
|
||||
|
||||
public FatturaContoDepositoRowDTO setUntMis(String untMis) {
|
||||
this.untMis = untMis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getSconto1() {
|
||||
return sconto1;
|
||||
}
|
||||
|
||||
public FatturaContoDepositoRowDTO setSconto1(BigDecimal sconto1) {
|
||||
this.sconto1 = sconto1;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getSconto2() {
|
||||
return sconto2;
|
||||
}
|
||||
|
||||
public FatturaContoDepositoRowDTO setSconto2(BigDecimal sconto2) {
|
||||
this.sconto2 = sconto2;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getSconto3() {
|
||||
return sconto3;
|
||||
}
|
||||
|
||||
public FatturaContoDepositoRowDTO setSconto3(BigDecimal sconto3) {
|
||||
this.sconto3 = sconto3;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getSconto4() {
|
||||
return sconto4;
|
||||
}
|
||||
|
||||
public FatturaContoDepositoRowDTO setSconto4(BigDecimal sconto4) {
|
||||
this.sconto4 = sconto4;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -1,21 +1,27 @@
|
||||
package it.integry.ems.product.service;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import it.integry.ems.product.dto.FatturaContoDepositoDTO;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.service.MailService;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.VtbOffr;
|
||||
import it.integry.ems_model.entity.VtbOfft;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityBigDecimal;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@RestController
|
||||
@Scope(value = "request")
|
||||
@@ -28,6 +34,8 @@ public class ContrattiDiVenditaService {
|
||||
|
||||
@Autowired
|
||||
private MailService mailService;
|
||||
@Autowired
|
||||
private SetupGest setupGest;
|
||||
|
||||
|
||||
public EntityBase save(VtbOfft vtbOfft) throws Exception {
|
||||
@@ -101,4 +109,60 @@ public class ContrattiDiVenditaService {
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public DtbDoct fatturaContoDeposito(FatturaContoDepositoDTO dto) throws Exception {
|
||||
DtbDoct fatturaContoDeposito = new DtbDoct();
|
||||
|
||||
String codDtip = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(),"DATI_AZIENDA","CONTO_DEPOSITO","COD_DTIP");
|
||||
if (UtilityString.isNullOrEmpty(codDtip)) {
|
||||
throw new Exception("Nessun tipo documento configurato per le fatture conto deposito!");
|
||||
}
|
||||
String codMdep = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(),"DATI_AZIENDA","CONTO_DEPOSITO","COD_MDEP");
|
||||
if (UtilityString.isNullOrEmpty(codMdep)) {
|
||||
throw new Exception("Nessun deposito configurato per le fatture conto deposito!");
|
||||
}
|
||||
VtbOfft contratto = new VtbOfft();
|
||||
contratto
|
||||
.setIdOfferta(dto.getIdContratto())
|
||||
.setOperation(OperationType.SELECT_OBJECT);
|
||||
entityProcessor.processEntity(contratto,true,multiDBTransactionManager);
|
||||
|
||||
List<MtbAart> articoli = dto.getArticoli().stream().map(row->{
|
||||
MtbAart mtbAart = new MtbAart();
|
||||
mtbAart.setCodMart(row.getCodMart())
|
||||
.setOperation(OperationType.SELECT_OBJECT);
|
||||
return mtbAart;
|
||||
}).collect(Collectors.toList());
|
||||
entityProcessor.processEntityList(articoli,multiDBTransactionManager,true);
|
||||
fatturaContoDeposito.setCodAnag(contratto.getCodAnag())
|
||||
.setCodVdes(contratto.getCodVdes())
|
||||
.setDataDoc(new Date())
|
||||
.setCodDtip(codDtip)
|
||||
.setCodMdep(codMdep)
|
||||
.setSerDoc(codDtip)
|
||||
.getDtbDocr().addAll(dto.getArticoli().stream().map(row->{
|
||||
MtbAart articolo = articoli.stream().filter(x->x.getCodMart().equalsIgnoreCase(row.getCodMart())).findFirst().orElse(null);
|
||||
if (articolo == null || UtilityBigDecimal.isNullOrZero(row.getValUnt()) || UtilityBigDecimal.isNullOrZero(row.getQtaDoc())) {
|
||||
return null;
|
||||
}
|
||||
DtbDocr dtbDocr = new DtbDocr();
|
||||
dtbDocr.setCodMart(articolo.getCodMart())
|
||||
.setQtaDoc(row.getQtaDoc())
|
||||
.setIdContratto(contratto.getIdOfferta())
|
||||
.setQtaCnf(articolo.getQtaCnf())
|
||||
.setValUnt(row.getValUnt())
|
||||
.setDescrizione(articolo.getDescrizione())
|
||||
.setUntDoc(row.getUntMis())
|
||||
.setSconto5(row.getSconto1())
|
||||
.setSconto6(row.getSconto2())
|
||||
.setSconto7(row.getSconto3())
|
||||
.setSconto8(row.getSconto4())
|
||||
.setOperation(OperationType.INSERT);
|
||||
return dtbDocr;
|
||||
}).filter(Objects::nonNull).collect(Collectors.toList()));
|
||||
fatturaContoDeposito.setOperation(OperationType.INSERT);
|
||||
entityProcessor.processEntity(fatturaContoDeposito,true,multiDBTransactionManager);
|
||||
|
||||
return fatturaContoDeposito;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user