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:
2025-02-03 19:10:43 +01:00
7 changed files with 269 additions and 5 deletions

View File

@@ -0,0 +1,80 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20250203152831 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createOrUpdateView("mvw_colr_sum",
"CREATE VIEW [dbo].[mvw_colr_sum] AS \n" +
"SELECT mtb_colt.gestione,\n" +
" mtb_colt.data_collo,\n" +
" mtb_colt.ser_collo,\n" +
" mtb_colt.num_collo,\n" +
" cod_mart,\n" +
" partita_mag,\n" +
" cod_barre,\n" +
" cod_col,\n" +
" cod_tagl,\n" +
" note,\n" +
" mtb_colr.data_ord,\n" +
" mtb_colr.num_ord,\n" +
" riga_ord,\n" +
" SUM(qta_col) AS qta_col,\n" +
" ROUND(SUM(CASE WHEN qta_cnf <> 0 THEN qta_col ELSE 0 END) /\n" +
" SUM(CASE WHEN qta_cnf <> 0 THEN qta_col / qta_cnf ELSE 1 END), 5) AS qta_cnf,\n" +
" cod_jcom,\n" +
" SUM(num_cnf) AS num_cnf,\n" +
" MIN(riga) AS riga,\n" +
" mtb_colt.cod_tcol,\n" +
" mtb_colt.peso_netto_kg,\n" +
" mtb_colt.peso_kg,\n" +
" colli_pedana.colli_pedana,\n" +
" SUM(mtb_colr.peso_lordo_kg) AS peso_lordo_kg_riga,\n" +
" SUM(mtb_colr.peso_netto_kg) AS peso_netto_kg_riga,\n" +
" mtb_colr.cod_anag_doc AS cod_anag_comp,\n" +
" mtb_colr.cod_dtip_doc AS cod_dtip_comp,\n" +
" mtb_colr.data_doc AS data_doc_comp,\n" +
" mtb_colr.ser_doc AS ser_doc_comp,\n" +
" mtb_colr.num_doc AS num_doc_comp,\n" +
" mtb_colr.id_riga_doc AS id_riga_doc_comp,\n" +
"\t mtb_colt.cod_anag, \n" +
"\t mtb_colt.cod_vdes,\n" +
"\t mtb_colt.cod_mdep,\n" +
"\t mtb_colt.cod_dtip,\n" +
"\t mtb_colt.gestione + ':' + CONVERT(varchar(10), mtb_colt.data_collo, 121) + ':' + mtb_colt.ser_collo + ':' + Cast(mtb_colt.num_collo as varchar) as chiave_collo,\n" +
"\t IIF(mtb_colt.gestione = 'L', mtb_colr.data_ord, mtb_colt.data_ord) as data_ord_t,\n" +
"\t IIF(mtb_colt.gestione = 'L', mtb_colr.num_ord, mtb_colt.num_ord) as num_ord_t,\n" +
"\t mtb_colt.data_doc as data_doc_val,\n" +
"\t mtb_colr.cod_art_for\n" +
"FROM mtb_colr,\n" +
" mtb_colt\n" +
" LEFT OUTER JOIN (SELECT gestione, data_collo, ser_collo, num_collo, SUM(num_cnf) AS colli_pedana\n" +
" FROM mtb_colr\n" +
" GROUP BY gestione, data_collo, ser_collo, num_collo) colli_pedana\n" +
" ON mtb_colt.gestione = colli_pedana.gestione AND\n" +
" mtb_colt.data_collo = colli_pedana.data_collo AND\n" +
" mtb_colt.ser_collo = colli_pedana.ser_collo AND mtb_colt.num_collo = colli_pedana.num_collo\n" +
"WHERE ((mtb_colr.gestione <> 'L' AND causale = 0) OR mtb_colr.gestione = 'L')\n" +
" AND mtb_colr.gestione = mtb_colt.gestione\n" +
" AND mtb_colr.data_collo = mtb_colt.data_collo\n" +
" AND mtb_colr.num_collo = mtb_colt.num_collo\n" +
" AND mtb_colr.ser_collo = mtb_colt.ser_collo\n" +
"GROUP BY mtb_colt.gestione, mtb_colt.data_collo, mtb_colt.ser_collo, mtb_colt.num_collo, cod_mart, partita_mag,\n" +
" cod_barre, cod_col, cod_tagl, note, mtb_colr.data_ord, mtb_colr.num_ord, riga_ord, cod_jcom, mtb_colt.cod_tcol,\n" +
" mtb_colt.peso_netto_kg, mtb_colt.peso_kg, colli_pedana.colli_pedana, mtb_colr.cod_anag_doc,\n" +
" mtb_colr.cod_dtip_doc, mtb_colr.data_doc, mtb_colr.ser_doc, mtb_colr.num_doc, mtb_colr.id_riga_doc,\n" +
"\t\t mtb_colt.cod_anag, mtb_colt.cod_vdes, mtb_colt.cod_mdep, mtb_colt.cod_dtip,\n" +
"\t\t mtb_colt.data_ord, mtb_colt.num_ord, mtb_colt.data_doc , mtb_colr.cod_art_for\n" +
"HAVING SUM(CASE WHEN qta_cnf <> 0 THEN qta_col / qta_cnf ELSE 1 END) <> 0");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,18 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20250203154921 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
executeStatement("alter table vtb_offr ADD qta_fatt numeric(20,5) DEFAULT 0 NOT NULL");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,110 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20250203163432 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createOrUpdateView("vvw_contratti_vendita", "CREATE VIEW [dbo].[vvw_contratti_vendita] AS\n" +
"WITH depo AS (SELECT TOP 1 cod_mdep\n" +
" FROM mtb_depo\n" +
" WHERE mtb_depo.flag_movimentabile = 'S'\n" +
" AND (cod_anag IS NULL OR cod_anag IN (SELECT gtb_anag.cod_anag\n" +
" FROM gtb_anag,\n" +
" azienda\n" +
" WHERE gtb_anag.part_iva = azienda.part_iva))),\n" +
" contratto AS (SELECT vtb_offt.cod_anag,\n" +
" vtb_offt.cod_vdes,\n" +
" vtb_offt.note,\n" +
" vtb_offr.id_offerta,\n" +
" vtb_offr.cod_mart,\n" +
" vtb_offr.unt_mis,\n" +
" vtb_offr.descrizione,\n" +
" vtb_offr.descrizione_html,\n" +
" vtb_offr.json_costi,\n" +
" vtb_offr.costo_unt,\n" +
" vtb_offr.unt_mis_vend,\n" +
" vtb_offr.prz_unt,\n" +
" vtb_offr.qta_off,\n" +
" vtb_offr.data_iniz_contr,\n" +
" vtb_offr.data_fine_contr,\n" +
" vtb_offt.cod_paga,\n" +
" vtb_offr.perc_sco1,\n" +
" vtb_offr.perc_sco2,\n" +
" vtb_offr.perc_sco3,\n" +
" vtb_offr.perc_sco4,\n" +
" vtb_offr.rap_conv_vend,\n" +
" vtb_offr.qta_ord,\n" +
" vtb_offr.qta_doc,\n" +
" vtb_offr.qta_fatt\n" +
" FROM vtb_offt\n" +
" INNER JOIN vtb_offr ON vtb_offt.id_offerta = vtb_offr.id_offerta\n" +
" CROSS APPLY [dbo].[getUntMisArticolo](vtb_offr.cod_mart, vtb_offr.unt_mis_vend) um\n" +
" WHERE stato_offerta = 3)\n" +
"\n" +
"SELECT contratto.data_iniz_contr AS data_iniz,\n" +
" contratto.data_fine_contr AS data_fine,\n" +
" contratto.id_offerta AS id_contratto,\n" +
" contratto.note,\n" +
" contratto.cod_mart,\n" +
" contratto.descrizione AS descrizione_articolo,\n" +
" contratto.unt_mis_vend AS unt_mis_ven,\n" +
" contratto.qta_off AS qta_vend_contratto,\n" +
" contratto.prz_unt AS prz_vend,\n" +
" contratto.perc_sco1,\n" +
" contratto.perc_sco2,\n" +
" contratto.perc_sco3,\n" +
" contratto.perc_sco4,\n" +
" ISNULL(contratto.qta_ord, 0) AS qta_ord,\n" +
" ISNULL(contratto.qta_doc, 0) AS qta_doc,\n" +
" gtb_anag.cod_anag,\n" +
" gtb_anag.rag_soc,\n" +
" gtb_anag.indirizzo,\n" +
" gtb_anag.cap,\n" +
" gtb_anag.citta,\n" +
" gtb_anag.prov,\n" +
" gtb_anag.nazione,\n" +
" gtb_anag.e_mail,\n" +
" gtb_anag.telefono,\n" +
" gtb_anag.part_iva,\n" +
" ISNULL(giacenza.qta_disp * rap_conv_vend, 0) AS qta_disp,\n" +
" (SELECT cod_mdep FROM depo) AS cod_mdep,\n" +
" contratto.prz_unt * (1 - contratto.perc_sco1 / 100) * (1 - contratto.perc_sco2 / 100) -\n" +
" (1 * contratto.perc_sco3 / 100) *\n" +
" (1 - contratto.perc_sco4 / 100) AS prz_vend_netto,\n" +
" contratto.cod_paga,\n" +
" gtb_paga.descrizione AS descrizione_paga,\n" +
" contratto.qta_off -\n" +
" ISNULL(contratto.qta_ord, 0) -\n" +
" ISNULL(contratto.qta_doc, 0) AS qta_residua,\n" +
" ISNULL(contratto.qta_ord + contratto.qta_doc, 0) AS qta_usata,\n" +
" contratto.rap_conv_vend AS rap_conv,\n" +
" contratto.cod_vdes,\n" +
" vd.destinatario,\n" +
" vd.indirizzo AS indirizzo_dest,\n" +
" vc.cod_vlis,\n" +
" contratto.qta_fatt\n" +
"FROM contratto\n" +
" INNER JOIN gtb_anag ON contratto.cod_anag = gtb_anag.cod_anag\n" +
" INNER JOIN vtb_clie vc ON contratto.cod_anag = vc.cod_anag\n" +
" LEFT OUTER JOIN vtb_dest vd ON contratto.cod_anag = vd.cod_anag AND contratto.cod_vdes = vd.cod_vdes\n" +
" LEFT OUTER JOIN gtb_paga ON contratto.cod_paga = gtb_paga.cod_paga\n" +
" OUTER APPLY (SELECT SUM(mtb_part.qta_esistente + mtb_part.qta_imp_lav - mtb_part.qta_imp_cli) AS qta_disp\n" +
" FROM mtb_part\n" +
" INNER JOIN mtb_depo ON mtb_part.cod_mdep = mtb_depo.cod_mdep\n" +
" WHERE mtb_depo.flag_movimentabile = 'S'\n" +
" AND mtb_part.cod_mart = contratto.cod_mart) giacenza");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
import it.integry.ems_model.annotation.*;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.base.EquatableEntityInterface;
import it.integry.ems_model.utility.UtilityString;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
@@ -114,6 +115,9 @@ public class AtbForn extends EntityBase implements EquatableEntityInterface<AtbF
@Priority(1)
private GtbAnag gtbAnag;
@Priority(1)
private AtbList atbList;
@EntityChild
private List<VtbDest> vtbDest = new ArrayList<>();
@EntityChild
@@ -393,6 +397,15 @@ public class AtbForn extends EntityBase implements EquatableEntityInterface<AtbF
return this;
}
public AtbList getAtbList() {
return atbList;
}
public AtbForn setAtbList(AtbList atbList) {
this.atbList = atbList;
return this;
}
public List<VtbDest> getVtbDest() {
return vtbDest;
}
@@ -402,7 +415,9 @@ public class AtbForn extends EntityBase implements EquatableEntityInterface<AtbF
return this;
}
public List<ArlFogm> getArlFogm() { return arlFogm; }
public List<ArlFogm> getArlFogm() {
return arlFogm;
}
public AtbForn setArlFogm(List<ArlFogm> arlFogm) {
this.arlFogm = arlFogm;
@@ -418,7 +433,7 @@ public class AtbForn extends EntityBase implements EquatableEntityInterface<AtbF
public boolean equalsKey(AtbForn other) {
if (this == other) return true;
if(hashCodeKey() != other.hashCodeKey())
if (hashCodeKey() != other.hashCodeKey())
return false;
return Objects.equals(getCodAnag(), other.getCodAnag());
@@ -436,4 +451,13 @@ public class AtbForn extends EntityBase implements EquatableEntityInterface<AtbF
public int hashCode() {
return Objects.hash(codAnag, codAtip, codBanc, codPaga, porto, mezzo, codAliq, codAlis, codCconCosti, codCconRicavi, codAbi, codCab, agenziaBanca, rifBancaForn, flagStato, causale, codCausRit, codDivi, mmDecor, codClie, iban, codBancAzi, noteOrdine, ggChiudiStralci, codBic, mesiEsclusi, codVvet, flagForfettario, flagAutofattura, gtbAnag);
}
@Override
public void checkPreSave() throws Exception {
super.checkPreSave();
if (this.getAtbList() != null && UtilityString.isNullOrEmpty(this.getCodAlis())) {
this.setCodAlis(this.getAtbList().getCodAlis());
}
}
}

View File

@@ -190,6 +190,9 @@ public class GtbAnag extends EntityBase implements EquatableEntityInterface<GtbA
@EntityChild
private List<GtbAnagInfo> gtbAnagInfo = new ArrayList<>();
@EntityChild
private List<ArlFogm> arlFogm = new ArrayList<>();
@Priority(101)
CtbAnag ctbAnag;
@@ -656,6 +659,15 @@ public class GtbAnag extends EntityBase implements EquatableEntityInterface<GtbA
return this;
}
public List<ArlFogm> getArlFogm() {
return arlFogm;
}
public GtbAnag setArlFogm(List<ArlFogm> arlFogm) {
this.arlFogm = arlFogm;
return this;
}
public VtbClie getVtbClie() {
return vtbClie;
}
@@ -736,6 +748,9 @@ public class GtbAnag extends EntityBase implements EquatableEntityInterface<GtbA
for (GrlAnagJrept grlAnagJrept : getGrlAnagJrepts()) {
grlAnagJrept.manageWithParentConnection(connection, grlAnagJrept.getOperation(), dataCompleting, entityHolder);
}
for (ArlFogm arlFogm : this.getArlFogm()) {
arlFogm.manageWithParentConnection(connection, arlFogm.getOperation(), dataCompleting, entityHolder);
}
}
@Override
@@ -784,7 +799,7 @@ public class GtbAnag extends EntityBase implements EquatableEntityInterface<GtbA
public boolean equalsKey(GtbAnag other) {
if (this == other) return true;
if(hashCodeKey() != other.hashCodeKey())
if (hashCodeKey() != other.hashCodeKey())
return false;
return Objects.equals(getCodAnag(), other.getCodAnag());

View File

@@ -170,6 +170,9 @@ public class StbUser extends EntityBase {
@EntityChild
private List<WrlUsersFasi> wrlUsersFasi = new ArrayList<>();
@EntityChild
private List<SrlUserAttached> srlUserAttached = new ArrayList<>();
@Priority(101)
private SrlActivityTypeUser srlActivityTypeUser;
@@ -617,6 +620,15 @@ public class StbUser extends EntityBase {
return this;
}
public List<SrlUserAttached> getSrlUserAttached() {
return srlUserAttached;
}
public StbUser setSrlUserAttached(List<SrlUserAttached> srlUserAttached) {
this.srlUserAttached = srlUserAttached;
return this;
}
@Override
protected void insertChilds() throws Exception {
if (getStbAbil() != null) {
@@ -672,6 +684,9 @@ public class StbUser extends EntityBase {
for (WtbPros wtbPros : getWtbPros()) {
wtbPros.manageWithParentConnection(connection, wtbPros.getOperation(), dataCompleting, entityHolder);
}
for (SrlUserAttached srlUserAttached : getSrlUserAttached()) {
srlUserAttached.manageWithParentConnection(connection, srlUserAttached.getOperation(), dataCompleting, entityHolder);
}
}
@Override

View File

@@ -57,7 +57,8 @@ public class ContrattiDiVenditaService {
" dtb_ordr.cod_mart)\n" +
" , doc AS (SELECT dtb_docr.id_contratto,\n" +
" dtb_docr.cod_mart,\n" +
" SUM(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" +
" FROM dtb_doct\n" +
" INNER JOIN dtb_docr ON dtb_doct.cod_anag = dtb_docr.cod_anag AND\n" +
" dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
@@ -79,7 +80,8 @@ public class ContrattiDiVenditaService {
" LEFT OUTER JOIN ord ON vtb_offr.id_offerta = ord.id_contratto AND vtb_offr.cod_mart = ord.cod_mart\n" +
" LEFT OUTER JOIN doc ON vtb_offr.id_offerta = doc.id_contratto AND vtb_offr.cod_mart = doc.cod_mart\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)) AND\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);