Merge branch 'develop' 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-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmService.java
This commit is contained in:
@@ -74,6 +74,7 @@ public class CsvMapper<T> {
|
|||||||
public List<T> deserialize(String csv, Class<T> dtoClass, String splitChar) throws Exception {
|
public List<T> deserialize(String csv, Class<T> dtoClass, String splitChar) throws Exception {
|
||||||
List<T> outputList = null;
|
List<T> outputList = null;
|
||||||
String[] headers = null;
|
String[] headers = null;
|
||||||
|
Integer rows = 0;
|
||||||
|
|
||||||
String delimiter = UtilityString.identifyLineDelimiter(csv);
|
String delimiter = UtilityString.identifyLineDelimiter(csv);
|
||||||
ByteBuffer byteBuffer = ByteBuffer.wrap(csv.getBytes());
|
ByteBuffer byteBuffer = ByteBuffer.wrap(csv.getBytes());
|
||||||
@@ -83,6 +84,7 @@ public class CsvMapper<T> {
|
|||||||
for (int i = 0; i < byteBuffer.capacity(); i++) {
|
for (int i = 0; i < byteBuffer.capacity(); i++) {
|
||||||
line.append((char) byteBuffer.get());
|
line.append((char) byteBuffer.get());
|
||||||
if (line.toString().endsWith(delimiter)) {
|
if (line.toString().endsWith(delimiter)) {
|
||||||
|
rows++;
|
||||||
if (firstLine) {
|
if (firstLine) {
|
||||||
firstLine = false;
|
firstLine = false;
|
||||||
headers = line.toString().replace(delimiter, "").split(splitChar);
|
headers = line.toString().replace(delimiter, "").split(splitChar);
|
||||||
@@ -105,37 +107,44 @@ public class CsvMapper<T> {
|
|||||||
line = new StringBuilder();
|
line = new StringBuilder();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String[] datas = line.toString().replace(delimiter, "").split(splitChar);
|
|
||||||
T bean = (T) dtoClass.newInstance();
|
|
||||||
for (int j = 0; j < datas.length; j++) {
|
|
||||||
String header = headers[j].trim();
|
|
||||||
if (header.compareTo("") != 0) {
|
|
||||||
Field field = map.get(header.toLowerCase());
|
|
||||||
|
|
||||||
if (field != null) {
|
try {
|
||||||
|
String[] datas = line.toString().replace(delimiter, "").split(splitChar);
|
||||||
|
T bean = (T) dtoClass.newInstance();
|
||||||
|
for (int j = 0; j < datas.length; j++) {
|
||||||
|
String header = headers[j].trim();
|
||||||
|
if (header.compareTo("") != 0) {
|
||||||
|
Field field = map.get(header.toLowerCase());
|
||||||
|
|
||||||
DtoField dtoField = field.getAnnotation(DtoField.class);
|
if (field != null) {
|
||||||
|
|
||||||
field.setAccessible(true);
|
DtoField dtoField = field.getAnnotation(DtoField.class);
|
||||||
|
|
||||||
|
field.setAccessible(true);
|
||||||
|
|
||||||
|
Object columnValue;
|
||||||
|
if (field.getGenericType() != String.class && UtilityString.isNullOrEmpty(datas[j].trim())) {
|
||||||
|
columnValue = null;
|
||||||
|
} else {
|
||||||
|
columnValue = datas[j].trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
Object o = SqlFieldHolder.applyConvert(columnValue, field.getGenericType());
|
||||||
|
field.set(bean, o);
|
||||||
|
|
||||||
Object columnValue;
|
|
||||||
if (field.getGenericType() != String.class && UtilityString.isNullOrEmpty(datas[j].trim())) {
|
|
||||||
columnValue = null;
|
|
||||||
} else {
|
|
||||||
columnValue = datas[j].trim();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Object o = SqlFieldHolder.applyConvert(columnValue, field.getGenericType());
|
|
||||||
field.set(bean, o);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
line = new StringBuilder();
|
||||||
|
if (outputList == null) {
|
||||||
|
outputList = new ArrayList<T>();
|
||||||
|
}
|
||||||
|
outputList.add(bean);
|
||||||
|
|
||||||
|
} catch(Exception e) {
|
||||||
|
throw new Exception("ERRORE DI SINTASSI SU RIGA " + rows);
|
||||||
}
|
}
|
||||||
line = new StringBuilder();
|
|
||||||
if (outputList == null) {
|
|
||||||
outputList = new ArrayList<T>();
|
|
||||||
}
|
|
||||||
outputList.add(bean);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
byteBuffer.clear();
|
byteBuffer.clear();
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ public enum IntegryCustomer {
|
|||||||
IntegryCustomerDB.Auricchio_Ind05,
|
IntegryCustomerDB.Auricchio_Ind05,
|
||||||
IntegryCustomerDB.Auricchio_AuricchioSons),
|
IntegryCustomerDB.Auricchio_AuricchioSons),
|
||||||
Biolevante(IntegryCustomerDB.Biolevante_Biolevante,
|
Biolevante(IntegryCustomerDB.Biolevante_Biolevante,
|
||||||
IntegryCustomerDB.Biolevante_BiolevanteStorico),
|
IntegryCustomerDB.Biolevante_BiolevanteStorico,
|
||||||
|
IntegryCustomerDB.Biolevante_TenutaSanMartino),
|
||||||
Carelli(IntegryCustomerDB.Carelli_Carelli,
|
Carelli(IntegryCustomerDB.Carelli_Carelli,
|
||||||
IntegryCustomerDB.Carelli_GestFood,
|
IntegryCustomerDB.Carelli_GestFood,
|
||||||
IntegryCustomerDB.Carelli_Chiuso,
|
IntegryCustomerDB.Carelli_Chiuso,
|
||||||
@@ -68,7 +69,8 @@ public enum IntegryCustomer {
|
|||||||
Frudis(IntegryCustomerDB.Frudis_Frudis),
|
Frudis(IntegryCustomerDB.Frudis_Frudis),
|
||||||
Gramm(IntegryCustomerDB.Gramm_Gramm,
|
Gramm(IntegryCustomerDB.Gramm_Gramm,
|
||||||
IntegryCustomerDB.Gramm_PrimeOlive,
|
IntegryCustomerDB.Gramm_PrimeOlive,
|
||||||
IntegryCustomerDB.Gramm_ProveStage),
|
IntegryCustomerDB.Gramm_ProveStage,
|
||||||
|
IntegryCustomerDB.Gramm_2MHolding),
|
||||||
Idrotecnica(IntegryCustomerDB.Idrotecnica_Idrotecnica),
|
Idrotecnica(IntegryCustomerDB.Idrotecnica_Idrotecnica),
|
||||||
Igood(IntegryCustomerDB.Igood_Aida,
|
Igood(IntegryCustomerDB.Igood_Aida,
|
||||||
IntegryCustomerDB.Igood_Igood,
|
IntegryCustomerDB.Igood_Igood,
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ public enum IntegryCustomerDB {
|
|||||||
|
|
||||||
Biolevante_Biolevante("biolevante_peppe"),
|
Biolevante_Biolevante("biolevante_peppe"),
|
||||||
Biolevante_BiolevanteStorico("biolevante_storico"),
|
Biolevante_BiolevanteStorico("biolevante_storico"),
|
||||||
|
Biolevante_TenutaSanMartino("tenutasanmartino"),
|
||||||
|
|
||||||
|
|
||||||
Carelli_Carelli("carelli"),
|
Carelli_Carelli("carelli"),
|
||||||
@@ -90,6 +91,7 @@ public enum IntegryCustomerDB {
|
|||||||
Gramm_Gramm("gramm_peppe"),
|
Gramm_Gramm("gramm_peppe"),
|
||||||
Gramm_PrimeOlive("primeolive"),
|
Gramm_PrimeOlive("primeolive"),
|
||||||
Gramm_ProveStage("grammprovestage"),
|
Gramm_ProveStage("grammprovestage"),
|
||||||
|
Gramm_2MHolding("2M_HOLDING"),
|
||||||
|
|
||||||
|
|
||||||
Idrotecnica_Idrotecnica("idrotecnica"),
|
Idrotecnica_Idrotecnica("idrotecnica"),
|
||||||
|
|||||||
@@ -10,8 +10,6 @@ public class Migration_20250522150750 extends BaseMigration implements Migration
|
|||||||
if (isHistoryDB())
|
if (isHistoryDB())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (isDMS()) return;
|
|
||||||
|
|
||||||
if (!existsTable( "stb_multiplier")) {
|
if (!existsTable( "stb_multiplier")) {
|
||||||
executeStatement( "CREATE TABLE stb_multiplier\n" +
|
executeStatement( "CREATE TABLE stb_multiplier\n" +
|
||||||
"(\n" +
|
"(\n" +
|
||||||
@@ -21,6 +19,8 @@ public class Migration_20250522150750 extends BaseMigration implements Migration
|
|||||||
"INSERT INTO stb_multiplier (moltiplicatore) VALUES (-1)");
|
"INSERT INTO stb_multiplier (moltiplicatore) VALUES (-1)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
createOrUpdateView("mvw_mtb_colr_storico_mov", "create view mvw_mtb_colr_storico_mov as \n" +
|
createOrUpdateView("mvw_mtb_colr_storico_mov", "create view mvw_mtb_colr_storico_mov as \n" +
|
||||||
"SELECT IIF(moltiplicatore = -1, mtb_colr.barcode_ul_out,\n" +
|
"SELECT IIF(moltiplicatore = -1, mtb_colr.barcode_ul_out,\n" +
|
||||||
" mtb_colr.barcode_ul_in) AS barcode_ul,\n" +
|
" mtb_colr.barcode_ul_in) AS barcode_ul,\n" +
|
||||||
|
|||||||
@@ -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_20250609130610 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("w_mgiac_part_disp", "CB_AZZERAGIAC", "VISIBLE", "N",
|
||||||
|
"Impostare S/N per visualizzare o meno il pulsante Azzera Giacenza", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
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;
|
||||||
|
import it.integry.ems_model.utility.dto.IndexTableDTO;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Migration_20250609144558 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
executeStatement("alter table mtb_shelf_life_tolerance add cod_mgrp varchar(5);\n",
|
||||||
|
"alter table mtb_shelf_life_tolerance add constraint fk_mtb_shelf_life_tolerance_mtb_grup FOREIGN KEY (cod_mgrp) REFERENCES mtb_grup\n");
|
||||||
|
|
||||||
|
if (isCustomerDb(IntegryCustomerDB.Carelli_Format)){
|
||||||
|
executeStatement("update mtb_shelf_life_tolerance set cod_mgrp = '02'\n",
|
||||||
|
"insert into mtb_shelf_life_tolerance (shelf_life_min, shelf_life_max, rate_to_tolerance, cod_mgrp)\n" +
|
||||||
|
"select mtb_shelf_life_tolerance.shelf_life_min, \n" +
|
||||||
|
"mtb_shelf_life_tolerance.shelf_life_max, \n" +
|
||||||
|
"mtb_shelf_life_tolerance.rate_to_tolerance, \n" +
|
||||||
|
"mtb_grup.cod_mgrp\n" +
|
||||||
|
"from mtb_grup cross apply mtb_shelf_life_tolerance\n" +
|
||||||
|
"where tipo_mgrp is null\n" +
|
||||||
|
"and exists (select * from mtb_aart where mtb_aart.cod_mgrp = mtb_grup.cod_mgrp and mtb_aart.gg_scad_partita >0)\n" +
|
||||||
|
"and mtb_grup.cod_mgrp not in (select cod_mgrp from mtb_shelf_life_tolerance)");
|
||||||
|
}
|
||||||
|
|
||||||
|
executeStatement("alter table mtb_shelf_life_tolerance alter column cod_mgrp varchar(5) not null;");
|
||||||
|
|
||||||
|
List<IndexTableDTO.ColumnIndex> columnsIndex = new ArrayList<>();
|
||||||
|
columnsIndex.add(new IndexTableDTO.ColumnIndex("cod_mgrp"));
|
||||||
|
columnsIndex.add(new IndexTableDTO.ColumnIndex("shelf_life_min"));
|
||||||
|
IndexTableDTO indexTableDTO = new IndexTableDTO()
|
||||||
|
.setTableName("mtb_shelf_life_tolerance")
|
||||||
|
.setIndexName("idx_mtb_shelf_life_tolerance_unique")
|
||||||
|
.setColumnsIndex(columnsIndex)
|
||||||
|
.setUnique(true)
|
||||||
|
.setOverride(true);
|
||||||
|
createIndex(indexTableDTO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@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.MigrationModelInterface;
|
||||||
|
import it.integry.ems_model.utility.Query;
|
||||||
|
|
||||||
|
public class Migration_20250609185006 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
String descrizione = "Questa setup indica i giorni di scadenza da controllore, è configurabile per tipo documento. Può contenere un numero oppure un json con questa struttura [{\"codMgrp\":\"02\",\"gg\":5}] per differenziare la setup per gruppo merceologico.";
|
||||||
|
executeStatement(Query.format("update stb_gest_setup SET description = %S where gest_name = %S AND section = %S AND KEY_SECTION = %S",
|
||||||
|
descrizione, "PVM","DOC_INTERNI","DAYS_TO_EXP"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
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_20250610105414 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("WINACCESS", "SETUP", "FILTRA_REPARTI_LAV", "N",
|
||||||
|
"filtra i reparti disponibili controllando il reparto assegnato all'utente", false, "SI_NO", false, false,
|
||||||
|
false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'");
|
||||||
|
if (isCustomer(IntegryCustomer.Smetar)) {
|
||||||
|
updateSetupValue("WINACCESS", "SETUP", "FILTRA_REPARTI_LAV", "S");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250610125552 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
enableSaveToRest("mdepo");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,267 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250610152544 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("[dbo].[vvw_sit_consegneXcommessa]", "CREATE VIEW [dbo].[vvw_sit_consegneXcommessa] as \n" +
|
||||||
|
"SELECT \n" +
|
||||||
|
" ordv.gestione AS gestione,\n" +
|
||||||
|
" ordv.cod_jcom AS cod_jcom, \n" +
|
||||||
|
" ordv.data_ord AS data_ord,\n" +
|
||||||
|
" ordv.num_ord AS num_ord,\n" +
|
||||||
|
" ordv.rif_ord AS rif_ord,\n" +
|
||||||
|
" ordv.id_viaggio AS id_viaggio,\n" +
|
||||||
|
" ordv.cod_mart AS cod_mart,\n" +
|
||||||
|
" ordv.cod_alis AS cod_alis,\n" +
|
||||||
|
" ISNULL(ordv.cod_art_for, ordv.cod_mart) AS cod_art_for,\n" +
|
||||||
|
" ISNULL(ordv.descrizione_estesa, ordv.descrizione) AS descrizione,\n" +
|
||||||
|
" SUM(ordv.qta_ord) AS qta_ord,\n" +
|
||||||
|
" ISNULL(orda.qta_da_evadere, 0) AS qta_acq,\n" +
|
||||||
|
" CASE WHEN ISNULL(orda.qta_da_evadere, 0) = 0 THEN NULL ELSE MAX(orda.data_cons) END AS data_cons_acq,\n" +
|
||||||
|
" ISNULL(colv.qta_col, 0) AS qta_riservata,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN ISNULL(mtb_part.qta_esistente, 0) < 0 THEN SUM(ISNULL(cola.qta_col, 0))\n" +
|
||||||
|
" ELSE ISNULL(mtb_part.qta_esistente, 0) + SUM(ISNULL(cola.qta_col, 0)) END AS qta_disp,\n" +
|
||||||
|
" SUM(ordv.qta_evasa) AS qta_consegnata,\n" +
|
||||||
|
" SUM(ordv.importoinevaso) AS importoinevaso,\n" +
|
||||||
|
" SUM(ordv.importoinevasoivato) AS importoinevasoivato,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN SUM(ordv.qta_ord - ordv.qta_evasa) <= SUM(ISNULL(colv.qta_col, 0)) + (CASE\n" +
|
||||||
|
" WHEN ISNULL(mtb_part.qta_esistente, 0) < 0\n" +
|
||||||
|
" THEN SUM(ISNULL(cola.qta_col, 0))\n" +
|
||||||
|
" ELSE ISNULL(mtb_part.qta_esistente, 0) + SUM(ISNULL(cola.qta_col, 0)) END)\n" +
|
||||||
|
" THEN SUM(ordv.importoinevaso)\n" +
|
||||||
|
" ELSE (SUM(ISNULL(colv.qta_col, 0)) + (CASE\n" +
|
||||||
|
" WHEN SUM(ISNULL(cola.qta_col, 0)) +\n" +
|
||||||
|
" ISNULL(mtb_part.qta_esistente, 0) > 0\n" +
|
||||||
|
" THEN SUM(ISNULL(cola.qta_col, 0)) + ISNULL(mtb_part.qta_esistente, 0)\n" +
|
||||||
|
" ELSE 0 END)) * SUM(ordv.importoinevaso) /\n" +
|
||||||
|
" (SUM(ordv.qta_ord) - SUM(ordv.qta_evasa)) END AS importoevadibile,\n" +
|
||||||
|
" ordv.unt_ord AS unt_ord,\n" +
|
||||||
|
" ordv.term_cons,\n" +
|
||||||
|
" jtb_comt.descrizione AS commessa,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN SUM(ordv.qta_ord - ordv.qta_evasa) <= 0 THEN 'CONSEGNATO'\n" +
|
||||||
|
" WHEN SUM(ordv.qta_ord - ordv.qta_evasa) <= SUM(ISNULL(colv.qta_col, 0)) + CASE\n" +
|
||||||
|
" WHEN ISNULL(mtb_part.qta_esistente, 0) < 0\n" +
|
||||||
|
" THEN SUM(ISNULL(cola.qta_col, 0))\n" +
|
||||||
|
" ELSE ISNULL(mtb_part.qta_esistente, 0) + SUM(ISNULL(cola.qta_col, 0)) END\n" +
|
||||||
|
" THEN 'DISPONIBILE'\n" +
|
||||||
|
" ELSE 'NON DISPONIBILE' END AS statoriga,\n" +
|
||||||
|
" SUM(ordv.importorigaord) AS importoriga,\n" +
|
||||||
|
" ordv.data_cons AS data_cons_vend,\n" +
|
||||||
|
" gtb_anag.rag_soc AS cliente,\n" +
|
||||||
|
" ISNULL(vtb_dest.indirizzo, gtb_anag.indirizzo) AS indirizzo,\n" +
|
||||||
|
" CASE WHEN vtb_dest.indirizzo IS NULL THEN gtb_anag.citta ELSE vtb_dest.citta END AS citta,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN ISNULL(vtb_dest.destinatario, '') <> gtb_anag.rag_soc AND vtb_dest.destinatario IS NOT NULL\n" +
|
||||||
|
" THEN vtb_dest.destinatario\n" +
|
||||||
|
" ELSE NULL END AS destinatario,\n" +
|
||||||
|
" ordv.cod_vage,\n" +
|
||||||
|
" vtb_agen.rag_soc AS agente,\n" +
|
||||||
|
" ordv.partita_mag,\n" +
|
||||||
|
" orda.gestione_rif,\n" +
|
||||||
|
" gtb_anag.cod_anag AS cod_anag,\n" +
|
||||||
|
" ordv.num_ord_provv AS num_ord_provv,\n" +
|
||||||
|
" ordv.flag_sospeso AS flag_sospeso,\n" +
|
||||||
|
" MIN(ordv.pos_riga) AS pos_riga,\n" +
|
||||||
|
" ordv.controllato_da AS controllato_da,\n" +
|
||||||
|
" gtb_anag.e_mail AS e_mail,\n" +
|
||||||
|
" ordv.data_ins_ord,\n" +
|
||||||
|
" ordv.flag_evaso,\n" +
|
||||||
|
" ordv.cod_paga,\n" +
|
||||||
|
" ordv.descrizione_paga,\n" +
|
||||||
|
" ordv.cod_vdes \n" +
|
||||||
|
" \n" +
|
||||||
|
"FROM gtb_anag,\n" +
|
||||||
|
" (SELECT dtb_ordt.gestione,\n" +
|
||||||
|
" cod_vage,\n" +
|
||||||
|
" cod_anag,\n" +
|
||||||
|
" cod_vdes,\n" +
|
||||||
|
" term_cons,\n" +
|
||||||
|
" dtb_ordr.unt_ord,\n" +
|
||||||
|
" dtb_ordr.cod_jcom,\n" +
|
||||||
|
" dtb_ordr.cod_mart,\n" +
|
||||||
|
" dtb_ordr.cod_alis,\n" +
|
||||||
|
" dtb_ordr.cod_art_for,\n" +
|
||||||
|
" dtb_ordt.data_ord,\n" +
|
||||||
|
" dtb_ordt.num_ord,\n" +
|
||||||
|
" dtb_ordt.rif_ord,\n" +
|
||||||
|
" dtb_ordr.descrizione,\n" +
|
||||||
|
" dtb_ordr.descrizione_estesa,\n" +
|
||||||
|
" dtb_ordr.data_cons,\n" +
|
||||||
|
" dtb_ordr.riga_ord,\n" +
|
||||||
|
" dtb_ordr.qta_ord,\n" +
|
||||||
|
" dtb_ordr.qta_evasa,\n" +
|
||||||
|
" dtb_ordr.cod_mdep,\n" +
|
||||||
|
" dtb_ordr.flag_evaso,\n" +
|
||||||
|
" SUM(dtb_ordr.qta_ord * dtb_ordr.val_unt * (1 - sconto1 / 100) * (1 - sconto2 / 100) * (1 - sconto3 / 100) *\n" +
|
||||||
|
" (1 - sconto4 / 100) * (1 - sconto5 / 100) * (1 - sconto6 / 100) * (1 - sconto7 / 100) *\n" +
|
||||||
|
" (1 - sconto8 / 100)) AS importorigaord,\n" +
|
||||||
|
" SUM(CASE\n" +
|
||||||
|
" WHEN (dtb_ordr.qta_ord > dtb_ordr.qta_evasa) AND dtb_ordr.flag_evaso = 'I' THEN\n" +
|
||||||
|
" (dtb_ordr.qta_ord - dtb_ordr.qta_evasa) * dtb_ordr.val_unt * (1 - sconto1 / 100) *\n" +
|
||||||
|
" (1 - sconto2 / 100) * (1 - sconto3 / 100) * (1 - sconto4 / 100) * (1 - sconto5 / 100) *\n" +
|
||||||
|
" (1 - sconto6 / 100) * (1 - sconto7 / 100) * (1 - sconto8 / 100)\n" +
|
||||||
|
" ELSE 0 END) AS importoinevaso,\n" +
|
||||||
|
" SUM(CASE\n" +
|
||||||
|
" WHEN (dtb_ordr.qta_ord > dtb_ordr.qta_evasa) AND dtb_ordr.flag_evaso = 'I' THEN\n" +
|
||||||
|
" (dtb_ordr.qta_ord - dtb_ordr.qta_evasa) * dtb_ordr.val_unt *\n" +
|
||||||
|
" (1 + gtb_aliq.perc_aliq / 100) * (1 - sconto1 / 100) * (1 - sconto2 / 100) *\n" +
|
||||||
|
" (1 - sconto3 / 100) * (1 - sconto4 / 100) * (1 - sconto5 / 100) * (1 - sconto6 / 100) *\n" +
|
||||||
|
" (1 - sconto7 / 100) * (1 - sconto8 / 100)\n" +
|
||||||
|
" ELSE 0 END) AS importoinevasoivato,\n" +
|
||||||
|
" dtb_ordr.partita_mag,\n" +
|
||||||
|
" dtb_ordt.num_ord_provv,\n" +
|
||||||
|
" dtb_ordt.flag_sospeso,\n" +
|
||||||
|
" dtb_ordr.pos_riga,\n" +
|
||||||
|
" dtb_ordt.controllato_da,\n" +
|
||||||
|
" dtb_ordt.data_ins_ord,\n" +
|
||||||
|
" dtb_ordr.id_viaggio,\n" +
|
||||||
|
" dtb_ordt.cod_paga,\n" +
|
||||||
|
" dtb_ordt.descrizione_paga\n" +
|
||||||
|
" FROM dtb_ordt,\n" +
|
||||||
|
" dtb_ordr\n" +
|
||||||
|
" LEFT OUTER JOIN gtb_aliq ON dtb_ordr.cod_aliq = gtb_aliq.cod_aliq\n" +
|
||||||
|
" WHERE dtb_ordt.gestione = dtb_ordr.gestione\n" +
|
||||||
|
" AND dtb_ordt.data_ord = dtb_ordr.data_ord\n" +
|
||||||
|
" AND dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||||
|
" AND dtb_ordt.gestione = 'V'\n" +
|
||||||
|
" AND dtb_ordr.cod_mart IS NOT NULL\n" +
|
||||||
|
" AND dtb_ordt.flag_annulla = 'N'\n" +
|
||||||
|
" AND dtb_ordr.flag_evaso <> 'A'\n" +
|
||||||
|
" GROUP BY dtb_ordt.gestione, cod_vage, cod_anag, cod_vdes, term_cons, dtb_ordr.unt_ord, dtb_ordr.cod_jcom,\n" +
|
||||||
|
" dtb_ordr.cod_mart, dtb_ordr.cod_alis, dtb_ordr.cod_art_for, dtb_ordt.data_ord, dtb_ordt.num_ord,\n" +
|
||||||
|
" dtb_ordt.rif_ord, dtb_ordr.descrizione, dtb_ordr.descrizione_estesa, dtb_ordr.data_cons,\n" +
|
||||||
|
" dtb_ordr.riga_ord, dtb_ordr.qta_ord, dtb_ordr.qta_evasa, dtb_ordr.cod_mdep, dtb_ordr.flag_evaso,\n" +
|
||||||
|
" dtb_ordr.partita_mag, dtb_ordt.num_ord_provv, dtb_ordt.flag_sospeso, dtb_ordr.pos_riga,\n" +
|
||||||
|
" dtb_ordt.controllato_da, dtb_ordt.data_ins_ord, dtb_ordr.id_viaggio, dtb_ordt.cod_paga,\n" +
|
||||||
|
" dtb_ordt.descrizione_paga) ordv\n" +
|
||||||
|
" LEFT OUTER JOIN vtb_dest ON ordv.cod_anag = vtb_dest.cod_anag AND ordv.cod_vdes = vtb_dest.cod_vdes\n" +
|
||||||
|
" LEFT OUTER JOIN vtb_agen ON ordv.cod_vage = vtb_agen.cod_vage\n" +
|
||||||
|
" LEFT OUTER JOIN jtb_comt ON ordv.cod_jcom = jtb_comt.cod_jcom\n" +
|
||||||
|
" LEFT OUTER JOIN ( /*Ordini di acquisto a fornitori*/ SELECT dtb_ordr.gestione,\n" +
|
||||||
|
" dtb_ordr.flag_evaso,\n" +
|
||||||
|
" MAX(dtb_ordr.data_cons) AS data_cons,\n" +
|
||||||
|
" dtb_ordr.cod_mart,\n" +
|
||||||
|
" dtb_ordr.cod_col,\n" +
|
||||||
|
" dtb_ordr.cod_tagl,\n" +
|
||||||
|
" dtb_ordr.cod_jcom,\n" +
|
||||||
|
" SUM(qta_ord - qta_evasa) AS qta_da_evadere,\n" +
|
||||||
|
" dtb_ordt.gestione_rif\n" +
|
||||||
|
" FROM dtb_ordt,\n" +
|
||||||
|
" dtb_ordr\n" +
|
||||||
|
" WHERE dtb_ordt.gestione = dtb_ordr.gestione\n" +
|
||||||
|
" AND dtb_ordt.data_ord = dtb_ordr.data_ord\n" +
|
||||||
|
" AND dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||||
|
" AND dtb_ordt.gestione = 'A'\n" +
|
||||||
|
" AND dtb_ordt.flag_sospeso = 'N'\n" +
|
||||||
|
" AND dtb_ordt.flag_annulla = 'N'\n" +
|
||||||
|
" AND dtb_ordr.flag_evaso = 'I'\n" +
|
||||||
|
" AND dtb_ordr.qta_ord > dtb_ordr.qta_evasa\n" +
|
||||||
|
" GROUP BY dtb_ordr.gestione,\n" +
|
||||||
|
" dtb_ordr.flag_evaso, /*dtb_ordr.data_cons,*/\n" +
|
||||||
|
" dtb_ordr.cod_mart, dtb_ordr.cod_col,\n" +
|
||||||
|
" dtb_ordr.cod_tagl, dtb_ordr.cod_jcom,\n" +
|
||||||
|
" dtb_ordt.gestione_rif) orda\n" +
|
||||||
|
" ON ordv.cod_jcom = orda.cod_jcom AND ordv.cod_mart = orda.cod_mart AND orda.gestione = 'A' AND\n" +
|
||||||
|
" orda.flag_evaso = 'I'\n" +
|
||||||
|
" LEFT OUTER JOIN ( /*Colli di vendita già preparati e accantonati per commessa*/ SELECT cod_mart,\n" +
|
||||||
|
" isnull(mtb_colr.cod_jcom, dtb_ordt.cod_jcom) as cod_jcom,\n" +
|
||||||
|
" mtb_colr.data_ord,\n" +
|
||||||
|
" mtb_colr.num_ord,\n" +
|
||||||
|
" riga_ord,\n" +
|
||||||
|
" mtb_colt.gestione,\n" +
|
||||||
|
" SUM(qta_col) AS qta_col\n" +
|
||||||
|
" FROM mtb_colr inner join mtb_colt on mtb_colr.gestione = mtb_colt.gestione and\n" +
|
||||||
|
" mtb_colr.data_collo = mtb_colt.data_collo and\n" +
|
||||||
|
" mtb_colr.ser_collo = mtb_colt.ser_collo and\n" +
|
||||||
|
" mtb_colr.num_collo = mtb_colt.num_collo\n" +
|
||||||
|
" inner join dtb_ordt on dtb_ordt.data_ord=mtb_colr.data_ord and\n" +
|
||||||
|
" dtb_ordt.num_ord=mtb_colr.num_ord and\n" +
|
||||||
|
" dtb_ordt.gestione=mtb_colr.gestione\n" +
|
||||||
|
" \n" +
|
||||||
|
" WHERE mtb_colt.gestione = 'V'\n" +
|
||||||
|
" AND mtb_colt.cod_dtip IS NULL\n" +
|
||||||
|
" \n" +
|
||||||
|
" \n" +
|
||||||
|
" GROUP BY cod_mart, mtb_colr.cod_jcom, dtb_ordt.cod_jcom,\n" +
|
||||||
|
" mtb_colr.data_ord,\n" +
|
||||||
|
" mtb_colr.num_ord,\n" +
|
||||||
|
" riga_ord,\n" +
|
||||||
|
" mtb_colt.gestione) colv\n" +
|
||||||
|
" ON ordv.gestione = colv.gestione AND ordv.data_ord = colv.data_ord AND\n" +
|
||||||
|
" ordv.num_ord = colv.num_ord AND ordv.riga_ord = colv.riga_ord AND\n" +
|
||||||
|
" ordv.cod_mart = colv.cod_mart AND ordv.cod_jcom = colv.cod_jcom\n" +
|
||||||
|
" LEFT OUTER JOIN ( /*Colli di acquisto o produzione in giacenza con commessa esclusi quelli di reso a fornitore o posizionati in aree escluse dal picking*/ SELECT cod_mart, cod_mdep, cod_jcom AS cod_jcom, SUM(qta_col) AS qta_col\n" +
|
||||||
|
" FROM mvw_sitart_udc_det_inventario\n" +
|
||||||
|
" WHERE (gestione = 'A' OR gestione = 'L')\n" +
|
||||||
|
" AND ISNULL(cod_jcom, 'MAG') <> 'MAG'\n" +
|
||||||
|
" AND ISNULL(priorita, 0) >= 0\n" +
|
||||||
|
" AND segno = 1\n" +
|
||||||
|
" GROUP BY cod_mart, cod_mdep, cod_jcom) cola\n" +
|
||||||
|
" ON ordv.cod_mdep = cola.cod_mdep AND ordv.cod_mart = cola.cod_mart AND\n" +
|
||||||
|
" ordv.cod_jcom = cola.cod_jcom\n" +
|
||||||
|
" LEFT OUTER JOIN ( /*Colli di acquisto o produzione in giacenza senza commessa, esclusi quelli di reso a fornitore o posizionati in aree escluse dal picking*/ SELECT cod_mart, cod_mdep, SUM(qta_col) AS qta_esistente\n" +
|
||||||
|
" FROM mvw_sitart_udc_det_inventario\n" +
|
||||||
|
" WHERE (gestione = 'A' OR gestione = 'L')\n" +
|
||||||
|
" AND (cod_jcom IS NULL OR cod_jcom = 'MAG')\n" +
|
||||||
|
" AND ISNULL(priorita, 0) >= 0\n" +
|
||||||
|
" AND segno = 1\n" +
|
||||||
|
" GROUP BY cod_mart, cod_mdep) mtb_part\n" +
|
||||||
|
" ON ordv.cod_mdep = mtb_part.cod_mdep AND ordv.cod_mart = mtb_part.cod_mart\n" +
|
||||||
|
"WHERE gtb_anag.cod_anag = ordv.cod_anag\n" +
|
||||||
|
"GROUP BY ordv.gestione ,\n" +
|
||||||
|
" ordv.cod_jcom ,\n" +
|
||||||
|
" ordv.data_ord ,\n" +
|
||||||
|
" ordv.num_ord ,\n" +
|
||||||
|
" ordv.rif_ord ,\n" +
|
||||||
|
" ordv.id_viaggio ,\n" +
|
||||||
|
" ordv.cod_mart ,\n" +
|
||||||
|
" ordv.cod_alis ,\n" +
|
||||||
|
" ISNULL(ordv.cod_art_for, ordv.cod_mart) ,\n" +
|
||||||
|
" ISNULL(ordv.descrizione_estesa, ordv.descrizione),\n" +
|
||||||
|
" ISNULL(orda.qta_da_evadere, 0) ,\n" +
|
||||||
|
" ISNULL(colv.qta_col, 0) ,\n" +
|
||||||
|
" mtb_part.qta_esistente ,\n" +
|
||||||
|
" ordv.unt_ord ,\n" +
|
||||||
|
" ordv.term_cons,\n" +
|
||||||
|
" jtb_comt.descrizione ,\n" +
|
||||||
|
" ordv.data_cons,\n" +
|
||||||
|
" gtb_anag.rag_soc,\n" +
|
||||||
|
" ISNULL(vtb_dest.indirizzo, gtb_anag.indirizzo),\n" +
|
||||||
|
" vtb_dest.indirizzo,\n" +
|
||||||
|
" vtb_dest.destinatario,\n" +
|
||||||
|
" gtb_anag.citta,\n" +
|
||||||
|
" vtb_dest.citta,\n" +
|
||||||
|
" ordv.cod_vage,\n" +
|
||||||
|
" vtb_agen.rag_soc ,\n" +
|
||||||
|
" ordv.partita_mag,\n" +
|
||||||
|
" orda.gestione_rif,\n" +
|
||||||
|
" gtb_anag.cod_anag ,\n" +
|
||||||
|
" ordv.num_ord_provv ,\n" +
|
||||||
|
" ordv.flag_sospeso ,\n" +
|
||||||
|
" ordv.controllato_da ,\n" +
|
||||||
|
" gtb_anag.e_mail ,\n" +
|
||||||
|
" ordv.data_ins_ord,\n" +
|
||||||
|
" ordv.flag_evaso,\n" +
|
||||||
|
" ordv.cod_paga,\n" +
|
||||||
|
" ordv.descrizione_paga,\n" +
|
||||||
|
" ordv.cod_vdes");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250610153451 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("mvw_mtb_colr_storico_mov", "CREATE view [dbo].[mvw_mtb_colr_storico_mov] as \n" +
|
||||||
|
"SELECT IIF(moltiplicatore = -1, mtb_colr.barcode_ul_out,\n" +
|
||||||
|
" mtb_colr.barcode_ul_in) AS barcode_ul,\n" +
|
||||||
|
" IIF(moltiplicatore = -1, mtb_colr.cod_mdep_out,\n" +
|
||||||
|
" mtb_colr.cod_mdep_in) AS cod_mdep,\n" +
|
||||||
|
" IIF(moltiplicatore = -1, mtb_colr.posizione_out,\n" +
|
||||||
|
" mtb_colr.posizione_in) AS posizione,\n" +
|
||||||
|
" (mtb_colr.qta_col * moltiplicatore) AS qta_col,\n" +
|
||||||
|
" (IIF(mtb_aart.flag_qta_cnf_fissa = 'S', mtb_colr.qta_col / mtb_aart.qta_cnf, mtb_colr.num_cnf) *\n" +
|
||||||
|
" moltiplicatore) AS num_cnf,\n" +
|
||||||
|
" mtb_colr.cod_mart,\n" +
|
||||||
|
" mtb_colr.cod_col,\n" +
|
||||||
|
" mtb_colr.cod_tagl,\n" +
|
||||||
|
" mtb_colr.partita_mag,\n" +
|
||||||
|
" (mtb_colr.peso_netto_kg * moltiplicatore) AS peso_netto_kg,\n" +
|
||||||
|
" (mtb_colr.peso_lordo_kg * moltiplicatore) AS peso_lordo_kg,\n" +
|
||||||
|
" IIF(mtb_colr.cod_jcom = 'MAG', NULL, mtb_colr.cod_jcom) AS cod_jcom,\n" +
|
||||||
|
" mtb_aart.flag_qta_cnf_fissa,\n" +
|
||||||
|
" mtb_aart.unt_mis,\n" +
|
||||||
|
" mtb_aart.diacod,\n" +
|
||||||
|
" mtb_aart.descrizione_estesa,\n" +
|
||||||
|
" mtb_aart.cod_mgrp,\n" +
|
||||||
|
" mtb_aart.cod_msgr,\n" +
|
||||||
|
" mtb_aart.cod_mtip,\n" +
|
||||||
|
" mtb_aart.cod_mstp,\n" +
|
||||||
|
" mtb_aart.cod_msfa,\n" +
|
||||||
|
" mtb_aart.qta_cnf AS qta_cnf_anag,\n" +
|
||||||
|
" mtb_colt.data_vers,\n" +
|
||||||
|
" mtb_colr.datetime_row,\n" +
|
||||||
|
" mtb_colt.cod_anag,\n" +
|
||||||
|
" mtb_colt.cod_dtip,\n" +
|
||||||
|
" mtb_colt.data_doc,\n" +
|
||||||
|
" mtb_colt.ser_doc,\n" +
|
||||||
|
" mtb_colt.num_doc,\n" +
|
||||||
|
" mtb_colt.gestione,\n" +
|
||||||
|
" mtb_colt.data_collo,\n" +
|
||||||
|
" mtb_colt.num_collo,\n" +
|
||||||
|
" mtb_colt.ser_collo\n" +
|
||||||
|
"FROM dbo.mtb_colr\n" +
|
||||||
|
" INNER JOIN dbo.stb_multiplier ON (moltiplicatore = 1 AND mtb_colr.barcode_ul_in IS NOT NULL) OR\n" +
|
||||||
|
" (moltiplicatore = -1 AND mtb_colr.barcode_ul_out IS NOT NULL)\n" +
|
||||||
|
" INNER JOIN dbo.mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" INNER JOIN dbo.mtb_colt 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" +
|
||||||
|
"WHERE (segno = 1 or (segno = -1 and (moltiplicatore = -1 or (moltiplicatore = 1 AND isnull(mtb_colt.barcode_ul,'') <> IsNull(mtb_colr.barcode_ul_in,'')) )))");
|
||||||
|
}
|
||||||
|
|
||||||
|
@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_20250610161207 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
executeStatement("create table vtb_offr_storico \n" +
|
||||||
|
"(id_offerta bigint not null, \n" +
|
||||||
|
"cod_mart varchar(15) not null, \n" +
|
||||||
|
"qta_ord numeric(20,5) default 0 not null,\n" +
|
||||||
|
"qta_doc numeric(20,5) default 0 not null )\n",
|
||||||
|
"alter table vtb_offr_storico add constraint pk_vtb_offr_storico primary key (id_offerta, cod_mart)");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -522,7 +522,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
|||||||
}
|
}
|
||||||
boolean flagIvaInclusa = testata.getFlagPrzIva().equalsIgnoreCase("S");
|
boolean flagIvaInclusa = testata.getFlagPrzIva().equalsIgnoreCase("S");
|
||||||
|
|
||||||
if (flagPrezziScontati) {
|
if (!flagPrezziScontati) {
|
||||||
if (sconto1.compareTo(BigDecimal.ZERO) > 0) {
|
if (sconto1.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
sconti.add(sconto1);
|
sconti.add(sconto1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,9 @@ public class MtbShelfLifeTolerance extends EntityBase {
|
|||||||
@SqlField(value = "rate_to_tolerance", nullable = false)
|
@SqlField(value = "rate_to_tolerance", nullable = false)
|
||||||
private BigDecimal rateToTolerance;
|
private BigDecimal rateToTolerance;
|
||||||
|
|
||||||
|
@SqlField(value = "cod_mgrp", nullable = false)
|
||||||
|
private String codMgrp;
|
||||||
|
|
||||||
public Long getId() {
|
public Long getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@@ -79,4 +82,13 @@ public class MtbShelfLifeTolerance extends EntityBase {
|
|||||||
this.rateToTolerance = rateToTolerance;
|
this.rateToTolerance = rateToTolerance;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCodMgrp() {
|
||||||
|
return codMgrp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MtbShelfLifeTolerance setCodMgrp(String codMgrp) {
|
||||||
|
this.codMgrp = codMgrp;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,105 @@
|
|||||||
|
package it.integry.ems_model.entity;
|
||||||
|
|
||||||
|
import it.integry.ems_model.base.EquatableEntityInterface;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import it.integry.ems_model.base.EntityBase;
|
||||||
|
import it.integry.ems_model.annotation.Master;
|
||||||
|
import org.kie.api.definition.type.PropertyReactive;
|
||||||
|
import it.integry.ems_model.annotation.Table;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import it.integry.ems_model.annotation.PK;
|
||||||
|
import it.integry.ems_model.annotation.SqlField;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Master()
|
||||||
|
@PropertyReactive()
|
||||||
|
@Table(value = VtbOffrStorico.ENTITY)
|
||||||
|
@JsonTypeName(value = VtbOffrStorico.ENTITY)
|
||||||
|
public class VtbOffrStorico extends EntityBase implements EquatableEntityInterface<VtbOffrStorico> {
|
||||||
|
public final static String ENTITY = "vtb_offr_storico";
|
||||||
|
|
||||||
|
private final static Long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private final static Logger logger = LogManager.getLogger();
|
||||||
|
|
||||||
|
public VtbOffrStorico() {
|
||||||
|
super(logger);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PK()
|
||||||
|
@SqlField(value = "id_offerta", nullable = false)
|
||||||
|
private Long idOfferta;
|
||||||
|
|
||||||
|
@PK()
|
||||||
|
@SqlField(value = "cod_mart", maxLength = 15, nullable = false)
|
||||||
|
private String codMart;
|
||||||
|
|
||||||
|
@SqlField(value = "qta_ord", nullable = false)
|
||||||
|
private BigDecimal qtaOrd;
|
||||||
|
|
||||||
|
@SqlField(value = "qta_doc", nullable = false)
|
||||||
|
private BigDecimal qtaDoc;
|
||||||
|
|
||||||
|
public Long getIdOfferta() {
|
||||||
|
return idOfferta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbOffrStorico setIdOfferta(Long idOfferta) {
|
||||||
|
this.idOfferta = idOfferta;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodMart() {
|
||||||
|
return codMart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbOffrStorico setCodMart(String codMart) {
|
||||||
|
this.codMart = codMart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public BigDecimal getQtaOrd() {
|
||||||
|
return qtaOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbOffrStorico setQtaOrd(BigDecimal qtaOrd) {
|
||||||
|
this.qtaOrd = qtaOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaDoc() {
|
||||||
|
return qtaDoc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbOffrStorico setQtaDoc(BigDecimal qtaDoc) {
|
||||||
|
this.qtaDoc = qtaDoc;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCodeKey() {
|
||||||
|
return Objects.hash(getIdOfferta(), getCodMart());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equalsKey(VtbOffrStorico that) {
|
||||||
|
return Objects.equals(getIdOfferta(), that.getIdOfferta()) && Objects.equals(getCodMart(), that.getCodMart());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (!(o instanceof VtbOffrStorico)) return false;
|
||||||
|
VtbOffrStorico that = (VtbOffrStorico) o;
|
||||||
|
return Objects.equals(getIdOfferta(), that.getIdOfferta()) && Objects.equals(getCodMart(), that.getCodMart()) && Objects.equals(getQtaOrd(), that.getQtaOrd()) && Objects.equals(getQtaDoc(), that.getQtaDoc());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(getIdOfferta(), getCodMart(), getQtaOrd(), getQtaDoc());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -78,6 +78,9 @@ public class VtbOfft extends EntityBase implements EquatableEntityInterface<VtbO
|
|||||||
@EntityChild
|
@EntityChild
|
||||||
private List<VtbOffr> vtbOffr = new ArrayList<>();
|
private List<VtbOffr> vtbOffr = new ArrayList<>();
|
||||||
|
|
||||||
|
@EntityChild
|
||||||
|
private List<VtbOffrStorico> vtbOffrStorico = new ArrayList<>();
|
||||||
|
|
||||||
@Priority(1)
|
@Priority(1)
|
||||||
private StbActivity stbActivity;
|
private StbActivity stbActivity;
|
||||||
|
|
||||||
@@ -228,6 +231,15 @@ public class VtbOfft extends EntityBase implements EquatableEntityInterface<VtbO
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<VtbOffrStorico> getVtbOffrStorico() {
|
||||||
|
return vtbOffrStorico;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbOfft setVtbOffrStorico(List<VtbOffrStorico> vtbOffrStorico) {
|
||||||
|
this.vtbOffrStorico = vtbOffrStorico;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCodeKey() {
|
public int hashCodeKey() {
|
||||||
return Objects.hash(getIdOfferta());
|
return Objects.hash(getIdOfferta());
|
||||||
|
|||||||
@@ -107,7 +107,8 @@ public class Slim2kService {
|
|||||||
" IIF(mtb_part.scorta_min IS NULL, 0, mtb_part.scorta_min) AS scorta_min " +
|
" IIF(mtb_part.scorta_min IS NULL, 0, mtb_part.scorta_min) AS scorta_min " +
|
||||||
"FROM format.dbo.mtb_aart" +
|
"FROM format.dbo.mtb_aart" +
|
||||||
" LEFT OUTER JOIN format.dbo.mtb_part ON mtb_aart.cod_mart = mtb_part.cod_mart AND mtb_part.cod_mdep = " + UtilityDB.valueToString(codMdep) +
|
" LEFT OUTER JOIN format.dbo.mtb_part ON mtb_aart.cod_mart = mtb_part.cod_mart AND mtb_part.cod_mdep = " + UtilityDB.valueToString(codMdep) +
|
||||||
" LEFT OUTER JOIN format.dbo.mtb_shelf_life_tolerance ON mtb_aart.gg_scad_partita between mtb_shelf_life_tolerance.shelf_life_min and mtb_shelf_life_tolerance.shelf_life_max " +
|
" LEFT OUTER JOIN format.dbo.mtb_shelf_life_tolerance ON mtb_aart.cod_mgrp = mtb_shelf_life_tolerance.cod_mgrp AND \n" +
|
||||||
|
" mtb_aart.gg_scad_partita between mtb_shelf_life_tolerance.shelf_life_min and mtb_shelf_life_tolerance.shelf_life_max " +
|
||||||
" WHERE mtb_aart.flag_stato = 'A'" +
|
" WHERE mtb_aart.flag_stato = 'A'" +
|
||||||
" AND mtb_aart.cod_mart NOT IN" +
|
" AND mtb_aart.cod_mart NOT IN" +
|
||||||
" ('130100014', '040200962', '011000513', '011000475', '011000298', '011000252', '011000254', '011000819')";
|
" ('130100014', '040200962', '011000513', '011000475', '011000298', '011000252', '011000254', '011000819')";
|
||||||
|
|||||||
@@ -30,32 +30,38 @@ public class GriglieVenditaExcelDTO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public GriglieVenditaExcelDTO addRiga(Integer ggSettimana, String codMart) {
|
public GriglieVenditaExcelDTO addRiga(Integer ggSettimana, String codMart) {
|
||||||
LocalDate nextMonday = LocalDate.now().with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.MONDAY));;
|
LocalDate today = LocalDate.now();
|
||||||
LocalDate dataGriglia;
|
LocalDate dataGriglia;
|
||||||
switch (ggSettimana) {
|
|
||||||
case 1: // Lunedì
|
|
||||||
dataGriglia = nextMonday;
|
if (today.getDayOfWeek().getValue() == ggSettimana.intValue()) {
|
||||||
break;
|
dataGriglia = today;
|
||||||
case 2: // Martedì
|
} else {
|
||||||
dataGriglia = nextMonday.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.TUESDAY));
|
switch (ggSettimana) {
|
||||||
break;
|
case 1: // Lunedì
|
||||||
case 3: // Mercoledì
|
dataGriglia = today.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.MONDAY));
|
||||||
dataGriglia = nextMonday.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.WEDNESDAY));
|
break;
|
||||||
break;
|
case 2: // Martedì
|
||||||
case 4: // Giovedì
|
dataGriglia = today.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.TUESDAY));
|
||||||
dataGriglia = nextMonday.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.THURSDAY));
|
break;
|
||||||
break;
|
case 3: // Mercoledì
|
||||||
case 5: // Venerdì
|
dataGriglia = today.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.WEDNESDAY));
|
||||||
dataGriglia = nextMonday.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.FRIDAY));
|
break;
|
||||||
break;
|
case 4: // Giovedì
|
||||||
case 6: // Sabato
|
dataGriglia = today.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.THURSDAY));
|
||||||
dataGriglia = nextMonday.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.SATURDAY));
|
break;
|
||||||
break;
|
case 5: // Venerdì
|
||||||
case 7: // Domenica
|
dataGriglia = today.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.FRIDAY));
|
||||||
dataGriglia = nextMonday.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.SUNDAY));
|
break;
|
||||||
break;
|
case 6: // Sabato
|
||||||
default:
|
dataGriglia = today.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.SATURDAY));
|
||||||
throw new IllegalArgumentException("Giorno della settimana non valido: " + ggSettimana);
|
break;
|
||||||
|
case 7: // Domenica
|
||||||
|
dataGriglia = today.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.SUNDAY));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Giorno della settimana non valido: " + ggSettimana);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
DatiGriglia riga = new DatiGriglia()
|
DatiGriglia riga = new DatiGriglia()
|
||||||
.setCodMart(codMart)
|
.setCodMart(codMart)
|
||||||
|
|||||||
@@ -95,57 +95,66 @@ public class ContrattiDiVenditaHandlerService {
|
|||||||
public List<EntityBase> updateProgressivi(MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
public List<EntityBase> updateProgressivi(MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||||
String sql =
|
String sql =
|
||||||
"WITH art as (\n" +
|
"WITH art as (\n" +
|
||||||
" select mtb_aart.cod_mart, IsNull(mtb_aart.id_art_equi, mtb_aart.cod_mart) as id_art_equi\n" +
|
" select mtb_aart.cod_mart, IsNull(mtb_aart.id_art_equi, mtb_aart.cod_mart) as id_art_equi\n" +
|
||||||
" from mtb_aart left outer join mtb_aart_equi on mtb_aart.id_art_equi = mtb_aart_equi.id_art_equi and flag_equi_prezzo in ('T', 'V', 'P')\n" +
|
" from mtb_aart left outer join mtb_aart_equi on mtb_aart.id_art_equi = mtb_aart_equi.id_art_equi and flag_equi_prezzo in ('T', 'V', 'P')\n" +
|
||||||
" ),\n" +
|
" ),\n" +
|
||||||
" ord AS\n" +
|
" ord AS\n" +
|
||||||
" (SELECT dtb_ordr.id_contratto,\n" +
|
" (SELECT dtb_ordr.id_contratto,\n" +
|
||||||
" art.id_art_equi,\n" +
|
" art.id_art_equi,\n" +
|
||||||
" SUM((dtb_ordr.qta_ord - dtb_ordr.qta_evasa) * dtb_ordr.rap_conv) AS qta_ord\n" +
|
" SUM((dtb_ordr.qta_ord - dtb_ordr.qta_evasa) * dtb_ordr.rap_conv) AS qta_ord\n" +
|
||||||
" FROM dtb_ordt\n" +
|
" FROM dtb_ordt\n" +
|
||||||
" INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione AND\n" +
|
" INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione AND\n" +
|
||||||
" dtb_ordt.data_ord = dtb_ordr.data_ord AND\n" +
|
" dtb_ordt.data_ord = dtb_ordr.data_ord AND\n" +
|
||||||
" dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
" dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||||
" inner join art on dtb_ordr.cod_mart = art.cod_mart\n" +
|
" inner join art on dtb_ordr.cod_mart = art.cod_mart\n" +
|
||||||
" WHERE dtb_ordt.gestione = 'V'\n" +
|
" WHERE dtb_ordt.gestione = 'V'\n" +
|
||||||
" AND dtb_ordt.flag_annulla = 'N'\n" +
|
" AND dtb_ordt.flag_annulla = 'N'\n" +
|
||||||
" AND dtb_ordt.flag_sospeso = 'N'\n" +
|
" AND dtb_ordt.flag_sospeso = 'N'\n" +
|
||||||
" AND dtb_ordr.flag_evaso = 'I'\n" +
|
" AND dtb_ordr.flag_evaso = 'I'\n" +
|
||||||
" AND dtb_ordr.id_contratto IS NOT NULL\n" +
|
" AND dtb_ordr.id_contratto IS NOT NULL\n" +
|
||||||
" GROUP BY dtb_ordr.id_contratto,\n" +
|
" GROUP BY dtb_ordr.id_contratto,\n" +
|
||||||
" art.id_art_equi\n" +
|
" art.id_art_equi\n" +
|
||||||
" )\n" +
|
" )\n" +
|
||||||
" , doc AS (SELECT dtb_docr.id_contratto,\n" +
|
" , doc AS (SELECT dtb_docr.id_contratto,\n" +
|
||||||
" art.id_art_equi,\n" +
|
" art.id_art_equi,\n" +
|
||||||
" SUM(dtb_tipi.segno_qta_scar * dtb_docr.qta_doc * dtb_docr.rap_conv) AS qta_doc,\n" +
|
" SUM(dtb_tipi.segno_qta_scar * dtb_docr.qta_doc * dtb_docr.rap_conv) AS qta_doc,\n" +
|
||||||
" SUM(IIF(dtb_doct.num_cmov is not null,1, 0) * dtb_docr.qta_doc * dtb_docr.rap_conv) AS qta_fatt\n" +
|
" SUM(IIF(dtb_doct.num_cmov is not null,1, 0) * dtb_docr.qta_doc * dtb_docr.rap_conv) AS qta_fatt\n" +
|
||||||
" FROM dtb_doct\n" +
|
" FROM dtb_doct\n" +
|
||||||
" INNER JOIN dtb_docr ON dtb_doct.cod_anag = dtb_docr.cod_anag AND\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.cod_dtip = dtb_docr.cod_dtip AND\n" +
|
||||||
" dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
|
" dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
|
||||||
" dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
|
" dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
|
||||||
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
|
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
|
||||||
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||||
" inner join art on dtb_docr.cod_mart = art.cod_mart\n" +
|
" inner join art on dtb_docr.cod_mart = art.cod_mart\n" +
|
||||||
" WHERE dtb_doct.gestione = 'V'\n" +
|
" WHERE dtb_doct.gestione = 'V'\n" +
|
||||||
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
||||||
" AND dtb_docr.id_contratto IS NOT NULL\n" +
|
" AND dtb_docr.id_contratto IS NOT NULL\n" +
|
||||||
" GROUP BY dtb_docr.id_contratto,\n" +
|
" GROUP BY dtb_docr.id_contratto,\n" +
|
||||||
" art.id_art_equi )\n" +
|
" art.id_art_equi )\n" +
|
||||||
"SELECT DISTINCT vtb_offr.id_offerta,\n" +
|
", storico AS (SELECT vtb_offr_storico.id_offerta,\n" +
|
||||||
" vtb_offr.cod_mart,\n" +
|
" art.id_art_equi,\n" +
|
||||||
" ISNULL(ord.qta_ord / vtb_offr.rap_conv_vend, 0) AS qta_ord,\n" +
|
" sum(vtb_offr_storico.qta_ord) as qta_ord,\n" +
|
||||||
" ISNULL(doc.qta_doc / vtb_offr.rap_conv_vend, 0) AS qta_doc,\n" +
|
" sum(vtb_offr_storico.qta_doc) as qta_doc\n" +
|
||||||
" ISNULL(doc.qta_fatt / vtb_offr.rap_conv_vend, 0) AS qta_fatt\n" +
|
" FROM vtb_offr_storico\n" +
|
||||||
"FROM vtb_offr\n" +
|
" inner join art on vtb_offr_storico.cod_mart = art.cod_mart\n" +
|
||||||
" INNER JOIN vtb_offt ON vtb_offr.id_offerta = vtb_offt.id_offerta\n" +
|
" GROUP BY vtb_offr_storico.id_offerta,\n" +
|
||||||
" inner join art on vtb_offr.cod_mart = art.cod_mart\n" +
|
" art.id_art_equi ) \n" +
|
||||||
" LEFT OUTER JOIN ord ON vtb_offr.id_offerta = ord.id_contratto AND art.id_art_equi = ord.id_art_equi\n" +
|
"SELECT DISTINCT vtb_offr.id_offerta,\n" +
|
||||||
" LEFT OUTER JOIN doc ON vtb_offr.id_offerta = doc.id_contratto AND art.id_art_equi = doc.id_art_equi\n" +
|
" vtb_offr.cod_mart,\n" +
|
||||||
"WHERE (vtb_offr.qta_ord <> ISNULL(ord.qta_ord / vtb_offr.rap_conv_vend, 0) OR\n" +
|
" ISNULL(ord.qta_ord / vtb_offr.rap_conv_vend, 0) + IsNull(storico.qta_ord, 0) AS qta_ord,\n" +
|
||||||
" vtb_offr.qta_doc <> ISNULL(doc.qta_doc / vtb_offr.rap_conv_vend, 0) OR\n" +
|
" ISNULL(doc.qta_doc / vtb_offr.rap_conv_vend, 0) + IsNull(storico.qta_doc, 0) AS qta_doc,\n" +
|
||||||
" vtb_offr.qta_fatt <> ISNULL(doc.qta_fatt / vtb_offr.rap_conv_vend, 0)) AND\n" +
|
" ISNULL(doc.qta_fatt / vtb_offr.rap_conv_vend, 0) AS qta_fatt\n" +
|
||||||
" vtb_offt.stato_offerta = 3";
|
"FROM vtb_offr\n" +
|
||||||
|
" INNER JOIN vtb_offt ON vtb_offr.id_offerta = vtb_offt.id_offerta\n" +
|
||||||
|
" inner join art on vtb_offr.cod_mart = art.cod_mart\n" +
|
||||||
|
" LEFT OUTER JOIN ord ON vtb_offr.id_offerta = ord.id_contratto AND art.id_art_equi = ord.id_art_equi\n" +
|
||||||
|
" LEFT OUTER JOIN doc ON vtb_offr.id_offerta = doc.id_contratto AND art.id_art_equi = doc.id_art_equi\n" +
|
||||||
|
" LEFT OUTER JOIN storico ON vtb_offr.id_offerta = storico.id_offerta AND art.id_art_equi = storico.id_art_equi\n" +
|
||||||
|
"WHERE (vtb_offr.qta_ord <> ISNULL(ord.qta_ord / vtb_offr.rap_conv_vend, 0) OR\n" +
|
||||||
|
" vtb_offr.qta_doc <> ISNULL(doc.qta_doc / vtb_offr.rap_conv_vend, 0) OR\n" +
|
||||||
|
" vtb_offr.qta_fatt <> ISNULL(doc.qta_fatt / vtb_offr.rap_conv_vend, 0)) AND\n" +
|
||||||
|
" vtb_offt.stato_offerta = 3";
|
||||||
|
|
||||||
List<VtbOffr> vtbOffrs = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, VtbOffr.class, OperationType.UPDATE);
|
List<VtbOffr> vtbOffrs = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, VtbOffr.class, OperationType.UPDATE);
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -394,7 +396,7 @@ public class PvmController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
List<AnomalieResiDTO> anomalieResiDTOS = pvmService.checkDocReso(docFromPickingDTO);
|
List<AnomalieResiDTO> anomalieResiDTOS = pvmService.checkDocumentiInterni(docFromPickingDTO);
|
||||||
if (anomalieResiDTOS == null || anomalieResiDTOS.isEmpty())
|
if (anomalieResiDTOS == null || anomalieResiDTOS.isEmpty())
|
||||||
return ServiceRestResponse.createEntityPositiveResponse(pvmServiceSave.saveDocFromPicking(docFromPickingDTO));
|
return ServiceRestResponse.createEntityPositiveResponse(pvmServiceSave.saveDocFromPicking(docFromPickingDTO));
|
||||||
else {
|
else {
|
||||||
@@ -418,7 +420,7 @@ public class PvmController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
List<AnomalieResiDTO> anomalieResiDTOS = pvmService.checkDocReso(docFromPickingDTO);
|
List<AnomalieResiDTO> anomalieResiDTOS = pvmService.checkDocumentiInterni(docFromPickingDTO);
|
||||||
if (anomalieResiDTOS == null || anomalieResiDTOS.isEmpty())
|
if (anomalieResiDTOS == null || anomalieResiDTOS.isEmpty())
|
||||||
return ServiceRestResponse.createPositiveResponse();
|
return ServiceRestResponse.createPositiveResponse();
|
||||||
else {
|
else {
|
||||||
@@ -809,4 +811,17 @@ public class PvmController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "pvm/updateDataCons", method = RequestMethod.POST)
|
||||||
|
public @ResponseBody
|
||||||
|
ServiceRestResponse updateDataCons(
|
||||||
|
@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||||
|
@RequestParam String gestione,
|
||||||
|
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date dataOrd ,
|
||||||
|
@RequestParam Integer numOrd,
|
||||||
|
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date dataCons) throws Exception {
|
||||||
|
|
||||||
|
return ServiceRestResponse.createPositiveResponse(pvmService.updateDataCons(gestione, dataOrd, numOrd, dataCons));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package it.integry.ems.retail.pvmRetail.dto;
|
||||||
|
|
||||||
|
public class CheckDocInterniShelfLifeDTO {
|
||||||
|
private String codMgrp;
|
||||||
|
private Integer gg;
|
||||||
|
|
||||||
|
public String getCodMgrp() {
|
||||||
|
return codMgrp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CheckDocInterniShelfLifeDTO setCodMgrp(String codMgrp) {
|
||||||
|
this.codMgrp = codMgrp;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getGg() {
|
||||||
|
return gg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CheckDocInterniShelfLifeDTO setGg(Integer gg) {
|
||||||
|
this.gg = gg;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -38,7 +38,6 @@ import it.integry.ems.sync.MultiDBTransaction.Connection;
|
|||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
import it.integry.ems.system.service.SystemService;
|
import it.integry.ems.system.service.SystemService;
|
||||||
import it.integry.ems.user.UserSession;
|
import it.integry.ems.user.UserSession;
|
||||||
import it.integry.ems.utility.UtilityDebug;
|
|
||||||
import it.integry.ems.utility.UtilityEntity;
|
import it.integry.ems.utility.UtilityEntity;
|
||||||
import it.integry.ems_model.base.EntityBase;
|
import it.integry.ems_model.base.EntityBase;
|
||||||
import it.integry.ems_model.coollection.Coollection;
|
import it.integry.ems_model.coollection.Coollection;
|
||||||
@@ -171,7 +170,7 @@ public class PvmService {
|
|||||||
" WHERE STB_GEST_SETUP_DEPO.citta_cons like '%" + citta + "%' " +
|
" WHERE STB_GEST_SETUP_DEPO.citta_cons like '%" + citta + "%' " +
|
||||||
" GROUP BY num_range, dstart, dEnd, num_cons_max, CITTA_CONS ";
|
" GROUP BY num_range, dstart, dEnd, num_cons_max, CITTA_CONS ";
|
||||||
|
|
||||||
List<OrdChkConsDTO> ordChkConsDTO = UtilityDB.executeSimpleQueryDTO(conn,sql, OrdChkConsDTO.class);
|
List<OrdChkConsDTO> ordChkConsDTO = UtilityDB.executeSimpleQueryDTO(conn, sql, OrdChkConsDTO.class);
|
||||||
|
|
||||||
return ordChkConsDTO;
|
return ordChkConsDTO;
|
||||||
|
|
||||||
@@ -1818,7 +1817,7 @@ public class PvmService {
|
|||||||
return mtbColtsToReturn;
|
return mtbColtsToReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<AnomalieResiDTO> checkDocReso(DocFromPickingDTO docFromPickingDTO) throws Exception {
|
public List<AnomalieResiDTO> checkDocumentiInterni(DocFromPickingDTO docFromPickingDTO) throws Exception {
|
||||||
List<AnomalieResiDTO> anomalieResiDTO = new ArrayList<>();
|
List<AnomalieResiDTO> anomalieResiDTO = new ArrayList<>();
|
||||||
|
|
||||||
String codMdep = getCodMdep(requestDataDTO.getUsername());
|
String codMdep = getCodMdep(requestDataDTO.getUsername());
|
||||||
@@ -1866,12 +1865,21 @@ public class PvmService {
|
|||||||
if (chkTracciabilita) {
|
if (chkTracciabilita) {
|
||||||
List<HashMap<String, Object>> setupSectionDet = setupGest.getSetupSectionDet(multiDBTransactionManager.getPrimaryConnection(), "PVM", "DOC_INTERNI", "DAYS_TO_EXP", "dtb_tipi");
|
List<HashMap<String, Object>> setupSectionDet = setupGest.getSetupSectionDet(multiDBTransactionManager.getPrimaryConnection(), "PVM", "DOC_INTERNI", "DAYS_TO_EXP", "dtb_tipi");
|
||||||
|
|
||||||
String gg ="";
|
List<CheckDocInterniShelfLifeDTO> checkDocInterniShelfLifeDTOS = new ArrayList<>();
|
||||||
|
Integer gg = null;
|
||||||
if (setupSectionDet != null && !setupSectionDet.isEmpty()) {
|
if (setupSectionDet != null && !setupSectionDet.isEmpty()) {
|
||||||
gg = setupSectionDet
|
String ret = setupSectionDet
|
||||||
.stream()
|
.stream()
|
||||||
.filter(x -> x.get("val_col_rif") != null && ((String) x.get("val_col_rif")).equalsIgnoreCase(codDtip))
|
.filter(x -> x.get("val_col_rif") != null && ((String) x.get("val_col_rif")).equalsIgnoreCase(codDtip))
|
||||||
.findFirst().map(x -> (String) x.get("value")).orElse(null);
|
.findFirst().map(x -> (String) x.get("value")).orElse(null);
|
||||||
|
if (!UtilityString.isNullOrEmpty(ret) ) {
|
||||||
|
try {
|
||||||
|
gg = Integer.parseInt(ret);
|
||||||
|
} catch (NumberFormatException ex) {
|
||||||
|
checkDocInterniShelfLifeDTOS = Arrays.asList(jsonObjectMapper.readValue(ret, CheckDocInterniShelfLifeDTO[].class));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
sql =
|
sql =
|
||||||
Query.format(
|
Query.format(
|
||||||
@@ -1975,7 +1983,8 @@ public class PvmService {
|
|||||||
" movi.data_scad AS data_scad_acq,\n" +
|
" movi.data_scad AS data_scad_acq,\n" +
|
||||||
" movi.suddivisione,\n" +
|
" movi.suddivisione,\n" +
|
||||||
" mtb_aart.gg_scad_partita,\n" +
|
" mtb_aart.gg_scad_partita,\n" +
|
||||||
" movi.data_doc\n" +
|
" movi.data_doc,\n" +
|
||||||
|
" mtb_aart.cod_mgrp\n " +
|
||||||
"FROM colli\n" +
|
"FROM colli\n" +
|
||||||
" INNER JOIN mtb_aart ON colli.cod_mart = mtb_aart.cod_mart\n" +
|
" INNER JOIN mtb_aart ON colli.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
" LEFT OUTER JOIN setup ON mtb_aart.cod_mgrp = setup.cod_mgrp\n" +
|
" LEFT OUTER JOIN setup ON mtb_aart.cod_mgrp = setup.cod_mgrp\n" +
|
||||||
@@ -1989,6 +1998,14 @@ public class PvmService {
|
|||||||
for (HashMap<String, Object> lotto : partiteErrate) {
|
for (HashMap<String, Object> lotto : partiteErrate) {
|
||||||
String codMart = UtilityHashMap.getValueIfExists(lotto, "cod_mart");
|
String codMart = UtilityHashMap.getValueIfExists(lotto, "cod_mart");
|
||||||
Date dataScad = UtilityHashMap.getValueIfExists(lotto, "data_scad");
|
Date dataScad = UtilityHashMap.getValueIfExists(lotto, "data_scad");
|
||||||
|
String codMgrp = UtilityHashMap.getValueIfExists(lotto, "cod_mgrp");
|
||||||
|
|
||||||
|
if (checkDocInterniShelfLifeDTOS != null && !checkDocInterniShelfLifeDTOS.isEmpty()) {
|
||||||
|
gg = checkDocInterniShelfLifeDTOS
|
||||||
|
.stream()
|
||||||
|
.filter(x -> x.getCodMgrp().equalsIgnoreCase(codMgrp))
|
||||||
|
.map(x -> x.getGg()).findFirst().orElse(null);
|
||||||
|
}
|
||||||
if (dataScad == null) {
|
if (dataScad == null) {
|
||||||
anomalieResiDTO.add(setAnomalia(anomalieResiDTO, codMart, dataScad, "Inserire la data scadenza."));
|
anomalieResiDTO.add(setAnomalia(anomalieResiDTO, codMart, dataScad, "Inserire la data scadenza."));
|
||||||
continue;
|
continue;
|
||||||
@@ -2005,7 +2022,7 @@ public class PvmService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(gg) && UtilityDate.DaysAfter(dataScad, UtilityDate.dateAdd(Calendar.DATE, Integer.parseInt(gg), UtilityDate.getTodayWithoutTime())) > 0) {
|
if (gg != null && UtilityDate.DaysAfter(dataScad, UtilityDate.dateAdd(Calendar.DATE, gg, UtilityDate.getTodayWithoutTime())) > 0) {
|
||||||
anomalieResiDTO.add(setAnomalia(anomalieResiDTO, codMart, dataScad, "Impossibile effetture un reso di un articolo sotto scadenza."));
|
anomalieResiDTO.add(setAnomalia(anomalieResiDTO, codMart, dataScad, "Impossibile effetture un reso di un articolo sotto scadenza."));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -2028,8 +2045,8 @@ public class PvmService {
|
|||||||
if (qtaAcq != null && UtilityBigDecimal.greaterThan(UtilityHashMap.getValueIfExists(lotto, "qta_col"), qtaAcq)) {
|
if (qtaAcq != null && UtilityBigDecimal.greaterThan(UtilityHashMap.getValueIfExists(lotto, "qta_col"), qtaAcq)) {
|
||||||
anomalieResiDTO.add(setAnomalia(anomalieResiDTO, codMart, dataScad, String.format("Quantità resa maggiore di quantità acquistata %s", qtaAcq)));
|
anomalieResiDTO.add(setAnomalia(anomalieResiDTO, codMart, dataScad, String.format("Quantità resa maggiore di quantità acquistata %s", qtaAcq)));
|
||||||
}
|
}
|
||||||
} else if (!UtilityString.isNullOrEmpty(gg)) {
|
} else if (gg != null && !gestioneDoc.equalsIgnoreCase("A")) {
|
||||||
if (UtilityDate.DaysAfter(UtilityDate.getTodayWithoutTime(), dataScad) > Integer.parseInt(gg)) {
|
if (UtilityDate.DaysAfter(UtilityDate.getTodayWithoutTime(), dataScad) > gg) {
|
||||||
anomalieResiDTO.add(setAnomalia(anomalieResiDTO, codMart, dataScad, String.format("Impossibile effetture un %S di un articolo con scadenza %s.", codDtip, UtilityDate.formatDate(dataScad, CommonConstants.DATE_FORMAT_DMY))));
|
anomalieResiDTO.add(setAnomalia(anomalieResiDTO, codMart, dataScad, String.format("Impossibile effetture un %S di un articolo con scadenza %s.", codDtip, UtilityDate.formatDate(dataScad, CommonConstants.DATE_FORMAT_DMY))));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -2225,7 +2242,7 @@ public class PvmService {
|
|||||||
Integer numOrd = inputValue.get("numOrd").asInt() != 0 ? inputValue.get("numOrd").asInt() : null;
|
Integer numOrd = inputValue.get("numOrd").asInt() != 0 ? inputValue.get("numOrd").asInt() : null;
|
||||||
|
|
||||||
if (numOrd == null) {
|
if (numOrd == null) {
|
||||||
dataOrd = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(new Date());
|
dataOrd = new SimpleDateFormat(DATE_FORMAT_YMD).format(new Date());
|
||||||
}
|
}
|
||||||
|
|
||||||
String query = "SELECT mtb_depo.cod_anag, mtb_depo.cod_vdes " +
|
String query = "SELECT mtb_depo.cod_anag, mtb_depo.cod_vdes " +
|
||||||
@@ -2247,7 +2264,7 @@ public class PvmService {
|
|||||||
info.close();
|
info.close();
|
||||||
|
|
||||||
wdtbOrdt.setGestione(gestione);
|
wdtbOrdt.setGestione(gestione);
|
||||||
wdtbOrdt.setDataOrd(new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).parse(dataOrd));
|
wdtbOrdt.setDataOrd(new SimpleDateFormat(DATE_FORMAT_YMD).parse(dataOrd));
|
||||||
wdtbOrdt.setNumOrd(numOrd);
|
wdtbOrdt.setNumOrd(numOrd);
|
||||||
wdtbOrdt.setSerie(serie);
|
wdtbOrdt.setSerie(serie);
|
||||||
wdtbOrdt.setCodAnag(codAnag);
|
wdtbOrdt.setCodAnag(codAnag);
|
||||||
@@ -2271,7 +2288,7 @@ public class PvmService {
|
|||||||
//Letta la riga ord direttamente dal db.
|
//Letta la riga ord direttamente dal db.
|
||||||
query = "SELECT riga_ord "
|
query = "SELECT riga_ord "
|
||||||
+ "FROM wdtb_ordr "
|
+ "FROM wdtb_ordr "
|
||||||
+ "WHERE data_ord = " + UtilityDB.valueDateToString(new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).parse(dataOrd), CommonConstants.DATE_FORMAT_YMD) + " AND "
|
+ "WHERE data_ord = " + UtilityDB.valueDateToString(new SimpleDateFormat(DATE_FORMAT_YMD).parse(dataOrd), DATE_FORMAT_YMD) + " AND "
|
||||||
+ " num_ord = " + numOrd + " AND "
|
+ " num_ord = " + numOrd + " AND "
|
||||||
+ " cod_mart = " + UtilityDB.valueToString(codStyle) + " AND "
|
+ " cod_mart = " + UtilityDB.valueToString(codStyle) + " AND "
|
||||||
+ " cod_col = " + UtilityDB.valueToString(codCol) + " AND "
|
+ " cod_col = " + UtilityDB.valueToString(codCol) + " AND "
|
||||||
@@ -2292,7 +2309,7 @@ public class PvmService {
|
|||||||
if (rigaOrd != null) {
|
if (rigaOrd != null) {
|
||||||
wdtbOrdr.setOperation(OperationType.DELETE);
|
wdtbOrdr.setOperation(OperationType.DELETE);
|
||||||
|
|
||||||
wdtbOrdr.setDataOrd(new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).parse(dataOrd));
|
wdtbOrdr.setDataOrd(new SimpleDateFormat(DATE_FORMAT_YMD).parse(dataOrd));
|
||||||
wdtbOrdr.setNumOrd(numOrd);
|
wdtbOrdr.setNumOrd(numOrd);
|
||||||
wdtbOrdr.setGestione(gestione);
|
wdtbOrdr.setGestione(gestione);
|
||||||
wdtbOrdr.setSerie(serie);
|
wdtbOrdr.setSerie(serie);
|
||||||
@@ -2643,4 +2660,32 @@ public class PvmService {
|
|||||||
return null;
|
return null;
|
||||||
return permessi.stream().collect(Collectors.groupingBy(PvmAuthorizationDTO::getUsername));
|
return permessi.stream().collect(Collectors.groupingBy(PvmAuthorizationDTO::getUsername));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DtbOrdt updateDataCons(String gestione, Date dataOrd, Integer numOrd, Date dataCons) throws Exception {
|
||||||
|
if (dataCons == null) {
|
||||||
|
throw new Exception("Data di consegna non valida");
|
||||||
|
}
|
||||||
|
|
||||||
|
String sql = Query.format("SELECT * FROM dtb_ordr WHERE gestione = %s AND data_ord = %s AND num_ord = %s",
|
||||||
|
gestione, dataOrd, numOrd);
|
||||||
|
|
||||||
|
List<DtbOrdr> dtbOrdrList = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdr.class);
|
||||||
|
|
||||||
|
dtbOrdrList.stream().forEach(x -> {
|
||||||
|
x.setDataCons(dataCons);
|
||||||
|
x.setOperation(OperationType.UPDATE);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
DtbOrdt dtbOrdt = new DtbOrdt()
|
||||||
|
.setGestione(gestione)
|
||||||
|
.setDataOrd(dataOrd)
|
||||||
|
.setNumOrd(numOrd)
|
||||||
|
.setDtbOrdr(dtbOrdrList);
|
||||||
|
dtbOrdt.setOperation(OperationType.NO_OP);
|
||||||
|
|
||||||
|
entityProcessor.processEntity(dtbOrdt, multiDBTransactionManager);
|
||||||
|
return dtbOrdt;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,7 @@ import it.integry.ems.system.exchange.service.structure.ExchangeImportDataManage
|
|||||||
import it.integry.ems.system.exchange.service.structure.ExchangeImportSchemaManagerService;
|
import it.integry.ems.system.exchange.service.structure.ExchangeImportSchemaManagerService;
|
||||||
import it.integry.ems_model.base.EquatableEntityInterface;
|
import it.integry.ems_model.base.EquatableEntityInterface;
|
||||||
import it.integry.ems_model.entity.VtbOffr;
|
import it.integry.ems_model.entity.VtbOffr;
|
||||||
|
import it.integry.ems_model.entity.VtbOffrStorico;
|
||||||
import it.integry.ems_model.entity.VtbOfft;
|
import it.integry.ems_model.entity.VtbOfft;
|
||||||
import it.integry.ems_model.exception.EntityException;
|
import it.integry.ems_model.exception.EntityException;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
@@ -63,10 +64,12 @@ public class ExchangeContrattiImportService {
|
|||||||
|
|
||||||
String testataTableName = null;
|
String testataTableName = null;
|
||||||
String righeTableName = null;
|
String righeTableName = null;
|
||||||
|
String storicoTableName = null;
|
||||||
|
|
||||||
if (schemaType == ExchangeImportSchemaManagerService.SchemaType.ContrattiVendita) {
|
if (schemaType == ExchangeImportSchemaManagerService.SchemaType.ContrattiVendita) {
|
||||||
testataTableName = "vtb_offt_vend";
|
testataTableName = "vtb_offt_vend";
|
||||||
righeTableName = "vtb_offr_vend";
|
righeTableName = "vtb_offr_vend";
|
||||||
|
storicoTableName = "vtb_offr_storico_vend";
|
||||||
}
|
}
|
||||||
|
|
||||||
exchangeImportDataManagerService.prepareData(exchangeMultiDb.getPrimaryConnection(), useTempTable,
|
exchangeImportDataManagerService.prepareData(exchangeMultiDb.getPrimaryConnection(), useTempTable,
|
||||||
@@ -76,11 +79,11 @@ public class ExchangeContrattiImportService {
|
|||||||
|
|
||||||
final List<VtbOfft> exchangeImportedData = retrieveContratti(
|
final List<VtbOfft> exchangeImportedData = retrieveContratti(
|
||||||
exchangeMultiDb.getPrimaryConnection(),
|
exchangeMultiDb.getPrimaryConnection(),
|
||||||
true, false, testataTableName, righeTableName);
|
true, false, testataTableName, righeTableName, storicoTableName);
|
||||||
|
|
||||||
final List<VtbOfft> exchangeUpdatedData = retrieveContratti(
|
final List<VtbOfft> exchangeUpdatedData = retrieveContratti(
|
||||||
exchangeMultiDb.getPrimaryConnection(),
|
exchangeMultiDb.getPrimaryConnection(),
|
||||||
false, useTempTable, testataTableName, righeTableName);
|
false, useTempTable, testataTableName, righeTableName, storicoTableName);
|
||||||
|
|
||||||
List<EquatableEntityInterface> allData = exchangeImportDataManagerService
|
List<EquatableEntityInterface> allData = exchangeImportDataManagerService
|
||||||
.runSync(VtbOfft.class, exchangeImportedData, exchangeUpdatedData);
|
.runSync(VtbOfft.class, exchangeImportedData, exchangeUpdatedData);
|
||||||
@@ -97,6 +100,7 @@ public class ExchangeContrattiImportService {
|
|||||||
|
|
||||||
singleUpdateImported(exchangeMultiDb.getPrimaryConnection(), (VtbOfft) dataToSave, useTempTable, testataTableName);
|
singleUpdateImported(exchangeMultiDb.getPrimaryConnection(), (VtbOfft) dataToSave, useTempTable, testataTableName);
|
||||||
singleUpdateImported(exchangeMultiDb.getPrimaryConnection(), ((VtbOfft) dataToSave).getVtbOffr(), useTempTable, righeTableName);
|
singleUpdateImported(exchangeMultiDb.getPrimaryConnection(), ((VtbOfft) dataToSave).getVtbOffr(), useTempTable, righeTableName);
|
||||||
|
singleUpdateStoricoImported(exchangeMultiDb.getPrimaryConnection(), ((VtbOfft) dataToSave).getVtbOffrStorico(), useTempTable, storicoTableName);
|
||||||
|
|
||||||
internalMultiDb.commitAll();
|
internalMultiDb.commitAll();
|
||||||
exchangeMultiDb.commitAll();
|
exchangeMultiDb.commitAll();
|
||||||
@@ -122,10 +126,11 @@ public class ExchangeContrattiImportService {
|
|||||||
|
|
||||||
|
|
||||||
private List<VtbOfft> retrieveContratti(Connection connection, boolean retrieveAlreadyImported, boolean useTempTable,
|
private List<VtbOfft> retrieveContratti(Connection connection, boolean retrieveAlreadyImported, boolean useTempTable,
|
||||||
String testataOriginalName, String righeOriginalName) throws Exception {
|
String testataOriginalName, String righeOriginalName, String storicoOriginalName) throws Exception {
|
||||||
|
|
||||||
String testataTableName = testataOriginalName + (useTempTable ? "_tmp" : "");
|
String testataTableName = testataOriginalName + (useTempTable ? "_tmp" : "");
|
||||||
String righeTableName = righeOriginalName + (useTempTable ? "_tmp" : "");
|
String righeTableName = righeOriginalName + (useTempTable ? "_tmp" : "");
|
||||||
|
String storicoTableName = storicoOriginalName + (useTempTable ? "_tmp" : "");
|
||||||
|
|
||||||
|
|
||||||
final List<VtbOfft> testate = exchangeImportDataManagerService.retrieveDataFromExchange(connection, VtbOfft.class,
|
final List<VtbOfft> testate = exchangeImportDataManagerService.retrieveDataFromExchange(connection, VtbOfft.class,
|
||||||
@@ -134,6 +139,9 @@ public class ExchangeContrattiImportService {
|
|||||||
final List<VtbOffr> righe = exchangeImportDataManagerService.retrieveDataFromExchange(connection, VtbOffr.class,
|
final List<VtbOffr> righe = exchangeImportDataManagerService.retrieveDataFromExchange(connection, VtbOffr.class,
|
||||||
righeTableName, null, retrieveAlreadyImported);
|
righeTableName, null, retrieveAlreadyImported);
|
||||||
|
|
||||||
|
final List<VtbOffrStorico> storico = exchangeImportDataManagerService.retrieveDataFromExchange(connection, VtbOffrStorico.class,
|
||||||
|
storicoTableName, null, retrieveAlreadyImported);
|
||||||
|
|
||||||
|
|
||||||
testate
|
testate
|
||||||
.parallelStream()
|
.parallelStream()
|
||||||
@@ -141,7 +149,11 @@ public class ExchangeContrattiImportService {
|
|||||||
x.setVtbOffr(righe.parallelStream()
|
x.setVtbOffr(righe.parallelStream()
|
||||||
.filter(y -> Objects.hash(x.getIdOfferta()) == Objects.hash(y.getIdOfferta()) &&
|
.filter(y -> Objects.hash(x.getIdOfferta()) == Objects.hash(y.getIdOfferta()) &&
|
||||||
(Objects.equals(x.getIdOfferta(), y.getIdOfferta())))
|
(Objects.equals(x.getIdOfferta(), y.getIdOfferta())))
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList()))
|
||||||
|
.setVtbOffrStorico(storico.parallelStream()
|
||||||
|
.filter(y -> Objects.hash(x.getIdOfferta()) == Objects.hash(y.getIdOfferta()) &&
|
||||||
|
(Objects.equals(x.getIdOfferta(), y.getIdOfferta())))
|
||||||
|
.collect(Collectors.toList()));
|
||||||
});
|
});
|
||||||
|
|
||||||
return testate;
|
return testate;
|
||||||
@@ -166,4 +178,15 @@ public class ExchangeContrattiImportService {
|
|||||||
|
|
||||||
exchangeImportDataManagerService.updateImportedStatus(connection, tableName, importedRowKeys, useTempTable);
|
exchangeImportDataManagerService.updateImportedStatus(connection, tableName, importedRowKeys, useTempTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void singleUpdateStoricoImported(Connection connection, List<VtbOffrStorico> imported, boolean useTempTable, String tableName) throws Exception {
|
||||||
|
final List<HashMap<String, Object>> importedRowKeys = imported.stream()
|
||||||
|
.map(x -> new HashMap<String, Object>() {{
|
||||||
|
put("id_offerta", x.getIdOfferta());
|
||||||
|
put("cod_mart", x.getCodMart());
|
||||||
|
}})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
exchangeImportDataManagerService.updateImportedStatus(connection, tableName, importedRowKeys, useTempTable);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -147,6 +147,7 @@ public class ExchangeImportSchemaManagerService {
|
|||||||
put(SchemaType.ContrattiVendita, new HashMap<String, Class<? extends EntityInterface>>() {{
|
put(SchemaType.ContrattiVendita, new HashMap<String, Class<? extends EntityInterface>>() {{
|
||||||
put("vtb_offt_vend", VtbOfft.class);
|
put("vtb_offt_vend", VtbOfft.class);
|
||||||
put("vtb_offr_vend", VtbOffr.class);
|
put("vtb_offr_vend", VtbOffr.class);
|
||||||
|
put("vtb_offr_storico_vend", VtbOffrStorico.class);
|
||||||
}});
|
}});
|
||||||
put(SchemaType.DistinteBase, new HashMap<String, Class<? extends EntityInterface>>() {{
|
put(SchemaType.DistinteBase, new HashMap<String, Class<? extends EntityInterface>>() {{
|
||||||
put("jtb_cicl", JtbCicl.class);
|
put("jtb_cicl", JtbCicl.class);
|
||||||
|
|||||||
Reference in New Issue
Block a user