Modifiche importazione documenti consortile
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250129094019 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
createSetup("IMPORT_DOCUMENTI ACQUISTO", "CONSORTILE", "NEW_VERSION", "N",
|
||||
"Se impostato a S parte la nuova versione che gestisce la produzione sulla consortile", false, null, false, false,
|
||||
false, false, false, null, false, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -122,8 +122,14 @@ public class DocumentiImporter extends BaseEntityImporter<List<EntityBase>> impl
|
||||
.importDocWeb(type, format, requestDto.getWhereCond(), anomalie);
|
||||
break;
|
||||
case CONSORTILE:
|
||||
ConsortileFilterDTO filter = mapJsonToDTO(requestDto.getRawContent(), ConsortileFilterDTO.class);
|
||||
if (filter.getNewVersion().compareTo("S") == 0){
|
||||
entities = getContextBean(DocumentiConsortileService.class)
|
||||
.trasferimentoDocumentiAcquisto(type, format, mapJsonToDTO(requestDto.getRawContent(), ConsortileFilterDTO.class), anomalie);
|
||||
.trasferimentoDocumentiAcquistoNew(type, format, mapJsonToDTO(requestDto.getRawContent(), ConsortileFilterDTO.class), anomalie);
|
||||
}else {
|
||||
entities = getContextBean(DocumentiConsortileService.class)
|
||||
.trasferimentoDocumentiAcquistoOld(type, format, mapJsonToDTO(requestDto.getRawContent(), ConsortileFilterDTO.class), anomalie);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCAR_MP_DA_DIST:
|
||||
|
||||
@@ -16,6 +16,16 @@ public class ConsortileFilterDTO implements Serializable {
|
||||
@JsonProperty(value = "cod_anag")
|
||||
private String codAnag;
|
||||
|
||||
@DtoField(format = formatDate)
|
||||
@JsonProperty(value = "data_doc_fine")
|
||||
private Date dataDocFine;
|
||||
|
||||
@JsonProperty(value = "new_version")
|
||||
private String newVersion;
|
||||
|
||||
@JsonProperty(value = "conto_lavoro")
|
||||
private String contoLavoro;
|
||||
|
||||
public Date getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
@@ -33,4 +43,28 @@ public class ConsortileFilterDTO implements Serializable {
|
||||
this.codAnag = codAnag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDocFine() {
|
||||
return dataDocFine;
|
||||
}
|
||||
|
||||
public void setDataDocFine(Date dataDocFine) {
|
||||
this.dataDocFine = dataDocFine;
|
||||
}
|
||||
|
||||
public String getNewVersion() {
|
||||
return newVersion;
|
||||
}
|
||||
|
||||
public void setNewVersion(String newVersion) {
|
||||
this.newVersion = newVersion;
|
||||
}
|
||||
|
||||
public String getContoLavoro() {
|
||||
return contoLavoro;
|
||||
}
|
||||
|
||||
public void setContoLavoro(String contoLavoro) {
|
||||
this.contoLavoro = contoLavoro;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,8 @@ import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import static it.integry.ems.rules.completing.QueryRules.getSingleValue;
|
||||
|
||||
@Service
|
||||
@Scope(value = "request")
|
||||
public class DocumentiConsortileService {
|
||||
@@ -148,8 +150,7 @@ public class DocumentiConsortileService {
|
||||
|
||||
return passaporto;
|
||||
}
|
||||
|
||||
public List<EntityBase> trasferimentoDocumentiAcquisto(String type, String format, ConsortileFilterDTO filter, List<AnomalieDTO> anomalie) throws Exception {
|
||||
public List<EntityBase> trasferimentoDocumentiAcquistoNew(String type, String format, ConsortileFilterDTO filter, List<AnomalieDTO> anomalie) throws Exception {
|
||||
MultiDBTransactionManager multiDBTransactionManagerAzAgr = new MultiDBTransactionManager();
|
||||
List<EntityBase> docAConsortile = new ArrayList<EntityBase>();
|
||||
List<EntityBase> docVAzAgr = new ArrayList<EntityBase>();
|
||||
@@ -158,11 +159,195 @@ public class DocumentiConsortileService {
|
||||
|
||||
String codAnag = filter.getCodAnag();
|
||||
Date dataDoc = filter.getDataDoc();
|
||||
Date dataDocFine = filter.getDataDocFine();
|
||||
String contoLavoro = filter.getContoLavoro();
|
||||
String dataDocString = new SimpleDateFormat("yyyy-MM-dd").format(dataDoc);
|
||||
dataDoc = UtilityDate.StringToDate(dataDocString, CommonConstants.DATE_FORMAT_YMD);
|
||||
String codDtip = null, serDocAcq = null;
|
||||
String whereCond = "gruppo = " + UtilityDB.valueToString(contoLavoro);
|
||||
|
||||
query = "select DATEDIFF(day, " + UtilityDB.valueDateToString(dataDoc, CommonConstants.DATE_FORMAT_YMD) + ", " +
|
||||
UtilityDB.valueDateToString(dataDocFine, CommonConstants.DATE_FORMAT_YMD) + ")";
|
||||
Integer ggPeriodo = (Integer) getSingleValue(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
|
||||
query = "select * from dbo.getFLDocAcqForTrasf(" + UtilityDB.valueDateToString(dataDoc, CommonConstants.DATE_FORMAT_YMD) + "," +
|
||||
UtilityDB.valueDateToString(dataDocFine, CommonConstants.DATE_FORMAT_YMD) + "," +
|
||||
UtilityDB.valueToString(codAnag) + ")doc ";
|
||||
query = UtilityDB.addwhereCond(query, whereCond, true);
|
||||
|
||||
List<HashMap<String, Object>> results = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
for (int j = 0; j < results.size(); j++) {
|
||||
HashMap<String, Object> result = results.get(j);
|
||||
codDtip = UtilityHashMap.getValueIfExists(result, "cod_dtip");
|
||||
serDocAcq = UtilityHashMap.getValueIfExists(result, "ser_doc");
|
||||
String codMart = UtilityHashMap.getValueIfExists(result, "cod_mart");
|
||||
String descrizione = UtilityHashMap.getValueIfExists(result, "descrizione");
|
||||
String descrizioneEstesa = UtilityHashMap.getValueIfExists(result, "descrizione_estesa");
|
||||
String codAlis = UtilityHashMap.getValueIfExists(result, "cod_alis");
|
||||
String passaporto = UtilityHashMap.getValueIfExists(result, "passaporto");
|
||||
String origine = UtilityHashMap.getValueIfExists(result, "origine");
|
||||
String untDoc = UtilityHashMap.getValueIfExists(result, "unt_doc");
|
||||
BigDecimal przAcq = UtilityHashMap.getValueIfExists(result, "prz_acq");
|
||||
BigDecimal rapConv = UtilityHashMap.getValueIfExists(result, "rap_conv");
|
||||
String profileDB = UtilityHashMap.getValueIfExists(result, "profileDB");
|
||||
BigDecimal qtaVend = UtilityHashMap.getValueIfExists(result, "qta_vend");
|
||||
Integer rowID = UtilityHashMap.getValueIfExists(result, "rowID");
|
||||
String codDtipVend = UtilityHashMap.getValueIfExists(result, "cod_dtip_vend");
|
||||
String codMdep = UtilityHashMap.getValueIfExists(result, "cod_mdep");
|
||||
String codVlis = UtilityHashMap.getValueIfExists(result, "cod_vlis");
|
||||
String codAnagVend = UtilityHashMap.getValueIfExists(result, "cod_anag_vend");
|
||||
|
||||
// Connessione al database dell'azienda agricola
|
||||
if (j == 0) {
|
||||
DataSource dsSync = new DataSource();
|
||||
dsSync.initialize(profileDB);
|
||||
multiDBTransactionManagerAzAgr.setPrimaryDs(profileDB);
|
||||
}
|
||||
|
||||
// Creazione documento vendita per azienda agricola
|
||||
String serDocVend = null;
|
||||
String codIreg = null;
|
||||
Integer numIreg = null;
|
||||
Integer numDocVend = 0;
|
||||
if (rowID == 1) {
|
||||
// Acquisizione numero documento di vendita azienda agricola che diventerà documenti di acquisto della consortile
|
||||
query = "select cod_ireg, num_ireg, ISNULL(serie, '/') from dtb_tipi where cod_dtip = " + UtilityDB.valueToString(codDtipVend);
|
||||
PreparedStatement stmDati = multiDBTransactionManagerAzAgr.getPrimaryConnection().prepareStatement(query);
|
||||
ResultSet rsDati = stmDati.executeQuery();
|
||||
while (rsDati.next()) {
|
||||
codIreg = rsDati.getString(1);
|
||||
numIreg = rsDati.getInt(2);
|
||||
serDocVend = rsDati.getString(3);
|
||||
}
|
||||
rsDati.close();
|
||||
stmDati.close();
|
||||
numDocVend = DocumentRules.nextNumDoc(multiDBTransactionManagerAzAgr.getPrimaryConnection(), dataDoc, codIreg, serDocVend, numIreg, numDocVend);
|
||||
|
||||
// Creazione testata documento
|
||||
docV = new DtbDoct();
|
||||
docV.setOperation(OperationType.INSERT);
|
||||
docV.setCodDtip(codDtipVend);
|
||||
docV.setCodAnag(codAnagVend);
|
||||
docV.setDataDoc(dataDoc);
|
||||
docV.setSerDoc(serDocVend);
|
||||
docV.setNumDoc(numDocVend);
|
||||
docV.setCodMdep(codMdep);
|
||||
docV.setListino(codVlis);
|
||||
docVAzAgr.add(docV);
|
||||
}
|
||||
DtbDocr docrV = new DtbDocr();
|
||||
docrV.setOperation(OperationType.INSERT);
|
||||
docrV.setCodMart(codMart);
|
||||
docrV.setDescrizione(descrizione);
|
||||
docrV.setDescrizioneEstesa(descrizioneEstesa);
|
||||
docrV.setUntDoc(untDoc);
|
||||
docrV.setRapConv(rapConv);
|
||||
docrV.setQtaDoc(qtaVend);
|
||||
docrV.setPartitaMag(origine);
|
||||
String passaportoAzAgricola = getPassaportoAzAgricola(multiDBTransactionManager, multiDBTransactionManagerAzAgr, codAlis, codMart, origine, dataDoc);
|
||||
docrV.setCodArtFor(passaportoAzAgricola);
|
||||
docrV.setCodAlis(codAlis);
|
||||
docrV.setValUnt(przAcq);
|
||||
docV.getDtbDocr().add(docrV);
|
||||
|
||||
// Creazione documento di acquisto per consortile
|
||||
if (rowID == 1) {
|
||||
docA = new DtbDoct();
|
||||
docA.setOperation(OperationType.INSERT);
|
||||
docA.setCodDtip(codDtip);
|
||||
docA.setCodAnag(codAnag);
|
||||
docA.setDataDoc(dataDoc);
|
||||
docA.setSerDoc(serDocAcq);
|
||||
docA.setNumDoc(numDocVend);
|
||||
docA.setCodMdep(codMdep);
|
||||
docA.setListino(codAlis);
|
||||
docAConsortile.add(docA);
|
||||
}
|
||||
DtbDocr docrA = new DtbDocr();
|
||||
docrA.setOperation(OperationType.INSERT);
|
||||
docrA.setCodMart(codMart);
|
||||
docrA.setDescrizione(descrizione);
|
||||
docrA.setDescrizioneEstesa(descrizioneEstesa);
|
||||
docrA.setUntDoc(untDoc);
|
||||
docrA.setRapConv(rapConv);
|
||||
docrA.setQtaDoc(qtaVend);
|
||||
docrA.setPartitaMag(origine);
|
||||
docrA.setCodArtFor(passaporto);
|
||||
docrA.setCodAlis(codAlis);
|
||||
docrA.setValUnt(przAcq);
|
||||
docA.getDtbDocr().add(docrA);
|
||||
}
|
||||
|
||||
/*Nella tabella del log dei documenti importati non possiamo inserire il documento di vendita, perchè in un documento
|
||||
ci sono più listini di acquisto e quindi più documenti di acquisto da creare e se impostiamo tutto il documento come importato,
|
||||
per il fornitore successivo non creerebbe gli altri documenti di acquisto, quindi creo un documento fittizio con tipo_doc, cod_anag e data_doc*/
|
||||
if (!docAConsortile.isEmpty()) {
|
||||
ggPeriodo = ggPeriodo + 1;
|
||||
for (int i = 0; i < ggPeriodo; i++) {
|
||||
Date dataDocDett = UtilityDate.dateAdd(dataDoc, i);
|
||||
|
||||
DtbDocuLog docuLog = new DtbDocuLog();
|
||||
docuLog.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
docuLog.setCodAnag(codAnag);
|
||||
docuLog.setCodDtip(codDtip);
|
||||
docuLog.setSerDoc(serDocAcq);
|
||||
docuLog.setDataDoc(dataDocDett);
|
||||
docuLog.setNumDoc(0);
|
||||
docuLog.setNote(contoLavoro);
|
||||
docuLog.setFlagType("I");
|
||||
docuLog.setFormatFile(format);
|
||||
docuLog.setDocType(type);
|
||||
docuLog.setDateTimeLog(new Date());
|
||||
docuLog.setUserName(requestDataDTO.getUsername());
|
||||
docAConsortile.add(docuLog);
|
||||
}
|
||||
}
|
||||
|
||||
// Registrazione documenti acquisto consortile
|
||||
for (int i = 0; i < docAConsortile.size(); i++) {
|
||||
entityProcessor.processEntity(docAConsortile.get(i), true, true, multiDBTransactionManager.getPrimaryDatasource().getProfile(), multiDBTransactionManager);
|
||||
if (docAConsortile.get(i).getException() != null) {
|
||||
multiDBTransactionManager.rollbackAll();
|
||||
multiDBTransactionManagerAzAgr.rollbackAll();
|
||||
throw new Exception(docAConsortile.get(i).getException().getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Registrazione documenti vendita azienda agricola
|
||||
for (int i = 0; i < docVAzAgr.size(); i++) {
|
||||
entityProcessor.processEntity(docVAzAgr.get(i), true, true, multiDBTransactionManagerAzAgr.getPrimaryDatasource().getProfile(), multiDBTransactionManagerAzAgr);
|
||||
if (docVAzAgr.get(i).getException() != null) {
|
||||
multiDBTransactionManager.rollbackAll();
|
||||
multiDBTransactionManagerAzAgr.rollbackAll();
|
||||
throw new Exception(docVAzAgr.get(i).getException().getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
if (docAConsortile.isEmpty()) {
|
||||
throw new Exception("Non ci sono documenti da importare");
|
||||
} else {
|
||||
multiDBTransactionManagerAzAgr.commitAll();
|
||||
multiDBTransactionManager.commitAll();
|
||||
}
|
||||
|
||||
return docAConsortile;
|
||||
}
|
||||
|
||||
public List<EntityBase> trasferimentoDocumentiAcquistoOld(String type, String format, ConsortileFilterDTO filter, List<AnomalieDTO> anomalie) throws Exception {
|
||||
MultiDBTransactionManager multiDBTransactionManagerAzAgr = new MultiDBTransactionManager();
|
||||
List<EntityBase> docAConsortile = new ArrayList<EntityBase>();
|
||||
List<EntityBase> docVAzAgr = new ArrayList<EntityBase>();
|
||||
DtbDoct docA = new DtbDoct();
|
||||
DtbDoct docV = new DtbDoct();
|
||||
|
||||
String codAnag = filter.getCodAnag();
|
||||
Date dataDoc = filter.getDataDoc();
|
||||
Date dataDocFine = filter.getDataDocFine();
|
||||
String dataDocString = new SimpleDateFormat("yyyy-MM-dd").format(dataDoc);
|
||||
dataDoc = UtilityDate.StringToDate(dataDocString, CommonConstants.DATE_FORMAT_YMD);
|
||||
String codDtip = null, serDocAcq = null;
|
||||
|
||||
query = "select * from dbo.getFLDocAcqForTrasf(" + UtilityDB.valueDateToString(dataDoc, CommonConstants.DATE_FORMAT_YMD) + "," + UtilityDB.valueToString(codAnag) + ")doc ";
|
||||
query = "select * from dbo.getFLDocAcqForTrasf(" + UtilityDB.valueDateToString(dataDoc, CommonConstants.DATE_FORMAT_YMD) + ", " + UtilityDB.valueDateToString(dataDoc, CommonConstants.DATE_FORMAT_YMD) + "," + UtilityDB.valueToString(codAnag) + ")doc ";
|
||||
List<HashMap<String, Object>> results = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
for (int j = 0; j < results.size(); j++) {
|
||||
HashMap<String, Object> result = results.get(j);
|
||||
@@ -277,6 +462,7 @@ public class DocumentiConsortileService {
|
||||
docuLog.setSerDoc(serDocAcq);
|
||||
docuLog.setDataDoc(dataDoc);
|
||||
docuLog.setNumDoc(0);
|
||||
docuLog.setNote("A");
|
||||
docuLog.setFlagType("I");
|
||||
docuLog.setFormatFile(format);
|
||||
docuLog.setDocType(type);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package it.integry.ems.production.controller;
|
||||
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.production.dto.FLAggListinoProdDTO;
|
||||
import it.integry.ems.production.dto.FLDatiProdDTO;
|
||||
import it.integry.ems.production.service.FLProductionService;
|
||||
@@ -28,6 +29,9 @@ public class FLProductionController {
|
||||
@Autowired
|
||||
private FLProductionService MLProductionService;
|
||||
|
||||
@Autowired
|
||||
RequestDataDTO requestDataDTO;
|
||||
|
||||
@RequestMapping(value = EmsRestConstants.PATH_FL_AGGIORNA_LISTINO_PROD, method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
ServiceRestResponse FLAggiornaListinoProd(HttpServletRequest request,
|
||||
@@ -35,7 +39,7 @@ public class FLProductionController {
|
||||
|
||||
ServiceRestResponse response;
|
||||
try {
|
||||
MLProductionService.FLAggiornaListinoProd(flAggListinoProdDTO);
|
||||
MLProductionService.FLAggiornaListinoProd(flAggListinoProdDTO, requestDataDTO.getProfileDB());
|
||||
response = new ServiceRestResponse(EsitoType.OK);
|
||||
} catch (Exception e) {
|
||||
logger.error(request.getRequestURI(), e);
|
||||
|
||||
@@ -337,7 +337,7 @@ public class FLProductionService {
|
||||
ps.close();
|
||||
}
|
||||
|
||||
public void FLAggiornaListinoProd(FLAggListinoProdDTO flAggListinoProdDTO) throws Exception {
|
||||
public void FLAggiornaListinoProd(FLAggListinoProdDTO flAggListinoProdDTO, String profileDB) throws Exception {
|
||||
String passaporto = null, passaportoDBCentrale = null;
|
||||
Integer versione = 0;
|
||||
OperationType operationType = null;
|
||||
@@ -398,10 +398,8 @@ public class FLProductionService {
|
||||
|
||||
|
||||
if ("S".compareTo(isDBcentrale) == 0) {
|
||||
/* passaporto = getNextNumPassaporto(connDBCentrale, codCentroAziDBCentrale, flAggListinoProdDTO.getDataProd());
|
||||
passaportoDBCentrale = passaporto;*/
|
||||
|
||||
passaporto = flAggListinoProdDTO.getPassaporto();
|
||||
passaporto = getNextNumPassaporto(connDBCentrale, codCentroAziDBCentrale, flAggListinoProdDTO.getDataProd());
|
||||
passaportoDBCentrale = passaporto;
|
||||
}
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(flAggListinoProdDTO.getCodAlis())) {
|
||||
@@ -440,7 +438,7 @@ public class FLProductionService {
|
||||
String erroreMessage = mtbListData.getException().getMessage();
|
||||
throw new Exception(erroreMessage);
|
||||
} else {
|
||||
if ("N".compareTo(contoLavoro) == 0 && isDBcentrale.compareTo("N") == 0) {
|
||||
if ("N".compareTo(contoLavoro) == 0 && !profileDBCentrale.equalsIgnoreCase(profileDB)) {
|
||||
/*******************************************************
|
||||
* AGGIORNAMENTO LISTINO FORNITORE DATABASE CENTRALE
|
||||
* ******************************************************/
|
||||
@@ -535,5 +533,4 @@ public class FLProductionService {
|
||||
|
||||
} else throw new Exception("Listino non presente in anagrafica o non valorizzato");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user