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 {
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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,12 +1532,15 @@ public class GeneraOrdLav {
|
||||
sql = UtilityDB.addwhereCond(sql, ordT.getPkWhereCond(), true);
|
||||
List<DtbOrdSteps> dtbOrdSteps = UtilityDB.executeSimpleQueryDTO(conn, sql, DtbOrdSteps.class);
|
||||
|
||||
dtbOrdSteps.forEach(x -> {
|
||||
x.setQtaProd(x.getQtaProd().multiply(moltiplicatore).setScale(2, RoundingMode.HALF_UP));
|
||||
x.setOperation(OperationType.UPDATE);
|
||||
});
|
||||
if (dtbOrdSteps != null) {
|
||||
|
||||
ordT.setDtbOrdSteps(dtbOrdSteps);
|
||||
dtbOrdSteps.forEach(x -> {
|
||||
x.setQtaProd(x.getQtaProd().multiply(moltiplicatore).setScale(2, RoundingMode.HALF_UP));
|
||||
x.setOperation(OperationType.UPDATE);
|
||||
});
|
||||
|
||||
ordT.setDtbOrdSteps(dtbOrdSteps);
|
||||
}
|
||||
}
|
||||
|
||||
sql = "SELECT * FROM dtb_ords";
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -444,4 +444,15 @@ when
|
||||
$vtbDist : VtbDist(numCmov !=null && operation == OperationType.DELETE )
|
||||
then
|
||||
throw new CheckConstraintException("Non è possibile cancellare una distinta già registrata.");
|
||||
end
|
||||
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);
|
||||
//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