Gestiti i kit nelle variazioni
This commit is contained in:
@@ -27,10 +27,7 @@ import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
@Scope("request")
|
||||
@@ -41,8 +38,9 @@ public class VariazioniPVService {
|
||||
private SetupGest setupGest;
|
||||
@Autowired
|
||||
private GrigliaAcquistoHandlerService grigliaAcquistoHandlerService;
|
||||
@Autowired
|
||||
private ListiniAcquistoHandlerService listiniAcquistoHandlerService;
|
||||
|
||||
private HashMap<String, String> listini = new HashMap<>();
|
||||
private List<GrigliaAcquistoDTO> grigliaAcquisto = new ArrayList<>();
|
||||
|
||||
public String variazionePrezzoPVXml(VariazioniPvInputDTO variazioniPvDTO) throws Exception {
|
||||
|
||||
@@ -124,6 +122,15 @@ 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").equalsIgnoreCase("S")) {
|
||||
grigliaAcquisto = grigliaAcquistoHandlerService.getGrigliaAcquisto();
|
||||
grigliaAcquisto = Stream.of(grigliaAcquisto)
|
||||
.filter(x -> x.getDataValidita().equals(variazioniPvDTO.getDataValidita()) &&
|
||||
x.getCodMdep().equalsIgnoreCase(codMdep))
|
||||
.toList();
|
||||
}
|
||||
|
||||
for (HashMap<String, Object> variazioni : elencoVar) {
|
||||
CodMartType codMart = fillArticoloData(objectFactory,
|
||||
variazioni, variazioniPvDTO, invioIngredienti, getSetupSectionDepo, codMdep, colNameDescrEstesa,
|
||||
@@ -848,56 +855,72 @@ public class VariazioniPVService {
|
||||
|
||||
private void getDatiGriglia(ObjectFactory objectFactory, String codMart, String codMdep, Date dataValidita, CodMartType codMartType) throws Exception {
|
||||
CodAlisType codAlisType = objectFactory.createCodAlisType();
|
||||
List<GrigliaAcquistoDTO> grigliaAcquisto = grigliaAcquistoHandlerService.getGrigliaAcquisto();
|
||||
List<ListiniOrdiniAcquistoDTO> listini = listiniAcquistoHandlerService.getListini();
|
||||
|
||||
grigliaAcquisto = Stream.of(grigliaAcquisto)
|
||||
List<GrigliaAcquistoDTO> grigliaArticolo = Stream.of(grigliaAcquisto)
|
||||
.filter(x -> x.getCodMart().equalsIgnoreCase(codMart) &&
|
||||
x.getCodMdep().equalsIgnoreCase(codMdep) &&
|
||||
x.getDataValidita().equals(dataValidita))
|
||||
.toList();
|
||||
|
||||
if (grigliaAcquisto.isEmpty()) {
|
||||
String query =
|
||||
/*"with arts as (\n" +
|
||||
"select cod_mart, cod_mart as cod_mart_griglia from mtb_aart\n" +
|
||||
"union all\n" +
|
||||
"select cod_mart, cod_comp as cod_mart_griglia from mtb_comp \n"+
|
||||
"union all\n" +
|
||||
"select cod_comp, cod_mart as cod_mart_griglia from mtb_comp )\n"+ */
|
||||
"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" +
|
||||
//"INNER JOIN arts on griglia.cod_mart = arts.cod_mart_griglia \n" +
|
||||
" WHERE griglia.tipo_variazione <> 'D' AND " +
|
||||
" griglia.cod_mart = " + UtilityDB.valueToString(codMart) + "\n " +
|
||||
" ORDER BY griglia.data_validita DESC ";
|
||||
if (grigliaArticolo.isEmpty()) {
|
||||
|
||||
grigliaAcquisto = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, GrigliaAcquistoDTO.class);
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
String tipoAssortimento, tipoVariazioneGriglia, codAlis, descrList = null;
|
||||
|
||||
if (grigliaAcquisto != null && !grigliaAcquisto.isEmpty()) {
|
||||
codAlis = grigliaAcquisto.get(0).getCodAlis();
|
||||
tipoAssortimento = grigliaAcquisto.get(0).getTipoAssortimento();
|
||||
tipoVariazioneGriglia = grigliaAcquisto.get(0).getTipoVariazione();
|
||||
if (grigliaArticolo != null && !grigliaArticolo.isEmpty()) {
|
||||
codAlis = grigliaArticolo.get(0).getCodAlis();
|
||||
tipoAssortimento = UtilityString.streNull(grigliaArticolo.get(0).getTipoAssortimento());
|
||||
tipoVariazioneGriglia = grigliaArticolo.get(0).getTipoVariazione();
|
||||
|
||||
String codArtForn = grigliaAcquisto.get(0).getCodArtForn();
|
||||
listini = Stream.of(listini)
|
||||
.filter(x -> x.getCodAlis().equalsIgnoreCase(codAlis) &&
|
||||
x.getCodMart().equalsIgnoreCase(codMart) &&
|
||||
x.getCodArtFor().equalsIgnoreCase(codArtForn))
|
||||
.toList();
|
||||
descrList = listini.get(codAlis);
|
||||
if (descrList == null) {
|
||||
String sql = "SELECT descrizione\n" +
|
||||
"FROM atb_list\n" +
|
||||
"WHERE cod_alis = " + UtilityDB.valueToString(codAlis);
|
||||
|
||||
if (!listini.isEmpty()) descrList = listini.get(0).getDescrizione();
|
||||
descrList = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
listini.put(codAlis, descrList);
|
||||
}
|
||||
|
||||
} else {
|
||||
codAlis = "NO GRIGLIA";
|
||||
|
||||
@@ -54,6 +54,16 @@ public class GrigliaAcquistoHandlerService {
|
||||
//return !UtilityDebug.isDebugExecution() && !UtilityDebug.isIntegryServer() && settingsModel.isPrimaryInstance();
|
||||
}
|
||||
|
||||
private static boolean isGestioneAbilitata(MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
String sql =
|
||||
"SELECT CAST(COUNT(*) AS BIT)\n" +
|
||||
"FROM stb_abil\n" +
|
||||
"WHERE cod_opz IN ('AG018', 'AG019') \n" +
|
||||
" AND flag_abil <> 'N'";
|
||||
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
}
|
||||
|
||||
private HashMap<String, Object> checkDbDistributore(MultiDBTransactionManager multiDBTransactionManager) throws Exception{
|
||||
HashMap<String, Object> returnHashMap = new HashMap<>();
|
||||
String dbName = multiDBTransactionManager.getPrimaryDatasource().getDbName();
|
||||
@@ -92,16 +102,20 @@ public class GrigliaAcquistoHandlerService {
|
||||
String profileName = databases.get(dbName).get(0).getProfileName();
|
||||
MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(profileName, false);
|
||||
|
||||
HashMap<String, Object> checkDbDistributore = checkDbDistributore(multiDBTransactionManager);
|
||||
boolean existSync = (boolean) checkDbDistributore.get("existSync");
|
||||
if (isGestioneAbilitata(multiDBTransactionManager)){
|
||||
HashMap<String, Object> checkDbDistributore = checkDbDistributore(multiDBTransactionManager);
|
||||
boolean existSync = (boolean) checkDbDistributore.get("existSync");
|
||||
|
||||
if (!existSync){
|
||||
Date startDate = new Date();
|
||||
if (!existSync){
|
||||
Date startDate = new Date();
|
||||
|
||||
List<GrigliaAcquistoDTO> grigliaAcquistoDTO = getGrigliaAcquisto(multiDBTransactionManager);
|
||||
grigliaAcquistoCachedData.put(dbName.toUpperCase(), grigliaAcquistoDTO);
|
||||
List<GrigliaAcquistoDTO> grigliaAcquistoDTO = getGrigliaAcquisto(multiDBTransactionManager);
|
||||
|
||||
logger.trace(profileName + " - Griglia acquisto: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
if(!grigliaAcquistoDTO.isEmpty())
|
||||
grigliaAcquistoCachedData.put(dbName.toUpperCase(), grigliaAcquistoDTO);
|
||||
|
||||
logger.trace(profileName + " - Griglia acquisto: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
}
|
||||
}
|
||||
|
||||
multiDBTransactionManager.closeAll();
|
||||
@@ -156,7 +170,7 @@ public class GrigliaAcquistoHandlerService {
|
||||
if (existSync){
|
||||
setupList = grigliaAcquistoCachedData.get(dbDistributore.toUpperCase());
|
||||
}else{
|
||||
setupList = grigliaAcquistoCachedData.get(dbName);
|
||||
setupList = grigliaAcquistoCachedData.get(dbName.toUpperCase());
|
||||
}
|
||||
|
||||
if (setupList == null)
|
||||
|
||||
@@ -51,8 +51,7 @@ public class ListiniAcquistoHandlerService {
|
||||
}
|
||||
|
||||
private boolean saveCache(){
|
||||
return true;
|
||||
// return !UtilityDebug.isDebugExecution() && !UtilityDebug.isIntegryServer() && settingsModel.isPrimaryInstance();
|
||||
return !UtilityDebug.isDebugExecution() && !UtilityDebug.isIntegryServer() && settingsModel.isPrimaryInstance();
|
||||
}
|
||||
|
||||
private static boolean isGestioneAbilitata(MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user