Merge branch 'master' into feature/RefactoringGestioneColli
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
# Conflicts: # ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java # ems-core/src/main/java/it/integry/ems/rules/completing/DocOrdRules.java # ems-core/src/main/java/it/integry/ems/rules/completing/DocumentRules.java # ems-core/src/main/java/it/integry/ems/rules/completing/OrderRules.java # ems-core/src/main/java/it/integry/ems_model/business_logic/GeneraOrdLav.java # ems-core/src/main/java/it/integry/ems_model/entity/CtbAmac.java # ems-core/src/main/java/it/integry/ems_model/entity/DtbOrdLogImport.java # ems-engine/src/main/java/it/integry/ems/order/Import/service/OrdiniWebImportService.java
This commit is contained in:
@@ -42,7 +42,7 @@ public class RequestDataDTO {
|
||||
private String password;
|
||||
private boolean includeNulls = false;
|
||||
|
||||
private IntegryApplicationEnum integryApplication = IntegryApplicationEnum.PVM;
|
||||
private IntegryApplicationEnum integryApplication;
|
||||
|
||||
private UserDTO userDTO;
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package it.integry.ems.license;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.context.ContextLoader;
|
||||
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -11,7 +12,6 @@ import java.util.Random;
|
||||
|
||||
public class LicenseCheckInterceptor extends HandlerInterceptorAdapter {
|
||||
|
||||
|
||||
@Autowired
|
||||
private LicenseComponent licenseComponent;
|
||||
|
||||
@@ -19,13 +19,9 @@ public class LicenseCheckInterceptor extends HandlerInterceptorAdapter {
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response, Object handler) {
|
||||
|
||||
RequestDataDTO requestData = ContextLoader.getCurrentWebApplicationContext().getBean(RequestDataDTO.class);
|
||||
|
||||
String profileDB = null;
|
||||
if (request != null && request.getQueryString() != null && request.getQueryString().contains(CommonConstants.PROFILE_DB)) {
|
||||
profileDB = request.getParameter(CommonConstants.PROFILE_DB);
|
||||
} else if (request != null && request.getHeader(CommonConstants.PROFILE_DB) != null) {
|
||||
profileDB = request.getHeader(CommonConstants.PROFILE_DB);
|
||||
}
|
||||
String profileDB = requestData.getProfileDB();
|
||||
|
||||
LicenseStatusDTO licenseStatusDTO = null;
|
||||
if (profileDB != null) licenseStatusDTO = licenseComponent.getLicenseStatus(profileDB);
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Component
|
||||
@@ -105,14 +106,19 @@ public class LicenseComponent {
|
||||
} else {
|
||||
List<LicenseStatusDTO> licenses = response.getDTO(new TypeReference<List<LicenseStatusDTO>>() {
|
||||
});
|
||||
if (licenses == null) return;
|
||||
if (licenses == null || licenses.isEmpty()) return;
|
||||
|
||||
listAziende.forEach((key, value) -> {
|
||||
cachedLicenseStatus.remove(key);
|
||||
|
||||
licenses.stream().filter(x -> x.getPartIva().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.ifPresent(license -> cachedLicenseStatus.put(key, license));
|
||||
final Optional<LicenseStatusDTO> licenseSearch = licenses.stream().filter(x -> x.getPartIva().equalsIgnoreCase(value))
|
||||
.findFirst();
|
||||
|
||||
if (licenseSearch.isPresent()) {
|
||||
cachedLicenseStatus.put(key, licenseSearch.get());
|
||||
} else {
|
||||
cachedLicenseStatus.put(key, licenses.get(0));
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@@ -10,10 +10,13 @@ import java.util.Date;
|
||||
public class LicenseStatusDTO {
|
||||
@SqlField("part_iva")
|
||||
private String partIva;
|
||||
|
||||
@SqlField("classe_merito")
|
||||
private Quality quality;
|
||||
|
||||
@SqlField
|
||||
private Status status;
|
||||
|
||||
@SqlField("data_scad_license")
|
||||
private Date expiringDate;
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
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_20250827114912 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if (isCustomerDb(IntegryCustomerDB.Ime_ImeTe) || isCustomerDb(IntegryCustomerDB.Materica_ImeBa)) {
|
||||
updateSetupValue("W_PORDI_RC", "SETUP", "CHECK_DEP_TERZISTA", "S");
|
||||
updateSetupValue("DTB_ORDT", "SETUP", "DISABLE_TRIGGER_ORDL", "S");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250827151739 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if (existsColumn("dtb_ord_log_import", "id")) return;
|
||||
|
||||
executeStatement(
|
||||
"exec dropPrimaryKey 'dtb_ord_log_import'",
|
||||
"alter table dtb_ord_log_import add id bigint identity",
|
||||
"alter table dtb_ord_log_import add constraint pk_dtb_ord_log_import primary key (id)");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20251020090242 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if (isDMS())
|
||||
return;
|
||||
|
||||
createOrUpdateView("[vw_tracciabUDCProd]", "CREATE VIEW [dbo].[vw_tracciabUDCProd] AS\n" +
|
||||
"SELECT mtb_colr.data_ord AS dataOrdProd,\n" +
|
||||
" mtb_colr.num_ord AS numOrdProd,\n" +
|
||||
" mtb_colt.cod_anag AS codAnag,\n" +
|
||||
" gtb_anag.rag_soc AS produttore,\n" +
|
||||
" mtb_colt.cod_jfas AS linea,\n" +
|
||||
" mtb_colr.datetime_row AS dataOraProd,\n" +
|
||||
" mtb_colt.cod_dtip AS codDtip,\n" +
|
||||
" mtb_colt.data_doc AS dataDoc,\n" +
|
||||
" mtb_colt.ser_doc AS serDoc,\n" +
|
||||
" mtb_colt.num_doc AS numDoc,\n" +
|
||||
" mtb_colt.segno,\n" +
|
||||
" dtb_ordt.cod_prod AS codProd,\n" +
|
||||
" dtb_ordt.descrizione_prod AS DescrizioneProd,\n" +
|
||||
" IIF(mtb_colt.segno = 1, mtb_colr.partita_mag, NULL) AS lottoProd,\n" +
|
||||
" IIF(mtb_colt.segno = 1, mtb_colt.progressivo_ul, NULL) AS numUDCProd,\n" +
|
||||
" IIF(mtb_colt.segno = 1, mtb_colr.barcode_ul_in, NULL) AS UDCProd,\n" +
|
||||
" IIF(mtb_colt.segno = 1, mtb_aart.unt_mis, NULL) AS untMisProd,\n" +
|
||||
" IIF(mtb_colt.segno = 1, mtb_colr.qta_col, 0) AS qtaProd,\n" +
|
||||
" IIF(mtb_colt.segno = 1, mtb_colr.num_cnf, 0) AS colliProd,\n" +
|
||||
" IIF(mtb_colt.segno = -1, mtb_colr.cod_mart, NULL) AS codMP,\n" +
|
||||
" IIF(mtb_colt.segno = -1, mtb_aart.descrizione_estesa, NULL) AS DescrizioneMP,\n" +
|
||||
" IIF(mtb_colt.segno = -1, mtb_colr.partita_mag, NULL) AS lottoMP,\n" +
|
||||
" IIF(mtb_colt.segno = -1, udc.progressivo_ul, NULL) AS numUDCMP,\n" +
|
||||
" IIF(mtb_colt.segno = -1, mtb_colr.barcode_ul_out, NULL) AS UDCMP,\n" +
|
||||
" IIF(mtb_colt.segno = -1, mtb_aart.unt_mis, NULL) AS untMisMP,\n" +
|
||||
" IIF(mtb_colt.segno = -1, mtb_colr.qta_col, 0) AS qtaScar\n" +
|
||||
"FROM mtb_colt\n" +
|
||||
" INNER JOIN mtb_colr ON mtb_colt.gestione = mtb_colr.gestione AND\n" +
|
||||
" mtb_colt.data_collo = mtb_colr.data_collo AND\n" +
|
||||
" mtb_colt.ser_collo = mtb_colr.ser_collo AND\n" +
|
||||
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||
" LEFT OUTER JOIN mtb_colt udc ON udc.gestione = mtb_colr.gestione_rif AND\n" +
|
||||
" udc.data_collo = mtb_colr.data_collo_rif AND\n" +
|
||||
" udc.ser_collo = mtb_colr.ser_collo_rif AND\n" +
|
||||
" udc.num_collo = mtb_colr.num_collo_rif\n" +
|
||||
" INNER JOIN mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" INNER JOIN gtb_anag ON mtb_colt.cod_anag = gtb_anag.cod_anag\n" +
|
||||
" LEFT OUTER JOIN dtb_ordt ON mtb_colt.gestione = dtb_ordt.gestione AND mtb_colt.data_ord = dtb_ordt.data_ord AND\n" +
|
||||
" mtb_colt.num_ord = dtb_ordt.num_ord\n" +
|
||||
"WHERE mtb_colt.gestione = 'L'\n" +
|
||||
" AND mtb_colr.data_ord IS NOT NULL\n" +
|
||||
"UNION ALL\n" +
|
||||
"SELECT dtb_doct.data_ord AS dataOrdProd,\n" +
|
||||
" dtb_doct.num_ord AS num_ordProd,\n" +
|
||||
" dtb_doct.cod_anag,\n" +
|
||||
" gtb_anag.rag_soc,\n" +
|
||||
" dtb_doct.cod_jfas,\n" +
|
||||
" step_ordine.data_iniz AS dataOraProd,\n" +
|
||||
" dtb_doct.cod_Dtip,\n" +
|
||||
" dtb_doct.data_doc,\n" +
|
||||
" dtb_doct.ser_doc,\n" +
|
||||
" dtb_doct.num_doc,\n" +
|
||||
" -1 AS segno,\n" +
|
||||
" dtb_doct.cod_prod AS codProd,\n" +
|
||||
" dtb_ordt.descrizione_prod AS descrizioneProd,\n" +
|
||||
" NULL AS LottoProd,\n" +
|
||||
" NULL AS NumUdcProd,\n" +
|
||||
" NULL AS UDCProd,\n" +
|
||||
" NULL AS untMisProd,\n" +
|
||||
" NULL AS qtaProd,\n" +
|
||||
" NULL AS colliProd,\n" +
|
||||
" dtb_docr.cod_mart AS codMp,\n" +
|
||||
" dtb_docr.descrizione AS DescrizioneMP,\n" +
|
||||
" dtb_docr.partita_mag AS LottMP,\n" +
|
||||
" NULL AS numUDCMP,\n" +
|
||||
" NULL AS UDCMP,\n" +
|
||||
" dtb_docr.unt_doc AS UntMisMP,\n" +
|
||||
" dtb_docr.qta_doc AS qtaScar\n" +
|
||||
"FROM dtb_doct\n" +
|
||||
" INNER JOIN dtb_docr ON dtb_doct.cod_anag = dtb_docr.cod_anag AND\n" +
|
||||
" dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
|
||||
" dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
|
||||
" dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
|
||||
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
|
||||
" INNER JOIN gtb_anag ON dtb_doct.cod_anag = gtb_anag.cod_anag\n" +
|
||||
" INNER JOIN mtb_aart ON dtb_docr.cod_mart = mtb_aart.cod_mart AND mtb_aart.flag_tracciabilita = 'S'\n" +
|
||||
" INNER JOIN mtb_grup ON mtb_aart.cod_mgrp = mtb_grup.cod_mgrp AND mtb_grup.tipo_mgrp = 'IMB'\n" +
|
||||
" INNER JOIN dtb_ordt ON dtb_ordt.gestione = dtb_doct.gestione AND dtb_ordt.data_ord = dtb_doct.data_ord AND\n" +
|
||||
" dtb_ordt.num_ord = dtb_doct.num_ord\n" +
|
||||
" INNER JOIN (SELECT gestione, data_ord, num_ord, MIN(data_iniz) AS data_iniz\n" +
|
||||
" FROM dtb_ord_steps\n" +
|
||||
" WHERE gestione = 'L'\n" +
|
||||
" GROUP BY gestione, data_ord, num_ord) step_ordine\n" +
|
||||
" ON step_ordine.gestione = dtb_doct.gestione AND step_ordine.data_ord = dtb_doct.data_ord AND\n" +
|
||||
" step_ordine.num_ord = dtb_doct.num_ord\n" +
|
||||
" INNER JOIN (SELECT cod_anag, cod_dtip, data_doc, ser_doc, num_doc\n" +
|
||||
" FROM dtb_doct\n" +
|
||||
" WHERE dtb_doct.cod_dtip IN ('H2', 'SLAV')\n" +
|
||||
" EXCEPT\n" +
|
||||
" SELECT cod_anag, cod_Dtip, data_doc, ser_doc, num_doc\n" +
|
||||
" FROM mtb_colt\n" +
|
||||
" WHERE cod_dtip IN ('H2', 'SLAV')) DocNoPackList ON dtb_doct.cod_anag = DocNoPackList.cod_anag AND\n" +
|
||||
" dtb_doct.cod_Dtip = DocNoPackList.cod_Dtip AND\n" +
|
||||
" dtb_doct.data_doc = DocNoPackList.data_doc AND\n" +
|
||||
" dtb_doct.ser_doc = DocNoPackList.ser_doc AND\n" +
|
||||
" dtb_doct.num_doc = DocNoPackList.num_doc");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20251020155222 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if (isDMS())
|
||||
return;
|
||||
|
||||
createOrUpdateFunction("f_getCodAliq", "CREATE FUNCTION [dbo].[f_getCodAliq](@gestione varchar(1),\n" +
|
||||
" @codMart varchar(15), \n" +
|
||||
" @codAnag varchar(5), \n" +
|
||||
" @codVdes varchar(5), \n" +
|
||||
" @codDtip varchar(5), \n" +
|
||||
" @codPromo varchar(10),\n" +
|
||||
" @sconto5 numeric(5,2),\n" +
|
||||
" @sconto6 numeric(5,2),\n" +
|
||||
" @sconto7 numeric(5,2),\n" +
|
||||
" @sconto8 numeric(5,2))\n" +
|
||||
"RETURNS varchar(5) \n" +
|
||||
"AS\n" +
|
||||
"BEGIN\n" +
|
||||
" -- Declare the return variable here\n" +
|
||||
" DECLARE @codAliq varchar(5)\n" +
|
||||
" DECLARE @percAliq numeric(20,5)\n" +
|
||||
" DECLARE @codAliqEsenz varchar(5)\n" +
|
||||
" select @codAliq = CASE WHEN (select flag_prz_iva FROM dtb_tipi where cod_dtip = @codDtip) = 'S' THEN mtb_aart.cod_aliq \n" +
|
||||
" WHEN (select tipo_iva FROM gtb_aliq WHERE gtb_aliq.cod_aliq = mtb_aart.cod_aliq ) = 'NON ESPOSTA' THEN mtb_aart.cod_aliq \n" +
|
||||
" WHEN ( @sconto5 = 100 OR @sconto6 = 100 OR @sconto7 = 100 OR @sconto8 = 100 ) AND @gestione = 'V' and @codPromo is not null THEN (select case when cod_aliq is null then case when azienda.flag_set_iva_omaggi = 'S' and azienda.cod_iva_omaggi is not null then cod_iva_omaggi else mtb_aart.cod_aliq end else cod_aliq end from vtb_promo where cod_promo = @codPromo) \n" +
|
||||
" WHEN ( @sconto5 = 100 OR @sconto6 = 100 OR @sconto7 = 100 OR @sconto8 = 100 ) and @gestione = 'V' and @codPromo is null and azienda.flag_set_iva_omaggi = 's' and azienda.cod_iva_omaggi is not null THEN azienda.cod_iva_omaggi \n" +
|
||||
" WHEN ( @sconto5 = 100 OR @sconto6 = 100 OR @sconto7 = 100 OR @sconto8 = 100 ) and @gestione = 'V' and @codPromo is null and azienda.flag_set_iva_omaggi = 'N' THEN null\n" +
|
||||
" WHEN @codVdes is not null AND vtb_dest.cod_aliq_in is not null and vtb_dest.cod_aliq_out is not null and (vtb_dest.cod_aliq_in = mtb_aart.cod_aliq OR vtb_dest.cod_aliq_in = anag.cod_aliq) THEN vtb_dest.cod_aliq_out \n" +
|
||||
" WHEN @codVdes is not null AND vtb_dest.cod_aliq_in is not null and vtb_dest.cod_aliq_out is not null and (vtb_dest.cod_aliq_in = mtb_aart.cod_aliq OR vtb_dest.cod_aliq_in = anag.cod_aliq) THEN vtb_dest.cod_aliq_out \n" +
|
||||
" WHEN @codVdes is not null AND vtb_dest.cod_aliq_in is null and vtb_dest.cod_aliq_out is not null THEN vtb_dest.cod_aliq_out \n" +
|
||||
" --WHEN @codVdes is not null AND vtb_dest.cod_aliq_in is null and vtb_dest.cod_aliq_out is null and vtb_dest.cod_aliq is not null then vtb_dest.cod_aliq\n" +
|
||||
" WHEN @codVdes is not null AND vtb_dest.cod_aliq_in is null and vtb_dest.cod_aliq_out is null and vtb_dest.cod_aliq is not null then CASE WHEN gtb_aliq.perc_aliq <> 0 THEN vtb_dest.cod_aliq ELSE mtb_aart.cod_aliq END /*l'eventuale esenzione deve essere impostata solo l'iva non ha già un'esenzione*/\n" +
|
||||
" WHEN @codVdes is not null AND vtb_dest.cod_aliq_in is null and vtb_dest.cod_aliq_out is null and vtb_dest.cod_aliq is null AND anag.cod_aliq is not null then anag.cod_aliq \n" +
|
||||
" --WHEN @codVdes is not null AND vtb_dest.cod_aliq_in is null and vtb_dest.cod_aliq_out is null and vtb_dest.cod_aliq is null AND anag.cod_aliq is not null then CASE WHEN gtb_aliq.perc_aliq <> 0 THEN anag.cod_aliq ELSE mtb_aart.cod_aliq END /*l'eventuale esenzione deve essere impostata solo l'iva non ha già un'esenzione*/\n" +
|
||||
" WHEN @codVdes is null AND anag.cod_aliq is not null then anag.cod_aliq\n" +
|
||||
" ELSE mtb_aart.cod_aliq \n" +
|
||||
" END\n" +
|
||||
" from mtb_aart left outer join gtb_aliq on mtb_aart.cod_aliq = gtb_aliq.cod_aliq,\n" +
|
||||
" azienda\n" +
|
||||
" left outer join (select cod_anag, cod_aliq from vtb_clie where cod_anag = @codAnag and @gestione = 'V' \n" +
|
||||
" union\n" +
|
||||
" select cod_anag, cod_aliq from atb_forn where cod_anag = @codAnag and @gestione <> 'v' ) anag on anag.cod_anag = @codAnag\n" +
|
||||
" left outer join vtb_dest on anag.cod_anag = vtb_dest.cod_anag and vtb_dest.cod_vdes = @codVdes\n" +
|
||||
" where mtb_aart.cod_mart = @codMart;\n" +
|
||||
"\n" +
|
||||
" -- Return the result of the function\n" +
|
||||
" RETURN @codAliq;\n" +
|
||||
"END");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20251022124614 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("ORDIKIDS", "SETUP", "RANGE_TAGLIE_SOLO_CON_QTA", "S",
|
||||
"Indica se considerare tutti i range taglia in aggiunta di un articolo", false, "SI_NO", false, false,
|
||||
false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,281 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20251022125946 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
createOrUpdateFunction("getListinoVendita", "CREATE FUNCTION [dbo].[getListinoVendita](@datavalidita DATETIME, @codvlis VARCHAR(5), @codmart VARCHAR(15))\n" +
|
||||
" RETURNS TABLE AS\n" +
|
||||
" RETURN\n" +
|
||||
" SELECT vtb_list.cod_vlis,\n" +
|
||||
" vtb_list.descrizione,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN tmp_list.max_lisv IS NULL THEN NULL\n" +
|
||||
" ELSE CONVERT(DATETIME, LEFT(tmp_list.max_lisv, 10)) END AS data_iniz,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN tmp_list.max_lisv IS NULL THEN NULL\n" +
|
||||
" ELSE CONVERT(INT, RIGHT(tmp_list.max_lisv, 4)) END AS versione,\n" +
|
||||
" vtb_list.cod_divi,\n" +
|
||||
" vtb_list.cambio,\n" +
|
||||
" vtb_list.flag_arr_prz_iva,\n" +
|
||||
" vtb_list.arr_ric,\n" +
|
||||
" vtb_list.flag_list_iva_inclusa,\n" +
|
||||
" vtb_list.flag_lisv_margine,\n" +
|
||||
" vtb_list.flag_add_trasp,\n" +
|
||||
" tmp_list.cod_mart AS 'cod_mart',\n" +
|
||||
" mtb_lisv_data.unt_mis_ven AS unt_mis_ven,\n" +
|
||||
" ISNULL(mtb_lisv_data.rap_conv, 1) AS rap_conv,\n" +
|
||||
" ISNULL(mtb_lisv_data.prz_base, 0) AS prz_base,\n" +
|
||||
" ISNULL(mtb_lisv_data.ricarica, 0) AS ricarico,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN mtb_lisv_data.prz_vend IS NOT NULL AND mtb_lisv_data.prz_vend <> 0 THEN\n" +
|
||||
" ROUND((ISNULL(mtb_lisv_data.prz_vend, 0) -\n" +
|
||||
" (ISNULL(mtb_lisv_data.prz_base, 0) / (1 - mtb_aart.perc_sfrido / 100))) /\n" +
|
||||
" ISNULL(mtb_lisv_data.prz_vend, 0) * 100, 2)\n" +
|
||||
" ELSE 0 END AS margine_eff,\n" +
|
||||
" --dbo.f_calcMargineEffettivo(IsNull(mtb_lisv_data.prz_base, 0), IsNull(mtb_lisv_data.prz_vend, 0), mtb_aart.perc_sfrido) as margine_eff,\n" +
|
||||
" --dbo.f_calcRicaricoEffettivo(IsNull(mtb_lisv_data.prz_base, 0), IsNull(mtb_lisv_data.prz_vend, 0), mtb_aart.perc_sfrido) ricarico_eff, \n" +
|
||||
" CASE\n" +
|
||||
" WHEN mtb_lisv_data.prz_base IS NOT NULL AND mtb_lisv_data.prz_base <> 0 THEN\n" +
|
||||
" ROUND((ISNULL(mtb_lisv_data.prz_vend, 0) -\n" +
|
||||
" (ISNULL(mtb_lisv_data.prz_base, 0) / (1 - mtb_aart.perc_sfrido / 100))) /\n" +
|
||||
" (ISNULL(mtb_lisv_data.prz_base, 0) / (1 - mtb_aart.perc_sfrido / 100)) * 100, 2)\n" +
|
||||
" ELSE 0 END AS ricarico_eff,\n" +
|
||||
"\n" +
|
||||
" ISNULL(mtb_lisv_data.magg_prz_vend, 0) AS magg_prz_vend,\n" +
|
||||
" ISNULL(mtb_lisv_data.prz_vend, 0) AS prz_vend,\n" +
|
||||
" ISNULL(mtb_lisv_data.prz_vend_iva, 0) AS prz_vend_iva,\n" +
|
||||
" ISNULL(mtb_lisv_data.perc_sco1, 0) AS perc_sco1,\n" +
|
||||
" ISNULL(mtb_lisv_data.perc_sco2, 0) AS perc_sco2,\n" +
|
||||
" ISNULL(mtb_lisv_data.perc_sco3, 0) AS perc_sco3,\n" +
|
||||
" ISNULL(mtb_lisv_data.perc_sco4, 0) AS perc_sco4,\n" +
|
||||
" ISNULL(mtb_lisv_data.perc_prov, 0) AS perc_prov,\n" +
|
||||
" ISNULL(mtb_lisv_data.fisso_prov, 0) AS fisso_prov,\n" +
|
||||
" ISNULL(mtb_lisv_data.posizione, '') AS posizione,\n" +
|
||||
" ISNULL(mtb_lisv_data.perc_gest, 0) AS perc_gest,\n" +
|
||||
" ISNULL(mtb_lisv_data.val_gest, 0) AS val_gest,\n" +
|
||||
" mtb_lisv_data.data_agg_prz AS data_agg_prz,\n" +
|
||||
" ISNULL(mtb_lisv_data.perc_ispe, 0) AS perc_ispe,\n" +
|
||||
" ISNULL(mtb_lisv_data.val_ispe, 0) AS val_ispe,\n" +
|
||||
" ISNULL(mtb_lisv_data.perc_promo, 0) AS perc_promo,\n" +
|
||||
" ISNULL(mtb_lisv_data.val_promo, 0) AS val_promo,\n" +
|
||||
" ISNULL(mtb_lisv_data.perc_oneri, 0) AS perc_oneri,\n" +
|
||||
" ISNULL(mtb_lisv_data.val_oneri, 0) AS val_oneri,\n" +
|
||||
" mtb_lisv_data.tipo_variazione AS tipo_variazione,\n" +
|
||||
" mtb_lisv_data.note AS note,\n" +
|
||||
" mtb_lisv_data.aggiornato_da AS aggiornato_da,\n" +
|
||||
" mtb_lisv_data.prz_vend * (1 - mtb_lisv_data.perc_sco1 / 100) * (1 - mtb_lisv_data.perc_sco2 / 100) *\n" +
|
||||
" (1 - mtb_lisv_data.perc_sco3 / 100) *\n" +
|
||||
" (1 - mtb_lisv_data.perc_sco4 / 100) AS prz_vend_netto,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN ISNULL(mtb_lisv_data.colli_pedana, 0) <> 0 THEN mtb_lisv_data.colli_pedana\n" +
|
||||
" ELSE mtb_aart.colli_pedana END AS colli_pedana,\n" +
|
||||
" mtb_lisv_data.cod_tcol_ul AS cod_tcol_ul,\n" +
|
||||
" mtb_lisv_data.cod_tcol_ui AS cod_tcol_ui,\n" +
|
||||
" ISNULL(mtb_lisv_data.prz_vend_sug, 0) AS prz_vend_sug,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN ISNULL(mtb_lisv_data.qta_cnf, 0) <> 0\n" +
|
||||
" AND dbo.getGestSetup('VTB_LIST', 'SETUP', 'QTA_CNF_LISTINO') = 'S' \n" +
|
||||
" THEN mtb_lisv_data.qta_cnf\n" +
|
||||
" ELSE mtb_aart.qta_cnf / ISNULL(mtb_lisv_data.rap_conv, 1) END AS qta_cnf,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN ISNULL(mtb_lisv_data.colli_strato, 0) <> 0 THEN mtb_lisv_data.colli_strato\n" +
|
||||
" ELSE mtb_aart.colli_strato END AS colli_strato,\n" +
|
||||
" mtb_lisv_data.descrizione_html AS descrizione_html,\n" +
|
||||
" mtb_lisv_data.colli_pedana AS colli_pedana_lisv,\n" +
|
||||
" mtb_lisv_data.qta_cnf AS qta_cnf_lisv,\n" +
|
||||
" mtb_lisv_data.colli_strato AS colli_strato_lisv,\n" +
|
||||
" mtb_lisv_data.sconto_cartoni,\n" +
|
||||
" mtb_lisv_data.sconto_strato,\n" +
|
||||
" mtb_lisv_data.sconto_pedane,\n" +
|
||||
" vtb_list.flag_attivo,\n" +
|
||||
" vtb_list_data.note AS note_testata,\n" +
|
||||
" ISNULL(mtb_lisv_data.flag_prz_bloccato, 'N') AS flag_prz_bloccato,\n" +
|
||||
" vtb_list_data.porto AS porto,\n" +
|
||||
" mtb_lisv_data.system_note,\n" +
|
||||
" mtb_lisv.add_val_spese,\n" +
|
||||
" mtb_lisv.add_ric_spese,\n" +
|
||||
" mtb_lisv.add_sco_spese,\n" +
|
||||
" mtb_aart.flag_incl_listino,\n" +
|
||||
" mtb_lisv.flag_primario,\n" +
|
||||
" mtb_aart.id_art_equi\n" +
|
||||
" FROM (SELECT vtb_list.cod_vlis AS cod_vlis,\n" +
|
||||
" mtb_lisv_data.cod_mart,\n" +
|
||||
" MAX(CASE\n" +
|
||||
" WHEN vtb_list_data.versione IS NULL THEN NULL\n" +
|
||||
" ELSE CONVERT(VARCHAR(10), vtb_list_data.data_iniz, 111) + ' ' +\n" +
|
||||
" REPLICATE('0', 5 - LEN(vtb_list_data.versione)) +\n" +
|
||||
" CONVERT(VARCHAR(5), vtb_list_data.versione) END) AS max_lisv,\n" +
|
||||
" vtb_list.cod_vlis AS 'cod_vlis_rif'\n" +
|
||||
" FROM vtb_list\n" +
|
||||
" INNER JOIN mtb_lisv_data ON vtb_list.cod_vlis = mtb_lisv_data.cod_vlis\n" +
|
||||
" LEFT OUTER JOIN vtb_list_data ON mtb_lisv_data.cod_vlis = vtb_list_data.cod_vlis AND\n" +
|
||||
" mtb_lisv_data.versione = vtb_list_data.versione AND\n" +
|
||||
" vtb_list_data.cod_promo IS NULL AND\n" +
|
||||
" vtb_list_data.data_iniz <= ISNULL(@datavalidita, GETDATE())\n" +
|
||||
" WHERE vtb_list.cod_vlis_rif IS NULL\n" +
|
||||
" GROUP BY vtb_list.cod_vlis,\n" +
|
||||
" mtb_lisv_data.cod_mart\n" +
|
||||
" UNION\n" +
|
||||
" SELECT vtb_list.cod_vlis AS cod_vlis,\n" +
|
||||
" mtb_lisv_data.cod_mart,\n" +
|
||||
" MAX(CASE\n" +
|
||||
" WHEN vtb_list_data.versione IS NULL THEN NULL\n" +
|
||||
" ELSE CONVERT(VARCHAR(10), vtb_list_data.data_iniz, 111) + ' ' +\n" +
|
||||
" REPLICATE('0', 5 - LEN(vtb_list_data.versione_rif)) +\n" +
|
||||
" CONVERT(VARCHAR(5), vtb_list_data.versione_rif) END) AS max_lisv,\n" +
|
||||
" vtb_list.cod_vlis_rif AS 'cod_vlis_rif'\n" +
|
||||
" FROM vtb_list\n" +
|
||||
" INNER JOIN vtb_list_data ON vtb_list.cod_vlis = vtb_list_data.cod_vlis\n" +
|
||||
" INNER JOIN vtb_list_data vtb_list_data_rif\n" +
|
||||
" ON vtb_list_data.versione_rif = vtb_list_data_rif.versione AND\n" +
|
||||
" vtb_list_data.cod_vlis_rif = vtb_list_data_rif.cod_vlis\n" +
|
||||
" INNER JOIN mtb_lisv_data ON vtb_list_data_rif.cod_vlis = mtb_lisv_data.cod_vlis AND\n" +
|
||||
" vtb_list_data_rif.versione = mtb_lisv_data.versione\n" +
|
||||
"\n" +
|
||||
" WHERE vtb_list_data.data_iniz <= ISNULL(@datavalidita, GETDATE())\n" +
|
||||
" AND vtb_list.cod_vlis_rif IS NOT NULL\n" +
|
||||
" GROUP BY vtb_list.cod_vlis,\n" +
|
||||
" mtb_lisv_data.cod_mart,\n" +
|
||||
" vtb_list.cod_vlis_rif) tmp_list\n" +
|
||||
" INNER JOIN vtb_list ON vtb_list.cod_vlis = tmp_list.cod_vlis\n" +
|
||||
" INNER JOIN mtb_lisv\n" +
|
||||
" ON tmp_list.cod_vlis_rif = mtb_lisv.cod_vlis AND tmp_list.cod_mart = mtb_lisv.cod_mart\n" +
|
||||
" INNER JOIN mtb_aart ON tmp_list.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" LEFT OUTER JOIN mtb_lisv_data ON tmp_list.cod_vlis_rif = mtb_lisv_data.cod_vlis AND\n" +
|
||||
" tmp_list.cod_mart = mtb_lisv_data.cod_mart AND\n" +
|
||||
" CONVERT(INT, RIGHT(tmp_list.max_lisv, 5)) = mtb_lisv_data.versione\n" +
|
||||
" LEFT OUTER JOIN vtb_list_data ON tmp_list.cod_vlis = vtb_list_data.cod_vlis AND\n" +
|
||||
" CONVERT(INT, RIGHT(tmp_list.max_lisv, 5)) = vtb_list_data.versione\n" +
|
||||
"\n" +
|
||||
" WHERE (@codmart IS NULL OR tmp_list.cod_mart = @codmart)\n" +
|
||||
" AND (@codvlis IS NULL OR tmp_list.cod_vlis = @codvlis)");
|
||||
|
||||
createOrUpdateFunction("getListinoVenditaPedane", "CREATE FUNCTION [dbo].[getListinoVenditaPedane](@datavalidita DATETIME, @codvlis VARCHAR(5), @codmart VARCHAR(15), @pedane INT)\n" +
|
||||
" RETURNS TABLE AS\n" +
|
||||
" RETURN\n" +
|
||||
" WITH trasp AS (SELECT mtb_lisv_data_spese.cod_vlis,\n" +
|
||||
" mtb_lisv_data_spese.versione,\n" +
|
||||
" mtb_lisv_data_spese.cod_spes,\n" +
|
||||
" mtb_lisv_data_spese.perc_ricarico,\n" +
|
||||
" mtb_lisv_data_spese.val_ricarico,\n" +
|
||||
" mtb_lisv_data_spese.perc_sconto,\n" +
|
||||
" mtb_lisv_data_spese.da,\n" +
|
||||
" mtb_lisv_data_spese.a\n" +
|
||||
" FROM vtb_list_data\n" +
|
||||
" --riga Sotto Aggiunta da Massimo 08/01/25 per non fare uscire i range pedane quando il prezzo non deve essere addizionato del costo dei trasporti\n" +
|
||||
" --inner join vtb_list on vtb_list_data.cod_vlis = vtb_list.cod_vlis and vtb_list.flag_add_trasp = 1\n" +
|
||||
" INNER JOIN mtb_lisv_data_spese\n" +
|
||||
" ON vtb_list_data.cod_vlis = mtb_lisv_data_spese.cod_vlis AND\n" +
|
||||
" vtb_list_data.versione = mtb_lisv_data_spese.versione\n" +
|
||||
" CROSS APPLY (SELECT MAX(id_listino) AS max_id_listino\n" +
|
||||
" FROM vtb_list_data t\n" +
|
||||
" WHERE t.data_iniz <= ISNULL(@datavalidita, CAST(GETDATE() AS DATE))\n" +
|
||||
" AND vtb_list_data.cod_vlis = t.cod_vlis) max_lisv\n" +
|
||||
" WHERE vtb_list_data.id_listino = max_lisv.max_id_listino)\n" +
|
||||
"\n" +
|
||||
" SELECT list.cod_vlis,\n" +
|
||||
" list.descrizione,\n" +
|
||||
" list.data_iniz,\n" +
|
||||
" list.versione,\n" +
|
||||
" list.cod_divi,\n" +
|
||||
" list.cambio,\n" +
|
||||
" list.flag_arr_prz_iva,\n" +
|
||||
" list.arr_ric,\n" +
|
||||
" list.flag_list_iva_inclusa,\n" +
|
||||
" list.flag_lisv_margine,\n" +
|
||||
" list.flag_add_trasp,\n" +
|
||||
" list.cod_mart,\n" +
|
||||
" list.unt_mis_ven,\n" +
|
||||
" list.rap_conv,\n" +
|
||||
" list.prz_base,\n" +
|
||||
" list.ricarico,\n" +
|
||||
" list.margine_eff,\n" +
|
||||
" list.ricarico_eff,\n" +
|
||||
" list.magg_prz_vend,\n" +
|
||||
" list.prz_vend,\n" +
|
||||
" list.prz_vend_iva,\n" +
|
||||
" list.perc_sco1,\n" +
|
||||
" list.perc_sco2,\n" +
|
||||
" list.perc_sco3,\n" +
|
||||
" list.perc_sco4,\n" +
|
||||
" list.perc_prov,\n" +
|
||||
" list.fisso_prov,\n" +
|
||||
" list.posizione,\n" +
|
||||
" list.perc_gest,\n" +
|
||||
" list.val_gest,\n" +
|
||||
" list.data_agg_prz,\n" +
|
||||
" list.perc_ispe,\n" +
|
||||
" list.val_ispe,\n" +
|
||||
" list.perc_promo,\n" +
|
||||
" list.val_promo,\n" +
|
||||
" list.perc_oneri,\n" +
|
||||
" list.val_oneri,\n" +
|
||||
" list.tipo_variazione,\n" +
|
||||
" list.note,\n" +
|
||||
" list.aggiornato_da,\n" +
|
||||
" list.prz_vend_netto,\n" +
|
||||
" list.colli_pedana,\n" +
|
||||
" list.cod_tcol_ul,\n" +
|
||||
" list.cod_tcol_ui,\n" +
|
||||
" list.prz_vend_sug,\n" +
|
||||
" list.qta_cnf,\n" +
|
||||
" list.colli_strato,\n" +
|
||||
" list.descrizione_html,\n" +
|
||||
" list.colli_pedana_lisv,\n" +
|
||||
" list.qta_cnf_lisv,\n" +
|
||||
" list.colli_strato_lisv,\n" +
|
||||
" list.sconto_cartoni,\n" +
|
||||
" list.sconto_strato,\n" +
|
||||
" list.sconto_pedane,\n" +
|
||||
" list.flag_attivo,\n" +
|
||||
" list.note_testata,\n" +
|
||||
" list.flag_prz_bloccato,\n" +
|
||||
" list.porto,\n" +
|
||||
" list.system_note,\n" +
|
||||
" list.add_val_spese,\n" +
|
||||
" list.add_ric_spese,\n" +
|
||||
" list.add_sco_spese,\n" +
|
||||
" list.flag_incl_listino,\n" +
|
||||
" list.flag_primario,\n" +
|
||||
" list.id_art_equi,\n" +
|
||||
" trasp.cod_spes,\n" +
|
||||
" trasp.perc_ricarico,\n" +
|
||||
" trasp.val_ricarico,\n" +
|
||||
" trasp.perc_sconto,\n" +
|
||||
" trasp.da,\n" +
|
||||
" trasp.a,\n" +
|
||||
" (list.prz_vend +\n" +
|
||||
" IIF(list.flag_add_trasp = 1, --Questa condizione si potrebbe togliere per la modifica fatta l'8/01/25\n" +
|
||||
" ((ISNULL(val_ricarico, 0)) * list.add_val_spese) /\n" +
|
||||
" IIF(ISNULL(list.colli_pedana, 1) = 0, 1, list.colli_pedana), 0)) +\n" +
|
||||
" ((ISNULL(perc_ricarico, 0) * list.add_ric_spese * list.prz_vend) / 100) *\n" +
|
||||
" (1 - (ISNULL(perc_sconto, 0) * list.add_sco_spese) / 100) prz_vend_trasp,\n" +
|
||||
" ((list.prz_vend +\n" +
|
||||
" IIF(list.flag_add_trasp = 1, --Questa condizione si potrebbe togliere per la modifica fatta l'8/01/25\n" +
|
||||
" ((ISNULL(val_ricarico, 0)) * list.add_val_spese) /\n" +
|
||||
" IIF(ISNULL(list.colli_pedana, 1) = 0, 1, list.colli_pedana), 0)) +\n" +
|
||||
" ((ISNULL(perc_ricarico, 0) * list.add_ric_spese * list.prz_vend) / 100) *\n" +
|
||||
" (1 - (ISNULL(perc_sconto, 0) * list.add_sco_spese) / 100)) * (1 - list.perc_sco1 / 100) *\n" +
|
||||
" (1 - list.perc_sco2 / 100) *\n" +
|
||||
" (1 - list.perc_sco3 / 100) *\n" +
|
||||
" (1 - list.perc_sco4 / 100) AS prz_vend_trasp_netto\n" +
|
||||
" FROM getlistinovendita(@datavalidita, @codvlis, @codmart) list\n" +
|
||||
" LEFT OUTER JOIN trasp ON list.cod_vlis = trasp.cod_vlis AND\n" +
|
||||
" (@pedane IS NULL OR @pedane BETWEEN da AND a OR\n" +
|
||||
" (@pedane IS NOT NULL AND da = 0 AND a = 0))");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
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_20251023114821 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
if(isCustomer(IntegryCustomer.Gramm)) {
|
||||
executeStatement(" alter table gramm_simulatore_coan add id bigint identity not null\n" +
|
||||
" CONSTRAINT PK_drl_tipi_mod_stampa PRIMARY KEY (id)");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
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_20251023115642 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if(isCustomer(IntegryCustomer.Gramm)) {
|
||||
createOrUpdateView("olapfermimacchina", "CREATE view [dbo].[OlapFermiMacchina] as \n" +
|
||||
"\n" +
|
||||
" WITH controlli_qualita AS (SELECT [Data Inizio],[Data Fine], [Operatore], [Descrizione del Fermo] as Note, gestione, data_ord, num_ord, num_rip\n" +
|
||||
" FROM (\n" +
|
||||
" select controllo, valore_ril, DTB_ORDT.gestione, dtb_ordt.data_ord, dtb_ordt.num_ord, dtb_ord_cqr.num_rip\n" +
|
||||
" \n" +
|
||||
"from dtb_ord_cqr inner join dtb_ord_cq on dtb_ord_cqr.gestione=dtb_ord_cq.gestione and \n" +
|
||||
" dtb_ord_cqr.data_ord=dtb_ord_cq.data_ord and dtb_ord_cqr.num_ord=dtb_ord_cq.num_ord \n" +
|
||||
" and dtb_ord_cqr.id_riga=dtb_ord_cq.id_riga\n" +
|
||||
" inner join dtb_ordt on dtb_ord_cqr.gestione=dtb_ordt.gestione and \n" +
|
||||
" dtb_ord_cqr.data_ord=dtb_ordt.data_ord and \n" +
|
||||
" dtb_ord_cqr.num_ord=dtb_ordt.num_ord\n" +
|
||||
" \n" +
|
||||
"where dtb_ord_cqr.gestione='L' and dtb_ord_cqr.data_ord >'2024/01/01' and dtb_ordt.cod_mdep in('34','01','33')\n" +
|
||||
" ) cq\n" +
|
||||
" PIVOT\n" +
|
||||
" (max(valore_ril)\n" +
|
||||
" FOR controllo IN ([Data Inizio],[Data Fine], [Operatore],[Descrizione del Fermo])\n" +
|
||||
" ) AS pivottable)\n" +
|
||||
"\n" +
|
||||
"select dtb_ordt.cod_mdep,\n" +
|
||||
" dtb_ord_steps.cod_jfas,\n" +
|
||||
" dtb_ordt.data_ord, \n" +
|
||||
" dtb_ordt.num_ord,\n" +
|
||||
" dtb_ordt.cod_prod,\n" +
|
||||
" mtb_aart.descrizione,\n" +
|
||||
" mtb_aart.marchio,\n" +
|
||||
" dtb_ordt.partita_mag,\n" +
|
||||
" dtb_ordt.unt_mis_prod,\n" +
|
||||
" dtb_ordt.qta_evasa_prod,\n" +
|
||||
" try_convert(datetime, controlli_qualita.[Data Inizio], 103) as Data_inz_fermo,\n" +
|
||||
" try_convert(datetime, controlli_qualita.[Data Fine], 103) as Data_fine_fermo,\n" +
|
||||
" controlli_qualita.Operatore,\n" +
|
||||
" controlli_qualita.Note,\n" +
|
||||
" SUM(\n" +
|
||||
" CASE\n" +
|
||||
" WHEN TRY_CONVERT(datetime, controlli_qualita.[Data Inizio], 103) IS NOT NULL\n" +
|
||||
" AND TRY_CONVERT(datetime, controlli_qualita.[Data Fine], 103) IS NOT NULL\n" +
|
||||
" THEN DATEDIFF(\n" +
|
||||
" MINUTE,\n" +
|
||||
" TRY_CONVERT(datetime, controlli_qualita.[Data Inizio], 103),\n" +
|
||||
" TRY_CONVERT(datetime, controlli_qualita.[Data Fine], 103)\n" +
|
||||
" )\n" +
|
||||
" ELSE 0\n" +
|
||||
" END\n" +
|
||||
") AS min_lav, -- min_fermo (non è stato cambiato il nome del campo perchè ci sono diversi report che leggono da questa vista)\n" +
|
||||
"\n" +
|
||||
"0 AS h_lav,\n" +
|
||||
"\n" +
|
||||
"SUM(\n" +
|
||||
" CASE\n" +
|
||||
" WHEN TRY_CONVERT(datetime, controlli_qualita.[Data Inizio], 103) IS NOT NULL\n" +
|
||||
" AND TRY_CONVERT(datetime, controlli_qualita.[Data Fine], 103) IS NOT NULL\n" +
|
||||
" THEN DATEDIFF(\n" +
|
||||
" HOUR,\n" +
|
||||
" TRY_CONVERT(datetime, controlli_qualita.[Data Inizio], 103),\n" +
|
||||
" TRY_CONVERT(datetime, controlli_qualita.[Data Fine], 103)\n" +
|
||||
" )\n" +
|
||||
" ELSE 0\n" +
|
||||
" END\n" +
|
||||
") OVER (PARTITION BY dtb_ordt.gestione, dtb_ordt.data_ord, dtb_ordt.num_ord) AS h_fermo\n" +
|
||||
"\n" +
|
||||
"\n" +
|
||||
" \n" +
|
||||
"from controlli_qualita inner join dtb_ordt on controlli_qualita.gestione=dtb_ordt.gestione and \n" +
|
||||
" controlli_qualita.data_ord=dtb_ordt.data_ord and \n" +
|
||||
" controlli_qualita.num_ord=dtb_ordt.num_ord\n" +
|
||||
" \n" +
|
||||
" inner join mtb_aart on dtb_ordt.cod_prod=mtb_aart.cod_mart\n" +
|
||||
" left outer join ( select num_ord, data_ord, gestione, cod_jfas\n" +
|
||||
" from \n" +
|
||||
" (select num_ord, data_ord, gestione, data_iniz, cod_jfas,\n" +
|
||||
" ROW_NUMBER() OVER (PARTITION BY gestione, data_ord, num_ord ORDER BY data_iniz ASC) AS num\n" +
|
||||
" from dtb_ord_steps\n" +
|
||||
" where data_iniz IS NOT NULL) step\n" +
|
||||
" where num='1') dtb_ord_steps ON dtb_ordt.gestione = dtb_ord_steps.gestione\n" +
|
||||
" AND dtb_ordt.data_ord = dtb_ord_steps.data_ord\n" +
|
||||
" AND dtb_ordt.num_ord = dtb_ord_steps.num_ord\n" +
|
||||
"where dtb_ordt.gestione='L' and dtb_ordt.data_ord>'2024/01/01' and dtb_ordt.cod_mdep in('34','01','33') \n" +
|
||||
"\n" +
|
||||
"group by dtb_ordt.cod_mdep,\n" +
|
||||
" dtb_ord_steps.cod_jfas,\n" +
|
||||
" dtb_ordt.data_ord, \n" +
|
||||
" dtb_ordt.num_ord,\n" +
|
||||
" dtb_ordt.cod_prod,\n" +
|
||||
" mtb_aart.descrizione,\n" +
|
||||
" mtb_aart.marchio,\n" +
|
||||
" dtb_ordt.partita_mag,\n" +
|
||||
" dtb_ordt.unt_mis_prod,\n" +
|
||||
" dtb_ordt.qta_prod,\n" +
|
||||
" dtb_ordt.qta_evasa_prod,\n" +
|
||||
" controlli_qualita.[Data Inizio],\n" +
|
||||
" controlli_qualita.[Data Fine],\n" +
|
||||
" controlli_qualita.Operatore,\n" +
|
||||
" controlli_qualita.Note,\n" +
|
||||
" dtb_ordt.gestione");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20251024153544 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
createSetup("GTB_ALIQ", "SETUP", "FLAG_PREC_ESENZIONE_ARTICOLO", "N",
|
||||
"Se impostato a S allora quando c'è l'esenzione del cliente e quella dell'articolo ha precedenza quella dell'articolo", false, null, false, false,
|
||||
false, false, false, null, false, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20251024175524 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
executeStatement(
|
||||
"exec DropForeignKey 'ctb_amac', 'mtb_depo_posizioni'",
|
||||
"exec DropForeignKey 'jrl_fase_posizioni', 'mtb_depo_posizioni'",
|
||||
"exec DropPrimaryKey 'mtb_depo_posizioni'");
|
||||
|
||||
dropIndex("mtb_depo_posizioni", "ix_mtb_depo_posizioni_unique");
|
||||
|
||||
executeStatement("alter table mtb_depo_posizioni add constraint pk_mtb_depo_posizioni primary key ( posizione)",
|
||||
"alter table ctb_amac add constraint fk_ctb_amac_mtb_depo_posizioni foreign key (posizione) references mtb_depo_posizioni(posizione)",
|
||||
"alter table jrl_fase_posizioni add constraint fk_jrl_fase_posizioni_mtb_depo_posizioni foreign key (posizione) references mtb_depo_posizioni(posizione)"
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.entity.common.DtbDocOrdT;
|
||||
import it.integry.ems_model.entity.common.DtbOrdCommonR;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.ApplicationName;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.*;
|
||||
@@ -527,4 +528,46 @@ public class OrderRules extends QueryRules {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void completeImportoRigaOrdProd(Connection connection, DtbOrdt dtbOrdt) throws Exception {
|
||||
SetupGest setup = new SetupGest();
|
||||
boolean disableTriggerOrdl = setup.getSetupBoolean(connection, "DTB_ORDT", "SETUP", "DISABLE_TRIGGER_ORDL");
|
||||
|
||||
if (!disableTriggerOrdl) return;
|
||||
|
||||
String sql = Query.format(
|
||||
"SELECT importo_riga FROM dtb_ordr WHERE gestione = %s AND data_ord = %s AND num_ord = %s AND riga_ord = %s ",
|
||||
dtbOrdt.getGestioneRif(),
|
||||
dtbOrdt.getDataOrdRif(),
|
||||
dtbOrdt.getNumOrdRif(),
|
||||
dtbOrdt.getRigaOrdRif()
|
||||
);
|
||||
|
||||
BigDecimal importoRigaOrdP = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
|
||||
BigDecimal importoSpese = dtbOrdt.getDtbOrds().stream().map(x-> x.getImporto()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
BigDecimal valUnt = new BigDecimal(0);
|
||||
if (dtbOrdt.getQtaProd().compareTo(BigDecimal.ZERO) > 0) {
|
||||
valUnt = importoSpese.divide(dtbOrdt.getQtaProd().multiply(dtbOrdt.getRapConvProd()), 5, BigDecimal.ROUND_HALF_UP);
|
||||
}
|
||||
|
||||
if (UtilityBigDecimal.equalsTo(importoSpese, importoRigaOrdP)) return;
|
||||
|
||||
DtbOrdt dtbOrdtProd =
|
||||
new DtbOrdt()
|
||||
.setGestione(dtbOrdt.getGestioneRif())
|
||||
.setDataOrd(dtbOrdt.getDataOrdRif())
|
||||
.setNumOrd(dtbOrdt.getNumOrdRif())
|
||||
.setGeneraOrdLavDaProd(false);
|
||||
dtbOrdtProd.setOperation(OperationType.NO_OP);
|
||||
DtbOrdr dtbOrdrProd =
|
||||
new DtbOrdr()
|
||||
.setRigaOrd(dtbOrdt.getRigaOrdRif())
|
||||
.setValUnt(valUnt)
|
||||
.setImportoRiga(importoSpese);
|
||||
dtbOrdrProd.setOperation(OperationType.UPDATE);
|
||||
dtbOrdtProd.addDtbOrdr(dtbOrdrProd);
|
||||
dtbOrdt.setDtbOrdtProd(dtbOrdtProd);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -332,19 +332,32 @@ public class PackagesRules extends QueryRules {
|
||||
}
|
||||
|
||||
public static HashMap<String, Object> calcPeso(Connection conn, MtbColr entity) throws Exception {
|
||||
String sql =
|
||||
String sql = "select cifre_dec from mtb_unt_mis where flag_unita_kg = 'S'";
|
||||
Integer cifreDec = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
|
||||
|
||||
if ( cifreDec == null ) { cifreDec = 5; }
|
||||
|
||||
sql =
|
||||
"SELECT mtb_aart.unt_mis, " +
|
||||
" mtb_aart.tara_kg, " +
|
||||
" mtb_aart.peso_kg, " +
|
||||
" case when mtb_aart.flag_peso_egalizzato = 1 THEN mtb_aart.qta_cnf ELSE 1 END * mtb_aart.peso_kg as 'peso_egalizzato', " +
|
||||
" mtb_unt_mis.flag_unita_kg, " +
|
||||
" mtb_aart.flag_peso_egalizzato, " +
|
||||
" ISNULL((select cifre_dec from mtb_unt_mis where flag_unita_kg = 'S'), 5) as cifre_dec " +
|
||||
" ISNULL((), 5) as cifre_dec " +
|
||||
" FROM mtb_aart INNER JOIN mtb_unt_mis ON mtb_aart.unt_mis = mtb_unt_mis.unt_mis " +
|
||||
" WHERE mtb_aart.cod_mart = " + UtilityDB.valueToString(entity.getCodMart());
|
||||
|
||||
HashMap<String, Object> queryResults = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
|
||||
|
||||
if (((MtbColr) entity.getOriginalEntity()).getPesoNettoKg() != null && ((MtbColr) entity.getOriginalEntity()).getPesoLordoKg() != null) {
|
||||
HashMap<String, Object> pesi = new HashMap<String, Object>();
|
||||
pesi.put("peso_netto", entity.getPesoNettoKg());
|
||||
pesi.put("peso_lordo", entity.getPesoLordoKg());
|
||||
|
||||
return pesi;
|
||||
}
|
||||
|
||||
BigDecimal pesoNetto = BigDecimal.ZERO, pesoLordo = BigDecimal.ZERO;
|
||||
if (queryResults != null) {
|
||||
BigDecimal taraKg = (BigDecimal) queryResults.get("tara_kg");
|
||||
@@ -352,7 +365,6 @@ public class PackagesRules extends QueryRules {
|
||||
String flagUnitaKg = (String) queryResults.get("flag_unita_kg");
|
||||
BigDecimal pesoKGEgalizzato = (BigDecimal) queryResults.get("peso_egalizzato");
|
||||
Boolean pesoEgalizzato = (Boolean) queryResults.get("flag_peso_egalizzato");
|
||||
int cifreDec = ((BigDecimal) queryResults.get("cifre_dec")).intValue();
|
||||
|
||||
if ("S".equalsIgnoreCase(flagUnitaKg)) {
|
||||
pesoNetto = entity.getQtaCol();
|
||||
|
||||
@@ -1446,7 +1446,6 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter
|
||||
insertSqlTrace.append(")");
|
||||
|
||||
logger.trace("Query tracing: {}", insertSqlTrace);
|
||||
|
||||
long insertedRowCount = insertBulkPs.executeLargeUpdate();
|
||||
if (insertedRowCount > 0 && containsIdentity) {
|
||||
ResultSet rs = insertBulkPs.getGeneratedKeys();
|
||||
|
||||
@@ -8,10 +8,7 @@ import it.integry.ems.rules.completing.OrderRules;
|
||||
import it.integry.ems.rules.completing.dto.DatiPartitaMagDTO;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.business_logic.dto.ActivityCicloProdDTO;
|
||||
import it.integry.ems_model.business_logic.dto.CommessaDTO;
|
||||
import it.integry.ems_model.business_logic.dto.ExplodeDistDTO;
|
||||
import it.integry.ems_model.business_logic.dto.OrdProdSetupDTO;
|
||||
import it.integry.ems_model.business_logic.dto.*;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.*;
|
||||
@@ -337,6 +334,13 @@ public class GeneraOrdLav {
|
||||
.setFlagEvasoProd(flagEvasoProd != null ? flagEvasoProd.getValue().toString() : null)
|
||||
.setGeneraOrdLavDaProd(dtbOrdt.isGeneraOrdLavDaProd());
|
||||
|
||||
if (row.getFlagSospesoOrdl() !=null) {
|
||||
ordT.setFlagSospeso(row.getFlagSospesoOrdl());
|
||||
}
|
||||
if (row.getRifOrdOrdl() !=null) {
|
||||
ordT.setRifOrd(row.getRifOrdOrdl());
|
||||
}
|
||||
|
||||
String flagAnnulla = "N";
|
||||
if (row.getFlagEvaso() == FlagEvaso.ANNULLATO) {
|
||||
flagAnnulla = "S";
|
||||
@@ -855,7 +859,7 @@ public class GeneraOrdLav {
|
||||
BigDecimal rapporto = qtaProd.divide(qtaProdDist, EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
||||
|
||||
List<ExplodeDistDTO> artDist = new ArrayList<>();
|
||||
List<JtbDistMate> jtbDistMates;
|
||||
List<DatiMaterialiDTO> jtbDistMates;
|
||||
String sql;
|
||||
Integer durataFasiPrec = 0;
|
||||
if (((DtbOrdr) dtbOrdr).getDistinta() == null) {
|
||||
@@ -875,7 +879,7 @@ public class GeneraOrdLav {
|
||||
"WHERE is_foglia = 1\n" +
|
||||
"ORDER BY item_id", codProd);
|
||||
|
||||
jtbDistMates = UtilityDB.executeSimpleQueryDTO(conn, sql, JtbDistMate.class);
|
||||
jtbDistMates = UtilityDB.executeSimpleQueryDTO(conn, sql, DatiMaterialiDTO.class);
|
||||
|
||||
} else {
|
||||
jtbDistMates = ((DtbOrdr) dtbOrdr).getDistinta();
|
||||
@@ -893,13 +897,13 @@ public class GeneraOrdLav {
|
||||
.setDataCons(dataConsDist)
|
||||
);
|
||||
} else {
|
||||
for (JtbDistMate mp : jtbDistMates) {
|
||||
Integer numFase = mp.getNumFase();
|
||||
String codProdPri = mp.getCodProdPri();
|
||||
String descrMate = mp.getDescrizione();
|
||||
String descrEstesaMate = mp.getDescrizioneEstesa();
|
||||
BigDecimal qtaMate = mp.getQtaStd();
|
||||
String untMisMate = mp.getUntMisDist();
|
||||
for (DatiMaterialiDTO mp : jtbDistMates) {
|
||||
Integer numFase = mp.getJtbDistMate().getNumFase();
|
||||
String codProdPri = mp.getJtbDistMate().getCodProdPri();
|
||||
String descrMate = mp.getJtbDistMate().getDescrizione();
|
||||
String descrEstesaMate = mp.getJtbDistMate().getDescrizioneEstesa();
|
||||
BigDecimal qtaMate = mp.getJtbDistMate().getQtaStd();
|
||||
String untMisMate = mp.getJtbDistMate().getUntMisDist();
|
||||
BigDecimal qta = qtaMate.multiply(rapporto);
|
||||
|
||||
String flagUMDig =
|
||||
@@ -911,24 +915,27 @@ public class GeneraOrdLav {
|
||||
qta = qta.setScale(0, RoundingMode.CEILING);
|
||||
}
|
||||
|
||||
if (mp.getCodMart() != null) {
|
||||
existCodMart(conn, mp.getCodMart());
|
||||
if (mp.getJtbDistMate().getCodMart() != null) {
|
||||
existCodMart(conn, mp.getJtbDistMate().getCodMart());
|
||||
}
|
||||
|
||||
if (descrMate == null) descrMate = UtilityString.left(descrEstesaMate, 40);
|
||||
// Inserimento riga materiale nell'ordine di lavorazione
|
||||
DtbOrdr ordR =
|
||||
new DtbOrdr()
|
||||
.setCodMart(mp.getCodMart())
|
||||
.setCodMart(mp.getJtbDistMate().getCodMart())
|
||||
.setCodJcom(ordT.getCodJcom())
|
||||
.setDescrizione(descrMate)
|
||||
.setDescrizioneEstesa(descrEstesaMate)
|
||||
.setQtaOrd(qta)
|
||||
.setUntOrd(untMisMate)
|
||||
.setRapConv(mp.getRapConvDist())
|
||||
.setNumFase(numFase);
|
||||
.setRapConv(mp.getJtbDistMate().getRapConvDist())
|
||||
.setNumFase(numFase)
|
||||
.setValUnt(mp.getValUnt())
|
||||
.setCodAlis(mp.getCodAlis())
|
||||
.setCodArtFor(mp.getCodArtForn());
|
||||
|
||||
if (visNoteRigaDist) ordR.setNote(mp.getNote());
|
||||
if (visNoteRigaDist) ordR.setNote(mp.getJtbDistMate().getNote());
|
||||
|
||||
|
||||
// Calcolo data consegna materiali per fase di lavoro
|
||||
@@ -952,15 +959,15 @@ public class GeneraOrdLav {
|
||||
sql =
|
||||
Query.format(
|
||||
"SELECT cod_jfas FROM jtb_cicl WHERE cod_prod = %s",
|
||||
mp.getCodProdPri());
|
||||
mp.getJtbDistMate().getCodProdPri());
|
||||
String codJfasSL = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
|
||||
isSameLav = !UtilityString.equalsIgnoreCase(codJfasDist, codJfasSL);
|
||||
if (!isSameLav) {
|
||||
artDist.add(new ExplodeDistDTO().setCodProd(mp.getCodProdPri()).setRoot(false).setNumFase(numFase)
|
||||
artDist.add(new ExplodeDistDTO().setCodProd(mp.getJtbDistMate().getCodProdPri()).setRoot(false).setNumFase(numFase)
|
||||
.setQtaProd(qta)
|
||||
.setUntMis(untMisMate)
|
||||
.setCodJfasRow(codJfasSL)
|
||||
.setRapConv(mp.getRapConvDist())
|
||||
.setRapConv(mp.getJtbDistMate().getRapConvDist())
|
||||
.setDataCons(ordR.getDataCons())
|
||||
);
|
||||
}
|
||||
@@ -1525,6 +1532,8 @@ public class GeneraOrdLav {
|
||||
sql = UtilityDB.addwhereCond(sql, ordT.getPkWhereCond(), true);
|
||||
List<DtbOrdSteps> dtbOrdSteps = UtilityDB.executeSimpleQueryDTO(conn, sql, DtbOrdSteps.class);
|
||||
|
||||
if (dtbOrdSteps != null) {
|
||||
|
||||
dtbOrdSteps.forEach(x -> {
|
||||
x.setQtaProd(x.getQtaProd().multiply(moltiplicatore).setScale(2, RoundingMode.HALF_UP));
|
||||
x.setOperation(OperationType.UPDATE);
|
||||
@@ -1532,6 +1541,7 @@ public class GeneraOrdLav {
|
||||
|
||||
ordT.setDtbOrdSteps(dtbOrdSteps);
|
||||
}
|
||||
}
|
||||
|
||||
sql = "SELECT * FROM dtb_ords";
|
||||
sql = UtilityDB.addwhereCond(sql, ordT.getPkWhereCond(), true);
|
||||
@@ -1607,7 +1617,7 @@ public class GeneraOrdLav {
|
||||
private static HashMap<String, Object> checkOrdLav(Connection conn, boolean checkLockProd, String gestione, LocalDate dataOrd, Integer numOrd, Integer rigaOrd) throws Exception {
|
||||
// Controllo se l'ordine di lavorazione è stato avviato
|
||||
String sql = "select distinct " +
|
||||
" CAST(case when dtb_ordt.flag_evaso_prod = 'E' or dtb_ordt.flag_evaso_forzato = 'S' or ordSteps.prodAvviata <> 0 then 1 else 0 end as bit) as flag_lock, " +
|
||||
" CAST(case when dtb_ordt.flag_evaso_prod = 'E' or dtb_ordt.flag_evaso_forzato = 'S' or iSnULL(ordSteps.prodAvviata,0) <> 0 then 1 else 0 end as bit) as flag_lock, " +
|
||||
" dtb_ordt.data_ord, " +
|
||||
" dtb_ordt.num_ord " +
|
||||
"from (select gestione, data_ord, num_ord " +
|
||||
@@ -1615,11 +1625,14 @@ public class GeneraOrdLav {
|
||||
" where dtb_ordt.gestione_rif = " + UtilityDB.valueToString(gestione) + " AND " +
|
||||
" dtb_ordt.data_ord_rif = " + UtilityDB.valueToString(dataOrd) + " AND " +
|
||||
" dtb_ordt.num_ord_rif = " + UtilityDB.valueToString(numOrd) + " AND " +
|
||||
" dtb_ordt.riga_ord_rif = " + UtilityDB.valueToString(rigaOrd) + ") ordlav, " +
|
||||
" dtb_ordt left outer join dtb_ordr on dtb_ordr.gestione = dtb_ordt.gestione " +
|
||||
" dtb_ordt.riga_ord_rif = " + UtilityDB.valueToString(rigaOrd) + ") ordlav " +
|
||||
" INNER JOIN dtb_ordt on ordLav.gestione = dtb_ordt.gestione and \n" +
|
||||
" ordLav.data_ord = dtb_ordt.data_ord and \n" +
|
||||
" ordLav.num_ord = dtb_ordt.num_ord " +
|
||||
" left outer join dtb_ordr on dtb_ordr.gestione = dtb_ordt.gestione " +
|
||||
" AND dtb_ordr.data_ord = dtb_ordt.data_ord " +
|
||||
" AND dtb_ordr.num_ord = dtb_ordt.num_ord," +
|
||||
" ( select dtb_ordt.gestione, " +
|
||||
" AND dtb_ordr.num_ord = dtb_ordt.num_ord " +
|
||||
" LEFT OUTER JOIN ( select dtb_ordt.gestione, " +
|
||||
" dtb_ordt.data_ord, " +
|
||||
" dtb_ordt.num_ord, " +
|
||||
" sum(case when id_step <> 0 then 1 else 0 end) as prodAvviata " +
|
||||
@@ -1634,11 +1647,7 @@ public class GeneraOrdLav {
|
||||
" dtb_ordt.riga_ord_rif = " + UtilityDB.valueToString(rigaOrd) + " " +
|
||||
" group by dtb_ordt.gestione, " +
|
||||
" dtb_ordt.data_ord, " +
|
||||
" dtb_ordt.num_ord)ordSteps " +
|
||||
"where ordLav.gestione = dtb_ordt.gestione and " +
|
||||
" ordLav.data_ord = dtb_ordt.data_ord and " +
|
||||
" ordLav.num_ord = dtb_ordt.num_ord and " +
|
||||
" dtb_ordt.gestione = ordSteps.gestione and " +
|
||||
" dtb_ordt.num_ord)ordSteps on dtb_ordt.gestione = ordSteps.gestione and " +
|
||||
" dtb_ordt.data_ord = ordSteps.data_ord and " +
|
||||
" dtb_ordt.num_ord = ordSteps.num_ord";
|
||||
|
||||
@@ -1650,6 +1659,7 @@ public class GeneraOrdLav {
|
||||
if (flagLock && checkLockProd) {
|
||||
throw new Exception("La produzione num. " + numOrdLav + " del " + (CommonConstants.DATE_DMY_SLASHED_FORMATTER.format(dataOrdLav)) + " è stata già avviata, non è pertanto possibile apportare modifiche");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Acquisizione fase da testa ordine di lavorazione
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package it.integry.ems_model.business_logic.dto;
|
||||
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
import it.integry.ems_model.entity.JtbDistMate;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
public class DatiMaterialiDTO {
|
||||
@SqlField
|
||||
private JtbDistMate jtbDistMate;
|
||||
|
||||
private BigDecimal valUnt;
|
||||
private String codAlis;
|
||||
private String codArtForn;
|
||||
|
||||
public JtbDistMate getJtbDistMate() {
|
||||
return jtbDistMate;
|
||||
}
|
||||
|
||||
public DatiMaterialiDTO setJtbDistMate(JtbDistMate jtbDistMate) {
|
||||
this.jtbDistMate = jtbDistMate;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getValUnt() {
|
||||
return valUnt;
|
||||
}
|
||||
|
||||
public DatiMaterialiDTO setValUnt(BigDecimal valUnt) {
|
||||
this.valUnt = valUnt;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodAlis() {
|
||||
return codAlis;
|
||||
}
|
||||
|
||||
public DatiMaterialiDTO setCodAlis(String codAlis) {
|
||||
this.codAlis = codAlis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodArtForn() {
|
||||
return codArtForn;
|
||||
}
|
||||
|
||||
public DatiMaterialiDTO setCodArtForn(String codArtForn) {
|
||||
this.codArtForn = codArtForn;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -1,49 +1,55 @@
|
||||
package it.integry.ems_model.entity;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import it.integry.ems_model.annotation.Master;
|
||||
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 org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
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 java.util.Date;
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
import java.math.BigDecimal;
|
||||
import it.integry.ems_model.annotation.PK;
|
||||
import it.integry.ems_model.annotation.Identity;
|
||||
|
||||
@Master
|
||||
@PropertyReactive
|
||||
@Table(DtbOrdLogImport.ENTITY)
|
||||
@JsonTypeName(DtbOrdLogImport.ENTITY)
|
||||
@Master()
|
||||
@PropertyReactive()
|
||||
@Table(value = DtbOrdLogImport.ENTITY)
|
||||
@JsonTypeName(value = DtbOrdLogImport.ENTITY)
|
||||
public class DtbOrdLogImport extends EntityBase {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
public final static String ENTITY = "dtb_ord_log_import";
|
||||
|
||||
private final static Long serialVersionUID = 1L;
|
||||
|
||||
private final static Logger logger = LogManager.getLogger();
|
||||
|
||||
public static final String ENTITY = "dtb_ord_log_import";
|
||||
public DtbOrdLogImport() {
|
||||
super(logger);
|
||||
}
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_import", nullable = false)
|
||||
private LocalDateTime dataImport;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "id_riga", nullable = false)
|
||||
@SqlField(value = "id_riga", nullable = false, defaultObjectValue = "0")
|
||||
private Integer idRiga;
|
||||
|
||||
@SqlField(value = "gestione", maxLength = 1)
|
||||
@SqlField(value = "gestione", maxLength = 1, nullable = true)
|
||||
private String gestione;
|
||||
|
||||
@SqlField(value = "data_ord")
|
||||
@SqlField(value = "data_ord", nullable = true)
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@SqlField(value = "num_ord")
|
||||
@SqlField(value = "num_ord", nullable = true)
|
||||
private Integer numOrd;
|
||||
|
||||
@SqlField(value = "flag_tipo_ord", maxLength = 1)
|
||||
@SqlField(value = "flag_tipo_ord", maxLength = 1, nullable = true)
|
||||
private String flagTipoOrd;
|
||||
|
||||
@SqlField(value = "flag_tipo_log", maxLength = 1, nullable = false)
|
||||
@@ -62,17 +68,18 @@ public class DtbOrdLogImport extends EntityBase {
|
||||
private BigDecimal totQtaOrd;
|
||||
|
||||
@SqlField(value = "tot_qta_omg", nullable = false)
|
||||
private BigDecimal totQuaOmg;
|
||||
private BigDecimal totQtaOmg;
|
||||
|
||||
@SqlField(value = "tot_qta_resi", nullable = false)
|
||||
private BigDecimal totQuaResi;
|
||||
private BigDecimal totQtaResi;
|
||||
|
||||
@SqlField(value = "serie", maxLength = 5)
|
||||
@SqlField(value = "serie", maxLength = 5, nullable = true)
|
||||
private String serie;
|
||||
|
||||
public DtbOrdLogImport() {
|
||||
super(logger);
|
||||
}
|
||||
@PK()
|
||||
@Identity()
|
||||
@SqlField(value = "id", nullable = false)
|
||||
private Long id;
|
||||
|
||||
public LocalDateTime getDataImport() {
|
||||
return dataImport;
|
||||
@@ -173,21 +180,21 @@ public class DtbOrdLogImport extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getTotQuaOmg() {
|
||||
return totQuaOmg;
|
||||
public BigDecimal getTotQtaOmg() {
|
||||
return totQtaOmg;
|
||||
}
|
||||
|
||||
public DtbOrdLogImport setTotQuaOmg(BigDecimal totQuaOmg) {
|
||||
this.totQuaOmg = totQuaOmg;
|
||||
public DtbOrdLogImport setTotQtaOmg(BigDecimal totQtaOmg) {
|
||||
this.totQtaOmg = totQtaOmg;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getTotQuaResi() {
|
||||
return totQuaResi;
|
||||
public BigDecimal getTotQtaResi() {
|
||||
return totQtaResi;
|
||||
}
|
||||
|
||||
public DtbOrdLogImport setTotQuaResi(BigDecimal totQuaResi) {
|
||||
this.totQuaResi = totQuaResi;
|
||||
public DtbOrdLogImport setTotQtaResi(BigDecimal totQtaResi) {
|
||||
this.totQtaResi = totQtaResi;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -199,4 +206,13 @@ public class DtbOrdLogImport extends EntityBase {
|
||||
this.serie = serie;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public DtbOrdLogImport setId(Long id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.rules.completing.dto.UntMisDTO;
|
||||
import it.integry.ems_model.annotation.*;
|
||||
import it.integry.ems_model.base.EquatableEntityInterface;
|
||||
import it.integry.ems_model.business_logic.dto.DatiMaterialiDTO;
|
||||
import it.integry.ems_model.entity._enum.FlagEvaso;
|
||||
import it.integry.ems_model.entity.common.DtbDocOrdR;
|
||||
import it.integry.ems_model.entity.common.DtbOrdCommonR;
|
||||
@@ -348,6 +349,10 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
|
||||
|
||||
private String codJflav;
|
||||
|
||||
private String flagSospesoOrdl;
|
||||
|
||||
private String rifOrdOrdl;
|
||||
|
||||
private MtbAart mtbAart;
|
||||
|
||||
private UntMisDTO untMisDTO;
|
||||
@@ -361,7 +366,7 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
|
||||
@Priority(3)
|
||||
private List<StbActivity> stbActivityList;
|
||||
|
||||
private List<JtbDistMate> distinta;
|
||||
private List<DatiMaterialiDTO> distinta;
|
||||
|
||||
private HashMap<String, Object> datiListino;
|
||||
|
||||
@@ -1360,6 +1365,24 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFlagSospesoOrdl() {
|
||||
return flagSospesoOrdl;
|
||||
}
|
||||
|
||||
public DtbOrdr setFlagSospesoOrdl(String flagSospesoOrdl) {
|
||||
this.flagSospesoOrdl = flagSospesoOrdl;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRifOrdOrdl() {
|
||||
return rifOrdOrdl;
|
||||
}
|
||||
|
||||
public DtbOrdr setRifOrdOrdl(String rifOrdOrdl) {
|
||||
this.rifOrdOrdl = rifOrdOrdl;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MtbAart getMtbAart() {
|
||||
return mtbAart;
|
||||
@@ -1407,11 +1430,11 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<JtbDistMate> getDistinta() {
|
||||
public List<DatiMaterialiDTO> getDistinta() {
|
||||
return distinta;
|
||||
}
|
||||
|
||||
public DtbOrdr setDistinta(List<JtbDistMate> distinta) {
|
||||
public DtbOrdr setDistinta(List<DatiMaterialiDTO> distinta) {
|
||||
this.distinta = distinta;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
package it.integry.ems_model.entity;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
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.Identity;
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
import it.integry.ems_model.annotation.FK;
|
||||
|
||||
@Master()
|
||||
@PropertyReactive()
|
||||
@Table(value = JrlFasePosizioni.ENTITY)
|
||||
@JsonTypeName(value = JrlFasePosizioni.ENTITY)
|
||||
public class JrlFasePosizioni extends EntityBase {
|
||||
|
||||
public final static String ENTITY = "jrl_fase_posizioni";
|
||||
|
||||
private final static Long serialVersionUID = 1L;
|
||||
|
||||
private final static Logger logger = LogManager.getLogger();
|
||||
|
||||
public JrlFasePosizioni() {
|
||||
super(logger);
|
||||
}
|
||||
|
||||
@PK()
|
||||
@Identity()
|
||||
@SqlField(value = "id", nullable = false)
|
||||
private Integer id;
|
||||
|
||||
@SqlField(value = "cod_jfas", maxLength = 5, nullable = false)
|
||||
@FK(tableName = JtbFasi.ENTITY, columnName = "cod_jfas")
|
||||
private String codJfas;
|
||||
|
||||
@SqlField(value = "cod_mdep", maxLength = 5, nullable = false)
|
||||
private String codMdep;
|
||||
|
||||
@SqlField(value = "posizione", maxLength = 40, nullable = false)
|
||||
@FK(tableName = MtbDepoPosizioni.ENTITY, columnName = "posizione")
|
||||
private String posizione;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public JrlFasePosizioni setId(Integer id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodJfas() {
|
||||
return codJfas;
|
||||
}
|
||||
|
||||
public JrlFasePosizioni setCodJfas(String codJfas) {
|
||||
this.codJfas = codJfas;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodMdep() {
|
||||
return codMdep;
|
||||
}
|
||||
|
||||
public JrlFasePosizioni setCodMdep(String codMdep) {
|
||||
this.codMdep = codMdep;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getPosizione() {
|
||||
return posizione;
|
||||
}
|
||||
|
||||
public JrlFasePosizioni setPosizione(String posizione) {
|
||||
this.posizione = posizione;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -138,7 +138,7 @@ public class MtbDepo extends EntityBase {
|
||||
@EntityChild
|
||||
private List<MtbDepoIntercode> mtbDepoIntercode = new ArrayList<>();
|
||||
|
||||
@EntityChild
|
||||
@EntityChild(value = 0)
|
||||
private List<MtbDepoPosizioni> mtbDepoPosizioni = new ArrayList<>();
|
||||
|
||||
@EntityChild
|
||||
@@ -591,4 +591,6 @@ public class MtbDepo extends EntityBase {
|
||||
WtbDepo wtbDepo = new WtbDepo();
|
||||
wtbDepo.deleteAllEntities(connection, this);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Objects;
|
||||
|
||||
@PropertyReactive
|
||||
@Table(MtbDepoPosizioni.ENTITY)
|
||||
@@ -22,7 +23,6 @@ public class MtbDepoPosizioni extends EntityBase {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "cod_mdep", maxLength = 5, nullable = false)
|
||||
private String codMdep;
|
||||
|
||||
@@ -62,6 +62,8 @@ public class MtbDepoPosizioni extends EntityBase {
|
||||
@SqlField(value = "tipo_prelievo")
|
||||
private TipoPrelievo tipoPrelievo;
|
||||
|
||||
private String posIsChanged;
|
||||
|
||||
@Priority(1)
|
||||
private StbPosizioni stbPosizioni;
|
||||
|
||||
@@ -180,6 +182,15 @@ public class MtbDepoPosizioni extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getPosIsChanged() {
|
||||
return posIsChanged;
|
||||
}
|
||||
|
||||
public MtbDepoPosizioni setPosIsChanged(String posIsChanged) {
|
||||
this.posIsChanged = posIsChanged;
|
||||
return this;
|
||||
}
|
||||
|
||||
public StbPosizioni getStbPosizioni() {
|
||||
return stbPosizioni;
|
||||
}
|
||||
@@ -190,10 +201,15 @@ public class MtbDepoPosizioni extends EntityBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void insertChilds() throws Exception {
|
||||
// stbPosizioni.manageWithParentConnection(connection, dataCompleting);
|
||||
//
|
||||
// this.setIdPosizione(stbPosizioni.getId());
|
||||
public boolean equals(Object o) {
|
||||
if (!(o instanceof MtbDepoPosizioni)) return false;
|
||||
MtbDepoPosizioni that = (MtbDepoPosizioni) o;
|
||||
return Objects.equals(getCodMdep(), that.getCodMdep()) && Objects.equals(getPosizione(), that.getPosizione()) && Objects.equals(getDescrizione(), that.getDescrizione()) && Objects.equals(isFlagMonoCollo(), that.isFlagMonoCollo()) && Objects.equals(getPriorita(), that.getPriorita()) && Objects.equals(getFlagSilosLiquidi(), that.getFlagSilosLiquidi()) && Objects.equals(getCapacita(), that.getCapacita()) && Objects.equals(getIdPosizione(), that.getIdPosizione()) && Objects.equals(getTipoMagazAutomatico(), that.getTipoMagazAutomatico()) && Objects.equals(getPostiPallet(), that.getPostiPallet()) && Objects.equals(getCodArea(), that.getCodArea()) && getTipoPrelievo() == that.getTipoPrelievo() && Objects.equals(getPosIsChanged(), that.getPosIsChanged());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(getCodMdep(), getPosizione(), getDescrizione(), isFlagMonoCollo(), getPriorita(), getFlagSilosLiquidi(), getCapacita(), getIdPosizione(), getTipoMagazAutomatico(), getPostiPallet(), getCodArea(), getTipoPrelievo(), getPosIsChanged());
|
||||
}
|
||||
|
||||
public enum TipoPrelievo implements IBaseEnum {
|
||||
|
||||
@@ -92,7 +92,6 @@ public class VtbListData extends EntityBase {
|
||||
@JsonProperty
|
||||
private String descrizione;
|
||||
|
||||
@JsonProperty("cod_divi")
|
||||
private String codDivi;
|
||||
|
||||
private Boolean datiLogistici;
|
||||
|
||||
@@ -750,10 +750,9 @@ public class UtilityString {
|
||||
}
|
||||
|
||||
public static boolean isEmail(String email) {
|
||||
String regex = "^(.+)@(.+)$";
|
||||
String regex = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$";
|
||||
Pattern pattern = Pattern.compile(regex);
|
||||
Matcher matcher = pattern.matcher(email);
|
||||
return matcher.matches();
|
||||
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import it.integry.ems.rules.util.*
|
||||
import it.integry.ems.rules.completing.*
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems_model.utility.UtilityDB
|
||||
import it.integry.ems_model.base.EntityInterface
|
||||
|
||||
global Connection conn
|
||||
global String username
|
||||
@@ -138,7 +139,7 @@ then
|
||||
modify($entity){
|
||||
setDtbOrdtProd(dtbOrdtProd)
|
||||
}
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -445,3 +445,14 @@ when
|
||||
then
|
||||
throw new CheckConstraintException("Non è possibile cancellare una distinta già registrata.");
|
||||
end
|
||||
|
||||
rule "checkEmailAnag"
|
||||
no-loop
|
||||
when
|
||||
eval(checkRulesEnabled)
|
||||
$vtbCliePersRif : VtbCliePersRif (eMail !=null && operation != OperationType.DELETE )
|
||||
eval(!UtilityString.isEmail($vtbCliePersRif.geteMail()))
|
||||
then
|
||||
throw new CheckConstraintException(String.format("Attenzione! Email non valida per la persona di riferimento %s.",
|
||||
$vtbCliePersRif.getPersonaRif()));
|
||||
end
|
||||
|
||||
@@ -349,7 +349,7 @@ rule "completePesoMtbColr"
|
||||
no-loop
|
||||
when
|
||||
eval(completeRulesEnabled)
|
||||
$entity: MtbColr((pesoNettoKg == null || pesoLordoKg == null) && qtaCol != null && numCnf != null && qtaCnf != null && operation != OperationType.DELETE)
|
||||
$entity: MtbColr(qtaCol != null && numCnf != null && qtaCnf != null && operation != OperationType.DELETE)
|
||||
then
|
||||
HashMap<String, Object> dati = PackagesRules.calcPeso(conn, $entity);
|
||||
modify ( $entity ) {
|
||||
|
||||
@@ -65,6 +65,9 @@ then
|
||||
DocOrdCalTotaliRules.calcTotali(conn, $testata);
|
||||
OrderRules.sospendiOrdine(conn, $testata);
|
||||
}
|
||||
if ($testata.getGestione().equalsIgnoreCase("L") && $testata.getGestioneRif() != null && $testata.getGestioneRif().equalsIgnoreCase("A") && $testata.getDtbOrds().size() > 0) {
|
||||
OrderRules.completeImportoRigaOrdProd(conn, $testata);
|
||||
}
|
||||
end
|
||||
|
||||
rule "completeCalcTotaliDoc"
|
||||
|
||||
@@ -86,23 +86,6 @@ then
|
||||
modify($entity){ setCodDivi(codDivi)}
|
||||
end
|
||||
|
||||
//SCONTRINI ROW
|
||||
/*rule "completeUntMisNtbDocr"
|
||||
no-loop
|
||||
when
|
||||
eval(completeRulesEnabled)
|
||||
$entity : NtbDocr(untMis == null && codMart != null && codMdep !=null && codVlis != null )
|
||||
then
|
||||
String sql =
|
||||
"SELECT unt_mis_ven " +
|
||||
" FROM dbo.getListinoVendita('" + new SimpleDateFormat("yyyy/MM/dd").format($entity.getDataDoc()) + "', " +
|
||||
"'" + $entity.getCodVlis() + "', "+
|
||||
"'" + $entity.getCodMart() + "') ";
|
||||
String untMis = (String) QueryRules.getSingleValue(conn, sql);
|
||||
|
||||
modify ( $entity ) { setUntMis(untMis) }
|
||||
end*/
|
||||
|
||||
rule "completeDescrizioneNtbDocr"
|
||||
no-loop
|
||||
when
|
||||
|
||||
@@ -501,6 +501,6 @@ public class MovimentiContabiliDocfinanceDTO {
|
||||
.setCodCcau(mov.getCausaleCoge())
|
||||
.setDescrizioneCaus(String.valueOf(mov.hashCode()))
|
||||
.setNumDoc(Integer.valueOf(mov.getMovimento()))
|
||||
.setRifImport(mov.getAnnoCoge() + "_" + mov.getNumeroRitornoCoge());
|
||||
.setRifImport(mov.getAnnoCoge() + "_" + mov.getMovimento() + "_" + mov.getNumeroRitornoCoge());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.service.MailService;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.*;
|
||||
@@ -596,23 +597,22 @@ public class ContabilImportService {
|
||||
.setFieldsSplitChar("");
|
||||
List<MovimentiContabiliDocfinanceDTO> deserialize = txtMapper.deserialize(lines, MovimentiContabiliDocfinanceDTO.class);
|
||||
|
||||
|
||||
String sql =
|
||||
Query.format(
|
||||
"SELECT CAST(count(*) as bit ) FROM ctb_movt WHERE rif_import = %s",
|
||||
deserialize.get(0).getAnnoCoge() + "_" + deserialize.get(0).getNumeroRitornoCoge()
|
||||
);
|
||||
|
||||
|
||||
if (UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql))
|
||||
throw new Exception("Impossibile importare questo file, movimenti già importati");
|
||||
|
||||
|
||||
Map<CtbMovt, List<MovimentiContabiliDocfinanceDTO>> movimenti = deserialize.stream().collect(Collectors.groupingBy(MovimentiContabiliDocfinanceDTO::fromMovimenti));
|
||||
|
||||
List<CtbMovt> ctbMovtList = new ArrayList<>();
|
||||
for (CtbMovt ctbMovt : movimenti.keySet()) {
|
||||
|
||||
String sql =
|
||||
Query.format(
|
||||
"SELECT CAST(count(*) as bit ) FROM ctb_movt WHERE rif_import = %s",
|
||||
ctbMovt.getRifImport()
|
||||
);
|
||||
|
||||
boolean existsMov =UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
if (existsMov){
|
||||
//throw new Exception("Impossibile importare questo file, movimenti già importati");
|
||||
continue;
|
||||
}
|
||||
|
||||
String codCcau = ctbMovt.getCodCcau();
|
||||
sql = Query.format("SELECT CAST(COUNT(*) AS BIT) FROM ctb_caus WHERE cod_ccau = %s", codCcau);
|
||||
@@ -670,10 +670,9 @@ public class ContabilImportService {
|
||||
sql = Query.format(
|
||||
"SELECT *\n" +
|
||||
"FROM ctb_scad\n" +
|
||||
"WHERE (intercode = %s\n" +
|
||||
" OR dbo.f_getChiaveCogeDocFinace(anno_part, ser_doc, num_doc, id_riga, tipo_anag) = %s)" +
|
||||
"WHERE isnull(intercode,dbo.f_getChiaveCogeDocFinace(anno_part, ser_doc, num_doc, id_riga, tipo_anag)) = %s " +
|
||||
" AND cod_anag = %s AND tipo_anag = %s AND data_pag IS NULL"
|
||||
, chiaveCoge, chiaveCoge, codAnag, tipoAnag
|
||||
, chiaveCoge, codAnag, tipoAnag
|
||||
);
|
||||
List<CtbScad> ctbScadList = UtilityDB.executeSimpleQueryDTO(conn, sql, CtbScad.class);
|
||||
if (ctbScadList == null || ctbScadList.isEmpty()) {
|
||||
@@ -701,14 +700,23 @@ public class ContabilImportService {
|
||||
if (!ctbMovt.getCtbMovr().isEmpty() && !existsAnomalia) {
|
||||
ctbMovt.setDescrizioneCaus(null)
|
||||
.setOperation(OperationType.INSERT);
|
||||
//ctbMovtList.add(ctbMovt);
|
||||
if (listAnomalie.isEmpty() || listAnomalie.stream().noneMatch(AnomalieDTO::isError)) {
|
||||
entityProcessor.processEntity(ctbMovt, false, multiDBTransactionManager);
|
||||
if (ctbMovt.getException() == null) {
|
||||
ctbMovtList.add(ctbMovt);
|
||||
} else {
|
||||
throw new Exception(ctbMovt.getException());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (listAnomalie.isEmpty() || listAnomalie.stream().noneMatch(AnomalieDTO::isError)) {
|
||||
return entityProcessor.processEntityList(ctbMovtList, true);
|
||||
}
|
||||
return new ArrayList<>();
|
||||
// if (listAnomalie.isEmpty() || listAnomalie.stream().noneMatch(AnomalieDTO::isError)) {
|
||||
// return entityProcessor.processEntityList(ctbMovtList, true);
|
||||
// }
|
||||
return UtilityEntity.toCustomEntity(ctbMovtList);
|
||||
//return new ArrayList<>();
|
||||
}
|
||||
|
||||
public List<EntityBase> importTassiDiCambio(String type, String format) throws Exception {
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package it.integry.ems.contabil.controller;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.contabil.service.MovimentiContabiliServices;
|
||||
import it.integry.ems.contabil.service.MovimentiContabiliService;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems_model.entity.CtbMovt;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
@@ -15,7 +16,9 @@ import javax.servlet.http.HttpServletRequest;
|
||||
@RequestMapping("movimenti-contabili")
|
||||
public class MovimentiContabiliController {
|
||||
@Autowired
|
||||
private MovimentiContabiliServices movimentiContabiliServices;
|
||||
private MovimentiContabiliService movimentiContabiliServices;
|
||||
@Autowired
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
@PostMapping(value = "save")
|
||||
public @ResponseBody
|
||||
@@ -23,7 +26,7 @@ public class MovimentiContabiliController {
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestBody CtbMovt ctbMovt) throws Exception {
|
||||
|
||||
return ServiceRestResponse.createPositiveResponse(movimentiContabiliServices.save(ctbMovt));
|
||||
return ServiceRestResponse.createPositiveResponse(movimentiContabiliServices.save(multiDBTransactionManager, ctbMovt));
|
||||
}
|
||||
|
||||
@PostMapping(value = "setTipoBene")
|
||||
@@ -33,7 +36,15 @@ public class MovimentiContabiliController {
|
||||
@RequestParam Integer riga,
|
||||
@RequestParam (required = false) String tipoBene) throws Exception {
|
||||
|
||||
return ServiceRestResponse.createPositiveResponse(movimentiContabiliServices.setTipoBene(numCmov, riga, tipoBene));
|
||||
return ServiceRestResponse.createPositiveResponse(movimentiContabiliServices.setTipoBene(multiDBTransactionManager,numCmov, riga, tipoBene));
|
||||
}
|
||||
|
||||
@PostMapping(value = "delete")
|
||||
public @ResponseBody
|
||||
ServiceRestResponse delete(HttpServletRequest request,
|
||||
@RequestParam String whereCond) throws Exception {
|
||||
|
||||
return ServiceRestResponse.createPositiveResponse(movimentiContabiliServices.delete(multiDBTransactionManager,whereCond));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
package it.integry.ems.contabil.service;
|
||||
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.base.EntityInterface;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -17,19 +13,15 @@ import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Scope("request")
|
||||
public class MovimentiContabiliServices {
|
||||
|
||||
public class MovimentiContabiliService {
|
||||
@Autowired
|
||||
private EntityProcessor entityProcessor;
|
||||
@Autowired
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
public CtbMovt save(CtbMovt ctbMovt) throws Exception {
|
||||
public CtbMovt save(MultiDBTransactionManager multiDBTransactionManager, CtbMovt ctbMovt) throws Exception {
|
||||
List<EntityBase> entitiesToSave = new ArrayList<>();
|
||||
|
||||
if (ctbMovt.getNumCmov() != null && ctbMovt.getOperation() != OperationType.DELETE) {
|
||||
@@ -68,14 +60,14 @@ public class MovimentiContabiliServices {
|
||||
entitiesToSave = Collections.singletonList(ctbMovt);
|
||||
}
|
||||
|
||||
List<EntityBase> entityRet = entityProcessor.processEntityList(entitiesToSave, true);
|
||||
List<EntityBase> entityRet = entityProcessor.processEntityList(entitiesToSave, multiDBTransactionManager, true);
|
||||
UtilityEntity.throwEntitiesException(entityRet);
|
||||
|
||||
CtbMovt ctbMovtRet = entityRet.stream().filter(x->x instanceof CtbMovt).map(x->(CtbMovt)x).findFirst().orElse(null);
|
||||
return ctbMovtRet;
|
||||
}
|
||||
|
||||
public CtbMovt setTipoBene(Integer numCmov, Integer riga, String tipoBene) throws Exception {
|
||||
public CtbMovt setTipoBene(MultiDBTransactionManager multiDBTransactionManager, Integer numCmov, Integer riga, String tipoBene) throws Exception {
|
||||
CtbMovt ctbMovt = new CtbMovt()
|
||||
.setNumCmov(numCmov);
|
||||
|
||||
@@ -87,6 +79,25 @@ public class MovimentiContabiliServices {
|
||||
ctbMovi.setOperation(OperationType.UPDATE);
|
||||
ctbMovt.getCtbMovi().add(ctbMovi);
|
||||
|
||||
return save(ctbMovt);
|
||||
return save(multiDBTransactionManager, ctbMovt);
|
||||
}
|
||||
|
||||
public List<CtbMovt> delete(MultiDBTransactionManager multiDBTransactionManager, String whereCond) throws Exception {
|
||||
String sql = "SELECT num_cmov " +
|
||||
" FROM " + CtbMovt.ENTITY +
|
||||
" WHERE " + whereCond;
|
||||
|
||||
List<CtbMovt> ctbMovts = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, CtbMovt.class);
|
||||
|
||||
if ( ctbMovts == null || ctbMovts.isEmpty()) {
|
||||
throw new Exception("Impossibile nessun movimento da cancellare.");
|
||||
}
|
||||
|
||||
ctbMovts.stream().forEach(x->{x.setOperation(OperationType.DELETE);});
|
||||
|
||||
List<EntityBase> entityBaseList = entityProcessor.processEntityList(ctbMovts, multiDBTransactionManager, false);
|
||||
|
||||
UtilityEntity.throwEntitiesException(entityBaseList);
|
||||
return ctbMovts;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package it.integry.ems.logistic.controller;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.logistic.service.DepositiService;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems_model.entity.MtbDepo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
@RestController
|
||||
@Scope("request")
|
||||
@RequestMapping("depositi")
|
||||
public class DepositiController {
|
||||
@Autowired
|
||||
private DepositiService depositiService;
|
||||
@Autowired
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
@PostMapping(value = "save")
|
||||
public @ResponseBody
|
||||
ServiceRestResponse save(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestBody MtbDepo mtbDepo) throws Exception {
|
||||
|
||||
return ServiceRestResponse.createPositiveResponse(depositiService.save(multiDBTransactionManager, mtbDepo));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package it.integry.ems.logistic.service;
|
||||
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class DepositiService {
|
||||
@Autowired
|
||||
private EntityProcessor entityProcessor;
|
||||
|
||||
public MtbDepo save(MultiDBTransactionManager multiDBTransactionManager, MtbDepo mtbDepo) throws Exception {
|
||||
List<EntityBase> entityToSave = new ArrayList<>();
|
||||
|
||||
mtbDepo.getMtbDepoPosizioni().stream()
|
||||
.forEach(x->x.setOperation(OperationType.INSERT_OR_UPDATE));
|
||||
|
||||
List<String> posizioni =
|
||||
mtbDepo.
|
||||
getMtbDepoPosizioni().stream().filter(x -> x.getPosIsChanged() != null && x.getPosIsChanged().equalsIgnoreCase("S"))
|
||||
.map(MtbDepoPosizioni::getPosizione)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (!posizioni.isEmpty()) {
|
||||
|
||||
String sql = String.format(
|
||||
"SELECT * FROM jrl_fase_posizioni WHERE posizione IN (%s)",
|
||||
UtilityDB.listValueToString(posizioni));
|
||||
|
||||
List<JrlFasePosizioni> jrlFasePosizionis = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, JrlFasePosizioni.class);
|
||||
|
||||
if (jrlFasePosizionis != null) {
|
||||
jrlFasePosizionis.forEach(x ->
|
||||
x
|
||||
.setCodMdep(mtbDepo.getCodMdep())
|
||||
.setOperation(OperationType.UPDATE));
|
||||
entityToSave.addAll(jrlFasePosizionis);
|
||||
}
|
||||
sql = String.format(
|
||||
"SELECT cod_cmac, cod_mdep, posizione FROM ctb_amac WHERE posizione IN (%s)",
|
||||
UtilityDB.listValueToString(posizioni));
|
||||
|
||||
List<CtbAmac> ctbAmacs = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, CtbAmac.class);
|
||||
|
||||
if (ctbAmacs != null) {
|
||||
ctbAmacs.forEach(x ->
|
||||
x
|
||||
.setCodMdep(mtbDepo.getCodMdep())
|
||||
.setOperation(OperationType.UPDATE));
|
||||
entityToSave.addAll(ctbAmacs);
|
||||
}
|
||||
}
|
||||
|
||||
List<String> aree = mtbDepo.getMtbDepoArea().stream().map(x -> x.getCodArea()).collect(Collectors.toList());
|
||||
List<MtbDepoArea> mtbDepoAreas = mtbDepo.getMtbDepoPosizioni()
|
||||
.stream()
|
||||
.filter(x -> x.getCodArea() != null && !aree.contains(x.getCodArea()))
|
||||
.map(x -> {
|
||||
MtbDepoArea area =
|
||||
new MtbDepoArea().setCodMdep(x.getCodMdep())
|
||||
.setCodArea(x.getCodArea());
|
||||
area.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
return area;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
|
||||
if (!mtbDepoAreas.isEmpty()) {
|
||||
mtbDepo.getMtbDepoArea().addAll(mtbDepoAreas);
|
||||
}
|
||||
entityToSave.add(mtbDepo);
|
||||
|
||||
List<EntityBase> entityRet = entityProcessor.processEntityList(entityToSave, multiDBTransactionManager, true);
|
||||
UtilityEntity.throwEntitiesException(entityRet);
|
||||
|
||||
MtbDepo mtbDepoRet = entityRet.stream().filter(x -> x instanceof MtbDepo).map(x -> (MtbDepo) x).findFirst().orElse(null);
|
||||
return mtbDepoRet;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package it.integry.ems.order.Import.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import it.integry.ems_model.annotation.EntityChild;
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
import it.integry.ems_model.entity.WdtbOrdt;
|
||||
|
||||
public class ImporOrdiniWebDTO {
|
||||
@SqlField
|
||||
private WdtbOrdt wdtbOrdt;
|
||||
|
||||
@SqlField(value = "flag_td")
|
||||
private String flagTd;
|
||||
|
||||
@SqlField(value = "cod_vlis_clie")
|
||||
private String codVlisClie;
|
||||
|
||||
@SqlField(value = "cod_vlis_dest")
|
||||
private String codVlisDest;
|
||||
|
||||
@SqlField(value = "new_clie")
|
||||
private Boolean newClie;
|
||||
|
||||
public WdtbOrdt getWdtbOrdt() {
|
||||
return wdtbOrdt;
|
||||
}
|
||||
|
||||
public ImporOrdiniWebDTO setWdtbOrdt(WdtbOrdt wdtbOrdt) {
|
||||
this.wdtbOrdt = wdtbOrdt;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFlagTd() {
|
||||
return flagTd==null?"N":flagTd;
|
||||
}
|
||||
|
||||
public ImporOrdiniWebDTO setFlagTd(String flagTd) {
|
||||
this.flagTd = flagTd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVlisClie() {
|
||||
return codVlisClie;
|
||||
}
|
||||
|
||||
public ImporOrdiniWebDTO setCodVlisClie(String codVlisClie) {
|
||||
this.codVlisClie = codVlisClie;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVlisDest() {
|
||||
return codVlisDest;
|
||||
}
|
||||
|
||||
public ImporOrdiniWebDTO setCodVlisDest(String codVlisDest) {
|
||||
this.codVlisDest = codVlisDest;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Boolean getNewClie() {
|
||||
return newClie;
|
||||
}
|
||||
|
||||
public ImporOrdiniWebDTO setNewClie(Boolean newClie) {
|
||||
this.newClie = newClie;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package it.integry.ems.order.Import.dto;
|
||||
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
import it.integry.ems_model.entity.WdtbOrdr;
|
||||
import it.integry.ems_model.entity.WdtbOrdt;
|
||||
|
||||
public class ImportOrdiniWebRowDTO {
|
||||
@SqlField
|
||||
private WdtbOrdr wdtbOrdr;
|
||||
|
||||
@SqlField(value = "flag_stato_art")
|
||||
private String flagStatoArt;
|
||||
|
||||
public WdtbOrdr getWdtbOrdr() {
|
||||
return wdtbOrdr;
|
||||
}
|
||||
|
||||
public ImportOrdiniWebRowDTO setWdtbOrdr(WdtbOrdr wdtbOrdr) {
|
||||
this.wdtbOrdr = wdtbOrdr;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFlagStatoArt() {
|
||||
return flagStatoArt;
|
||||
}
|
||||
|
||||
public ImportOrdiniWebRowDTO setFlagStatoArt(String flagStatoArt) {
|
||||
this.flagStatoArt = flagStatoArt;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -43,6 +43,7 @@ public class UtenteDTO implements Serializable {
|
||||
private String recTelObbligatorio;
|
||||
@SqlField
|
||||
private String nomeNegozioRequired;
|
||||
private Boolean rangeTaglieSoloConQta;
|
||||
|
||||
public UtenteDTO(String user_name, String full_name, String user_code,
|
||||
String cod_vlis_newclie, String cod_anag_newclie, BigDecimal sc1, BigDecimal sc2, String cod_paga) {
|
||||
@@ -196,4 +197,13 @@ public class UtenteDTO implements Serializable {
|
||||
public void setNomeNegozioRequired(String nomeNegozioRequired) {
|
||||
this.nomeNegozioRequired = nomeNegozioRequired;
|
||||
}
|
||||
|
||||
public Boolean getRangeTaglieSoloConQta() {
|
||||
return rangeTaglieSoloConQta;
|
||||
}
|
||||
|
||||
public UtenteDTO setRangeTaglieSoloConQta(Boolean rangeTaglieSoloConQta) {
|
||||
this.rangeTaglieSoloConQta = rangeTaglieSoloConQta;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -122,6 +122,7 @@ public class OrdikidsService {
|
||||
utente.setMoltipl_barcodemode(UtilityHashMap.getValueIfExists(setupSection, "MOLTIP_BARCODEMODE", "S"));
|
||||
utente.setVend_asso_obbligatorio(UtilityHashMap.getValueIfExists(setupSection, "VEND_ASSO_OBBLIGATORIO"));
|
||||
utente.setRecTelObbligatorio(UtilityHashMap.getValueIfExists(setupSection, "REC_TEL_OBBLIGATORIO"));
|
||||
utente.setRangeTaglieSoloConQta(((String) UtilityHashMap.getValueIfExists(setupSection, "RANGE_TAGLIE_SOLO_CON_QTA")).equalsIgnoreCase("S"));
|
||||
|
||||
sql = "SELECT gtb_paga.cod_paga,\n" +
|
||||
" gtb_paga.descrizione,\n" +
|
||||
|
||||
@@ -44,6 +44,7 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.business_logic.dto.DatiMaterialiDTO;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.*;
|
||||
@@ -2321,9 +2322,10 @@ public class MesProductionServiceV2 {
|
||||
|
||||
jtbDistMate.setOperation(OperationType.INSERT);
|
||||
|
||||
DatiMaterialiDTO datiMaterialiDTO = new DatiMaterialiDTO().setJtbDistMate(jtbDistMate);
|
||||
ordLav
|
||||
.getDistinta()
|
||||
.add(jtbDistMate);
|
||||
.add(datiMaterialiDTO);
|
||||
}
|
||||
|
||||
entityProcessor.processEntity(ordProd, true, multiDBTransactionManager);
|
||||
@@ -2400,6 +2402,13 @@ public class MesProductionServiceV2 {
|
||||
}
|
||||
//</editor-fold>
|
||||
|
||||
List<DatiMaterialiDTO> distinta = null;
|
||||
|
||||
if (!UtilityList.isNullOrEmpty(dto.getListaMateriali())) {
|
||||
distinta = dto.getListaMateriali().stream()
|
||||
.map(jtbDistMate -> new DatiMaterialiDTO().setJtbDistMate(jtbDistMate))
|
||||
.collect(java.util.stream.Collectors.toList());
|
||||
}
|
||||
|
||||
DtbOrdr ordLav = new DtbOrdr()
|
||||
.setCodMart(dto.getCodMart())
|
||||
@@ -2412,7 +2421,7 @@ public class MesProductionServiceV2 {
|
||||
.setDataInizProd(dataProd)
|
||||
.setCodTcolUl(dto.getCodTcolUl())
|
||||
.setNote(dto.getAnnotazioni())
|
||||
.setDistinta(dto.getListaMateriali());
|
||||
.setDistinta(distinta);
|
||||
|
||||
ordLav.setOperation(OperationType.INSERT);
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package it.integry.ems.retail.controller;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.product.controller.ListiniVenditaController;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems.response.StatusResponse;
|
||||
import it.integry.ems.retail.service.ScontriniService;
|
||||
import it.integry.ems.status.ServiceChecker;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@Scope(value = "request")
|
||||
@RequestMapping("scontrini")
|
||||
public class ScontriniController {
|
||||
@Autowired
|
||||
private ServiceChecker serviceChecker;
|
||||
@Autowired
|
||||
private ScontriniService scontriniService;
|
||||
|
||||
@RequestMapping(value = "status", method = RequestMethod.GET)
|
||||
public @ResponseBody
|
||||
List<StatusResponse> status(HttpServletRequest request) {
|
||||
|
||||
Class<?> clazz = ListiniVenditaController.class;
|
||||
Method[] methods = clazz.getDeclaredMethods();
|
||||
return serviceChecker.getServiceStatus(methods, clazz);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "delete", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
ServiceRestResponse delete(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestParam("whereCond") String whereCond,
|
||||
@RequestParam (required = false) boolean deleteAll) throws Exception {
|
||||
return ServiceRestResponse.createEntityPositiveResponse(scontriniService.delete(whereCond, deleteAll));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3,8 +3,10 @@ package it.integry.ems.retail.service;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.NtbDoct;
|
||||
import it.integry.ems_model.entity.NtbDoctChk;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
@@ -43,4 +45,27 @@ public class ScontriniService {
|
||||
|
||||
return entityList;
|
||||
}
|
||||
|
||||
public List<NtbDoct> delete(String whereCond, boolean deleteAll) throws Exception {
|
||||
String sql =
|
||||
"SELECT cod_mdep, cod_cassa, data_doc " +
|
||||
" FROM ntb_doct ";
|
||||
sql = UtilityDB.addwhereCond(sql, whereCond, false);
|
||||
if (!deleteAll) {
|
||||
sql += "AND ntb_doct.data_doc_val is null";
|
||||
}
|
||||
|
||||
List<NtbDoct> ntbDocts = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, NtbDoct.class);
|
||||
|
||||
if (ntbDocts == null || ntbDocts.isEmpty()) {
|
||||
throw new Exception("Non ci sono scontrini da eliminare");
|
||||
}
|
||||
|
||||
ntbDocts.stream().forEach(ntbDoct -> {ntbDoct.setOperation(OperationType.DELETE);});
|
||||
|
||||
UtilityEntity.throwEntitiesException(entityProcessor.processEntityList(ntbDocts, false));
|
||||
|
||||
return ntbDocts;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -675,6 +675,9 @@ public class SystemController {
|
||||
activity.setActivityTypeId("TICKET");
|
||||
}
|
||||
|
||||
if (activity.getParentActivityId() == null)
|
||||
throw new Exception( "Attenzione, 'parentActivityId' obbligatorio");
|
||||
|
||||
activity.setActivityDescription(HtmlUtils.htmlUnescape(activity.getActivityDescription()));
|
||||
|
||||
String notificationType;
|
||||
|
||||
@@ -1916,7 +1916,7 @@ public class SystemService {
|
||||
" ELSE 0 END AS status,\n" +
|
||||
" CAST(gg_scoperto AS INT) AS gg_scoperto,\n" +
|
||||
" data_scad_license,\n" +
|
||||
" CAST(classe_merito AS INT) AS classe_merito\n" +
|
||||
" IIF(CAST(classe_merito AS INT) > 0, 0, CAST(classe_merito AS INT)) AS classe_merito\n" +
|
||||
"FROM (SELECT DISTINCT crl_part_iva_cod_fatt.part_iva,\n" +
|
||||
" ISNULL(max(DATEDIFF(day, ctb_scad.data_scad, GETDATE()))\n" +
|
||||
" OVER (PARTITION BY crl_part_iva_cod_fatt.cod_anag_fatt),\n" +
|
||||
|
||||
Reference in New Issue
Block a user