Merge branch 'refs/heads/develop' into feature/Feature-variazioni2

This commit is contained in:
2024-05-16 18:59:18 +02:00
30 changed files with 709 additions and 119 deletions

View File

@@ -7,6 +7,10 @@
<option name="HOST" value="localhost" />
<option name="PORT" value="8000" />
<option name="AUTO_RESTART" value="false" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="8000" />
<option name="LOCAL" value="false" />
</RunnerSettings>
<method v="2" />
</configuration>
</component>

View File

@@ -94,7 +94,7 @@ public class MenuConfigurationService {
final Azienda azienda = Azienda.getDefaultAzienda(connection);
int lastMenuUpd = Integer.parseInt(azienda.getLastUpgDbMenu().replace("QM", ""));
if (menuConfig.getVersion() < lastMenuUpd)
if (lastMenuUpd >= menuConfig.getVersion())
return;
executeStatement(connection, "DELETE FROM stb_menu",

View File

@@ -0,0 +1,30 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.IntegryCustomerDB;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240510172417 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
executeStatement(
"alter table mtb_lisv add flag_add_ric_spese bit default 0 not null",
"alter table mtb_lisv add flag_add_val_spese bit default 0 not null",
"alter table mtb_lisv add flag_add_sco_spese bit default 0 not null");
if (isCustomerDb(
IntegryCustomerDB.RossoGargano_RossoGargano)) {
executeStatement("UPDATE mtb_lisv set flag_add_ric_spese = 1, flag_add_val_spese = 1, flag_add_sco_spese = 1");
}
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,96 @@
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_20240514115827 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if (isCustomer(IntegryCustomer.Carelli))
createOrUpdateFunction("steup_getEntriesRilevazione", "CREATE FUNCTION [dbo].[steup_getEntriesRilevazione]()\n" +
" RETURNS TABLE AS return\n" +
"WITH steup_ispezioni AS (SELECT * FROM steup_getRilevazioni()),\n" +
"\n" +
" steup_activities AS (SELECT stb_activity.activity_id,\n" +
" stb_activity.activity_type_id,\n" +
" stb_activity.data_ins_act,\n" +
" ISNULL(stb_activity.effective_time, stb_activity.ora_ins_act) AS effective_time,\n" +
" stb_activity.cod_mart,\n" +
" mtb_aart.descrizione AS descr_art,\n" +
" stb_activity.activity_play_counter,\n" +
" stb_activity.note,\n" +
" stb_activity.cod_jfas,\n" +
" stb_activity.flag_tipologia,\n" +
" stb_activity.persona_rif,\n" +
" stb_activity.priorita,\n" +
" wtb_depo.cod_mdep,\n" +
" jtb_fasi.descrizione AS descr_fase,\n" +
" stb_activity.parent_activity_id,\n" +
" stb_activity.indice_gradimento,\n" +
" stb_activity.user_creator,\n" +
" jtb_fasi.max_allocazione,\n" +
" SUM(indice_gradimento)\n" +
" OVER ( PARTITION BY parent_activity_id,wtb_depo.cod_mdep,jtb_fasi.cod_jfas ) AS gradimento_reparto,\n" +
" steup_ispezioni.effective_time AS data_isp\n" +
" FROM winact.dbo.stb_activity\n" +
" INNER JOIN steup_ispezioni ON parent_activity_id = steup_ispezioni.activity_id\n" +
" LEFT OUTER JOIN winact.dbo.jtb_fasi ON stb_activity.cod_jfas = jtb_fasi.cod_jfas\n" +
" LEFT OUTER JOIN winact.dbo.mtb_aart ON stb_activity.cod_mart = mtb_aart.cod_mart\n" +
" LEFT OUTER JOIN winact.dbo.wtb_depo ON stb_activity.user_name = wtb_depo.user_name\n" +
" WHERE ISNULL(cod_jcom, '') <> 'MODEL'\n" +
" and stb_activity.cod_mart is null\n" +
" AND stb_activity.flag_tipologia = 'A')\n" +
" ,\n" +
"\n" +
"\n" +
"\n" +
"\n" +
" gradimento_reparto AS (SELECT DISTINCT parent_activity_id,\n" +
" cod_jfas,\n" +
" cod_mdep,\n" +
" data_isp,\n" +
" gradimento_reparto,\n" +
" LAG(gradimento_reparto, 1, 0)\n" +
" OVER (PARTITION BY cod_mdep,cod_jfas ORDER BY data_isp ) AS grad_1,\n" +
" LAG(gradimento_reparto, 2, 0)\n" +
" OVER (PARTITION BY cod_mdep,cod_jfas ORDER BY data_isp ) AS grad_2\n" +
"\n" +
" FROM (SELECT DISTINCT parent_activity_id, cod_mdep, cod_jfas, gradimento_reparto, data_isp\n" +
" FROM steup_activities) acti)\n" +
"\n" +
"\n" +
"SELECT steup_activities.*,\n" +
" CASE\n" +
" WHEN gradimento_reparto.grad_1 > max_allocazione AND gradimento_reparto.grad_2 > max_allocazione THEN 1\n" +
" ELSE 0 END AS recidiva,\n" +
" ((SELECT COUNT(*)\n" +
" FROM stb_activity art\n" +
" WHERE steup_activities.activity_id = art.parent_activity_id) + (SELECT COUNT(*)\n" +
" FROM mtb_colt\n" +
" INNER JOIN mtb_colr\n" +
" ON mtb_colt.gestione =\n" +
" mtb_colr.gestione AND\n" +
" mtb_colt.data_collo =\n" +
" mtb_colr.data_collo AND\n" +
" mtb_colt.ser_collo =\n" +
" mtb_colr.ser_collo AND\n" +
" mtb_colt.num_collo =\n" +
" mtb_colr.num_collo\n" +
" WHERE mtb_colt.activity_id = steup_activities.activity_id)) AS count_art\n" +
"FROM steup_activities\n" +
" left outer JOIN gradimento_reparto ON steup_activities.parent_activity_id = gradimento_reparto.parent_activity_id\n" +
" AND steup_activities.cod_mdep = gradimento_reparto.cod_mdep\n" +
" AND steup_activities.cod_jfas = gradimento_reparto.cod_jfas");
}
@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_20240515124626 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
executeStatement(
"exec sp_rename 'mtb_lisv.flag_add_ric_spese', 'add_ric_spese'",
"exec sp_rename 'mtb_lisv.flag_add_val_spese', 'add_val_spese'",
"exec sp_rename 'mtb_lisv.flag_add_sco_spese', 'add_sco_spese'");
}
@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_20240515151737 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
executeStatement("ALTER TABLE dtb_docr ADD flag_sezione integer;");
executeStatement("ALTER TABLE dtb_difr ADD flag_sezione integer;");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,170 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240516144054 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createOrUpdateFunction("getListinoVendita", "/*declare @dataValidita DATETIME, @codVlis VARCHAR(5), @codMart VARCHAR(15)\n" +
"\n" +
"set @dataValidita = '2024/01/01'\n" +
"--set @codVlis = '01' */\n" +
"CREATE FUNCTION [dbo].[getListinoVendita](@dataValidita DATETIME, @codVlis VARCHAR(5), @codMart VARCHAR(15))\n" +
" RETURNS TABLE AS\n" +
" RETURN\n" +
" SELECT vtb_list.cod_vlis,\n" +
" vtb_list.descrizione,\n" +
" CASE\n" +
" WHEN tmp_list.max_lisv IS NULL THEN NULL\n" +
" ELSE CONVERT(DATETIME, LEFT(tmp_list.max_lisv, 10)) END AS data_iniz,\n" +
" CASE\n" +
" WHEN tmp_list.max_lisv IS NULL THEN NULL\n" +
" ELSE CONVERT(INT, RIGHT(tmp_list.max_lisv, 4)) END AS versione,\n" +
" vtb_list.cod_divi,\n" +
" vtb_list.cambio,\n" +
" vtb_list.flag_arr_prz_iva,\n" +
" vtb_list.arr_ric,\n" +
" vtb_list.flag_list_iva_inclusa,\n" +
" vtb_list.flag_lisv_margine,\n" +
" vtb_list.flag_add_trasp,\n" +
" tmp_list.cod_mart AS 'cod_mart',\n" +
" mtb_lisv_data.unt_mis_ven AS unt_mis_ven,\n" +
" ISNULL(mtb_lisv_data.rap_conv, 1) AS rap_conv,\n" +
" ISNULL(mtb_lisv_data.prz_base, 0) AS prz_base,\n" +
" ISNULL(mtb_lisv_data.ricarica, 0) AS ricarico,\n" +
" CASE\n" +
" WHEN mtb_lisv_data.prz_vend IS NOT NULL AND mtb_lisv_data.prz_vend <> 0 THEN\n" +
" ROUND((ISNULL(mtb_lisv_data.prz_vend, 0) -\n" +
" (ISNULL(mtb_lisv_data.prz_base, 0) / (1 - mtb_aart.perc_sfrido / 100))) /\n" +
" ISNULL(mtb_lisv_data.prz_vend, 0) * 100, 2)\n" +
" ELSE 0 END AS margine_eff,\n" +
" --dbo.f_calcMargineEffettivo(IsNull(mtb_lisv_data.prz_base, 0), IsNull(mtb_lisv_data.prz_vend, 0), mtb_aart.perc_sfrido) as margine_eff,\n" +
" --dbo.f_calcRicaricoEffettivo(IsNull(mtb_lisv_data.prz_base, 0), IsNull(mtb_lisv_data.prz_vend, 0), mtb_aart.perc_sfrido) ricarico_eff, \n" +
" CASE\n" +
" WHEN mtb_lisv_data.prz_base IS NOT NULL AND mtb_lisv_data.prz_base <> 0 THEN\n" +
" ROUND((ISNULL(mtb_lisv_data.prz_vend, 0) -\n" +
" (ISNULL(mtb_lisv_data.prz_base, 0) / (1 - mtb_aart.perc_sfrido / 100))) /\n" +
" (ISNULL(mtb_lisv_data.prz_base, 0) / (1 - mtb_aart.perc_sfrido / 100)) * 100, 2)\n" +
" ELSE 0 END AS ricarico_eff,\n" +
"\n" +
" ISNULL(mtb_lisv_data.magg_prz_vend, 0) AS magg_prz_vend,\n" +
" ISNULL(mtb_lisv_data.prz_vend, 0) AS prz_vend,\n" +
" ISNULL(mtb_lisv_data.prz_vend_iva, 0) AS prz_vend_iva,\n" +
" ISNULL(mtb_lisv_data.perc_sco1, 0) AS perc_sco1,\n" +
" ISNULL(mtb_lisv_data.perc_sco2, 0) AS perc_sco2,\n" +
" ISNULL(mtb_lisv_data.perc_sco3, 0) AS perc_sco3,\n" +
" ISNULL(mtb_lisv_data.perc_sco4, 0) AS perc_sco4,\n" +
" ISNULL(mtb_lisv_data.perc_prov, 0) AS perc_prov,\n" +
" ISNULL(mtb_lisv_data.fisso_prov, 0) AS fisso_prov,\n" +
" ISNULL(mtb_lisv_data.posizione, '') AS posizione,\n" +
" ISNULL(mtb_lisv_data.perc_gest, 0) AS perc_gest,\n" +
" ISNULL(mtb_lisv_data.val_gest, 0) AS val_gest,\n" +
" mtb_lisv_data.data_agg_prz AS data_agg_prz,\n" +
" ISNULL(mtb_lisv_data.perc_ispe, 0) AS perc_ispe,\n" +
" ISNULL(mtb_lisv_data.val_ispe, 0) AS val_ispe,\n" +
" ISNULL(mtb_lisv_data.perc_promo, 0) AS perc_promo,\n" +
" ISNULL(mtb_lisv_data.val_promo, 0) AS val_promo,\n" +
" ISNULL(mtb_lisv_data.perc_oneri, 0) AS perc_oneri,\n" +
" ISNULL(mtb_lisv_data.val_oneri, 0) AS val_oneri,\n" +
" mtb_lisv_data.tipo_variazione AS tipo_variazione,\n" +
" mtb_lisv_data.note AS note,\n" +
" mtb_lisv_data.aggiornato_da AS aggiornato_da,\n" +
" mtb_lisv_data.prz_vend * (1 - mtb_lisv_data.perc_sco1 / 100) * (1 - mtb_lisv_data.perc_sco2 / 100) *\n" +
" (1 - mtb_lisv_data.perc_sco3 / 100) *\n" +
" (1 - mtb_lisv_data.perc_sco4 / 100) AS prz_vend_netto,\n" +
" CASE\n" +
" WHEN ISNULL(mtb_lisv_data.colli_pedana, 0) <> 0 THEN mtb_lisv_data.colli_pedana\n" +
" ELSE mtb_aart.colli_pedana END AS colli_pedana,\n" +
" mtb_lisv_data.cod_tcol_ul AS cod_tcol_ul,\n" +
" mtb_lisv_data.cod_tcol_ui AS cod_tcol_ui,\n" +
" ISNULL(mtb_lisv_data.prz_vend_sug, 0) AS prz_vend_sug,\n" +
" CASE\n" +
" WHEN ISNULL(mtb_lisv_data.qta_cnf, 0) <> 0\n" +
" /*AND dbo.getGestSetup('VTB_LIST', 'SETUP', 'QTA_CNF_LISTINO') = 'S' */\n" +
" THEN mtb_lisv_data.qta_cnf\n" +
" ELSE mtb_aart.qta_cnf END AS qta_cnf,\n" +
" CASE\n" +
" WHEN ISNULL(mtb_lisv_data.colli_strato, 0) <> 0 THEN mtb_lisv_data.colli_strato\n" +
" ELSE mtb_aart.colli_strato END AS colli_strato,\n" +
" mtb_lisv_data.descrizione_html AS descrizione_html,\n" +
" mtb_lisv_data.colli_pedana AS colli_pedana_lisv,\n" +
" mtb_lisv_data.qta_cnf AS qta_cnf_lisv,\n" +
" mtb_lisv_data.colli_strato AS colli_strato_lisv,\n" +
" mtb_lisv_data.sconto_cartoni,\n" +
" mtb_lisv_data.sconto_strato,\n" +
" mtb_lisv_data.sconto_pedane,\n" +
" vtb_list.flag_attivo,\n" +
" vtb_list_data.note AS note_testata,\n" +
" ISNULL(mtb_lisv_data.flag_prz_bloccato, 'N') AS flag_prz_bloccato,\n" +
" vtb_list_data.porto AS porto,\n" +
" mtb_lisv_data.system_note,\n" +
" mtb_lisv.add_val_spese,\n" +
" mtb_lisv.add_ric_spese,\n" +
" mtb_lisv.add_sco_spese\n" +
" FROM (SELECT vtb_list.cod_vlis AS cod_vlis,\n" +
" mtb_lisv_data.cod_mart,\n" +
" MAX(CASE\n" +
" WHEN vtb_list_data.versione IS NULL THEN NULL\n" +
" ELSE CONVERT(VARCHAR(10), vtb_list_data.data_iniz, 111) + ' ' +\n" +
" REPLICATE('0', 5 - LEN(vtb_list_data.versione)) +\n" +
" CONVERT(VARCHAR(5), vtb_list_data.versione) END) AS max_lisv,\n" +
" vtb_list.cod_vlis AS 'cod_vlis_rif'\n" +
" FROM vtb_list,\n" +
" mtb_lisv_data\n" +
" LEFT OUTER JOIN vtb_list_data ON mtb_lisv_data.cod_vlis = vtb_list_data.cod_vlis AND\n" +
" mtb_lisv_data.versione = vtb_list_data.versione AND\n" +
" vtb_list_data.cod_promo IS NULL AND\n" +
" vtb_list_data.data_iniz <= ISNULL(@dataValidita, GETDATE())\n" +
" WHERE vtb_list.cod_vlis = mtb_lisv_data.cod_vlis\n" +
" AND vtb_list.cod_vlis_rif IS NULL\n" +
" GROUP BY vtb_list.cod_vlis,\n" +
" mtb_lisv_data.cod_mart\n" +
" UNION\n" +
" SELECT vtb_list.cod_vlis AS cod_vlis,\n" +
" mtb_lisv_data.cod_mart,\n" +
" MAX(CASE\n" +
" WHEN vtb_list_data.versione IS NULL THEN NULL\n" +
" ELSE CONVERT(VARCHAR(10), vtb_list_data.data_iniz, 111) + ' ' +\n" +
" REPLICATE('0', 5 - LEN(vtb_list_data.versione_rif)) +\n" +
" CONVERT(VARCHAR(5), vtb_list_data.versione_rif) END) AS max_lisv,\n" +
" vtb_list.cod_vlis_rif AS 'cod_vlis_rif'\n" +
" FROM vtb_list,\n" +
" mtb_lisv_data,\n" +
" vtb_list_data,\n" +
" vtb_list_data vtb_list_data_rif\n" +
" WHERE vtb_list.cod_vlis = vtb_list_data.cod_vlis\n" +
" AND vtb_list.cod_vlis_rif = vtb_list_data_rif.cod_vlis\n" +
" AND vtb_list_data.versione_rif = vtb_list_data_rif.versione\n" +
" AND vtb_list_data_rif.cod_vlis = mtb_lisv_data.cod_vlis\n" +
" AND vtb_list_data_rif.versione = mtb_lisv_data.versione\n" +
" AND vtb_list_data.data_iniz <= ISNULL(@dataValidita, GETDATE())\n" +
" AND vtb_list.cod_vlis_rif IS NOT NULL\n" +
" GROUP BY vtb_list.cod_vlis,\n" +
" mtb_lisv_data.cod_mart,\n" +
" vtb_list.cod_vlis_rif) tmp_list\n" +
" inner join mtb_lisv on tmp_list.cod_vlis = mtb_lisv.cod_vlis and tmp_list.cod_mart = mtb_lisv.cod_mart\n" +
" LEFT OUTER JOIN mtb_lisv_data ON tmp_list.cod_vlis_rif = mtb_lisv_data.cod_vlis AND\n" +
" tmp_list.cod_mart = mtb_lisv_data.cod_mart AND\n" +
" CONVERT(INT, RIGHT(tmp_list.max_lisv, 5)) = mtb_lisv_data.versione\n" +
" LEFT OUTER JOIN vtb_list_data ON tmp_list.cod_vlis = vtb_list_data.cod_vlis AND\n" +
" CONVERT(INT, RIGHT(tmp_list.max_lisv, 5)) = vtb_list_data.versione,\n" +
" vtb_list,\n" +
" mtb_aart\n" +
" WHERE vtb_list.cod_vlis = tmp_list.cod_vlis\n" +
" AND (@codMart IS NULL OR tmp_list.cod_mart = @codMart)\n" +
" AND (@codVlis IS NULL OR tmp_list.cod_vlis = @codVlis)\n" +
" AND tmp_list.cod_mart = mtb_aart.cod_mart");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -967,16 +967,27 @@ public class SalesRules extends QueryRules {
" WHERE cod_vlis = " + UtilityDB.valueToString(mtbLisvData.getCodVlis()) + " AND " +
"cod_mart = " + UtilityDB.valueToString(mtbLisvData.getCodMart());
boolean existLiv = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
MtbLisv mtbLisv = new MtbLisv()
.setCodMart(mtbLisvData.getCodMart())
.setCodVlis(mtbLisvData.getCodVlis());
mtbLisv.setOperation(OperationType.NO_OP);
if (!existLiv) {
MtbLisv mtbLisv = new MtbLisv()
.setCodMart(mtbLisvData.getCodMart())
.setCodVlis(mtbLisvData.getCodVlis())
mtbLisv
.setUntMisVen(mtbLisvData.getUntMisVen())
.setDataAggPrz(new Date())
.setAggiornatoDa(mtbLisvData.getAggiornatoDa());
mtbLisv.setOperation(OperationType.INSERT_OR_UPDATE);
mtbLisvData.setMtbLisv(mtbLisv);
}
if (mtbLisvData.getAddRicSpese() != null || mtbLisvData.getAddScoSpese() !=null || mtbLisvData.getAddValSpese() != null){
mtbLisv
.setAddRicSpese(mtbLisvData.getAddRicSpese())
.setAddScoSpese(mtbLisvData.getAddScoSpese())
.setAddValSpese(mtbLisvData.getAddValSpese());
mtbLisv.setOperation(OperationType.INSERT_OR_UPDATE);
}
mtbLisvData.setMtbLisv(mtbLisv);
}
public static void updArtEqui(Connection conn, VtbListData testata) throws Exception {

View File

@@ -1377,7 +1377,13 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter
UniqueKeyRules.chkConstraint(connection, this);
List<EntityHierarchy.Field> fields = getEntityHolder()
.getEntitySqlFields(this.getClass());
.getEntityFields(this.getClass(), field ->
field.isObjectStorage() ||
field.isSqlField() ||
field.isClob() ||
field.isBlob() ||
field.isIdentity()
);
final List<kotlin.Triple<String, Object, Boolean>> preparedFieldsToQuery = prepareFieldsToQuery(fields);
// preparedField: 1 = sql_field_name, 2 = value_to_save, 3 = is_identity
@@ -1391,7 +1397,7 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter
.findFirst()
.orElse(null);
if(identityData != null) {
if (identityData != null) {
containsIdentity = true;
identityFieldName = identityData.getFirst();
}

View File

@@ -28,6 +28,7 @@ import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.sql.Connection;
import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import static org.reflections.scanners.Scanners.SubTypes;
@@ -248,11 +249,12 @@ public class EntityPropertyHolder {
}
public List<EntityHierarchy.Field> getEntityFields(Class<? extends EntityBase> clazz) {
public List<EntityHierarchy.Field> getEntityFields(Class<? extends EntityBase> clazz, Predicate<EntityHierarchy.Field> filterCondition) {
return this.entityHierarchyMap.stream()
.filter(x -> x.getClazz().equals(clazz))
.map(EntityHierarchy::getFields)
.flatMap(Collection::stream)
.filter(filterCondition)
.collect(Collectors.toList());
}

View File

@@ -187,6 +187,9 @@ public class DtbDocr extends DtbBaseDocR {
@SqlField(value = "id_contratto")
private Long idContratto;
/*Flag_sezione vale 1 per le righe dei riepilogo INTRa, mentre per tutte le altre righe vale null */
@SqlField(value = "flag_sezione")
private Integer flagSezione;
@JsonProperty(value = "pesoNetto")
private BigDecimal pesoNetto;
private int rigaKit;
@@ -1053,6 +1056,14 @@ public class DtbDocr extends DtbBaseDocR {
return this;
}
public Integer getFlagSezione() {
return flagSezione;
}
public void setFlagSezione(Integer flagSezione) {
this.flagSezione = flagSezione;
}
public String getReso() {
return reso;
}

View File

@@ -203,8 +203,8 @@ public class DtbTipi extends EntityBase {
@SqlField(value = "flag_cons_consumi", nullable = false, defaultObjectValue = "0")
private Boolean flagConsConsumi;
@SqlField(value = "flag_sezione", nullable = false)
private String flagSezione;
@SqlField(value = "flag_calc_peso_intra", nullable = false, defaultObjectValue = "N")
private String flagCalcPesoIntra;
@EntityChild
private List<DtbTipiAnag> dtbTipiAnag;
@@ -715,12 +715,12 @@ public class DtbTipi extends EntityBase {
return this;
}
public String getFlagSezione() {
return flagSezione;
public String getFlagCalcPesoIntra() {
return flagCalcPesoIntra;
}
public DtbTipi setFlagSezione(String flagSezione) {
this.flagSezione = flagSezione;
public DtbTipi setFlagCalcPesoIntra(String flagCalcPesoIntra) {
this.flagCalcPesoIntra = flagCalcPesoIntra;
return this;
}

View File

@@ -118,6 +118,13 @@ public class MtbLisv extends EntityBase {
@SqlField(value = "val_promo", defaultObjectValue = "0")
private BigDecimal valPromo;
@SqlField(value = "add_ric_spese", defaultObjectValue = "false", nullable = false)
private Boolean addRicSpese;
@SqlField(value = "flag_add_val_spese", defaultObjectValue = "false", nullable = false)
private Boolean addValSpese;
@SqlField(value = "add_soc_spese", defaultObjectValue = "false", nullable = false)
private Boolean addScoSpese;
public String getCodMart() {
return codMart;
}
@@ -387,4 +394,31 @@ public class MtbLisv extends EntityBase {
this.valPromo = valPromo;
return this;
}
public Boolean getAddRicSpese() {
return addRicSpese;
}
public MtbLisv setAddRicSpese(Boolean addRicSpese) {
this.addRicSpese = addRicSpese;
return this;
}
public Boolean getAddValSpese() {
return addValSpese;
}
public MtbLisv setAddValSpese(Boolean addValSpese) {
this.addValSpese = addValSpese;
return this;
}
public Boolean getAddScoSpese() {
return addScoSpese;
}
public MtbLisv setAddScoSpese(Boolean addScoSpese) {
this.addScoSpese = addScoSpese;
return this;
}
}

View File

@@ -161,6 +161,10 @@ public class MtbLisvData extends EntityBase {
private String flagEquiPrezzo;
private Boolean addRicSpese;
private Boolean addValSpese;
private Boolean addScoSpese;
@ImportFromParent
@MapToTable("data_iniz")
private Date dataIniz;
@@ -643,6 +647,33 @@ public class MtbLisvData extends EntityBase {
return this;
}
public Boolean getAddRicSpese() {
return addRicSpese;
}
public MtbLisvData setAddRicSpese(Boolean addRicSpese) {
this.addRicSpese = addRicSpese;
return this;
}
public Boolean getAddValSpese() {
return addValSpese;
}
public MtbLisvData setAddValSpese(Boolean addValSpese) {
this.addValSpese = addValSpese;
return this;
}
public Boolean getAddScoSpese() {
return addScoSpese;
}
public MtbLisvData setAddScoSpese(Boolean addScoSpese) {
this.addScoSpese = addScoSpese;
return this;
}
public List<TtbLisvTaglieData> getTtbLisvTaglieData() {
return ttbLisvTaglieData;
}

View File

@@ -0,0 +1,24 @@
@requestMapping = auth
@authUrl = {{protocol}}{{url}}{{port}}/{{baseEndPoint}}/{{requestMapping}}
### Auth login
POST {{authUrl}}/login?profileDb={{profileDb}}
Content-Type: application/json
{
"username": "adminrossogargano",
"password": "integry",
"deviceId": "test"
}
> {%
client.global.set("JWTAccessToken", response.body.dto.accessToken)
%}
### Auth logout
PUT {{authUrl}}/logout?profileDb={{profileDb}}
Authorization: Bearer {{JWTAccessToken}}
Content-Type: application/json
{
"username": "adminrossogargano"
}

View File

@@ -201,7 +201,7 @@ then
}
end
rule "completeCodArtForMtbLisa"
rule "completeCodArtForMtbLisaData"
no-loop
when
eval(completeRulesEnabled)
@@ -211,6 +211,18 @@ then
modify ( $entity ) { setCodArtFor(codArtFor) }
end
rule "completeCodArtForMtbLisa"
no-loop
when
eval(completeRulesEnabled)
$entity : MtbLisa(codArtFor == null && codAlis != null && codMart != null)
then
String codArtFor = PurchasesRules.completeCodArtFor(conn, $entity.getCodAlis(), $entity.getCodMart());
modify ( $entity ) { setCodArtFor(codArtFor) }
end
rule "completeModificatoDaLisa"
no-loop
when

View File

@@ -0,0 +1,28 @@
package it.integry.ems.activity.dto;
import it.integry.ems_model.annotation.SqlField;
public class DescrizioneTipiAttivitaDTO {
@SqlField("activity_type_id")
private String activityTypeId;
@SqlField("activity_type_description")
private String activityTypeDescription;
public String getActivityTypeId() {
return activityTypeId;
}
public DescrizioneTipiAttivitaDTO setActivityTypeId(String activityTypeId) {
this.activityTypeId = activityTypeId;
return this;
}
public String getActivityTypeDescription() {
return activityTypeDescription;
}
public DescrizioneTipiAttivitaDTO setActivityTypeDescription(String activityTypeDescription) {
this.activityTypeDescription = activityTypeDescription;
return this;
}
}

View File

@@ -16,6 +16,8 @@ public class SteUPEntryDTO {
private String dataCreation;
private String codCmac;
private String personaRif;
private Integer priorita;
private List<HashMap<String, Object>> colli = new ArrayList<>();
@@ -101,4 +103,22 @@ public class SteUPEntryDTO {
this.colli = colli;
return this;
}
public String getPersonaRif() {
return personaRif;
}
public SteUPEntryDTO setPersonaRif(String personaRif) {
this.personaRif = personaRif;
return this;
}
public Integer getPriorita() {
return priorita;
}
public SteUPEntryDTO setPriorita(Integer priorita) {
this.priorita = priorita;
return this;
}
}

View File

@@ -3,6 +3,7 @@ package it.integry.ems.activity.service;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.activity.dto.DescrizioneTipiAttivitaDTO;
import it.integry.ems.activity.dto.ModellinoDTO;
import it.integry.ems.activity.dto.SteUPEntryDTO;
import it.integry.ems.activity.dto.SteUpScoreDTO;
@@ -47,6 +48,7 @@ import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import static it.integry.ems.order.dto.UserGroupENUM.RILEVATORE;
import static it.integry.ems.order.dto.UserGroupENUM.TECNICO;
@@ -166,8 +168,10 @@ public class SteUPService {
}
toReturn.put("repo", repo);
sql = "SELECT LTRIM(RTRIM(stb_activity_type.activity_type_id)) AS activity_type_id " +
sql = "SELECT LTRIM(RTRIM(stb_activity_type.activity_type_id)) AS activity_type_id, activity_type_description " +
"FROM stb_activity_type INNER JOIN srl_activity_type_user ON stb_activity_type.activity_type_id = srl_activity_type_user.activity_type_id " +
"LEFT OUTER JOIN stb_activity_typer ON stb_activity_type.activity_type_id = stb_activity_typer.activity_type_id\n " +
" and stb_activity_type.flag_tipologia = stb_activity_typer.flag_tipologia " +
" INNER JOIN srl_user ON srl_activity_type_user.user_name = srl_user.user_name1 " +
" INNER JOIN wtb_users ON srl_user.user_name2 = wtb_users.user_name " +
"WHERE stb_activity_type.flag_tipologia = 'A' AND " +
@@ -175,10 +179,13 @@ public class SteUPService {
" stb_activity_type.cod_jfas = 'STEUP' AND " +
" wtb_users.user_name = " + UtilityDB.valueToString(userName) +
"ORDER BY 1";
List<Object> reas = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
if (reas == null || reas.size() == 0) {
List<DescrizioneTipiAttivitaDTO> listaReasConDescrizione = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(),sql,DescrizioneTipiAttivitaDTO.class);
if (listaReasConDescrizione == null || listaReasConDescrizione.isEmpty()) {
throw new Exception("La lista delle motivazioni è vuota");
}
toReturn.put("descrAttivita",listaReasConDescrizione);
List<String> reas = listaReasConDescrizione.stream().map(DescrizioneTipiAttivitaDTO::getActivityTypeId).distinct().collect(Collectors.toList());
toReturn.put("reas", reas);
@@ -534,6 +541,8 @@ public class SteUPService {
if (!UtilityString.isNullOrEmpty(codCmac)) {
activityItem.setCodCmac(codCmac);
}
activityItem.setPersonaRif(entry.getPersonaRif());
activityItem.setPriorita(entry.getPriorita());
activityItem.setEffectiveDate(dataCreation);
activityItem.setEffectiveTime(dataCreation);

View File

@@ -0,0 +1,6 @@
@requestMapping = steup
@url = {{protocol}}{{url}}{{port}}/{{baseEndPoint}}/{{requestMapping}}
### Service status
GET {{url}}/status?profileDb={{profileDb}}
Authorization: Bearer {{JWTAccessToken}}

View File

@@ -72,6 +72,9 @@ public class RossoGarganoSyncService {
savePdc(rgExchange.getConnection());
logger.info("Importazione agenti: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
deleteCtbMovt(rgExchange.getConnection());
logger.info("Cancellazione movimenti contabili: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
String sql =
"SELECT CAST(FORMAT(DATEPART(YEAR, data_iniz), '0000') +\n" +
" FORMAT(DATEPART(MONTH, data_iniz), '00') +\n" +
@@ -109,6 +112,26 @@ public class RossoGarganoSyncService {
logger.info("Importazione altri movimenti contabili: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
}
private void deleteCtbMovt(Connection sourceData) throws Exception {
String sql =
"SELECT m.num_cmov\n" +
"FROM " + multiDBTransactionManager.getPrimaryDatasource().getDbName() + ".dbo.rg_crl_movt m\n" +
"WHERE NOT EXISTS (SELECT *\n" +
" FROM pnota\n" +
" WHERE pnota.pn_data_competenza = m.pn_data_competenza AND pnota.pn_nro_reg = m.pn_nro_reg)\n";
List<Integer> listNumCmov = UtilityDB.executeSimpleQueryOnlyFirstColumn(sourceData, sql);
for ( Integer numCmov : listNumCmov) {
CtbMovt ctbMovt =
new CtbMovt().setNumCmov(numCmov);
ctbMovt.setOperation(OperationType.DELETE);
entityProcessor.processEntity(ctbMovt, true, multiDBTransactionManager);
UtilityEntity.throwEntityException(ctbMovt);
}
}
private void saveCtbMovt(Connection sourceData, String whereCond, BigDecimal dataIniz, BigDecimal dataFine) throws Exception {
String sql =
Query.format(
@@ -705,21 +728,17 @@ public class RossoGarganoSyncService {
" , conti AS (SELECT *\n" +
" FROM mov\n" +
" WHERE pn_cod_anag NOT IN (SELECT diacod\n" +
" FROM rossogargano.dbo.ctb_cont\n" +
" FROM " + multiDBTransactionManager.getPrimaryDatasource().getDbName() + ".dbo.ctb_cont\n" +
" WHERE diacod IS NOT NULL\n" +
" UNION\n" +
" SELECT diacod\n" +
" FROM rossogargano.dbo.gtb_anag\n" +
" FROM " + multiDBTransactionManager.getPrimaryDatasource().getDbName() + ".dbo.gtb_anag\n" +
" WHERE diacod IS NOT NULL))\n" +
" , conti_new AS (SELECT SUBSTRING(cl_codice, 2, 4) AS cod_cmas,\n" +
" SUBSTRING(cl_codice, 2, 2) AS cod_cgrp,\n" +
" cl_ragione_soc AS descrizione,\n" +
" NULL AS tipo_riep,\n" +
" 0 AS saldo_att,\n" +
" 'N' AS flag_cont_att,\n" +
" NULL AS cod_biva,\n" +
" NULL AS cod_jfas,\n" +
" NULL AS cod_csct,\n" +
" 'N' AS flag_risconto,\n" +
" 0 AS perc_ded,\n" +
" cl_codice AS diacod\n" +

View File

@@ -524,19 +524,19 @@ public class InventarioService {
nomeCampo = ls_cond[0];
valoreCampo = ls_cond[1];
if (nomeCampo.compareTo("sle_mtb_aart-cod_mgrp") == 0) {
if (nomeCampo.equalsIgnoreCase("sle_mtb_aart-cod_mgrp")) {
condCampo = SqlFieldHolder.getSqlCond("mtb_aart", "cod_mgrp", valoreCampo, "V");
} else if (nomeCampo.compareTo("sle_mtb_aart-cod_msgr") == 0) {
} else if (nomeCampo.equalsIgnoreCase("sle_mtb_aart-cod_msgr") ) {
condCampo = SqlFieldHolder.getSqlCond("mtb_aart", "cod_msgr", valoreCampo, "V");
} else if (nomeCampo.compareTo("sle_mtb_aart-cod_mtip") == 0) {
} else if (nomeCampo.equalsIgnoreCase("sle_mtb_aart-cod_mtip") ) {
condCampo = SqlFieldHolder.getSqlCond("mtb_aart", "cod_mtip", valoreCampo, "V");
} else if (nomeCampo.compareTo("sle_mtb_aart-cod_mstp") == 0) {
} else if (nomeCampo.equalsIgnoreCase("sle_mtb_aart-cod_mstp")) {
condCampo = SqlFieldHolder.getSqlCond("mtb_aart", "cod_mstp", valoreCampo, "V");
} else if (nomeCampo.compareTo("sle_mtb_aart-cod_mart") == 0) {
} else if (nomeCampo.equalsIgnoreCase("sle_mtb_aart-cod_mart")) {
condCampo = SqlFieldHolder.getSqlCond("mtb_aart", "cod_mart", valoreCampo, "V");
} else if (nomeCampo.compareTo("sle_ttb_style-cod_line") == 0) {
} else if (nomeCampo.equalsIgnoreCase("sle_ttb_style-cod_line")) {
condCampo = SqlFieldHolder.getSqlCond("ttb_style", "cod_line", valoreCampo, "V");
} else if (nomeCampo.compareTo("ddlb_anno_stag") == 0) {
} else if (nomeCampo.equalsIgnoreCase("ddlb_anno_stag")) {
condCampo = SqlFieldHolder.getSqlCond("ttb_style", "anno_stag", valoreCampo, "V");
}
whereCond = SqlFieldHolder.andCond(whereCond + ";" + condCampo, ";");

View File

@@ -227,7 +227,9 @@ public class CrmService {
ptbPrevt.setCambio(BigDecimal.ONE);
ptbPrevt.setCodVage(codVage);
ptbPrevt.setStatoOfferta("CONTATTO");
ptbPrevt.setOggetto(Base64.encodeBase64String(note.getBytes()));
if (note.getBytes() != null){
ptbPrevt.setOggetto(Base64.encodeBase64String(note.getBytes()));
}
if (pathFolderPrevt.compareTo("") != 0 && nameFileCheckList.compareTo("") != 0) {
ls_nextNumFile = getNextNumFile();

View File

@@ -376,10 +376,12 @@ public class ImportListiniAcquistoApuliaCarrefourService {
" mtb_grup.cod_mgrp =\n" +
" stb_gest_setup_det.val_col_rif) oneri\n" +
" ON apulia.tipo_listino = oneri.tipo_listino AND mtb_aart.cod_mgrp = oneri.cod_mgrp\n" +
"WHERE (apulia.data_prz_acq >= [DATA_INIZ_VAR] AND (ISNULL(lisa.prz_acq, 0) <> ISNULL(apulia.prz_acq, 0) OR\n" +
" ISNULL(lisa.perc_oneri, 0) <> [COLUMN_PERC_ONERI] OR\n" +
" ISNULL(lisa.val_promo, 0) <> ISNULL(apulia.val_premio, 0) OR\n" +
" ISNULL(lisa.cod_art_for, '') <> ISNULL(apulia.cod_art_for, '')))")
"WHERE (apulia.data_prz_acq >= [DATA_INIZ_VAR] OR \n " +
" ISNULL(lisa.cod_art_for, '') <> ISNULL(apulia.cod_art_for, '')) AND \n"+
" (ISNULL(lisa.prz_acq, 0) <> ISNULL(apulia.prz_acq, 0) OR\n" +
" ISNULL(lisa.perc_oneri, 0) <> [COLUMN_PERC_ONERI] OR\n" +
" ISNULL(lisa.cod_art_for, '') <> ISNULL(apulia.cod_art_for, '') OR\n" +
" ISNULL(lisa.val_promo, 0) <> ISNULL(apulia.val_premio, 0))")
.replace("[COLUMN_DATA_INIZ]", calcDataIniz)
.replace("[TYPE]", type)
.replace("[FORMAT]", format)

View File

@@ -26,6 +26,9 @@ public class RowInventarioDTO {
@SqlField("data_ora_inv")
private Date dataOraInv;
@SqlField("user_name")
private String userName;
private String profileDb;
public Integer getIdInventario() {
@@ -89,6 +92,14 @@ public class RowInventarioDTO {
this.dataOraInv = dataOraInv;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getProfileDb() {
return profileDb;
}

View File

@@ -47,7 +47,7 @@ public class GiacenzaService {
" ELSE mtb_aart.cod_mart END AS cod_mart_mov,\n" +
" ISNULL(mtb_comp.qta_std, 1) AS qta_std\n" +
"FROM mtb_aart\n" +
" LEFT OUTER JOIN mtb_comp ON mtb_aart.cod_mart = mtb_comp.cod_mart";
" LEFT OUTER JOIN mtb_comp ON mtb_aart.cod_mart = mtb_comp.cod_mart and mtb_aart.articolo_composto = 'S'";
String sql =
"SELECT cod_mdep\n" +

View File

@@ -3615,25 +3615,27 @@ public class PvmService {
" FROM (SELECT id_inventario,\n" +
" data_inventario,\n" +
" filtro,\n" +
" cod_mdep,\n" +
" mtb_invent.cod_mdep,\n" +
" righe.num_righe,\n" +
" righe.data_ora_inv" +
" righe.data_ora_inv,\n" +
" wtb_users.user_name\n" +
" FROM mtb_invent\n" +
" OUTER APPLY (SELECT COUNT(*) AS num_righe, MIN(CAST(mtb_invenr.data_ora_inv AS DATE)) AS data_ora_inv\n" +
" FROM mtb_invenr\n" +
" WHERE mtb_invent.id_inventario = mtb_invenr.id_inventario\n" +
" AND mtb_invent.cod_mdep = mtb_invenr.cod_mdep) AS righe" +
" AND mtb_invent.cod_mdep = mtb_invenr.cod_mdep) AS righe\n" +
" LEFT OUTER JOIN wtb_depo ON wtb_depo.cod_mdep = mtb_invent.cod_mdep\n" +
" LEFT OUTER JOIN wtb_users ON wtb_users.user_name = wtb_depo.user_name\n" +
" WHERE " + whereCond + "\n" +
" AND data_inventario >= DATEADD(MONTH, -2, GETDATE())) t),\n" +
" AND wtb_users.key_group = 10\n" +
" AND ctrl_state = 'S'\n" +
" AND data_inventario >= DATEADD(MONTH, -2, GETDATE())) t),\n" +
" TempCount AS (SELECT COUNT(*) AS rows_count\n" +
" FROM TempResult)\n" +
"SELECT TempResult.*,\n" +
" TempCount.*\n" +
"FROM TempResult,\n" +
" TempCount\n"
// +
// "OFFSET (" + UtilityDB.valueToString(pageNum) + " - 1) * " + UtilityDB.valueToString(pageSize) + " ROWS FETCH NEXT " + UtilityDB.valueToString(pageSize) + " ROWS ONLY"
;
" TempCount\n";
List<RowInventarioDTO> inventari = new ArrayList<>();

View File

@@ -11,6 +11,7 @@ import it.integry.ems_model.entity.NtbDoctChk;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityHashMap;
import it.integry.ems_model.utility.UtilityString;
import org.apache.commons.io.IOUtils;
import org.apache.logging.log4j.LogManager;
@@ -24,10 +25,7 @@ import java.io.FileOutputStream;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
@Service
@Scope("request")
@@ -82,77 +80,75 @@ public class ScontriniImportService {
query = UtilityDB.addwhereCond(query, whereCond, false);
PreparedStatement ps = multiDBTransactionManager.prepareStatement(query);
ResultSet rs = ps.executeQuery();
List<HashMap<String, Object>> listDepo = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
while (rs.next()) {
String codMdep = rs.getString("cod_mdep");
String codCassa = rs.getString("cod_cassa");
for (HashMap<String, Object> depo: listDepo){
String codMdep = UtilityHashMap.getValueIfExists(depo, "cod_mdep");
String codCassa = UtilityHashMap.getValueIfExists(depo, "cod_cassa");
Calendar currentDate = (Calendar) dataIniz.clone();
while (currentDate.before(dataFine) || currentDate.equals(dataFine)) {
String dataString = new SimpleDateFormat("yyyy/MM/dd").format(currentDate.getTime());
String queryPV =
"SELECT Cast('" + profileDb + "' as varchar) as profileDb, " +
"Cast('" + codMdep + "' as varchar) as codMdep, " +
"Cast('" + codCassa + "' as varchar) as codCassa, " +
"Cast('" + dataString + "' as varchar) as dataDoc, " +
" Cast(rowId as varchar) as idScontr " +
" from ( select case when charIndex('-', value_string) > 0 then left(value_string, charIndex('-', value_string) - 1) else rtrim(ltrim(value_string)) end valMin, " +
"case when charIndex('-', value_string) > 0 then right(value_string, len(value_string) - charIndex('-', value_string)) else rtrim(ltrim(value_string)) end valMax " +
" from dbo.ParseStringIntoArray(dbo.f_listaScontriniMancanti('" + codMdep + "', '" + codCassa + "', '" + dataString + "'), ',') ) scontrini cross apply " +
"dbo.getTableRowByNumber(valMin, valMax) " +
" UNION ALL " +
"SELECT '" + profileDb + "', " +
"'" + codMdep + "', " +
"'" + codCassa + "', " +
"'" + dataString + "', " +
"'>' + Cast(IsNull(max(id_scontr), 0) as varchar) " +
"FROM ntb_doct " +
"WHERE ntb_doct.cod_mdep = '" + codMdep + "' AND " +
" ntb_doct.cod_cassa = '" + codCassa + "' AND " +
" ntb_doct.date_only_doc = '" + dataString + "' AND " +
" ntb_doct.causale = 'C' " +
" GROUP BY ntb_doct.cod_mdep, ntb_doct.cod_cassa, ntb_doct.date_only_doc, ntb_doct.causale " +
" UNION ALL " +
"SELECT '" + profileDb + "', " +
"'" + codMdep + "', " +
"'" + codCassa + "', " +
"'" + dataString + "', " +
"'>' + Cast(IsNull(s.max_id_scontr, 0) as varchar) " +
" FROM (SELECT cod_mdep, " +
" cod_cassa," +
" data_rapp, " +
" num_scontr_fiscali " +
" FROM ntb_rapt " +
" WHERE cod_mdep = " + UtilityDB.valueToString(codMdep) + " AND " +
" data_rapp = " + UtilityDB.valueToString(dataString) + " AND " +
" cod_cassa = " + UtilityDB.valueToString(codCassa) + " AND " +
" flag_chiusura_fiscale = 'S' ) r FULL OUTER JOIN " +
" ( SELECT mtb_depo_casse.cod_mdep, " +
" mtb_depo_casse.cod_cassa, " +
UtilityDB.valueToString(dataString) + " as date_only_doc, " +
" isNull(MAX(id_scontr),0) as max_id_scontr " +
" FROM mtb_depo_casse left outer join ntb_doct on mtb_depo_casse.cod_mdep = ntb_doct.cod_mdep and " +
" mtb_depo_casse.cod_cassa = ntb_doct.cod_cassa AND " +
" ntb_doct.date_only_doc = " + UtilityDB.valueToString(dataString) + " AND " +
" ntb_doct.causale = 'V' " +
" WHERE mtb_depo_casse.cod_mdep = " + UtilityDB.valueToString(codMdep) + " AND " +
" mtb_depo_casse.cod_cassa = " + UtilityDB.valueToString(codCassa) +
"GROUP BY mtb_depo_casse.cod_mdep, mtb_depo_casse.cod_cassa) s ON " +
" r.cod_mdep = s.cod_mdep AND " +
" r.data_rapp = s.date_only_doc and" +
" r.cod_cassa = s.cod_cassa " +
" WHERE (IsNull(num_scontr_fiscali, -1) > IsNull(s.max_id_scontr, 0) ) OR " +
" num_scontr_fiscali is null ";
"SELECT CAST('[profileDb]' AS VARCHAR) AS profiledb,\n" +
" CAST('[codMdep]' AS VARCHAR) AS codmdep,\n" +
" CAST('[codCassa]' AS VARCHAR) AS codcassa,\n" +
" CAST('[dataDoc]' AS VARCHAR) AS datadoc,\n" +
" CAST(rowid AS VARCHAR) AS idscontr\n" +
"FROM stb_counter\n" +
"WHERE NOT EXISTS (SELECT id_scontr AS id\n" +
" FROM ntb_doct\n" +
" WHERE ntb_doct.date_only_doc = '[dataDoc]'\n" +
" AND ntb_doct.causale = 'V'\n" +
" AND ntb_doct.cod_mdep = '[codMdep]'\n" +
" AND ntb_doct.cod_cassa = '[codCassa]'\n" +
" AND id_scontr = rowid)\n" +
" AND stb_counter.rowid < (SELECT MAX(id_scontr) AS id\n" +
" FROM ntb_doct\n" +
" WHERE ntb_doct.date_only_doc = '[dataDoc]'\n" +
" AND ntb_doct.causale = 'V'\n" +
" AND ntb_doct.cod_mdep = '[codMdep]'\n" +
" AND ntb_doct.cod_cassa = '[codCassa]') \n" +
"UNION ALL\n" +
"SELECT '[profileDb]', '[codMdep]', '[codCassa]', '[dataDoc]', '>' + CAST(ISNULL(MAX(id_scontr), 0) AS VARCHAR)\n" +
"FROM ntb_doct\n" +
"WHERE ntb_doct.cod_mdep = '[codMdep]'\n" +
" AND ntb_doct.cod_cassa = '[codCassa]'\n" +
" AND ntb_doct.date_only_doc = '[dataDoc]'\n" +
" AND ntb_doct.causale = 'C'\n" +
"GROUP BY ntb_doct.cod_mdep, ntb_doct.cod_cassa, ntb_doct.date_only_doc, ntb_doct.causale\n" +
"UNION ALL\n" +
"SELECT '[profileDb]', '[codMdep]', '[codCassa]', '[dataDoc]', '>' + CAST(ISNULL(s.max_id_scontr, 0) AS VARCHAR)\n" +
"FROM (SELECT cod_mdep, cod_cassa, data_rapp, num_scontr_fiscali\n" +
" FROM ntb_rapt\n" +
" WHERE cod_mdep = '[codMdep]'\n" +
" AND data_rapp = '[dataDoc]'\n" +
" AND cod_cassa = '[codCassa]'\n" +
" AND flag_chiusura_fiscale = 'S') r\n" +
" FULL OUTER JOIN (SELECT mtb_depo_casse.cod_mdep,\n" +
" mtb_depo_casse.cod_cassa,\n" +
" '[dataDoc]' AS date_only_doc,\n" +
" ISNULL(MAX(id_scontr), 0) AS max_id_scontr\n" +
" FROM mtb_depo_casse\n" +
" LEFT OUTER JOIN ntb_doct ON mtb_depo_casse.cod_mdep = ntb_doct.cod_mdep AND\n" +
" mtb_depo_casse.cod_cassa = ntb_doct.cod_cassa AND\n" +
" ntb_doct.date_only_doc = '[dataDoc]' AND\n" +
" ntb_doct.causale = 'V'\n" +
" WHERE mtb_depo_casse.cod_mdep = '[codMdep]'\n" +
" AND mtb_depo_casse.cod_cassa = '[codCassa]'\n" +
" GROUP BY mtb_depo_casse.cod_mdep, mtb_depo_casse.cod_cassa) s\n" +
" ON r.cod_mdep = s.cod_mdep AND r.data_rapp = s.date_only_doc AND r.cod_cassa = s.cod_cassa\n" +
"WHERE (ISNULL(num_scontr_fiscali, -1) > ISNULL(s.max_id_scontr, 0))\n" +
" OR num_scontr_fiscali IS NULL";
PreparedStatement psPv = multiDBTransactionManager.prepareStatement(queryPV);
ResultSet rsPv = psPv.executeQuery();
ResultSetMapper rsIntegRetailDTO = new ResultSetMapper();
String stringFile = rsIntegRetailDTO.mapResultSetToCSV(rsPv, IntegRetailDTO.class, '\t', false, true);
rsPv.close();
psPv.close();
queryPV =
queryPV.replace("[profileDb]", profileDb)
.replace("[codMdep]", codMdep)
.replace("[codCassa]", codCassa)
.replace("[dataDoc]", dataString);
String stringFile = new ResultSetMapper().mapQueryToCSV(multiDBTransactionManager.getPrimaryConnection(), queryPV, IntegRetailDTO.class, '\t', false, true);
if (!UtilityString.isNullOrEmpty(stringFile)) {
//Salvare il file
String fileName = profileDb + "_" + codMdep + "_" + codCassa + "_" +
@@ -164,15 +160,11 @@ public class ScontriniImportService {
IOUtils.write(stringFile.getBytes(), fos);
fos.flush();
IOUtils.closeQuietly(fos);
rsPv.close();
psPv.close();
}
currentDate.add(Calendar.DATE, 1);
}
}
rs.close();
ps.close();
}
public List<EntityBase> receiptChecked(Date dataScontrini, String whereCond) throws Exception {

View File

@@ -903,9 +903,9 @@ public class WMSGenericService {
orderClone.getCodJcom().equalsIgnoreCase(x.getCodJcom()))
.map(MtbColr::getQtaCol)
.reduce(BigDecimal.ZERO, BigDecimal::add);
if (!UtilityBigDecimal.greaterThan(qtaColPerCommessa, orderClone.getQtaOrd().subtract(orderDto.getQtaArrivo()))) {
orderClone.setQtaOrd(orderClone.getQtaOrd().subtract(orderDto.getQtaArrivo()));
BigDecimal qtaInArrivo = UtilityBigDecimal.isNull(orderDto.getQtaArrivo(), BigDecimal.ZERO);
if (!UtilityBigDecimal.greaterThan(qtaColPerCommessa, orderClone.getQtaOrd().subtract(qtaInArrivo))) {
orderClone.setQtaOrd(orderClone.getQtaOrd().subtract(qtaInArrivo));
}
pickingListToReturn.add(new PickingObjectDTO()

23
http_client/env/http-client.env.json vendored Normal file
View File

@@ -0,0 +1,23 @@
{
"local": {
"protocol": "http://",
"url": "localhost",
"port": ":8080",
"baseEndPoint": "ems-api",
"profileDb": "ROSSOGARGANO"
},
"prod": {
"protocol": "https://",
"url": "services.studioml.it",
"port": "",
"baseEndPoint": "ems-api",
"profileDb": "ROSSOGARGANO"
},
"dev": {
"protocol": "https://",
"url": "devservices.studioml.it",
"port": "",
"baseEndPoint": "ems-api",
"profileDb": "ROSSOGARGANO"
}
}