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-11-11 09:38:57 +01:00
11 changed files with 289 additions and 149 deletions

View File

@@ -0,0 +1,29 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20241106145413 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
executeStatement("ALTER TABLE jtb_cicl_cq ADD tipo_valore TINYINT DEFAULT 0 NOT NULL\n" +
"CHECK ([tipo_valore] = 0 OR [tipo_valore] = 1 OR [tipo_valore] = 2 OR [tipo_valore] = 3 OR [tipo_valore] = 4 OR [tipo_valore] = 5 OR [tipo_valore] = 6);",
"EXEC sp_addextendedproperty 'MS_Description', 'Valori possibili: 0 -> Testo, 1 -> Boolean, 2 -> Intero, 3 -> Decimale, 4 -> Date, 5 -> Datetime, 6 -> Time',\n" +
"'SCHEMA', 'dbo', 'TABLE', 'jtb_cicl_cq', 'COLUMN', 'tipo_valore'");
executeStatement("ALTER TABLE dtb_ord_cq ADD tipo_valore TINYINT DEFAULT 0 NOT NULL\n" +
"CHECK ([tipo_valore] = 0 OR [tipo_valore] = 1 OR [tipo_valore] = 2 OR [tipo_valore] = 3 OR [tipo_valore] = 4 OR [tipo_valore] = 5 OR [tipo_valore] = 6);",
"EXEC sp_addextendedproperty 'MS_Description', 'Valori possibili: 0 -> Testo, 1 -> Boolean, 2 -> Intero, 3 -> Decimale, 4 -> Date, 5 -> Datetime, 6 -> Time',\n" +
" 'SCHEMA', 'dbo', 'TABLE', 'dtb_ord_cq', 'COLUMN', 'tipo_valore'");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,21 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20241107142940 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
executeStatement("alter table mtb_colr add cod_art_for varchar(25)");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -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_20241108132034 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
dropFunction("getListinoVendita_new");
dropFunction("getListinoVendita_old");
dropFunction("getPromozioneVendita_new");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -620,15 +620,15 @@ public class AccountingRules extends QueryRules {
} else {
String sql =
Query.format(
"SELECT cast(count(*) as bit)" +
" FROM ctb_parr " +
" WHERE cod_anag = %s AND " +
"tipo_anag = %s AND " +
"anno_part = %s AND " +
"ser_doc = %s AND " +
"num_doc = %s AND " +
"id_riga = %s ",
ctbMovr.getCodAnag(), ctbMovr.getTipoAnag(), ctbMovr.getAnnoPart(), ctbMovr.getSerDoc(), ctbMovr.getNumDoc(), ctbMovr.getIdRiga());
"SELECT cast(case when count(*) > 1 THEN 1 ELSE 0 eND as bit) " +
" FROM ctb_parr " +
" WHERE cod_anag = %s AND " +
"tipo_anag = %s AND " +
"anno_part = %s AND " +
"ser_doc = %s AND " +
"num_doc = %s AND " +
"id_riga = %s ",
ctbMovr.getCodAnag(), ctbMovr.getTipoAnag(), ctbMovr.getAnnoPart(), ctbMovr.getSerDoc(), ctbMovr.getNumDoc(), ctbMovr.getIdRiga());
boolean existRow = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);

View File

