diff --git a/.idea/inspectionProfiles/LocalDate_passato_a_SimpleDate.xml b/.idea/inspectionProfiles/LocalDate_Checks.xml
similarity index 93%
rename from .idea/inspectionProfiles/LocalDate_passato_a_SimpleDate.xml
rename to .idea/inspectionProfiles/LocalDate_Checks.xml
index ec7d4220f3..6c8b280d78 100644
--- a/.idea/inspectionProfiles/LocalDate_passato_a_SimpleDate.xml
+++ b/.idea/inspectionProfiles/LocalDate_Checks.xml
@@ -1,9 +1,14 @@
-
+
+
+
+
+
+
@@ -44,6 +49,7 @@
+
@@ -69,6 +75,8 @@
+
+
@@ -143,12 +151,18 @@
+
+
+
+
+
+
@@ -229,6 +243,7 @@
+
@@ -253,9 +268,11 @@
+
+
@@ -349,6 +366,7 @@
+
@@ -376,11 +394,13 @@
+
+
@@ -403,6 +423,7 @@
+
@@ -578,16 +599,20 @@
+
+
+
+
@@ -600,19 +625,24 @@
+
+
+
+
+
@@ -727,6 +757,7 @@
+
@@ -763,6 +794,7 @@
+
@@ -770,6 +802,8 @@
+
+
@@ -795,15 +829,21 @@
+
+
+
+
+
+
@@ -877,6 +917,7 @@
+
@@ -892,9 +933,12 @@
+
+
+
@@ -902,6 +946,7 @@
+
@@ -945,8 +990,10 @@
+
+
@@ -980,6 +1027,7 @@
+
@@ -994,6 +1042,7 @@
+
@@ -1010,6 +1059,12 @@
+
+
+
+
+
+
@@ -1027,22 +1082,27 @@
+
+
+
+
+
@@ -1189,6 +1249,7 @@
+
@@ -1203,11 +1264,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1242,6 +1323,7 @@
+
@@ -1391,7 +1473,9 @@
+
+
@@ -1477,6 +1561,7 @@
+
@@ -1513,8 +1598,10 @@
+
+
@@ -1524,8 +1611,10 @@
+
+
@@ -1585,10 +1674,14 @@
+
+
+
+
@@ -1615,12 +1708,20 @@
+
+
+
+
+
+
+
+
@@ -1640,6 +1741,7 @@
+
@@ -1651,11 +1753,15 @@
+
+
+
+
@@ -1677,6 +1783,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docker/tomcat/conf/integry/ems_settings.json b/docker/tomcat/conf/integry/ems_settings.json
index b45fd22f7c..6c1cccba43 100644
--- a/docker/tomcat/conf/integry/ems_settings.json
+++ b/docker/tomcat/conf/integry/ems_settings.json
@@ -211,6 +211,36 @@
"encryptedDbPsw": true,
"internalDb": true
},
+ {
+ "profileName": "PAPARELLAD",
+ "connectionType": "MSSQL",
+ "dbName": "PAPARELLAD",
+ "username": "sa",
+ "password": "sZ",
+ "host": "192.168.2.214",
+ "encryptedDbPsw": true,
+ "internalDb": true
+ },
+ {
+ "profileName": "PAPARELLAP",
+ "connectionType": "MSSQL",
+ "dbName": "PAPARELLAP",
+ "username": "sa",
+ "password": "sZ",
+ "host": "192.168.2.214",
+ "encryptedDbPsw": true,
+ "internalDb": true
+ },
+ {
+ "profileName": "PAPARELLAPIETRO",
+ "connectionType": "MSSQL",
+ "dbName": "PAPARELLAPIETRO",
+ "username": "sa",
+ "password": "sZ",
+ "host": "192.168.2.214",
+ "encryptedDbPsw": true,
+ "internalDb": true
+ },
{
"profileName" : "FOLLIESGROUP",
"connectionType" : "MSSQL",
@@ -673,10 +703,10 @@
"internalDb": false
},
{
- "profileName": "ROSSOGARGANO",
+ "profileName": "Aida",
"connectionType": "MSSQL",
- "dbName": "RossoGargano",
- "username": "SA",
+ "dbName": "aida",
+ "username": "sa",
"password" : "sZ",
"host" : "192.168.2.220",
"encryptedDbPsw" : true,
@@ -705,7 +735,7 @@
"dbName" : "frudis",
"username" : "SA",
"password" : "sZ",
- "host" : "192.168.2.214",
+ "host": "192.168.2.220",
"encryptedDbPsw" : true,
"internalDb" : true
}, {
@@ -773,6 +803,26 @@
"encryptedDbPsw": true,
"internalDb": true
},
+ {
+ "profileName": "COSMAPACK",
+ "connectionType": "MSSQL",
+ "dbName": "COSMINT",
+ "username": "sa",
+ "password": "sZ",
+ "host": "192.168.2.220",
+ "encryptedDbPsw": true,
+ "internalDb": true
+ },
+ {
+ "profileName": "Aida",
+ "connectionType": "MSSQL",
+ "dbName": "aida",
+ "username": "sa",
+ "password": "sZ",
+ "host": "192.168.2.220",
+ "encryptedDbPsw": true,
+ "internalDb": true
+ },
{
"profileName" : "VETTA",
"connectionType" : "MSSQL",
diff --git a/ems-core/src/main/java/it/integry/common/var/CommonConstants.java b/ems-core/src/main/java/it/integry/common/var/CommonConstants.java
index 8b8224e6ea..b0fcdb04c1 100644
--- a/ems-core/src/main/java/it/integry/common/var/CommonConstants.java
+++ b/ems-core/src/main/java/it/integry/common/var/CommonConstants.java
@@ -50,6 +50,8 @@ public class CommonConstants {
public static final DateTimeFormatter DATE_YMD_SLASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_YMD_SLASHED)
.withZone(ZoneId.systemDefault());
+ public static final DateTimeFormatter DATETIME_YMD_SLASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATETIME_FORMAT_YMD)
+ .withZone(ZoneId.systemDefault());
public static final DateTimeFormatter DATE_YMD_DASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_YMD_DASHED)
.withZone(ZoneId.systemDefault());
public static final DateTimeFormatter DATETIME_YMD_DASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATETIME_FORMAT_YMD)
diff --git a/ems-core/src/main/java/it/integry/ems/controller/EmsController.java b/ems-core/src/main/java/it/integry/ems/controller/EmsController.java
index fb84858feb..1b17fc2258 100644
--- a/ems-core/src/main/java/it/integry/ems/controller/EmsController.java
+++ b/ems-core/src/main/java/it/integry/ems/controller/EmsController.java
@@ -793,9 +793,8 @@ public class EmsController {
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_STB_EMAIL_CONTENT, method = RequestMethod.GET)
- public byte[] downloadStbEmailContent(HttpServletRequest request, HttpServletResponse response,
- @RequestParam(CommonConstants.PROFILE_DB) String config,
- @RequestParam Integer idEmail) throws Exception {
+ public ResponseEntity downloadStbEmailContent(@RequestParam(CommonConstants.PROFILE_DB) String config,
+ @RequestParam Integer idEmail) throws Exception {
StbEmailContent stbEmailContent = new StbEmailContent();
stbEmailContent.setIdEmail(idEmail);
stbEmailContent.setOperation(OperationType.SELECT_OBJECT);
@@ -803,11 +802,7 @@ public class EmsController {
stbEmailContent = entityProcessor.processEntity(stbEmailContent, multiDBTransactionManager);
if (stbEmailContent != null) {
- response.setContentType("application/octet-stream");
- response.setStatus(HttpServletResponse.SC_OK);
- response.addHeader(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition.attachment().filename("email.eml").build().toString());
-
- byte[] byteArr = null;
+ byte[] byteArr;
String pattern = "[^\\x00-\\x7F]";
Pattern pat = Pattern.compile(pattern);
@@ -819,13 +814,18 @@ public class EmsController {
byteArr = Base64.decodeBase64(stbEmailContent.getEmailContent());
}
- response.setContentLength(byteArr != null ? byteArr.length : 0);
- return byteArr;
-
+ return ResponseEntity.ok()
+ .contentType(MediaType.APPLICATION_OCTET_STREAM)
+ .contentLength(byteArr != null ? byteArr.length : 0)
+ .header(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition
+ .builder("attachment")
+ .filename("email.eml")
+ .build()
+ .toString())
+ .body(byteArr);
}
- response.sendError(404, "Allegato non trovato");
- return null;
+ return ResponseEntity.notFound().build();
}
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_DTB_DOC_PDF, method = RequestMethod.GET)
@@ -884,12 +884,13 @@ public class EmsController {
}
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_DTB_ORD_PDF, method = RequestMethod.GET)
- public byte[] downloadDtbOrdPdf(HttpServletRequest request, HttpServletResponse response,
- @RequestParam(CommonConstants.PROFILE_DB) String config,
- @RequestParam String gestione,
- @RequestParam String dataOrd,
- @RequestParam Integer numOrd,
- @RequestParam Integer versione) throws Exception {
+ public ResponseEntity downloadDtbOrdPdf(
+ @RequestParam(CommonConstants.PROFILE_DB) String config,
+ @RequestParam String gestione,
+ @RequestParam String dataOrd,
+ @RequestParam Integer numOrd,
+ @RequestParam Integer versione) throws Exception {
+
DtbOrdPdf dtbOrdPdf = new DtbOrdPdf();
dtbOrdPdf.setGestione(gestione);
dtbOrdPdf.setDataOrd(UtilityString.parseLocalDate(dataOrd));
@@ -900,17 +901,20 @@ public class EmsController {
dtbOrdPdf = entityProcessor.processEntity(dtbOrdPdf, multiDBTransactionManager);
if (dtbOrdPdf != null) {
- response.setContentType("application/octet-stream");
- response.setStatus(HttpServletResponse.SC_OK);
- response.addHeader(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition.attachment().filename(dtbOrdPdf.getFilename()).build().toString());
-
byte[] byteArr = dtbOrdPdf.getFilecontentByteArr(true);
- response.setContentLength(byteArr != null ? byteArr.length : 0);
- return byteArr;
+
+ return ResponseEntity.ok()
+ .contentType(MediaType.APPLICATION_PDF)
+ .contentLength(byteArr != null ? byteArr.length : 0)
+ .header(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition
+ .builder("attachment")
+ .filename(ContentDisposition.attachment().filename(dtbOrdPdf.getFilename()).build().toString())
+ .build()
+ .toString())
+ .body(byteArr);
}
- response.sendError(404, "Allegato non trovato");
- return null;
+ return ResponseEntity.notFound().build();
}
@RequestMapping(value = EmsRestConstants.PATH_UPLOAD_STB_FILE_ATTACHMENT, method = RequestMethod.POST)
diff --git a/ems-core/src/main/java/it/integry/ems/exception/InvalidCustomerDbException.java b/ems-core/src/main/java/it/integry/ems/exception/InvalidCustomerDbException.java
new file mode 100644
index 0000000000..eda66aefe1
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/exception/InvalidCustomerDbException.java
@@ -0,0 +1,7 @@
+package it.integry.ems.exception;
+
+public class InvalidCustomerDbException extends RuntimeException {
+ public InvalidCustomerDbException(String dbName) {
+ super("Invalid customer database name: " + dbName + ". Please check your ems_settings.json");
+ }
+}
diff --git a/ems-core/src/main/java/it/integry/ems/exception/InvalidDbNameException.java b/ems-core/src/main/java/it/integry/ems/exception/InvalidDbNameException.java
new file mode 100644
index 0000000000..5e21f47af9
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/exception/InvalidDbNameException.java
@@ -0,0 +1,7 @@
+package it.integry.ems.exception;
+
+public class InvalidDbNameException extends RuntimeException {
+ public InvalidDbNameException(String dbName) {
+ super("Invalid database name: " + dbName + ". Please check your ems_settings.json");
+ }
+}
\ No newline at end of file
diff --git a/ems-core/src/main/java/it/integry/ems/exception/InvalidProfileDbException.java b/ems-core/src/main/java/it/integry/ems/exception/InvalidProfileDbException.java
new file mode 100644
index 0000000000..33420a5416
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/exception/InvalidProfileDbException.java
@@ -0,0 +1,7 @@
+package it.integry.ems.exception;
+
+public class InvalidProfileDbException extends RuntimeException {
+ public InvalidProfileDbException(String profileDb) {
+ super("Invalid profile db: " + profileDb + ". Please check your ems_settings.json");
+ }
+}
\ No newline at end of file
diff --git a/ems-core/src/main/java/it/integry/ems/file_formatter/txt/TxtMapper.java b/ems-core/src/main/java/it/integry/ems/file_formatter/txt/TxtMapper.java
index 98a531176b..01d2193f8f 100644
--- a/ems-core/src/main/java/it/integry/ems/file_formatter/txt/TxtMapper.java
+++ b/ems-core/src/main/java/it/integry/ems/file_formatter/txt/TxtMapper.java
@@ -2,6 +2,7 @@ package it.integry.ems.file_formatter.txt;
import com.annimon.stream.Stream;
import it.integry.ems_model.annotation.DtoField;
+import it.integry.ems_model.utility.UtilityLocalDate;
import it.integry.ems_model.utility.UtilityString;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -10,6 +11,7 @@ import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
+import java.time.LocalDate;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -76,8 +78,16 @@ public class TxtMapper {
if (ignorePosition)
stringBuilder.append(value).append(fieldsSplitChar);
- else
+ else {
+ if ( stringBuilder.length() > 0 && stringBuilder.length() < dtoField.startPosition() ) {
+ int numChar = dtoField.startPosition() - stringBuilder.length();
+ for (int i = 0; i < numChar; i++) {
+ stringBuilder.append(fieldsSplitChar);
+ }
+
+ }
stringBuilder.insert(dtoField.startPosition(), value).append(fieldsSplitChar);
+ }
} catch (Exception e) {
logger.error(e);
@@ -208,6 +218,8 @@ public class TxtMapper {
if (value != null) {
if (!UtilityString.isNullOrEmpty(dtoField.format()) && value instanceof Date) {
value = new SimpleDateFormat(dtoField.format()).format(value);
+ } else if (!UtilityString.isNullOrEmpty(dtoField.format()) && value instanceof LocalDate) {
+ value = UtilityLocalDate.formatDate((LocalDate) value, dtoField.format() );
} else if (!UtilityString.isNullOrEmpty(dtoField.formula()) && value instanceof BigDecimal) {
value = ((BigDecimal) value).setScale(dtoField.scale(), RoundingMode.HALF_DOWN);
String formula = dtoField.formula().replaceAll("this", value.toString());
diff --git a/ems-core/src/main/java/it/integry/ems/migration/_base/IntegryCustomer.java b/ems-core/src/main/java/it/integry/ems/migration/_base/IntegryCustomer.java
index 70e7c81937..0d6d98a411 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/_base/IntegryCustomer.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/_base/IntegryCustomer.java
@@ -71,7 +71,8 @@ public enum IntegryCustomer {
Gramm(IntegryCustomerDB.Gramm_Gramm,
IntegryCustomerDB.Gramm_PrimeOlive,
IntegryCustomerDB.Gramm_ProveStage,
- IntegryCustomerDB.Gramm_2MHolding),
+ IntegryCustomerDB.Gramm_2MHolding,
+ IntegryCustomerDB.Gramm_GrammUsa),
Idrotecnica(IntegryCustomerDB.Idrotecnica_Idrotecnica),
Igood(IntegryCustomerDB.Igood_Aida,
IntegryCustomerDB.Igood_Igood,
diff --git a/ems-core/src/main/java/it/integry/ems/migration/_base/IntegryCustomerDB.java b/ems-core/src/main/java/it/integry/ems/migration/_base/IntegryCustomerDB.java
index 72f25879a5..7ae6bf3007 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/_base/IntegryCustomerDB.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/_base/IntegryCustomerDB.java
@@ -1,5 +1,6 @@
package it.integry.ems.migration._base;
+import it.integry.ems.exception.InvalidCustomerDbException;
import it.integry.ems_model.utility.UtilityString;
import java.util.Arrays;
@@ -96,6 +97,7 @@ public enum IntegryCustomerDB {
Gramm_PrimeOlive("primeolive"),
Gramm_ProveStage("grammprovestage"),
Gramm_2MHolding("dueemme"),
+ Gramm_GrammUsa("gramm_usa"),
Idrotecnica_Idrotecnica("idrotecnica"),
@@ -234,6 +236,6 @@ public enum IntegryCustomerDB {
return Arrays.stream(values()).filter(x -> x.getValue().equalsIgnoreCase(value))
.findFirst()
- .orElse(null);
+ .orElseThrow(() -> new InvalidCustomerDbException(value));
}
}
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251114163222.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251114163222.java
index fd6a5efcc8..d257561edf 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251114163222.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251114163222.java
@@ -10,6 +10,9 @@ public class Migration_20251114163222 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
+
executeStatement("ALTER TABLE vtb_dest ADD data_mod DATETIME");
executeStatement("ALTER TABLE ptb_pros ADD data_mod DATETIME");
executeStatement("ALTER TABLE ptb_pros_rif ADD data_mod DATETIME");
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251117100418.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251117100418.java
index e13c1ef932..9227cd02e4 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251117100418.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251117100418.java
@@ -10,6 +10,8 @@ public class Migration_20251117100418 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
createOrUpdateProcedure("sp_moveTableToFileGroup", "CREATE PROCEDURE [dbo].[sp_moveTableToFileGroup] (@tableName varchar(max), @fileGroup varchar(max), @fileName varchar(max), @createFile varchar(1) = 'N')\n" +
"AS\n" +
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251118172320.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251118172320.java
index 537baadc3c..40f04024d2 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251118172320.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251118172320.java
@@ -11,6 +11,9 @@ public class Migration_20251118172320 extends BaseMigration implements Migration
return;
+ if (isDMS())
+ return;
+
createOrUpdateTrigger("tr_changeTipoRiep", "CREATE TRIGGER [dbo].[tr_changeTipoRiep]\n" +
" ON [dbo].[ctb_cont]\n" +
" INSTEAD OF update\n" +
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251119084719.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251119084719.java
index 8d75ed2483..fe8a79d4f5 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251119084719.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251119084719.java
@@ -10,6 +10,9 @@ public class Migration_20251119084719 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
+
executeStatement("alter table dtb_note_doc add flag_bio bit not null default 0");
}
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251120123843.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251120123843.java
index efb452c09a..3b6c2a4668 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251120123843.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251120123843.java
@@ -11,6 +11,9 @@ public class Migration_20251120123843 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
+
executeStatement("alter table gtb_anag alter column citta varchar(60)");
createOrUpdateFunction("IntToBase36", "CREATE FUNCTION dbo.IntToBase36(@n bigint)\n" +
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251120153047.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251120153047.java
index a87aee4937..2d057fbcd0 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251120153047.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251120153047.java
@@ -10,6 +10,9 @@ public class Migration_20251120153047 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
+
executeStatement("alter table gtb_anag alter column rag_soc varchar(100)");
}
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251120181812.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251120181812.java
index f14154e2c6..19d672e4bb 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251120181812.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251120181812.java
@@ -10,6 +10,8 @@ public class Migration_20251120181812 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
createOrUpdateView("cvw_tipi_pdc", "CREATE VIEW cvw_tipi_pdc AS\n" +
"SELECT '1' AS codice, Upper('Attivo') descrizione, '1' as sezione\n" +
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251121150257.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251121150257.java
index 785f5786fc..4bc0ac2e24 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251121150257.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251121150257.java
@@ -10,6 +10,8 @@ public class Migration_20251121150257 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
createOrUpdateFunction("getMaggiorazioneSpese", "CREATE FUNCTION [dbo].[getMaggiorazioneSpese](@dataValidita datetime, @codVlis varchar(5), @codSpes varchar(5)) \n" +
"RETURNS TABLE AS \n" +
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251124135552.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251124135552.java
index a73ba2c073..09144cc992 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251124135552.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251124135552.java
@@ -10,6 +10,9 @@ public class Migration_20251124135552 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
+
createOrUpdateFunction("getGrigliaAcquisto","CREATE FUNCTION [dbo].[getGrigliaAcquisto] (@dataValidita datetime, @codAlis varchar(5), @codMdep varchar(5), @codArtFor varchar(25), @codMart varchar(15)) RETURNS TABLE AS\n" +
"return\n" +
"SELECT *\n" +
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251124164630.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251124164630.java
index 6aa89f661d..f1443f350d 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251124164630.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251124164630.java
@@ -10,6 +10,9 @@ public class Migration_20251124164630 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
+
createOrUpdateFunction("getMaterialiDistinta",
"CREATE FUNCTION [dbo].[getMaterialiDistinta](@codProd VARCHAR(15), @explodeSemilavorati BIT)\n" +
" RETURNS TABLE\n" +
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251125095325.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251125095325.java
index a55f2e9400..b05f4c8fde 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251125095325.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251125095325.java
@@ -10,6 +10,9 @@ public class Migration_20251125095325 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
+
createOrUpdateFunction("getMaterialiDistinta",
"CREATE FUNCTION [dbo].[getMaterialiDistinta](@codProd VARCHAR(15), @explodeSemilavorati BIT)\n" +
" RETURNS TABLE\n" +
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251125105713.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251125105713.java
index b8139d164b..c2364a9197 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251125105713.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251125105713.java
@@ -10,6 +10,9 @@ public class Migration_20251125105713 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
+
createOrUpdateProcedure("MRP_UpdateQtaImpProx", "CREATE Procedure [dbo].[MRP_UpdateQtaImpProx](@elencoArticoli varchar(max) = null)\n" +
"AS \n" +
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251127104634.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251127104634.java
index 0be4357506..1712f95a7c 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251127104634.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251127104634.java
@@ -12,6 +12,9 @@ public class Migration_20251127104634 extends BaseMigration implements Migration
return;
if (!isCustomer(IntegryCustomer.Biolevante)) return;
+ if (isDMS())
+ return;
+
createOrUpdateFunction("f_pp_consuntivo_prod_tracc", "CREATE function [dbo].[f_pp_consuntivo_prod_tracc] (@as_codProdParent varchar(15), @as_partitaMagParent varchar(20), @ac_qtaProdParent numeric(20,5), @as_codProd varchar(15), @as_partitaMag varchar(20), @ac_qtaProd numeric(20, 5), @ai_livello integer, @as_item_id varchar(255), @ai_idRiga integer) \n" +
"RETURNS @dettCosti TABLE(livello integer, \n" +
" item_id varchar(255),\n" +
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251127114735.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251127114735.java
index 7af816e14e..9ad89598ba 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251127114735.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251127114735.java
@@ -15,6 +15,9 @@ public class Migration_20251127114735 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
+
executeStatement(
"exec DropForeignKey 'mtb_aart', 'mtb_marchio_linea'",
"exec DropForeignKey 'mtb_aart', 'mtb_marchio_slinea'",
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251128153854.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251128153854.java
index e327bdcc13..d20bc1e802 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251128153854.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251128153854.java
@@ -10,6 +10,9 @@ public class Migration_20251128153854 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
+
executeStatement("update stb_menu set flag_attivo = 'N' where cod_opz in ('mg077', 'mg078', 'mg079', 'mg080')");
}
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251128190648.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251128190648.java
index bee414e2d1..c9b7708fdb 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251128190648.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251128190648.java
@@ -11,6 +11,9 @@ public class Migration_20251128190648 extends BaseMigration implements Migration
if (isHistoryDB())
return;
+ if (isDMS())
+ return;
+
if (isCustomerDb(IntegryCustomerDB.Carelli_Winact)) {
dropTable("crl_amac_manutenzioni_files");
dropTable("ctb_amac_manutenzioni");
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251201090147.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251201090147.java
new file mode 100644
index 0000000000..ed55f7114d
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251201090147.java
@@ -0,0 +1,19 @@
+package it.integry.ems.migration.model;
+
+import it.integry.ems.migration._base.BaseMigration;
+import it.integry.ems.migration._base.MigrationModelInterface;
+
+public class Migration_20251201090147 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ executeStatement("alter table ctb_cont add flag_attivo bit not null default 1");
+ }
+
+ @Override
+ public void down() throws Exception {
+ }
+}
\ No newline at end of file
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251201105344.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251201105344.java
new file mode 100644
index 0000000000..12d1aec941
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251201105344.java
@@ -0,0 +1,62 @@
+package it.integry.ems.migration.model;
+
+import it.integry.ems.migration._base.BaseMigration;
+import it.integry.ems.migration._base.MigrationModelInterface;
+
+public class Migration_20251201105344 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ if (isDMS())
+ return;
+
+ createOrUpdateTrigger("tr_changeTipoRiep", "CREATE TRIGGER [dbo].[tr_changeTipoRiep]\n" +
+ " ON [dbo].[ctb_cont]\n" +
+ " INSTEAD OF update\n" +
+ "AS\n" +
+ "BEGIN\n" +
+ "\tSET NOCOUNT ON;\n" +
+ "\tdeclare @cnt int = 0\n" +
+ "\n" +
+ "\n" +
+ "\tif Update(tipo_riep ) \n" +
+ "\tbegin\n" +
+ "\t\tSELECT @cnt = COUNT(*) from ctb_movr inner join inserted on ctb_movr.cod_ccon = inserted.cod_ccon and \n" +
+ "\t\t( (inserted.tipo_riep is null and ctb_movr.cod_anag is not null ) or (inserted.tipo_riep is null and ctb_movr.cod_anag is null ) )\n" +
+ "\tend\n" +
+ "\t \n" +
+ "\t \n" +
+ " IF @cnt > 0\n" +
+ " BEGIN\n" +
+ " THROW 50002, 'Update non consentito: esistono movimenti collegati.', 1;\n" +
+ " RETURN;\n" +
+ " END\n" +
+ "\t\n" +
+ "\tupdate ctb_cont \n" +
+ "\tset cod_cmas = inserted.cod_cmas,\n" +
+ "\t\tcod_cgrp = inserted.cod_cgrp,\n" +
+ "\t\tdescrizione = inserted.descrizione,\n" +
+ "\t\ttipo_riep = inserted.tipo_riep,\n" +
+ "\t\tsaldo_att = inserted.saldo_att,\n" +
+ "\t\tflag_cont_analit = inserted.flag_cont_analit,\n" +
+ "\t\tcod_biva = inserted.cod_biva,\n" +
+ "\t\tcod_jfas = inserted.cod_jfas,\n" +
+ "\t\tcod_csct = inserted.cod_csct,\n" +
+ "\t\tflag_risconto = inserted.flag_risconto,\n" +
+ "\t\tperc_ded = inserted.perc_ded,\n" +
+ "\t\tdiacod = inserted.diacod,\n" +
+ "\t\tdata_ins = inserted.data_ins,\n" +
+ "\t\tdata_mod = inserted.data_mod,\n" +
+ "\t\tflag_attivo = inserted.flag_attivo\n" +
+ "\tfrom ctb_cont inner join inserted on ctb_cont.cod_ccon = inserted.cod_ccon\n" +
+ "\n" +
+ "END");
+ }
+
+ @Override
+ public void down() throws Exception {
+ }
+}
\ No newline at end of file
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251201124048.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251201124048.java
new file mode 100644
index 0000000000..dc0616b655
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251201124048.java
@@ -0,0 +1,29 @@
+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_20251201124048 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ createSetupQuery("SI_NO", "SI_NO", "SELECT 'S' UNION ALL SELECT 'N'");
+ createSetup("PICKING", "ACCETTAZIONE_BOLLA", "FLAG_ENABLE_MARK_RECEIVED", "N",
+ "Abilita il tasto nell'avanti elenco per poter settare a true il campo merce_ricevuta in wdtb_doct", false, "SI_NO", false, false,
+ false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'");
+
+ if (isCustomer(IntegryCustomer.Carelli)) {
+ updateSetupValue("PICKING", "ACCETTAZIONE_BOLLA", "FLAG_ENABLE_MARK_RECEIVED", "S");
+ }
+ }
+
+ @Override
+ public void down() throws Exception {
+
+ }
+
+}
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251201164935.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251201164935.java
new file mode 100644
index 0000000000..802db2f75f
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251201164935.java
@@ -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_20251201164935 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ createSetup("W_DDOCU_TAB_RC", "SETUP", "LOG_PICKING", "N",
+"Se impostato a S viene salvato un file di log su ogni singola postazione, un file al giorno, con il log dei passaggi nella fase di picking)", false, null, false, false,
+false, false, false, null, false, null);
+ }
+
+ @Override
+ public void down() throws Exception {
+
+ }
+
+}
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251202094633.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251202094633.java
new file mode 100644
index 0000000000..45546b48be
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251202094633.java
@@ -0,0 +1,31 @@
+package it.integry.ems.migration.model;
+
+import it.integry.ems.migration._base.BaseMigration;
+import it.integry.ems.migration._base.IntegryCustomerDB;
+import it.integry.ems.migration._base.MigrationModelInterface;
+
+public class Migration_20251202094633 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+
+ if (!isCustomerDb(IntegryCustomerDB.Dulciar_Dulciar))
+ return;
+
+ executeStatement("update stb_gest_setup set value = 'S' where gest_name = 'DTB_ORDT' and key_section in ('NUOVA_PROCEDURA','DISABLE_TRIGGER_ORDL')");
+ executeStatement("update stb_gest_sync set syncronize = 'R' where gest_name like 'lord%'");
+ executeStatement("update stb_gest_sync set syncronize = 'R' where gest_name like 'pord%'");
+ executeStatement("insert into stb_abil \n" +
+ "select case when gest_name = 'lordi' then 'LG081' else 'AG031' end , user_name, 'S', case when gest_name = 'lordi' then 'lordi_tab' else 'pordi_tab' end from stb_abil \n" +
+ "where gest_name in ('lordi','pordi') and case when gest_name = 'lordi' then 'LG081' else 'AG031' end + user_name not in (select cod_opz + user_name from stb_abil where cod_opz in ('LG081','AG031'))");
+ executeStatement("update stb_abil set flag_abil = 'N' where gest_name in ('lordi','pordi')");
+
+ }
+
+ @Override
+ public void down() throws Exception {
+ }
+}
\ No newline at end of file
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251202140350.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251202140350.java
new file mode 100644
index 0000000000..a8914aeeda
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251202140350.java
@@ -0,0 +1,29 @@
+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_20251202140350 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ createSetup("w_cmovi_rc", "SETUP", "PRINT_QUIETANZA", "S",
+ "chiede e fa stampare la lettera di quietanza", false, null, false, false,
+ false, false, false, null, false, null);
+
+
+ if(isCustomer(IntegryCustomer.Carelli))
+ updateSetupValue("w_cmovi_rc", "SETUP", "PRINT_QUIETANZA", "N");
+
+ }
+
+ @Override
+ public void down() throws Exception {
+
+ }
+
+}
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251202161223.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251202161223.java
new file mode 100644
index 0000000000..8cb4e6e4df
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251202161223.java
@@ -0,0 +1,70 @@
+package it.integry.ems.migration.model;
+
+import it.integry.ems.migration._base.BaseMigration;
+import it.integry.ems.migration._base.MigrationModelInterface;
+
+public class Migration_20251202161223 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ createOrUpdateView("cvw_saldo_scad", "CREATE VIEW dbo.cvw_saldo_scad\n" +
+ " WITH SCHEMABINDING\n" +
+ " AS\n" +
+ " SELECT ctb_scad.tipo_anag,\n" +
+ " ctb_scad.cod_anag,\n" +
+ " ctb_scad.anno_part,\n" +
+ " ctb_scad.ser_doc,\n" +
+ " ctb_scad.num_doc,\n" +
+ " SUM(ctb_scad.imp_dare) AS dare_scad,\n" +
+ " SUM(ctb_scad.imp_avere) AS avere_scad,\n" +
+ " COUNT_BIG(*) AS id\n" +
+ " FROM dbo.ctb_scad\n" +
+ " GROUP BY ctb_scad.tipo_anag,\n" +
+ " ctb_scad.cod_anag,\n" +
+ " ctb_scad.anno_part,\n" +
+ " ctb_scad.ser_doc,\n" +
+ " ctb_scad.num_doc");
+ executeStatement("CREATE UNIQUE CLUSTERED INDEX ix_cvw_saldo_scad\n" +
+ " ON dbo.cvw_saldo_scad (\n" +
+ " tipo_anag,\n" +
+ " cod_anag,\n" +
+ " anno_part,\n" +
+ " ser_doc,\n" +
+ " num_doc\n" +
+ " );");
+
+ createOrUpdateView("cvw_saldo_part",
+ "CREATE VIEW dbo.cvw_saldo_part\n" +
+ " WITH SCHEMABINDING\n" +
+ "AS\n" +
+ "SELECT ctb_part.tipo_anag,\n" +
+ " ctb_part.cod_anag,\n" +
+ " ctb_part.anno_part,\n" +
+ " ctb_part.ser_doc,\n" +
+ " ctb_part.num_doc,\n" +
+ " SUM(ctb_parr.imp_dare * ctb_part.cambio_divi_cont / ctb_parr.cambio_divi_cont) AS dare_part,\n" +
+ " SUM(ctb_parr.imp_avere * ctb_part.cambio_divi_cont / ctb_parr.cambio_divi_cont) AS avere_part,\n" +
+ " COUNT_BIG(*) AS id\n" +
+ "FROM dbo.ctb_part\n" +
+ " INNER JOIN dbo.ctb_parr\n" +
+ " ON ctb_part.tipo_anag = ctb_parr.tipo_anag AND ctb_part.cod_anag = ctb_parr.cod_anag AND\n" +
+ " ctb_part.anno_part = ctb_parr.anno_part AND ctb_part.ser_doc = ctb_parr.ser_doc AND\n" +
+ " ctb_part.num_doc = ctb_parr.num_doc\n" +
+ "GROUP BY ctb_part.tipo_anag, ctb_part.cod_anag, ctb_part.anno_part, ctb_part.ser_doc, ctb_part.num_doc");
+ executeStatement("CREATE UNIQUE CLUSTERED INDEX ix_cvw_saldo_part\n" +
+ " ON dbo.cvw_saldo_part (\n" +
+ " tipo_anag,\n" +
+ " cod_anag,\n" +
+ " anno_part,\n" +
+ " ser_doc,\n" +
+ " num_doc\n" +
+ " );");
+ }
+
+ @Override
+ public void down() throws Exception {
+ }
+}
\ No newline at end of file
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251203085140.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251203085140.java
new file mode 100644
index 0000000000..fc812e0e2f
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251203085140.java
@@ -0,0 +1,21 @@
+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_20251203085140 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ if(isCustomer(IntegryCustomer.RossoGargano))
+ updateSetupValue("w_cmovi_rc", "SETUP", "PRINT_QUIETANZA", "N");
+ }
+
+ @Override
+ public void down() throws Exception {
+ }
+}
\ No newline at end of file
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251203121227.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251203121227.java
new file mode 100644
index 0000000000..74569f4cc7
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251203121227.java
@@ -0,0 +1,46 @@
+package it.integry.ems.migration.model;
+
+import it.integry.ems.migration._base.BaseMigration;
+import it.integry.ems.migration._base.MigrationModelInterface;
+
+public class Migration_20251203121227 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+
+ createOrUpdateFunction("f_AggiungiGiorniScad", "CREATE FUNCTION [dbo].[f_AggiungiGiorniScad](@dataIniz DateTime, @giorni int, @ls_dataRif varchar(20)) \n" +
+ "RETURNS dateTime\n" +
+ " begin\n" +
+ "\n" +
+ " declare @ldt_dataInizCalc dateTime\n" +
+ " DECLARE @mesi INT = @giorni / 30;\n" +
+ "\n" +
+ " SELECT @ldt_dataInizCalc = \n" +
+ " CASE WHEN (@giorni % 30) > 0 OR left(@ls_dataRif, 12) = 'DATA FATTURA' THEN \n" +
+ " DATEADD(Day, @giorni , @dataIniz )\n" +
+ " ELSE\n" +
+ " CASE WHEN @ls_dataRif = 'FINE MESE' AND @giorni = 30 AND Datepart(month, @dataIniz) = 1\n" +
+ " THEN\n" +
+ " dbo.f_getLastDayOfMonth(Convert(datetime, Cast(Year(@dataIniz) as varchar) + '/02/01' ))\n" +
+ " ELSE\n" +
+ " CASE WHEN (@giorni % 30) = 0 AND @ls_dataRif = 'FINE MESE' AND Datepart(month, @dataIniz) = 12\n" +
+ " THEN\n" +
+ " dbo.f_getLastDayOfMonth(DATEADD(Month, @mesi , @dataIniz ))\n" +
+ " ELSE\n" +
+ " dbo.f_getLastDayOfMonth(DATEADD(Day, @giorni , @dataIniz ))\n" +
+ " END \n" +
+ " END\n" +
+ " END\n" +
+ " return (@ldt_dataInizCalc)\n" +
+ " end;");
+ }
+
+ @Override
+ public void down() throws Exception {
+
+ }
+
+}
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251203165544.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251203165544.java
new file mode 100644
index 0000000000..dd06d1bef5
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251203165544.java
@@ -0,0 +1,22 @@
+package it.integry.ems.migration.model;
+
+import it.integry.ems.migration._base.BaseMigration;
+import it.integry.ems.migration._base.MigrationModelInterface;
+
+public class Migration_20251203165544 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ executeStatement("exec dbo.DropPrimaryKey 'azienda'\n",
+ "alter table azienda add id tinyint not null default 1;\n",
+ "alter table azienda add constraint pk_azienda primary key (id);\n",
+ "alter table azienda add constraint chk_id_azienda CHECK (id = 1)");
+ }
+
+ @Override
+ public void down() throws Exception {
+ }
+}
\ No newline at end of file
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251204131327.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251204131327.java
new file mode 100644
index 0000000000..b829af6400
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251204131327.java
@@ -0,0 +1,21 @@
+package it.integry.ems.migration.model;
+
+import it.integry.ems.migration._base.BaseMigration;
+import it.integry.ems.migration._base.MigrationModelInterface;
+
+public class Migration_20251204131327 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ executeStatement("alter table mtb_aart_desc Add descrizione_html text",
+ "alter table mtb_aart_equi add flag_equi_anag BIT not null DEFAULT 0"
+ );
+ }
+
+ @Override
+ public void down() throws Exception {
+ }
+}
\ No newline at end of file
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205101442.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205101442.java
new file mode 100644
index 0000000000..094a6198d0
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205101442.java
@@ -0,0 +1,22 @@
+package it.integry.ems.migration.model;
+
+import it.integry.ems.migration._base.BaseMigration;
+import it.integry.ems.migration._base.MigrationModelInterface;
+
+public class Migration_20251205101442 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ executeStatement("alter table srl_activity_type_user add activity_default bit not null default 0;\n",
+ "CREATE UNIQUE INDEX ux_srl_activity_type_user_default\n" +
+ "ON srl_activity_type_user (user_name, flag_tipologia)\n" +
+ "WHERE activity_default = 1;");
+ }
+
+ @Override
+ public void down() throws Exception {
+ }
+}
\ No newline at end of file
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205111526.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205111526.java
index 2932c8d6b6..7055f34d9e 100644
--- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205111526.java
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205111526.java
@@ -10,7 +10,6 @@ public class Migration_20251205111526 extends BaseMigration implements Migration
if (isHistoryDB())
return;
-
createOrUpdateView("mvw_sitart_udc_det_inventario","CREATE VIEW [dbo].[mvw_sitart_udc_det_inventario] AS\n" +
"WITH baseMtbColr AS (SELECT c,\n" +
"\n" +
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205130201.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205130201.java
new file mode 100644
index 0000000000..1e7143dcc1
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205130201.java
@@ -0,0 +1,44 @@
+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.IntegryCustomerDB;
+import it.integry.ems.migration._base.MigrationModelInterface;
+
+public class Migration_20251205130201 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ if ( !existsColumn("mtb_depo", "data_iniz_vent" ))
+ executeStatement("ALTER TABLE mtb_depo ADD data_iniz_vent datetime");
+
+ if ( !existsColumn("mtb_depo", "data_fine_vent" ))
+ executeStatement("ALTER TABLE mtb_depo ADD data_fine_vent datetime");
+
+ if ( !existsColumn("ctb_movi", "ventilazione" ))
+ executeStatement("ALTER TABLE ctb_movi ADD ventilazione bit not null default 1");
+
+ if (isCustomer(IntegryCustomer.CapelliMonelli) && isCustomerDb(IntegryCustomerDB.Gramm_GrammUsa)) {
+ executeStatement(
+ "CREATE TABLE [oltb_operregi_log] (data_file DATETIME, prog_file INT, cod_CUA VARCHAR (16), ID_depo NUMERIC (10, 0), num_operaz INT, data_operaz DATETIME, id_err INT, error_text VARCHAR (MAX), tipo_errore INT)",
+ "ALTER TABLE [atb_offt] ADD flag_tipo_off INT",
+ "ALTER TABLE [ctb_varbeni] ADD num_cmov INT",
+ "CREATE TABLE [mtb_list_costo_lisa_data] (id BIGINT, listino VARCHAR (5), data_rif DATETIME, cod_mart VARCHAR (15), cod_art_for VARCHAR (25), cod_promo VARCHAR (10), costo_lisa DECIMAL (20, 5))",
+ "ALTER TABLE [atb_tipi] ADD socio_aziendale BIT",
+ "ALTER TABLE [dtb_dif_bolle] ADD targa VARCHAR (20), posti_pallet INT",
+ "CREATE TABLE [oltb_categorie] (cod_ocat VARCHAR (5), categoria VARCHAR (80))",
+ "ALTER TABLE [ctb_movi] ADD ventilazione BIT",
+ "CREATE TABLE [oltb_macroaree] (Cod_omar VARCHAR (5), acronimo VARCHAR (5), macro_area VARCHAR (80), flag_ObbligOrigSpec VARCHAR (1), flag_DopIgp VARCHAR (1))",
+ "ALTER TABLE [dtb_ord_steps] ADD posizione_out VARCHAR (MAX)",
+ "CREATE TABLE [oltb_origspec] (cod_omar VARCHAR (5), cod_oorspec VARCHAR (5), acronimo VARCHAR (5), origine_spec VARCHAR (80))"
+ );
+ }
+ }
+
+ @Override
+ public void down() throws Exception {
+ }
+}
\ No newline at end of file
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205154053.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205154053.java
new file mode 100644
index 0000000000..eac0cf581a
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205154053.java
@@ -0,0 +1,46 @@
+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_20251205154053 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ executeStatement("DELETE FROM STB_GEST_SETUP WHERE GEST_NAME LIKE '%DOCUMENTI DI VENDITA'");
+
+ createSetup("EXPORT_DOCUMENTI VENDITA", "MD", "ATTIVO", "N",
+ "Inserire S/N per attivare/disattivare il tipo di importazione", false, null, false, false,
+ false, false, false, null, false, null);
+ createSetup("EXPORT_DOCUMENTI VENDITA", "MD", "EMAIL_FOR_LOG", null,
+ "Inserire il file l'indirizzo email per inviare il log dell'importazione", false, null, false, false,
+ false, false, false, null, false, null);
+ createSetup("EXPORT_DOCUMENTI VENDITA", "MD", "GG_CANC_FILE", null,
+ "Giorni per la cancellazione dei file dalla cartella di appoggio", false, null, false, false,
+ false, false, false, null, false, null);
+ createSetup("EXPORT_DOCUMENTI VENDITA", "MD", "IMPORT_REST", "S",
+ "Inserire S/N per attivare/disattivare il salvataggio con i servizi REST", false, null, false, false,
+ false, false, false, null, false, null);
+ createSetup("EXPORT_DOCUMENTI VENDITA", "MD", "PATH_FILE", null,
+ "Directory dove vengono salvati i file temporanei, se non รจ configurata i file saranno salvati in c:\\mlSetupWS\\TEMP_EXPORT", false, null, false, false,
+ false, false, false, null, false, null);
+
+ if (!isCustomer(IntegryCustomer.Sardinya)) return;
+
+ updateSetupValue("EXPORT_DOCUMENTI VENDITA", "MD", "ATTIVO", "S",
+ "Inserire S/N per attivare/disattivare il tipo di importazione", false, null, false, false,
+ false, false, false, null, false, null);
+
+
+ }
+
+ @Override
+ public void down() throws Exception {
+
+ }
+
+}
diff --git a/ems-core/src/main/java/it/integry/ems/rules/completing/DocumentCheckRules.java b/ems-core/src/main/java/it/integry/ems/rules/completing/DocumentCheckRules.java
index d628a02a9e..df8b6979fb 100644
--- a/ems-core/src/main/java/it/integry/ems/rules/completing/DocumentCheckRules.java
+++ b/ems-core/src/main/java/it/integry/ems/rules/completing/DocumentCheckRules.java
@@ -8,16 +8,14 @@ import it.integry.ems_model.entity.DtbDocr;
import it.integry.ems_model.entity.DtbDoct;
import it.integry.ems_model.entity.NtbDoct;
import it.integry.ems_model.types.OperationType;
-import it.integry.ems_model.utility.UtilityDB;
-import it.integry.ems_model.utility.UtilityHashMap;
-import it.integry.ems_model.utility.UtilityLocalDate;
-import it.integry.ems_model.utility.UtilityString;
+import it.integry.ems_model.utility.*;
import java.math.BigDecimal;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.time.LocalDate;
+import java.time.LocalDate;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -26,7 +24,6 @@ import static it.integry.ems.rules.completing.QueryRules.getSingleValue;
public class DocumentCheckRules {
private static void checkDataMov(LocalDate dataCmov, DtbDoct entity, Connection conn) throws Exception {
-
// ACQUISIZIONE DATI AZIENDA
final Azienda defaultAzienda = Azienda.getDefaultAzienda(conn);
Integer annoAtt = defaultAzienda.getAnnoAttuale();
diff --git a/ems-core/src/main/java/it/integry/ems/service/dto/production/OrdineLavorazioneDTO.java b/ems-core/src/main/java/it/integry/ems/service/dto/production/OrdineLavorazioneDTO.java
index 734662313e..c88b3b6005 100644
--- a/ems-core/src/main/java/it/integry/ems/service/dto/production/OrdineLavorazioneDTO.java
+++ b/ems-core/src/main/java/it/integry/ems/service/dto/production/OrdineLavorazioneDTO.java
@@ -191,6 +191,12 @@ public class OrdineLavorazioneDTO {
@JsonProperty("qtaProd")
@JsonSerialize
private BigDecimal qtaProd;
+
+ @SqlField(value = "qta_ord")
+ @JsonProperty("qtaOrd")
+ @JsonSerialize
+ private BigDecimal qtaOrd;
+
@SqlField(value = "qta_lav")
@JsonProperty("qtaLav")
@JsonSerialize
@@ -731,6 +737,15 @@ public class OrdineLavorazioneDTO {
return this;
}
+ public BigDecimal getQtaOrd() {
+ return qtaOrd;
+ }
+
+ public OrdineLavorazioneDTO setQtaOrd(BigDecimal qtaOrd) {
+ this.qtaOrd = qtaOrd;
+ return this;
+ }
+
public BigDecimal getQtaLav() {
return qtaLav;
}
diff --git a/ems-core/src/main/java/it/integry/ems/service/production/ProductionOrderDataHandlerService.java b/ems-core/src/main/java/it/integry/ems/service/production/ProductionOrderDataHandlerService.java
index f4cfb7dc04..8557569794 100644
--- a/ems-core/src/main/java/it/integry/ems/service/production/ProductionOrderDataHandlerService.java
+++ b/ems-core/src/main/java/it/integry/ems/service/production/ProductionOrderDataHandlerService.java
@@ -223,7 +223,8 @@ public class ProductionOrderDataHandlerService {
" jtb_comt.cod_jcom,\n" +
" jtb_comt.descrizione as descrizione_commessa,\n" +
" jl.id_lotto,\n" +
- " dtb_ordt.qta_prod as qta_ord \n" +
+ " mtb_aart.qta_cnf,\n" +
+ " ordl.qta_prod AS qta_ord\n" +
"FROM dtb_ordt\n" +
" INNER JOIN dtb_ordt ordl ON dtb_ordt.gestione = ordl.gestione_rif\n" +
" AND dtb_ordt.data_ord = ordl.data_ord_rif\n" +
diff --git a/ems-core/src/main/java/it/integry/ems/settings/Model/SettingsModel.java b/ems-core/src/main/java/it/integry/ems/settings/Model/SettingsModel.java
index e06c6eea82..fde82197aa 100644
--- a/ems-core/src/main/java/it/integry/ems/settings/Model/SettingsModel.java
+++ b/ems-core/src/main/java/it/integry/ems/settings/Model/SettingsModel.java
@@ -3,6 +3,8 @@ package it.integry.ems.settings.Model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
+import it.integry.ems.exception.InvalidDbNameException;
+import it.integry.ems.exception.InvalidProfileDbException;
import it.integry.ems.expansion.ObservableArrayList;
import it.integry.ems.expansion.ObservableField;
import it.integry.ems.settings.SettingsHelper;
@@ -199,7 +201,7 @@ public class SettingsModel implements InitializingBean {
.filter(x -> x.getDbName().equalsIgnoreCase(dbName))
.map(AvailableConnectionModel::getProfileName)
.findFirst()
- .orElse(null);
+ .orElseThrow(() -> new InvalidDbNameException(dbName));
return profileDb;
}
@@ -209,7 +211,7 @@ public class SettingsModel implements InitializingBean {
.filter(x -> x.getProfileName().equalsIgnoreCase(profileDb))
.map(AvailableConnectionModel::getDbName)
.findFirst()
- .orElse(null);
+ .orElseThrow(() -> new InvalidProfileDbException(profileDb));
return dbName;
}
diff --git a/ems-core/src/main/java/it/integry/ems/user/service/UserCacheService.java b/ems-core/src/main/java/it/integry/ems/user/service/UserCacheService.java
index 611cf1c799..01ae6e458c 100644
--- a/ems-core/src/main/java/it/integry/ems/user/service/UserCacheService.java
+++ b/ems-core/src/main/java/it/integry/ems/user/service/UserCacheService.java
@@ -158,7 +158,7 @@ public class UserCacheService {
}
List availableDepoList = entityCacheComponent.getCachedEntitiesList(customerDB, WtbDepo.ENTITY,
- y -> x.getUsername().equalsIgnoreCase(y.getUserName())
+ y -> userDTO.getUsername().equalsIgnoreCase(y.getUserName())
);
userDTO.setAvailableDepoList(availableDepoList);
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/Azienda.java b/ems-core/src/main/java/it/integry/ems_model/entity/Azienda.java
index def79c617c..a297242073 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/Azienda.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/Azienda.java
@@ -18,7 +18,7 @@ import org.kie.api.definition.type.PropertyReactive;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.time.LocalDate;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.HashMap;
@Master
@@ -34,6 +34,9 @@ public class Azienda extends EntityBase {
private static final long serialVersionUID = 1L;
@PK
+ @SqlField(value = "id", nullable = false)
+ private Short id;
+
@SqlField(value = "nome_ditta", maxLength = 40, nullable = false)
private String nomeDitta;
@@ -86,10 +89,10 @@ public class Azienda extends EntityBase {
private String ribaRSocBreve;
@SqlField(value = "data_iniz_msg")
- private Date dataInizMsg;
+ private LocalDate dataInizMsg;
@SqlField(value = "data_fine_msg")
- private Date dataFineMsg;
+ private LocalDate dataFineMsg;
@SqlField(value = "messaggio_doc", maxLength = 130)
private String messaggioDoc;
@@ -98,10 +101,10 @@ public class Azienda extends EntityBase {
private String liquidazioniIva;
@SqlField(value = "last_upg_db")
- private Date lastUpgDb;
+ private LocalDate lastUpgDb;
@SqlField(value = "data_upd_sw", nullable = false)
- private Date dataUpdSw;
+ private LocalDateTime dataUpdSw;
@SqlField(value = "logo_file", maxLength = 128)
private String logoFile;
@@ -167,7 +170,7 @@ public class Azienda extends EntityBase {
private String persFisicaSesso;
@SqlField(value = "pers_fisica_data_nascita")
- private Date persFisicaDataNascita;
+ private LocalDate persFisicaDataNascita;
@SqlField(value = "pers_fisica_comune_nascita", maxLength = 30)
private String persFisicaComuneNascita;
@@ -275,11 +278,26 @@ public class Azienda extends EntityBase {
private String rapprLegaleComuneNascita;
@SqlField(value = "rappr_legale_data_nascita")
- private Date rapprLegaleDataNascita;
+ private LocalDate rapprLegaleDataNascita;
@SqlField(value = "rappr_legale_prov_nascita", maxLength = 2)
private String rapprLegaleProvNascita;
+ @SqlField(value = "rappr_legale", maxLength = 255)
+ private String rapprLegale;
+
+ @SqlField(value = "flag_fatt_ele", maxLength = 1)
+ private String flagFattEle;
+
+ @SqlField(value = "cod_fda", maxLength = 20)
+ private String codFda;
+
+ @SqlField(value = "cod_fce")
+ private Integer codFce;
+
+ @SqlField(value = "cod_lucid", maxLength = 20)
+ private String codLucid;
+
@SqlField(value = "giorno_iniz_anno_fisc", nullable = false)
private Integer giornoInizAnnoFisc;
@@ -289,6 +307,9 @@ public class Azienda extends EntityBase {
@SqlField(value = "flag_regime_speciale_iva", maxLength = 1, nullable = false, defaultObjectValue = "N")
private String flagRegimeSpecialeIva;
+ @SqlField(value = "cod_cuc", maxLength = 10)
+ private String codCuc;
+
@JsonIgnore
@SqlField(value = "jwt_secret_key", maxLength = -1)
private String jwtSecretKey;
@@ -311,260 +332,322 @@ public class Azienda extends EntityBase {
return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(conn, sql, Azienda.class);
}
+ public String getApplicationName() {
+ return applicationName;
+ }
+
+ public ApplicationName getApplicationNameEnum() {
+ return ApplicationName.valueOf(getApplicationName());
+ }
+
+ public void setApplicationName(String applicationName) {
+ this.applicationName = applicationName;
+ }
+
+ public Short getId() {
+ return id;
+ }
+
+ public Azienda setId(Short id) {
+ this.id = id;
+ return this;
+ }
+
public String getNomeDitta() {
return nomeDitta;
}
- public void setNomeDitta(String nomeDitta) {
+ public Azienda setNomeDitta(String nomeDitta) {
this.nomeDitta = nomeDitta;
+ return this;
}
public String getIndirizzo() {
return indirizzo;
}
- public void setIndirizzo(String indirizzo) {
+ public Azienda setIndirizzo(String indirizzo) {
this.indirizzo = indirizzo;
+ return this;
}
public String getCap() {
return cap;
}
- public void setCap(String cap) {
+ public Azienda setCap(String cap) {
this.cap = cap;
+ return this;
}
public String getCitta() {
return citta;
}
- public void setCitta(String citta) {
+ public Azienda setCitta(String citta) {
this.citta = citta;
+ return this;
}
public String getProv() {
return prov;
}
- public void setProv(String prov) {
+ public Azienda setProv(String prov) {
this.prov = prov;
+ return this;
}
public String getPartIva() {
return partIva;
}
- public void setPartIva(String partIva) {
+ public Azienda setPartIva(String partIva) {
this.partIva = partIva;
+ return this;
}
public String getNumTel() {
return numTel;
}
- public void setNumTel(String numTel) {
+ public Azienda setNumTel(String numTel) {
this.numTel = numTel;
+ return this;
}
public String getNumFax() {
return numFax;
}
- public void setNumFax(String numFax) {
+ public Azienda setNumFax(String numFax) {
this.numFax = numFax;
+ return this;
}
public String geteMail() {
return eMail;
}
- public void seteMail(String eMail) {
+ public Azienda seteMail(String eMail) {
this.eMail = eMail;
+ return this;
}
public Integer getAnnoContab() {
return annoContab;
}
- public void setAnnoContab(Integer annoContab) {
+ public Azienda setAnnoContab(Integer annoContab) {
this.annoContab = annoContab;
+ return this;
}
public Integer getAnnoMagaz() {
return annoMagaz;
}
- public void setAnnoMagaz(Integer annoMagaz) {
+ public Azienda setAnnoMagaz(Integer annoMagaz) {
this.annoMagaz = annoMagaz;
+ return this;
}
public Integer getAnnoAttuale() {
return annoAttuale;
}
- public void setAnnoAttuale(Integer annoAttuale) {
+ public Azienda setAnnoAttuale(Integer annoAttuale) {
this.annoAttuale = annoAttuale;
+ return this;
}
public LocalDate getUltDataGio() {
return ultDataGio;
}
- public void setUltDataGio(LocalDate ultDataGio) {
+ public Azienda setUltDataGio(LocalDate ultDataGio) {
this.ultDataGio = ultDataGio;
+ return this;
}
public Integer getUltNumGio() {
return ultNumGio;
}
- public void setUltNumGio(Integer ultNumGio) {
+ public Azienda setUltNumGio(Integer ultNumGio) {
this.ultNumGio = ultNumGio;
+ return this;
}
public String getRibaRSoc1() {
return ribaRSoc1;
}
- public void setRibaRSoc1(String ribaRSoc1) {
+ public Azienda setRibaRSoc1(String ribaRSoc1) {
this.ribaRSoc1 = ribaRSoc1;
+ return this;
}
public String getRibaRSoc2() {
return ribaRSoc2;
}
- public void setRibaRSoc2(String ribaRSoc2) {
+ public Azienda setRibaRSoc2(String ribaRSoc2) {
this.ribaRSoc2 = ribaRSoc2;
+ return this;
}
public String getRibaRSocBreve() {
return ribaRSocBreve;
}
- public void setRibaRSocBreve(String ribaRSocBreve) {
+ public Azienda setRibaRSocBreve(String ribaRSocBreve) {
this.ribaRSocBreve = ribaRSocBreve;
+ return this;
}
- public Date getDataInizMsg() {
+ public LocalDate getDataInizMsg() {
return dataInizMsg;
}
- public void setDataInizMsg(Date dataInizMsg) {
+ public Azienda setDataInizMsg(LocalDate dataInizMsg) {
this.dataInizMsg = dataInizMsg;
+ return this;
}
- public Date getDataFineMsg() {
+ public LocalDate getDataFineMsg() {
return dataFineMsg;
}
- public void setDataFineMsg(Date dataFineMsg) {
+ public Azienda setDataFineMsg(LocalDate dataFineMsg) {
this.dataFineMsg = dataFineMsg;
+ return this;
}
public String getMessaggioDoc() {
return messaggioDoc;
}
- public void setMessaggioDoc(String messaggioDoc) {
+ public Azienda setMessaggioDoc(String messaggioDoc) {
this.messaggioDoc = messaggioDoc;
+ return this;
}
public String getLiquidazioniIva() {
return liquidazioniIva;
}
- public void setLiquidazioniIva(String liquidazioniIva) {
+ public Azienda setLiquidazioniIva(String liquidazioniIva) {
this.liquidazioniIva = liquidazioniIva;
+ return this;
}
- public Date getLastUpgDb() {
+ public LocalDate getLastUpgDb() {
return lastUpgDb;
}
- public void setLastUpgDb(Date lastUpgDb) {
+ public Azienda setLastUpgDb(LocalDate lastUpgDb) {
this.lastUpgDb = lastUpgDb;
+ return this;
+ }
+
+ public LocalDateTime getDataUpdSw() {
+ return dataUpdSw;
+ }
+
+ public Azienda setDataUpdSw(LocalDateTime dataUpdSw) {
+ this.dataUpdSw = dataUpdSw;
+ return this;
}
public String getLogoFile() {
return logoFile;
}
- public void setLogoFile(String logoFile) {
+ public Azienda setLogoFile(String logoFile) {
this.logoFile = logoFile;
+ return this;
}
public String getLogoB64() {
return logoB64;
}
- public void setLogoB64(String logoB64) {
+ public Azienda setLogoB64(String logoB64) {
this.logoB64 = logoB64;
+ return this;
}
public BigDecimal getUltDareAv() {
return ultDareAv;
}
- public void setUltDareAv(BigDecimal ultDareAv) {
+ public Azienda setUltDareAv(BigDecimal ultDareAv) {
this.ultDareAv = ultDareAv;
+ return this;
}
public Integer getSollTop() {
return sollTop;
}
- public void setSollTop(Integer sollTop) {
+ public Azienda setSollTop(Integer sollTop) {
this.sollTop = sollTop;
+ return this;
}
public Integer getSollLeft() {
return sollLeft;
}
- public void setSollLeft(Integer sollLeft) {
+ public Azienda setSollLeft(Integer sollLeft) {
this.sollLeft = sollLeft;
+ return this;
}
public Integer getGgUtili() {
return ggUtili;
}
- public void setGgUtili(Integer ggUtili) {
+ public Azienda setGgUtili(Integer ggUtili) {
this.ggUtili = ggUtili;
+ return this;
}
public String getCodSia() {
return codSia;
}
- public void setCodSia(String codSia) {
+ public Azienda setCodSia(String codSia) {
this.codSia = codSia;
+ return this;
}
public String getFlagFattDiff() {
return flagFattDiff;
}
- public void setFlagFattDiff(String flagFattDiff) {
+ public Azienda setFlagFattDiff(String flagFattDiff) {
this.flagFattDiff = flagFattDiff;
+ return this;
}
public String getSollHeadPersonal() {
return sollHeadPersonal;
}
- public void setSollHeadPersonal(String sollHeadPersonal) {
+ public Azienda setSollHeadPersonal(String sollHeadPersonal) {
this.sollHeadPersonal = sollHeadPersonal;
+ return this;
}
public String getLastUpgSp() {
return lastUpgSp;
}
- public void setLastUpgSp(String lastUpgSp) {
+ public Azienda setLastUpgSp(String lastUpgSp) {
this.lastUpgSp = lastUpgSp;
+ return this;
}
public String getLastUpgDbMenu() {
@@ -580,352 +663,445 @@ public class Azienda extends EntityBase {
return sitoWeb;
}
- public void setSitoWeb(String sitoWeb) {
+ public Azienda setSitoWeb(String sitoWeb) {
this.sitoWeb = sitoWeb;
+ return this;
}
public BigDecimal getCapitaleSoc() {
return capitaleSoc;
}
- public void setCapitaleSoc(BigDecimal capitaleSoc) {
+ public Azienda setCapitaleSoc(BigDecimal capitaleSoc) {
this.capitaleSoc = capitaleSoc;
+ return this;
}
public String getCciaa() {
return cciaa;
}
- public void setCciaa(String cciaa) {
+ public Azienda setCciaa(String cciaa) {
this.cciaa = cciaa;
- }
-
- public String getCodRuop() {
- return codRuop;
- }
-
- public void setCodRuop(String codRuop) {
- this.codRuop = codRuop;
+ return this;
}
public String getIscRegImp() {
return iscRegImp;
}
- public void setIscRegImp(String iscRegImp) {
+ public Azienda setIscRegImp(String iscRegImp) {
this.iscRegImp = iscRegImp;
+ return this;
}
public String getRagSocMod() {
return ragSocMod;
}
- public void setRagSocMod(String ragSocMod) {
+ public Azienda setRagSocMod(String ragSocMod) {
this.ragSocMod = ragSocMod;
+ return this;
}
public String getPrefissoEan() {
return prefissoEan;
}
- public void setPrefissoEan(String prefissoEan) {
+ public Azienda setPrefissoEan(String prefissoEan) {
this.prefissoEan = prefissoEan;
+ return this;
}
public String getCodFiscale() {
return codFiscale;
}
- public void setCodFiscale(String codFiscale) {
+ public Azienda setCodFiscale(String codFiscale) {
this.codFiscale = codFiscale;
+ return this;
}
public String getPersFisicaCognome() {
return persFisicaCognome;
}
- public void setPersFisicaCognome(String persFisicaCognome) {
+ public Azienda setPersFisicaCognome(String persFisicaCognome) {
this.persFisicaCognome = persFisicaCognome;
+ return this;
}
public String getPersFisicaNome() {
return persFisicaNome;
}
- public void setPersFisicaNome(String persFisicaNome) {
+ public Azienda setPersFisicaNome(String persFisicaNome) {
this.persFisicaNome = persFisicaNome;
+ return this;
}
public String getPersFisicaSesso() {
return persFisicaSesso;
}
- public void setPersFisicaSesso(String persFisicaSesso) {
+ public Azienda setPersFisicaSesso(String persFisicaSesso) {
this.persFisicaSesso = persFisicaSesso;
+ return this;
}
- public Date getPersFisicaDataNascita() {
+ public LocalDate getPersFisicaDataNascita() {
return persFisicaDataNascita;
}
- public void setPersFisicaDataNascita(Date persFisicaDataNascita) {
+ public Azienda setPersFisicaDataNascita(LocalDate persFisicaDataNascita) {
this.persFisicaDataNascita = persFisicaDataNascita;
+ return this;
}
public String getPersFisicaComuneNascita() {
return persFisicaComuneNascita;
}
- public void setPersFisicaComuneNascita(String persFisicaComuneNascita) {
+ public Azienda setPersFisicaComuneNascita(String persFisicaComuneNascita) {
this.persFisicaComuneNascita = persFisicaComuneNascita;
+ return this;
}
public String getPersFisicaProvNascita() {
return persFisicaProvNascita;
}
- public void setPersFisicaProvNascita(String persFisicaProvNascita) {
+ public Azienda setPersFisicaProvNascita(String persFisicaProvNascita) {
this.persFisicaProvNascita = persFisicaProvNascita;
+ return this;
}
public String getFlagPersFisica() {
return flagPersFisica;
}
- public void setFlagPersFisica(String flagPersFisica) {
+ public Azienda setFlagPersFisica(String flagPersFisica) {
this.flagPersFisica = flagPersFisica;
+ return this;
}
public String getPersFisicaCodFisc() {
return persFisicaCodFisc;
}
- public void setPersFisicaCodFisc(String persFisicaCodFisc) {
+ public Azienda setPersFisicaCodFisc(String persFisicaCodFisc) {
this.persFisicaCodFisc = persFisicaCodFisc;
+ return this;
}
public String getRapprLegaleCodFisc() {
return rapprLegaleCodFisc;
}
- public void setRapprLegaleCodFisc(String rapprLegaleCodFisc) {
+ public Azienda setRapprLegaleCodFisc(String rapprLegaleCodFisc) {
this.rapprLegaleCodFisc = rapprLegaleCodFisc;
+ return this;
}
public String getSedeAmm() {
return sedeAmm;
}
- public void setSedeAmm(String sedeAmm) {
+ public Azienda setSedeAmm(String sedeAmm) {
this.sedeAmm = sedeAmm;
- }
-
- public boolean isFlagSetIvaOmaggi() {
- return "S".equalsIgnoreCase(flagSetIvaOmaggi);
+ return this;
}
public String getFlagSetIvaOmaggi() {
return flagSetIvaOmaggi;
}
- public void setFlagSetIvaOmaggi(String flagSetIvaOmaggi) {
+ public boolean isFlagSetIvaOmaggi() {
+ return flagSetIvaOmaggi.equalsIgnoreCase("S");
+ }
+
+ public Azienda setFlagSetIvaOmaggi(String flagSetIvaOmaggi) {
this.flagSetIvaOmaggi = flagSetIvaOmaggi;
- }
-
- public String getApplicationName() {
- return applicationName;
- }
-
- public ApplicationName getApplicationNameEnum() {
- return ApplicationName.valueOf(getApplicationName());
- }
-
- public void setApplicationName(String applicationName) {
- this.applicationName = applicationName;
+ return this;
}
public String getFlagTipoFatturazione() {
return flagTipoFatturazione;
}
- public void setFlagTipoFatturazione(String flagTipoFatturazione) {
+ public Azienda setFlagTipoFatturazione(String flagTipoFatturazione) {
this.flagTipoFatturazione = flagTipoFatturazione;
+ return this;
}
public String getTribunale() {
return tribunale;
}
- public void setTribunale(String tribunale) {
+ public Azienda setTribunale(String tribunale) {
this.tribunale = tribunale;
+ return this;
}
public Integer getSettRitardoAnno() {
return settRitardoAnno;
}
- public void setSettRitardoAnno(Integer settRitardoAnno) {
+ public Azienda setSettRitardoAnno(Integer settRitardoAnno) {
this.settRitardoAnno = settRitardoAnno;
+ return this;
}
public String getDbDistributore() {
return dbDistributore;
}
- public void setDbDistributore(String dbDistributore) {
+ public Azienda setDbDistributore(String dbDistributore) {
this.dbDistributore = dbDistributore;
+ return this;
}
public String getCodAteco() {
return codAteco;
}
- public void setCodAteco(String codAteco) {
+ public Azienda setCodAteco(String codAteco) {
this.codAteco = codAteco;
+ return this;
}
public String getLastUpgQc() {
return lastUpgQc;
}
- public void setLastUpgQc(String lastUpgQc) {
+ public Azienda setLastUpgQc(String lastUpgQc) {
this.lastUpgQc = lastUpgQc;
+ return this;
}
public String getTipoAzienda() {
return tipoAzienda;
}
- public void setTipoAzienda(String tipoAzienda) {
+ public Azienda setTipoAzienda(String tipoAzienda) {
this.tipoAzienda = tipoAzienda;
+ return this;
}
public String getNazione() {
return nazione;
}
- public void setNazione(String nazione) {
+ public Azienda setNazione(String nazione) {
this.nazione = nazione;
+ return this;
}
public String getCodDiviContab() {
return codDiviContab;
}
- public void setCodDiviContab(String codDiviContab) {
+ public Azienda setCodDiviContab(String codDiviContab) {
this.codDiviContab = codDiviContab;
+ return this;
}
public String getCodIvaOmaggi() {
return codIvaOmaggi;
}
- public void setCodIvaOmaggi(String codIvaOmaggi) {
+ public Azienda setCodIvaOmaggi(String codIvaOmaggi) {
this.codIvaOmaggi = codIvaOmaggi;
+ return this;
}
public String getCodCconQuadra() {
return codCconQuadra;
}
- public void setCodCconQuadra(String codCconQuadra) {
+ public Azienda setCodCconQuadra(String codCconQuadra) {
this.codCconQuadra = codCconQuadra;
+ return this;
+ }
+
+ public String getCodRuop() {
+ return codRuop;
+ }
+
+ public Azienda setCodRuop(String codRuop) {
+ this.codRuop = codRuop;
+ return this;
+ }
+
+ public Long getProgressivoSscc() {
+ return progressivoSscc;
+ }
+
+ public Azienda setProgressivoSscc(Long progressivoSscc) {
+ this.progressivoSscc = progressivoSscc;
+ return this;
+ }
+
+ public String getCodSdiDitta() {
+ return codSdiDitta;
+ }
+
+ public Azienda setCodSdiDitta(String codSdiDitta) {
+ this.codSdiDitta = codSdiDitta;
+ return this;
}
public String getRegFisc() {
return regFisc;
}
- public void setRegFisc(String regFisc) {
+ public Azienda setRegFisc(String regFisc) {
this.regFisc = regFisc;
+ return this;
}
public String getStatoLiquidazione() {
return statoLiquidazione;
}
- public void setStatoLiquidazione(String statoLiquidazione) {
+ public Azienda setStatoLiquidazione(String statoLiquidazione) {
this.statoLiquidazione = statoLiquidazione;
+ return this;
}
public String getEmailSdi() {
return emailSdi;
}
- public void setEmailSdi(String emailSdi) {
+ public Azienda setEmailSdi(String emailSdi) {
this.emailSdi = emailSdi;
+ return this;
}
public String getFromEmailSdi() {
return fromEmailSdi;
}
- public void setFromEmailSdi(String fromEmailSdi) {
+ public Azienda setFromEmailSdi(String fromEmailSdi) {
this.fromEmailSdi = fromEmailSdi;
+ return this;
}
public String getIdCreditoreSepa() {
return idCreditoreSepa;
}
- public void setIdCreditoreSepa(String idCreditoreSepa) {
+ public Azienda setIdCreditoreSepa(String idCreditoreSepa) {
this.idCreditoreSepa = idCreditoreSepa;
+ return this;
}
public String getMessaggioPrivacy() {
return messaggioPrivacy;
}
- public void setMessaggioPrivacy(String messaggioPrivacy) {
+ public Azienda setMessaggioPrivacy(String messaggioPrivacy) {
this.messaggioPrivacy = messaggioPrivacy;
+ return this;
}
public String getRapprLegaleNome() {
return rapprLegaleNome;
}
- public void setRapprLegaleNome(String rapprLegaleNome) {
+ public Azienda setRapprLegaleNome(String rapprLegaleNome) {
this.rapprLegaleNome = rapprLegaleNome;
+ return this;
}
public String getRapprLegaleCognome() {
return rapprLegaleCognome;
}
- public void setRapprLegaleCognome(String rapprLegaleCognome) {
+ public Azienda setRapprLegaleCognome(String rapprLegaleCognome) {
this.rapprLegaleCognome = rapprLegaleCognome;
+ return this;
}
public String getRapprLegaleSesso() {
return rapprLegaleSesso;
}
- public void setRapprLegaleSesso(String rapprLegaleSesso) {
+ public Azienda setRapprLegaleSesso(String rapprLegaleSesso) {
this.rapprLegaleSesso = rapprLegaleSesso;
+ return this;
}
public String getRapprLegaleComuneNascita() {
return rapprLegaleComuneNascita;
}
- public void setRapprLegaleComuneNascita(String rapprLegaleComuneNascita) {
+ public Azienda setRapprLegaleComuneNascita(String rapprLegaleComuneNascita) {
this.rapprLegaleComuneNascita = rapprLegaleComuneNascita;
+ return this;
}
- public Date getRapprLegaleDataNascita() {
+ public LocalDate getRapprLegaleDataNascita() {
return rapprLegaleDataNascita;
}
- public void setRapprLegaleDataNascita(Date rapprLegaleDataNascita) {
+ public Azienda setRapprLegaleDataNascita(LocalDate rapprLegaleDataNascita) {
this.rapprLegaleDataNascita = rapprLegaleDataNascita;
+ return this;
}
public String getRapprLegaleProvNascita() {
return rapprLegaleProvNascita;
}
- public void setRapprLegaleProvNascita(String rapprLegaleProvNascita) {
+ public Azienda setRapprLegaleProvNascita(String rapprLegaleProvNascita) {
this.rapprLegaleProvNascita = rapprLegaleProvNascita;
+ return this;
+ }
+
+ public String getRapprLegale() {
+ return rapprLegale;
+ }
+
+ public Azienda setRapprLegale(String rapprLegale) {
+ this.rapprLegale = rapprLegale;
+ return this;
+ }
+
+ public String getFlagFattEle() {
+ return flagFattEle;
+ }
+
+ public Azienda setFlagFattEle(String flagFattEle) {
+ this.flagFattEle = flagFattEle;
+ return this;
+ }
+
+ public String getCodFda() {
+ return codFda;
+ }
+
+ public Azienda setCodFda(String codFda) {
+ this.codFda = codFda;
+ return this;
+ }
+
+ public Integer getCodFce() {
+ return codFce;
+ }
+
+ public Azienda setCodFce(Integer codFce) {
+ this.codFce = codFce;
+ return this;
+ }
+
+ public String getCodLucid() {
+ return codLucid;
+ }
+
+ public Azienda setCodLucid(String codLucid) {
+ this.codLucid = codLucid;
+ return this;
}
public Integer getGiornoInizAnnoFisc() {
@@ -964,30 +1140,12 @@ public class Azienda extends EntityBase {
return this;
}
- public Date getDataUpdSw() {
- return dataUpdSw;
+ public String getCodCuc() {
+ return codCuc;
}
- public Azienda setDataUpdSw(Date dataUpdSw) {
- this.dataUpdSw = dataUpdSw;
- return this;
- }
-
- public Long getProgressivoSscc() {
- return progressivoSscc;
- }
-
- public Azienda setProgressivoSscc(Long progressivoSscc) {
- this.progressivoSscc = progressivoSscc;
- return this;
- }
-
- public String getCodSdiDitta() {
- return codSdiDitta;
- }
-
- public Azienda setCodSdiDitta(String codSdiDitta) {
- this.codSdiDitta = codSdiDitta;
+ public Azienda setCodCuc(String codCuc) {
+ this.codCuc = codCuc;
return this;
}
}
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/CtbCont.java b/ems-core/src/main/java/it/integry/ems_model/entity/CtbCont.java
index a5d481e91d..ffe2ca07ad 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/CtbCont.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/CtbCont.java
@@ -74,6 +74,9 @@ public class CtbCont extends EntityBase {
@SqlField(value = "data_mod", defaultObjectValue = CommonConstants.TIMESTAMP)
private Date dataMod;
+ @SqlField(value = "flag_attivo", nullable = false, defaultObjectValue = "1")
+ private Boolean flagAttivo;
+
public CtbCont() {
super(logger);
}
@@ -201,6 +204,15 @@ public class CtbCont extends EntityBase {
return this;
}
+ public Boolean getFlagAttivo() {
+ return flagAttivo;
+ }
+
+ public CtbCont setFlagAttivo(Boolean flagAttivo) {
+ this.flagAttivo = flagAttivo;
+ return this;
+ }
+
@Override
protected void deleteChilds() throws Exception {
String sql = Query.format(
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/DtbTipi.java b/ems-core/src/main/java/it/integry/ems_model/entity/DtbTipi.java
index 0ad14ee9cb..04486f5c87 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/DtbTipi.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/DtbTipi.java
@@ -10,8 +10,8 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
+import java.time.LocalDate;
import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
@Master
@@ -190,10 +190,10 @@ public class DtbTipi extends EntityBase {
private String pathBanner;
@SqlField(value = "data_iniz_banner")
- private Date dataInizBanner;
+ private LocalDate dataInizBanner;
@SqlField(value = "data_fine_banner")
- private Date dataFineBanner;
+ private LocalDate dataFineBanner;
@SqlField(value = "flag_dest_obb", maxLength = 1, nullable = false, defaultObjectValue = "N")
private String flagDestObb;
@@ -747,20 +747,20 @@ public class DtbTipi extends EntityBase {
return this;
}
- public Date getDataInizBanner() {
+ public LocalDate getDataInizBanner() {
return dataInizBanner;
}
- public DtbTipi setDataInizBanner(Date dataInizBanner) {
+ public DtbTipi setDataInizBanner(LocalDate dataInizBanner) {
this.dataInizBanner = dataInizBanner;
return this;
}
- public Date getDataFineBanner() {
+ public LocalDate getDataFineBanner() {
return dataFineBanner;
}
- public DtbTipi setDataFineBanner(Date dataFineBanner) {
+ public DtbTipi setDataFineBanner(LocalDate dataFineBanner) {
this.dataFineBanner = dataFineBanner;
return this;
}
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAart.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAart.java
index 156339bb8a..971404ec01 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAart.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAart.java
@@ -313,6 +313,15 @@ public class MtbAart extends EntityBase implements EquatableEntityInterface mrlAartSchTecSet = new ArrayList<>();
+ @EntityChild
+ private List mtbAartColori = new ArrayList<>();
+
@Priority(101)
List jtbCicl;
@@ -1275,6 +1287,15 @@ public class MtbAart extends EntityBase implements EquatableEntityInterface getMtbAartColori() {
+ return mtbAartColori;
+ }
+
+ public MtbAart setMtbAartColori(List mtbAartColori) {
+ this.mtbAartColori = mtbAartColori;
+ return this;
+ }
+
public List getMtbLisa() {
return mtbLisa;
}
@@ -1328,6 +1349,33 @@ public class MtbAart extends EntityBase implements EquatableEntityInterface {
private final static Logger logger = LogManager.getLogger();
@@ -86,4 +88,31 @@ public class MtbAartBarCode extends EntityBase {
this.tipoCodBarre = tipoCodBarre;
return this;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof MtbAartBarCode)) return false;
+ MtbAartBarCode that = (MtbAartBarCode) o;
+ return Objects.equals(getCodBarre(), that.getCodBarre()) && Objects.equals(getCodMart(), that.getCodMart()) && Objects.equals(getQtaCnf(), that.getQtaCnf()) && Objects.equals(getFlagPrimario(), that.getFlagPrimario()) && Objects.equals(getTipoCodBarre(), that.getTipoCodBarre());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getCodBarre(), getCodMart(), getQtaCnf(), getFlagPrimario(), getTipoCodBarre());
+ }
+
+ @Override
+ public int hashCodeKey() {
+ return Objects.hash(getCodBarre(), getCodMart());
+ }
+
+ @Override
+ public boolean equalsKey(MtbAartBarCode other) {
+ if (this == other) return true;
+ if (!(other instanceof MtbAartBarCode)) return false;
+ MtbAartBarCode mtbAartBarCode = other;
+ return Objects.equals(getCodBarre(), mtbAartBarCode.getCodBarre()) &&
+ Objects.equals(getCodMart(), mtbAartBarCode.getCodMart());
+
+ }
}
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartCarat.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartCarat.java
index aaa9fb01df..7a43178217 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartCarat.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartCarat.java
@@ -6,14 +6,17 @@ import it.integry.ems_model.annotation.PK;
import it.integry.ems_model.annotation.SqlField;
import it.integry.ems_model.annotation.Table;
import it.integry.ems_model.base.EntityBase;
+import it.integry.ems_model.base.EquatableEntityInterface;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
+import java.util.Objects;
+
@PropertyReactive
@Table(MtbAartCarat.ENTITY)
@JsonTypeName(MtbAartCarat.ENTITY)
-public class MtbAartCarat extends EntityBase {
+public class MtbAartCarat extends EntityBase implements EquatableEntityInterface {
private final static Logger logger = LogManager.getLogger();
@@ -82,4 +85,31 @@ public class MtbAartCarat extends EntityBase {
this.chkCompatibilita = chkCompatibilita;
return this;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof MtbAartCarat)) return false;
+ MtbAartCarat that = (MtbAartCarat) o;
+ return Objects.equals(getCodMart(), that.getCodMart()) && Objects.equals(getCarat(), that.getCarat()) && Objects.equals(getValCarat(), that.getValCarat()) && Objects.equals(getNote(), that.getNote()) && Objects.equals(getChkCompatibilita(), that.getChkCompatibilita());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getCodMart(), getCarat(), getValCarat(), getNote(), getChkCompatibilita());
+ }
+
+ @Override
+ public int hashCodeKey() {
+ return Objects.hash(getCodMart(), getCarat());
+ }
+
+ @Override
+ public boolean equalsKey(MtbAartCarat other) {
+ if (this == other) return true;
+ if (!(other instanceof MtbAartCarat)) return false;
+ MtbAartCarat mtbAartBarCode = other;
+ return Objects.equals(getCarat(), mtbAartBarCode.getCarat()) &&
+ Objects.equals(getCodMart(), mtbAartBarCode.getCodMart());
+
+ }
}
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartColori.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartColori.java
new file mode 100644
index 0000000000..1758ac8fd1
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartColori.java
@@ -0,0 +1,100 @@
+package it.integry.ems_model.entity;
+
+import it.integry.ems_model.base.EquatableEntityInterface;
+import org.apache.logging.log4j.LogManager;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Objects;
+
+import it.integry.ems_model.base.EntityBase;
+import it.integry.ems_model.annotation.Master;
+import org.kie.api.definition.type.PropertyReactive;
+import it.integry.ems_model.annotation.Table;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import org.apache.logging.log4j.Logger;
+import it.integry.ems_model.annotation.PK;
+import it.integry.ems_model.annotation.SqlField;
+import it.integry.ems_model.annotation.FK;
+
+@Master()
+@PropertyReactive()
+@Table(value = MtbAartColori.ENTITY)
+@JsonTypeName(value = MtbAartColori.ENTITY)
+public class MtbAartColori extends EntityBase implements EquatableEntityInterface {
+
+ public final static String ENTITY = "mtb_aart_colori";
+
+ private final static Long serialVersionUID = 1L;
+
+ private final static Logger logger = LogManager.getLogger();
+
+ public MtbAartColori() {
+ super(logger);
+ }
+
+ @PK()
+ @SqlField(value = "cod_mart", maxLength = 15, nullable = false)
+ @FK(tableName = MtbAart.ENTITY, columnName = "cod_mart")
+ private String codMart;
+
+ @PK()
+ @SqlField(value = "cod_col", maxLength = 6, nullable = false)
+ @FK(tableName = MtbColori.ENTITY, columnName = "cod_col")
+ private String codCol;
+
+ @SqlField(value = "cod_barre", maxLength = 25, nullable = true)
+ private String codBarre;
+
+ public String getCodMart() {
+ return codMart;
+ }
+
+ public MtbAartColori setCodMart(String codMart) {
+ this.codMart = codMart;
+ return this;
+ }
+
+ public String getCodCol() {
+ return codCol;
+ }
+
+ public MtbAartColori setCodCol(String codCol) {
+ this.codCol = codCol;
+ return this;
+ }
+
+ public String getCodBarre() {
+ return codBarre;
+ }
+
+ public MtbAartColori setCodBarre(String codBarre) {
+ this.codBarre = codBarre;
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof MtbAartColori)) return false;
+ MtbAartColori that = (MtbAartColori) o;
+ return Objects.equals(getCodMart(), that.getCodMart()) && Objects.equals(getCodCol(), that.getCodCol()) && Objects.equals(getCodBarre(), that.getCodBarre());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getCodMart(), getCodCol(), getCodBarre());
+ }
+
+ @Override
+ public int hashCodeKey() {
+ return Objects.hash(getCodMart(), getCodCol());
+ }
+
+ @Override
+ public boolean equalsKey(MtbAartColori other) {
+ if (this == other) return true;
+ if (!(other instanceof MtbAartColori)) return false;
+ MtbAartColori mtbAartColori = other;
+ return Objects.equals(getCodCol(), mtbAartColori.getCodCol()) &&
+ Objects.equals(getCodMart(), mtbAartColori.getCodMart());
+ }
+}
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartEqui.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartEqui.java
index 665f07784b..093413e7d4 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartEqui.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartEqui.java
@@ -6,15 +6,18 @@ import it.integry.ems_model.annotation.PK;
import it.integry.ems_model.annotation.SqlField;
import it.integry.ems_model.annotation.Table;
import it.integry.ems_model.base.EntityBase;
+import it.integry.ems_model.base.EquatableEntityInterface;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
+import java.util.Objects;
+
@Master
@PropertyReactive
@Table(MtbAartEqui.ENTITY)
@JsonTypeName(MtbAartEqui.ENTITY)
-public class MtbAartEqui extends EntityBase {
+public class MtbAartEqui extends EntityBase implements EquatableEntityInterface {
private final static Logger logger = LogManager.getLogger();
@@ -85,4 +88,29 @@ public class MtbAartEqui extends EntityBase {
public void setDescrizioneEstera(String descrizioneEstera) {
this.descrizioneEstera = descrizioneEstera;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof MtbAartEqui)) return false;
+ MtbAartEqui that = (MtbAartEqui) o;
+ return Objects.equals(getIdArtEqui(), that.getIdArtEqui()) && Objects.equals(getDescrizione(), that.getDescrizione()) && Objects.equals(getFlagEquiPrezzo(), that.getFlagEquiPrezzo()) && Objects.equals(getFlagEquiCosto(), that.getFlagEquiCosto()) && Objects.equals(getDescrizioneEstera(), that.getDescrizioneEstera());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getIdArtEqui(), getDescrizione(), getFlagEquiPrezzo(), getFlagEquiCosto(), getDescrizioneEstera());
+ }
+
+ @Override
+ public int hashCodeKey() {
+ return Objects.hash(getIdArtEqui());
+ }
+
+ @Override
+ public boolean equalsKey(MtbAartEqui other) {
+ if (this == other) return true;
+ if (!(other instanceof MtbAartEqui)) return false;
+ MtbAartEqui mtbAartEqui = (MtbAartEqui) other;
+ return Objects.equals(getIdArtEqui(), mtbAartEqui.getIdArtEqui());
+ }
}
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartLinea.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartLinea.java
index e3aed8027a..e794ce35f0 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartLinea.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartLinea.java
@@ -1,8 +1,11 @@
package it.integry.ems_model.entity;
+import it.integry.ems_model.base.EquatableEntityInterface;
import org.apache.logging.log4j.LogManager;
import java.util.List;
import java.util.ArrayList;
+import java.util.Objects;
+
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.annotation.Master;
import org.kie.api.definition.type.PropertyReactive;
@@ -16,7 +19,7 @@ import it.integry.ems_model.annotation.SqlField;
@PropertyReactive()
@Table(value = MtbAartLinea.ENTITY)
@JsonTypeName(value = MtbAartLinea.ENTITY)
-public class MtbAartLinea extends EntityBase {
+public class MtbAartLinea extends EntityBase implements EquatableEntityInterface {
public final static String ENTITY = "mtb_aart_linea";
@@ -53,4 +56,28 @@ public class MtbAartLinea extends EntityBase {
return this;
}
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof MtbAartLinea)) return false;
+ MtbAartLinea that = (MtbAartLinea) o;
+ return Objects.equals(getCodLinea(), that.getCodLinea()) && Objects.equals(getDescrizione(), that.getDescrizione());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getCodLinea(), getDescrizione());
+ }
+
+ @Override
+ public int hashCodeKey() {
+ return Objects.hash(getCodLinea());
+ }
+
+ @Override
+ public boolean equalsKey(MtbAartLinea other) {
+ if (this == other) return true;
+ if (!(other instanceof MtbAartLinea)) return false;
+ MtbAartLinea mtbAartLinea = other;
+ return Objects.equals(getCodLinea(), mtbAartLinea.getCodLinea());
+ }
}
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartMarchio.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartMarchio.java
index b7c6446793..f6bf659905 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartMarchio.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartMarchio.java
@@ -62,7 +62,8 @@ public class MtbAartMarchio extends EntityBase implements EquatableEntityInterfa
if (this == o) return true;
if (!(o instanceof MtbAartMarchio)) return false;
MtbAartMarchio mtbAartMarchio = (MtbAartMarchio) o;
- return Objects.equals(getMarchio(), mtbAartMarchio.getMarchio()) && Objects.equals(getMarchio(), mtbAartMarchio.getMarchio());
+ return Objects.equals(getMarchio(), mtbAartMarchio.getMarchio()) &&
+ Objects.equals(getMarchio(), mtbAartMarchio.getMarchio());
}
@Override
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartSlinea.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartSlinea.java
index f6e6ba5870..449bf3a8c1 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartSlinea.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartSlinea.java
@@ -1,8 +1,11 @@
package it.integry.ems_model.entity;
+import it.integry.ems_model.base.EquatableEntityInterface;
import org.apache.logging.log4j.LogManager;
import java.util.List;
import java.util.ArrayList;
+import java.util.Objects;
+
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.annotation.Master;
import org.kie.api.definition.type.PropertyReactive;
@@ -16,7 +19,7 @@ import it.integry.ems_model.annotation.SqlField;
@PropertyReactive()
@Table(value = MtbAartSlinea.ENTITY)
@JsonTypeName(value = MtbAartSlinea.ENTITY)
-public class MtbAartSlinea extends EntityBase {
+public class MtbAartSlinea extends EntityBase implements EquatableEntityInterface {
public final static String ENTITY = "mtb_aart_slinea";
@@ -52,4 +55,29 @@ public class MtbAartSlinea extends EntityBase {
this.descrizione = descrizione;
return this;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof MtbAartSlinea)) return false;
+ MtbAartSlinea that = (MtbAartSlinea) o;
+ return Objects.equals(getCodSlinea(), that.getCodSlinea()) && Objects.equals(getDescrizione(), that.getDescrizione());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getCodSlinea(), getDescrizione());
+ }
+
+ @Override
+ public int hashCodeKey() {
+ return Objects.hash(getCodSlinea());
+ }
+
+ @Override
+ public boolean equalsKey(MtbAartSlinea other) {
+ if (this == other) return true;
+ if (!(other instanceof MtbAartSlinea)) return false;
+ MtbAartSlinea mtbAartSlinea = other;
+ return Objects.equals(getCodSlinea(), mtbAartSlinea.getCodSlinea());
+ }
}
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartSslinea.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartSslinea.java
new file mode 100644
index 0000000000..9a521f60c5
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartSslinea.java
@@ -0,0 +1,83 @@
+package it.integry.ems_model.entity;
+
+import it.integry.ems_model.base.EquatableEntityInterface;
+import org.apache.logging.log4j.LogManager;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Objects;
+
+import it.integry.ems_model.base.EntityBase;
+import it.integry.ems_model.annotation.Master;
+import org.kie.api.definition.type.PropertyReactive;
+import it.integry.ems_model.annotation.Table;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import org.apache.logging.log4j.Logger;
+import it.integry.ems_model.annotation.PK;
+import it.integry.ems_model.annotation.SqlField;
+
+@Master()
+@PropertyReactive()
+@Table(value = MtbAartSslinea.ENTITY)
+@JsonTypeName(value = MtbAartSslinea.ENTITY)
+public class MtbAartSslinea extends EntityBase implements EquatableEntityInterface {
+
+ public final static String ENTITY = "mtb_aart_sslinea";
+
+ private final static Long serialVersionUID = 1L;
+
+ private final static Logger logger = LogManager.getLogger();
+
+ public MtbAartSslinea() {
+ super(logger);
+ }
+
+ @PK()
+ @SqlField(value = "cod_sslinea", maxLength = 6, nullable = false)
+ private String codSslinea;
+
+ @SqlField(value = "descrizione", maxLength = 255, nullable = false)
+ private String descrizione;
+
+ public String getCodSslinea() {
+ return codSslinea;
+ }
+
+ public MtbAartSslinea setCodSslinea(String codSslinea) {
+ this.codSslinea = codSslinea;
+ return this;
+ }
+
+ public String getDescrizione() {
+ return descrizione;
+ }
+
+ public MtbAartSslinea setDescrizione(String descrizione) {
+ this.descrizione = descrizione;
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof MtbAartSslinea)) return false;
+ MtbAartSslinea that = (MtbAartSslinea) o;
+ return Objects.equals(getCodSslinea(), that.getCodSslinea()) && Objects.equals(getDescrizione(), that.getDescrizione());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getCodSslinea(), getDescrizione());
+ }
+
+ @Override
+ public boolean equalsKey(MtbAartSslinea other) {
+ if (this == other) return true;
+ if (!(other instanceof MtbAartSslinea)) return false;
+ MtbAartSslinea mtbAartSslinea = other;
+ return Objects.equals(getCodSslinea(), mtbAartSslinea.getCodSslinea());
+ }
+
+ @Override
+ public int hashCodeKey() {
+ return Objects.hash(getCodSslinea());
+ }
+}
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbColori.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbColori.java
new file mode 100644
index 0000000000..463747146b
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/MtbColori.java
@@ -0,0 +1,83 @@
+package it.integry.ems_model.entity;
+
+import it.integry.ems_model.base.EquatableEntityInterface;
+import org.apache.logging.log4j.LogManager;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Objects;
+
+import it.integry.ems_model.base.EntityBase;
+import it.integry.ems_model.annotation.Master;
+import org.kie.api.definition.type.PropertyReactive;
+import it.integry.ems_model.annotation.Table;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import org.apache.logging.log4j.Logger;
+import it.integry.ems_model.annotation.PK;
+import it.integry.ems_model.annotation.SqlField;
+
+@Master()
+@PropertyReactive()
+@Table(value = MtbColori.ENTITY)
+@JsonTypeName(value = MtbColori.ENTITY)
+public class MtbColori extends EntityBase implements EquatableEntityInterface {
+
+ public final static String ENTITY = "mtb_colori";
+
+ private final static Long serialVersionUID = 1L;
+
+ private final static Logger logger = LogManager.getLogger();
+
+ public MtbColori() {
+ super(logger);
+ }
+
+ @PK()
+ @SqlField(value = "cod_col", maxLength = 6, nullable = false)
+ private String codCol;
+
+ @SqlField(value = "descrizione", maxLength = 255, nullable = false)
+ private String descrizione;
+
+ public String getCodCol() {
+ return codCol;
+ }
+
+ public MtbColori setCodCol(String codCol) {
+ this.codCol = codCol;
+ return this;
+ }
+
+ public String getDescrizione() {
+ return descrizione;
+ }
+
+ public MtbColori setDescrizione(String descrizione) {
+ this.descrizione = descrizione;
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof MtbColori)) return false;
+ MtbColori mtbColori = (MtbColori) o;
+ return Objects.equals(getCodCol(), mtbColori.getCodCol()) && Objects.equals(getDescrizione(), mtbColori.getDescrizione());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getCodCol(), getDescrizione());
+ }
+
+ @Override
+ public boolean equalsKey(MtbColori other) {
+ if (this == other) return true;
+ if (!(other instanceof MtbColori)) return false;
+ MtbColori mtbColori = other;
+ return Objects.equals(getCodCol(), mtbColori.getCodCol());
+ }
+
+ @Override
+ public int hashCodeKey() {
+ return Objects.hash(getCodCol(), getCodCol());
+ }
+}
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbSfam.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbSfam.java
index 3925ac558f..53cf7d4df2 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/MtbSfam.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/MtbSfam.java
@@ -56,32 +56,36 @@ public class MtbSfam extends EntityBase implements EquatableEntityInterface getMtbSsfam() {
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/SrlActivityTypeUser.java b/ems-core/src/main/java/it/integry/ems_model/entity/SrlActivityTypeUser.java
index 1ed7815a13..9c34cddf23 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/SrlActivityTypeUser.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/SrlActivityTypeUser.java
@@ -34,6 +34,9 @@ public class SrlActivityTypeUser extends EntityBase {
@SqlField(value = "user_name", maxLength = 40, nullable = false)
private String userName;
+ @SqlField(value = "activity_default", maxLength = 40, nullable = false)
+ private Boolean activityDefault;
+
public SrlActivityTypeUser() {
super(logger);
}
@@ -61,4 +64,13 @@ public class SrlActivityTypeUser extends EntityBase {
public void setUserName(String userName) {
this.userName = userName;
}
+
+ public Boolean getActivityDefault() {
+ return activityDefault;
+ }
+
+ public SrlActivityTypeUser setActivityDefault(Boolean activityDefault) {
+ this.activityDefault = activityDefault;
+ return this;
+ }
}
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/WdtbDoct.java b/ems-core/src/main/java/it/integry/ems_model/entity/WdtbDoct.java
index 2ff3cfac7e..abec2e215b 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/WdtbDoct.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/WdtbDoct.java
@@ -251,6 +251,9 @@ public class WdtbDoct extends DtbBaseDocT {
@SqlField(value = "cod_lingua", maxLength = 5)
private String codLingua;
+ @SqlField(value = "merce_ricevuta", nullable = false, defaultObjectValue = "0")
+ private Boolean merceRicevuta;
+
@JsonProperty
private String partIva;
@@ -1026,6 +1029,15 @@ public class WdtbDoct extends DtbBaseDocT {
return this;
}
+ public Boolean getMerceRicevuta() {
+ return merceRicevuta;
+ }
+
+ public WdtbDoct setMerceRicevuta(Boolean merceRicevuta) {
+ this.merceRicevuta = merceRicevuta;
+ return this;
+ }
+
public String getPartIva() {
return partIva;
}
diff --git a/ems-core/src/main/java/it/integry/ems_model/utility/UtilityException.java b/ems-core/src/main/java/it/integry/ems_model/utility/UtilityException.java
index f9fd6a2097..ceeceed7c5 100644
--- a/ems-core/src/main/java/it/integry/ems_model/utility/UtilityException.java
+++ b/ems-core/src/main/java/it/integry/ems_model/utility/UtilityException.java
@@ -8,11 +8,12 @@ public class UtilityException {
public static String convertExceptionToHumanReadableText(Exception e) {
- String errorMessage = e.getMessage();;
+ String errorMessage = e.getMessage();
+
int errorCode = -1;
if (e instanceof NullPointerException) {
- if(e.getStackTrace().length > 0)
+ if (e.getStackTrace().length > 0)
errorMessage = "Null value at " + e.getStackTrace()[0].toString();
else errorMessage = "Empty stacktrace\n" + e;
@@ -39,15 +40,11 @@ public class UtilityException {
message += entityException.getMessage() + "\n";
}
- String startMatch = "it.integry.rules.Rule_";
- String endMatch = "Eval";
- if (entityException.getInnerException().getMessage().startsWith(startMatch)) {
- isRuleException = true;
- String innerMessage = entityException.getInnerException().getMessage();
- String ruleName = innerMessage.substring(innerMessage.indexOf(startMatch) + startMatch.length(), innerMessage.indexOf(endMatch));
+ if (isRuleException(message))
+ message = removeRulePrefixFromExceptionMessage(message);
- message += "\nRegola: " + ruleName;
- }
+ if (isIntegryException(message))
+ message = e.getMessage();
if (!isRuntimeException) {
message += "\n(" + ((EntityException) e).getInnerException().getMessage() + ")";
@@ -56,17 +53,15 @@ public class UtilityException {
errorMessage = message;
} else if (e instanceof RuntimeException || e instanceof JRException) {
- String message = e.getCause() != null && e.getCause().getMessage() != null ? e.getCause().getMessage() : e.toString();
+ String message = e.getCause() != null && e.getCause().getMessage() != null ?
+ e.getCause().getMessage() :
+ e.toString();
- String startMatch = "it.integry.rules.Rule_";
- String endMatch = "Eval";
+ if (isRuleException(message))
+ message = removeRulePrefixFromExceptionMessage(message);
- if (e.getMessage() != null && e.getMessage().startsWith(startMatch)) {
- String innerMessage = e.getMessage();
- String ruleName = innerMessage.substring(innerMessage.indexOf(startMatch) + startMatch.length(), innerMessage.indexOf(endMatch));
-
- message += "\nRegola: " + ruleName;
- }
+ if (isIntegryException(message))
+ message = e.getMessage();
errorMessage = message;
}
@@ -74,4 +69,29 @@ public class UtilityException {
return errorMessage;
}
+ private static boolean isRuleException(String exceptionMessage) {
+ String startMatch = "it.integry.rules.Rule_";
+
+ return exceptionMessage != null && exceptionMessage.startsWith(startMatch);
+ }
+
+ private static String removeRulePrefixFromExceptionMessage(String message) {
+ String startMatch = "it.integry.rules.Rule_";
+ String endMatch = "Eval";
+
+ if (isRuleException(message)) {
+ final String innerMessage = message;
+ String ruleName = innerMessage.substring(innerMessage.indexOf(startMatch) + startMatch.length(), innerMessage.indexOf(endMatch));
+
+ message += "\nRegola: " + ruleName;
+ }
+
+ return message;
+ }
+
+ private static boolean isIntegryException(String exceptionMessage) {
+ String startMatch = "it.integry.ems";
+ return exceptionMessage != null && exceptionMessage.startsWith(startMatch);
+ }
+
}
diff --git a/ems-core/src/main/java/it/integry/security/jwt/JWTFilter.java b/ems-core/src/main/java/it/integry/security/jwt/JWTFilter.java
index c248e18b12..f63b875b20 100644
--- a/ems-core/src/main/java/it/integry/security/jwt/JWTFilter.java
+++ b/ems-core/src/main/java/it/integry/security/jwt/JWTFilter.java
@@ -3,7 +3,6 @@ package it.integry.security.jwt;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException;
-import io.jsonwebtoken.Jwts;
import it.integry.common.var.CommonConstants;
import it.integry.ems._context.ApplicationContextProvider;
import it.integry.ems.response.ServiceRestResponse;
@@ -77,7 +76,7 @@ public class JWTFilter extends GenericFilterBean {
UsernamePasswordAuthenticationToken authenticationToken = accessTokenProvider.getAuthentication(profileDb, token);
SecurityContextHolder.getContext().setAuthentication(authenticationToken);
- logger.debug("Set Authentication to security context for '{}'.", authenticationToken.getName());
+ logger.trace("Set Authentication to security context for '{}'.", authenticationToken.getName());
}
} catch (Exception ex) {
handleException(ex, httpServletRequest, httpServletResponse);
diff --git a/ems-core/src/main/resources/rules/sian.drl b/ems-core/src/main/resources/rules/sian.drl
index 974786e85e..7f80087551 100644
--- a/ems-core/src/main/resources/rules/sian.drl
+++ b/ems-core/src/main/resources/rules/sian.drl
@@ -62,22 +62,22 @@ then
modify ( $r ) { setCodAnag(codAnag) }
end
-rule "completeFlagEsportatoSoggettoSian"
-no-loop
-when
- eval(completeRulesEnabled)
- $r : OltbSoggetti(operation != OperationType.DELETE && codAnag != null && codSoggetto != null && flagEsportato == null)
-then
- String sql =
- "SELECT TOP 1 oltb_soggetti.flag_esportato " +
- " FROM oltb_soggetti "+
- " WHERE oltb_soggetti.cod_soggetto = " + UtilityDB.valueToString($r.getCodSoggetto()) +
- " ORDER BY oltb_soggetti.flag_esportato DESC";
-
- Boolean flagEsportato = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
- flagEsportato = (flagEsportato==null?flagEsportato=false:flagEsportato);
- modify ( $r ) {
- setFlagEsportato(flagEsportato)
- }
-end
+//rule "completeFlagEsportatoSoggettoSian"
+//no-loop
+//when
+// eval(completeRulesEnabled)
+// $r : OltbSoggetti(operation != OperationType.DELETE && codAnag != null && codSoggetto != null && flagEsportato == null)
+//then
+// String sql =
+// "SELECT TOP 1 oltb_soggetti.flag_esportato " +
+// " FROM oltb_soggetti "+
+// " WHERE oltb_soggetti.cod_soggetto = " + UtilityDB.valueToString($r.getCodSoggetto()) +
+// " ORDER BY oltb_soggetti.flag_esportato DESC";
+//
+// Boolean flagEsportato = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
+// flagEsportato = (flagEsportato==null?flagEsportato=false:flagEsportato);
+// modify ( $r ) {
+// setFlagEsportato(flagEsportato)
+// }
+//end
diff --git a/ems-engine/src/main/java/it/integry/core/controller/EmsEngineController.java b/ems-engine/src/main/java/it/integry/core/controller/EmsEngineController.java
index 546bc319e2..76e8a2735e 100644
--- a/ems-engine/src/main/java/it/integry/core/controller/EmsEngineController.java
+++ b/ems-engine/src/main/java/it/integry/core/controller/EmsEngineController.java
@@ -27,6 +27,10 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
+import org.springframework.http.ContentDisposition;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@@ -321,35 +325,28 @@ public class EmsEngineController {
return ServiceRestResponse.createPositiveResponse(orientations);
}
- @RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_JTB_DISEGNI_FILES, method = RequestMethod.GET, produces = "application/octet-stream")
- public byte[] downloadJtbDisegniFiles(HttpServletRequest request, HttpServletResponse response,
- @RequestParam(CommonConstants.PROFILE_DB) String config,
- @RequestParam String codDisegno,
- @RequestParam String fileName
- ) throws IOException {
+ @RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_JTB_DISEGNI_FILES, method = RequestMethod.GET)
+ public ResponseEntity downloadJtbDisegniFiles(@RequestParam(CommonConstants.PROFILE_DB) String config,
+ @RequestParam String codDisegno,
+ @RequestParam String fileName
+ ) throws Exception {
+ JtbDisegniFiles jtbDisegniFiles = emsEngineService.downloadJtbDisegniFiles(codDisegno, fileName);
- try {
-
- JtbDisegniFiles jtbDisegniFiles = emsEngineService.downloadJtbDisegniFiles(codDisegno, fileName);
- if (jtbDisegniFiles == null) {
- throw new Exception("Disegno non trovato!");
- }
-
- response.setContentType("application/octet-stream");
- response.setStatus(HttpServletResponse.SC_OK);
- response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
-
- byte[] byteArr = Base64.decodeBase64(jtbDisegniFiles.getContent());
- String z = new String(byteArr, StandardCharsets.UTF_8);
- response.setContentLength(byteArr != null ? byteArr.length : 0);
- return byteArr;
-
- } catch (Exception e) {
- response.sendError(404, "Allegato non trovato");
+ if (jtbDisegniFiles == null) {
+ return ResponseEntity.notFound().build();
}
+ byte[] byteArr = Base64.decodeBase64(jtbDisegniFiles.getContent());
- return null;
+ return ResponseEntity.ok()
+ .contentType(MediaType.APPLICATION_OCTET_STREAM)
+ .contentLength(byteArr != null ? byteArr.length : 0)
+ .header(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition
+ .builder("attachment")
+ .filename(fileName)
+ .build()
+ .toString())
+ .body(byteArr);
}
}
\ No newline at end of file
diff --git a/ems-engine/src/main/java/it/integry/ems/activity/dto/ActivityTypeDTO.java b/ems-engine/src/main/java/it/integry/ems/activity/dto/ActivityTypeDTO.java
index 7ba7db8ddf..ecd533fce0 100644
--- a/ems-engine/src/main/java/it/integry/ems/activity/dto/ActivityTypeDTO.java
+++ b/ems-engine/src/main/java/it/integry/ems/activity/dto/ActivityTypeDTO.java
@@ -12,6 +12,9 @@ public class ActivityTypeDTO {
@SqlField(value = "flag_view_calendar")
private boolean flagViewCalendar;
+ @SqlField(value = "activity_default")
+ private boolean activityDefault;
+
public String getActivityTypeIdNext() {
return activityTypeIdNext;
}
@@ -38,4 +41,13 @@ public class ActivityTypeDTO {
this.flagViewCalendar = flagViewCalendar;
return this;
}
+
+ public boolean isActivityDefault() {
+ return activityDefault;
+ }
+
+ public ActivityTypeDTO setActivityDefault(boolean activityDefault) {
+ this.activityDefault = activityDefault;
+ return this;
+ }
}
diff --git a/ems-engine/src/main/java/it/integry/ems/activity/service/ActivityService.java b/ems-engine/src/main/java/it/integry/ems/activity/service/ActivityService.java
index 05d0d6d5d6..28c3893203 100644
--- a/ems-engine/src/main/java/it/integry/ems/activity/service/ActivityService.java
+++ b/ems-engine/src/main/java/it/integry/ems/activity/service/ActivityService.java
@@ -1206,9 +1206,13 @@ public class ActivityService {
}
public List getActivityType() throws Exception {
- String sql = "SELECT DISTINCT activity_type_id, flag_tipologia\n" +
+ String sql = "SELECT DISTINCT srl_activity_type.activity_type_id, \n" +
+ "srl_activity_type.flag_tipologia,\n" +
+ "srl_activity_type_user.activity_default\n" +
"FROM srl_activity_type\n" +
- "WHERE activity_type_id IN (SELECT srl_activity_type.activity_type_id\n" +
+ "inner join srl_activity_type_user on srl_activity_type_user.activity_type_id = srl_activity_type.activity_type_id and \n" +
+ " srl_activity_type_user.flag_tipologia = srl_activity_type.flag_tipologia\n" +
+ "WHERE srl_activity_type.activity_type_id IN (SELECT srl_activity_type.activity_type_id\n" +
" FROM srl_activity_type\n" +
" INNER JOIN stb_activity_type ON srl_activity_type.activity_type_id_next =\n" +
" stb_activity_type.activity_type_id\n" +
@@ -1222,7 +1226,8 @@ public class ActivityService {
" AND s.flag_attiva = 'S')\n" +
" GROUP BY srl_activity_type.activity_type_id, srl_activity_type.flag_tipologia\n" +
" HAVING COUNT(DISTINCT flag_tipologia_next) = 1) \n" +
- " AND flag_tipologia_next = 'A'";
+ " AND flag_tipologia_next = 'A'\n" +
+ " and srl_activity_type_user.user_name = " + UtilityDB.valueToString(requestDataDTO.getUsername());
return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, ActivityTypeDTO.class);
}
diff --git a/ems-engine/src/main/java/it/integry/ems/activity/service/SteUPService.java b/ems-engine/src/main/java/it/integry/ems/activity/service/SteUPService.java
index 2f92116cf2..8bd434d22f 100644
--- a/ems-engine/src/main/java/it/integry/ems/activity/service/SteUPService.java
+++ b/ems-engine/src/main/java/it/integry/ems/activity/service/SteUPService.java
@@ -1326,7 +1326,7 @@ public class SteUPService {
sourceDBSchema.connect();
destDBSchema.connect();
- String dbName = "BIOLEVANTE";
+ String dbName = "LICOR";
sourceDBSchema.useDatabase(dbName);
destDBSchema.useDatabase(profileDb);
diff --git a/ems-engine/src/main/java/it/integry/ems/customizations/production/service/ToscaProductionService.java b/ems-engine/src/main/java/it/integry/ems/customizations/production/service/ToscaProductionService.java
index 2eb41e1168..75a510a9f8 100644
--- a/ems-engine/src/main/java/it/integry/ems/customizations/production/service/ToscaProductionService.java
+++ b/ems-engine/src/main/java/it/integry/ems/customizations/production/service/ToscaProductionService.java
@@ -6,7 +6,10 @@ import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems_model.entity.*;
import it.integry.ems_model.types.OperationType;
-import it.integry.ems_model.utility.*;
+import it.integry.ems_model.utility.Query;
+import it.integry.ems_model.utility.UtilityDB;
+import it.integry.ems_model.utility.UtilityHashMap;
+import it.integry.ems_model.utility.UtilityList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
@@ -15,8 +18,8 @@ import java.math.BigDecimal;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.time.LocalDate;
-import java.time.LocalTime;
import java.time.LocalDateTime;
+import java.time.LocalTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -162,7 +165,7 @@ public class ToscaProductionService {
String serColloPrev = ul.getSerCollo();
Integer numColloPrev = ul.getNumCollo();
- String barcodeUl = "U" + UtilityLocalDate.formatDate(ul.getDataCollo(), "yy") + String.format("%07d", numColloPrev) + serColloPrev;
+ String barcodeUl = "U" + String.valueOf(ul.getDataCollo().getYear()).substring(2) + String.format("%07d", numColloPrev) + serColloPrev;
ul.setOperation(OperationType.SUBSTITUTE);
ul.setOldPk(new HashMap<>());
diff --git a/ems-engine/src/main/java/it/integry/ems/document/controller/DocumentController.java b/ems-engine/src/main/java/it/integry/ems/document/controller/DocumentController.java
index 5e7e0ade90..95acf33064 100644
--- a/ems-engine/src/main/java/it/integry/ems/document/controller/DocumentController.java
+++ b/ems-engine/src/main/java/it/integry/ems/document/controller/DocumentController.java
@@ -50,6 +50,8 @@ import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.http.ContentDisposition;
+import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
@@ -321,7 +323,7 @@ public class DocumentController {
@RequestMapping(value = "generaCorrispettivi", method = RequestMethod.POST)
public @ResponseBody
ServiceRestResponse generaCorrispettivi(HttpServletRequest request,
- @RequestParam(CommonConstants.PROFILE_DB) String configuration) throws Exception {
+ @RequestParam(CommonConstants.PROFILE_DB) String configuration) throws Exception {
List entityList = generaCorrispettivi.generaCorrispettivi();
return ServiceRestResponse.createEntityPositiveResponse(entityList);
}
@@ -528,9 +530,9 @@ public class DocumentController {
}
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_DTB_DOC_XML_FILECONTENT, method = RequestMethod.GET)
- public byte[] downloadDtbDocXmlFileContent(HttpServletRequest request, HttpServletResponse response,
- @RequestParam(CommonConstants.PROFILE_DB) String config,
- @RequestParam String progSdi) throws Exception {
+ public ResponseEntity downloadDtbDocXmlFileContent(
+ @RequestParam(CommonConstants.PROFILE_DB) String config,
+ @RequestParam String progSdi) throws Exception {
DtbDocXml dtbDocXml = new DtbDocXml();
dtbDocXml.setProgSdi(progSdi);
dtbDocXml.setOperation(OperationType.SELECT_OBJECT);
@@ -538,18 +540,20 @@ public class DocumentController {
dtbDocXml = entityProcessor.processEntity(dtbDocXml, multiDBTransactionManager);
if (dtbDocXml != null) {
- response.setContentType("application/octet-stream");
- response.setStatus(HttpServletResponse.SC_OK);
- response.addHeader("Content-Disposition", "attachment; filename=\"" + dtbDocXml.getFilename() + "\"");
-
byte[] byteArr = Base64.decodeBase64(dtbDocXml.getFilecontent());
- response.setContentLength(byteArr != null ? byteArr.length : 0);
- return byteArr;
+ return ResponseEntity.ok()
+ .contentType(MediaType.APPLICATION_XML)
+ .contentLength(byteArr != null ? byteArr.length : 0)
+ .header(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition
+ .builder("attachment")
+ .filename(dtbDocXml.getFilename())
+ .build()
+ .toString())
+ .body(byteArr);
}
- response.sendError(404, "Allegato non trovato");
- return null;
+ return ResponseEntity.notFound().build();
}
@RequestMapping(value = EmsRestConstants.PATH_GET_DTB_DOC_XML_FILECONTENT_PDF_NAME, method = RequestMethod.GET)
@@ -577,18 +581,16 @@ public class DocumentController {
}
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_DTB_DOC_XML_FILECONTENT_PDF, method = RequestMethod.GET)
- public byte[] downloadDtbDocXmlFileContentPdf(HttpServletRequest request, HttpServletResponse response,
- @RequestParam(CommonConstants.PROFILE_DB) String config,
- @RequestParam String progSdi) throws Exception {
+ public ResponseEntity downloadDtbDocXmlFileContentPdf(
+ @RequestParam(CommonConstants.PROFILE_DB) String config,
+ @RequestParam String progSdi) throws Exception {
+
DtbDocXml dtbDocXml = new DtbDocXml();
dtbDocXml.setProgSdi(progSdi);
dtbDocXml.setOperation(OperationType.SELECT_OBJECT);
dtbDocXml = entityProcessor.processEntity(dtbDocXml, multiDBTransactionManager);
if (dtbDocXml != null) {
- response.setContentType("application/octet-stream");
- response.setStatus(HttpServletResponse.SC_OK);
- response.addHeader("Content-Disposition", "attachment; filename=\"" + dtbDocXml.getFileNamePdf() + "\"");
FpxToPdfDTO.FpxToPdfFile fpxToPdfFile = new FpxToPdfDTO.FpxToPdfFile();
fpxToPdfFile.setFileContentBytes(Base64.decodeBase64(dtbDocXml.getFilecontent()));
@@ -607,19 +609,25 @@ public class DocumentController {
byteArr = resultFpxFiles.get(0).getFileContentBytes();
}
- //byte[] byteArr = Base64.decodeBase64(dtbDocXml.getFileContentPdf());
- response.setContentLength(byteArr != null ? byteArr.length : 0);
- return byteArr;
+ return ResponseEntity.ok()
+ .contentType(MediaType.APPLICATION_PDF)
+ .contentLength(byteArr != null ? byteArr.length : 0)
+ .header(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition
+ .builder("attachment")
+ .filename(dtbDocXml.getFileNamePdf())
+ .build()
+ .toString())
+ .body(byteArr);
}
- response.sendError(404, "Allegato non trovato");
- return null;
+ return ResponseEntity.notFound().build();
}
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_DTB_DOC_XML_PDF_ESITO, method = RequestMethod.GET)
- public byte[] downloadDtbDocXmlPdfEsito(HttpServletRequest request, HttpServletResponse response,
- @RequestParam(CommonConstants.PROFILE_DB) String config,
- @RequestParam String progSdi) throws Exception {
+ public ResponseEntity downloadDtbDocXmlPdfEsito(
+ @RequestParam(CommonConstants.PROFILE_DB) String config,
+ @RequestParam String progSdi) throws Exception {
+
DtbDocXml dtbDocXml = new DtbDocXml();
dtbDocXml.setProgSdi(progSdi);
dtbDocXml.setOperation(OperationType.SELECT_OBJECT);
@@ -627,23 +635,27 @@ public class DocumentController {
dtbDocXml = entityProcessor.processEntity(dtbDocXml, multiDBTransactionManager);
if (dtbDocXml != null) {
- response.setContentType("application/octet-stream");
- response.setStatus(HttpServletResponse.SC_OK);
- response.addHeader("Content-Disposition", "attachment; filename=\"esito.pdf\"");
-
byte[] byteArr = Base64.decodeBase64(dtbDocXml.getPdfEsito());
- response.setContentLength(byteArr != null ? byteArr.length : 0);
- return byteArr;
+
+ return ResponseEntity.ok()
+ .contentType(MediaType.APPLICATION_PDF)
+ .contentLength(byteArr != null ? byteArr.length : 0)
+ .header(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition
+ .builder("attachment")
+ .filename(dtbDocXml.getFilename())
+ .build()
+ .toString())
+ .body(byteArr);
}
- response.sendError(404, "Allegato non trovato");
- return null;
+ return ResponseEntity.notFound().build();
}
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_DTB_DOC_XML_ESITO, method = RequestMethod.GET)
- public byte[] downloadDtbDocXmlEsito(HttpServletRequest request, HttpServletResponse response,
- @RequestParam(CommonConstants.PROFILE_DB) String config,
- @RequestParam String progSdi) throws Exception {
+ public ResponseEntity downloadDtbDocXmlEsito(
+ @RequestParam(CommonConstants.PROFILE_DB) String config,
+ @RequestParam String progSdi) throws Exception {
+
DtbDocXml dtbDocXml = new DtbDocXml();
dtbDocXml.setProgSdi(progSdi);
dtbDocXml.setOperation(OperationType.SELECT_OBJECT);
@@ -651,17 +663,20 @@ public class DocumentController {
dtbDocXml = entityProcessor.processEntity(dtbDocXml, multiDBTransactionManager);
if (dtbDocXml != null) {
- response.setContentType("application/octet-stream");
- response.setStatus(HttpServletResponse.SC_OK);
- response.addHeader("Content-Disposition", "attachment; filename=\"esito.xml\"");
-
byte[] byteArr = Base64.decodeBase64(dtbDocXml.getXmlEsito());
- response.setContentLength(byteArr != null ? byteArr.length : 0);
- return byteArr;
+
+ return ResponseEntity.ok()
+ .contentType(MediaType.APPLICATION_XML)
+ .contentLength(byteArr != null ? byteArr.length : 0)
+ .header(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition
+ .builder("attachment")
+ .filename("esito.xml")
+ .build()
+ .toString())
+ .body(byteArr);
}
- response.sendError(404, "Allegato non trovato");
- return null;
+ return ResponseEntity.notFound().build();
}
@@ -690,36 +705,34 @@ public class DocumentController {
}
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_STB_ACTIVITY_FILE_ATTACHMENT, method = RequestMethod.GET)
- public byte[] downloadStbActivityFileAttachment(HttpServletRequest request, HttpServletResponse response,
- @RequestParam(CommonConstants.PROFILE_DB) String config,
- @RequestParam String id,
- @RequestParam String fileName,
- @RequestParam(defaultValue = "false") boolean requestThumbnail) {
+ public ResponseEntity downloadStbActivityFileAttachment(@RequestParam(CommonConstants.PROFILE_DB) String config,
+ @RequestParam String id,
+ @RequestParam String fileName,
+ @RequestParam(defaultValue = "false") boolean requestThumbnail) throws Exception {
+ StbActivityFile stbActivityFile = new StbActivityFile()
+ .setId(id)
+ .setFileName(fileName);
+ stbActivityFile.setOperation(OperationType.SELECT_OBJECT);
- try {
- StbActivityFile stbActivityFile = new StbActivityFile()
- .setId(id)
- .setFileName(fileName);
- stbActivityFile.setOperation(OperationType.SELECT_OBJECT);
+ stbActivityFile = entityProcessor.processEntity(stbActivityFile, multiDBTransactionManager);
- stbActivityFile = entityProcessor.processEntity(stbActivityFile, multiDBTransactionManager);
+ if (stbActivityFile != null) {
+ byte[] byteArr = requestThumbnail && stbActivityFile.getThumbnail() != null ? stbActivityFile.getThumbnail() : stbActivityFile.getContent();
- if (stbActivityFile != null) {
- byte[] byteArr = requestThumbnail && stbActivityFile.getThumbnail() != null ? stbActivityFile.getThumbnail() : stbActivityFile.getContent();
+ MediaType mediaType = mimetypesFileTypeMap.getContentType(stbActivityFile.getFileName());
- response.setContentType(mimetypesFileTypeMap.getContentType(stbActivityFile.getFileName()).toString());
- response.setStatus(HttpServletResponse.SC_OK);
- response.addHeader("Content-Disposition", "attachment; filename=\"" + stbActivityFile.getFileName() + "\"");
- response.setContentLength(byteArr != null ? byteArr.length : 0);
- return byteArr;
- }
-
- response.sendError(404, "Allegato non trovato");
- return null;
- } catch (Exception e) {
- logger.error(request.getRequestURI(), e);
- return null;
+ return ResponseEntity.ok()
+ .contentType(mediaType)
+ .contentLength(byteArr.length)
+ .header(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition
+ .builder("attachment")
+ .filename(stbActivityFile.getFileName())
+ .build()
+ .toString())
+ .body(byteArr);
}
+
+ return ResponseEntity.notFound().build();
}
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_STB_ACTIVITY_FILE_ATTACHMENT + "/{id}/{fileName}", method = RequestMethod.GET)
@@ -761,9 +774,9 @@ public class DocumentController {
}
@RequestMapping(value = "/downloadPdfMinisterialeActive", method = RequestMethod.GET)
- public byte[] downloadPdfMinisterialeFromProgSDI(HttpServletRequest request, HttpServletResponse response,
- @RequestParam String progSdi,
- @RequestParam String type) throws Exception {
+ public ResponseEntity downloadPdfMinisterialeFromProgSDI(
+ @RequestParam String progSdi,
+ @RequestParam String type) throws Exception {
FpxPDFTypeEnum fpxPDFType = FpxPDFTypeEnum.fromString(type);
@@ -773,18 +786,21 @@ public class DocumentController {
dtbDocXml = entityProcessor.processEntity(dtbDocXml, multiDBTransactionManager);
if (dtbDocXml != null) {
- response.setContentType("application/octet-stream");
- response.setStatus(HttpServletResponse.SC_OK);
- response.addHeader("Content-Disposition", "attachment; filename=\"" + dtbDocXml.getFileNamePdf() + "\"");
-
byte[] fileContentPdf = documentService.generateFpxPDFMinisteriale(fpxPDFType, dtbDocXml.getFilename(), Base64.decodeBase64(dtbDocXml.getFilecontent()));
- response.setContentLength(fileContentPdf != null ? fileContentPdf.length : 0);
- return fileContentPdf;
+ return ResponseEntity.ok()
+ .contentType(MediaType.APPLICATION_PDF)
+ .contentLength(fileContentPdf != null ? fileContentPdf.length : 0)
+ .header(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition
+ .builder("attachment")
+ .filename(dtbDocXml.getFilename())
+ .build()
+ .toString())
+ .body(fileContentPdf);
+
}
- response.sendError(404, "Allegato non trovato");
- return null;
+ return ResponseEntity.notFound().build();
}
@@ -833,9 +849,9 @@ public class DocumentController {
@RequestMapping(value = "/downloadPdfMinisteriale", method = RequestMethod.GET)
- public byte[] downloadPdfMinisteriale(HttpServletRequest request, HttpServletResponse response,
- @RequestParam String idAttach,
- @RequestParam String type) throws Exception {
+ public ResponseEntity downloadPdfMinisteriale(
+ @RequestParam String idAttach,
+ @RequestParam String type) throws Exception {
FpxPDFTypeEnum fpxPDFType = FpxPDFTypeEnum.fromString(type);
@@ -856,18 +872,21 @@ public class DocumentController {
stbFilesAttached = entityProcessor.processEntity(stbFilesAttached, multiDBTransactionManager);
- response.setContentType("application/octet-stream");
-
if (stbFilesAttached != null) {
- response.setStatus(HttpServletResponse.SC_OK);
- response.addHeader("Content-Disposition", "attachment; filename=\"" + stbFilesAttached.getFileName() + "\"");
-
byte[] fileContentPdf = documentService.generateFpxPDFMinisteriale(fpxPDFType, stbFilesAttached);
- return fileContentPdf;
+
+ return ResponseEntity.ok()
+ .contentType(MediaType.APPLICATION_PDF)
+ .contentLength(fileContentPdf != null ? fileContentPdf.length : 0)
+ .header(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition
+ .builder("attachment")
+ .filename(stbFilesAttached.getFileName())
+ .build()
+ .toString())
+ .body(fileContentPdf);
}
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- return null;
+ return ResponseEntity.notFound().build();
}
@RequestMapping(value = EmsRestConstants.PATH_TRASFORMA_PREV, method = RequestMethod.POST)
diff --git a/ems-engine/src/main/java/it/integry/ems/document/export/DocumentiExporter.java b/ems-engine/src/main/java/it/integry/ems/document/export/DocumentiExporter.java
index 07a79ce79f..682f21c63f 100644
--- a/ems-engine/src/main/java/it/integry/ems/document/export/DocumentiExporter.java
+++ b/ems-engine/src/main/java/it/integry/ems/document/export/DocumentiExporter.java
@@ -121,6 +121,9 @@ public class DocumentiExporter extends BaseEntityExporter implements IEntityExpo
ExportFromQuery expq = ContextLoader.getCurrentWebApplicationContext().getBean(ExportFromQuery.class);
entityExportResponse = expq.export(username, type, format, whereCond);
break;
+ case MD:
+ entityExportResponse = context.getBean(DocumentiMdExportService.class).export(type, format, whereCond, multiDBTransactionManager, anomalie);
+ break;
}
}
@@ -234,7 +237,8 @@ public class DocumentiExporter extends BaseEntityExporter implements IEntityExpo
INTESA("INTESA"),
CSV("CSV"),
EXCEL("EXCEL"),
- CHEP("CHEP");
+ CHEP("CHEP"),
+ MD("MD");
private String text;
diff --git a/ems-engine/src/main/java/it/integry/ems/document/export/dto/MdRigheDTO.java b/ems-engine/src/main/java/it/integry/ems/document/export/dto/MdRigheDTO.java
index e575822588..b38e883427 100644
--- a/ems-engine/src/main/java/it/integry/ems/document/export/dto/MdRigheDTO.java
+++ b/ems-engine/src/main/java/it/integry/ems/document/export/dto/MdRigheDTO.java
@@ -3,34 +3,44 @@ package it.integry.ems.document.export.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import it.integry.ems_model.annotation.DtoField;
-public class MdRigheDTO {
+import java.math.BigDecimal;
- private final String format = "20";
- @DtoField(startPosition = 1, maxLength = 7, format = format, fillChar = "0")
+public class MdRigheDTO {
+ private final String format = "###0.00";
+
+ @DtoField(startPosition = 0, maxLength = 7, fillChar = " ")
private String tipoRecord;
+
@JsonProperty (value = "cod_mart")
- @DtoField(startPosition = 8, maxLength = 15, fillChar = " ")
+ @DtoField(startPosition = 7, maxLength = 15, fillChar = " ")
private String codMart;
+
@JsonProperty (value = "descrizione")
- @DtoField(startPosition = 23, maxLength = 30, fillChar = " ")
+ @DtoField(startPosition = 22, maxLength = 30, fillChar = " ")
private String descrizione;
+
@JsonProperty (value = "unt_doc")
- @DtoField(startPosition = 53, maxLength = 2, fillChar = " ")
+ @DtoField(startPosition = 52, maxLength = 2, fillChar = " ")
private String untDoc;
+
@JsonProperty(value = "qta_doc")
- @DtoField(startPosition = 55, maxLength = 7, fillChar = "0")
- private Integer qtaDoc;
+ @DtoField(startPosition = 54, maxLength = 7, fillChar = "0", scale = 2, showFloatPoint = false)
+ private BigDecimal qtaDoc;
+
@JsonProperty(value = "prezzo_netto")
- @DtoField(startPosition = 62, maxLength = 9, fillChar = "0")
- private Integer prezzoNetto;
+ @DtoField(startPosition = 61, maxLength = 9, fillChar = "0", scale = 3, showFloatPoint = false)
+ private BigDecimal prezzoNetto;
+
@JsonProperty(value = "imponibile")
- @DtoField(startPosition = 71, maxLength = 13, fillChar = "0")
- private Integer imponibile;
- @JsonProperty(value = "cod_aliq")
- @DtoField(startPosition = 85, maxLength = 2, fillChar = " ")
- private String codAliq;
+ @DtoField(startPosition = 70, maxLength = 13, fillChar = "0", scale = 7, showFloatPoint = false)
+ private BigDecimal imponibile;
+
+ @JsonProperty(value = "perc_aliq")
+ @DtoField(startPosition = 84, maxLength = 2, fillChar = " ")
+ private Integer percAliq;
+
@JsonProperty(value = "tipo_cessione")
- @DtoField(startPosition = 87, maxLength = 1, fillChar = " ")
+ @DtoField(startPosition = 86, maxLength = 1, fillChar = " ")
private Integer tipoCessione;
public String getFormat() {
@@ -73,39 +83,39 @@ public class MdRigheDTO {
return this;
}
- public Integer getQtaDoc() {
+ public BigDecimal getQtaDoc() {
return qtaDoc;
}
- public MdRigheDTO setQtaDoc(Integer qtaDoc) {
+ public MdRigheDTO setQtaDoc(BigDecimal qtaDoc) {
this.qtaDoc = qtaDoc;
return this;
}
- public Integer getPrezzoNetto() {
+ public BigDecimal getPrezzoNetto() {
return prezzoNetto;
}
- public MdRigheDTO setPrezzoNetto(Integer prezzoNetto) {
+ public MdRigheDTO setPrezzoNetto(BigDecimal prezzoNetto) {
this.prezzoNetto = prezzoNetto;
return this;
}
- public Integer getImponibile() {
+ public BigDecimal getImponibile() {
return imponibile;
}
- public MdRigheDTO setImponibile(Integer imponibile) {
+ public MdRigheDTO setImponibile(BigDecimal imponibile) {
this.imponibile = imponibile;
return this;
}
- public String getCodAliq() {
- return codAliq;
+ public Integer getPercAliq() {
+ return percAliq;
}
- public MdRigheDTO setCodAliq(String codAliq) {
- this.codAliq = codAliq;
+ public MdRigheDTO setPercAliq(Integer percAliq) {
+ this.percAliq = percAliq;
return this;
}
diff --git a/ems-engine/src/main/java/it/integry/ems/document/export/dto/MdTestateDTO.java b/ems-engine/src/main/java/it/integry/ems/document/export/dto/MdTestateDTO.java
index 7bc60933a9..ffaea4cc6b 100644
--- a/ems-engine/src/main/java/it/integry/ems/document/export/dto/MdTestateDTO.java
+++ b/ems-engine/src/main/java/it/integry/ems/document/export/dto/MdTestateDTO.java
@@ -3,37 +3,35 @@ package it.integry.ems.document.export.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import it.integry.ems_model.annotation.DtoField;
-import java.util.Date;
+import java.time.LocalDate;
+
public class MdTestateDTO {
- private final String format = "10";
private final String dateFormat = "yyMMdd";
- @DtoField(startPosition = 1, maxLength = 7, format = format, fillChar = "0")
+
+ @DtoField(startPosition = 0, maxLength = 7, fillChar = " ")
private String tipoRecord;
+
@JsonProperty (value = "num_doc_val")
- @DtoField(startPosition = 8, maxLength = 6, fillChar = "0")
+ @DtoField(startPosition = 7, maxLength = 6, fillChar = "0")
private Integer numDocVal;
+
@JsonProperty (value = "data_doc_val")
- @DtoField(startPosition = 14, maxLength = 6, format = dateFormat, fillChar = " " )
- private Date dateDocVal;
+ @DtoField(startPosition = 13, maxLength = 6, format = dateFormat, fillChar = " " )
+ private LocalDate dateDocVal;
+
@JsonProperty (value = "num_doc")
- @DtoField(startPosition = 20, maxLength = 6, fillChar = " ")
+ @DtoField(startPosition = 19, maxLength = 6, fillChar = " ")
private Integer numDoc;
+
@JsonProperty (value = "data_doc")
- @DtoField(startPosition = 26, maxLength = 6, format = dateFormat, fillChar = " " )
- private Date dateDoc;
+ @DtoField(startPosition = 25, maxLength = 6, format = dateFormat, fillChar = " " )
+ private LocalDate dateDoc;
+
@JsonProperty (value = "cod_affiliazione")
- @DtoField(startPosition = 32, maxLength = 31, fillChar = " ")
+ @DtoField(startPosition = 56, maxLength = 31, fillChar = " ")
private String codAffiliazione;
- public String getFormat() {
- return format;
- }
-
- public String getDateFormat() {
- return dateFormat;
- }
-
public String getTipoRecord() {
return tipoRecord;
}
@@ -52,11 +50,11 @@ public class MdTestateDTO {
return this;
}
- public Date getDateDocVal() {
+ public LocalDate getDateDocVal() {
return dateDocVal;
}
- public MdTestateDTO setDateDocVal(Date dateDocVal) {
+ public MdTestateDTO setDateDocVal(LocalDate dateDocVal) {
this.dateDocVal = dateDocVal;
return this;
}
@@ -70,11 +68,11 @@ public class MdTestateDTO {
return this;
}
- public Date getDateDoc() {
+ public LocalDate getDateDoc() {
return dateDoc;
}
- public MdTestateDTO setDateDoc(Date dateDoc) {
+ public MdTestateDTO setDateDoc(LocalDate dateDoc) {
this.dateDoc = dateDoc;
return this;
}
diff --git a/ems-engine/src/main/java/it/integry/ems/document/export/service/DocumentiExportManagerService.java b/ems-engine/src/main/java/it/integry/ems/document/export/service/DocumentiExportManagerService.java
index 718563be49..9682cd43dd 100644
--- a/ems-engine/src/main/java/it/integry/ems/document/export/service/DocumentiExportManagerService.java
+++ b/ems-engine/src/main/java/it/integry/ems/document/export/service/DocumentiExportManagerService.java
@@ -355,11 +355,17 @@ public class DocumentiExportManagerService {
} else {
if (userGroup.equalsIgnoreCase("Clienti")) {
- whereCondDoc = "wtb_users.user_name = " + UtilityDB.valueToString(user.getUserName()) + " AND " +
- " wtb_users.user_name = wtb_clie_dest.user_name AND " +
- " wtb_clie_dest.cod_anag = dtb_doct.cod_anag AND " +
- " wtb_clie_dest.cod_vdes = dtb_doct.cod_vdes ";
- tableNameCondDoc = ", wtb_users, wtb_clie_dest";
+ whereCondDoc =
+ "EXISTS (SELECT 1\n" +
+ " FROM stb_user\n" +
+ " INNER JOIN (SELECT user_name, cod_anag, CONVERT(VARCHAR(5), NULL) AS cod_vdes\n" +
+ " FROM wtb_clie\n" +
+ " UNION ALL\n" +
+ " SELECT user_name, cod_anag, cod_vdes\n" +
+ " FROM wtb_clie_dest) wtb_clie ON wtb_clie.user_name = stb_user.user_name\n" +
+ " WHERE stb_user.user_name = " + UtilityDB.valueToString(user.getUserName()) + "\n" +
+ " AND wtb_clie.cod_anag = dtb_doct.cod_anag\n" +
+ " AND (wtb_clie.cod_vdes IS NULL OR wtb_clie.cod_vdes = ISNULL(dtb_doct.cod_vdes, '')))";
} else if (userGroup.compareTo("AGENTI") == 0) {
whereCondDoc = "dtb_doct.cod_vage = " + UtilityDB.valueToString(userCode);
}
diff --git a/ems-engine/src/main/java/it/integry/ems/document/export/service/DocumentiMdExportService.java b/ems-engine/src/main/java/it/integry/ems/document/export/service/DocumentiMdExportService.java
new file mode 100644
index 0000000000..010fca6af1
--- /dev/null
+++ b/ems-engine/src/main/java/it/integry/ems/document/export/service/DocumentiMdExportService.java
@@ -0,0 +1,149 @@
+package it.integry.ems.document.export.service;
+
+import it.integry.common.var.CommonConstants;
+import it.integry.ems.Import.dto.AnomalieDTO;
+import it.integry.ems.document.export.dto.MdRigheDTO;
+import it.integry.ems.document.export.dto.MdTestateDTO;
+import it.integry.ems.export.base.EntityExportResponse;
+import it.integry.ems.file_formatter.txt.TxtMapper;
+import it.integry.ems.response.FileItem;
+import it.integry.ems.service.EntityProcessor;
+import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
+import it.integry.ems_model.entity.Azienda;
+import it.integry.ems_model.service.SetupGest;
+import it.integry.ems_model.utility.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+@Service
+public class DocumentiMdExportService {
+ @Autowired
+ private EntityProcessor entityProcessor;
+
+ public EntityExportResponse> export(String type, String format, String whereCond, MultiDBTransactionManager multiDBTransactionManager, List anomalie) throws Exception {
+ String sql =
+ "SELECT bolla.cod_anag,\n" +
+ " bolla.cod_dtip,\n" +
+ " bolla.data_doc,\n" +
+ " bolla.ser_doc,\n" +
+ " bolla.num_doc\n" +
+ "FROM dtb_doct\n" +
+ " INNER JOIN dtb_doct bolla ON dtb_doct.cod_anag = bolla.cod_anag AND dtb_doct.cod_dtip = bolla.cod_dtip_val AND\n" +
+ " dtb_doct.data_doc = bolla.data_doc_val AND\n" +
+ " dtb_doct.ser_doc = bolla.ser_doc_val AND\n" +
+ " dtb_doct.num_doc = bolla.num_doc_val\n"+
+ " INNER JOIN dtb_tipi ON bolla.cod_dtip = dtb_tipi.cod_dtip AND dtb_tipi.tipo_emissione = 'DIRETTA'";
+ sql = UtilityDB.addwhereCond(sql, whereCond, true);
+
+ List> datiDoc = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), sql);
+
+ if (datiDoc == null || datiDoc.size() == 0)
+ throw new Exception("Nessuno documento trovato");
+
+ String fileContent = "";
+ for (HashMap d : datiDoc) {
+ sql =
+ Query.format(
+ "SELECT dtb_doct.cod_dtip,\n" +
+ " dtb_doct.data_doc,\n" +
+ " dtb_doct.ser_doc,\n" +
+ " dtb_doct.num_doc,\n" +
+ " dtb_doct.cod_dtip_val,\n" +
+ " dtb_doct.data_doc_val,\n" +
+ " dtb_doct.ser_doc_val,\n" +
+ " dtb_doct.num_doc_val,\n" +
+ " dtb_doct.cod_vdes,\n" +
+ " vtb_dest.cod_affiliazione,\n" +
+ " dtb_doct.cod_divi,\n" +
+ " dtb_doct.cod_anag,\n" +
+ " dtb_doct.listino\n" +
+ "FROM dtb_doct\n" +
+ " LEFT OUTER JOIN vtb_dest ON dtb_doct.cod_anag = vtb_dest.cod_anag AND dtb_doct.cod_vdes = vtb_dest.cod_vdes\n" +
+ "WHERE dtb_doct.cod_anag = %s AND \n" +
+ " dtb_doct.cod_dtip = %s AND \n" +
+ " dtb_doct.data_doc = %s AND \n" +
+ " dtb_doct.ser_doc = %s AND \n" +
+ " dtb_doct.num_doc = %s \n" +
+ "ORDER BY cod_dtip_val, data_doc_val, ser_doc_val, num_doc_val, cod_dtip, data_doc, ser_doc, num_doc",
+ d.get("cod_anag"),
+ d.get("cod_dtip"),
+ d.get("data_doc"),
+ d.get("ser_doc"),
+ d.get("num_doc"));
+
+ MdTestateDTO mdTestateDTO = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MdTestateDTO.class);
+
+ if (UtilityString.isNullOrEmpty(mdTestateDTO.getCodAffiliazione())) {
+ anomalie.add(AnomalieDTO.error(String.format("Attenzione codice di affiliazione non trovato o destinatario non presente sul documento n. %s/%s del %s",
+ d.get("ser_doc"), d.get("num_doc"), UtilityDate.formatDate((Date) d.get("data_doc"), "dd/MM/yyyy"))));
+ }
+
+ mdTestateDTO.setTipoRecord("10");
+
+ sql =
+ Query.format(
+ "SELECT mtb_aart.descrizione,\n" +
+ " dtb_docr.unt_doc,\n" +
+ " dtb_docr.qta_doc,\n" +
+ " dtb_docr.importo_riga / dtb_docr.qta_doc AS prezzo_netto,\n" +
+ " dtb_docr.importo_riga as imponibile,\n" +
+ " Cast(Round(ISNULL(gtb_aliq.perc_aliq, 0),0) as int) AS perc_aliq,\n" +
+ " ISNULL(mtb_aart_anag.cod_mart_anag, dtb_docr.cod_mart) AS cod_mart,\n" +
+ " CASE\n" +
+ " WHEN dtb_docr.sconto5 = 100 OR dtb_docr.sconto6 = 100 OR sconto7 = 100 OR sconto8 = 100 THEN 4\n" +
+ " WHEN dtb_tipi.segno_val_scar = -1 THEN 2\n" +
+ " ELSE 1 END AS tipo_cessione\n" +
+ "FROM dtb_doct\n" +
+ " INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
+ " INNER JOIN dtb_docr ON dtb_doct.cod_anag = dtb_docr.cod_anag AND dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
+ " dtb_doct.data_doc = dtb_docr.data_doc AND dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
+ " dtb_doct.num_doc = dtb_docr.num_doc\n" +
+ " INNER JOIN mtb_aart ON dtb_docr.cod_mart = mtb_aart.cod_mart\n" +
+ " LEFT OUTER JOIN gtb_aliq ON dtb_docr.cod_aliq = gtb_aliq.cod_aliq\n" +
+ "\n" +
+ " LEFT OUTER JOIN mtb_aart_anag\n" +
+ " ON mtb_aart.cod_mart = mtb_aart_anag.cod_mart AND mtb_aart_anag.cod_anag = dtb_doct.cod_forn_td\n" +
+ "WHERE dtb_doct.cod_anag = %s\n" +
+ " AND dtb_doct.cod_dtip = %s\n" +
+ " AND dtb_doct.data_doc = %s\n" +
+ " AND dtb_doct.ser_doc = %s\n" +
+ " AND dtb_doct.num_doc = %s\n" +
+ "ORDER BY id_riga",
+ d.get("cod_anag"),
+ d.get("cod_dtip"),
+ d.get("data_doc"),
+ d.get("ser_doc"),
+ d.get("num_doc"));
+
+ List mdRighe = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MdRigheDTO.class);
+
+ mdRighe.stream().forEach(x->x.setTipoRecord("20"));
+
+ TxtMapper testataMapper = new TxtMapper()
+ .setIgnorePosition(false);
+
+ String testata = testataMapper.serialize(mdTestateDTO);
+
+ TxtMapper righeMapper = new TxtMapper()
+ .setIgnorePosition(false);
+ String righe = righeMapper.serialize(mdRighe);
+ fileContent += testata + CommonConstants.A_CAPO + righe + CommonConstants.A_CAPO;
+ }
+
+ EntityExportResponse> entityExportResponse = new EntityExportResponse<>();
+ entityExportResponse.setResponse(new ArrayList<>());
+ String fileName = UtilityLocalDate.formatDate(LocalDateTime.now(), "yyyyMMddHHmmss")+ ".txt";
+ FileItem mdFile = new FileItem(fileName, fileContent, "txt");
+ entityExportResponse.getResponse().add(mdFile);
+
+ return entityExportResponse;
+ }
+}
diff --git a/ems-engine/src/main/java/it/integry/ems/logistic/Import/service/EuritmoImportService.java b/ems-engine/src/main/java/it/integry/ems/logistic/Import/service/EuritmoImportService.java
index a580b62af4..9a67e6cabb 100644
--- a/ems-engine/src/main/java/it/integry/ems/logistic/Import/service/EuritmoImportService.java
+++ b/ems-engine/src/main/java/it/integry/ems/logistic/Import/service/EuritmoImportService.java
@@ -533,7 +533,8 @@ public class EuritmoImportService {
if (checkForDuplicates) {
if (checkColloDuplicato(mDBTransactionManager, colT.getRifOrd())) {
- throw new Exception(String.format("Collo L - Data %s - Num. %d giร importato. Rif. %s", UtilityLocalDate.formatDate(colT.getDataCollo(), CommonConstants.DATE_FORMAT_DMY_SLASHED),
+ throw new Exception(String.format("Collo L - Data %s - Num. %d giร importato. Rif. %s",
+ CommonConstants.DATE_DMY_SLASHED_FORMATTER.format(colT.getDataCollo()),
colT.getNumCollo(), colT.getRifOrd()));
}
}
@@ -582,7 +583,7 @@ public class EuritmoImportService {
if (checkForDuplicates) {
if (checkColloDuplicato(mDBTransactionManager, result.getRifOrd())) {
- throw new Exception(String.format("Collo L - Data %s - Num. %d giร importato. Rif. %s", UtilityLocalDate.formatDate(result.getDataCollo(), CommonConstants.DATE_FORMAT_DMY_SLASHED),
+ throw new Exception(String.format("Collo L - Data %s - Num. %d giร importato. Rif. %s", CommonConstants.DATE_DMY_SLASHED_FORMATTER.format(result.getDataCollo()),
result.getNumCollo(), result.getRifOrd()));
}
}
diff --git a/ems-engine/src/main/java/it/integry/ems/logistic/conSegna/service/ConSegnaService.java b/ems-engine/src/main/java/it/integry/ems/logistic/conSegna/service/ConSegnaService.java
index 90f08d260e..ea3a026d37 100644
--- a/ems-engine/src/main/java/it/integry/ems/logistic/conSegna/service/ConSegnaService.java
+++ b/ems-engine/src/main/java/it/integry/ems/logistic/conSegna/service/ConSegnaService.java
@@ -431,7 +431,7 @@ public class ConSegnaService {
if (!elencoEmail.isEmpty()) {
try {
- mailService.sendMail(null, null, elencoEmail, null, null, subject, msgText, false, new FileItem(dtbDocPdf.getFilename(), dtbDocPdf.getFilecontent()));
+ mailService.sendMail(null, null, elencoEmail, null, null, subject, msgText, false, new FileItem(dtbDocPdf.getFilename(), dtbDocPdf.getFilecontentByteArr(false)));
logger.info("[ConSegna] Mail inviata a {} con allegato {}", elencoEmail, dtbDocPdf.getFilename());
} catch (Exception e) {
logger.error("[ConSegna] Errore invio mail a {} con allegato {}: {}", elencoEmail, dtbDocPdf.getFilename(), e.getMessage());
diff --git a/ems-engine/src/main/java/it/integry/ems/logistic/controller/LogisticController.java b/ems-engine/src/main/java/it/integry/ems/logistic/controller/LogisticController.java
index 5a1005b528..583afc1312 100644
--- a/ems-engine/src/main/java/it/integry/ems/logistic/controller/LogisticController.java
+++ b/ems-engine/src/main/java/it/integry/ems/logistic/controller/LogisticController.java
@@ -47,7 +47,6 @@ import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.net.InetAddress;
-import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
@@ -172,7 +171,8 @@ public class LogisticController {
List pairList = new ArrayList();
pairList.add(new PairsDTO("gestione", pack.getGestione()));
- pairList.add(new PairsDTO("data_collo", UtilityLocalDate.formatDate(pack.getDataCollo(), CommonConstants.DATETIME_FORMAT_YMD)));
+ pairList.add(new PairsDTO("data_collo", CommonConstants.DATETIME_YMD_SLASHED_FORMATTER.
+ format(pack.getDataCollo())));
pairList.add(new PairsDTO("ser_collo", pack.getSerCollo()));
pairList.add(new PairsDTO("num_collo", pack.getNumCollo().toString()));
@@ -233,31 +233,28 @@ public class LogisticController {
ServiceRestResponse pkgPrintLabel(HttpServletRequest request,
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
@RequestParam String gestione,
- @RequestParam String dataCollo,
+ @RequestParam LocalDate dataCollo,
@RequestParam String serCollo,
@RequestParam String numCollo,
@RequestParam String printerName,
@RequestParam int printQuantity,
@RequestParam(required = false, defaultValue = "default") String reportName) {
- Date dateCollo;
HashMap params = new HashMap();
try {
- dateCollo = UtilityDate.RecognizeDate(dataCollo);
if (reportName.equalsIgnoreCase("default")) {
- reportName = logisticService.getReportNameColloFromSetupGest(gestione, dateCollo, serCollo, numCollo);
+ reportName = logisticService.getReportNameColloFromSetupGest(gestione, dataCollo, serCollo, numCollo);
}
if (reportName == null || reportName.equalsIgnoreCase("")) {
throw new Exception("Non รจ stato definito alcun report name");
}
- SimpleDateFormat dateFormatFile = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD_DASHED);
params.put("gestione", gestione);
- params.put("data_collo", dateFormatFile.format(dateCollo));
+ params.put("data_collo", CommonConstants.DATE_YMD_SLASHED_FORMATTER.format(dataCollo));
params.put("ser_collo", serCollo);
params.put("num_collo", numCollo);
diff --git a/ems-engine/src/main/java/it/integry/ems/logistic/service/LogisticService.java b/ems-engine/src/main/java/it/integry/ems/logistic/service/LogisticService.java
index add376987b..715eefe064 100644
--- a/ems-engine/src/main/java/it/integry/ems/logistic/service/LogisticService.java
+++ b/ems-engine/src/main/java/it/integry/ems/logistic/service/LogisticService.java
@@ -603,13 +603,13 @@ public class LogisticService {
}
- public String getReportNameColloFromSetupGest(String gestione, Date dataCollo, String serCollo, String numCollo) throws Exception {
+ public String getReportNameColloFromSetupGest(String gestione, LocalDate dataCollo, String serCollo, String numCollo) throws Exception {
String codAnag, ret = null;
String sql = "SELECT cod_anag FROM mtb_colt " +
" WHERE gestione = " + UtilityDB.valueToString(gestione) +
" AND num_collo = " + UtilityDB.valueToString(numCollo) +
" AND ser_collo = " + UtilityDB.valueToString(serCollo) +
- " AND data_collo = " + UtilityDB.valueDateToString(dataCollo, CommonConstants.DATE_FORMAT_YMD_DASHED);
+ " AND data_collo = " + UtilityDB.valueToString(dataCollo);
PreparedStatement ps = multiDBTransactionManager.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
@@ -1301,8 +1301,7 @@ public class LogisticService {
List pairList = new ArrayList();
pairList.add(new PairsDTO("gestione", mtbColt.getGestione()));
- pairList.add(new PairsDTO("dataCollo",
- UtilityLocalDate.formatDate(mtbColt.getDataCollo(), CommonConstants.DATE_FORMAT_YMD_DASHED)));
+ pairList.add(new PairsDTO("dataCollo", CommonConstants.DATE_YMD_DASHED_FORMATTER.format(mtbColt.getDataCollo())));
pairList.add(new PairsDTO("serCollo", mtbColt.getSerCollo()));
pairList.add(new PairsDTO("numCollo", mtbColt.getNumCollo()));
pairList.add(new PairsDTO("barcode", "000" + "01" + UtilityLocalDate.formatDate(mtbColt.getDataCollo(), "ddMMyy") + mtbColt.getSerCollo()
diff --git a/ems-engine/src/main/java/it/integry/ems/logistic/service/SmartLogisticService.java b/ems-engine/src/main/java/it/integry/ems/logistic/service/SmartLogisticService.java
index 9bcac08f8a..d2a90ba970 100644
--- a/ems-engine/src/main/java/it/integry/ems/logistic/service/SmartLogisticService.java
+++ b/ems-engine/src/main/java/it/integry/ems/logistic/service/SmartLogisticService.java
@@ -35,7 +35,6 @@ import java.math.RoundingMode;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -485,7 +484,7 @@ public class SmartLogisticService {
codVdes = mtbColt.getCodVdes();
ColloDTO colloClie = new ColloDTO();
colloClie.setGestione(mtbColt.getGestione());
- colloClie.setData_collo(UtilityLocalDate.formatDate(mtbColt.getDataCollo(), CommonConstants.DATETIME_FORMAT_YMD));
+ colloClie.setData_collo(CommonConstants.DATETIME_YMD_SLASHED_FORMATTER.format(mtbColt.getDataCollo()));
colloClie.setSer_collo(mtbColt.getSerCollo());
colloClie.setNum_collo(mtbColt.getNumCollo());
colloClie.setCod_anag(codClie);
diff --git a/ems-engine/src/main/java/it/integry/ems/order/crm/service/CrmService.java b/ems-engine/src/main/java/it/integry/ems/order/crm/service/CrmService.java
index 5a913f6cfc..13ad824ea8 100644
--- a/ems-engine/src/main/java/it/integry/ems/order/crm/service/CrmService.java
+++ b/ems-engine/src/main/java/it/integry/ems/order/crm/service/CrmService.java
@@ -173,6 +173,7 @@ public class CrmService {
StbActivity newActivity = createNewActivity(
createContact
.getActivityRequest()
+ .setCodAnag(codAnag)
.setCodJcom(codJcom),
new CRMCreateNewCommessaRequestDTO()
.setCommessa(createContact.getCommessa()),
@@ -334,6 +335,9 @@ public class CrmService {
);
HashMap ordineImportato = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
+ if ((ordineImportato != null || ordineImportato.get("activity_id") != null) && completeOrder.getActivityId() == null)
+ completeOrder.setActivityId(ordineImportato.get("activity_id").toString());
+
if ("S".equals(ordineImportato.get("flag_elaborato").toString()))
throw new Exception("L'ordine risulta essere in gestione, pertanto non รจ piรน possibile modificarlo");
@@ -729,6 +733,7 @@ public class CrmService {
.setUserName(userName)
.setActivityDescription(activityDescription)
.setUserCreator(requestDataDTO.getUsername())
+ .setCodAnag(activityRequest.getCodAnag())
.setCodJcom(activityRequest.getCodJcom())
.setEstimatedTime(LocalDateTime.now());
diff --git a/ems-engine/src/main/java/it/integry/ems/order/crm/utility/CRMUtility.java b/ems-engine/src/main/java/it/integry/ems/order/crm/utility/CRMUtility.java
index 69535313dd..88e1752027 100644
--- a/ems-engine/src/main/java/it/integry/ems/order/crm/utility/CRMUtility.java
+++ b/ems-engine/src/main/java/it/integry/ems/order/crm/utility/CRMUtility.java
@@ -214,6 +214,7 @@ public class CRMUtility {
notificationDate = EmsRestConstants.LOCAL_DATE_TIME_NULL;
return new StbActivity()
+ .setActivityId(activityRequest.getActivityId())
.setTipoAnag(activityRequest.getTipoAnag())
.setCodAnag(activityRequest.getCodAnag())
.setCodJcom(activityRequest.getCodJcom())
diff --git a/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportListiniAcquistoService.java b/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportListiniAcquistoService.java
index e5cb3aa30d..455e72e3c3 100644
--- a/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportListiniAcquistoService.java
+++ b/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportListiniAcquistoService.java
@@ -21,7 +21,6 @@ import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
@@ -125,7 +124,8 @@ public class ImportListiniAcquistoService {
return atbListData;
} else
- anomalie.add(AnomalieDTO.info(String.format("Nessuna variazione sui prezzi del listino %s a data %s", codAlis, UtilityLocalDate.formatDate(dataVariazione, CommonConstants.DATE_FORMAT_DMY_SLASHED))));
+ anomalie.add(AnomalieDTO.info(String.format("Nessuna variazione sui prezzi del listino %s a data %s", codAlis,
+ CommonConstants.DATE_DMY_SLASHED_FORMATTER.format(dataVariazione))));
return null;
diff --git a/ems-engine/src/main/java/it/integry/ems/retail/controller/GiacenzaController.java b/ems-engine/src/main/java/it/integry/ems/retail/controller/GiacenzaController.java
index 81e8f9db4c..c4649089b7 100644
--- a/ems-engine/src/main/java/it/integry/ems/retail/controller/GiacenzaController.java
+++ b/ems-engine/src/main/java/it/integry/ems/retail/controller/GiacenzaController.java
@@ -49,9 +49,10 @@ public class GiacenzaController {
@RequestMapping(value = "retrieve", method = RequestMethod.GET)
public ServiceRestResponse retrieveGiacenza(HttpServletRequest request,
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
- @RequestParam String codMdep) throws Exception {
+ @RequestParam String codMdep,
+ @RequestParam (required = false) String codMart) throws Exception {
- return ServiceRestResponse.createPositiveResponse(giacenzaService.retrieveGiacenza(codMdep, true));
+ return ServiceRestResponse.createPositiveResponse(giacenzaService.retrieveGiacenza(codMdep, true, codMart));
}
@RequestMapping(value = "archivia", method = RequestMethod.POST)
diff --git a/ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServices.java b/ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServices.java
index 07c21d5862..c8e56b81b1 100644
--- a/ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServices.java
+++ b/ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServices.java
@@ -186,10 +186,8 @@ public class VariazioniPvExportServices {
if (isSingleLisv) {
String suffix = "";
- if (variazioniPvDTO.getTipoReportEnum().compareTo(VariazioniReportType.PROMOZIONI) == 0) {
- suffix = "P";
- } else if (variazioniPvDTO.getTipoReportEnum().compareTo(VariazioniReportType.TRACCIABILITA) == 0) {
- suffix = "T";
+ if (variazioniPvDTO.getTipoReportEnum() != VariazioniReportType.LISTINO && variazioniPvDTO.getTipoReportEnum() != VariazioniReportType.VARIAZIONI) {
+ suffix = variazioniPvDTO.getTipoReportEnum().getText();
}
String pathFile = setup.get("PATH_FILE");
if (UtilityString.isNullOrEmpty(pathFile)) {
diff --git a/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmServiceSave.java b/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmServiceSave.java
index 61bb5ec984..b8f0d19fb7 100644
--- a/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmServiceSave.java
+++ b/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmServiceSave.java
@@ -552,7 +552,7 @@ public class PvmServiceSave {
List giacenzaPv = new ArrayList<>();
if (saveGiacenza) {
- giacenzaPv = giacenzaService.retrieveGiacenza(codMdep, false);
+ giacenzaPv = giacenzaService.retrieveGiacenza(codMdep, false, null);
}
MtbColt collo = new MtbColt();
diff --git a/ems-engine/src/main/java/it/integry/ems/retail/service/GiacenzaService.java b/ems-engine/src/main/java/it/integry/ems/retail/service/GiacenzaService.java
index 4e68012297..719644875c 100644
--- a/ems-engine/src/main/java/it/integry/ems/retail/service/GiacenzaService.java
+++ b/ems-engine/src/main/java/it/integry/ems/retail/service/GiacenzaService.java
@@ -579,7 +579,7 @@ public class GiacenzaService {
}
}
- public List retrieveGiacenza(String codMdep, boolean readOrdini) throws Exception {
+ public List retrieveGiacenza(String codMdep, boolean readOrdini, String codMart) throws Exception {
String sql = Query.format(
"SELECT cod_mdep FROM stb_gest_setup_depo WHERE gest_name = %s AND section = %s AND key_section = %S AND value = %S",
@@ -628,7 +628,8 @@ public class GiacenzaService {
" AND wdtb_doct.ser_doc = wdtb_docr.ser_doc\n" +
" AND wdtb_doct.num_doc = wdtb_docr.num_doc\n" +
" WHERE wdtb_doct.flag_elaborato = 'N'\n" +
- " AND wdtb_doct.cod_mdep IN (" + whereCond + ") and wdtb_doct.data_ins >= dateadd(day, - 7, cast(getdate() AS DATE))\n" +
+ " AND wdtb_doct.cod_mdep IN (" + whereCond + ") \n" +
+ " AND wdtb_doct.data_ins >= dateadd(day, - 7, cast(getdate() AS DATE))\n" +
" UNION ALL\n" +
" SELECT ntb_docr.cod_mart,\n" +
" ntb_doct.date_only_doc AS data_reg,\n" +
@@ -695,7 +696,6 @@ public class GiacenzaService {
" SUM(movimenti.qta_car * qta_std) + ISNULL(giac.qta_car, 0) AS qta_car,\n" +
" SUM(movimenti.qta_scar * qta_std) + ISNULL(giac.qta_scar, 0) AS qta_scar,\n" +
" GETDATE() AS data_ins\n" +
- "\n" +
" FROM movimenti\n" +
" INNER JOIN art ON movimenti.cod_mart = art.cod_mart\n" +
" LEFT OUTER JOIN selezione_giacenza giac ON giac.cod_mart = art.cod_mart_mov\n" +
@@ -710,7 +710,6 @@ public class GiacenzaService {
" )\n" +
" )\n" +
" )\n" +
- "\n" +
" GROUP BY art.cod_mart_mov, giac.qta_car, giac.qta_scar),\n" +
" inv AS (SELECT ISNULL(r.cod_mart, k.cod_mart) AS cod_mart,\n" +
" ISNULL(r.qta_car, ISNULL(k.qta_car, 0)) - ISNULL(r.qta_scar, ISNULL(k.qta_scar, 0)) AS qta_inv,\n" +
@@ -738,6 +737,10 @@ public class GiacenzaService {
"FROM final\n" +
" LEFT OUTER JOIN mtb_aart ON final.cod_mart = mtb_aart.cod_mart";
+ if ( !UtilityString.isNullOrEmpty(codMart)) {
+ sql += " WHERE final.cod_mart = " + UtilityDB.valueToString(codMart);
+ }
+
List listGiacenza = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, GiacenzaDTO.class);
String listiniAcquisto = setupGest.getSetup(gestName, section, "LISTINI_ACQUISTO");
@@ -747,60 +750,42 @@ public class GiacenzaService {
}
if (readOrdini) {
sql =
- "WITH ordine AS (SELECT dtb_ordt.cod_mdep,\n" +
- " dtb_ordr.cod_mart,\n" +
- " dtb_ordr.qta_ord,\n" +
- " dtb_ordr.data_cons\n" +
- " FROM dtb_ordt\n" +
- " INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione\n" +
- " AND dtb_ordt.data_ord = dtb_ordr.data_ord\n" +
- " AND dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
- " WHERE dtb_ordt.gestione = 'A'\n" +
- " AND dtb_ordt.flag_annulla = 'N'\n" +
- " AND dtb_ordt.flag_sospeso = 'N'\n" +
- " AND dtb_ordt.cod_mdep = " + UtilityDB.valueToString(codMdep) + "\n" +
+
+ "SELECT dtb_ordt.cod_mdep,\n" +
+ " dtb_ordr.cod_mart,\n" +
+ " dtb_ordr.qta_ord as merce_in_arrivo\n" +
+ "FROM dtb_ordt\n" +
+ " INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione\n" +
+ " AND dtb_ordt.data_ord = dtb_ordr.data_ord\n" +
+ " AND dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
+ "WHERE dtb_ordt.gestione = 'A'\n" +
+ " AND dtb_ordt.flag_annulla = 'N'\n" +
+ " AND dtb_ordt.flag_sospeso = 'N'\n" +
+ " AND dtb_ordr.flag_evaso = 'I'\n" +
+ " AND dtb_ordt.cod_mdep = " + UtilityDB.valueToString(codMdep) + "\n" +
(listini != null && !listini.isEmpty() ? " AND dtb_ordt.listino IN (" + UtilityDB.listValueToString(listini) + ")\n" : "") +
- " AND dtb_ordr.cod_mart IS NOT NULL\n" +
- " AND (dtb_ordr.data_cons >= CAST(GETDATE() AS DATE) OR\n" +
- " (\n" +
- " dtb_ordr.data_cons = dtb_ordr.data_ord\n" +
- " AND dtb_ordr.flag_evaso = 'I'\n" +
- " AND dtb_ordr.data_ord >= DATEADD(DAY, - 3, CAST(GETDATE() AS DATE))\n" +
- " )\n" +
- " )\n" +
- " AND NOT EXISTS (SELECT *\n" +
- " FROM wdtb_doct\n" +
- " INNER JOIN wdtb_docr ON wdtb_doct.cod_dtip = wdtb_docr.cod_dtip\n" +
- " AND wdtb_docr.cod_anag = wdtb_doct.cod_anag\n" +
- " AND wdtb_docr.data_doc = wdtb_doct.data_doc\n" +
- " AND wdtb_docr.ser_doc = wdtb_doct.ser_doc\n" +
- " AND wdtb_docr.num_doc = wdtb_doct.num_doc\n" +
- " WHERE wdtb_docr.data_ord = dtb_ordr.data_ord\n" +
- " AND wdtb_docr.num_ord = dtb_ordr.num_ord))\n" +
- "\n" +
- " , doc AS (SELECT wdtb_doct.cod_mdep,\n" +
- " wdtb_docr.cod_mart,\n" +
- " sum(wdtb_docr.qta_doc) as qta_doc \n" +
- " FROM wdtb_doct\n" +
- " INNER JOIN wdtb_docr ON wdtb_doct.cod_dtip = wdtb_docr.cod_dtip\n" +
- " AND wdtb_docr.cod_anag = wdtb_doct.cod_anag\n" +
- " AND wdtb_docr.data_doc = wdtb_doct.data_doc\n" +
- " AND wdtb_docr.ser_doc = wdtb_doct.ser_doc\n" +
- " AND wdtb_docr.num_doc = wdtb_doct.num_doc\n" +
- " AND wdtb_docr.cod_mart IS NOT NULL\n" +
- (listini != null && !listini.isEmpty() ? " AND wdtb_doct.listino IN (" + UtilityDB.listValueToString(listini) + ")\n" : "") +
- " WHERE wdtb_doct.cod_mdep = " + UtilityDB.valueToString(codMdep) + "\n" +
- " AND wdtb_doct.flag_elaborato = 'I'" +
- " GROUP BY wdtb_doct.cod_mdep,\n" +
- " wdtb_docr.cod_mart )\n" +
- "\n" +
- "SELECT ISNULL(doc.cod_mdep, ordine.cod_mdep) AS cod_mdep,\n" +
- " ISNULL(doc.cod_mart, ordine.cod_mart) AS cod_mart,\n" +
- " ISNULL(doc.qta_doc, 0) + ISNULL(ordine.qta_ord, 0) AS merce_in_arrivo\n" +
- "FROM doc\n" +
- " FULL OUTER JOIN ordine ON doc.cod_mart = ordine.cod_mart\n" +
- " AND doc.cod_mdep = ordine.cod_mdep\n" +
- " AND doc.cod_mdep = ordine.cod_mdep";
+ (!UtilityString.isNullOrEmpty(codMart) ? " AND dtb_ordr.cod_mart = " + UtilityDB.valueToString(codMart) + "\n":"") +
+ " AND dtb_ordr.cod_mart IS NOT NULL\n" +
+ " AND (dtb_ordr.data_cons >= CAST(GETDATE() AS DATE) OR\n" +
+ " (\n" +
+ " dtb_ordr.data_cons = dtb_ordr.data_ord\n" +
+ " AND dtb_ordr.flag_evaso = 'I'\n" +
+ " AND dtb_ordr.data_ord >= DATEADD(DAY, - 3, CAST(GETDATE() AS DATE))\n" +
+ " )\n" +
+ " )\n" +
+ " AND NOT EXISTS (SELECT 1\n" +
+ " FROM wdtb_doct\n" +
+ " INNER JOIN wdtb_docr ON wdtb_doct.cod_dtip = wdtb_docr.cod_dtip\n" +
+ " AND wdtb_docr.cod_anag = wdtb_doct.cod_anag\n" +
+ " AND wdtb_docr.data_doc = wdtb_doct.data_doc\n" +
+ " AND wdtb_docr.ser_doc = wdtb_doct.ser_doc\n" +
+ " AND wdtb_docr.num_doc = wdtb_doct.num_doc\n" +
+ " WHERE wdtb_docr.data_ord = dtb_ordr.data_ord\n" +
+ " AND wdtb_docr.num_ord = dtb_ordr.num_ord\n" +
+ " AND ((wdtb_doct.merce_ricevuta = 1 AND wdtb_doct.flag_elaborato = 'I') OR\n" +
+ " wdtb_doct.flag_elaborato <> 'I'))";
+
+
List> merceInArrivo = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), sql);
@@ -849,7 +834,7 @@ public class GiacenzaService {
List codMdepList = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
for (String codMdep : codMdepList) {
- List giacenzaDTOS = retrieveGiacenza(codMdep, false);
+ List giacenzaDTOS = retrieveGiacenza(codMdep, false, null);
if (giacenzaDTOS != null && !giacenzaDTOS.isEmpty()) {
List ggArchivio = giacenzaDTOS.stream().map(
x -> {
diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/Utility/WMSUtility.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/Utility/WMSUtility.java
index 7bf71ce0a2..a040cc8877 100644
--- a/ems-engine/src/main/java/it/integry/ems/retail/wms/Utility/WMSUtility.java
+++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/Utility/WMSUtility.java
@@ -420,6 +420,7 @@ public class WMSUtility {
return movementRows;
}
+
public static boolean canULBeDeleted(MtbColt mtbColt, MultiDBTransactionManager multiDBTransactionManager) throws Exception {
HashMap params = new HashMap<>();
params.put("mtb_colt.gestione", mtbColt.getGestione());
diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/controller/WMSAccettazioneBollaController.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/controller/WMSAccettazioneBollaController.java
index b03ffb4566..6a252c7612 100644
--- a/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/controller/WMSAccettazioneBollaController.java
+++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/controller/WMSAccettazioneBollaController.java
@@ -49,4 +49,13 @@ public class WMSAccettazioneBollaController {
new RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO()
.setUdcList(wmsAccettazioneBollaService.retrieveAlreadyRegisteredUDC(body.getBolle())));
}
+
+
+ @PostMapping(value = "markDocumentReceived")
+ public ServiceRestResponse markDocumentReceived(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
+ @RequestBody MarkDocumentReceivedRequestDTO body) throws Exception {
+
+ wmsAccettazioneBollaService.markDocumentReceived(body.getBolle());
+ return ServiceRestResponse.createPositiveResponse();
+ }
}
diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/dto/BollaAccettazioneDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/dto/BollaAccettazioneDTO.java
index 5ae754c430..5d7d656abd 100644
--- a/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/dto/BollaAccettazioneDTO.java
+++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/dto/BollaAccettazioneDTO.java
@@ -2,7 +2,7 @@ package it.integry.ems.retail.wms.accettazione.dto;
import it.integry.ems_model.annotation.SqlField;
-import java.util.Date;
+import java.time.LocalDate;
public class BollaAccettazioneDTO {
@@ -16,7 +16,7 @@ public class BollaAccettazioneDTO {
private String codDtip;
@SqlField("data_doc")
- private Date dataDoc;
+ private LocalDate dataDoc;
@SqlField("ser_doc")
private String serDoc;
@@ -60,11 +60,11 @@ public class BollaAccettazioneDTO {
return this;
}
- public Date getDataDoc() {
+ public LocalDate getDataDoc() {
return dataDoc;
}
- public BollaAccettazioneDTO setDataDoc(Date dataDoc) {
+ public BollaAccettazioneDTO setDataDoc(LocalDate dataDoc) {
this.dataDoc = dataDoc;
return this;
}
diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/dto/MarkDocumentReceivedRequestDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/dto/MarkDocumentReceivedRequestDTO.java
new file mode 100644
index 0000000000..e2b20ce175
--- /dev/null
+++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/dto/MarkDocumentReceivedRequestDTO.java
@@ -0,0 +1,17 @@
+package it.integry.ems.retail.wms.accettazione.dto;
+
+import java.util.List;
+
+public class MarkDocumentReceivedRequestDTO {
+
+ private List bolle;
+
+ public List getBolle() {
+ return bolle;
+ }
+
+ public MarkDocumentReceivedRequestDTO setBolle(List bolle) {
+ this.bolle = bolle;
+ return this;
+ }
+}
diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/service/WMSAccettazioneBollaService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/service/WMSAccettazioneBollaService.java
index b61529376a..689360db0c 100644
--- a/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/service/WMSAccettazioneBollaService.java
+++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/service/WMSAccettazioneBollaService.java
@@ -10,6 +10,8 @@ import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.UserSession;
import it.integry.ems_model.entity.MtbAart;
+import it.integry.ems_model.entity.WdtbDoct;
+import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityBigDecimal;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityQuery;
@@ -284,4 +286,23 @@ public class WMSAccettazioneBollaService {
return alreadyRegisteredUdcList;
}
+
+ public void markDocumentReceived(List bolle) throws Exception {
+ List documentList = new ArrayList<>();
+
+ for (BollaAccettazioneDTO bolla : bolle) {
+ WdtbDoct document = new WdtbDoct()
+ .setCodAnag(bolla.getCodAnag())
+ .setCodDtip(bolla.getCodDtip())
+ .setDataDoc(bolla.getDataDoc())
+ .setSerDoc(bolla.getSerDoc())
+ .setNumDoc(bolla.getNumDoc())
+ .setMerceRicevuta(true);
+ document.setOperation(OperationType.UPDATE);
+
+ documentList.add(document);
+ }
+
+ entityProcessor.processEntityList(documentList, multiDBTransactionManager, true);
+ }
}
diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/service/WMSAccettazioneService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/service/WMSAccettazioneService.java
index fa6f07f670..fd837709f2 100644
--- a/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/service/WMSAccettazioneService.java
+++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/service/WMSAccettazioneService.java
@@ -159,6 +159,11 @@ public class WMSAccettazioneService {
udcMtbColt.setCodAnag(createUDCRequestDTO.getCodAnag());
}
+ //Check temporaneo per evitare problemi sui dati
+ if(udcMtbColt.getSerCollo() != null && udcMtbColt.getSerCollo().equalsIgnoreCase("UL") &&
+ (udcMtbColt.getBarcodeUl() == null || !udcMtbColt.getBarcodeUl().startsWith("U")))
+ throw new Exception("Errore interno durante il salvataggio dell'UDC: il barcode dell'UDC non รจ valido per la serie UL.");
+
udcMtbColt.setOperation(OperationType.INSERT);
entityProcessor.processEntity(udcMtbColt, multiDBTransactionManager);
diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGenericController.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGenericController.java
index 5c2a864a30..4da946aff0 100644
--- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGenericController.java
+++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGenericController.java
@@ -674,7 +674,7 @@ public class WMSGenericController {
@PostMapping(value = "wms/updatePosizioneUL")
ServiceRestResponse updatePosizioneUL(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
- @RequestBody UpdatePosizioneULRequestDTO updatePosizioneULRequest) throws Exception {
+ @RequestBody UpdatePosizioneULRequestDTO updatePosizioneULRequest) throws Exception {
wmsGenericService.cambiaPosizioneUL(updatePosizioneULRequest);
return ServiceRestResponse.createPositiveResponse();
diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/punti_vendita/controller/WMSVerificaGiacenzeController.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/punti_vendita/controller/WMSVerificaGiacenzeController.java
index 9a16b1a015..82a688c703 100644
--- a/ems-engine/src/main/java/it/integry/ems/retail/wms/punti_vendita/controller/WMSVerificaGiacenzeController.java
+++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/punti_vendita/controller/WMSVerificaGiacenzeController.java
@@ -31,7 +31,7 @@ public class WMSVerificaGiacenzeController {
public @ResponseBody ServiceRestResponse retrieveGiacenze(@RequestParam String codMdep) throws Exception {
wmsVerificaGiacenzeService.setPrimaryDs(codMdep);
- return ServiceRestResponse.createPositiveResponse(giacenzaService.retrieveGiacenza(codMdep, false));
+ return ServiceRestResponse.createPositiveResponse(giacenzaService.retrieveGiacenza(codMdep, false, null));
}
@PostMapping(value = "save_new_row")
diff --git a/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java b/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java
index ea0567e3aa..b648c86b04 100644
--- a/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java
+++ b/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java
@@ -25,6 +25,7 @@ import it.integry.ems.service.exception.EmptyReportException;
import it.integry.ems.settings.Model.AvailableConnectionModel;
import it.integry.ems.settings.Model.SettingsModel;
import it.integry.ems.status.ServiceChecker;
+import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.system.dto.ChangeLogDTO;
import it.integry.ems.system.dto.GestNameDTO;
@@ -69,6 +70,8 @@ import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -1756,4 +1759,227 @@ public class SystemController {
return ServiceRestResponse.createPositiveResponse();
}
+ @PostMapping(value = "system/svuotaNuovoDb")
+ public ServiceRestResponse svuotaNuovoDb(
+ HttpServletRequest request,
+ @RequestParam(CommonConstants.PROFILE_DB) String configuration,
+ @RequestBody(required = false) List tabelleDaEscludere
+ ) throws Exception {
+
+ Azienda azienda = new Azienda()
+ .setId((short) 1)
+ .setNomeDitta("PROVA")
+ .setNomeDitta(EmsRestConstants.NULL)
+ .setIndirizzo(EmsRestConstants.NULL)
+ .setCap(EmsRestConstants.NULL)
+ .setCitta(EmsRestConstants.NULL)
+ .setProv(EmsRestConstants.NULL)
+ .setPartIva(EmsRestConstants.NULL)
+ .setNumTel(EmsRestConstants.NULL)
+ .setNumFax(EmsRestConstants.NULL)
+ .seteMail(EmsRestConstants.NULL)
+ .setUltNumGio(EmsRestConstants.INTEGER_NULL)
+ .setRibaRSoc1(EmsRestConstants.NULL)
+ .setRibaRSoc2(EmsRestConstants.NULL)
+ .setRibaRSocBreve(EmsRestConstants.NULL)
+ .setDataInizMsg(EmsRestConstants.LOCAL_DATE_NULL)
+ .setDataFineMsg(EmsRestConstants.LOCAL_DATE_NULL)
+ .setMessaggioDoc(EmsRestConstants.NULL)
+ .setLiquidazioniIva(EmsRestConstants.NULL)
+ .setLogoFile(EmsRestConstants.NULL)
+ .setUltDareAv(BigDecimal.ZERO)
+ .setSollTop(0)
+ .setSollLeft(0)
+ .setGgUtili(0)
+ .setCodSia(EmsRestConstants.NULL)
+ .setSollHeadPersonal(EmsRestConstants.NULL)
+ .setSitoWeb(EmsRestConstants.NULL)
+ .setCapitaleSoc(BigDecimal.ZERO)
+ .setCciaa(EmsRestConstants.NULL)
+ .setIscRegImp(EmsRestConstants.NULL)
+ .setRagSocMod(EmsRestConstants.NULL)
+ .setPrefissoEan(EmsRestConstants.NULL)
+ .setCodFiscale(EmsRestConstants.NULL)
+ .setPersFisicaCognome(EmsRestConstants.NULL)
+ .setPersFisicaNome(EmsRestConstants.NULL)
+ .setPersFisicaSesso(EmsRestConstants.NULL)
+ .setPersFisicaDataNascita(EmsRestConstants.LOCAL_DATE_NULL)
+ .setPersFisicaComuneNascita(EmsRestConstants.NULL)
+ .setPersFisicaProvNascita(EmsRestConstants.NULL)
+ .setRapprLegaleCodFisc(EmsRestConstants.NULL)
+ .setSedeAmm(EmsRestConstants.NULL)
+ .setCodIvaOmaggi(EmsRestConstants.NULL)
+ .setTribunale(EmsRestConstants.NULL)
+ .setSettRitardoAnno(0)
+ .setDbDistributore(EmsRestConstants.NULL)
+ .setCodAteco(EmsRestConstants.NULL)
+ .setCodCuc(EmsRestConstants.NULL)
+ .setRegFisc(EmsRestConstants.NULL)
+ .setStatoLiquidazione(EmsRestConstants.NULL)
+ .setEmailSdi(EmsRestConstants.NULL)
+ .setFromEmailSdi(EmsRestConstants.NULL)
+ .setLogoB64(EmsRestConstants.NULL)
+ .setIdCreditoreSepa(EmsRestConstants.NULL)
+ .setMessaggioPrivacy(EmsRestConstants.NULL)
+ .setRapprLegaleNome(EmsRestConstants.NULL)
+ .setRapprLegaleCognome(EmsRestConstants.NULL)
+ .setRapprLegaleSesso(EmsRestConstants.NULL)
+ .setRapprLegaleDataNascita(EmsRestConstants.LOCAL_DATE_NULL)
+ .setRapprLegaleComuneNascita(EmsRestConstants.NULL)
+ .setRapprLegaleProvNascita(EmsRestConstants.NULL)
+ .setRapprLegale(EmsRestConstants.NULL)
+ .setFlagFattEle(EmsRestConstants.NULL)
+ .setCodRuop(EmsRestConstants.NULL)
+ .setCodFda(EmsRestConstants.NULL)
+ .setCodFce(EmsRestConstants.INTEGER_NULL)
+ .setCodLucid(EmsRestConstants.NULL)
+ .setCodSdiDitta(EmsRestConstants.NULL);
+
+ azienda.setOperation(OperationType.UPDATE);
+
+ entityProcessor.processEntity(azienda, multiDBTransactionManager);
+
+ List systemTable = new ArrayList<>();
+ systemTable.add("azienda");
+ systemTable.add("ctb_tipo_azienda");
+ systemTable.add("ctb_tipo_riep");
+ systemTable.add("dtb_intracee_natura");
+ systemTable.add("dtb_mod_stampa");
+ systemTable.add("dtb_tipi_fe");
+ systemTable.add("dtb_transaz_intracee");
+ systemTable.add("gtb_aliq_natura");
+ systemTable.add("gtb_anni_divi");
+ systemTable.add("gtb_divi");
+ systemTable.add("gtb_divi_iso");
+ systemTable.add("gtb_lingue");
+ systemTable.add("gtb_nazi_iso");
+ systemTable.add("gtb_paesi_esteri");
+ systemTable.add("gtb_paga_fe");
+ systemTable.add("gtb_periodo_fisc");
+ systemTable.add("gtb_porto");
+ systemTable.add("gtb_reg_fisc");
+ systemTable.add("gtb_tipi_paga");
+ systemTable.add("jtb_ricorrenze");
+ systemTable.add("mtb_movn");
+ systemTable.add("stb_activity_num");
+ systemTable.add("stb_calt");
+ systemTable.add("stb_counter");
+ systemTable.add("stb_dates");
+ systemTable.add("stb_datetimes");
+ systemTable.add("stb_gest_setup");
+ systemTable.add("stb_gest_setup_query");
+ systemTable.add("stb_gest_sync");
+ systemTable.add("stb_lookup_query");
+ systemTable.add("stb_menu");
+ systemTable.add("stb_menu_opz");
+ systemTable.add("stb_migration_status");
+ systemTable.add("stb_multiplier");
+ systemTable.add("stb_tipo_azienda");
+ systemTable.add("stb_user");
+ systemTable.add("Wtb_languages_det");
+ systemTable.add("Wtb_user_groups");
+
+ if (tabelleDaEscludere == null) tabelleDaEscludere = new ArrayList<>();
+
+
+ String sql =
+ "SELECT DISTINCT t.name AS table_name\n" +
+ "FROM \n" +
+ " sys.tables t\n" +
+ " INNER JOIN sys.schemas s ON t.schema_id = s.schema_id\n" +
+ " INNER JOIN sys.indexes i ON t.object_id = i.object_id\n" +
+ " INNER JOIN sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id\n" +
+ "WHERE \n" +
+ " t.is_ms_shipped = 0\n" +
+ " and s.name = 'dbo'\n" +
+ " and p.rows > 0\n";
+
+ List tabelleDaSvuotare = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
+ List finalTabelleDaEscludere = tabelleDaEscludere;
+
+ tabelleDaSvuotare = tabelleDaSvuotare
+ .stream()
+ .filter(x -> !systemTable.contains(x) && !finalTabelleDaEscludere.contains(x))
+ .collect(Collectors.toList());
+
+ Integer numMaxRipetizioni = 10, i = 0;
+ if (tabelleDaSvuotare.stream().anyMatch(x -> x.equalsIgnoreCase("ctb_cont"))) {
+ sql = "UPDATE azienda SET cod_ccon_quadra = null ";
+ UtilityDB.executeStatement(multiDBTransactionManager.getPrimaryConnection(), sql);
+ multiDBTransactionManager.commitAll();
+ }
+
+ while (!tabelleDaSvuotare.isEmpty() && i < numMaxRipetizioni) {
+ ++i;
+ Iterator it = tabelleDaSvuotare.iterator();
+ while (it.hasNext()) {
+ String tableName = it.next();
+ sql = Query.format("SELECT OBJECT_NAME(fk.parent_object_id) AS table_name,\n" +
+ " c1.name AS column_name\n" +
+ "FROM sys.foreign_keys fk\n" +
+ " INNER JOIN sys.foreign_key_columns fkc ON fk.object_id = fkc.constraint_object_id\n" +
+ " INNER JOIN sys.columns c1 ON c1.object_id = fkc.parent_object_id AND c1.column_id = fkc.parent_column_id\n" +
+ "WHERE OBJECT_NAME(fk.referenced_object_id) = %s\n" +
+ " AND EXISTS (SELECT*\n" +
+ " FROM sys.indexes i\n" +
+ " INNER JOIN sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id\n" +
+ " WHERE fk.parent_object_id = i.object_id\n" +
+ " AND p.rows > 0)", tableName);
+
+ List> datiFk = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), sql);
+
+ if (datiFk != null && !datiFk.isEmpty() && !tableName.equalsIgnoreCase("gtb_nazi")) {
+ boolean existData = false;
+ Map