Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2024-10-16 17:08:44 +02:00
4 changed files with 848 additions and 650 deletions

View File

@@ -0,0 +1,25 @@
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_20241015163618 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if(isCustomer(IntegryCustomer.Suit)) {
updateSetupValue("w_cscadfor_disp", "DATAWINDOW", "d_cscadfor_rep", "d_cscadfor_suit_rep");
updateSetupValue("w_cscadfor_disp", "DATAWINDOW", "d_cscadfor_nobanca_rep", "d_cscadfor_nobanca_suit_rep");
}
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,151 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20241016163028 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createOrUpdateFunction("CountAllegatiCommessa", "CREATE FUNCTION [dbo].[CountAllegatiCommessa](@codJcom VARCHAR(10), @userName VARCHAR(40))\n" +
" RETURNS INTEGER\n" +
"AS\n" +
"BEGIN\n" +
" DECLARE @countAllegati INTEGER\n" +
"\n" +
" SELECT @countAllegati = SUM(cnt)\n" +
" FROM (SELECT COUNT(file_name) AS cnt\n" +
" FROM stb_activity_file\n" +
" WHERE id IN (SELECT stb_activity.activity_id\n" +
" FROM jtb_comt\n" +
" INNER JOIN stb_activity ON jtb_comt.cod_jcom = stb_activity.cod_jcom AND\n" +
" stb_activity.parent_activity_id IS NULL\n" +
" INNER JOIN stb_activity_type\n" +
" ON stb_activity.activity_type_id =\n" +
" stb_activity_type.activity_type_id AND\n" +
" stb_activity_type.flag_tipologia = 'P'\n" +
" WHERE jtb_comt.cod_jcom = @codJcom)\n" +
"\n" +
" UNION ALL\n" +
"\n" +
" SELECT COUNT(stb_activity_file.file_name) AS cnt\n" +
" FROM stb_activity\n" +
" INNER JOIN stb_activity_file ON stb_activity.activity_id = stb_activity_file.id\n" +
" WHERE stb_activity.cod_jcom = @codJcom\n" +
" AND activity_type_id IN (SELECT activity_type_id\n" +
" FROM srl_activity_type_user\n" +
" INNER JOIN jrl_flav_users\n" +
" ON srl_activity_type_user.user_name = jrl_flav_users.user_name\n" +
" INNER JOIN wtb_users\n" +
" ON wtb_users.User_name =\n" +
" jrl_flav_users.user_name AND\n" +
" wtb_users.user_name = @userName)\n" +
" AND @userName IN (stb_activity.user_creator, stb_activity.user_name)\n" +
"\n" +
" UNION ALL\n" +
"\n" +
" SELECT COUNT(filename) AS cnt\n" +
" FROM dtb_doc_pdf\n" +
" INNER JOIN\n" +
" (SELECT dtb_doct.num_doc,\n" +
" dtb_doct.data_doc,\n" +
" dtb_doct.cod_dtip,\n" +
" dtb_doct.cod_anag,\n" +
" dtb_doct.ser_doc,\n" +
" dtb_doct.cod_jcom,\n" +
" dtb_doct.gestione,\n" +
" MAX(versione) AS versione,\n" +
" dtb_ordt.data_ord,\n" +
" dtb_ordt.num_ord,\n" +
" dtb_ordt.num_ord_provv\n" +
" FROM dtb_doc_pdf\n" +
" INNER JOIN dtb_doct\n" +
" ON dtb_doct.data_doc = dtb_doc_pdf.data_doc AND\n" +
" dtb_doct.num_doc = dtb_doc_pdf.num_doc AND\n" +
" dtb_doct.cod_dtip = dtb_doc_pdf.cod_dtip AND\n" +
" dtb_doct.cod_anag = dtb_doc_pdf.cod_anag AND\n" +
" dtb_doct.ser_doc = dtb_doc_pdf.ser_doc\n" +
" INNER JOIN dtb_docr ON dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
" dtb_doct.num_doc = dtb_docr.num_doc AND\n" +
" dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
" dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
" dtb_doct.cod_anag = dtb_docr.cod_anag\n" +
" LEFT OUTER JOIN dtb_ordt\n" +
" ON dtb_doct.gestione = dtb_ordt.gestione AND\n" +
" dtb_doct.data_ord = dtb_ordt.data_ord AND\n" +
" dtb_doct.num_ord = dtb_ordt.num_ord\n" +
" WHERE (filecontent IS NOT NULL OR ref_uuid IS NOT NULL)\n" +
" GROUP BY dtb_doct.num_doc, dtb_doct.data_doc, dtb_doct.cod_dtip,\n" +
" dtb_doct.cod_anag, dtb_doct.ser_doc,\n" +
" dtb_doct.cod_jcom, dtb_doct.gestione, dtb_ordt.data_ord,\n" +
" dtb_ordt.num_ord, dtb_ordt.num_ord_provv) t\n" +
" ON dtb_doc_pdf.num_doc = t.num_doc AND\n" +
" dtb_doc_pdf.data_doc = t.data_doc AND\n" +
" dtb_doc_pdf.cod_dtip = t.cod_dtip AND\n" +
" dtb_doc_pdf.cod_anag = t.cod_anag AND\n" +
" dtb_doc_pdf.ser_doc = t.ser_doc AND\n" +
" dtb_doc_pdf.versione = t.versione\n" +
" WHERE cod_jcom = @codJcom\n" +
"\n" +
" UNION ALL\n" +
"\n" +
" SELECT COUNT(stb_files_attached.file_name) AS cnt\n" +
" FROM stb_files_attached,\n" +
" drl_ord_attached,\n" +
" dtb_ordt\n" +
" WHERE stb_files_attached.id_attach = drl_ord_attached.id_attach\n" +
" AND drl_ord_attached.gestione = dtb_ordt.gestione\n" +
" AND drl_ord_attached.data_ord = dtb_ordt.data_ord\n" +
" AND drl_ord_attached.num_ord = dtb_ordt.num_ord\n" +
" AND dtb_ordt.cod_jcom = @codJcom\n" +
"\n" +
" UNION ALL\n" +
"\n" +
" SELECT COUNT(DISTINCT stb_files_attached.file_name) AS cnt\n" +
" FROM stb_files_attached,\n" +
" drl_doc_attached,\n" +
" dtb_docr\n" +
" WHERE stb_files_attached.id_attach = drl_doc_attached.id_attach\n" +
" AND drl_doc_attached.cod_anag = dtb_docr.cod_anag\n" +
" AND drl_doc_attached.cod_dtip = dtb_docr.cod_dtip\n" +
" AND drl_doc_attached.data_doc = dtb_docr.data_doc\n" +
" AND drl_doc_attached.ser_doc = dtb_docr.ser_doc\n" +
" AND drl_doc_attached.num_doc = dtb_docr.num_doc\n" +
" AND dtb_docr.cod_jcom = @codJcom\n" +
"\n" +
" UNION ALL\n" +
"\n" +
" SELECT COUNT(mtb_aart_link.id_riga) AS cnt\n" +
" FROM mtb_aart_link\n" +
" WHERE cod_mart IN (SELECT DISTINCT cod_mart\n" +
" FROM (SELECT Wot.cod_jcom, Wor.cod_mart\n" +
" FROM Wdtb_ordr Wor\n" +
" INNER JOIN Wdtb_ordt Wot\n" +
" ON Wor.gestione = Wot.gestione AND\n" +
" Wor.data_ord = Wot.data_ord AND Wor.num_ord = Wot.num_ord\n" +
" AND Wot.serie = Wor.serie\n" +
" UNION ALL\n" +
" SELECT wot.cod_jcom, dtb_ordr.cod_mart\n" +
" FROM wdtb_ordt wot\n" +
" INNER JOIN dtb_ordt ON wot.gestione = dtb_ordt.gestione AND\n" +
" wot.data_ord = dtb_ordt.data_ord AND\n" +
" wot.num_ord = dtb_ordt.num_ord_provv AND\n" +
" wot.serie = dtb_ordt.serie\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.num_ord = dtb_ordr.num_ord) t\n" +
" WHERE cod_jcom = @codJcom)) t\n" +
"\n" +
" RETURN @countAllegati\n" +
"END");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -716,94 +716,94 @@ public class CrmService {
wdtbOrdsDelete.setNativeSql(sql);
entityProcessor.processEntity(wdtbOrdsDelete, true, multiDBTransactionManager);
if (activityId == null) { // SE NON HA ATTIVITA PREVENTIVAZIONE, NE CREA UNA
if (codJcom == null) {
CrmCommessa crmCommessa = completaOrd.getCommessa();
if (codJcom == null) {
CrmCommessa crmCommessa = completaOrd.getCommessa();
if (crmCommessa != null) {
JtbComt jtbComt = new JtbComt();
jtbComt.setOperation(OperationType.INSERT);
jtbComt.setPrecode("C");
jtbComt.setTipoAnag(tipoAnag);
jtbComt.setCodAnag(codAnag);
jtbComt.setCodVdes(codVdes);
jtbComt.setDescrizione(crmCommessa.getDescrizione());
jtbComt.setDescrizioneEstesa(crmCommessa.getDescrizioneEstesa());
jtbComt.setNote(crmCommessa.getNote());
jtbComt.setCodJflav(crmCommessa.getCodJflav());
jtbComt.setCodJfas(crmCommessa.getCodJfas());
jtbComt.setStatoCommessa(crmCommessa.getStatoCommessa());
if (crmCommessa != null) {
JtbComt jtbComt = new JtbComt();
jtbComt.setOperation(OperationType.INSERT);
jtbComt.setPrecode("C");
jtbComt.setTipoAnag(tipoAnag);
jtbComt.setCodAnag(codAnag);
jtbComt.setCodVdes(codVdes);
jtbComt.setDescrizione(crmCommessa.getDescrizione());
jtbComt.setDescrizioneEstesa(crmCommessa.getDescrizioneEstesa());
jtbComt.setNote(crmCommessa.getNote());
jtbComt.setCodJflav(crmCommessa.getCodJflav());
jtbComt.setCodJfas(crmCommessa.getCodJfas());
jtbComt.setStatoCommessa(crmCommessa.getStatoCommessa());
entityProcessor.processEntity(jtbComt, true, multiDBTransactionManager);
entityBaseList.add(jtbComt);
codJcom = jtbComt.getCodJcom();
entityProcessor.processEntity(jtbComt, true, multiDBTransactionManager);
entityBaseList.add(jtbComt);
codJcom = jtbComt.getCodJcom();
if (!completaOrd.getCrmAttivita().isEmpty()) {
for (int i = 0; i < completaOrd.getCrmAttivita().size(); i++) {
CrmAttivita crmAttivita = completaOrd.getCrmAttivita().get(i);
if (!completaOrd.getCrmAttivita().isEmpty()) {
for (int i = 0; i < completaOrd.getCrmAttivita().size(); i++) {
CrmAttivita crmAttivita = completaOrd.getCrmAttivita().get(i);
StbActivity stbActivity = new StbActivity();
stbActivity.setOperation(OperationType.INSERT);
if (processActivityId != null) {
stbActivity.setParentActivityId(processActivityId);
}
stbActivity.setTipoAnag(tipoAnag);
stbActivity.setCodAnag(codAnag);
stbActivity.setCodJcom(codJcom);
stbActivity.setActivityTypeId(crmAttivita.getActivityTypeId());
stbActivity.setActivityDescription(crmAttivita.getActivityDescription());
stbActivity.setActivityResultId(crmAttivita.getActivityResultId());
stbActivity.setNote(crmAttivita.getNote());
stbActivity.setFlagTipologia(crmAttivita.getFlagTipologia());
stbActivity.setUserName(crmAttivita.getUserName());
stbActivity.setUserCreator(crmAttivita.getUserCreator());
stbActivity.setUserModifier(crmAttivita.getUserModifier());
stbActivity.setOraModAct(crmAttivita.getOraModAct());
stbActivity.setOraViewAct(crmAttivita.getOraViewAct());
stbActivity.setEstimatedDate(crmAttivita.getEstimatedTime());
stbActivity.setEstimatedTime(crmAttivita.getEstimatedTime());
stbActivity.setEstimatedEnddate(crmAttivita.getEstimatedEndtime());
stbActivity.setEstimatedEndtime(crmAttivita.getEstimatedEndtime());
stbActivity.setEffectiveDate(crmAttivita.getEffectiveTime());
stbActivity.setEffectiveTime(crmAttivita.getEffectiveTime());
stbActivity.setEffectiveEnddate(crmAttivita.getEffectiveEndtime());
stbActivity.setEffectiveEndtime(crmAttivita.getEffectiveEndtime());
entityProcessor.processEntity(stbActivity, true, multiDBTransactionManager);
if (i == 0 && processActivityId == null) {
// Se si tratta della prima attività e non è specificato il processActivityId (activity_id del processo) allora
// vuol dire che si sta creando un nuovo contatto e quindi verrà creato sia il processo che l'attività semplice
processActivityId = stbActivity.getActivityId();
}
StbActivity stbActivity = new StbActivity();
stbActivity.setOperation(OperationType.INSERT);
if (processActivityId != null) {
stbActivity.setParentActivityId(processActivityId);
}
stbActivity.setTipoAnag(tipoAnag);
stbActivity.setCodAnag(codAnag);
stbActivity.setCodJcom(codJcom);
stbActivity.setActivityTypeId(crmAttivita.getActivityTypeId());
stbActivity.setActivityDescription(crmAttivita.getActivityDescription());
stbActivity.setActivityResultId(crmAttivita.getActivityResultId());
stbActivity.setNote(crmAttivita.getNote());
stbActivity.setFlagTipologia(crmAttivita.getFlagTipologia());
stbActivity.setUserName(crmAttivita.getUserName());
stbActivity.setUserCreator(crmAttivita.getUserCreator());
stbActivity.setUserModifier(crmAttivita.getUserModifier());
stbActivity.setOraModAct(crmAttivita.getOraModAct());
stbActivity.setOraViewAct(crmAttivita.getOraViewAct());
stbActivity.setEstimatedDate(crmAttivita.getEstimatedTime());
stbActivity.setEstimatedTime(crmAttivita.getEstimatedTime());
stbActivity.setEstimatedEnddate(crmAttivita.getEstimatedEndtime());
stbActivity.setEstimatedEndtime(crmAttivita.getEstimatedEndtime());
stbActivity.setEffectiveDate(crmAttivita.getEffectiveTime());
stbActivity.setEffectiveTime(crmAttivita.getEffectiveTime());
stbActivity.setEffectiveEnddate(crmAttivita.getEffectiveEndtime());
stbActivity.setEffectiveEndtime(crmAttivita.getEffectiveEndtime());
entityProcessor.processEntity(stbActivity, true, multiDBTransactionManager);
if (i == 0 && processActivityId == null) {
// Se si tratta della prima attività e non è specificato il processActivityId (activity_id del processo) allora
// vuol dire che si sta creando un nuovo contatto e quindi verrà creato sia il processo che l'attività semplice
processActivityId = stbActivity.getActivityId();
}
} else {
throw new Exception("I dati del processo e/o dell'attività da creare inesistenti");
}
} else {
throw new Exception("Dati di commessa da creare inesistenti");
throw new Exception("I dati del processo e/o dell'attività da creare inesistenti");
}
} else {
throw new Exception("Dati di commessa da creare inesistenti");
}
}
// Acquisizione processo padre
String parentActivityId = null;
String activityDescription = "PREVENTIVO N. " + numOrd + " DEL " + new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(dataOrd);
Date dataOraIns = new Date();
Date dataIns = UtilityDate.removeTime(dataOraIns);
sql = "SELECT stb_activity.activity_id " +
"FROM stb_activity, stb_activity_type " +
"WHERE stb_activity.flag_tipologia = stb_activity_type.flag_tipologia AND " +
" stb_activity.activity_type_id = stb_activity_type.activity_type_id AND " +
" stb_activity_type.link_gest = 'PREVENTIVAZIONE' AND " +
" stb_activity.cod_jcom = " + UtilityDB.valueToString(codJcom);
// Acquisizione processo padre
String parentActivityId = null;
String activityDescription = "PREVENTIVO N. " + numOrd + " DEL " + new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(dataOrd);
Date dataOraIns = new Date();
Date dataIns = UtilityDate.removeTime(dataOraIns);
sql = "SELECT stb_activity.activity_id " +
"FROM stb_activity, stb_activity_type " +
"WHERE stb_activity.flag_tipologia = stb_activity_type.flag_tipologia AND " +
" stb_activity.activity_type_id = stb_activity_type.activity_type_id AND " +
" stb_activity_type.link_gest = 'PREVENTIVAZIONE' AND " +
" stb_activity.cod_jcom = " + UtilityDB.valueToString(codJcom);
info = multiDBTransactionManager.prepareStatement(sql);
res = info.executeQuery();
while (res.next()) {
parentActivityId = res.getString(1);
}
res.close();
info.close();
info = multiDBTransactionManager.prepareStatement(sql);
res = info.executeQuery();
while (res.next()) {
parentActivityId = res.getString(1);
}
res.close();
info.close();
if (activityId == null) { // SE NON HA ATTIVITA PREVENTIVAZIONE, NE CREA UNA
// Inserimento attività completamento ordine
StbActivity stbActivity = new StbActivity();
stbActivity.setOperation(OperationType.INSERT);
@@ -822,6 +822,24 @@ public class CrmService {
entityProcessor.processEntity(stbActivity, true, multiDBTransactionManager);
activityId = stbActivity.getActivityId();
} else {
StbActivity stbActivity = new StbActivity();
stbActivity.setOperation(OperationType.UPDATE);
stbActivity.setActivityId(activityId);
stbActivity.setParentActivityId(parentActivityId);
stbActivity.setTipoAnag(tipoAnag);
stbActivity.setCodAnag(codAnag);
stbActivity.setCodJcom(codJcom);
stbActivity.setActivityTypeId(activityTypeId);
stbActivity.setActivityDescription(activityDescription);
stbActivity.setFlagTipologia(flagTipologia);
stbActivity.setUserName(requestDataDTO.getUsername());
stbActivity.setUserCreator(requestDataDTO.getUsername());
stbActivity.setOraViewAct(dataOraIns);
stbActivity.setEffectiveDate(dataIns);
stbActivity.setEffectiveTime(dataOraIns);
entityProcessor.processEntity(stbActivity, true, multiDBTransactionManager);
}
// Aggiornamento ordine WEB