@@ -6,6 +6,7 @@ import it.integry.ems_model.base.EntityBase;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
import it.integry.ems_model.entity._enum.TipoValore;
import java.util.ArrayList;
import java.util.Date;
@@ -63,6 +64,9 @@ public class DtbOrdCq extends EntityBase {
@SqlField(value = "note", maxLength = 1024)
private String note;
@SqlField(value = "tipo_valore", nullable = false, defaultObjectValue = "0")
private TipoValore tipoValore;
@EntityChild
private List<DtbOrdCqr> dtbOrdCqr = new ArrayList<>();
@@ -187,6 +191,15 @@ public class DtbOrdCq extends EntityBase {
return this;
}
public TipoValore getTipoValore() {
return tipoValore;
}
public DtbOrdCq setTipoValore(TipoValore tipoValore) {
this.tipoValore = tipoValore;
return this;
}
@Override
public void checkPreSave() throws Exception {
for (DtbOrdCqr dtbOrdCqr : getDtbOrdCqr()) {

View File

@@ -9,6 +9,7 @@ import it.integry.ems_model.base.EntityBase;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
import it.integry.ems_model.entity._enum.TipoValore;
@PropertyReactive
@Table(JtbCiclCq.ENTITY)
@@ -46,6 +47,9 @@ public class JtbCiclCq extends EntityBase {
@SqlField(value = "num_rip", defaultObjectValue = "0")
private Integer numRip;
@SqlField(value = "tipo_valore", nullable = false, defaultObjectValue = "0")
private TipoValore tipoValore;
public JtbCiclCq() {
super(logger);
}
@@ -105,4 +109,13 @@ public class JtbCiclCq extends EntityBase {
public void setNumRip(Integer numRip) {
this.numRip = numRip;
}
public TipoValore getTipoValore() {
return tipoValore;
}
public JtbCiclCq setTipoValore(TipoValore tipoValore) {
this.tipoValore = tipoValore;
return this;
}
}

View File

@@ -148,6 +148,9 @@ public class MtbColr extends EntityBase implements EquatableEntityInterface<MtbC
@SqlField(value = "peso_lordo_kg", nullable = false)
private BigDecimal pesoLordoKg;
@SqlField(value = "cod_art_for", maxLength = 25)
private String codArtFor;
@EntityChild
MtbColrInfoProd mtbColrInfoProd;
@@ -536,6 +539,15 @@ public class MtbColr extends EntityBase implements EquatableEntityInterface<MtbC
return this;
}
public String getCodArtFor() {
return codArtFor;
}
public MtbColr setCodArtFor(String codArtFor) {
this.codArtFor = codArtFor;
return this;
}
public MtbPartitaMag getMtbPartitaMag() {
return mtbPartitaMag;
}

View File

@@ -0,0 +1,50 @@
package it.integry.ems_model.entity._enum;
import com.fasterxml.jackson.annotation.JsonValue;
public enum TipoValore implements IBaseEnum<TipoValore> {
TESTO((short) 0),
BOOLEAN((short) 1),
INTERO((short) 2),
DECIMALE((short) 3),
DATE((short) 4),
DATETIME((short) 5),
TIME((short) 6);
private final short value;
TipoValore(final short value) {
this.value = value;
}
public static TipoValore from(Object value) {
short castValue = (short) value;
for (TipoValore b : TipoValore.values()) {
if (b.value == castValue)
return b;
}
return null;
}
@JsonValue
public Short getValue() {
return this.value;
}
@Override
public Object get() {
return this.value;
}
@Override
public TipoValore fromInternal(Object val) {
return from(val);
}
@Override
public String toString() {
return String.valueOf(value);
}
}

View File

@@ -193,36 +193,36 @@ public class TeleService {
if(tipoInvio.compareTo("G")==0){
sql = "SELECT mtb_acc_recc.data_doc as data_doc, "+
" mtb_acc_recc.tipo_file as tipo_file, "+
" mtb_acc_recc.cod_acc as cod_acc, "+
" mtb_acc_recc.data_rif as data_rif, "+
" mtb_acc_recc.tipo_rec as tipo_rec, "+
" mtb_acc_recc.tipo_ric as tipo_ric, " +
" mtb_acc_recc.tipo_reg as tipo_reg, "+
" mtb_acc_recc.cod_uff as cod_uff, "+
" mtb_acc_recc.anno_prot as anno_prot, "+
" mtb_acc_recc.num_prot as num_prot," +
" mtb_acc_recc.cod_prod as cod_prod," +
" sum(mtb_acc_recc.lit_anid) as lit_anid, " +
" sum(mtb_acc_recc.lit_idr) as lit_idr, " +
" mtb_acc_recc.tipo_stoc as tipo_stoc, "+
" mtb_acc_recc.vol_cnf as vol_cnf, "+
" sum(mtb_acc_recc.num_cnf) as num_cnf," +
" mtb_acc_recc.tipo_doc as tipo_doc, " +
" mtb_acc_recc.num_doc_acc as num_doc_acc, " +
" mtb_acc_recc.tipo_movi as tipo_movi, "+
" mtb_acc_recc.causale as causale, "+
" mtb_acc_recc.pos_fisc as pos_fisc, "+
" case when mtb_acc_recc.causale = " + UtilityDB.valueToString(causaleDistr) + " then 0 else sum(mtb_acc_recc.accisa) end as accisa, " +
" mtb_acc_recc.progr_riga as progr_riga," +
" mtb_acc_recc.nazione as nazione," +
" mtb_acc_recc.mitt_dest as mitt_dest," +
" ctb_nc_intraceer.sezione as sezione," +
" sum(mtb_acc_recc.peso_kg) as peso_kg," +
" sum(mtb_acc_recc.qta_scar) as qta_scar," +
" mtb_acc_recc.num_progr_arc, " +
" mtb_acc_recc.arc, " +
" mtb_acc_recc.dett_arc " +
" mtb_acc_recc.tipo_file as tipo_file, "+
" mtb_acc_recc.cod_acc as cod_acc, "+
" mtb_acc_recc.data_rif as data_rif, "+
" mtb_acc_recc.tipo_rec as tipo_rec, "+
" mtb_acc_recc.tipo_ric as tipo_ric, " +
" mtb_acc_recc.tipo_reg as tipo_reg, "+
" mtb_acc_recc.cod_uff as cod_uff, "+
" mtb_acc_recc.anno_prot as anno_prot, "+
" mtb_acc_recc.num_prot as num_prot," +
" mtb_acc_recc.cod_prod as cod_prod," +
" sum(mtb_acc_recc.lit_anid) as lit_anid, " +
" sum(mtb_acc_recc.lit_idr) as lit_idr, " +
" mtb_acc_recc.tipo_stoc as tipo_stoc, "+
" mtb_acc_recc.vol_cnf as vol_cnf, "+
" sum(mtb_acc_recc.num_cnf) as num_cnf," +
" mtb_acc_recc.tipo_doc as tipo_doc, " +
" mtb_acc_recc.num_doc_acc as num_doc_acc, " +
" mtb_acc_recc.tipo_movi as tipo_movi, "+
" mtb_acc_recc.causale as causale, "+
" mtb_acc_recc.pos_fisc as pos_fisc, "+
" case when mtb_acc_recc.causale = " + UtilityDB.valueToString(causaleDistr) + " then 0 else sum(mtb_acc_recc.accisa) end as accisa, " +
" mtb_acc_recc.progr_riga as progr_riga," +
" mtb_acc_recc.nazione as nazione," +
" mtb_acc_recc.mitt_dest as mitt_dest," +
" ctb_nc_intraceer.sezione as sezione," +
" sum(mtb_acc_recc.peso_kg) as peso_kg," +
" sum(mtb_acc_recc.qta_scar) as qta_scar," +
" mtb_acc_recc.num_progr_arc, " +
" mtb_acc_recc.arc, " +
" mtb_acc_recc.dett_arc " +
" FROM mtb_acc_recc, ctb_nc_intraceer, mtb_aart " +
" WHERE (mtb_acc_recc.data_reg BETWEEN " + UtilityDB.valueDateToString(dataIniz, CommonConstants.DATE_FORMAT_YMD) +" AND "+UtilityDB.valueDateToString(dataFine, CommonConstants.DATE_FORMAT_YMD)+") AND " +
" mtb_aart.cod_nc_intracee = ctb_nc_intraceer.cod_nc_intracee AND "+
@@ -329,7 +329,7 @@ public class TeleService {
" mtb_acc_recc.tipo_movi as tipo_movi, "+
" Convert(varchar(1),'')as causale," +
" mtb_acc_recc.pos_fisc as pos_fisc," +
" case when mtb_acc_recc.causale = " + UtilityDB.valueToString(causaleDistr) + " then 0 else sum(mtb_acc_recc.accisa) end as accisa, " +
" sum(mtb_acc_recc.accisa) as accisa, " +
" mtb_acc_recc.progr_riga as progr_riga," +
" Convert(varchar(2),'') as nazione," +
" Convert(varchar(20),'') as mitt_dest," +
@@ -361,36 +361,36 @@ public class TeleService {
" mtb_acc_recc.causale " +
" UNION ALL " +
"SELECT mtb_acc_recc.data_doc as data_doc, "+
" mtb_acc_recc.tipo_file as tipo_file, "+
" mtb_acc_recc.cod_acc as cod_acc, "+
" mtb_acc_recc.data_rif as data_rif, "+
" mtb_acc_recc.tipo_rec as tipo_rec, "+
" mtb_acc_recc.tipo_ric as tipo_ric, " +
" mtb_acc_recc.tipo_reg as tipo_reg, "+
" mtb_acc_recc.cod_uff as cod_uff, "+
" mtb_acc_recc.anno_prot as anno_prot, "+
" mtb_acc_recc.num_prot as num_prot," +
" mtb_acc_recc.cod_prod as cod_prod," +
" sum(mtb_acc_recc.lit_anid) as lit_anid, " +
" sum(mtb_acc_recc.lit_idr) as lit_idr, " +
" mtb_acc_recc.tipo_stoc as tipo_stoc, "+
" mtb_acc_recc.vol_cnf as vol_cnf, "+
" sum(mtb_acc_recc.num_cnf) as num_cnf," +
" mtb_acc_recc.tipo_doc as tipo_doc, " +
" mtb_acc_recc.num_doc_acc as num_doc_acc, " +
" mtb_acc_recc.tipo_movi as tipo_movi, "+
" mtb_acc_recc.causale as causale, "+
" mtb_acc_recc.pos_fisc as pos_fisc, "+
" sum(mtb_acc_recc.accisa) as accisa, " +
" mtb_acc_recc.progr_riga as progr_riga," +
" mtb_acc_recc.nazione as nazione," +
" mtb_acc_recc.mitt_dest as mitt_dest," +
" ctb_nc_intraceer.sezione as sezione," +
" sum(mtb_acc_recc.peso_kg) as peso_kg," +
" sum(mtb_acc_recc.qta_scar) as qta_scar," +
" mtb_acc_recc.num_progr_arc, " +
" mtb_acc_recc.arc, " +
" mtb_acc_recc.dett_arc " +
" mtb_acc_recc.tipo_file as tipo_file, "+
" mtb_acc_recc.cod_acc as cod_acc, "+
" mtb_acc_recc.data_rif as data_rif, "+
" mtb_acc_recc.tipo_rec as tipo_rec, "+
" mtb_acc_recc.tipo_ric as tipo_ric, " +
" mtb_acc_recc.tipo_reg as tipo_reg, "+
" mtb_acc_recc.cod_uff as cod_uff, "+
" mtb_acc_recc.anno_prot as anno_prot, "+
" mtb_acc_recc.num_prot as num_prot," +
" mtb_acc_recc.cod_prod as cod_prod," +
" sum(mtb_acc_recc.lit_anid) as lit_anid, " +
" sum(mtb_acc_recc.lit_idr) as lit_idr, " +
" mtb_acc_recc.tipo_stoc as tipo_stoc, "+
" mtb_acc_recc.vol_cnf as vol_cnf, "+
" sum(mtb_acc_recc.num_cnf) as num_cnf," +
" mtb_acc_recc.tipo_doc as tipo_doc, " +
" mtb_acc_recc.num_doc_acc as num_doc_acc, " +
" mtb_acc_recc.tipo_movi as tipo_movi, "+
" mtb_acc_recc.causale as causale, "+
" mtb_acc_recc.pos_fisc as pos_fisc, "+
" case when mtb_acc_recc.causale = " + UtilityDB.valueToString(causaleDistr) + " then 0 else sum(mtb_acc_recc.accisa) end as accisa, " +
" mtb_acc_recc.progr_riga as progr_riga," +
" mtb_acc_recc.nazione as nazione," +
" mtb_acc_recc.mitt_dest as mitt_dest," +
" ctb_nc_intraceer.sezione as sezione," +
" sum(mtb_acc_recc.peso_kg) as peso_kg," +
" sum(mtb_acc_recc.qta_scar) as qta_scar," +
" mtb_acc_recc.num_progr_arc, " +
" mtb_acc_recc.arc, " +
" mtb_acc_recc.dett_arc " +
" FROM mtb_acc_recc, ctb_nc_intraceer, mtb_aart " +
" WHERE (mtb_acc_recc.data_reg BETWEEN " + UtilityDB.valueDateToString(dataIniz, CommonConstants.DATE_FORMAT_YMD)+" AND "+UtilityDB.valueDateToString(dataFine, CommonConstants.DATE_FORMAT_YMD)+") AND " +
" mtb_aart.cod_nc_intracee = ctb_nc_intraceer.cod_nc_intracee AND "+

View File

@@ -44,6 +44,7 @@ public class CaricoProdFinLavDTO {
private String terminaLavorazioneLinea;
private String activityID;
private Integer idLotto;
private boolean escludiArticoliGestitiDaWmsInScarico;
public String getCodJfas() {
return codJfas;
@@ -207,6 +208,10 @@ public class CaricoProdFinLavDTO {
return terminaLavorazione;
}
public boolean isTerminaLavorazione() {
return "S".equalsIgnoreCase(terminaLavorazione);
}
@XmlElement(name = "TERMINA_LAVORAZIONE")
public void setTerminaLavorazione(String terminaLavorazione) {
this.terminaLavorazione = terminaLavorazione;
@@ -361,6 +366,15 @@ public class CaricoProdFinLavDTO {
return this;
}
public boolean isEscludiArticoliGestitiDaWmsInScarico() {
return escludiArticoliGestitiDaWmsInScarico;
}
public CaricoProdFinLavDTO setEscludiArticoliGestitiDaWmsInScarico(boolean escludiArticoliGestitiDaWmsInScarico) {
this.escludiArticoliGestitiDaWmsInScarico = escludiArticoliGestitiDaWmsInScarico;
return this;
}
public String getGenerateJson() {
return generateJson;
}

View File

@@ -825,7 +825,7 @@ public class DocumentProdService {
docT.getDtbDocr().add(docR);
// Chiusura forzata ordine
if ("S".equals(carico.getTerminaLavorazione())) {
if (carico.isTerminaLavorazione()) {
DtbOrdt ordT = new DtbOrdt();
ordT.setOperation(OperationType.UPDATE);
ordT.setGestione(gestione);
@@ -1027,21 +1027,19 @@ public class DocumentProdService {
" data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND " +
" num_ord = " + UtilityDB.valueToString(numOrd);
HashMap<String, Object> datiOrd = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), sql);
if (datiOrd != null && datiOrd.size() > 0) {
if (datiOrd != null && !datiOrd.isEmpty()) {
codProd = (String) datiOrd.get("cod_prod");
partitaMag = (String) datiOrd.get("partita_mag");
}
if (carico.getTerminaLavorazione().compareTo("N") == 0) {
if (carico.isTerminaLavorazione()) {
if (codJfas != null) {
condFase = "mtb_colt.cod_jfas = " + UtilityDB.valueToString(codJfas);
}
}
String flagCaricoImmediato = setupGest.getSetupDepo(multiDBTransactionManager.getPrimaryConnection(), "CARICO_SCARICO_PF", "SETUP", "GENERA_CARICO_SCARICO_IMMEDIATO", carico.getCodMdep());
if (UtilityString.isNullOrEmpty(flagCaricoImmediato)) {
flagCaricoImmediato = "N";
}
boolean flagCaricoImmediato = setupGest.getSetupDepoBoolean(multiDBTransactionManager.getPrimaryConnection(), "CARICO_SCARICO_PF", "SETUP", "GENERA_CARICO_SCARICO_IMMEDIATO", carico.getCodMdep());
/*Se la data del documento non è stata passata da fuori allora la data documento dovrà essere quella del collo */
List<DataDocFromCollo> results = new ArrayList<>();
@@ -1066,7 +1064,7 @@ public class DocumentProdService {
sql = UtilityDB.addwhereCond(sql, condFase, false);
results = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DataDocFromCollo.class);
if ((results == null || results.size() == 0) && "S".equals(carico.getTerminaLavorazione()) && flagCaricoImmediato.compareTo("N") == 0) {
if ((results == null || results.isEmpty()) && "S".equals(carico.getTerminaLavorazione()) && !flagCaricoImmediato) {
throw new Exception("Non ci sono colli di produzione generati per la produzione in corso");
}
} else {
@@ -1120,7 +1118,7 @@ public class DocumentProdService {
loadColli.setColli(colli);
if (loadColli.getColli() != null && loadColli.getColli().size() > 0) {
if (loadColli.getColli() != null && !loadColli.getColli().isEmpty()) {
DtbDoct docT = null;
docT = loadColliService.createDocFromColli(multiDBTransactionManager, loadColli);
docT
@@ -1136,7 +1134,7 @@ public class DocumentProdService {
}
// Chiusura forzata ordine
if ("S".equals(carico.getTerminaLavorazione())) {
if (carico.isTerminaLavorazione()) {
DtbOrdt ordT = new DtbOrdt()
.setGestione(gestione)
.setDataOrd(dataOrd)
@@ -1664,50 +1662,28 @@ public class DocumentProdService {
Connection conn = multiDBTransactionManager.getPrimaryConnection();
// Acquisizione dati configurazione e passati dall'esterno
String scaricoUnico = setupGest.getSetup(conn, "CARICO_SCARICO_PF", "SETUP", "SCARICO_UNICO"); //todo Creare query su STB_GEST_SEUP
String generateLotto = setupGest.getSetup(conn, "W_PORDI_RC", "GENERA_LOTTO_PROD", "GENERA_LOTTO");
if (UtilityString.isNullOrEmpty(generateLotto)) {
generateLotto = "N";
}
boolean scaricoUnico = setupGest.getSetupBoolean(conn, "CARICO_SCARICO_PF", "SETUP", "SCARICO_UNICO"); //todo Creare query su STB_GEST_SEUP
boolean generateLotto = setupGest.getSetupBoolean(conn, "W_PORDI_RC", "GENERA_LOTTO_PROD", "GENERA_LOTTO");
String gestione = carico.getGestione();
Integer numOrd = carico.getNumOrd();
Date dataOrd = carico.getDataOrd();
Date dataProd = carico.getDataProd();
String effettuaScaricoMateriali = carico.getEffettuaScaricoMateriali();
String effettuaCaricoProdotto = carico.getEffettuaCaricoProdotto();
Date dataDoc = carico.getDataDoc();
String codAnag = carico.getCodAnag();
String codMdep = carico.getCodMdep();
String codMdepScar = carico.getCodMdepScar();
String codDtipScar = carico.getCodDtipScar();
String terminaLavorazione = carico.getTerminaLavorazione();
String serDoc = carico.getSerDoc();
Date dataVersamento = carico.getDataVersamento();
String creaColloVersaDaColloCarico = carico.getCreaColloVersDaColloCarico();
String creaScaricoDaCollo = carico.getCreaScaricoDaCollo();
// Impostazione default
if (UtilityString.isNullOrEmpty(creaScaricoDaCollo)) {
creaScaricoDaCollo = "N";
}
if (UtilityString.isNullOrEmpty(effettuaScaricoMateriali)) {
effettuaScaricoMateriali = "S";
}
if (UtilityString.isNullOrEmpty(effettuaCaricoProdotto)) {
effettuaCaricoProdotto = "S";
}
if (UtilityString.isNullOrEmpty(codMdepScar)) {
codMdepScar = codMdep;
}
if (UtilityString.isNullOrEmpty(terminaLavorazione)) {
terminaLavorazione = "N";
}
if (UtilityString.isNullOrEmpty(serDoc)) {
serDoc = null;
}
if (UtilityString.isNullOrEmpty(scaricoUnico)) {
scaricoUnico = "N";
}
String order = setupGest.getSetupDepo(conn, "CARICO_SCARICO_PF", "SETUP", "ORDINAMENTO_PARTITA", codMdep);
if (order == null) {
@@ -1734,7 +1710,7 @@ public class DocumentProdService {
" isnull(ordL.cod_jfas, jtb_cicl.cod_jfas) as cod_jfas, " +
" ordL.cod_jcom, " +
" jtb_lotr.id_lotto, " +
" jtb_lotr.cod_jfas, " +
" jtb_lotr.cod_jfas AS cod_jfas_lotto, " +
" dtb_ordr.num_cnf " +
" FROM dtb_ordt ordL LEFT OUTER JOIN jtb_lotr ON ordL.gestione = jtb_lotr.gestione AND " +
" ordL.data_ord = jtb_lotr.data_ord AND " +
@@ -1751,30 +1727,24 @@ public class DocumentProdService {
" ordL.data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND " +
" ordL.num_ord = " + UtilityDB.valueToString(numOrd);
info = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
res = info.executeQuery();
Integer rows = UtilityDB.countRow(res);
if (rows == 0) {
throw new Exception("L'ordine di lavorazione n." + UtilityDB.valueToString(numOrd) + " del " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " e/o la distinta corrispondente presentano delle anomalie.");
}
while (res.next()) {
codProd = res.getString(1);
untMisProd = res.getString(2);
rapConvProd = res.getBigDecimal(3);
partitaMagProd = res.getString(4);
codJfas = res.getString(5);
codJcom = res.getString(6);
idLotto = res.getInt(7);
codJfasLotto = res.getString(8);
numCnfProd = res.getBigDecimal(9);
}
res.close();
info.close();
final HashMap<String, Object> resultOrd = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
codProd = UtilityHashMap.getValueIfExists(resultOrd, "cod_prod");
untMisProd = UtilityHashMap.getValueIfExists(resultOrd, "unt_mis_prod");
rapConvProd = UtilityHashMap.getValueIfExists(resultOrd, "rap_conv_prod");
partitaMagProd = UtilityHashMap.getValueIfExists(resultOrd, "partita_mag");
codJfas = UtilityHashMap.getValueIfExists(resultOrd, "cod_jfas");
codJcom = UtilityHashMap.getValueIfExists(resultOrd, "cod_jcom");
idLotto = UtilityHashMap.getValueIfExists(resultOrd, "id_lotto");
codJfasLotto = UtilityHashMap.getValueIfExists(resultOrd, "cod_jfas_lotto");
numCnfProd = UtilityHashMap.getValueIfExists(resultOrd, "num_cnf");
// Acquisizione dati prodotto dall'estetno
BigDecimal qtaProdUMMag = carico.getProdotti().getRow().get(0).getQtaProdAna();
BigDecimal numConf = carico.getProdotti().getRow().get(0).getNumCart();
BigDecimal qtaProd = qtaProdUMMag.divide(rapConvProd, 5, RoundingMode.HALF_UP);
if (numConf == null) {
numConf = BigDecimal.ZERO;
}
@@ -1787,7 +1757,7 @@ public class DocumentProdService {
// Se è attiva l'opzione scarico unico allora lo scarico degli imnballaggi e delle materie prime deve essere
// fatto sempre sullo stesso documento nella giornata
BigDecimal qtaProdScaricoPrec = BigDecimal.ZERO;
if (scaricoUnico.compareTo("S") == 0) {
if (scaricoUnico) {
sql =
" SELECT dtb_doct.num_doc, " +
" dtb_doct.ser_doc, " +
@@ -1799,17 +1769,12 @@ public class DocumentProdService {
" dtb_doct.data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND " +
" dtb_doct.num_ord = " + UtilityDB.valueToString(numOrd);
info = conn.prepareStatement(sql);
res = info.executeQuery();
final HashMap<String, Object> resultDtbDoct = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
existScar = resultDtbDoct != null && !resultDtbDoct.isEmpty();
while (res.next()) {
existScar = true;
numDoc = res.getInt(1);
serDoc = res.getString(2);
qtaProdScaricoPrec = res.getBigDecimal(3);
}
res.close();
info.close();
numDoc = UtilityHashMap.getValueIfExists(resultDtbDoct, "num_doc");
serDoc = UtilityHashMap.getValueIfExists(resultDtbDoct, "ser_doc");
qtaProdScaricoPrec = UtilityHashMap.getValueIfExists(resultDtbDoct, "qta_prod");
}
// Creazione testata documento di scarico (Imballaggi e materiali se presenti)
@@ -1841,7 +1806,7 @@ public class DocumentProdService {
arrayEntity.add(docT);
// Creazione riga commento
if (scaricoUnico.compareTo("S") == 0) {
if (scaricoUnico) {
DtbDocr docR = new DtbDocr();
docR.setOperation(OperationType.INSERT);
docR.setDescrizione("PRODUZIONE DELLE " + new SimpleDateFormat(CommonConstants.DATETIME_FORMAT_DMY).format(new Date()));
@@ -1850,7 +1815,7 @@ public class DocumentProdService {
// Aggancio condizione che esclude eventuali materiali già presenti in colli di versamento
String tableMPScarDaCollo = "", condMPScarDaCollo = "";
if ("S".compareTo(creaScaricoDaCollo) == 0) {
if (carico.isCreaScaricoDaCollo()) {
condMPScarDaCollo = "righeOrdScar.num_ord is null";
tableMPScarDaCollo = "LEFT OUTER JOIN ( select distinct mtb_colt.gestione, mtb_colr.data_ord, mtb_colr.num_ord, mtb_colr.riga_ord " +
" from mtb_colt, mtb_colr " +
@@ -1885,15 +1850,14 @@ public class DocumentProdService {
" dtb_ordr.num_fase, " +
" round(dtb_ordt.qta_evasa_prod * dtb_ordt.rap_conv_prod, 5), " +
" dbo.f_getTipoGruppoMP(dtb_ordr.cod_mart) as gruppo_conto_mp " +
" FROM dtb_ordt, " +
" mtb_aart, " +
" dtb_ordr " +
" FROM dtb_ordt " +
" INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione " +
" AND dtb_ordt.data_ord = dtb_ordr.data_ord " +
" AND dtb_ordt.num_ord = dtb_ordr.num_ord " +
" INNER JOIN mtb_aart ON dtb_ordr.cod_mart = mtb_aart.cod_mart " +
(carico.isEscludiArticoliGestitiDaWmsInScarico() ? " INNER JOIN dbo.mvw_articoli_esclusi_wms mdaew ON mtb_aart.cod_mart = mdaew.cod_mart " : "") +
tableMPScarDaCollo +
" WHERE dtb_ordr.cod_mart = mtb_aart.cod_mart AND " +
" dtb_ordt.gestione = dtb_ordr.gestione AND " +
" dtb_ordt.data_ord = dtb_ordr.data_ord AND " +
" dtb_ordt.num_ord = dtb_ordr.num_ord AND " +
" dtb_ordr.flag_evaso_forzato = 'N' AND " +
" WHERE dtb_ordr.flag_evaso_forzato = 'N' AND " +
" dtb_ordr.gestione = " + UtilityDB.valueToString(gestione) + " AND " +
" dtb_ordr.data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND " +
" dtb_ordr.num_ord = " + UtilityDB.valueToString(numOrd);
@@ -2014,7 +1978,7 @@ public class DocumentProdService {
infoDati = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
resDati = infoDati.executeQuery();
rows = UtilityDB.countRow(resDati);
int rows = UtilityDB.countRow(resDati);
while (resDati.next()) {
Integer rigaOrdMate = resDati.getInt(1);
BigDecimal qtaDaScaricareOrd = resDati.getBigDecimal(2);
@@ -2197,7 +2161,7 @@ public class DocumentProdService {
// Verifica chiusura lotto di produzione se tutti gli ordini ad esso associati sono evasi
Integer ordInevasi = null;
if ("S".equals(terminaLavorazione) && "S".equals(generateLotto)) {
if (carico.isTerminaLavorazione() && generateLotto) {
sql =
" SELECT ISNULL(sum(CASE WHEN flag_evaso_prod = 'I' THEN 1 ELSE 0 END), 0) as ordini_inevasi " +
" FROM jtb_lotr, " +
@@ -2225,7 +2189,7 @@ public class DocumentProdService {
lotT.setIdLotto(idLotto);
lotT.setCodJfas(codJfasLotto);
lotT.setDataChiusura(dataDoc);
lotT.setFlagComp(terminaLavorazione);
lotT.setFlagComp(carico.isTerminaLavorazione() ? "S" : "N");
arrayEntity.add(lotT);
}
}