Nell'invio delle variazioni aggiunta procedura di invio variazioni Griglia di acquisto

This commit is contained in:
2024-02-28 15:00:00 +01:00
parent d702d208ab
commit a71cf5517b
2 changed files with 96 additions and 66 deletions

View File

@@ -103,6 +103,7 @@ public class VariazioniPvInputDTO {
public enum Type {
VARIAZIONI("V"),
PROMOZIONI("P"),
GRIGLIA("G"),
LISTINO("L");
private String text;

View File

@@ -123,7 +123,14 @@ public class VariazioniPVService {
String query = getQueryVariazioni(variazioniPvDTO, setup, codVlis, getSetupSectionDepo.get("SELEZIONA_GRIGLIE"));
List<HashMap<String, Object>> elencoVar = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
if (getSetupSectionDepo.get("SELEZIONA_GRIGLIE") != null && getSetupSectionDepo.get("SELEZIONA_GRIGLIE").equalsIgnoreCase("S")) {
boolean getVariazioneGriglia = false;
if ((variazioniPvDTO.getTipoReportEnum() == VariazioniPvInputDTO.Type.GRIGLIA ||
variazioniPvDTO.getTipoReportEnum() == VariazioniPvInputDTO.Type.LISTINO) &&
getSetupSectionDepo.get("SELEZIONA_GRIGLIE") != null &&
getSetupSectionDepo.get("SELEZIONA_GRIGLIE").equalsIgnoreCase("S")) {
getVariazioneGriglia = true;
grigliaAcquisto = grigliaAcquistoHandlerService.getGrigliaAcquisto();
grigliaAcquisto = Stream.of(grigliaAcquisto)
.filter(x -> x.getDataValidita().equals(variazioniPvDTO.getDataValidita()) &&
@@ -135,7 +142,7 @@ public class VariazioniPVService {
CodMartType codMart = fillArticoloData(objectFactory,
variazioni, variazioniPvDTO, invioIngredienti, getSetupSectionDepo, codMdep, colNameDescrEstesa,
setup.get("LIBERO1"),
setup.get("LIBERO2"));
setup.get("LIBERO2"), getVariazioneGriglia);
listinoDTO.getContent().add(objectFactory.createCodVlisTypeCodMart(codMart));
}
}
@@ -156,7 +163,8 @@ public class VariazioniPVService {
String codMdep,
String colNameDescrEstesa,
String valLibero1,
String valLibero2) throws Exception {
String valLibero2,
boolean getVariazioneGriglia) throws Exception {
CodMartType codMartType = objectFactory.createCodMartType();
String codMart = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_mart"));
String flagTipoPromo = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "flag_tipo_promo"));
@@ -325,7 +333,7 @@ public class VariazioniPVService {
//DATI GRIGLIA DI ACQUISTO
if ("S".equalsIgnoreCase(setupDepo.get("SELEZIONA_GRIGLIE"))) {
getDatiGriglia(objectFactory, codMart, codMdep, variazioniPvDTO.getDataValidita(), codMartType);
getDatiGriglia(objectFactory, codMart, codMdep, variazioniPvDTO.getDataValidita(), codMartType, getVariazioneGriglia);
}
if ("S".equalsIgnoreCase(setupDepo.get("ABILITA_CAMPI_LIBERI"))) {
@@ -612,6 +620,22 @@ public class VariazioniPVService {
.replace("'[COD_VLIS]'", UtilityDB.valueToString(codVlis))
.replace("'[DATA_VALIDITA]'", UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD));
break;
case GRIGLIA:
queryAssortimento =
"SELECT mtb_depo.cod_vlis,\n" +
" atb_griglie_art.cod_mart,\n" +
" 'G' AS tipo_variazione,\n" +
" CONVERT(VARCHAR(15), NULL) AS cod_mart_view,\n" +
" 'N' AS 'fine_promo'\n" +
"FROM atb_griglie_art\n" +
" INNER JOIN mtb_depo ON atb_griglie_art.cod_mdep = mtb_depo.cod_mdep\n" +
"WHERE atb_griglie_art.data_validita BETWEEN DateAdd(day, -1, '[DATA_VALIDITA]') AND '[DATA_VALIDITA]'";
queryAssortimento =
queryAssortimento
.replace("'[COD_VLIS]'", UtilityDB.valueToString(codVlis))
.replace("'[DATA_VALIDITA]'", UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD));
break;
case PROMOZIONI:
String filtroPromoOrto = setup.get("FILTRO_ART_ORTOFRUTTA");
queryAssortimento =
@@ -853,82 +877,87 @@ public class VariazioniPVService {
return codiciABarreType;
}
private void getDatiGriglia(ObjectFactory objectFactory, String codMart, String codMdep, Date dataValidita, CodMartType codMartType) throws Exception {
private void getDatiGriglia(ObjectFactory objectFactory, String codMart, String codMdep, Date dataValidita, CodMartType codMartType, boolean getVariazioneGriglia) throws Exception {
CodAlisType codAlisType = objectFactory.createCodAlisType();
List<GrigliaAcquistoDTO> grigliaArticolo = Stream.of(grigliaAcquisto)
.filter(x -> x.getCodMart().equalsIgnoreCase(codMart) &&
x.getCodMdep().equalsIgnoreCase(codMdep) &&
x.getDataValidita().equals(dataValidita))
.toList();
if (grigliaArticolo.isEmpty()) {
String tipoAssortimento = "",
tipoVariazioneGriglia = "",
codAlis = "",
descrList = "";
String query = "select cod_mart from mtb_comp where cod_comp = " + UtilityDB.valueToString(codMart) + " \n" +
"union all\n" +
"select cod_comp from mtb_comp where cod_mart = " + UtilityDB.valueToString(codMart);
if (getVariazioneGriglia) {
List<GrigliaAcquistoDTO> grigliaArticolo = Stream.of(grigliaAcquisto)
.filter(x -> x.getCodMart().equalsIgnoreCase(codMart) &&
x.getCodMdep().equalsIgnoreCase(codMdep) &&
x.getDataValidita().equals(dataValidita))
.toList();
List<String> kits = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query);
if (grigliaArticolo.isEmpty()) {
for (String kit : kits) {
grigliaArticolo = Stream.of(grigliaAcquisto)
.filter(x -> x.getCodMart().equalsIgnoreCase(kit) &&
x.getCodMdep().equalsIgnoreCase(codMdep) &&
x.getDataValidita().equals(dataValidita))
.toList();
if (!grigliaArticolo.isEmpty()) {
break;
String query = "select cod_mart from mtb_comp where cod_comp = " + UtilityDB.valueToString(codMart) + " \n" +
"union all\n" +
"select cod_comp from mtb_comp where cod_mart = " + UtilityDB.valueToString(codMart);
List<String> kits = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query);
for (String kit : kits) {
grigliaArticolo = Stream.of(grigliaAcquisto)
.filter(x -> x.getCodMart().equalsIgnoreCase(kit) &&
x.getCodMdep().equalsIgnoreCase(codMdep) &&
x.getDataValidita().equals(dataValidita))
.toList();
if (!grigliaArticolo.isEmpty()) {
break;
}
}
if (grigliaArticolo.isEmpty()) {
kits.add(codMart);
query =
"SELECT TOP 1 griglia.data_validita, " +
" griglia.cod_mdep, " +
" griglia.cod_mart, " +
" griglia.tipo_variazione, " +
" ISNULL(griglia.tipo_assortimento, '') AS tipo_assortimento, " +
" griglia.cod_alis, " +
" atb_list.descrizione AS descr_list " +
" FROM atb_list\n" +
"INNER JOIN dbo.getGrigliaAcquisto(" + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ", NULL, " +
UtilityDB.valueToString(codMdep) + ", NULL, NULL) griglia ON atb_list.cod_alis = griglia.cod_alis\n" +
" WHERE griglia.tipo_variazione <> 'D' AND " +
" griglia.cod_mart IN (" + UtilityDB.listValueToString(kits) + ")\n " +
" ORDER BY griglia.data_validita DESC ";
grigliaArticolo = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, GrigliaAcquistoDTO.class);
}
}
if (grigliaArticolo.isEmpty()) {
kits.add(codMart);
if (grigliaArticolo != null && !grigliaArticolo.isEmpty()) {
codAlis = grigliaArticolo.get(0).getCodAlis();
tipoAssortimento = UtilityString.streNull(grigliaArticolo.get(0).getTipoAssortimento());
tipoVariazioneGriglia = grigliaArticolo.get(0).getTipoVariazione();
query =
"SELECT TOP 1 griglia.data_validita, " +
" griglia.cod_mdep, " +
" griglia.cod_mart, " +
" griglia.tipo_variazione, " +
" ISNULL(griglia.tipo_assortimento, '') AS tipo_assortimento, " +
" griglia.cod_alis, " +
" atb_list.descrizione AS descr_list " +
" FROM atb_list\n" +
"INNER JOIN dbo.getGrigliaAcquisto(" + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ", NULL, " +
UtilityDB.valueToString(codMdep) + ", NULL, NULL) griglia ON atb_list.cod_alis = griglia.cod_alis\n" +
" WHERE griglia.tipo_variazione <> 'D' AND " +
" griglia.cod_mart IN (" + UtilityDB.listValueToString(kits) + ")\n " +
" ORDER BY griglia.data_validita DESC ";
descrList = listini.get(codAlis);
if (descrList == null) {
String sql = "SELECT descrizione\n" +
"FROM atb_list\n" +
"WHERE cod_alis = " + UtilityDB.valueToString(codAlis);
grigliaArticolo = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, GrigliaAcquistoDTO.class);
descrList = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
listini.put(codAlis, descrList);
}
} else {
codAlis = "NO GRIGLIA";
descrList = codAlis;
tipoAssortimento = "F.A.";
tipoVariazioneGriglia = "";
}
}
String tipoAssortimento, tipoVariazioneGriglia, codAlis, descrList = null;
if (grigliaArticolo != null && !grigliaArticolo.isEmpty()) {
codAlis = grigliaArticolo.get(0).getCodAlis();
tipoAssortimento = UtilityString.streNull(grigliaArticolo.get(0).getTipoAssortimento());
tipoVariazioneGriglia = grigliaArticolo.get(0).getTipoVariazione();
descrList = listini.get(codAlis);
if (descrList == null) {
String sql = "SELECT descrizione\n" +
"FROM atb_list\n" +
"WHERE cod_alis = " + UtilityDB.valueToString(codAlis);
descrList = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
listini.put(codAlis, descrList);
}
} else {
codAlis = "NO GRIGLIA";
descrList = codAlis;
tipoAssortimento = "F.A.";
tipoVariazioneGriglia = "";
}
codAlisType.setValue(codAlis);
codAlisType.setDescrizione(descrList);
codMartType.getContent().add(objectFactory.createCodMartTypeTipoAssortimento(tipoAssortimento));