Compare commits

...

1465 Commits

Author SHA1 Message Date
jenkins
e14b8a0a76 20241010_095514 2024-10-10 09:55:14 +02:00
eadc35561d Finish Hotfix-1
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
2024-10-10 09:54:50 +02:00
2481dd3dc8 [JENKINS] Aggiunti script compilazione Jenkins 2024-10-10 09:54:44 +02:00
b619a14b13 Finish Hotfix-1
Some checks failed
IntegryManagementSystem_Multi/pipeline/head There was a failure building this commit
2024-10-10 09:51:38 +02:00
6f09c4903f [JENKINS] Aggiunti script compilazione Jenkins 2024-10-10 09:51:26 +02:00
f689531e18 Finish Hotfix-1
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
2024-10-10 09:37:50 +02:00
b873013798 [JENKINS] Aggiunti script compilazione Jenkins 2024-10-10 09:37:37 +02:00
825c9c9827 Finish Hotfix-87 2024-10-09 17:34:16 +02:00
5ae0b44e99 esportazione docfinance 2024-10-09 17:33:59 +02:00
2284e54833 Finish Hotfix-1 2024-10-09 13:16:18 +02:00
8361ae1b83 [EXCHANGE] Fix su importazione documenti e partite magazzino 2024-10-09 13:16:05 +02:00
3181ae391d Finish Hotfix-1 2024-10-09 13:07:02 +02:00
e445b72f7d [ROSSOGARGANO]
- corretta vista progressivi colli lavorazione per partita
- rimossa cache forzata su biolevante
- aggiunta quantità in sincronizzazione valorizzazioni certificati
2024-10-09 13:06:54 +02:00
3358989914 Finish Hotfix-87 2024-10-09 11:27:27 +02:00
5dddc7ae80 sistemate migration 2024-10-09 11:27:20 +02:00
c3d81765d3 Finish Hotfix-87 2024-10-08 16:32:14 +02:00
f48960ddb9 gestita modalità di "prelievo" diversa da contanti 2024-10-08 16:32:05 +02:00
adc02cc9fe Finish Hotfix-87 2024-10-08 15:44:48 +02:00
5287d0d779 risolvere problema task e rotture di stock steup 2024-10-08 15:44:37 +02:00
dbb0f2e03b Finish Hotfix-87 2024-10-08 15:38:23 +02:00
9f4543358d sistemato errore 2024-10-08 15:38:16 +02:00
9607b0f91a Finish Hotfix-86 2024-10-08 14:39:12 +02:00
ce3c6faae4 Migration per ENABLE_POSITION_CHANGE_REQUEST 2024-10-08 14:38:04 +02:00
6953e339db Finish Hotfix-86 2024-10-08 09:10:38 +02:00
325545be5c sistemato salvataggio allegati elo anche quando non ci sono righe 2024-10-08 09:10:29 +02:00
85d787105f Finish Hotfix-86 2024-10-07 17:30:29 +02:00
0b3b21c73c invio email a responsabile sono se diverso da chi ha inserito, sistemata cancellazione movimenti rg 2024-10-07 17:16:25 +02:00
d9bbcd821e Finish Hotfix-86 2024-10-07 15:28:03 +02:00
36690c988c aggiunti dati banca su ctb_part di rossogargano e sistemata procedura di carelli 2024-10-07 15:27:04 +02:00
044306ca0d Finish Hotfix-1 2024-10-07 13:49:01 +02:00
36cd762fc9 [EXCHANGE] Fix in caso di delete partita 2024-10-07 13:48:56 +02:00
7f0210e150 Finish Hotfix-1 2024-10-07 13:23:08 +02:00
aab5f154b4 Fix ricalcolo numCnf nelle regole dei doc nel caso in cui sia una UM di tipo imballo 2024-10-07 13:23:02 +02:00
ff678bd97f Finish Hotfix-1 2024-10-07 12:23:18 +02:00
a0731205ff [EXCHANGE] Ripristinata cancellazione di partite di magazzino inesistenti 2024-10-07 12:23:11 +02:00
12ebad7ae2 Finish FixImportMancante 2024-10-07 09:47:43 +02:00
10840631b7 Fix import mancante in ExchangeBancheImportService 2024-10-07 09:47:23 +02:00
07e86a3c91 Migliorie sistema EXCHANGE 2024-10-04 19:18:17 +02:00
0531b865c4 Importazione movimenti contabili docfinance 2024-10-04 17:28:07 +02:00
a24fab203e Merge remote-tracking branch 'origin/develop' into develop 2024-10-04 15:10:26 +02:00
8c9db78a2d modificate funzioni f_int2lettere e f_dec2lettere per trasformare numeri interi e decimali in lettere 2024-10-04 15:10:16 +02:00
6f81a86a7d Ottimizzazione improtazione listini apulia 2024-10-04 11:00:49 +02:00
41afab06d6 varie modifiche per improtazione e esportazioni rosso gargano 2024-10-04 11:00:33 +02:00
07f20765cb Merge remote-tracking branch 'origin/develop' into develop 2024-10-03 18:47:49 +02:00
509148632f Aggiunta gestione CCI 37 2024-10-03 18:47:43 +02:00
6c7ddef35c Merge remote-tracking branch 'origin/develop' into develop 2024-10-03 17:32:07 +02:00
7507fd4a9f create funzioni f_int2lettere e f_dec2lettere per trasformare numeri interi e decimali in lettere 2024-10-03 17:31:56 +02:00
bcbb2a9504 Merge branch 'master' into develop 2024-10-03 17:10:48 +02:00
7ba2b75864 Finish Hotfix-1 2024-10-03 17:10:48 +02:00
9f88e36b61 [TOSCA]
gestione impegnato
2024-10-03 17:10:39 +02:00
03d8960e5a Finita query exportDocFinance 2024-10-03 16:08:11 +02:00
ef463d31f5 Finish Hotfix-86 2024-10-03 16:07:25 +02:00
f904ee7040 Merge branch 'master' into develop 2024-10-03 16:07:25 +02:00
aabee3022c correzione blocco risto cash 2024-10-03 16:07:18 +02:00
ff5972298c Merge remote-tracking branch 'origin/develop' into develop 2024-10-03 14:14:45 +02:00
e064d63bce personalizzato datawindow "Fatturato Articoli/CLienti" per Gramm 2024-10-03 14:14:34 +02:00
5d4a9c0702 Merge branch 'master' into develop 2024-10-02 18:14:01 +02:00
ca82ea83e6 Finish Hotfix-1 2024-10-02 18:14:00 +02:00
27fa0aa24c Fix exchange documenti 2024-10-02 18:13:55 +02:00
01d955200f Merge branch 'master' into develop 2024-10-02 17:08:35 +02:00
ea779be68f Finish Hotfix-1 2024-10-02 17:08:35 +02:00
a10155a5fd Implementata sincronizzazione exchange DocumentiVendita 2024-10-02 17:07:21 +02:00
4491b932de Merge remote-tracking branch 'origin/develop' into develop 2024-10-02 17:02:03 +02:00
8736af3e55 Modifica importazione docfinance 2024-10-02 17:01:58 +02:00
c3dcaeb944 Finish Hotfix-1 2024-10-02 17:01:33 +02:00
8ed1527e95 Merge branch 'master' into develop 2024-10-02 17:01:33 +02:00
ad02a0e54c Implementata sincronizzazione exchange DocumentiVendita 2024-10-02 17:01:27 +02:00
0e64ff7c05 Finish Hotfix-1 2024-10-02 14:56:59 +02:00
74e356f3bb Merge branch 'master' into develop 2024-10-02 14:56:59 +02:00
dcdfb7e03d [MATERICA]
aggiunta gestione pdf documenti in creazione zip
2024-10-02 14:56:51 +02:00
4335c1b0f7 disabilita la lettura delle info sull'indirizzo quando si verifica la partita iva da wingest 2024-10-02 12:14:03 +02:00
b96479962c Merge tag 'Hotfix-85' into develop
Finish Hotfix-85
2024-10-02 10:52:03 +02:00
311b0a1705 Finish Hotfix-85 2024-10-02 10:52:02 +02:00
99a4df9256 Fix query in getOrdiniLavorazione 2024-10-02 10:51:53 +02:00
c010e6f3bc Merge tag 'Hotfix-84' into develop
Finish Hotfix-84
2024-10-02 10:23:17 +02:00
0a824da8c6 Finish Hotfix-84 2024-10-02 10:23:16 +02:00
090e5f6d94 Fix query in getOrdiniLavorazione 2024-10-02 10:23:06 +02:00
a4a172b069 varie per importazione ed esportazione dati rossogargano 2024-10-02 09:52:08 +02:00
21c8ffdf18 Merge remote-tracking branch 'origin/develop' into develop 2024-10-02 09:06:35 +02:00
c49c2aabe4 Migrations disattivazione importazione documenti trasporto 2024-10-02 09:06:27 +02:00
38a603ada6 Migrations disattivazione importazione documenti trasporto 2024-10-02 09:06:21 +02:00
cbb8e97d03 personalizzato datawindow "Fatturato CLienti" per Biolevante 2024-10-01 11:27:28 +02:00
0037360a36 Merge branch 'master' into develop 2024-09-30 17:20:03 +02:00
8ded3f4a91 Finish Hotfix-1 2024-09-30 17:20:02 +02:00
1553c3b457 Fix su delete documents in EXCHANGE 2024-09-30 17:19:55 +02:00
4763bc5965 Merge remote-tracking branch 'origin/develop' into develop 2024-09-30 16:02:11 +02:00
e467ebb5e2 aggiunto campo tipo_formato sulla gtb_nazi 2024-09-30 16:02:01 +02:00
a961d0bb63 Finish Hotfix-1 2024-09-30 15:23:55 +02:00
4cf0c42375 Merge branch 'master' into develop 2024-09-30 15:23:55 +02:00
495876bc65 [MIDEL]
corretto controllo su esistenza cliente generico agente
2024-09-30 15:23:46 +02:00
90e6e64c91 Merge branch 'master' into develop 2024-09-30 15:20:28 +02:00
42d0c68c7f Finish Hotfix-1 2024-09-30 15:20:27 +02:00
0a27df0352 Merge remote-tracking branch 'origin/develop' into develop 2024-09-30 15:20:16 +02:00
6e2a9e9743 Fix errore mergeDbToEntity in caso di delete 2024-09-30 15:19:32 +02:00
bfb33d0d1f Merge branch 'master' into develop 2024-09-30 15:15:26 +02:00
c8a31a10fe Finish Hotfix-84 2024-09-30 15:15:25 +02:00
5df5f3b662 aggiunto num_cmov in un messaggio di errore e modifiche su procedura di importazione dei movimenti contabili di rossogargano 2024-09-30 15:11:28 +02:00
b45154e486 Spostati log di svuotamento logdb in trace 2024-09-30 12:53:45 +02:00
352f0e31d1 Merge branch 'master' into develop 2024-09-30 12:48:59 +02:00
f674b9a359 Finish Hotfix-1 2024-09-30 12:48:58 +02:00
9a2bada3cd Fix su controllo date Exchange 2024-09-30 12:48:52 +02:00
10b0fad6a6 Merge remote-tracking branch 'origin/develop' into develop 2024-09-30 12:19:25 +02:00
c0d7fe5f8e Disabilitata cache per DEMO su pc aziendali 2024-09-30 12:19:13 +02:00
ff39e731de Finish Hotfix-84 2024-09-30 12:10:38 +02:00
bbf62915b5 Merge branch 'master' into develop 2024-09-30 12:10:38 +02:00
bf1e04997c aggiunto num_cmov in un messaggio di errore e modifiche su procedura di importazione dei movimenti contabili di rossogargano 2024-09-30 12:09:45 +02:00
d6bf039007 Merge branch 'master' into develop 2024-09-30 10:50:23 +02:00
56f9d2041e Finish Hotfix-1 2024-09-30 10:50:22 +02:00
f8004fab38 Migliorie su EXCHANGE 2024-09-30 10:50:16 +02:00
c6ff9bf898 Merge branch 'master' into develop 2024-09-30 10:07:21 +02:00
ad2b7b3905 Finish Hotfix-1 2024-09-30 10:07:20 +02:00
6c445cc0e4 [ROSSOGARGANO]
cambio ordine di raccolta su certificato
2024-09-30 10:07:12 +02:00
f8e857ab26 sistemati campi della query 2024-09-30 09:43:37 +02:00
b2df910a51 [Task] fix aggiornamento codJfas in modifica attività 2024-09-27 16:18:23 +02:00
af80a0711a Merge remote-tracking branch 'origin/develop' into develop 2024-09-27 15:19:54 +02:00
57e6bc8bf1 Merge branch 'master' into develop 2024-09-27 15:16:35 +02:00
2d07f7e23c Finish Hotfix-1 2024-09-27 15:16:35 +02:00
d42e6d9bc1 Migliorata gestione di Exchange dei colli per ridurne l'impatto sulle performance 2024-09-27 15:16:28 +02:00
0c06a2f04d sistemata importazione dei dati del scontrino di vendita nel reso 2024-09-27 15:16:11 +02:00
f3a2027fb1 Merge remote-tracking branch 'origin/develop' into develop 2024-09-27 15:15:07 +02:00
bdc4359ad0 Esportazione scadenze doc finance 2024-09-27 15:15:02 +02:00
2211fb890b Sistemata procedura di importazione delle griglie di vendita 2024-09-27 12:18:12 +02:00
3a0667df22 Esportazione anagrafiche DocFinance 2024-09-27 11:26:56 +02:00
87597ab83b Personalizzazione stampa lipe per visualizzare o meno il credito anno precedente (attivata visualizzazione solo per Carelli) 2024-09-27 09:58:01 +02:00
08144fd5ea Aggiunta percProv in fase di importazione ordini web 2024-09-27 09:03:39 +02:00
e417eb762c Importazione scadenze DocFinance 2024-09-27 09:02:55 +02:00
50ce405dd7 Merge remote-tracking branch 'origin/develop' into develop 2024-09-26 18:05:41 +02:00
d52ecd7457 Modifica riapertura ordine AGRICOPER 2024-09-26 18:05:32 +02:00
ef7e3624fd Merge branch 'master' into develop 2024-09-26 16:43:26 +02:00
17178edd4f Finish Hotfix-84 2024-09-26 16:43:25 +02:00
a168edc3c2 sistemata condizione per selezionare i documenti web accettati quando c'è un collo di rettifica 2024-09-26 16:43:14 +02:00
fb019fcd1a Merge branch 'master' into develop 2024-09-25 17:33:35 +02:00
d7541b5fa8 Finish Hotfix-84 2024-09-25 17:33:34 +02:00
9759e7b4d5 aggiunta invio email di errore 2024-09-25 17:31:51 +02:00
0c582d6a91 Merge remote-tracking branch 'origin/develop' into develop 2024-09-25 14:58:20 +02:00
af100ad02e Escluso DB DMS da aggiornamento 2024-09-25 14:58:05 +02:00
0deb7a519f Escluso DB DMS da aggiornamento 2024-09-25 14:57:55 +02:00
de6186895a Merge branch 'master' into develop 2024-09-25 13:44:57 +02:00
ed493ca159 Finish Hotfix-84 2024-09-25 13:44:56 +02:00
8547bbdd08 aggiunta l'importazione dei fornitori nella sincronizzazione dei movimenti contabili 2024-09-25 13:44:49 +02:00
c6ee4364a2 [Ordify] Inserito calcolo provigione in esportazione ordini 2024-09-25 11:31:12 +02:00
9561f42283 Merge remote-tracking branch 'origin/develop' into develop 2024-09-25 10:54:18 +02:00
a5faa8c671 personalizzazione datawindow "Report Scadenze Fornitori" Carelli 2024-09-25 10:54:10 +02:00
27a48d221c Merge branch 'master' into develop 2024-09-25 09:45:31 +02:00
b9b0caa9fd Finish Hotfix-1 2024-09-25 09:45:30 +02:00
daa9dc3116 [ROSSOGARGANO]
- aggiunto servizio eliminazione certificato
- corretta duplicazione mtb_partita_mag_carat in modifica certificato
[TOSCA]
- corretta importazione impegnato da excel
2024-09-25 09:45:21 +02:00
0859e13a22 Merge remote-tracking branch 'origin/develop' into develop 2024-09-24 18:17:04 +02:00
173c27d98a Importazione ordini PUDDY sevenbar 2024-09-24 18:16:56 +02:00
cdc00bf9d3 Modifica FILCONAD 2024-09-24 18:16:30 +02:00
060487d40f Merge remote-tracking branch 'origin/develop' into develop 2024-09-24 18:11:30 +02:00
676d411191 modificata entity jtb_flav 2024-09-24 18:11:20 +02:00
1f2bd32da9 Finish Hotfix-84 2024-09-24 17:05:58 +02:00
3c43ce55c4 Merge branch 'master' into develop 2024-09-24 17:05:58 +02:00
dbe0563dad controllo sul null 2024-09-24 17:05:51 +02:00
d604707800 Finish Hotfix-84 2024-09-24 16:59:12 +02:00
ebf84daf89 Merge branch 'master' into develop 2024-09-24 16:59:12 +02:00
a401490d4b controllo sul null 2024-09-24 16:59:05 +02:00
2bbddc0df5 Merge remote-tracking branch 'origin/develop' into develop 2024-09-24 15:38:10 +02:00
4022505656 Migliorata gestione di invalid token exception 2024-09-24 15:37:57 +02:00
ac785fc135 Merge remote-tracking branch 'origin/develop' into develop 2024-09-24 15:34:03 +02:00
74c69af243 inserito campo altre_mansioni nella jtb_flav 2024-09-24 15:33:54 +02:00
d155771914 Merge branch 'master' into develop
# Conflicts:
#	ems-core/src/main/java/it/integry/ems_model/entity/GtbBancAziIntercode.java
2024-09-24 15:31:55 +02:00
25a7acb865 Finish Hotfix-84 2024-09-24 15:31:15 +02:00
dd3d71a9e0 aggiunta tabella intercode 2024-09-24 15:30:48 +02:00
835633ca4c - inserito entity child gtb_tipi_paga_intercode in gtb_tipi_paga
- modificate entity GtbTipiPagaIntercode e GtbBancAziIntercode
2024-09-24 15:23:44 +02:00
cd76a5655b Finish Hotfix-84 2024-09-24 12:00:58 +02:00
617f28594d Merge branch 'master' into develop 2024-09-24 12:00:58 +02:00
35494375dc Aggiunto messaggio d'errore quando non troviamo il deposito 2024-09-24 11:55:23 +02:00
4822c68e32 Importazione packing list formato DESADV Vebad 2024-09-24 11:15:38 +02:00
787cbeacec Merge remote-tracking branch 'origin/develop' into develop 2024-09-24 09:32:51 +02:00
962e3c8208 Fix keygroup in authentication 2024-09-24 09:32:43 +02:00
a711305b13 Finish Hotfix-84 2024-09-24 09:23:21 +02:00
490defe829 Merge branch 'master' into develop 2024-09-24 09:23:21 +02:00
a557d59700 sistemata condizione per selezionare ec come deposito aggiuntivo su bz 2024-09-24 09:09:05 +02:00
d6125204dd Merge remote-tracking branch 'origin/develop' into develop 2024-09-23 19:02:44 +02:00
b8e03337ee Fix keygroup in authentication 2024-09-23 19:02:37 +02:00
b5b854851b Finish Hotfix-84 2024-09-23 17:46:57 +02:00
bda9427eb8 Merge branch 'master' into develop 2024-09-23 17:46:57 +02:00
789a73fa78 sistemato popolamento della giacenza di carelli 2024-09-23 17:46:13 +02:00
c6008c4171 Aggiunto controllo in openStep se FERMA_CREA_DOCS attivo 2024-09-23 17:13:16 +02:00
93832a5e60 Merge branch 'master' into develop 2024-09-23 13:13:55 +02:00
c1b9e900f4 Finish FixImportOrdiniOrdikids 2024-09-23 13:13:54 +02:00
5e2d3fb38c Aggiunta condizione user_name in verifica ordine già importato ordikids 2024-09-23 13:13:47 +02:00
1f351ae36f Gestito destinatario in pvm_getassortimentoCliente 2024-09-20 18:45:38 +02:00
fc8831799d Eliminato log di ProcessSql 2024-09-20 17:31:11 +02:00
38a270a5de Merge branch 'master' into develop 2024-09-20 15:35:55 +02:00
4296ab94f0 Finish Hotfix-84 2024-09-20 15:35:54 +02:00
2ed3438b0c sistremato errore in inserimento attività 2024-09-20 15:35:48 +02:00
17b70036a6 Merge branch 'master' into develop 2024-09-20 15:23:04 +02:00
e3321d83d0 Finish Hotfix-84 2024-09-20 15:23:03 +02:00
efeacadb33 sistemare la procedura di apulia affinchè possa lavorare in ascolto sulla directory 2024-09-20 15:22:18 +02:00
6e908c02a2 [WinClock] Fix su notifiche iOS 2024-09-20 13:49:19 +02:00
663acfee7e Finish Hotfix-85 2024-09-20 12:49:30 +02:00
d3b2ca57de Merge branch 'master' into develop 2024-09-20 12:49:30 +02:00
8b5645118f sistremato errore in inserimento attività 2024-09-20 12:49:24 +02:00
761f89d8a1 Finish Hotfix-84 2024-09-20 11:36:15 +02:00
2fcb5eab65 Merge branch 'master' into develop 2024-09-20 11:36:15 +02:00
d464948fc9 tornata indietro 2024-09-20 11:36:08 +02:00
d17208d158 tornata indietro 2024-09-20 11:35:27 +02:00
113be95c26 Gestito il deadlock in importGSEOrder 2024-09-20 10:46:35 +02:00
04a226859e Merge branch 'master' into develop
# Conflicts:
#	ems-engine/src/main/java/it/integry/ems/document/Import/service/DocumentiAcquistoImportService.java
2024-09-20 10:26:38 +02:00
fc9009072a Finish Hotfix-84 2024-09-20 10:26:11 +02:00
c0abde4fd0 eliminato riferimento dell'ordine dalle righe delle bolle di apulia 2024-09-20 10:26:04 +02:00
898a79a6a4 Merge tag 'Hotfix-83' into develop
Finish Hotfix-83
2024-09-19 16:50:39 +02:00
4579c64744 Finish Hotfix-83 2024-09-19 16:50:39 +02:00
a115c8e607 Fix null point in invio notifica 2024-09-19 16:50:22 +02:00
18acbfa324 Importazione ordini di vendita sevenbar 2024-09-19 16:41:10 +02:00
955e6d37c2 Merge remote-tracking branch 'origin/develop' into develop 2024-09-19 16:40:38 +02:00
f617edbf27 Importazione GSE 2024-09-19 16:40:31 +02:00
f97de2de08 Finish Hotfix-83 2024-09-19 14:00:44 +02:00
d2bf587d57 Merge branch 'master' into develop 2024-09-19 14:00:44 +02:00
941e5948c8 eliminato file filter 2024-09-19 14:00:35 +02:00
94a52168f7 Merge remote-tracking branch 'origin/develop' into develop 2024-09-19 12:43:49 +02:00
1d408a1460 eliminata disabilitazione gestione aliquote iva, abilitato inserimento ddt, eliminata attribuzione num_doc su importazione documenti apulia 2024-09-19 12:43:44 +02:00
63858fa63e Merge tag 'Hotfix-82' into develop
Finish Hotfix-82
2024-09-19 12:39:56 +02:00
8fd558360d Finish Hotfix-82 2024-09-19 12:39:55 +02:00
2f191e012d Fix ApuliaRifOrd 2024-09-19 12:39:37 +02:00
fcae5341bd aggiunto indice 2024-09-19 09:06:21 +02:00
5fa18833e7 Merge branch 'master' into develop 2024-09-18 16:39:31 +02:00
724c875f72 Finish Hotfix-1 2024-09-18 16:39:30 +02:00
30e599140d [ROSSOGARGANO]
corretta imoortazione certificati valorizzati
2024-09-18 16:39:22 +02:00
7ae54057a4 Merge branch 'master' into develop 2024-09-18 15:46:14 +02:00
b7f41fdd33 Finish Hotfix-1 2024-09-18 15:46:13 +02:00
a456690c89 [ROSSOGARGANO]
fix salvataggio certificati (tassoriduzione = 0)
2024-09-18 15:46:06 +02:00
ec5b635a13 Merge branch 'master' into develop 2024-09-18 12:57:21 +02:00
110ee85863 Finish Hotfix-1 2024-09-18 12:57:20 +02:00
175befb82f [ROSSOGARGANO]
fix creazione ddta in creazione certificato
2024-09-18 12:57:13 +02:00
17e8cad14b creata nuova tabella gtb_tipi_paga_intercode 2024-09-18 12:56:10 +02:00
d27b4ac4b7 Merge remote-tracking branch 'origin/develop' into develop 2024-09-18 12:46:28 +02:00
db37651a65 creata nuova tabella gtb_banc_azi_intercode 2024-09-18 12:46:17 +02:00
4da0144be7 Merge branch 'master' into develop 2024-09-18 12:28:13 +02:00
c1660b4821 Finish Hotfix-82 2024-09-18 12:28:13 +02:00
9db3002acc non far scaricare la griglia al termine dell'ispezione se si tratta di rotture di stock no freschi 2024-09-18 12:28:03 +02:00
10c69c022c Merge branch 'master' into develop 2024-09-18 12:02:01 +02:00
44f127ab9b Finish Hotfix-1 2024-09-18 12:02:00 +02:00
e7fcd977f7 Aggiunta implementazione che durante l'exchange dei Colli, se il collo è da cancellare ed è agganciato a documento allora provvede prima a sganciare il documento e successivamente a cancellare il collo 2024-09-18 12:01:54 +02:00
9892418137 Aggiunto profile db nei claim data del JWT Token 2024-09-18 11:57:10 +02:00
0b884b97ce Merge branch 'master' into develop 2024-09-18 10:12:09 +02:00
7bf36fcdf5 Finish Hotfix-1 2024-09-18 10:12:08 +02:00
d930c23677 corretto controllo in getordinilavorazione 2024-09-18 10:12:01 +02:00
409cee499d nuove classi per esportazione e impostazione scadenze 2024-09-18 09:22:53 +02:00
8f1cba7756 Merge branch 'master' into develop 2024-09-17 19:15:04 +02:00
32323a0323 Finish Hotfix-1 2024-09-17 19:15:03 +02:00
fac88c991b [DEMO]
messi dati MRP e MES in cache per biolevante !!TEMPORANEAMENTE!!
2024-09-17 19:14:55 +02:00
c6f6ca31f0 Create setup mancanti winaccess e setup etichetta rientro mes 2024-09-17 18:51:22 +02:00
9df7e2ad73 migration per disattivare setup attivata erroneamente 2024-09-17 17:33:47 +02:00
3ea63962a2 Merge branch 'master' into develop 2024-09-17 17:00:50 +02:00
2a657043d7 Finish Hotfix-82 2024-09-17 17:00:49 +02:00
450b458f29 aggiunto invio email a responsabile di commessa 2024-09-17 17:00:43 +02:00
8e862e3e41 Merge branch 'master' into develop 2024-09-17 15:58:46 +02:00
441804f254 Finish Hotfix-82 2024-09-17 15:58:45 +02:00
67c0ceefdd aggiunto invio email a responsabile di commessa 2024-09-17 15:49:35 +02:00
3647fb995d Merge remote-tracking branch 'origin/develop' into develop 2024-09-17 15:29:32 +02:00
9534dabdf1 sincronizzazione banche aziendali 2024-09-17 15:29:27 +02:00
31a123789a Refactor processReport 2024-09-17 14:56:57 +02:00
94625a04f1 Merge branch 'master' into develop
# Conflicts:
#	ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeImportSchemaManagerService.java
2024-09-17 13:04:33 +02:00
fd52f5bf3a Finish Hotfix-1 2024-09-17 13:03:30 +02:00
aad189abb0 [TOSCA]
Servizio importazione ordini vendita
[ROSSOGARGANO]
Servizio sincornizzazione certificati
2024-09-17 13:03:22 +02:00
dac51332c4 Merge branch 'master' into develop 2024-09-17 12:50:32 +02:00
296e828f84 Finish Hotfix-82 2024-09-17 12:50:32 +02:00
2cf7e8896d aggiunto controllo per articoli con barcode null 2024-09-17 12:50:25 +02:00
7140170b01 servizio di sync banche aziendali 2024-09-17 12:30:08 +02:00
ac953a7668 [Ordify] Aggiunto metodo per il download dei report da ordify 2024-09-17 09:39:26 +02:00
1abf04e112 Merge remote-tracking branch 'origin/develop' into develop 2024-09-17 09:15:40 +02:00
c97ac8ef24 aggiunti campi data_iniz e data_fine nella gestione elenco note aggiuntive al documento 2024-09-17 09:15:30 +02:00
32c6fe13d1 Finish Hotfix-81 2024-09-16 10:55:36 +02:00
12210508cf Merge tag 'Hotfix-81' into develop
Finish Hotfix-81
2024-09-16 10:55:36 +02:00
517e614a67 Fix stato attività 2024-09-16 10:55:15 +02:00
c109ba1d8f Merge remote-tracking branch 'origin/develop' into develop 2024-09-13 18:17:01 +02:00
1089324b48 Modifica 2024-09-13 18:16:50 +02:00
d35f1fd3e7 sistemato servizio di salvataggio delle immagini 2024-09-13 18:04:46 +02:00
98346a4263 Merge branch 'master' into develop 2024-09-13 17:42:07 +02:00
9f03ce827f Finish Hotfix-81 2024-09-13 17:42:07 +02:00
efebad843a sistemato servizio di salvataggio immagini su articolo da directory 2024-09-13 17:42:00 +02:00
89430c96e3 aggiunta migration setup 2024-09-13 17:40:49 +02:00
d5a8032514 creata nuova gestione elenco note aggiuntive al documento 2024-09-13 17:08:18 +02:00
26c18df76e aggiunta data inserimento e modifica su ctb_cont e aggiunta funzione per attivare velocemente il salvataggio con i servizi rest 2024-09-13 15:55:57 +02:00
eab51f4f81 aggiunta data inserimento e modifica su ctb_cont e aggiunta funzione per attivare velocemente il salvataggio con i servizi rest 2024-09-13 15:55:36 +02:00
ecd3e14cc5 Finish Hotfix-81 2024-09-13 13:55:23 +02:00
adccc2bb1a Merge branch 'master' into develop 2024-09-13 13:55:23 +02:00
3af2aefa47 modifica a servizio di salvataggio immagini da directory 2024-09-13 13:55:15 +02:00
2fd4d75df0 create entity DtbNoteDoc e DrlTipiNoteDoc 2024-09-13 12:38:59 +02:00
67904d5e78 create tabelle dtb_note_doc e drl_tipi_note_doc 2024-09-13 11:42:10 +02:00
0246331940 Merge tag 'Hotfix-80' into develop
Finish Hotfix-80
2024-09-13 10:22:28 +02:00
450ab46281 Finish Hotfix-80 2024-09-13 10:22:27 +02:00
bee4ec324a socialweb 2024-09-13 10:22:06 +02:00
af1e06d765 Merge tag 'Hotfix-79' into develop
Finish Hotfix-79
2024-09-12 16:53:43 +02:00
d4b35cccd4 Finish Hotfix-79 2024-09-12 16:53:42 +02:00
46b8842db1 Modifica import GSE 2024-09-12 16:53:19 +02:00
9fa40e5e3c Merge branch 'master' into develop 2024-09-12 16:10:40 +02:00
1dc43f7760 Finish Hotfix-79 2024-09-12 16:10:40 +02:00
f37afb6e51 Controllo su ass, commessa a ordini acquisto textiles 2024-09-12 15:46:55 +02:00
f70130e7bd Controllo su ass, commessa a ordini acquisto textiles 2024-09-12 15:46:49 +02:00
11b6853979 modificata logica per attività pianificate 2024-09-12 15:44:32 +02:00
4236989e20 Merge remote-tracking branch 'origin/develop' into develop 2024-09-12 15:36:17 +02:00
772c69f7dc Controllo su ass, commessa a ordini acquisto textiles 2024-09-12 15:36:10 +02:00
83ee7eb720 Finish Hotfix-79 2024-09-12 14:41:50 +02:00
18d99158f5 Merge branch 'master' into develop 2024-09-12 14:41:50 +02:00
611560f365 modificata logica per attività pianificate 2024-09-12 14:41:36 +02:00
6c54599f1a Merge tag 'Hotfix-78' into develop
Finish Hotfix-78
2024-09-12 12:41:17 +02:00
132a4d176c Finish Hotfix-78 2024-09-12 12:41:16 +02:00
dbf79d9cc6 Modifica import GSE 2024-09-12 12:40:58 +02:00
40557913ba Merge remote-tracking branch 'origin/develop' into develop 2024-09-12 12:20:54 +02:00
b1f28f9462 Aggiunto controllo su esistenza lotto nella generazione degli ordini per il planning di produzione 2024-09-12 12:20:50 +02:00
3e14bafe61 sistemate migration e aggiunta condizione su accettazione da bolla 2024-09-12 11:52:48 +02:00
9e38f3da92 Aggiunta campo check exist lotto per cruscottto 2024-09-12 09:16:34 +02:00
fb690a3f2d Merge tag 'Hotfix-77' into develop
Finish Hotfix-77
2024-09-11 16:30:50 +02:00
3064ca55da Finish Hotfix-77 2024-09-11 16:30:49 +02:00
665f193692 Aggiunta gestione sconto contrattuale 2024-09-11 16:30:32 +02:00
043f424a80 Merge remote-tracking branch 'origin/develop' into develop 2024-09-11 16:28:46 +02:00
46df55e70e Controllo per planning 2024-09-11 16:28:30 +02:00
c396715e83 Merge tag 'Hotfix-76' into develop
Finish Hotfix-76
2024-09-11 16:21:38 +02:00
6177cfb56b Finish Hotfix-76 2024-09-11 16:21:37 +02:00
b3e7f76efc Fix importGSEOrder 2024-09-11 16:21:17 +02:00
08d75b06cb [WMS] Aggiunto metodo per permettere di suggerire i lotti in fase di generazione dei trasferimenti 2024-09-11 12:39:13 +02:00
7dbeb2ce91 [Ordify] Aggiunte setup: maxSconto, abilitaSecondoSconto 2024-09-11 12:36:01 +02:00
a4db651ec6 Finish Hotfix-1 2024-09-11 09:46:31 +02:00
8f921ecd13 Merge branch 'master' into develop 2024-09-11 09:46:31 +02:00
de9bcceb21 Fix su format data in SmartLogistic 2024-09-11 09:46:24 +02:00
a4a360ca90 modifiche per getlistinovendita e aggiunto nuovo campo in gtb_anag 2024-09-10 17:09:25 +02:00
d221eb16b5 Finish Feature-ORDL 2024-09-10 09:28:49 +02:00
17236668e7 Merge branch 'develop' into feature/Feature-ORDL 2024-09-10 09:07:21 +02:00
1030781c2d Merge remote-tracking branch 'origin/feature/Feature-ORDL' into feature/Feature-ORDL 2024-09-10 08:59:39 +02:00
27e60d558f Modifiche varie 2024-09-10 08:59:29 +02:00
872419006b Impostazione flag_ansi_null su tutti i clienti 2024-09-09 15:59:10 +02:00
2637081af7 Merge branch 'master' into develop 2024-09-09 14:39:30 +02:00
6a96c920f1 Finish Hotfix-76 2024-09-09 14:39:29 +02:00
c6d107465c aggiunta una distinct 2024-09-09 14:39:22 +02:00
bfa24280bf Aggiunto data_cons_prod_max in MES_GetWorkOrders 2024-09-09 11:43:00 +02:00
b2a572ea84 Merge branch 'develop' into feature/Feature-ORDL 2024-09-09 10:45:30 +02:00
cab6025e41 Merge remote-tracking branch 'origin/develop' into develop 2024-09-06 17:03:44 +02:00
91ee2082ab disabilitate nuove gestioni documenti e ordini tab 2024-09-06 17:03:35 +02:00
f79c311573 Sistemata importazione listini apulia in modo che inserisca correttamente la % promo annche sui listini futuri 2024-09-06 15:05:39 +02:00
183e794657 Merge remote-tracking branch 'origin/develop' into develop 2024-09-06 12:11:04 +02:00
e50e9b37c6 aggiunta voce menu gestione documenti di lavorazione tab 2024-09-06 12:10:54 +02:00
537dbe7695 Merge branch 'master' into develop 2024-09-06 10:37:46 +02:00
8c3ae2d854 Finish Hotfix-1 2024-09-06 10:37:46 +02:00
620b3daf5a Fix su importazione documenti Exchange 2024-09-06 10:37:39 +02:00
2e70316bc6 Modifica generazioe oridni 2024-09-05 18:12:43 +02:00
afc06b38b3 Merge remote-tracking branch 'origin/develop' into develop 2024-09-05 12:45:34 +02:00
1c7db830ea aggiunta voce menu gestione documenti di acquisto tab 2024-09-05 12:45:24 +02:00
5cf060920e Merge branch 'master' into develop 2024-09-05 10:27:41 +02:00
f7d6e527b9 Finish Hotfix-1 2024-09-05 10:27:40 +02:00
80a0d68fc3 [ROSSOGARGANO]
corretta importazione campi raccolta
gestito campo cod_vzon in certificati di raccolta
2024-09-05 10:27:32 +02:00
6498e2a123 Merge branch 'master' into develop 2024-09-04 15:40:42 +02:00
ace9cbe4a8 Finish Hotfix-76 2024-09-04 15:40:42 +02:00
a42c0e1ad9 sistemata condizione di Where 2024-09-04 15:40:27 +02:00
ba35c03032 Merge branch 'master' into develop
# Conflicts:
#	ems-engine/src/main/java/it/integry/ems/system/service/SystemService.java
2024-09-03 18:54:18 +02:00
550b2889f7 Modifica num_fase da decimal a integer 2024-09-03 18:53:24 +02:00
28a1c49d3a Finish Hotfix-1 2024-09-03 18:53:24 +02:00
1e97a37dd7 [EXCHANGE] Durante l'importazione dei colli è stata modificata l'operation delle MtbColr in INSERT_OR_UPDATE per sovrascrivere correttamente dei colli creati manualmente 2024-09-03 18:53:18 +02:00
dcb14913a6 Merge tag 'Hotfix-75' into develop
Finish Hotfix-75
2024-09-03 16:01:51 +02:00
cb380d090d Finish Hotfix-75 2024-09-03 16:01:50 +02:00
cbea692c05 Fix retrieveGiacenza 2024-09-03 15:59:50 +02:00
8e686ce633 Merge remote-tracking branch 'origin/develop' into develop 2024-09-03 15:58:25 +02:00
b05c52a668 aggiunta voce menu gestione ordini di produzione tab 2024-09-03 15:58:14 +02:00
9f901d1341 Finish Hotfix-1 2024-09-03 12:22:15 +02:00
9c3064ba82 Merge branch 'master' into develop 2024-09-03 12:22:15 +02:00
079854109f Fix su controllo getCodMdep 2024-09-03 12:22:05 +02:00
331eb1efb0 Fix su controllo getCodMdep 2024-09-03 12:21:33 +02:00
8578e2fa7c Implementata delete di file orfani di MinIO sfruttando le API disponibili 2024-09-03 12:21:05 +02:00
40b49300dc Migliorato documento di reso quando effettuano le perdite 2024-09-03 10:17:21 +02:00
f149d54350 Setup per fatture elettroniche 2024-09-02 18:00:25 +02:00
2e989c2752 Merge branch 'master' into develop 2024-09-02 17:06:40 +02:00
1bdb592755 Finish Hotfix-1 2024-09-02 17:06:39 +02:00
0d77488056 [ROSSOGARGANO]
modifica ordini di lavorazione
2024-09-02 17:06:30 +02:00
ae259cfc10 correzione su salvataggio delle bolle agganciate alla fattura passiva. 2024-09-02 15:01:59 +02:00
ecb45f2ccb sistemata divisione nel conversione dell'importo della scadenza 2024-09-02 12:34:03 +02:00
ebe93e2ca0 Merge branch 'develop' into feature/Feature-ORDL 2024-09-02 10:10:51 +02:00
859c50334a Merge remote-tracking branch 'origin/develop' into develop 2024-08-28 18:05:29 +02:00
982c3e4676 Assegnazione codice anagragico su ordine di produzione in pianificazione della produzione MAGGIO 2024-08-28 18:05:24 +02:00
b4ddf1f587 Rimosso aggiornamento codlang superfluo 2024-08-28 17:04:49 +02:00
d6bfb1efbc Aggiornamento last access datetime in nuova login ed aggiunto enum in typeExport JasperDTO 2024-08-28 16:56:33 +02:00
009a523aa9 Gestita esportazione documenti di vendita in excel e csv 2024-08-28 11:19:05 +02:00
05213c1053 Merge remote-tracking branch 'origin/develop' into develop 2024-08-27 15:58:28 +02:00
7c1cfa010f Modifica x esclusione da DMS 2024-08-27 15:58:23 +02:00
d2e9ee8f44 Merge branch 'master' into develop 2024-08-27 11:50:57 +02:00
e282fe5d0a Finish Hotfix-1 2024-08-27 11:50:57 +02:00
71652f0e55 hotfix: senza la proprietà trimspaces in stbuser la modifica di un utente cancella i numeri da in coda alla password 2024-08-27 11:50:49 +02:00
0e08fc2aa1 [LOG DB]
aggiunto log dei record eliminati
2024-08-27 10:49:47 +02:00
9409204e96 Merge remote-tracking branch 'origin/develop' into develop 2024-08-27 10:40:06 +02:00
6adce3e2f6 [LOG DB]
aggiunto controllo su maxSize null in ems_settings
2024-08-27 10:39:55 +02:00
395e8b8c34 Merge remote-tracking branch 'origin/develop' into develop 2024-08-27 10:29:38 +02:00
fef3901f63 Personalizzazione DW cruscotto produzione Agricoper 2024-08-27 10:29:29 +02:00
6d8e5baffe [LOG DB]
gestito spazio in dimensione massima log db
2024-08-26 16:53:56 +02:00
b714d66f2e [LOG DB]
configurazione dimensione massima db
2024-08-26 16:45:09 +02:00
1bd2a0ffb5 Merge branch 'Importazione_EBC' into develop 2024-08-26 09:54:31 +02:00
45989f6b0d Merge branch 'develop' into Importazione_EBC 2024-08-26 09:54:02 +02:00
4669c21085 Merge branch 'master' into develop 2024-08-23 15:18:40 +02:00
93b6cbdf6e Finish Hotfix-1 2024-08-23 15:18:40 +02:00
1e3cd71f0c Cambiato range di lettura dei colli in exchange 2024-08-23 15:18:13 +02:00
1500fb56a2 Aggiunto Unique in JtbFasiImpMesi ed ImportFromParent in JtbFasiImpMesiDett 2024-08-23 14:40:28 +02:00
0c20232661 Merge branch 'master' into develop 2024-08-23 10:50:56 +02:00
4a5dfa3c58 Finish Hotfix-1 2024-08-23 10:50:55 +02:00
351f0733a3 Rimossa gestione in equals() di ExchangeCampiRaccoltaDTO 2024-08-23 10:50:49 +02:00
dbf96ac0eb Modificati equals in gestione Exchange 2024-08-23 09:51:39 +02:00
fd0a686078 Refactoring del costruttore di EntityBase in modo che accetti in input il Logger non ne istanzi uno nuovo per ogni entity creata. Refactoring anche di tutte le Entity in modo che passino l'istanza statica privata del logger.
Valorizzate anche a compile time tutte le EntityChild che sono delle liste, in modo che il costruttore in EntityBase non usi le reflection per farlo.
2024-08-22 13:41:13 +02:00
2262b6db2e Vario 2024-08-22 12:21:47 +02:00
2b817b10a1 Aggiunto controller per exchange partite magazzino 2024-08-21 13:24:57 +02:00
52ccc41694 Merge branch 'master' into develop 2024-08-21 09:49:17 +02:00
d4648148ba Finish Hotfix-1 2024-08-21 09:49:16 +02:00
6fd583521b Modificata dataVersamento in LocalDate 2024-08-21 09:49:08 +02:00
201a556ad5 Fix generazione entity 2024-08-20 13:50:51 +02:00
f2b783d970 Finish Hotfix-1 2024-08-20 13:44:59 +02:00
6e66ce8dac Merge branch 'master' into develop 2024-08-20 13:44:59 +02:00
61c1c89dde Migliorie estreme su mapResultSetToList 2024-08-20 13:44:53 +02:00
aa080067df Migliorata gestione errori durante il salvataggio delle fatture passive 2024-08-19 17:47:12 +02:00
39760e5e94 Finish Hotfix-1 2024-08-19 17:16:28 +02:00
a5e1af3f54 Merge branch 'master' into develop 2024-08-19 17:16:28 +02:00
b28b27d8ae Migliorie su stream in EXCHANGE Colli 2024-08-19 17:16:23 +02:00
e2d50a4233 Merge branch 'master' into develop 2024-08-19 15:48:51 +02:00
3bcfd78adb Finish Hotfix-1 2024-08-19 15:48:50 +02:00
368154b80a Fix su ExchangeColli e job da caricare all'avvio 2024-08-19 15:48:42 +02:00
8bfd37d9aa Merge remote-tracking branch 'origin/develop' into develop 2024-08-19 12:53:41 +02:00
3b99091bfa Migliorata gestione errori durante il salvataggio delle fatture passive 2024-08-19 12:53:33 +02:00
2410b95969 Merge tag 'Hotfix-74' into develop
Finish Hotfix-74
2024-08-19 11:34:07 +02:00
077f002fbe Finish Hotfix-74 2024-08-19 11:34:06 +02:00
ebe5f91e45 Fix null point mail service 2024-08-19 11:33:53 +02:00
a162b6c3f8 Merge branch 'master' into develop 2024-08-19 10:22:57 +02:00
66d3fd4bc9 Finish Hotfix-1 2024-08-19 10:22:56 +02:00
2a5276cddb Migliorato log di fine esecuzione EXCHANGE 2024-08-19 10:22:51 +02:00
aba96c11b7 sistemata migration 2024-08-14 18:21:59 +02:00
48c8981015 abilitazione nuova gestione aliquote 2024-08-14 17:14:08 +02:00
05fc8d9d61 aggiunta voce menu gestione ordini di acquisto tab 2024-08-14 16:30:57 +02:00
1a685140b9 aggiunta voce menu gestione ordini di vendita tab 2024-08-14 12:45:38 +02:00
d344257b0c Popolamento giacenze riportate le movimentazioni di EC in BZ 2024-08-14 09:18:03 +02:00
46a4ef3f05 aggiunte migration 2024-08-13 17:31:29 +02:00
23beff9772 Merge remote-tracking branch 'origin/develop' into develop 2024-08-13 16:07:04 +02:00
8d53d0b825 Modificato messaggio di errore 2024-08-13 16:06:54 +02:00
e5014e602b Modificato retrieveGiacenza 2024-08-13 15:51:18 +02:00
61a6c58a8a Merge branch 'master' into develop 2024-08-13 15:36:53 +02:00
effd05cf46 Finish Hotfix-1 2024-08-13 15:36:52 +02:00
f01ea9470d Rimosse operazioni di delete su importazione exchange dei gruppi merceologici 2024-08-13 15:36:39 +02:00
3b33018019 aggiunta voce menu gestione ordini di lavorazione tab 2024-08-13 15:04:27 +02:00
23d061be0c Merge remote-tracking branch 'origin/develop' into develop 2024-08-13 15:01:11 +02:00
5f6669343b sistemata migratione 2024-08-13 15:00:45 +02:00
e33ac3f0cc Gestito update gest setup e cancellazione da stb_gest_setup_depo e wtb_gest_setup_user nelle migration 2024-08-13 13:06:05 +02:00
e64a3821b8 ricreate classi 2024-08-13 10:15:33 +02:00
95f4a99991 cancella classe 2024-08-13 09:43:27 +02:00
4f10590254 Merge branch 'master' into develop 2024-08-12 19:19:29 +02:00
7628f7325c Finish FixSaveProdPlan 2024-08-12 19:19:28 +02:00
81b2edde0c Fix ordine con data errata in saveProductionPlan 2024-08-12 19:19:23 +02:00
09a922098c create nuove tabelle: jtb_fasi_imp_mesi e jtb_fasi_imp_mesi_dett 2024-08-12 18:04:39 +02:00
5cf3d2c732 elimiazione trigger e varie modifiche su ordini di produzione 2024-08-12 13:45:13 +02:00
d80f1d1fb8 Merge branch 'develop' into feature/Feature-ORDL 2024-08-12 13:13:12 +02:00
54033ca781 Condivise configurazioni remote JVM Debug 2024-08-12 13:04:15 +02:00
b24182eb9e Merge remote-tracking branch 'origin/develop' into develop 2024-08-12 11:33:26 +02:00
50228dcb90 aggiunto setup 2024-08-12 11:33:23 +02:00
a698651c24 elimiazione trigger e varie modifiche su ordini di produzione 2024-08-12 10:40:25 +02:00
ba7c89e626 [IME]
aggiunta setup review cliente
2024-08-11 16:10:31 +02:00
09270bf4b8 sistemata decrizione migration 2024-08-09 18:23:41 +02:00
b9df8c14e3 Merge remote-tracking branch 'origin/develop' into develop 2024-08-09 17:50:25 +02:00
8194b4099d Migrations 2024-08-09 17:50:18 +02:00
bf1a1b6251 Merge branch 'develop' into feature/Feature-ORDL 2024-08-09 16:39:56 +02:00
da231585f3 elimiazione trigger e varie modifiche su ordini di produzione 2024-08-09 16:26:43 +02:00
2481bee5fa Aggiunti controlli in importazione ordini gse 2024-08-09 16:03:05 +02:00
48e54129d3 elimiazione trigger e varie modifiche su ordini di produzione 2024-08-09 15:08:44 +02:00
fc4edde981 abilitata voce menu aliquote iva (new) 2024-08-09 14:51:01 +02:00
f494126e97 abilitata voce menu aliquote iva (new) 2024-08-09 14:39:42 +02:00
b9fb539d02 inserita voce menu aliquote iva (new) 2024-08-09 14:34:06 +02:00
2e0086880f elimiazione trigger e varie modifiche su ordini di produzione 2024-08-09 12:15:24 +02:00
bfe72399fd Fix null point in MailService 2024-08-09 11:44:24 +02:00
d8dec26f5d Merge remote-tracking branch 'origin/develop' into develop 2024-08-09 10:32:55 +02:00
7b5366839c Fix path per download apk wms 2024-08-09 10:32:48 +02:00
6ee276be2c Merge remote-tracking branch 'origin/develop' into develop 2024-08-09 10:32:37 +02:00
03d5335909 Migrations setup Follies 2024-08-09 10:32:32 +02:00
8a85015f5f Migrations setup Follies 2024-08-09 10:32:26 +02:00
c1f432e8aa Importazione ordini di vendita GSE 2024-08-09 10:13:36 +02:00
f7b7b0c91f Merge branch 'master' into develop 2024-08-08 18:02:01 +02:00
622de7b531 Finish Hotfix-1 2024-08-08 18:02:01 +02:00
59da080298 Fix compilazione statica drools 2024-08-08 18:01:54 +02:00
b9d342901b Merge branch 'master' into develop
# Conflicts:
#	ems-core/pom.xml
#	ems-engine/pom.xml
2024-08-08 17:40:05 +02:00
aef2e68828 Finish Hotfix-1 2024-08-08 17:39:23 +02:00
f21085de30 Fix compilazione statica drools 2024-08-08 17:38:48 +02:00
5ca91469a5 disabilitata nuova gestione aliquote iva 2024-08-08 17:33:26 +02:00
ae7cc990a0 Fix compilazione statica drools 2024-08-08 17:27:25 +02:00
555f6d5dc4 Merge remote-tracking branch 'origin/develop' into develop 2024-08-08 17:13:38 +02:00
cad940bdff Fix compilazione statica drools 2024-08-08 17:13:25 +02:00
3e73c4e663 aggiunta nuova gestione aliquote iva 2024-08-08 17:09:58 +02:00
e66fc3d672 Fix compilazione statica drools 2024-08-08 17:00:03 +02:00
cd526f04c8 Merge remote-tracking branch 'origin/develop' into develop 2024-08-08 16:07:04 +02:00
1723a8fd86 Fix compilazione statica drools 2024-08-08 16:06:54 +02:00
b5d5d15072 Modifica decimali qtacol e numcnf in mail quarantena 2024-08-08 16:00:38 +02:00
2a52cbf3da Merge remote-tracking branch 'origin/develop' into develop 2024-08-08 15:39:24 +02:00
9b2749dff2 Modifica SocialWeb 2024-08-08 15:39:19 +02:00
a87814bf02 Aggiunto invio mail alla creazione di un collo in quarantena 2024-08-08 15:37:07 +02:00
99bc8fb39c Merge remote-tracking branch 'origin/develop' into develop 2024-08-08 13:49:04 +02:00
884dfd3400 Fix compilazione regole all'avvio 2024-08-08 13:48:53 +02:00
3b4935bd1d Fix compilazione statica drools 2024-08-08 13:41:45 +02:00
a3869198aa Fix compilazione statica drools 2024-08-08 13:25:07 +02:00
d7e97fd2fc Merge branch 'develop' into feature/Feature-ORDL 2024-08-08 13:01:35 +02:00
fac71baad3 Merge remote-tracking branch 'origin/develop' into develop 2024-08-08 13:01:12 +02:00
144ea8eaaa Aggiunto servizio che ci premette di modifcare solo prevista fat sui documenti di anni chiusi 2024-08-08 13:01:09 +02:00
12d6a6dc56 Merge remote-tracking branch 'origin/develop' into develop 2024-08-08 12:20:27 +02:00
7394ef79bd Fix compilazione statica drools 2024-08-08 12:20:18 +02:00
606a0ebdb7 Modifica registrazione effetti in contabilità per aziende che chiudono le partite automaticamente alla registrazione del documento 2024-08-08 11:00:13 +02:00
69902b7f6a Fix compilazione statica drools 2024-08-08 10:28:35 +02:00
91d1d202bf Fix compilazione statica drools 2024-08-08 10:22:17 +02:00
51668a9f25 Rimosso nuovamente file IPR 2024-08-08 10:01:53 +02:00
54c226c98a elimiazione trigger e varie modifiche su ordini di produzione 2024-08-07 18:15:07 +02:00
6027cef5b0 elimiazione trigger e varie modifiche su ordini di produzione 2024-08-07 18:09:32 +02:00
aad2aba9e2 Fix compilazione statica drools 2024-08-07 11:27:09 +02:00
9f7db88a4a Fix compilazione statica drools 2024-08-07 11:21:59 +02:00
7691c5018f Migrations per DMS 2024-08-07 10:47:26 +02:00
5dd158c824 Merge branch 'develop' into feature/Feature-ORDL 2024-08-07 09:27:04 +02:00
d930e2928f elimiazione trigger e varie modifiche su ordini di produzione 2024-08-07 09:26:06 +02:00
1ab0cf2d13 elimiazione trigger e varie modifiche su ordini di produzione 2024-08-06 19:27:32 +02:00
db73af8d91 elimiazione trigger e varie modifiche su ordini di produzione 2024-08-06 18:18:00 +02:00
676b58835a Aggiunta condizione su data chiusura lotto nel caso di ordini non evaso in MES_GetWorkOrders 2024-08-06 17:58:24 +02:00
5ae50ecf08 Nell'esportazione delle anagrafiche Slim2K inserita la scorta minima 2024-08-06 17:43:35 +02:00
52611d61d4 EBC 2024-08-06 17:19:11 +02:00
5b8b68dec1 EBC 2024-08-06 17:19:04 +02:00
2a0c6abff5 Merge remote-tracking branch 'origin/develop' into develop 2024-08-06 16:56:18 +02:00
01552d5335 Fix compilazione statica drools 2024-08-06 16:56:06 +02:00
7b93c6e0a3 Aggiunto flag per disattivare controllo deposito dei colli 2024-08-06 15:14:21 +02:00
e5df127ee0 Merge branch 'develop' into feature/Feature-ORDL 2024-08-06 15:05:30 +02:00
1fb9c25fae aggiunta migration 2024-08-06 13:04:03 +02:00
261f8c0877 modifica gestione vettori/spedizionieri 2024-08-06 12:43:21 +02:00
015820ccc4 elimiazione trigger e varie modifiche su ordini di produzione 2024-08-06 12:23:05 +02:00
f2d1f810f7 Gestita orientation AUTO e creato retrieveWtbJreptSetupOrientations 2024-08-06 12:15:00 +02:00
5cf7b89472 Merge remote-tracking branch 'origin/develop' into develop 2024-08-05 16:04:56 +02:00
7d002f2e56 modificata migration creazione tabella vtb_vett_targhe 2024-08-05 16:04:51 +02:00
1f925e5852 modificata classe vtb_vett 2024-08-05 16:04:26 +02:00
30d1c061e4 modificata migration mina 2024-08-05 16:04:09 +02:00
3a3c0ae1c3 creata nuova tabella vtb_vett_targhe 2024-08-05 16:03:50 +02:00
eb404a0872 Creata setup MOSTRA_VALORE_MERCE 2024-08-05 15:40:20 +02:00
abd823e6ef aggiunta gestione vettori/spedizionieri (new) 2024-08-05 13:02:05 +02:00
2b879d0356 Merge branch 'develop' into feature/Feature-ORDL
# Conflicts:
#	ems-core/src/main/java/it/integry/ems_model/business_logic/ProductionBusinessLogic.java
2024-08-05 11:19:15 +02:00
0d3028657b modificata setup 2024-08-05 11:15:03 +02:00
3684213b97 elimiazione trigger e varie modifiche su ordini di produzione 2024-08-05 10:47:52 +02:00
511ee19120 Merge branch 'develop' into feature/Feature-ORDL 2024-08-05 09:42:58 +02:00
37f38ed2f7 elimiazione trigger e varie modifiche su ordini di produzione 2024-08-02 18:22:04 +02:00
52816af36f EBC 2024-08-02 18:01:13 +02:00
c09c4ce194 Merge remote-tracking branch 'origin/develop' into develop 2024-08-02 17:06:21 +02:00
dd83ab2ad5 Migrations 2024-08-02 17:06:14 +02:00
aa8a0228b7 Impostata setup invio email distinte effetti per Maggio 2024-08-02 17:01:59 +02:00
169dcf3867 Aggiunta setup per abilitare invio email da distinte effetti attivi 2024-08-02 17:01:40 +02:00
2acac4fdcb Merge branch 'master' into develop 2024-08-02 13:00:53 +02:00
11b2c94064 Finish Hotfix-1 2024-08-02 13:00:52 +02:00
401eb4c28a Fix su import IDRiga in exchange documenti 2024-08-02 13:00:47 +02:00
8dcc672ff6 Merge branch 'master' into develop 2024-08-02 10:55:39 +02:00
86694bf5c5 Finish Hotfix-1 2024-08-02 10:55:38 +02:00
d1cb72b7b8 Fix su salvataggio stato importazione documenti lavorazione EXCHANGE 2024-08-02 10:55:33 +02:00
2cfd5ff050 elimizione trigger 2024-08-01 17:49:26 +02:00
e99d2daa45 Merge branch 'develop' into feature/Feature-ORDL 2024-08-01 16:29:15 +02:00
60fa52e62b Sistemato invio email customizzato 2024-08-01 16:25:57 +02:00
f0ffeb4e05 Riapertura scadenze 2024-08-01 16:05:27 +02:00
4eafcf7742 Finish Hotfix-1 2024-08-01 15:49:41 +02:00
525e521dbb Merge branch 'master' into develop 2024-08-01 15:49:41 +02:00
4bc7c5c678 Rimossa importazione partite ad ogni import di EXCHANGE 2024-08-01 15:47:14 +02:00
cd04fcc42e getMovMag 2024-08-01 14:47:13 +02:00
8626ced5ba Finish Hotfix-1 2024-08-01 13:49:09 +02:00
51ceb69192 Merge branch 'master' into develop 2024-08-01 13:49:09 +02:00
a08578a361 Fix su importazione documenti exchange 2024-08-01 13:49:04 +02:00
d80d843400 Merge branch 'develop' into feature/Feature-ORDL 2024-08-01 13:31:17 +02:00
c0321cc006 Finish Hotfix-74 2024-08-01 13:21:55 +02:00
d528bcbd72 Merge branch 'master' into develop 2024-08-01 13:21:55 +02:00
fb6d2f32a7 elimintata tabella inseistente dalla QUERY 2024-08-01 13:20:43 +02:00
c408580898 Finish Hotfix-1 2024-08-01 13:18:23 +02:00
1c7d9c1775 Merge branch 'master' into develop 2024-08-01 13:18:23 +02:00
86ea8ccc36 [ROSSOGARGANO]
fix creazione colli di scarico mp
fix creazione campi senza destinatario
2024-08-01 13:18:16 +02:00
a0be59c532 Merge branch 'develop' into feature/Feature-ORDL 2024-08-01 12:31:23 +02:00
7052434ff1 Finish Hotfix-1 2024-07-31 18:50:23 +02:00
42a69dd21b Merge branch 'master' into develop 2024-07-31 18:50:23 +02:00
96a10237ff [ROSSOGARGANO]
fix pianificata import campi raccolta da exchange
2024-07-31 18:50:15 +02:00
54ca8f193e Finish Hotfix-1 2024-07-31 18:09:59 +02:00
c6560933d5 Merge branch 'master' into develop 2024-07-31 18:09:59 +02:00
848efdc3e4 aggiunta sync campi raccolta in gestione exchange 2024-07-31 18:09:51 +02:00
4252d5faf9 Merge branch 'master' into develop 2024-07-31 17:11:41 +02:00
d257a00f67 Finish Hotfix-1 2024-07-31 17:11:40 +02:00
ffa6d4be7a [ROSSOGARGANO]
corretto servizio creazione campi raccolta
2024-07-31 17:11:32 +02:00
0cb0ac8aa5 Merge branch 'master' into develop 2024-07-31 13:17:00 +02:00
2a9bf4f18e Finish Hotfix-1 2024-07-31 13:17:00 +02:00
2949f5cf3a Fix su EXCHANGE 2024-07-31 13:16:54 +02:00
ce735aa5df Merge branch 'master' into develop 2024-07-31 13:07:13 +02:00
0377e1c73d Finish Hotfix-1 2024-07-31 13:07:12 +02:00
791dad2aed Fix username exchange 2024-07-31 13:07:07 +02:00
f941b63f54 Merge remote-tracking branch 'origin/develop' into develop 2024-07-31 09:18:41 +02:00
aa267a6b2c SP Impegni 2024-07-31 09:18:34 +02:00
d7d5c413a7 Finish Hotfix-1 2024-07-30 23:45:44 +02:00
7d39957614 Merge branch 'master' into develop 2024-07-30 23:45:44 +02:00
cb9ac26602 [ROSSOGARGANO]
gestione importazione campi di raccolta
[IME BA]
corretta funzione zip nel caso di file omonimi
2024-07-30 23:45:36 +02:00
f7e82b4089 Personalizzato report elenco forniture per Frudis 2024-07-30 09:11:17 +02:00
4098b1296e Finish Release-2 2024-07-29 12:34:40 +02:00
754a43a05f Finish Release-2 2024-07-29 12:34:39 +02:00
407fb28206 Merge remote-tracking branch 'origin/develop' into develop 2024-07-29 12:09:33 +02:00
f84e64ad5a Modifiche query per DMS 2024-07-29 12:09:27 +02:00
f2be08e500 Merge branch 'master' into develop 2024-07-29 11:46:49 +02:00
a5d596ae1c Finish Hotfix-74 2024-07-29 11:46:49 +02:00
15ac3df1ce Fix su EXCHANGE 2024-07-29 11:46:44 +02:00
7a86247e12 Fix generazione righe di scarico con datetime_row diversi 2024-07-26 18:13:52 +02:00
074506fa0c Creato servizio per la ricerca attività da task 2024-07-26 17:41:27 +02:00
c274ce3fcc Merge remote-tracking branch 'origin/develop' into develop 2024-07-26 17:30:24 +02:00
e81fa79d85 Fix query giacenza 2024-07-26 17:30:20 +02:00
e0b31bef6d movimenti contabili ripertura scadenze 2024-07-26 17:09:39 +02:00
50a9e940f1 Merge branch 'master' into develop 2024-07-26 16:58:08 +02:00
2d2cd07478 Finish Hotfix-74 2024-07-26 16:58:08 +02:00
9c8804d905 aggiunti nuovi dettagli in dto certificati sinfo one
cambiata numerazione documenti SRACC
2024-07-26 16:57:58 +02:00
0f80faaf0d serie documento di raccolta in campo (sracc) da setup 2024-07-26 16:57:18 +02:00
2c9e0ce455 Sistemato log delle regole se si abilita TRACE all'interno di ems_settings.json 2024-07-26 13:22:25 +02:00
dcb2af5c43 Finish Hotfix-74 2024-07-26 13:10:42 +02:00
c477d64413 Merge branch 'master' into develop 2024-07-26 13:10:42 +02:00
7a41e22ba4 Fix connection in regola documenti 2024-07-26 13:09:36 +02:00
3ef60fa238 Merge remote-tracking branch 'origin/develop' into develop 2024-07-26 13:05:12 +02:00
6f5442486d Creata procedura per cancellare le ispezioni di un periodo 2024-07-26 13:05:08 +02:00
01d39fd652 sistemato dato giornaliero su mrp 2024-07-26 11:49:26 +02:00
a67f8104c5 Finish Hotfix-74 2024-07-26 10:18:46 +02:00
cb6717fb93 Merge branch 'master' into develop 2024-07-26 10:18:46 +02:00
f229824dfa Migliorato log per errori exchange 2024-07-26 10:18:39 +02:00
fa5b0393eb gestita esportazione dei documenti di acquisto 2024-07-25 17:39:50 +02:00
e52b9896d0 Merge remote-tracking branch 'origin/develop' into develop 2024-07-25 16:41:22 +02:00
05204ed269 Mmigrations custom 2024-07-25 16:41:12 +02:00
4f08220893 Mmigrations custom 2024-07-25 16:41:06 +02:00
be536a9c38 aggiunto campo flag_tracciabilita nella mtb_grup 2024-07-25 16:40:50 +02:00
4c57f2ac34 Merge tag 'Hotfix-73' into develop
Finish Hotfix-73
2024-07-25 16:25:30 +02:00
6f54902862 Finish Hotfix-73 2024-07-25 16:25:28 +02:00
36afcc836c Importazione immagini 2024-07-25 16:25:12 +02:00
ddd70ecf64 Merge remote-tracking branch 'origin/develop' into develop 2024-07-25 15:28:27 +02:00
6a7ec32d66 Fix codJfas in modifica attività 2024-07-25 15:28:22 +02:00
fce0b0e81a Miglioramento vista CRP_OF_FabbisognoOre_JSON per lentezza da Agricoper 2024-07-25 15:08:37 +02:00
6f4d0f1072 RIPORTATE MODIFICHE FATTE NELL'HOTFIX 2024-07-25 13:19:00 +02:00
26dc422f3d Merge branch 'master' into develop
# Conflicts:
#	ems-engine/src/main/java/it/integry/ems/retail/service/GiacenzaService.java
2024-07-25 13:17:43 +02:00
b8a9e2bcc1 Finish Hotfix-72 2024-07-25 13:11:30 +02:00
158269f6f3 correzioni su popolamento giacenza: errore di duplicazione di chiave nel salvataggio degli inventari e valorizzazione strana della data di inserimento 2024-07-25 13:11:07 +02:00
e3765a9638 Fix compileWordFile 2024-07-25 09:15:29 +02:00
0330046f69 Nella cancellazione della mtb_aart aggiunto controllo e cancellazione dei progressivi 2024-07-25 09:15:07 +02:00
bc03755afa Finish Hotfix-72 2024-07-24 19:10:39 +02:00
cd16233da5 Merge tag 'Hotfix-72' into develop
Finish Hotfix-72
2024-07-24 19:10:39 +02:00
67a320dac3 Modifica SolcialWEB insertProductSW 2024-07-24 19:10:10 +02:00
580b2257cc Merge remote-tracking branch 'origin/develop' into develop 2024-07-24 19:09:15 +02:00
52954b5a52 Modifica messagio ritorno Import ordini EURITMMO senza PARTITA_IVA 2024-07-24 19:09:00 +02:00
284f23bd83 Aggiunto flag quarantena in creazione collo mes 2024-07-24 15:20:02 +02:00
3a6eb612e0 Merge branch 'master' into develop 2024-07-24 11:40:29 +02:00
fd3b5bcdfd Finish Hotfix-72 2024-07-24 11:40:28 +02:00
2524d5442a sistemato thread nel popolameto giacenza 2024-07-24 11:40:09 +02:00
68ad7af07a Merge branch 'master' into develop 2024-07-23 17:23:29 +02:00
4ef27af2c0 Finish Hotfix-72 2024-07-23 17:23:29 +02:00
fdda76eb5c [ROSSOGARGANO]
gestione autorizzazioni section pvm
2024-07-23 17:23:20 +02:00
1857428cd0 correzione trigger 2024-07-23 17:02:13 +02:00
1e8b1ca28b Merge branch 'develop' into feature/Feature-ORDL 2024-07-23 16:26:43 +02:00
6fd6431f7e Fix recalc posizione viaggi ed aggiunto controllo ord L già creato in saveProductionPlan 2024-07-23 16:26:18 +02:00
66c41d10eb Finish Hotfix-72 2024-07-23 14:19:31 +02:00
8586308fde Merge branch 'master' into develop 2024-07-23 14:19:31 +02:00
bfe78c4a81 Fix replaceAll in mailtemplate 2024-07-23 14:19:23 +02:00
8bd8c94eff Merge branch 'master' into develop 2024-07-23 13:46:39 +02:00
30acf97b57 Finish Hotfix-72 2024-07-23 13:46:38 +02:00
9016f5956f Rimosso logger query problematico 2024-07-23 13:36:58 +02:00
e9c7e94db3 Merge branch 'master' into develop 2024-07-23 10:47:10 +02:00
471cf93d96 Finish Hotfix-72 2024-07-23 10:47:09 +02:00
644ea03201 Fix range import di Exchange 2024-07-23 10:47:04 +02:00
a9ab0a253a Merge branch 'master' into develop 2024-07-23 10:29:13 +02:00
ef47cc5616 Finish Hotfix-72 2024-07-23 10:29:13 +02:00
7795c6c248 Fix nel query logger 2024-07-23 10:29:08 +02:00
a11ef715a1 Merge branch 'master' into develop 2024-07-23 09:42:04 +02:00
7985811e71 Finish Hotfix-72 2024-07-23 09:42:04 +02:00
d4292fdb72 Fix log in caso di errore invio mail Migrations 2024-07-23 09:41:56 +02:00
980f541a18 Aggiunta la merce in arrivo al servizio che restituisce la giacenza 2024-07-23 09:37:25 +02:00
1fae705d64 Finish Hotfix-72 2024-07-22 12:10:40 +02:00
465e725782 Merge branch 'master' into develop 2024-07-22 12:10:40 +02:00
79d13dc1c7 modificato controllo su addortimento gastronomia 2024-07-22 12:10:34 +02:00
25abcbb869 modificato menu' aggiunta nuova gestione documenti di vendita 2024-07-22 11:55:40 +02:00
b553122d3e aggiunto campo flag_attivo nella mtb_tipi 2024-07-22 10:48:17 +02:00
10158cf46b Finish ModifCreateZipFromFiles 2024-07-22 10:18:14 +02:00
1dc0ddc5df Merge branch 'master' into develop 2024-07-22 10:18:14 +02:00
c91165dc96 Gestito caricamento da MtbAartLink 2024-07-22 10:18:07 +02:00
ac1cbff3ba Fix query giacenza 2024-07-22 10:16:02 +02:00
644010dbda Migrations 2024-07-22 10:12:09 +02:00
a5b6220a7e Merge remote-tracking branch 'origin/develop' into develop 2024-07-22 09:26:22 +02:00
a6d63a1f51 Migrations 2024-07-22 09:26:14 +02:00
45f53d5d80 Tracciato §EBC 2024-07-22 09:26:04 +02:00
fe84a31f66 Tracciato §EBC 2024-07-22 09:25:50 +02:00
1f09e82245 [ROSSOGARGANO]
corrette informazioni in colli accettazione pomodoro
2024-07-19 19:27:21 +02:00
205dce88b8 Corretto conteggio allegati commessa 2024-07-19 19:11:31 +02:00
1b6f7d6e35 Aggiunto retrieveAllPartitaMag 2024-07-19 17:54:10 +02:00
61f59ac4a3 Merge branch 'master' into develop 2024-07-19 13:32:53 +02:00
481471d9b6 Finish Hotfix-72 2024-07-19 13:32:52 +02:00
f0e587e1f3 Implementata importazione EXCHANGE per versamento grezzo 2024-07-19 13:32:47 +02:00
118e43b849 Merge branch 'master' into develop 2024-07-19 13:23:06 +02:00
19f5450243 Finish Hotfix-72 2024-07-19 13:23:06 +02:00
236d0dcdec Implementata importazione EXCHANGE per versamento grezzo 2024-07-19 13:23:00 +02:00
df8a1de401 Merge branch 'master' into develop 2024-07-19 13:22:03 +02:00
5fd3b5668a Finish Hotfix-72 2024-07-19 13:22:02 +02:00
489089b9a4 Implementata importazione EXCHANGE per versamento grezzo 2024-07-19 13:21:55 +02:00
54390e7198 sistemata lettura inevasi steup 2024-07-19 12:06:57 +02:00
b3acb22495 Impostata attività di creazione archivio come completata 2024-07-19 10:42:58 +02:00
8e2196d23f Merge branch 'master' into develop 2024-07-19 09:41:28 +02:00
99ad3d7b48 Finish Hotfix-72 2024-07-19 09:41:27 +02:00
d83e658a9c Fix generici su sistema EXCHANGE 2024-07-19 09:41:15 +02:00
0176176e84 sistemata migration 2024-07-18 13:40:28 +02:00
1cb33d1c99 Merge branch 'develop' into feature/Feature-ORDL
# Conflicts:
#	ems-core/src/main/java/it/integry/ems_model/rulescompleting/AgendaList.java
2024-07-18 13:40:00 +02:00
a05005edf9 miglioramenti a generazione migration 2024-07-18 13:38:15 +02:00
25f3b7710a Aggiunto scritura log dalle regole 2024-07-18 10:00:34 +02:00
dd06da4e2c Inserita chk_constraint su rap_conv2 e rap_conv3 2024-07-18 09:59:19 +02:00
74117a4ea2 Aggiunto userName in StbActivityNotification 2024-07-18 09:47:13 +02:00
65dce87abf Fix importazione scontrini e campo reso 2024-07-17 17:39:42 +02:00
0d175b693a correzione su popolamento giacenza, controllo su rapporto di conversione 0 e attivato invia email per servizio di invio variazioni 2024-07-17 17:25:53 +02:00
b47c8ecb7b aggiunto campo flag_attivo nella mtb_grup 2024-07-17 17:00:04 +02:00
8397e7c6aa Implementata gestione pianificazioni exchange 2024-07-17 10:21:48 +02:00
68a76ca0c2 Merge branch 'master' into develop 2024-07-16 20:28:42 +02:00
9ba1078d5a Finish Hotfix-72 2024-07-16 20:28:41 +02:00
043a8b62d8 [ROSSOGARGANO]
gestione vettore in import da exchange
2024-07-16 20:28:32 +02:00
3cb2b9d8e9 Merge remote-tracking branch 'origin/develop' into develop 2024-07-16 18:02:01 +02:00
dfb34df5e9 - Fix e modifiche minori 2024-07-16 18:01:55 +02:00
44c3721116 Fix modifica assenze 2024-07-16 17:33:51 +02:00
ba68f631a1 Fix getTreeView 2024-07-16 14:58:54 +02:00
7a6c81feb6 Completati servizi di modifica e cancellazione delle assenze 2024-07-16 14:57:54 +02:00
d27415fb7b Merge branch 'master' into develop 2024-07-16 12:55:03 +02:00
bd06beff71 Finish Hotfix-72 2024-07-16 12:55:02 +02:00
99234b2f94 modificata condizione per verificare se il listino è rifatturazione 2024-07-16 12:49:12 +02:00
74be9d3b20 eliminare trigger 2024-07-16 12:45:07 +02:00
9d15ebd65e Personalizzato report distinta effetti per Carelli 2024-07-16 10:35:11 +02:00
7716a01e81 Corretto nome setup report distinta effetti 2024-07-16 10:34:44 +02:00
3feb507013 Impostato salvataggio rest gestione scheda tecnica 2024-07-16 09:11:11 +02:00
9e682093ae Merge remote-tracking branch 'origin/develop' into develop 2024-07-15 17:22:46 +02:00
058334fb0b aggiunto campo causale_reso nella ntb_docr 2024-07-15 17:21:02 +02:00
aa0a69409c modifiche per eliminare trigger 2024-07-15 17:12:41 +02:00
225af5f087 Merge remote-tracking branch 'origin/develop' into develop 2024-07-15 13:52:26 +02:00
f66a3ccdfb aggiunto tipo per trigger 2024-07-15 13:52:22 +02:00
b981ece98a Finish Hotfix-72 2024-07-15 12:31:16 +02:00
3e8e44871d Merge branch 'master' into develop 2024-07-15 12:31:16 +02:00
75d4bdfc4d Test toolchain 2024-07-15 12:30:54 +02:00
b79c88c23c Test toolchain 2024-07-15 11:54:44 +02:00
3c945a4be5 Finish Hotfix-71 2024-07-15 11:44:17 +02:00
c300dff9f0 Merge tag 'Hotfix-71' into develop
Finish Hotfix-71
2024-07-15 11:44:17 +02:00
32ed6f1188 Fix variabili in DataSheetServices 2024-07-15 11:43:58 +02:00
a4fbf3138d Aggiunto maven toolchain plugin 2024-07-15 10:49:38 +02:00
6056e4dccc Merge branch 'master' into develop 2024-07-15 10:28:43 +02:00
493ca43226 Finish Hotfix-71 2024-07-15 10:28:42 +02:00
81394cc6fa eliminato controllo su esitenza setup 2024-07-15 10:28:36 +02:00
cd1f71952b Merge branch 'refs/heads/master' into develop
# Conflicts:
#	ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeColliImportService.java
2024-07-12 17:57:54 +02:00
432de33a60 Finish Hotfix-71
# Conflicts:
#	ems-engine/src/main/java/it/integry/ems/system/exchange/dto/CertificatiSinfoOneDTO.java
#	ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeColliImportService.java
2024-07-12 17:55:17 +02:00
6078e9770e [RossoGargano] importazione certificati da sinfo 1 2024-07-12 17:53:57 +02:00
d6add3cf65 Fix nome variavile immagine scheda prodotto 2024-07-12 17:39:39 +02:00
6a03fd5010 Fix nome variavile immagine scheda prodotto 2024-07-12 17:20:56 +02:00
e04e5166ce scheda tecnica prodotto 2024-07-12 16:56:59 +02:00
012f27d460 Gestite eccezioni compileWordFile 2024-07-12 16:36:36 +02:00
d8a9337d30 Gestito valore hashmap null in replaceVariables 2024-07-12 15:06:08 +02:00
71f7a665c8 aggiunta fk 2024-07-12 13:39:11 +02:00
cc7db6a529 Merge branch 'refs/heads/develop' into feature/Feature-variazioni2
# Conflicts:
#	ems-engine/src/main/java/it/integry/ems/retail/controller/RetailController.java
2024-07-12 12:58:44 +02:00
b2522ecc38 Merge remote-tracking branch 'origin/develop' into develop 2024-07-12 12:57:30 +02:00
356e1bdd12 Aggiunto parametro mancante su operazioni pianificate di default 2024-07-12 12:57:21 +02:00
4eae593bce Merge branch 'master' into develop
# Conflicts:
#	ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeColliImportService.java
2024-07-12 12:52:50 +02:00
40055a6c03 Finish Hotfix-71 2024-07-12 12:52:07 +02:00
48edcf2e9d [RossoGargano] importazione certificati da sinfo 1 2024-07-12 12:52:00 +02:00
49214b500e gestione scheda tecnica 2024-07-12 11:56:01 +02:00
d6d4c3583b modifica gestione elenco file scheda tecnica 2024-07-12 11:43:48 +02:00
049e1b4921 aggiunta gestione Elenco File Scheda Tecnica 2024-07-12 11:04:52 +02:00
672195fb4a Fix e migliorie su importazione Exchange 2024-07-11 16:14:58 +02:00
ffa3ea8cff correzione mrp controllo scorta minima 2024-07-11 13:38:01 +02:00
de3f04a6ca Merge remote-tracking branch 'origin/develop' into develop 2024-07-11 13:02:39 +02:00
d76fd941a8 Fix e migliorie su importazione Exchange 2024-07-11 13:02:33 +02:00
05a6b2b5d4 Aggiunto controllo per esclusione esecuzione da DMS 2024-07-11 11:09:31 +02:00
8e846a6598 Merge remote-tracking branch 'origin/develop' into develop 2024-07-11 10:47:11 +02:00
1f8252db21 Query MRP_ImpProx 2024-07-11 10:47:03 +02:00
08cae9e3bb Impostato salvataggio rest gestione scheda tecnica 2024-07-11 10:08:47 +02:00
513fa6f5f0 Finish Hotfix-70 2024-07-10 18:33:26 +02:00
9c1bb13d7a Merge tag 'Hotfix-70' into develop
Finish Hotfix-70
2024-07-10 18:33:26 +02:00
ab6a08ab60 Modifica tracciti MIRARCHI\DIPA\ROTUNNO 2024-07-10 18:33:11 +02:00
5793fd1908 Creato servizio che compila e scarica il file di word della scheda tecnica 2024-07-10 17:37:31 +02:00
641f39784c Merge remote-tracking branch 'origin/develop' into develop 2024-07-10 15:49:45 +02:00
64850e628a MIRARCHI 2024-07-10 15:49:40 +02:00
88d0d82544 aggiunti giorni per recupero scontrini 2024-07-10 12:09:02 +02:00
cabc38b216 Merge branch 'master' into develop 2024-07-10 11:53:08 +02:00
04841eec4e Finish Hotfix-70 2024-07-10 11:53:07 +02:00
3a12327b16 sistemata condizione su data inizio su recupera scontrini 2024-07-10 11:52:51 +02:00
1d3b96395e Modificato servizio getTreeView 2024-07-10 10:16:34 +02:00
7341cc625b Merge branch 'master' into develop 2024-07-09 18:47:46 +02:00
2ee729449d Finish Hotfix-70 2024-07-09 18:47:45 +02:00
87fb1868f0 correzione errore for input string 2024-07-09 18:47:39 +02:00
446db73fe7 Merge remote-tracking branch 'origin/develop' into develop 2024-07-09 18:32:10 +02:00
05a6e363c9 varie sian 2024-07-09 18:32:07 +02:00
0b91e53f96 Merge tag 'Hotfix-69' into develop
Finish Hotfix-69
2024-07-09 17:25:31 +02:00
a5518de1c1 Finish Hotfix-69 2024-07-09 17:25:30 +02:00
0dd3403946 Fix customer id null e fix target quantity 2024-07-09 17:25:12 +02:00
0e316cba9c nuova entitychild 2024-07-09 16:26:28 +02:00
27e14f99ee Merge remote-tracking branch 'origin/develop' into develop 2024-07-09 16:04:30 +02:00
79dcb073df Aggiunta tabella mrl_aart_sch_tec_set come figlia della mtb_aart 2024-07-09 16:03:26 +02:00
0d2b4c01f3 aggiunto controllo su promo già esistenti nel db 2024-07-09 15:46:57 +02:00
463dd423a0 query steup 2024-07-09 13:10:32 +02:00
d849ff54e7 Merge branch 'master' into develop 2024-07-09 12:32:15 +02:00
5148a4d571 Finish Hotfix-69 2024-07-09 12:32:14 +02:00
73d94f077e [ROSSOGARGANO]
Accettazione pomodori
2024-07-09 12:32:07 +02:00
cde50e6c57 Merge remote-tracking branch 'origin/develop' into develop 2024-07-08 18:01:11 +02:00
f7e9fca83f sistemato messaggio di errore 2024-07-08 18:01:08 +02:00
d88c7647db correzioni ad invio variazioni 2024-07-08 17:45:49 +02:00
d5f4d73dc4 Nuova tabella di relazione tra articoli e scheda tecnica 2024-07-08 16:15:29 +02:00
cf63edb453 Aggiunto campo id 2024-07-08 16:15:03 +02:00
f7b71cc4ee Aggiunto DB SicialiniDMS ed esclusi migrations DMS da escludere 2024-07-08 11:31:24 +02:00
971ea7bd7a Finish Hotfix-68 2024-07-08 10:28:15 +02:00
2e02fd38ad Merge tag 'Hotfix-68' into develop
Finish Hotfix-68
2024-07-08 10:28:15 +02:00
7cfc702ea0 Attivazione ROTUNNO 2024-07-08 10:27:30 +02:00
09bc88241d Merge tag 'Hotfix-67' into develop
Finish Hotfix-67
2024-07-08 09:53:54 +02:00
c702d7410b Finish Hotfix-67 2024-07-08 09:53:53 +02:00
fd67662dc2 Accise LICOR 2024-07-08 09:53:41 +02:00
08e4162620 Aggiunti servizi per modifica e cancellazione assenze 2024-07-05 18:01:09 +02:00
6c3fc25ef8 Migration per nuova setup "FLAG_USE_COLLI_PEDANA" 2024-07-05 17:55:01 +02:00
73c882684c Merge remote-tracking branch 'origin/develop' into develop 2024-07-05 16:59:58 +02:00
3336b4ce20 Aggiunta setup per chiusura senza verifica in modellini 2024-07-05 16:52:02 +02:00
41dd98e1f9 Creazione nuove tabelle per scheda tecnica 2024-07-05 15:47:07 +02:00
9f66f92984 Creazione nuove tabelle per scheda tecnica 2024-07-05 15:08:58 +02:00
5ef4cf2ff5 Aggiunta setup giorni aggiunta alla data fine stimata modellini 2024-07-05 11:56:14 +02:00
d97a7305cc Corretta chiave della tabella 2024-07-05 10:40:03 +02:00
0b60ab7a06 Aggiunta gestione scheda tecnica 2024-07-05 09:32:13 +02:00
ed30d129d5 Merge remote-tracking branch 'origin/develop' into develop 2024-07-05 09:18:39 +02:00
674c1ce5de Aggiunta gestione scheda tecnica 2024-07-05 09:00:32 +02:00
308f883b15 Aggiustata funzione getListinoVenditaPedane 2024-07-04 19:09:50 +02:00
8c9421325f Merge branch 'master' into develop 2024-07-04 18:56:27 +02:00
63e9f325f3 Finish FixImportClientiFP 2024-07-04 18:56:27 +02:00
706b4e3c21 Corretto invio di dati duplicati in FoodProcess 2024-07-04 18:55:10 +02:00
fb8aeea028 Merge remote-tracking branch 'origin/develop' into develop 2024-07-04 18:55:05 +02:00
41ee89c94e Migrations varie 2024-07-04 18:54:59 +02:00
21e2267340 aggiunto package 2024-07-04 17:22:38 +02:00
0b0a2ea918 aggiunto package 2024-07-04 17:14:15 +02:00
aef6b1e937 Merge remote-tracking branch 'origin/develop' into develop 2024-07-04 16:36:07 +02:00
ce5673cd24 nuove tabelle scheda tecnica 2024-07-04 16:33:11 +02:00
3045529df8 verifica articolo acquisto in shelflife 2024-07-04 16:15:59 +02:00
96cbf6f844 Aggiunta gestione elenco variabili scheda tecnica 2024-07-04 15:46:26 +02:00
fd09483123 migration e rename classi 2024-07-04 12:28:00 +02:00
832d411426 Finish FixEsportFoodProcess 2024-07-04 11:01:58 +02:00
fc8262a203 Merge branch 'master' into develop 2024-07-04 11:01:58 +02:00
6d8cba5d07 Fix max id su esportazione food process 2024-07-04 11:01:36 +02:00
4abf1c2b01 Merge remote-tracking branch 'origin/develop' into develop 2024-07-04 09:45:22 +02:00
12901abd2d Tracciato ROTUNNO 2024-07-04 09:45:16 +02:00
f93fa6678c Merge branch 'master' into develop 2024-07-03 18:09:56 +02:00
819f0c8ce0 Finish ModifPianProd 2024-07-03 18:09:56 +02:00
e13611a328 Aggiunta data esportazione in DtbOrdrPianProd 2024-07-03 18:09:47 +02:00
bb8bc2b7fd new migration 2024-07-03 11:53:56 +02:00
f13c81f119 Tracciato ROTUNNO 2024-07-03 11:03:41 +02:00
abdfb4c1ef Tracciato ROTUNNO 2024-07-03 11:03:29 +02:00
b435488b7d Sistemato invio variazioni 2024-07-03 09:37:43 +02:00
167183ac64 Merge remote-tracking branch 'origin/develop' into develop 2024-07-02 18:34:13 +02:00
43d101719c Export ROTUNNO 2024-07-02 18:34:07 +02:00
62a1e49e7c Merge branch 'develop' into feature/Feature-variazioni2 2024-07-02 17:38:25 +02:00
65fceec62e Merge branch 'develop' into feature/Feature-variazioni2
# Conflicts:
#	ems-core/src/main/java/it/integry/ems/service/HttpRestWrapper.java
#	ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServices.java
#	ems-engine/src/main/java/it/integry/ems/retail/service/GiacenzaService.java
2024-07-02 17:18:13 +02:00
3e2dc62fba correzione a registrazione distinte raggruppate e sync rossogargano 2024-07-02 17:10:29 +02:00
a5b979f53d eliminata setup 2024-07-02 16:39:42 +02:00
5f59100142 Spostato output download files in ResponseEntity 2024-07-02 16:29:02 +02:00
4bbc909563 Aggiunto parametro anno in readActivity Agribook 2024-07-02 13:03:49 +02:00
2770cac483 Merge tag 'Hotfix-66' into develop
Finish Hotfix-66
2024-07-02 12:58:29 +02:00
702d529a8b Finish Hotfix-66 2024-07-02 12:58:28 +02:00
6b5a2cafaf Modifica DAS 2024-07-02 12:58:10 +02:00
255d82cec5 Merge remote-tracking branch 'origin/develop' into develop 2024-07-02 12:57:22 +02:00
66ac02a7a9 Modifica tracciato DIPA 2024-07-02 12:57:06 +02:00
32daa9fbe7 Ordify elenco clienti per gestore deposito esterno 2024-07-01 16:00:59 +02:00
349c47ce52 abilitata voce di menù 2024-07-01 15:41:59 +02:00
3828e5cbec Finish Hotfix-66 2024-07-01 15:30:39 +02:00
73f1b01fed Merge branch 'master' into develop 2024-07-01 15:30:39 +02:00
007e66aff7 inserito un controllo sull'esistenza del codice interno sugli articoli presenti in bolla. 2024-07-01 15:30:33 +02:00
a1ab5da08a Aggiunto partita iva e codice fiscale sede legale 2024-07-01 15:06:38 +02:00
5cb6e30ed6 Aggiunto partita iva e codice fiscale sede legale 2024-07-01 15:06:28 +02:00
ea82bff88a Finish IntegrazioneFoodProcess 2024-07-01 12:43:03 +02:00
cfad878bc2 Merge branch 'master' into develop 2024-07-01 12:43:03 +02:00
ac68ea4ea5 Aggiornamento resteasy ed integrazione servizi FoodProcess 2024-07-01 12:42:57 +02:00
e2ad0a7c65 Migliorate classi UtilityDocx e UtilityExcel 2024-07-01 10:14:54 +02:00
3e6c38b51f Aggiunto servizio che restituisce la giacenza in tempo reale a partire dalla tabella delle giacenze progressive 2024-07-01 10:03:48 +02:00
a0cd0cbec5 Aggiunta DMS come application 2024-06-28 18:51:50 +02:00
087189a0b0 [OrderImportService]
- Fixato il controllo sulla imp_min_ord, la setup non esisteva più da tempo ed il valore era presente direttamente sulla linea, adesso lo legge dalla linea
2024-06-28 17:00:25 +02:00
b2df536011 Merge tag 'Hotfix-65' into develop
Finish Hotfix-65
2024-06-27 12:21:13 +02:00
2f863e1489 Finish Hotfix-65 2024-06-27 12:21:13 +02:00
7705b8a5fd Aggiunta application DMS 2024-06-27 12:20:55 +02:00
5b2c5c2676 Merge remote-tracking branch 'origin/develop' into develop 2024-06-27 12:19:35 +02:00
3757f511e0 Modifica personalizzazione report riepilogo ordini 2024-06-27 12:19:25 +02:00
3842cc0f6e Fix multiply bigdecimal con null 2024-06-26 12:33:00 +02:00
747e2615b3 Finish Hotfix-65 2024-06-26 10:58:28 +02:00
fcea8f5267 Merge branch 'master' into develop 2024-06-26 10:58:28 +02:00
ea2b8c7593 [ROSSOGARGANO - accettazione da raccolta]
gestione scarichi
2024-06-26 10:58:20 +02:00
b144d84549 Finish Hotfix-65 2024-06-26 09:53:18 +02:00
48c7de51f7 Merge branch 'master' into develop 2024-06-26 09:53:18 +02:00
d7f1992154 Creata migration per sistemare ansi_padding, ecc. 2024-06-26 09:53:10 +02:00
11f5056fd0 Merge remote-tracking branch 'origin/develop' into develop 2024-06-26 09:50:54 +02:00
9147b6be27 Fix su importazione EXCHANGE 2024-06-26 09:50:46 +02:00
9492a646ba Creata classe per la gestione dei file docx 2024-06-25 16:23:25 +02:00
ec8b8547c5 Aggiornata libreria apache.poi e refactor 2024-06-25 16:22:23 +02:00
49dd2269af Merge remote-tracking branch 'origin/develop' into develop 2024-06-25 11:11:00 +02:00
ac5c3ff2dd Personalizzazione ordini WEB per Follies 2024-06-25 11:10:49 +02:00
069d497566 Rimosso parametro override in createSetupQuery (non più utilizzato) 2024-06-25 10:55:21 +02:00
207b557655 PErsonalizzazione report scadenze clienti fornirori per IME Bari 2024-06-24 12:23:27 +02:00
76fc878585 Merge remote-tracking branch 'origin/develop' into develop 2024-06-24 12:22:06 +02:00
80c41b1fcc PErsonalizzazione report scadenze clienti fornirori per IME Bari 2024-06-24 12:21:56 +02:00
94994d696f Merge remote-tracking branch 'origin/develop' into develop 2024-06-21 18:56:47 +02:00
d0065a1219 Creata importazione EXCHANGE documenti.
Fix su importazione EXCHANGE ordini di lavorazione/produzione.
2024-06-21 18:56:39 +02:00
eeba09920f AGGIUNTA MIGRATION 2024-06-21 18:29:10 +02:00
6d69f6c059 Merge remote-tracking branch 'origin/develop' into develop 2024-06-21 18:21:13 +02:00
2f7bd7596a procedura di controllo fatture dello sdi con fatture presenti al sistema 2024-06-21 18:21:10 +02:00
a3a99f687f Aggiunti filtri attività 2024-06-21 18:04:47 +02:00
0f96873847 AGGIUNTA MIGRATION 2024-06-21 17:58:10 +02:00
8f3406fa4d Merge remote-tracking branch 'origin/develop' into develop 2024-06-21 17:54:59 +02:00
b347cf1aff Permettere la duplicazione delle uds 2024-06-21 17:54:54 +02:00
b720b08088 Merge remote-tracking branch 'origin/develop' into develop 2024-06-21 17:30:18 +02:00
42169a5646 Modifica rifatturazione FILCONAD 2024-06-21 17:30:13 +02:00
c17cd3d83e Aggiunta setup importazione 2024-06-21 16:30:54 +02:00
1d92895df6 cambiata chiave della tabella mtb_depo_intercode 2024-06-21 14:46:37 +02:00
46c3419751 Merge remote-tracking branch 'origin/develop' into develop 2024-06-21 12:04:47 +02:00
69b0f37254 Creata importazione ordini EXCHANGE 2024-06-21 12:04:40 +02:00
efc38970ff varie migration 2024-06-21 11:57:36 +02:00
83156e8623 Merge remote-tracking branch 'origin/develop' into develop 2024-06-21 10:49:21 +02:00
3a2e6a405b Importazione DIPA 2024-06-21 10:49:16 +02:00
105309ef4f Importazione DIPA 2024-06-21 10:49:06 +02:00
7da201e24f aggiunta eccezione se distinta non presente 2024-06-20 17:13:41 +02:00
cb88dfbead aggiunto fatta nel mese, fatto mese precedente, fatto trimestre corrente, fatto trimestre prec 2024-06-20 16:59:52 +02:00
36efa1c628 Merge remote-tracking branch 'origin/develop' into develop 2024-06-20 15:08:45 +02:00
fb80695cba Importazione DIPA 2024-06-20 15:08:23 +02:00
ce1b0df102 Importazione DIPA 2024-06-20 15:08:14 +02:00
a713368d62 Merge remote-tracking branch 'origin/develop' into develop 2024-06-20 15:08:09 +02:00
bf32d9be5c apertura attività chiusa 2024-06-20 15:08:06 +02:00
e93d54c986 Migration per esportazione SIAN 2024-06-20 15:07:50 +02:00
a4caa25c05 Merge remote-tracking branch 'origin/develop' into develop 2024-06-20 12:15:48 +02:00
5db1aa0948 Fix log errori in DocumentController 2024-06-20 12:15:34 +02:00
95e18001ef Fix log errori in DocumentController 2024-06-20 12:14:42 +02:00
026a4890d1 Merge remote-tracking branch 'origin/develop' into develop 2024-06-20 12:08:19 +02:00
afa1342e8f Importazione DIPA 2024-06-20 09:39:49 +02:00
46692dd75e Importazione DIPA 2024-06-20 09:39:37 +02:00
dd23b7b7fb Merge branch 'master' into develop 2024-06-19 17:44:14 +02:00
9c1332f385 Finish Hotfix-65 2024-06-19 17:44:14 +02:00
63061e576a sistemato controllo su setup di steup 2024-06-19 17:38:36 +02:00
7b18f23794 Merge remote-tracking branch 'origin/develop' into develop 2024-06-19 17:29:59 +02:00
2e496d6b60 Metodo per duplicare le uds 2024-06-19 17:29:50 +02:00
4c148ccbd9 Merge branch 'master' into develop 2024-06-19 17:29:20 +02:00
c7b8cae326 Finish Hotfix-65 2024-06-19 17:29:19 +02:00
599df1fc16 sistemato controllo su inserimento promozione nello stesso periodo e controllato se i file di apulia sono vuoti 2024-06-19 17:29:14 +02:00
7175380045 Aggiunta eccezione in caso di file vuoto in importazione bulk file 2024-06-19 17:12:08 +02:00
33c9d32262 Merge branch 'master' into develop 2024-06-19 15:02:31 +02:00
8d09a02f1c Finish Hotfix-65 2024-06-19 15:02:30 +02:00
83d48df47d aggiunto controllo su wdtb_doct per i fRUMA 2024-06-19 15:02:24 +02:00
bd3d295f6f Merge remote-tracking branch 'origin/develop' into develop 2024-06-19 12:02:54 +02:00
9672fce01f Importazione DIPA 2024-06-19 12:02:44 +02:00
6b5274f2c3 aggironamento su MRP_UpdateQtaImpProx 2024-06-19 10:20:24 +02:00
fc3dfc13cf Merge branch 'master' into develop 2024-06-19 09:56:08 +02:00
f4b7eba1d8 Finish Hotfix-65 2024-06-19 09:56:07 +02:00
25fade5f48 impostato 0 nel valoneri nella procedura di importazione listini apulia 2024-06-19 09:51:42 +02:00
9fd75d10b6 Controllo se il barcode ul è già presente in un collo 2024-06-18 17:30:54 +02:00
25eabec6e6 Finish Hotfix-64 2024-06-18 16:59:31 +02:00
88c2f06386 Merge tag 'Hotfix-64' into develop
Finish Hotfix-64
2024-06-18 16:59:31 +02:00
f90ac6f64a Migrations controllo dichiarazione intento 2024-06-18 16:59:07 +02:00
fe414ec431 Merge remote-tracking branch 'origin/develop' into develop 2024-06-18 16:54:38 +02:00
5671ba07d5 Migrations 2024-06-18 16:54:30 +02:00
35e3e1447d Invertito controllo articoli esclusi wms in rettifica produzione licor 2024-06-18 15:59:06 +02:00
d4840aa672 Merge branch 'master' into develop 2024-06-18 14:14:09 +02:00
1d0711ebd4 Finish Hotfix-64 2024-06-18 14:14:08 +02:00
5bbbea25fa Nuovo campo per escludere articoli dalla logica di qta max per colore 2024-06-18 14:14:02 +02:00
5298ec4949 Merge branch 'master' into develop 2024-06-18 12:48:03 +02:00
61fc69ae89 Finish FixRecalcPosViaggi 2024-06-18 12:48:03 +02:00
4401c05464 Fix recalc posizione viaggi 2024-06-18 12:47:56 +02:00
a12d5198b1 Fix insSubactivity 2024-06-18 12:36:36 +02:00
1aa0f7518f Aggiornare il cod_jfas anche sui rapportini quando viene cambiato sulle attività, modificare l'utente quando vengono inserire le ore su attività su DEV, T0001, T0003 2024-06-18 11:15:46 +02:00
7423754900 Merge remote-tracking branch 'origin/develop' into develop 2024-06-18 10:04:55 +02:00
26b5c5b6a3 Merge remote-tracking branch 'origin/develop' into develop 2024-06-17 19:23:38 +02:00
b69d79381b Tracciato MIRARCHI 2024-06-17 19:23:29 +02:00
606a486f82 Aggiunto controllo se articolo escluso wms in rettifica produzione licor 2024-06-17 18:04:14 +02:00
ba0e4650ce DAS Elettronico 2024-06-17 16:19:03 +02:00
8c43abd739 Merge tag 'Hotfix-63' into develop
Finish Hotfix-63
2024-06-17 15:25:20 +02:00
1cbc9489f1 Finish Hotfix-63 2024-06-17 15:25:19 +02:00
0c14e7b987 Export DAS 2024-06-17 15:24:56 +02:00
4f33830879 aggiuti campi nella vista statistiche ordinato 2024-06-17 12:42:23 +02:00
500a39bbc9 Creato sistema di import colli tramite formato EXCHANGE 2024-06-17 12:01:31 +02:00
c04e08a575 Tracciato MIRARCHI 2024-06-17 09:37:44 +02:00
7b842ca014 sistemata chiusura tagli prezzo, aggiunte note_testata in promozioni 2024-06-14 17:49:26 +02:00
cd72eed0cc aggiunto controllo su data fine promozione, modificata vista per statistiche su ordinato, aggiunte nuove voci menu' 2024-06-14 15:22:57 +02:00
9fbcf5b074 [CARELLI] creazione xml per esportazione zucchetti 2024-06-14 13:00:47 +02:00
c041d3fc48 Merge remote-tracking branch 'origin/develop' into develop 2024-06-14 12:53:45 +02:00
3578afa37b Impostazione aggiorna dati modifica ordine orgcons 2024-06-14 12:53:37 +02:00
a030dd13b3 Fix creazione prima atb_offt per nuovo anno 2024-06-13 18:07:10 +02:00
bfe7e3c972 aggiunta pk 2024-06-13 16:57:14 +02:00
0b6a1b871f Sistemata cancellazione utenti 2024-06-13 13:31:43 +02:00
f301eacef3 Merge remote-tracking branch 'origin/develop' into develop 2024-06-13 13:23:57 +02:00
1b51013d0f sistemato contollo per errori esportazione 2024-06-13 13:17:16 +02:00
3dab6a9cf1 sistemata query per visulizzare ultima attività 2024-06-13 13:17:00 +02:00
8b56c4f136 Merge remote-tracking branch 'origin/develop' into develop 2024-06-13 10:05:33 +02:00
a14e9f85e1 [Smetar - Centri di lavoro]
- Aggiunto servizio per fetch allegati lotto
- Aggiunto invio eventi ordine al collector
2024-06-13 10:05:23 +02:00
56326bcb94 Merge tag 'Hotfix-61' into develop
Finish Hotfix-61
2024-06-12 15:25:47 +02:00
d2247e559c Finish Hotfix-61 2024-06-12 15:25:46 +02:00
d5059a49a9 Migration ordini acquisto Gioiella 2024-06-12 15:25:20 +02:00
5ff6412128 Merge branch 'master' into develop 2024-06-12 14:24:21 +02:00
25a08389df Finish Hotfix-61 2024-06-12 14:24:20 +02:00
2171dfc16c eliminata l'ora dalla data delle griglie di vendita 2024-06-12 14:24:00 +02:00
8346d16d7d Aggiunta possibilità di caricare attività di anni precedenti 2024-06-12 10:09:20 +02:00
bed96c9ed4 Aggiunta regola per ricalcolo posizione viaggi in giorno al salvataggio 2024-06-12 09:37:33 +02:00
e67ca853b8 Merge remote-tracking branch 'origin/develop' into develop 2024-06-11 17:45:08 +02:00
7ebf5af9f9 Configurazione gestione oneri/traporti 2024-06-11 17:45:03 +02:00
e626f1e1c2 aggiunto a Canone a Pagamento 2024-06-11 16:12:04 +02:00
8818d7c839 Merge remote-tracking branch 'origin/develop' into develop 2024-06-11 15:33:53 +02:00
c506709c33 Configurazione gestione oneri/traporti 2024-06-11 15:33:45 +02:00
97c458b674 Merge branch 'master' into develop 2024-06-11 15:28:03 +02:00
638ab3b5ed Finish Hotfix-61 2024-06-11 15:28:02 +02:00
414d62aa6c SISTEMATO POPOLAMENTO GIACENZE 2024-06-11 15:26:59 +02:00
917cf529d8 Aggiunta where su idBdg in RG_AnalisiVendite_KPI 2024-06-11 15:16:08 +02:00
6a39ca8972 Merge remote-tracking branch 'origin/develop' into develop 2024-06-11 11:55:24 +02:00
aaa03da726 aggiunta setup e getListinoVenditaRange 2024-06-11 11:55:17 +02:00
7115254c53 Merge remote-tracking branch 'origin/develop' into develop 2024-06-11 10:57:28 +02:00
8926fe4cf4 Elimnati due campi da VTB_VETT 2024-06-11 10:57:18 +02:00
777ab4c223 Elimnati due campi da VTB_VETT 2024-06-11 10:57:14 +02:00
fb66797fe0 Finish Hotfix-61 2024-06-11 10:00:48 +02:00
b1bed3bfab Merge branch 'master' into develop 2024-06-11 10:00:48 +02:00
ed7a2a0374 sistemare errore nella chiusura dei tagli prezzo 2024-06-11 10:00:37 +02:00
c9fb344849 Gestito flag includi tara in peso e tipologia ripartizione per pedana in costi trasporto/oneri 2024-06-10 19:33:31 +02:00
fcd45a187a Gestito flag includi tara in peso e tipologia ripartizione per pedana in costi trasporto/oneri 2024-06-10 19:33:23 +02:00
e6319eb7c8 - Migration per cancellare ABILITA_DUPLICA_ORDINE e creare ABILITA_CREA_DUPLICA_ORDINE 2024-06-10 13:10:30 +02:00
35702757b9 Merge remote-tracking branch 'origin/develop' into develop 2024-06-10 12:31:14 +02:00
2a59351e09 Gestione ALIAS nome_ditta in stampa etichette 2024-06-10 12:31:07 +02:00
5067eff40b Gestita creazione della commessa direttamente nel preventivo 2024-06-10 11:53:01 +02:00
b8c4caaa9b Sistemato getActivity per i clienti 2024-06-07 19:05:46 +02:00
fad75298f9 Fix link email creazione ticket 2024-06-07 19:05:03 +02:00
f125e339f5 [CARELLI] Importazione Griglie di Vendita 2024-06-07 19:04:22 +02:00
f69848f748 Quando si registra un nuovo utente inviare un'email a Helpdesk. 2024-06-07 19:02:40 +02:00
27a1c0efe9 Aggiunto controllo nella creazione dei FRUMA se il documento inserito esiste realmente. 2024-06-07 18:57:31 +02:00
2bed8730c5 - Aggiunto wtbJreptSetup 'STAMPA_LISTINI_VENDITA_RANGE_PEDANE' 2024-06-07 17:34:40 +02:00
cf56f61962 modifiche a mrp per gestire i fabbisogni a data 2024-06-06 18:14:00 +02:00
81d05fa0ae Export documenti DAS 2024-06-06 16:39:52 +02:00
067a059532 Export documenti DAS 2024-06-06 16:39:44 +02:00
94ac3fb90c aggiunta nuova colonna su mtb_part 2024-06-06 15:10:56 +02:00
cdc3bb92cc Controllo sul null 2024-06-06 15:10:10 +02:00
8153291184 Merge branch 'master' into develop 2024-06-06 11:34:47 +02:00
6f20b34196 Finish Hotfix-61 2024-06-06 11:34:46 +02:00
6d01cfd280 Fix json in response 2024-06-06 11:34:40 +02:00
1a1cbaed28 Merge branch 'master' into develop 2024-06-06 10:52:04 +02:00
d18f51ca6d Finish Hotfix-61 2024-06-06 10:52:04 +02:00
abd843ad7a Fix download allegati 2024-06-06 10:51:55 +02:00
43297555f0 filtrate le attività per persona di riferimento 2024-06-06 09:42:07 +02:00
a4717ba245 Merge remote-tracking branch 'origin/develop' into develop 2024-06-05 17:49:11 +02:00
a51325ede0 Fixato scheduler Spring 2024-06-05 17:47:21 +02:00
4a81d6e988 Modificata regola assegnazione commessa su righe ordine (Fatto in modo che sulle righe dell'ordine di produzione non venga assegnata la commessa) 2024-06-05 17:41:46 +02:00
c9f9c63ef2 Finish Hotfix-61 2024-06-05 17:19:07 +02:00
a6958eee39 Merge branch 'master' into develop 2024-06-05 17:19:07 +02:00
b6eec691f5 Aggiunto filtro che imposta l'encoding su request e response 2024-06-05 17:18:58 +02:00
90cbc94e6a Trying to fix content type 2024-06-05 17:11:15 +02:00
02ca6eea4a eliminato _ da pattern per cancellazione viste e tabelle temporanee 2024-06-05 12:37:14 +02:00
9629be196a Finish Hotfix-61 2024-06-05 11:24:14 +02:00
3e461bc692 Merge branch 'master' into develop 2024-06-05 11:24:14 +02:00
1878ce5673 [rOSSOGRAGANO]
provedura salvataggio ddt in massa
2024-06-05 11:24:06 +02:00
4b55c57da1 Merge branch 'master' into develop 2024-06-05 10:39:59 +02:00
7814e3c0db Finish Hotfix-61 2024-06-05 10:39:58 +02:00
129e52a116 Fix colli tosca 2024-06-05 10:36:22 +02:00
d97e582802 Merge branch 'master' into develop 2024-06-05 10:02:59 +02:00
e98bf98a3b Finish Hotfix-61 2024-06-05 10:02:59 +02:00
12b9e432aa aggiunto valore di default per il parametro requestMethod nelle pianificate 2024-06-05 10:02:42 +02:00
b411e331a9 Merge remote-tracking branch 'origin/develop' into develop 2024-06-05 09:58:35 +02:00
d1d5c7ca21 aggiunto valore di default per il parametro requestMethod nelle pianificate 2024-06-05 09:58:26 +02:00
c348be1365 Merge remote-tracking branch 'origin/develop' into develop 2024-06-05 09:08:07 +02:00
ddff8bb078 Gestione quantità multipla SMETAR 2024-06-05 09:07:58 +02:00
0b7ece1c48 Finish Hotfix-61 2024-06-04 22:16:08 +02:00
8722de1d68 Merge branch 'master' into develop 2024-06-04 22:16:08 +02:00
b1b2e00b87 Fix onlyPkMaster in sync entity 2024-06-04 22:16:01 +02:00
d895eccda3 Merge branch 'master' into develop 2024-06-04 21:25:37 +02:00
bf57c1442e Finish Hotfix-61 2024-06-04 21:25:36 +02:00
dbd9bad7e7 Fix onlyPkMaster in sync entity 2024-06-04 21:25:30 +02:00
c466abb836 Merge branch 'master' into develop 2024-06-04 21:01:25 +02:00
203808d323 Finish Hotfix-61 2024-06-04 21:01:24 +02:00
7189cae9e3 Fix onlyPkMaster in sync entity 2024-06-04 21:01:19 +02:00
ebce20e389 Merge branch 'master' into develop 2024-06-04 20:38:50 +02:00
d1c5d4d29f Finish Hotfix-61 2024-06-04 20:38:49 +02:00
90f5a08c50 Fix onlyPkMaster in sync entity 2024-06-04 20:38:41 +02:00
966bc1e9b3 Merge branch 'master' into develop 2024-06-04 20:34:59 +02:00
6179d07564 Finish Hotfix-61 2024-06-04 20:34:59 +02:00
946168517e Fix onlyPkMaster in sync entity 2024-06-04 20:34:53 +02:00
ec6b888840 Merge branch 'master' into develop 2024-06-04 20:14:45 +02:00
3fdf558b6c Finish Hotfix-61 2024-06-04 20:14:44 +02:00
c57344e334 Fix onlyPkMaster in sync entity 2024-06-04 20:14:37 +02:00
4c5b847c14 Merge branch 'master' into develop 2024-06-04 19:40:55 +02:00
30faa66519 Finish Hotfix-61 2024-06-04 19:40:54 +02:00
476ff92f30 [ROSSOGARGANO]
creato certificato di consegna anche se qtaCol = 0
2024-06-04 19:40:48 +02:00
18dd9dc8a3 Merge branch 'master' into develop 2024-06-04 18:59:24 +02:00
d292ab6ac0 Finish Hotfix-61 2024-06-04 18:59:24 +02:00
9a90387df6 Fix call pianificate 2024-06-04 18:59:18 +02:00
c1909b58ab Merge branch 'master' into develop 2024-06-04 18:37:25 +02:00
9b77c4a693 Finish Hotfix-61 2024-06-04 18:37:24 +02:00
cf672c349b Fix call pianificate 2024-06-04 18:37:18 +02:00
800f1d84d9 Merge branch 'master' into develop 2024-06-04 18:24:45 +02:00
f72c0962c8 Finish Hotfix-61 2024-06-04 18:24:45 +02:00
d4303b053f Fix call pianificate 2024-06-04 18:24:30 +02:00
6737226d91 sistemato salvataggio listini con listino di riferimento e varie migration 2024-06-04 18:11:07 +02:00
b0492de6d4 Merge remote-tracking branch 'origin/develop' into develop 2024-06-04 18:08:59 +02:00
4c4d608ac1 Merge remote-tracking branch 'origin/feature/Feature-variazioni2' into feature/Feature-variazioni2
# Conflicts:
#	ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServices.java
2024-06-04 18:01:56 +02:00
6648d4f655 Fix after merge 2024-06-04 18:01:42 +02:00
2a4e57de0d Fix after merge 2024-06-04 18:00:37 +02:00
9ab0e5fc0f Merge branch 'master' into develop 2024-06-04 11:36:55 +02:00
6a605f9db0 Finish Hotfix-61 2024-06-04 11:36:54 +02:00
a7fbe6e491 Fix doppio slash in automation method call 2024-06-04 11:10:59 +02:00
b4252581b5 Merge remote-tracking branch 'origin/develop' into develop 2024-06-04 10:39:33 +02:00
fcde03ce4b Merge branch 'master' into develop 2024-06-03 19:26:04 +02:00
363258f6ac Finish Hotfix-61 2024-06-03 19:26:03 +02:00
06580f507b Fix getDTO in ResponseJSONObjectMapper 2024-06-03 19:25:57 +02:00
82db179601 Creazione servizio per archiviazione file allegati in zip 2024-06-03 18:31:39 +02:00
565336e454 piccoli miglioramenti a registrazione e verifica inventario 2024-06-03 16:23:24 +02:00
692a68d65e aggiunta setup per impedire la visualizzazione del report degli aggiornamenti agli utenti non amministratori 2024-06-03 13:02:40 +02:00
db819a69f1 Merge remote-tracking branch 'origin/develop' into develop 2024-06-03 12:23:22 +02:00
6fe25e1405 aggiunto modificato da nella procedura di importazione listini di pazienza 2024-06-03 12:23:19 +02:00
165770699e Merge branch 'master' into develop 2024-06-03 10:26:45 +02:00
3ae6180584 Finish Hotfix-61 2024-06-03 10:26:44 +02:00
bb11ae9d36 Fix su invio email di errore in caso di headless delle export 2024-06-03 10:26:24 +02:00
8e56d53796 Merge branch 'master' into develop 2024-06-03 10:14:24 +02:00
6d2f268ff3 Finish FixJacksonValNull 2024-06-03 10:14:24 +02:00
5362c4f39a Fix jackson inclusione valori null in risposte 2024-06-03 10:14:17 +02:00
875821df08 Merge branch 'master' into develop 2024-06-03 09:54:07 +02:00
51ae525983 Finish Hotfix-61 2024-06-03 09:54:07 +02:00
141f7b6751 se ora ins act è nulla inserire data ins act 2024-06-03 09:54:00 +02:00
4c5c628d23 nuova funzione di suggestCode ean14 2024-05-31 17:39:13 +02:00
1d8449773d [Migrations]
- Aggiunto "REPORT_NAME" a "RILEVAZIONI_STEUP" per la stampa dell'ispezioni di Carelli
- Fix setup_query "ATTACH_LIBERI", problema con la query, campi data_doc e num_doc
2024-05-31 16:32:01 +02:00
5479e9dbcd Personalizzazione importo ordini EDI per data decorrenza CONAD GRAMM 2024-05-30 17:50:12 +02:00
52a0b1df5c Merge remote-tracking branch 'origin/develop' into develop 2024-05-30 16:32:47 +02:00
e0f5c9814a Modifica procedura chiusura commessa MAGGIO 2024-05-30 16:32:43 +02:00
39b928b118 Merge remote-tracking branch 'origin/develop' into develop 2024-05-30 15:51:47 +02:00
378fc24198 [ROSSOGARGANO - Piano accettazione]
fix stampa con calibro null
2024-05-30 15:51:25 +02:00
b6737aca0f visualizzare descrizione sottoattivtà solo se aperta 2024-05-30 15:10:42 +02:00
12115880a1 Merge remote-tracking branch 'origin/develop' into develop 2024-05-30 13:20:09 +02:00
b3a248d754 Fix procedura esportazione tracciato tosca 2024-05-30 13:19:51 +02:00
c41502a829 Aggiunto controllo su null 2024-05-30 13:18:05 +02:00
47f3ebcf4d Creata procedura di esportazione ordini per Gioiella 2024-05-30 09:48:47 +02:00
b7646d8ce3 Modifica tracciato EURITMO e GS per gestione data decorrenza per clienti GRAMM (CONAD, ASPIAG, GS e IPERMONTEBELLO) 2024-05-30 09:39:01 +02:00
e2e2e09bbb Modifica tracciato EURITMO e GS per gestione data decorrenza per clienti GRAMM (CONAD, ASPIAG, GS e IPERMONTEBELLO) 2024-05-30 09:38:25 +02:00
98e024ed5a Modifica tracciato EURITMO e GS per gestione data decorrenza per clienti GRAMM (CONAD, ASPIAG, GS e IPERMONTEBELLO) 2024-05-30 09:12:26 +02:00
a2fe597ed6 Merge remote-tracking branch 'origin/develop' into develop 2024-05-29 18:24:18 +02:00
946089e307 Gestione tara nel calcolo del peso in Gestione documenti/trasporto 2024-05-29 18:24:10 +02:00
990e0e7fdc Merge branch 'master' into develop 2024-05-29 16:33:49 +02:00
d16225e111 Finish Hotfix-61 2024-05-29 16:33:49 +02:00
d4530567d7 sistemata lettura campo in esportazione slim2k 2024-05-29 16:33:25 +02:00
a82106edf0 Merge remote-tracking branch 'origin/develop' into develop 2024-05-29 13:04:24 +02:00
5c3e25b41c Aggiunta descrizione su campo flag_sezione in MSSQL 2024-05-29 13:04:17 +02:00
ce74ff45d7 Configurazione SUIT_PUGLIA_FARMES 2024-05-29 13:04:00 +02:00
b66938e367 Configurazione SUIT_PUGLIA_FARMES 2024-05-29 13:03:52 +02:00
067c7c24fc [ROSSOGARGANO - Piano accettazione]
Gestione calibri e stampe etichette
2024-05-29 12:31:19 +02:00
ebb9db1b92 Merge tag 'Hotfix-62' into develop
Finish Hotfix-62
2024-05-28 18:10:27 +02:00
c5ef5c6f83 Finish Hotfix-62 2024-05-28 18:10:25 +02:00
ff96e73483 [CARELLI] Fix path in importazione listini e promozioni di vendita 2024-05-28 18:09:32 +02:00
6fe75d1b57 aggiunto controllo su inevasi per le rotture di stock 2024-05-28 18:01:26 +02:00
f306d53d3a Fix data in esportazione tracciato tosca 2024-05-28 17:26:35 +02:00
d7c73745ff [GRAMM] Aggiunta setup che consente di disabilitare il picking libero quando si spara un'etichetta cartone 2024-05-28 17:25:55 +02:00
d479180337 [ORDIFY] Aggiunta setup abilitare l'inserimento del codice hash dispositivo nel campo rif_ord in fase di esportazione dell'ordine 2024-05-28 17:24:22 +02:00
a664c1b7e5 Merge remote-tracking branch 'origin/develop' into develop 2024-05-28 17:12:05 +02:00
f89eb0fc2f Implementata clean delle tabelle e delle viste temporanee 2024-05-28 17:11:16 +02:00
9d403f87f4 aggiunto campo tipo_codice_imballo nella tabella mtb_aart
aggiunto campo tipo_cod_barre nella tabella mtb_aart_bar_code
2024-05-28 16:03:23 +02:00
6b47fb3ad3 Merge branch 'master' into develop 2024-05-28 14:45:40 +02:00
b78180374e Finish Hotfix-61 2024-05-28 14:45:39 +02:00
d148de7617 modificata procedura di esportazione ordini per slim2k 2024-05-28 14:45:31 +02:00
a6fd50b523 Merge branch 'master' into develop 2024-05-27 15:27:59 +02:00
95a49495c3 Finish Hotfix-61 2024-05-27 15:27:59 +02:00
457e9e2a45 ritornare indietro con la regola perché per le logiche di Steup questa regola non va bene 2024-05-27 15:27:52 +02:00
b30d0deeda [ROSSOGARGANO]
Aggiunta setup per suggerimento lotto in creazione ordine da mrp
2024-05-27 12:11:09 +02:00
34c441eaff Merge tag 'Carelli_Inventari_FixCodMdep' into develop
Finish Carelli_Inventari_FixCodMdep
2024-05-27 12:02:00 +02:00
4f3b0c81c7 Finish Carelli_Inventari_FixCodMdep 2024-05-27 12:01:59 +02:00
6729807363 [PvmService]
- Fix condizione where su cod_mdep
2024-05-27 12:01:41 +02:00
cdedd25c23 Unificata e migliorata logica di creazione delle mail di errore con un template unico 2024-05-27 10:40:53 +02:00
c0ae8f98f8 Merge remote-tracking branch 'origin/develop' into develop 2024-05-27 10:13:25 +02:00
83e770fb00 DAS 2024-05-27 10:13:21 +02:00
a2de1582cc Merge branch 'refs/heads/develop' into feature/Spring5
# Conflicts:
#	ems-core/src/main/java/it/integry/ems/sync/SyncManager.java
2024-05-27 09:42:13 +02:00
0296fc1666 [ROSSSOGARGANO]
- inserimento automatico barcode_ul
[CARELLI - STEUP]
gestiti nuovi campi segnalazioni
2024-05-27 09:40:56 +02:00
4fd700d771 [ROSSSOGARGANO]
- inserimento automatico barcode_ul
[CARELLI - STEUP]
gestiti nuovi campi segnalazioni
2024-05-27 09:40:50 +02:00
cc5401f193 Unificata e migliorata logica di creazione delle mail di errore con un template unico 2024-05-24 18:50:11 +02:00
c0654f4ab3 Merge remote-tracking branch 'origin/develop' into develop 2024-05-24 17:56:54 +02:00
475fbe7c2c Finish MRP_RimossoCodMdep 2024-05-24 17:33:26 +02:00
842cece89f Merge branch 'develop' into feature/MRP_RimossoCodMdep 2024-05-24 17:33:07 +02:00
035fe7c8bc [MrpDailyMaterialReqService]
- Commentato toMatch con il codMdep
2024-05-24 17:32:59 +02:00
7e54ca7b92 Merge tag 'Materica_CrmService_FixSalvaAttivita' into develop
Finish Materica_CrmService_FixSalvaAttivita
2024-05-24 17:30:23 +02:00
4892d75946 Finish Materica_CrmService_FixSalvaAttivita 2024-05-24 17:30:22 +02:00
3c821317f5 [CrmService]
- Fix effectiveTime null
- Pulizia codice
2024-05-24 17:30:09 +02:00
8073f9cd28 Merge branch 'develop' into feature/MRP_RimossoCodMdep 2024-05-24 17:26:35 +02:00
55933b974e [VGALIMENTI] Creato tracciato per tosca 2024-05-24 15:29:33 +02:00
29e4748521 Migliorie servizio variazioni 2024-05-24 11:50:04 +02:00
b192f0db5d Finish StampaOrdineTwoB 2024-05-24 11:09:58 +02:00
5e975a62b9 Merge branch 'develop' into feature/StampaOrdineTwoB 2024-05-24 11:09:53 +02:00
9eec9b81ae Merge branch 'refs/heads/develop' into feature/Feature-variazioni2 2024-05-24 10:43:11 +02:00
65cbe8644b [AGRIBOOK] Fix query cronologia raccolte 2024-05-24 09:28:05 +02:00
997cd9ee31 Gestito correttamente ritorno importazione listino MS 2024-05-23 16:29:52 +02:00
78b68dc135 Merge remote-tracking branch 'origin/develop' into develop 2024-05-23 15:30:29 +02:00
0b62b93484 Modifica messaggio errorre import documenti STEF 2024-05-23 15:30:22 +02:00
3831cfd4c7 Esportazione documenti DAS Accise 2024-05-23 15:30:15 +02:00
efa2b3a8af Modifica messaggio errorre import documenti STEF 2024-05-23 15:29:43 +02:00
862ca8fbbd Merge remote-tracking branch 'origin/develop' into develop 2024-05-23 15:19:18 +02:00
6cca2bf89e Importazione packing list Eviosys 2024-05-23 15:19:09 +02:00
2620d061b4 sistemate note listino nella procedura di aggiornamento massiva 2024-05-23 15:17:02 +02:00
bf4a4359f7 Merge remote-tracking branch 'origin/develop' into develop 2024-05-23 12:32:43 +02:00
075d441ecc aggiunto campo iban nella tabella jtb_flav 2024-05-23 12:30:40 +02:00
ed0a654e9a Merge branch 'develop' into feature/MRP_RimossoCodMdep 2024-05-23 12:23:59 +02:00
a37a878c92 Finish OrdiKids 2024-05-23 12:00:31 +02:00
32d888472f Merge branch 'develop' into feature/OrdiKids 2024-05-23 11:36:47 +02:00
68f7123eec - Aggiunto NomeNegozioRequired nei settings di Ordikids
- Creazione migration setup NomeNegozioRequired
2024-05-23 11:36:32 +02:00
099093c66a Aggiornato metodo di lettura file xlsx 2024-05-23 10:56:46 +02:00
921ca80eef Merge branch 'refs/heads/develop' into feature/Feature-variazioni2 2024-05-23 10:47:53 +02:00
8796b14d39 Modifica procedura Trasporti Verttore 2024-05-22 18:16:22 +02:00
01737e7fa8 Merge remote-tracking branch 'origin/develop' into develop 2024-05-22 18:16:05 +02:00
2cb14e2452 Modifica Maggio chiusura commessa 2024-05-22 18:15:59 +02:00
f18aacd809 stampa ordine con immagini 2024-05-22 17:05:41 +02:00
a805edc181 Merge branch 'develop' into feature/OrdiKids 2024-05-22 09:36:39 +02:00
1bb2416059 Merge branch 'master' into develop 2024-05-21 18:27:23 +02:00
2342bbf4d4 Finish FixBooleanDefaultValue 2024-05-21 18:27:22 +02:00
13bc0e665e Corretto valore default per campi boolean nelle entity 2024-05-21 18:27:16 +02:00
396b6b7d80 Merge tag 'Hotfix-60' into develop
Finish Hotfix-60
2024-05-21 17:45:47 +02:00
9c09c36a0b Finish Hotfix-60 2024-05-21 17:45:46 +02:00
c4dae52dff Sistemato problema default su flag_add_trasp 2024-05-21 17:45:28 +02:00
5f96e7b0dd sistemata migration 2024-05-21 16:11:20 +02:00
5a2e7b75b4 Aggiunto nuovo campo nella lista degli articoli 2024-05-21 15:51:43 +02:00
1d39fb8ad1 Query Custom Qtà multipla su smetar 2024-05-21 15:07:38 +02:00
9c0e1258a3 Aggiunto numero minimo di capi ordinabile per colore 2024-05-21 13:51:23 +02:00
513a3ad610 Merge branch 'develop' into feature/MRP_RimossoCodMdep 2024-05-21 11:40:10 +02:00
c7f17f771b aggiunta linea dell'ordine di lavoro 2024-05-21 11:39:48 +02:00
a9fd75ff52 - Commentato setCodMdep 2024-05-21 09:45:22 +02:00
ef3e7d0fa6 Merge branch 'master' into develop 2024-05-20 16:46:04 +02:00
9c802252c6 Finish ModifVtbViaggi 2024-05-20 16:46:03 +02:00
4928fd1f0c Aggiunte colonne posizione e confermato in vtb_viaggi 2024-05-20 16:45:55 +02:00
9d80c66605 modificato report riepilogo documenti di vendita 2024-05-20 13:22:15 +02:00
8607c70bbe Finish Hotfix-59 2024-05-20 12:31:55 +02:00
a7d235e53a Merge tag 'Hotfix-59' into develop
Finish Hotfix-59
2024-05-20 12:31:55 +02:00
0ca0182687 Set flag_calc_peso_intra a N 2024-05-20 12:31:44 +02:00
2190cf2221 Set flag_calc_peso_intra a N 2024-05-20 12:31:31 +02:00
e86fdce970 Merge branch 'refs/heads/develop' into feature/Feature-variazioni2 2024-05-20 10:07:30 +02:00
63b067cb7e Corretti nomi colonne in MtbLisv 2024-05-17 19:02:27 +02:00
abf274f0c5 Kit mannutenzione SMETAR 2024-05-17 18:43:35 +02:00
fd01e0446d Sistemata importazione promozioni apulia 2024-05-17 13:52:32 +02:00
4a371cda80 se l'attività viene pianificata ad un solo utente modificare l'utete sull'attività 2024-05-17 13:35:07 +02:00
d1da0d0f9e Merge remote-tracking branch 'origin/develop' into develop 2024-05-17 12:41:42 +02:00
6fe356bad7 sistemata query 2024-05-17 12:41:38 +02:00
40d9aa1790 Aggiunta parametro per permettere stampa di più copie in pdf 2024-05-17 10:37:57 +02:00
b7cac443c1 sistemata sintassi 2024-05-17 10:29:16 +02:00
93fbd9d154 Fix query storico raccolte agribook 2024-05-17 09:48:39 +02:00
13a5ce024e Merge branch 'refs/heads/develop' into feature/Feature-variazioni2 2024-05-16 18:59:18 +02:00
a60a6c028c Merge branch 'master' into develop 2024-05-16 15:12:58 +02:00
37bb46db79 Finish Hotfix-59 2024-05-16 15:12:57 +02:00
db56a05559 sistemata query per giacenza progressiva 2024-05-16 15:12:51 +02:00
a35003d750 migration getlistiniVendita 2024-05-16 15:12:25 +02:00
cd3caf9b76 [Inventario]
- Aggiunto userName nella RowInventarioDto per mostrarlo nel modulo inventario
- Creata join sulla getInventari
2024-05-16 13:11:17 +02:00
864f4303a0 Finish Hotfix-59 2024-05-16 13:06:38 +02:00
c4eadb03b9 Merge branch 'master' into develop 2024-05-16 13:06:38 +02:00
a9e7ccb870 -risolta verifica inventario
-inserite cancellazioni listini di apulia
2024-05-16 13:06:32 +02:00
ff518e3525 aggiunti nuovi campi nei listini e sistemata verifica inventario 2024-05-16 11:00:45 +02:00
03b03e8831 Merge branch 'develop' into feature/Spring5 2024-05-15 17:17:22 +02:00
ee96e8e91b aggiunta cancellazione movimenti contabili 2024-05-15 16:39:30 +02:00
31e1df6786 Migliorato recupero scontrini 2024-05-15 16:39:14 +02:00
f75c2c7fc9 Aggiunta campo flag_calc_peso_intra su tipi documento e flag_sezione su dtb_docr 2024-05-15 16:11:00 +02:00
3b115b5e08 Aggiunta campo flag_calc_peso_intra su tipi documento e flag_sezione su dtb_docr 2024-05-15 16:10:52 +02:00
542a0d7a8a Finish Hotfix-58 2024-05-15 10:38:33 +02:00
0c869066b4 Merge tag 'Hotfix-58' into develop
Finish Hotfix-58
2024-05-15 10:38:33 +02:00
6ec4bf91e0 Modifica CMR per problema su note contatto mancanti 2024-05-15 10:38:17 +02:00
e8d316cb83 Finish Hotfix-58 2024-05-15 09:42:21 +02:00
0c8d4e2dc4 Merge branch 'master' into develop 2024-05-15 09:42:21 +02:00
63c7ed7faf aggiunta regola per completare cod_art_for anche nella mtb_lisa 2024-05-15 09:42:15 +02:00
82bcf9ee15 Fix deserializzazione entity 2024-05-14 17:33:19 +02:00
e8d116cbb8 Merge branch 'develop' into feature/Spring5 2024-05-14 17:33:15 +02:00
eeac0a0348 Finish Hotfix-58 2024-05-14 16:44:06 +02:00
2a01d0ed7d Merge branch 'master' into develop 2024-05-14 16:44:06 +02:00
0567665ca1 Fix su salvataggio elementi object storage 2024-05-14 16:44:00 +02:00
1b38a00056 Riattivato filtro per conversione entity in json 2024-05-14 16:06:04 +02:00
47cfdb6e7f Merge branch 'master' into develop 2024-05-14 12:19:12 +02:00
a86664ee2e Finish Hotfix-58 2024-05-14 12:19:11 +02:00
e420cd2d54 Fix menu 2024-05-14 12:19:06 +02:00
b1d1c548b4 Merge branch 'develop' into feature/Spring5 2024-05-14 12:02:34 +02:00
3a99747e2a [WMS]
- corrette sottrazioni di variabile null
[CARELLI - STEUP]
- download descrizioni attivita in login
- salvataggio priorita e persona rif
2024-05-14 12:02:08 +02:00
66a3d9c140 Cose 2024-05-14 11:51:39 +02:00
f92e35ccc6 Merge branch 'refs/heads/develop' into feature/Feature-variazioni2 2024-05-14 11:44:47 +02:00
1d859f3c73 Merge branch 'refs/heads/develop' into feature/Spring5 2024-05-14 11:43:11 +02:00
55c97f3441 Finish Hotfix-58 2024-05-14 11:39:12 +02:00
c6d88346d1 Merge branch 'master' into develop 2024-05-14 11:39:12 +02:00
03b3a25b86 Migration per AnsiPadding 2024-05-14 11:39:05 +02:00
5c46e4aed5 Aggiunta campo Flag_calc_peso_intra 2024-05-13 18:33:06 +02:00
7743569034 Aggiunta campo Flag_calc_peso_intra 2024-05-13 18:32:59 +02:00
b1d10af821 Aggiunta campo Flag_calc_peso_intra 2024-05-13 18:20:34 +02:00
cf526b8003 Aggiunta campo Flag_calc_peso_intra 2024-05-13 18:02:03 +02:00
4311b93611 Merge remote-tracking branch 'origin/develop' into develop 2024-05-13 18:01:53 +02:00
432e52536b Aggiunta campo Flag_calc_peso_intra 2024-05-13 18:01:44 +02:00
3f062c9370 Finish FixMES 2024-05-13 17:50:11 +02:00
9cc3abe964 Merge branch 'master' into develop 2024-05-13 17:50:11 +02:00
b1a7ea4482 Corretto inserimento data chiusura lotto in caso di terminazione linea 2024-05-13 17:50:00 +02:00
37219b4fb6 [AGRIBOOK] Modificate logiche gestione previsione raccolta 2024-05-13 17:30:58 +02:00
4d38fd8fb3 Aggiunta campo Flag_calc_peso_intra 2024-05-13 15:27:14 +02:00
0376b4c790 Aggiunta campo Flag_calc_peso_intra 2024-05-13 15:27:02 +02:00
88b73f950d Merge branch 'master' into develop 2024-05-13 11:17:12 +02:00
21ab0fdc0d Finish Hotfix-58 2024-05-13 11:17:11 +02:00
21021cec1f Aggiunta setup per controllo ordini multipli su mes 2024-05-13 11:17:02 +02:00
4187aabd11 Modifiche spring5 2024-05-13 11:07:19 +02:00
7d23d4c288 Merge branch 'develop' into feature/Spring5 2024-05-13 09:22:24 +02:00
d7da677fdb [Monitoraggio Linee]
- Migration per FLAG_SUGGESTCODEPARTITAMAG_ORDLAV
- Migration per COD_MART_SFRIDO, ANNOTAZIONI_SFRIDO, ETICHETTA_SFRIDO
2024-05-10 18:16:07 +02:00
53d546f99a upload allegati 2024-05-10 17:19:37 +02:00
8fce6a446f Gestione quantità multipla 2024-05-10 16:33:34 +02:00
08d48a4601 Aggiunto controllo per qta lav null in dtb ord steps 2024-05-10 15:45:29 +02:00
d31d55b00e [AGRIBOOK] Aggiunta lista prevRaccNumeroSettimane in retrieveOrders 2024-05-10 15:43:14 +02:00
ec4d0076b6 Settato dateTimeRow in fase di salvataggio colli 2024-05-10 15:40:04 +02:00
1365aadaf0 Aggiunta importazione sugli scontrini di reso il riferimento dello scontrino di vendita 2024-05-10 15:31:01 +02:00
957bcfb52f Ripristinato update jackson 2024-05-10 13:04:14 +02:00
007f0c5808 Merge branch 'refs/heads/develop' into feature/Spring5 2024-05-10 11:44:55 +02:00
fa9c1f83eb Sostituito check di annotation Master tramite il nuovo scan mapping 2024-05-10 11:11:09 +02:00
98d479e82c Merge branch 'develop' into feature/Spring5
# Conflicts:
#	pom.xml
2024-05-10 11:03:27 +02:00
9fa386ea8c Ricostruito metodo di calcolo dei query fields da inserire nel prepared statement in fase di insert entity 2024-05-10 10:51:05 +02:00
df20c13204 Aggiunta vista per fabbisogni sfusi biolevante 2024-05-09 17:08:49 +02:00
2d24a1beb3 Aggiornato swagger2 alla versione 3 2024-05-09 15:45:06 +02:00
ecb6175c64 Merge remote-tracking branch 'origin/develop' into develop 2024-05-09 15:12:48 +02:00
5b1a866996 Revert versione di Jackson 2024-05-09 15:12:40 +02:00
1004c66965 Aggiunta quantità multipla ordinabile in importazione listini di acquisto 2024-05-09 13:20:01 +02:00
1fbf875c16 Gestita assegnazione data consegna del cliente per MERCADONA 2024-05-09 13:19:02 +02:00
ad8109ed65 Gestito ordinamento DESC su acquisizione cliente in allega fatture passive 2024-05-09 13:18:17 +02:00
05ae4be472 Merge remote-tracking branch 'origin/develop' into develop 2024-05-09 13:18:06 +02:00
406513488b Gestito ordinamento DESC su acquisizione cliente in allega fatture passive 2024-05-09 13:18:01 +02:00
71fdc5c9ea Merge branch 'develop' into feature/Spring5 2024-05-09 11:52:23 +02:00
d2e68c7c9b [IMPORTANT] Aggiornamento di Sping Framework alla versione 5 2024-05-09 11:42:44 +02:00
2bdbbcfa75 aggiunte note ordine 2024-05-09 10:53:03 +02:00
6ba4d0d310 Configurazione per swagger 2.9.2 2024-05-08 19:32:14 +02:00
e14cbb49c3 [IMPORTANT] Aggiornamento di alcune librerie (MinIO, Guava, Firebase, Jackson) 2024-05-08 18:15:32 +02:00
b5a7ba0054 Controllo regola checkCanDeleteOrder se steps non presenti 2024-05-08 16:44:24 +02:00
74ec8ff9eb Aggiunta voce di menu fabb_olio_linea 2024-05-08 11:04:39 +02:00
d1726b65ff [WMS] Refactoring per autenticatione OAuth 2024-05-07 18:55:12 +02:00
91994256d7 Correzione query getRowDb 2024-05-07 18:08:26 +02:00
cdc3f0076a Update su funzione f_getCostSpes e aggiunta setup per escludere i colli dalla giacenza mrp 2024-05-07 16:57:03 +02:00
0fa7eb5568 Spostata modifica MES_GetWorkOrders in nuova migrazione 2024-05-07 15:50:06 +02:00
ca0559bf7f Eliminta valorizzazione di data doc nella registrazione delle distinte perché a causa delle importFromParent andava a sovrascrivere ( solo nel caso di scadenze già chiuse prima della registrazione delle distinte) la data scad presente nella ctb_scad 2024-05-07 13:55:09 +02:00
1a02d73154 aggiunta setup 2024-05-07 13:39:34 +02:00
e899ea74b9 Aggiunto controllo su import ordini EDI che permette al cliente MERCADONA di assegnare la data consegna del file piuttosto che calcolarla 2024-05-06 16:35:32 +02:00
f8623173cb modifiche a procedura di allinemanto posture 2024-05-06 16:15:31 +02:00
67c9211123 Modifiche creazione ordini mes smetar e regole di cancellazione lotto 2024-05-06 12:47:07 +02:00
e76bc1e38e correzioni creazione documenti di carico scarico e accettazione ortofrutta 2024-05-03 19:38:28 +02:00
49576b0558 Gestione note fattura in generazione xml fattura elettronica 2024-05-03 18:50:27 +02:00
9a6b6f88d9 Fix query attività da installare 2024-05-03 10:10:32 +02:00
8388e939d3 Servizio accettazione materia prima ortofrutta 2024-05-02 20:02:26 +02:00
932bc290d4 salvato json che arriva da Tuidi 2024-05-02 18:59:18 +02:00
fdc7f9bf10 nuova gestione cespiti 2024-05-02 17:06:29 +02:00
e88489166b Aggiunta setup 2024-05-02 16:49:58 +02:00
83ae87b5d4 Merge remote-tracking branch 'origin/develop' into develop 2024-04-30 18:53:33 +02:00
1e278e4d7b [AGRIBOOK] Implementate settings 2024-04-30 18:53:24 +02:00
9cb671fc43 Aggiunto ordinamento per cod_anag desc in acquisizione codice fornitore fatture passive 2024-04-30 17:33:18 +02:00
aedf5cde77 Merge remote-tracking branch 'origin/develop' into develop 2024-04-29 16:52:57 +02:00
2a5831c971 Modifica export documenti STEF 2024-04-29 16:52:52 +02:00
84cc42cc40 modifiche a procedura di importazione listini di apulia 2024-04-26 17:11:16 +02:00
4cf9437688 nuovo invio variazioni pianificabile 2024-04-26 14:45:39 +02:00
eb15585c03 Merge branch 'develop' into feature/Feature-variazioni2 2024-04-26 12:56:21 +02:00
144b26bd5d modificata regola affinchè parta anche quando codJfas è valorizzato 2024-04-26 12:56:04 +02:00
0fbfffbdea aggiunta vista 2024-04-26 12:55:22 +02:00
892733b66d Export variazione 2024-04-26 12:49:35 +02:00
54735e3476 Merge branch 'develop' into feature/Feature-variazioni2 2024-04-26 10:03:21 +02:00
a599c46cfc Merge remote-tracking branch 'origin/develop' into develop 2024-04-24 19:46:48 +02:00
1c2ec14677 Aggiunto parametro lotto in CreateUDSRequestDTO 2024-04-24 19:46:41 +02:00
b0d18a151d Nascosto esegui per stato skipped in migrazioni 2024-04-24 17:00:45 +02:00
2d2d5d6bae Aggiunto pulsante per eseguire migrazioni su profilo specifico 2024-04-24 16:50:31 +02:00
374fe08fe2 Gestione criterio prod modificato 2024-04-24 13:02:43 +02:00
3f8bb86e15 Migrations Gestione criterio prod modificato 2024-04-24 11:52:44 +02:00
1e2190b1ad Aggiunto controllo su esistenza trigger in migration 2024-04-23 19:36:05 +02:00
09bb658367 Merge tag 'Biolevante_MRP_ReverseOrderGestione' into develop
Finish Biolevante_MRP_ReverseOrderGestione
2024-04-23 18:14:30 +02:00
c91e4f83e0 Finish Biolevante_MRP_ReverseOrderGestione 2024-04-23 18:14:30 +02:00
8c0fbede36 Migrations Gestione criterio prod modificato 2024-04-23 18:06:51 +02:00
61788b2c7f Fix registrazione imballi WMS 2024-04-23 18:04:51 +02:00
8ff0ed5756 nuovo invio variazioni pianificabile 2024-04-23 17:41:06 +02:00
e242956c61 nuovo invio variazioni pianificabile 2024-04-23 17:29:24 +02:00
58e8c56d37 [MrpDailyMaterialReq]
- Reso l'ordinamendo gestione DESC come da richiesta
- Pulizia codice
2024-04-23 16:35:31 +02:00
9b615738f3 Registrazione imballi WMS 2024-04-23 16:31:20 +02:00
26b19bb545 invio variazioni pianificato 2024-04-23 15:15:30 +02:00
8577366285 revisione file 2024-04-23 15:00:34 +02:00
65b82c29d4 aggiunta setup 2024-04-23 13:44:39 +02:00
e86d728acd Merge tag 'Biolevante_MRP_AggiuntaPriorita' into develop
Finish Biolevante_MRP_AggiuntaPriorita
2024-04-23 13:18:24 +02:00
87b3030b9e Finish Biolevante_MRP_AggiuntaPriorita 2024-04-23 13:18:23 +02:00
dfc61ec50c [MrpDailyMaterialReq]
- Aggiunto Priorita al DTO
- Inserito nelle varie query il campo priorita come numero fisso per impostare l'ordine come da richiesta
2024-04-23 13:18:12 +02:00
70b72d950a Finish Feature-ListinoRif 2024-04-23 12:38:48 +02:00
6302fbd5a9 Merge branch 'develop' into feature/Feature-ListinoRif 2024-04-23 12:38:42 +02:00
e1a3dc034e modificata logica dei listini di riferimento aggiunta versione del listino rif 2024-04-23 12:38:29 +02:00
4e934ed31c Aggiunto campo flag_esclusi_gruppo in fabbisogni 2024-04-23 11:49:10 +02:00
3f5d3a9d64 Aggiunto campo flag_esclusi_gruppo in fabbisogni 2024-04-23 11:49:02 +02:00
e72b00fe17 Sistemato problema valorizzazione cod_barre_imb 2024-04-23 09:38:30 +02:00
5e73631377 Sistemato problema valorizzazione cod_barre_imb 2024-04-23 09:38:21 +02:00
df04dba03f Finish Hotfix-57 2024-04-22 17:22:06 +02:00
ed35819ae5 Merge tag 'Hotfix-57' into develop
Finish Hotfix-57
2024-04-22 17:22:06 +02:00
2aac7353e2 Salvataggio invenatario in Farmmes Scrofaie 2024-04-22 17:21:47 +02:00
1cb380de45 Carelli: aggiunto intercode per alcune tipologie di promozioni 2024-04-22 15:31:27 +02:00
27bc8a2b32 Finish Hotfix-56 2024-04-22 12:55:48 +02:00
2e367f398f Merge tag 'Hotfix-56' into develop
Finish Hotfix-56
2024-04-22 12:55:48 +02:00
f022e89a73 Salvataggio TRASFERIMENTO_A_CESPITE in Farmmes Scrofaie 2024-04-22 12:55:29 +02:00
5b46046b87 Finish Hotfix-56 2024-04-22 12:02:34 +02:00
b62104ae91 Merge branch 'master' into develop 2024-04-22 12:02:34 +02:00
76a2e5b8ba Sistemato invio variazioni nel caso in cui nello stesso giorno c'è un inizio e una fine promo 2024-04-22 10:44:51 +02:00
4f9eb6ea13 Merge branch 'master' into develop 2024-04-22 09:58:04 +02:00
0c0e0d2ba6 Finish Hotfix-56 2024-04-22 09:58:03 +02:00
fc51f4fc74 Fix check versione menu 2024-04-22 09:57:54 +02:00
8583f29082 Gestita cancellazione TRASFERIMENTO_A_CESPITE in Farmmes Scrofaie 2024-04-19 18:20:26 +02:00
fc6a944f61 Merge remote-tracking branch 'origin/develop' into develop 2024-04-19 17:30:57 +02:00
1d0234f9ed Registrazione imballi WMS 2024-04-19 17:30:48 +02:00
75bd2abe12 Finish feature/Carelli_Inventari_FixOrdinamentoERimozionePagination 2024-04-19 16:42:50 +02:00
06bce9f7e2 [Inventario]
- Fix ordinamento inventari (prima erano ordinati ma per profilo/db e non globalmente)
- Rimozione pagination
2024-04-19 16:42:40 +02:00
2a9bebc416 Merge remote-tracking branch 'origin/develop' into develop 2024-04-19 15:57:16 +02:00
0a021baf09 Gestione utente su CLATV 2024-04-19 15:57:10 +02:00
34331c2312 Fix query ArtsInGiacenza 2024-04-19 15:54:00 +02:00
8eef4083c8 In aggiunta cronologia delle raccolte in retrieveOrders di Agribook 2024-04-19 15:47:04 +02:00
869da4fa6c Ingrandita mtb_partita_mag.descrizione, sistemato report scheda costi aggiunta percentuale provvigioni, aggiunta nuova voce di menù 2024-04-19 13:54:00 +02:00
7048d0a4d9 varie migration per modifiche ordini di acquisto carelli 2024-04-18 18:57:06 +02:00
e029bb2e89 Fix data StampaSchedaCosti 2024-04-18 16:02:27 +02:00
6cd612fbb8 Modifica query getActivity 2024-04-18 15:40:40 +02:00
41c9f25c6b Merge remote-tracking branch 'origin/develop' into develop 2024-04-18 15:23:57 +02:00
3b4ade02a5 Aggiunto dataIniz in stampaSchedaCosti 2024-04-18 15:21:57 +02:00
bf4a70b0e5 Merge remote-tracking branch 'origin/develop' into develop 2024-04-18 15:16:15 +02:00
30ec953aa1 Scarichi manuali da WINGEST 2024-04-18 15:16:05 +02:00
5edade9076 Merge remote-tracking branch 'origin/develop' into develop 2024-04-18 15:06:35 +02:00
225501b1a5 Fix query stampaSchedaCosti 2024-04-18 15:06:32 +02:00
9df682b4ef Merge branch 'master' into develop 2024-04-18 13:27:21 +02:00
9d6a23658f Finish Hotfix-56 2024-04-18 13:27:21 +02:00
408b106c2f tornare indietro con la modifica della getlistinoacquisto 2024-04-18 13:27:15 +02:00
713989bcb9 Modificato tipo di errore 2024-04-18 12:25:16 +02:00
7ce4703235 Merge branch 'master' into develop 2024-04-18 11:03:18 +02:00
a1013c878a Finish Hotfix-56 2024-04-18 11:03:18 +02:00
27ff4b1d69 sistemata setup 2024-04-18 11:03:13 +02:00
61d03a9ece aggiornamento getListiniAcquisto 2024-04-18 11:02:30 +02:00
baf5d9151f Finish Hotfix-56 2024-04-18 10:10:35 +02:00
eb02131482 Merge branch 'master' into develop 2024-04-18 10:10:35 +02:00
504910cbc7 Import Gelorent: aggiunta setup con codice fornitore e gestita nuova tabella per intercode.
Cambio tipo documento modificata la data di registrazione del movimento alla data di importazione
2024-04-18 10:10:29 +02:00
47c0fadb40 Calcolo disponbilità e ANSI NULL a Follies 2024-04-18 09:03:17 +02:00
203b14064f Calcolo disponbilità e ANSI NULL a Follies 2024-04-17 18:31:19 +02:00
fe7e9aee68 Calcolo disponbilità e ANSI NULL a Follies 2024-04-17 18:21:16 +02:00
bf1307c3a8 Calcolo disponbilità 2024-04-17 18:21:00 +02:00
e65a9eab8f Fix harvestHystoryDto 2024-04-17 17:54:06 +02:00
fb27d1a17c In inserimento tiket aggiunto esito "DA FARE" per sotto attività 2024-04-17 17:05:19 +02:00
6ffc809fac Finish Hotfix-56 2024-04-16 18:01:42 +02:00
8a11d7b4b6 Merge branch 'master' into develop 2024-04-16 18:01:42 +02:00
1336cbda98 sistemata cast 2024-04-16 18:01:29 +02:00
f30cf71f27 Finish Hotfix-56 2024-04-16 16:14:55 +02:00
8ff6dc4cd4 Merge branch 'master' into develop 2024-04-16 16:14:55 +02:00
4a9681ae26 corretta numerazione del reverse 2024-04-16 16:14:49 +02:00
bf80b77374 Merge branch 'master' into develop 2024-04-16 13:57:27 +02:00
c9c8450cbb Finish Hotfix-56 2024-04-16 13:57:26 +02:00
df0d3d4972 modificata la lettura della qta_cnf e inserita setup per leggere la qta presente nel listino anche quando è 1 2024-04-16 13:56:02 +02:00
026f76cb4a Rimosso suffisso QM al last upd menu 2024-04-16 11:18:47 +02:00
338c13947d Modifica vista analisi costi produzione 2024-04-15 19:10:53 +02:00
81eb1ec9a5 Lanci produzione: Filtro su num_fase in visualizzazione materiali 2024-04-15 13:17:04 +02:00
4b625ab9ea Personalizzazione stampa report ordine di produzione di default 2024-04-12 17:57:07 +02:00
9f76cf6762 Passare parametri obbligatori 2024-04-12 12:52:35 +02:00
427839fe52 Merge remote-tracking branch 'origin/develop' into develop 2024-04-12 09:58:32 +02:00
6146eb074b aggiunta migration 2024-04-12 09:58:30 +02:00
69309bf40b Merge branch 'master' into develop 2024-04-11 17:04:18 +02:00
8a48701cbf Finish Hotfix-56 2024-04-11 17:04:18 +02:00
a369bf0297 Fix localdate 2024-04-11 17:04:09 +02:00
d863468175 cancellata migration 2024-04-11 16:36:12 +02:00
abf19e0c0d sistemata migration 2024-04-11 16:27:39 +02:00
4d6998371f Varie migration 2024-04-11 16:04:43 +02:00
ce600f5bd0 PIG-UP: sistemato problema righe duplicate 2024-04-11 11:25:41 +02:00
912a208dfe gestito correttamente il cambio del tipo documento nella generazione dell'autofattura 2024-04-11 10:19:26 +02:00
cf5f52e696 inserimenti setup 2024-04-10 19:18:44 +02:00
af40f38ca3 Finish Hotfix-56 2024-04-10 17:51:07 +02:00
bc9de1344d Merge branch 'master' into develop 2024-04-10 17:51:07 +02:00
5c33542b35 Sistemare val premio nell'importazione dei listini di apulia e aggiunta possibilità di importare la percentuale del premio 2024-04-10 17:50:59 +02:00
64d077df8b Sistemare val premio nell'importazione dei listini di apulia e aggiunta possibilità di importare la percentuale del premio 2024-04-10 17:48:57 +02:00
5c7254a827 migliorato messaggio d'errore 2024-04-10 16:02:01 +02:00
10508da2f4 Merge remote-tracking branch 'origin/develop' into develop 2024-04-10 15:10:18 +02:00
248ecaf778 [WMSGenericService]
- Se presente viene presa la maxDataCollo dei colli di carico, altrimenti la data odierna, come data_collo degli ordini di scarico
2024-04-10 15:10:07 +02:00
d42c139490 Merge branch 'master' into develop 2024-04-10 13:14:32 +02:00
051f3b5ce5 Finish Hotfix-56 2024-04-10 13:14:31 +02:00
4d1b79b1b5 Fix numIreg da short a int 2024-04-10 13:14:26 +02:00
446a57b1e2 Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240408151803.java
2024-04-10 10:45:43 +02:00
22d812a305 Migration per AnsiPadding 2024-04-10 10:45:09 +02:00
21cc84f7a1 Migration per AnsiPadding 2024-04-10 10:45:00 +02:00
7604bd0b4a Merge branch 'master' into develop 2024-04-10 10:34:31 +02:00
d8e4f45827 Piccola utility db 2024-04-10 10:30:17 +02:00
9a75993848 cvw_mov_black_list 2024-04-09 18:44:34 +02:00
daf4bc347e Sistemati controlli su anno contabile a cavallo, aggiunga migration per setupGest, importazione Rosso gargano 2024-04-09 18:12:45 +02:00
840805f39f Merge remote-tracking branch 'origin/develop' into develop 2024-04-09 18:12:01 +02:00
4c4a3a99c2 Sistemato problema codice EAN imballo su EAN 128 della funzione f_getEAN128UL 2024-04-09 17:02:18 +02:00
6f0ec7ad47 Sistemato problema codice EAN imballo su EAN 128 della funzione f_getEAN128UL 2024-04-09 17:02:01 +02:00
92c10d50c8 [UtilityService]
- Fix se il currentObject è null
2024-04-09 15:39:42 +02:00
44e78b336f aggiornamento vista 2024-04-09 14:45:45 +02:00
688af6c815 Refactor UtilityController 2024-04-09 13:19:57 +02:00
19bdd5e160 Merge branch 'master' into develop 2024-04-09 12:07:31 +02:00
5ae6961b2f Aumentata dimensione descrizione CTB_BENI 2024-04-09 10:40:18 +02:00
b2f7dd77bb Merge remote-tracking branch 'origin/develop' into develop 2024-04-09 10:38:17 +02:00
1ebb61c1b4 Aumentata dimensione descrizione CTB_BENI 2024-04-09 10:38:08 +02:00
ea4d196ca2 Aumentata dimensione descrizione CTB_BENI 2024-04-09 10:37:52 +02:00
caad874c62 Merge remote-tracking branch 'origin/develop' into develop 2024-04-09 09:57:30 +02:00
bd8942617f Aggiunto servizio per permettere all'utente di registrarsi da task 2024-04-09 09:57:24 +02:00
033dee9393 Merge remote-tracking branch 'origin/develop' into develop 2024-04-08 17:39:29 +02:00
bdafc2ad36 allineamento query setup 2024-04-08 17:39:25 +02:00
e0e233b50e Fix user service 2024-04-08 15:30:45 +02:00
79022c1612 Merge branch 'master' into develop 2024-04-08 15:22:13 +02:00
961a7bd278 allineamento query setup 2024-04-08 15:19:00 +02:00
efd595f45b Merge remote-tracking branch 'origin/develop' into develop 2024-04-08 12:25:14 +02:00
d683d75924 modifiche per permettere all'utene di accedere a task 2024-04-08 12:13:14 +02:00
119bcd82bf Attivata paginazione in tabella migrazioni 2024-04-08 12:05:33 +02:00
4fa27e5ec0 Modifica gitignore 2024-04-08 09:42:36 +02:00
1578 changed files with 81249 additions and 26049 deletions

16
.gitignore vendored
View File

@@ -35,14 +35,14 @@
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
.idea/artifacts
.idea/compiler.xml
.idea/jarRepositories.xml
.idea/modules.xml
.idea/*.iml
.idea/modules
*.iml
*.ipr
.idea/artifacts
.idea/compiler.xml
.idea/jarRepositories.xml
.idea/modules.xml
.idea/*.iml
.idea/modules
*.iml
*.ipr
# CMake
cmake-build-*/

8
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

6
.idea/git_toolbox_blame.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GitToolBoxBlameSettings">
<option name="version" value="2" />
</component>
</project>

View File

@@ -0,0 +1,8 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="AutoCloseableResource" enabled="true" level="WARNING" enabled_by_default="true">
<option name="METHOD_MATCHER_CONFIG" value="java.util.Formatter,format,java.io.Writer,append,com.google.common.base.Preconditions,checkNotNull,org.hibernate.Session,close,java.io.PrintWriter,printf,java.io.PrintStream,printf,java.lang.foreign.Arena,ofAuto,java.lang.foreign.Arena,global,com.annimon.stream.Stream,of" />
</inspection_tool>
</profile>
</component>

6
.idea/jenkinsSettings.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Jenkins.Application.Settings">
<option name="serverUrl" value="https://ci.studioml.it" />
</component>
</project>

3
.idea/misc.xml generated
View File

@@ -8,5 +8,8 @@
</list>
</option>
</component>
<component name="PWA">
<option name="wasEnabledAtLeastOnce" value="true" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
</project>

View File

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

View File

@@ -0,0 +1,16 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Tomcat 9 (RistoCash)" type="Remote">
<module name="ems-engine" />
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" />
<option name="HOST" value="127.0.0.1" />
<option name="PORT" value="8001" />
<option name="AUTO_RESTART" value="false" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="8001" />
<option name="LOCAL" value="false" />
</RunnerSettings>
<method v="2" />
</configuration>
</component>

View File

@@ -0,0 +1,16 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Tomcat #1 (GestSRV)" type="Remote" folderName="Carelli">
<module name="ems-engine" />
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" />
<option name="HOST" value="172.16.30.238" />
<option name="PORT" value="8001" />
<option name="AUTO_RESTART" value="false" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="8001" />
<option name="LOCAL" value="false" />
</RunnerSettings>
<method v="2" />
</configuration>
</component>

View File

@@ -0,0 +1,16 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Tomcat #1 (Rosso Gargano)" type="Remote" folderName="Rosso Gargano">
<module name="ems-engine" />
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" />
<option name="HOST" value="192.168.1.13" />
<option name="PORT" value="8001" />
<option name="AUTO_RESTART" value="false" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="8001" />
<option name="LOCAL" value="false" />
</RunnerSettings>
<method v="2" />
</configuration>
</component>

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

@@ -0,0 +1,16 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Tomcat #2 (GestSRV)" type="Remote" folderName="Carelli">
<module name="ems-engine" />
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" />
<option name="HOST" value="172.16.30.238" />
<option name="PORT" value="8002" />
<option name="AUTO_RESTART" value="false" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="8002" />
<option name="LOCAL" value="false" />
</RunnerSettings>
<method v="2" />
</configuration>
</component>

View File

@@ -0,0 +1,16 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Tomcat (AnydeskTunnel)" type="Remote">
<module name="ems-engine" />
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" />
<option name="HOST" value="servertomcat" />
<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

@@ -1,6 +1,6 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Tomcat (FAST)" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat" ALTERNATIVE_JRE_ENABLED="false">
<option name="COMMON_VM_ARGUMENTS" value="-DDISABLE_DROOLS_COMPILE=TRUE -Xms512m -Xmx2048m" />
<option name="COMMON_VM_ARGUMENTS" value="-DDISABLE_DROOLS_COMPILE=TRUE -Xms6G -Xmx6G -XX:MaxPermSize=1G -XX:PermSize=512M" />
<deployment>
<artifact name="ems-engine:war exploded">
<settings>

16
.idea/runConfigurations/Tosca_Cloud.xml generated Normal file
View File

@@ -0,0 +1,16 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Tosca Cloud" type="Remote" folderName="Tosca">
<module name="ems-engine" />
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" />
<option name="HOST" value="4.232.161.31" />
<option name="PORT" value="8001" />
<option name="AUTO_RESTART" value="false" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="8001" />
<option name="LOCAL" value="false" />
</RunnerSettings>
<method v="2" />
</configuration>
</component>

16
.idea/runConfigurations/Tosca_Verona.xml generated Normal file
View File

@@ -0,0 +1,16 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Tosca Verona" type="Remote" folderName="Tosca">
<module name="ems-engine" />
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" />
<option name="HOST" value="10.19.178.6" />
<option name="PORT" value="8001" />
<option name="AUTO_RESTART" value="false" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="8001" />
<option name="LOCAL" value="false" />
</RunnerSettings>
<method v="2" />
</configuration>
</component>

122
build/Jenkinsfile.groovy Normal file
View File

@@ -0,0 +1,122 @@
pipeline {
agent any
stages {
stage ('PreBuild Steps (Master)') {
when {
expression {
return env.GIT_BRANCH == "master"
}
}
steps {
echo "Creo version tag su Git"
bat 'build\\create_build_tag.bat'
}
}
stage('Maven Build') {
steps {
echo "${WORKSPACE}"
withMaven(jdk: 'JDK 17.0.6 x64', traceability: true, maven: 'Maven 3.9.5') {
bat(script: 'mvn clean install -t toolchains-jenkins.xml', returnStdout: true)
archiveArtifacts(artifacts: 'ems-engine/target/*.war*', onlyIfSuccessful: true)
}
}
}
stage('Publish Develop') {
when {
expression {
return env.GIT_BRANCH == "develop"
}
}
parallel {
stage('Tomcat update') {
stages {
stage('Update Tomcat 1') {
steps {
echo "Updating Tomcat9 from ${WORKSPACE}"
powershell returnStdout: true, script: "build\\update_tomcat.ps1 -serviceName \"Tomcat9\" -httpPort \"8081\" -updatedArtifactPath \"${WORKSPACE}\\ems-engine\\target\\ems-api.war\""
}
}
stage('Update Tomcat 2') {
steps {
echo "Updating Tomcat9 from ${WORKSPACE}"
powershell returnStdout: true, script: "build\\update_tomcat.ps1 -serviceName \"Tomcat9Backup\" -httpPort \"8082\" -updatedArtifactPath \"${WORKSPACE}\\ems-engine\\target\\ems-api.war\""
bat 'curl -k https://devservices.studioml.it/ems-api/updateWMSApp'
}
}
}
}
stage('Publish over FTP') {
steps {
echo "Publish over FTP"
}
}
}
}
stage('Publish Master') {
when {
expression {
return env.GIT_BRANCH == "master"
}
}
parallel {
stage('Tomcat update') {
stages {
stage('Update Tomcat 1') {
steps {
echo "Updating Tomcat9 from ${WORKSPACE}"
sshPublisher(publishers: [sshPublisherDesc(configName: 'Production Linux Tomcat Server (192.168.3.16)', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''sudo /usr/bin/systemctl stop tomcat9
rm -R tomcat9/webapps/ems-api
sudo /usr/bin/systemctl start tomcat9
/home/studioml/./wait_tomcat_startup.sh 8081''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/tomcat9/webapps', remoteDirectorySDF: false, removePrefix: 'ems-engine/target/', sourceFiles: 'ems-engine/target/*.war*')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
stage('Update Tomcat 2') {
steps {
echo "Updating Tomcat9 from ${WORKSPACE}"
sshPublisher(publishers: [sshPublisherDesc(configName: 'Production Linux Tomcat Server (192.168.3.16)', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''sudo /usr/bin/systemctl stop tomcat9backup
rm -R tomcat9backup/webapps/ems-api
sudo /usr/bin/systemctl start tomcat9backup
/home/studioml/./wait_tomcat_startup.sh 8082
sleep 10''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/tomcat9backup/webapps', remoteDirectorySDF: false, removePrefix: 'ems-engine/target/', sourceFiles: 'ems-engine/target/*.war*')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
bat 'curl -k https://services.studioml.it/ems-api/updateWMSApp'
}
}
}
}
stage('Publish over FTP') {
steps {
ftpPublisher alwaysPublishFromMaster: false,
continueOnError: false,
failOnError: false,
masterNodeName: '',
paramPublish: null,
publishers: [[configName: 'OVH Linux Web Server (51.38.112.23)',
transfers: [[asciiMode: false,
cleanRemote: false,
excludes: '',
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '/download/Aggiornamenti',
remoteDirectorySDF: false,
removePrefix: 'ems-engine/target/',
sourceFiles: 'ems-engine/target/*.war*']],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: true]]
}
}
}
}
}
}

View File

@@ -0,0 +1,43 @@
REM SET YEAR
set YEAR=%date:~6,4%
REM SET MONTH
set MONTH=%date:~3,2%
if %MONTH% LSS 10 set MONTH=%MONTH:~1,2%
if %MONTH% LSS 10 set MONTH=0%MONTH%
REM SET DAY
set DAY=%date:~0,2%
if %DAY% LSS 10 set DAY=%DAY:~1,2%
if %DAY% LSS 10 set DAY=0%DAY%
REM SET HOUR
set HOUR=%time:~0,2%
if %HOUR% LSS 10 set HOUR=%HOUR:~1,2%
if %HOUR% LSS 10 set HOUR=0%HOUR%
REM SET MINUTE
set MINUTE=%time:~3,2%
if %MINUTE% LSS 10 set MINUTE=%MINUTE:~1,2%
if %MINUTE% LSS 10 set MINUTE=0%MINUTE%
REM SET SECOND
set SECOND=%time:~6,2%
if %SECOND% LSS 10 set SECOND=%SECOND:~1,2%
if %SECOND% LSS 10 set SECOND=0%SECOND%
set mydate=%YEAR%%MONTH%%DAY%_%HOUR%%MINUTE%%SECOND%
echo #spring.profiles.active=@activatedProperties@ > ems-core\src\main\resources\configs\env.properties
echo project.version=%mydate% >> ems-core\src\main\resources\configs\env.properties
git add . -A
git commit -m "%mydate%"
git tag "%mydate%"
git push https://git.studioml.it/Integry/IntegryManagementSystem.git --tags
git push https://git.studioml.it/Integry/IntegryManagementSystem.git --all

153
build/update_tomcat.ps1 Normal file
View File

@@ -0,0 +1,153 @@
Param(
[string]$serviceName, #Argomento passato dal chiamante
[Int32]$httpPort, #Argomento passato dal chiamante
[string]$updatedArtifactPath #Argomento passato dal chiamante
)
$max_attempts = 48
$attempt = 0
$webappsPath = "C:\Program Files\$serviceName\webapps"
# Funzione per eseguire la chiamata GET e controllare lo status code
function Check-Status {
try {
$request = Invoke-WebRequest -Uri "http://localhost:$httpPort/ems-api/system/ok" -Method Get -ErrorAction Stop
$statusCode = $request.StatusCode
if ($statusCode -eq 200) {
Write-Host "Status code 200 ricevuto, processo completato."
exit 0
} else {
Write-Host "Status code $statusCode ricevuto, continuo a provare..."
}
} catch {
Write-Host "Errore: $_"
}
}
# Funzione per cancellare una cartella e un file
function Delete-FilesAndFolder
{
param (
[string]$folderPath,
[string]$filePath
)
try {
# Cancellare la cartella specificata
if (Test-Path -Path $folderPath) {
Remove-Item -Path $folderPath -Recurse -Force
Write-Host "Cartella $folderPath eliminata con successo."
} else {
Write-Host "La cartella $folderPath non esiste."
}
# Cancellare il file specificato
if (Test-Path -Path $filePath) {
Remove-Item -Path $filePath -Force
Write-Host "File $filePath eliminato con successo."
} else {
Write-Host "Il file $filePath non esiste."
}
} catch {
Write-Host "Errore nella cancellazione di file o cartella: $_"
exit 1
}
}
# Funzione per copiare un file
function Copy-File {
param (
[string]$sourceFilePath,
[string]$destinationFilePath
)
try {
if (Test-Path -Path $sourceFilePath) {
Copy-Item -Path $sourceFilePath -Destination $destinationFilePath -Force
Write-Host "File copiato da $sourceFilePath a $destinationFilePath con successo."
} else {
Write-Host "Il file sorgente $sourceFilePath non esiste."
}
} catch {
Write-Host "Errore nella copia del file: $_"
exit 1
}
}
# Funzione per stoppare un servizio e attendere che sia completamente fermato
function Stop-ServiceAndWait {
param (
[string]$serviceName
)
# Tentativo di stoppare il servizio
try {
Write-Host "Sto stoppando il servizio $serviceName..."
Stop-Service -Name $serviceName -Force
# Attesa finché il servizio non viene stoppato
$service = Get-Service -Name $serviceName
while ($service.Status -ne 'Stopped') {
Write-Host "Attendo che il servizio $serviceName si fermi..."
Start-Sleep -Seconds 5
$service = Get-Service -Name $serviceName
}
Write-Host "Il servizio $serviceName è stato fermato con successo."
} catch {
Write-Host "Errore nello stoppare il servizio ${serviceName}: $_"
exit 1
}
}
# Funzione per avviare nuovamente un servizio e attendere che sia in esecuzione
function Start-ServiceAndWait {
param (
[string]$serviceName
)
try {
Write-Host "Sto avviando il servizio $serviceName..."
Start-Service -Name $serviceName
# Attesa finché il servizio non viene avviato
$service = Get-Service -Name $serviceName
while ($service.Status -ne 'Running') {
Write-Host "Attendo che il servizio $serviceName si avvii..."
Start-Sleep -Seconds 5
$service = Get-Service -Name $serviceName
}
Write-Host "Il servizio $serviceName è stato avviato con successo."
} catch {
Write-Host "Errore nell'avvio del servizio ${serviceName}: $_"
exit 1
}
}
# Chiamare la funzione per stoppare il servizio
Stop-ServiceAndWait -serviceName $serviceName
# Subito dopo lo stop, cancellare la cartella e il file
$emsApiPath = "$webappsPath\ems-api"
$emsWarFilePath = "$webappsPath\ems-api.war"
Delete-FilesAndFolder -folderPath $emsApiPath -filePath $emsWarFilePath
# Chiamare la funzione per copiare il file
Write-Host "Copio $updatedArtifactPath in $emsWarFilePath"
Copy-File -sourceFilePath $updatedArtifactPath -destinationFilePath $emsWarFilePath
# Avvia nuovamente il servizio
Start-ServiceAndWait -serviceName $serviceName
# Ciclo fino a quando lo status code non è 200 o superiamo il numero massimo di tentativi
while ($attempt -lt $max_attempts) {
$attempt++
Check-Status
Start-Sleep -Seconds 5 # Attendere per 5 secondi prima di fare un altro tentativo
}
Write-Host "Numero massimo di tentativi superato. Nessuna risposta 200 ricevuta."
exit 1

View File

@@ -42,19 +42,38 @@
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<version>3.4.0</version>
<configuration>
<skip>true</skip>
<mainClass>it.integry.ems_model.rulescompleting.KieStaticCompiler</mainClass>
<longClasspath>true</longClasspath>
<longModulepath>true</longModulepath>
<toolchain>jdk</toolchain>
<executable>java</executable>
<cleanupDaemonThreads>false</cleanupDaemonThreads>
<skip>false</skip>
<arguments>
<argument>-classpath</argument>
<!-- automatically creates the classpath using all project dependencies,
also adding the project build directory -->
<classpath/>
<argument>it.integry.ems_model.rulescompleting.KieStaticCompiler</argument>
<argument>src/main/resources/rules/</argument>
<argument>../ems-engine/src/main/webapp/drools/</argument>
</arguments>
<systemProperties>
<projectProperties/>
<exec.longClasspath>true</exec.longClasspath>
</systemProperties>
</configuration>
<executions>
<execution>
<phase>post-clean</phase>
<phase>process-classes</phase>
<goals>
<goal>java</goal>
<goal>exec</goal>
</goals>
</execution>
</executions>
@@ -120,7 +139,7 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
<version>2.11.0</version>
<scope>compile</scope>
</dependency>
@@ -154,19 +173,24 @@
<version>1.13</version>
</dependency>
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.4.3</version>
</dependency>
<!-- SWAGGER
<!-- SWAGGER -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<artifactId>springfox-oas</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency> -->
</dependency>
<!-- REST CLIENT -->
<dependency>
@@ -181,7 +205,7 @@
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
@@ -216,7 +240,7 @@
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.10</version>
<version>0.10.2</version>
</dependency>
<!-- Mail -->
@@ -226,29 +250,17 @@
<version>1.4.7</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.3.0</version>
</dependency>
<!-- JASPER REPORT -->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.16.0</version>
<exclusions>
<exclusion>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7.js8</version>
<version>${jaspersoft.version}</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.lowagie</groupId>-->
<!-- <artifactId>itext</artifactId>-->
<!-- <version>2.1.7.js8</version>-->
<!-- </dependency>-->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-htmlcomponent</artifactId>
@@ -257,12 +269,12 @@
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.16.0</version>
<version>${jaspersoft.version}</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-functions</artifactId>
<version>6.16.0</version>
<version>${jaspersoft.version}</version>
</dependency>
<dependency>
<groupId>it.integry.font</groupId>
@@ -358,14 +370,14 @@
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
<version>5.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
<version>5.2.3</version>
</dependency>
<dependency>
@@ -421,11 +433,21 @@
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-csv</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
@@ -445,11 +467,6 @@
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-instrument-tomcat</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
@@ -499,6 +516,7 @@
<version>${drools.version}</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>com.lmax</groupId>
@@ -537,7 +555,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
<version>3.14.0</version>
</dependency>
<dependency>
@@ -555,11 +573,6 @@
</dependency>
<!-- UTILS -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
@@ -686,7 +699,7 @@
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>7.0.1</version>
<version>9.2.0</version>
</dependency>
@@ -717,7 +730,7 @@
<dependency>
<groupId>com.github.javaparser</groupId>
<artifactId>javaparser-symbol-solver-core</artifactId>
<version>3.25.9</version>
<version>3.26.1</version>
</dependency>
</dependencies>

View File

@@ -0,0 +1,18 @@
package it.integry.FoodProcess.api;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientRequestFilter;
import java.io.IOException;
public class AddApiKeyHeaderRequestFilter implements ClientRequestFilter {
private final String apiKey;
public AddApiKeyHeaderRequestFilter(String apiKey) {
this.apiKey = apiKey;
}
@Override
public void filter(ClientRequestContext clientRequestContext) throws IOException {
clientRequestContext.getHeaders().add("X-Api-Key", apiKey);
}
}

View File

@@ -0,0 +1,62 @@
package it.integry.FoodProcess.api;
import com.fasterxml.jackson.databind.ObjectMapper;
import it.integry.FoodProcess.dto.response.ErrorResponse;
import javax.ws.rs.*;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientResponseContext;
import javax.ws.rs.client.ClientResponseFilter;
import javax.ws.rs.core.Response;
import java.io.IOException;
public class ErrorMessageResponseFilter implements ClientResponseFilter {
private static final ObjectMapper objectMapper = new ObjectMapper();
@Override
public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
if (responseContext.getStatus() != Response.Status.OK.getStatusCode()) {
if (responseContext.hasEntity()) {
ErrorResponse error = objectMapper.readValue(responseContext.getEntityStream(), ErrorResponse.class);
String message = error.getErrorMessage();
Response.Status status = Response.Status.fromStatusCode(responseContext.getStatus());
WebApplicationException webAppException;
switch (status) {
case BAD_REQUEST:
webAppException = new BadRequestException(message);
break;
case UNAUTHORIZED:
webAppException = new NotAuthorizedException(message, Response.status(Response.Status.UNAUTHORIZED).build());
break;
case FORBIDDEN:
webAppException = new ForbiddenException(message);
break;
case NOT_FOUND:
webAppException = new NotFoundException(message);
break;
case METHOD_NOT_ALLOWED:
webAppException = new NotAllowedException(message);
break;
case NOT_ACCEPTABLE:
webAppException = new NotAcceptableException(message);
break;
case UNSUPPORTED_MEDIA_TYPE:
webAppException = new NotSupportedException(message);
break;
case INTERNAL_SERVER_ERROR:
webAppException = new InternalServerErrorException(message);
break;
case SERVICE_UNAVAILABLE:
webAppException = new ServiceUnavailableException(message);
break;
default:
webAppException = new WebApplicationException(message);
}
throw webAppException;
}
}
}
}

View File

@@ -0,0 +1,69 @@
package it.integry.FoodProcess.api;
import it.integry.FoodProcess.dto.*;
import it.integry.FoodProcess.dto.response.*;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.util.List;
public interface FoodProcessClient {
// Orders
@GET
@Path("/getorderstatuses")
@Produces(MediaType.APPLICATION_JSON)
List<OrderStatusResponse> getOrderStatuses(@QueryParam("order_ids") List<String> orderIds);
@POST
@Path("/importorders")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
ImportOrdersResponse importOrders(ImportOrdersRequest importOrdersRequest);
// Master data
@GET
@Path("/getarticles")
@Produces(MediaType.APPLICATION_JSON)
List<Article> getArticles();
@POST
@Path("/importarticles")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
ImportArticlesResponse importArticles(ImportArticlesRequest importArticlesRequest);
@GET
@Path("/getbusinesspartners")
@Produces(MediaType.APPLICATION_JSON)
List<BusinessPartner> getBusinessPartners();
@POST
@Path("/importbusinesspartners")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
ImportBusinessPartnersResponse importBusinessPartners(ImportBusinessPartnersRequest importBusinessPartnersRequest);
@GET
@Path("/getpackagingmaterials")
@Produces(MediaType.APPLICATION_JSON)
List<PackagingMaterial> getPackagingMaterials();
@POST
@Path("/importpackagingmaterials")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
ImportPackagingMaterialsResponse importPackagingMaterials(ImportPackagingMaterialsRequest importPackagingMaterialsRequest);
@GET
@Path("/getrawmaterials")
@Produces(MediaType.APPLICATION_JSON)
List<RawMaterial> getRawMaterials();
@POST
@Path("/importrawmaterials")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
ImportRawMaterialsResponse importRawMaterials(ImportRawMaterialsRequest importRawMaterialsRequest);
}

View File

@@ -0,0 +1,25 @@
package it.integry.FoodProcess.api;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.ext.Provider;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
@Provider
public class JacksonProvider extends ResteasyJackson2Provider {
@Override
public void writeTo(Object value, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException {
ObjectMapper mapper = locateMapper(type, MediaType.APPLICATION_JSON_TYPE);
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
super.writeTo(value, type, genericType, annotations, mediaType, httpHeaders, entityStream);
}
}

View File

@@ -0,0 +1,116 @@
package it.integry.FoodProcess.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import it.integry.ems_model.annotation.SqlField;
import java.util.List;
public class Article {
@SqlField
private String id;
@SqlField
private String code;
@SqlField
private String name;
@JsonProperty("raw_materials")
private List<ArticleRawMaterial> rawMaterials;
@JsonProperty("packaging_material_id")
private String packagingMaterialId;
@JsonProperty("packaging_material_code")
private String packagingMaterialCode;
@JsonProperty("packaging_material_name")
private String packagingMaterialName;
@SqlField
private String note;
@JsonProperty("is_archived")
private boolean isArchived;
public String getId() {
return id;
}
public Article setId(String id) {
this.id = id;
return this;
}
public String getCode() {
return code;
}
public Article setCode(String code) {
this.code = code;
return this;
}
public String getName() {
return name;
}
public Article setName(String name) {
this.name = name;
return this;
}
public List<ArticleRawMaterial> getRawMaterials() {
return rawMaterials;
}
public Article setRawMaterials(List<ArticleRawMaterial> rawMaterials) {
this.rawMaterials = rawMaterials;
return this;
}
public String getPackagingMaterialId() {
return packagingMaterialId;
}
public Article setPackagingMaterialId(String packagingMaterialId) {
this.packagingMaterialId = packagingMaterialId;
return this;
}
public String getPackagingMaterialCode() {
return packagingMaterialCode;
}
public Article setPackagingMaterialCode(String packagingMaterialCode) {
this.packagingMaterialCode = packagingMaterialCode;
return this;
}
public String getPackagingMaterialName() {
return packagingMaterialName;
}
public Article setPackagingMaterialName(String packagingMaterialName) {
this.packagingMaterialName = packagingMaterialName;
return this;
}
public String getNote() {
return note;
}
public Article setNote(String note) {
this.note = note;
return this;
}
public boolean getIsArchived() {
return isArchived;
}
public Article setIsArchived(boolean isArchived) {
this.isArchived = isArchived;
return this;
}
}

View File

@@ -0,0 +1,50 @@
package it.integry.FoodProcess.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
public class ArticleRawMaterial {
private String id;
private String code;
private String name;
@JsonProperty("weight_kg")
private Double weightKg;
public String getId() {
return id;
}
public ArticleRawMaterial setId(String id) {
this.id = id;
return this;
}
public String getCode() {
return code;
}
public ArticleRawMaterial setCode(String code) {
this.code = code;
return this;
}
public String getName() {
return name;
}
public ArticleRawMaterial setName(String name) {
this.name = name;
return this;
}
public Double getWeightKg() {
return weightKg;
}
public ArticleRawMaterial setWeightKg(Double weightKg) {
this.weightKg = weightKg;
return this;
}
}

View File

@@ -0,0 +1,93 @@
package it.integry.FoodProcess.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import it.integry.ems_model.annotation.SqlField;
public class BusinessPartner {
@SqlField
private String id;
@SqlField
private String code;
@SqlField
private String name;
@SqlField
@JsonProperty("is_customer")
private boolean isCustomer;
@SqlField
@JsonProperty("is_supplier")
private boolean isSupplier;
@SqlField
private String note;
@SqlField
@JsonProperty("is_archived")
private boolean isArchived;
public String getId() {
return id;
}
public BusinessPartner setId(String id) {
this.id = id;
return this;
}
public String getCode() {
return code;
}
public BusinessPartner setCode(String code) {
this.code = code;
return this;
}
public String getName() {
return name;
}
public BusinessPartner setName(String name) {
this.name = name;
return this;
}
public boolean getIsCustomer() {
return isCustomer;
}
public BusinessPartner setIsCustomer(boolean isCustomer) {
this.isCustomer = isCustomer;
return this;
}
public boolean getIsSupplier() {
return isSupplier;
}
public BusinessPartner setIsSupplier(boolean isSupplier) {
this.isSupplier = isSupplier;
return this;
}
public String getNote() {
return note;
}
public BusinessPartner setNote(String note) {
this.note = note;
return this;
}
public boolean getIsArchived() {
return isArchived;
}
public BusinessPartner setIsArchived(boolean isArchived) {
this.isArchived = isArchived;
return this;
}
}

View File

@@ -0,0 +1,16 @@
package it.integry.FoodProcess.dto;
import java.util.List;
public class ImportArticlesRequest {
private List<Article> articles;
public List<Article> getArticles() {
return articles;
}
public ImportArticlesRequest setArticles(List<Article> articles) {
this.articles = articles;
return this;
}
}

View File

@@ -0,0 +1,19 @@
package it.integry.FoodProcess.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
public class ImportBusinessPartnersRequest {
@JsonProperty("business_partners")
private List<BusinessPartner> businessPartners;
public List<BusinessPartner> getBusinessPartners() {
return businessPartners;
}
public ImportBusinessPartnersRequest setBusinessPartners(List<BusinessPartner> businessPartners) {
this.businessPartners = businessPartners;
return this;
}
}

View File

@@ -0,0 +1,16 @@
package it.integry.FoodProcess.dto;
import java.util.List;
public class ImportOrdersRequest {
private List<RequestOrder> orders;
public List<RequestOrder> getOrders() {
return orders;
}
public ImportOrdersRequest setOrders(List<RequestOrder> orders) {
this.orders = orders;
return this;
}
}

View File

@@ -0,0 +1,19 @@
package it.integry.FoodProcess.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
public class ImportPackagingMaterialsRequest {
@JsonProperty("packaging_materials")
private List<PackagingMaterial> packagingMaterials;
public List<PackagingMaterial> getPackagingMaterials() {
return packagingMaterials;
}
public ImportPackagingMaterialsRequest setPackagingMaterials(List<PackagingMaterial> packagingMaterials) {
this.packagingMaterials = packagingMaterials;
return this;
}
}

View File

@@ -0,0 +1,19 @@
package it.integry.FoodProcess.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
public class ImportRawMaterialsRequest {
@JsonProperty("raw_materials")
private List<RawMaterial> rawMaterials;
public List<RawMaterial> getRawMaterials() {
return rawMaterials;
}
public ImportRawMaterialsRequest setRawMaterials(List<RawMaterial> rawMaterials) {
this.rawMaterials = rawMaterials;
return this;
}
}

View File

@@ -0,0 +1,120 @@
package it.integry.FoodProcess.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
public class PackagingMaterial {
private String id;
private String code;
private String name;
private PackagingMaterialType type;
@JsonProperty("weight_kg")
private Double weightKg;
@JsonProperty("length_mm")
private Double lengthMm;
@JsonProperty("width_mm")
private Double widthMm;
@JsonProperty("height_mm")
private Double heightMm;
private String note;
@JsonProperty("is_archived")
private boolean isArchived;
public String getId() {
return id;
}
public PackagingMaterial setId(String id) {
this.id = id;
return this;
}
public String getCode() {
return code;
}
public PackagingMaterial setCode(String code) {
this.code = code;
return this;
}
public String getName() {
return name;
}
public PackagingMaterial setName(String name) {
this.name = name;
return this;
}
public PackagingMaterialType getType() {
return type;
}
public PackagingMaterial setType(PackagingMaterialType type) {
this.type = type;
return this;
}
public Double getWeightKg() {
return weightKg;
}
public PackagingMaterial setWeightKg(Double weightKg) {
this.weightKg = weightKg;
return this;
}
public Double getLengthMm() {
return lengthMm;
}
public PackagingMaterial setLengthMm(Double lengthMm) {
this.lengthMm = lengthMm;
return this;
}
public Double getWidthMm() {
return widthMm;
}
public PackagingMaterial setWidthMm(Double widthMm) {
this.widthMm = widthMm;
return this;
}
public Double getHeightMm() {
return heightMm;
}
public PackagingMaterial setHeightMm(Double heightMm) {
this.heightMm = heightMm;
return this;
}
public String getNote() {
return note;
}
public PackagingMaterial setNote(String note) {
this.note = note;
return this;
}
public boolean getIsArchived() {
return isArchived;
}
public PackagingMaterial setIsArchived(boolean isArchived) {
this.isArchived = isArchived;
return this;
}
}

View File

@@ -0,0 +1,10 @@
package it.integry.FoodProcess.dto;
public enum PackagingMaterialType {
PUNNET,
TRAY,
BAG,
CARTON,
CRATE,
PALLET
}

View File

@@ -0,0 +1,61 @@
package it.integry.FoodProcess.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
public class RawMaterial {
private String id;
private String code;
private String name;
private String note;
@JsonProperty("is_archived")
private boolean isArchived;
public String getId() {
return id;
}
public RawMaterial setId(String id) {
this.id = id;
return this;
}
public String getCode() {
return code;
}
public RawMaterial setCode(String code) {
this.code = code;
return this;
}
public String getName() {
return name;
}
public RawMaterial setName(String name) {
this.name = name;
return this;
}
public String getNote() {
return note;
}
public RawMaterial setNote(String note) {
this.note = note;
return this;
}
public boolean getIsArchived() {
return isArchived;
}
public RawMaterial setIsArchived(boolean isArchived) {
this.isArchived = isArchived;
return this;
}
}

View File

@@ -0,0 +1,234 @@
package it.integry.FoodProcess.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.LocalDate;
import java.time.LocalDateTime;
public class RequestOrder {
private String id;
private String type;
@JsonProperty("article_id")
private String articleId;
@JsonProperty("article_code")
private String articleCode;
@JsonProperty("customer_id")
private String customerId;
@JsonProperty("customer_code")
private String customerCode;
@JsonProperty("secondary_packaging_material_id")
private String secondaryPackagingMaterialId;
@JsonProperty("secondary_packaging_material_code")
private String secondaryPackagingMaterialCode;
@JsonProperty("tertiary_packaging_material_id")
private String tertiaryPackagingMaterialId;
@JsonProperty("tertiary_packaging_material_code")
private String tertiaryPackagingMaterialCode;
@JsonProperty("units_per_secondary_packaging")
private int unitsPerSecondaryPackaging;
@JsonProperty("units_per_pallet_layer")
private int unitsPerPalletLayer;
@JsonProperty("pallet_layer_quantity")
private int palletLayerQuantity;
@JsonProperty("target_quantity")
private double targetQuantity;
@JsonProperty("target_quantity_unit")
private TargetQuantityUnit targetQuantityUnit;
@JsonProperty("scheduled_for")
private LocalDateTime scheduledFor;
@JsonProperty("to_be_completed_until")
private LocalDateTime toBeCompletedUntil;
@JsonProperty("best_before_date")
private LocalDate bestBeforeDate;
@JsonProperty("production_lot")
private String productionLot;
public String getId() {
return id;
}
public RequestOrder setId(String id) {
this.id = id;
return this;
}
public String getType() {
return type;
}
public RequestOrder setType(String type) {
this.type = type;
return this;
}
public String getArticleId() {
return articleId;
}
public RequestOrder setArticleId(String articleId) {
this.articleId = articleId;
return this;
}
public String getArticleCode() {
return articleCode;
}
public RequestOrder setArticleCode(String articleCode) {
this.articleCode = articleCode;
return this;
}
public String getCustomerId() {
return customerId;
}
public RequestOrder setCustomerId(String customerId) {
this.customerId = customerId;
return this;
}
public String getCustomerCode() {
return customerCode;
}
public RequestOrder setCustomerCode(String customerCode) {
this.customerCode = customerCode;
return this;
}
public String getSecondaryPackagingMaterialId() {
return secondaryPackagingMaterialId;
}
public RequestOrder setSecondaryPackagingMaterialId(String secondaryPackagingMaterialId) {
this.secondaryPackagingMaterialId = secondaryPackagingMaterialId;
return this;
}
public String getSecondaryPackagingMaterialCode() {
return secondaryPackagingMaterialCode;
}
public RequestOrder setSecondaryPackagingMaterialCode(String secondaryPackagingMaterialCode) {
this.secondaryPackagingMaterialCode = secondaryPackagingMaterialCode;
return this;
}
public String getTertiaryPackagingMaterialId() {
return tertiaryPackagingMaterialId;
}
public RequestOrder setTertiaryPackagingMaterialId(String tertiaryPackagingMaterialId) {
this.tertiaryPackagingMaterialId = tertiaryPackagingMaterialId;
return this;
}
public String getTertiaryPackagingMaterialCode() {
return tertiaryPackagingMaterialCode;
}
public RequestOrder setTertiaryPackagingMaterialCode(String tertiaryPackagingMaterialCode) {
this.tertiaryPackagingMaterialCode = tertiaryPackagingMaterialCode;
return this;
}
public int getUnitsPerSecondaryPackaging() {
return unitsPerSecondaryPackaging;
}
public RequestOrder setUnitsPerSecondaryPackaging(int unitsPerSecondaryPackaging) {
this.unitsPerSecondaryPackaging = unitsPerSecondaryPackaging;
return this;
}
public int getUnitsPerPalletLayer() {
return unitsPerPalletLayer;
}
public RequestOrder setUnitsPerPalletLayer(int unitsPerPalletLayer) {
this.unitsPerPalletLayer = unitsPerPalletLayer;
return this;
}
public int getPalletLayerQuantity() {
return palletLayerQuantity;
}
public RequestOrder setPalletLayerQuantity(int palletLayerQuantity) {
this.palletLayerQuantity = palletLayerQuantity;
return this;
}
public double getTargetQuantity() {
return targetQuantity;
}
public RequestOrder setTargetQuantity(double targetQuantity) {
this.targetQuantity = targetQuantity;
return this;
}
public TargetQuantityUnit getTargetQuantityUnit() {
return targetQuantityUnit;
}
public RequestOrder setTargetQuantityUnit(TargetQuantityUnit targetQuantityUnit) {
this.targetQuantityUnit = targetQuantityUnit;
return this;
}
public LocalDateTime getScheduledFor() {
return scheduledFor;
}
public RequestOrder setScheduledFor(LocalDateTime scheduledFor) {
this.scheduledFor = scheduledFor;
return this;
}
public LocalDateTime getToBeCompletedUntil() {
return toBeCompletedUntil;
}
public RequestOrder setToBeCompletedUntil(LocalDateTime toBeCompletedUntil) {
this.toBeCompletedUntil = toBeCompletedUntil;
return this;
}
public LocalDate getBestBeforeDate() {
return bestBeforeDate;
}
public RequestOrder setBestBeforeDate(LocalDate bestBeforeDate) {
this.bestBeforeDate = bestBeforeDate;
return this;
}
public String getProductionLot() {
return productionLot;
}
public RequestOrder setProductionLot(String productionLot) {
this.productionLot = productionLot;
return this;
}
}

View File

@@ -0,0 +1,8 @@
package it.integry.FoodProcess.dto;
public enum TargetQuantityUnit {
PIECE,
SECONDARY_PACKAGING,
TERTIARY_PACKAGING,
KILOGRAM
}

View File

@@ -0,0 +1,17 @@
package it.integry.FoodProcess.dto.response;
import com.fasterxml.jackson.annotation.JsonProperty;
public class ErrorResponse {
@JsonProperty("error_message")
private String errorMessage;
public String getErrorMessage() {
return errorMessage;
}
public ErrorResponse setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
return this;
}
}

View File

@@ -0,0 +1,17 @@
package it.integry.FoodProcess.dto.response;
import com.fasterxml.jackson.annotation.JsonProperty;
public class ImportArticleStatus extends ResponseStatus {
@JsonProperty("article_id")
private String articleId;
public String getArticleId() {
return articleId;
}
public ImportArticleStatus setArticleId(String articleId) {
this.articleId = articleId;
return this;
}
}

View File

@@ -0,0 +1,16 @@
package it.integry.FoodProcess.dto.response;
import java.util.List;
public class ImportArticlesResponse {
private List<ImportArticleStatus> statuses;
public List<ImportArticleStatus> getStatuses() {
return statuses;
}
public ImportArticlesResponse setStatuses(List<ImportArticleStatus> statuses) {
this.statuses = statuses;
return this;
}
}

View File

@@ -0,0 +1,17 @@
package it.integry.FoodProcess.dto.response;
import com.fasterxml.jackson.annotation.JsonProperty;
public class ImportBusinessPartnerStatus extends ResponseStatus {
@JsonProperty("business_partner_id")
private String businessPartnerId;
public String getBusinessPartnerId() {
return businessPartnerId;
}
public ImportBusinessPartnerStatus setBusinessPartnerId(String businessPartnerId) {
this.businessPartnerId = businessPartnerId;
return this;
}
}

View File

@@ -0,0 +1,16 @@
package it.integry.FoodProcess.dto.response;
import java.util.List;
public class ImportBusinessPartnersResponse {
private List<ImportBusinessPartnerStatus> statuses;
public List<ImportBusinessPartnerStatus> getStatuses() {
return statuses;
}
public ImportBusinessPartnersResponse setStatuses(List<ImportBusinessPartnerStatus> statuses) {
this.statuses = statuses;
return this;
}
}

View File

@@ -0,0 +1,17 @@
package it.integry.FoodProcess.dto.response;
import com.fasterxml.jackson.annotation.JsonProperty;
public class ImportOrderStatus extends ResponseStatus {
@JsonProperty("order_id")
private String orderId;
public String getOrderId() {
return orderId;
}
public ImportOrderStatus setOrderId(String orderId) {
this.orderId = orderId;
return this;
}
}

View File

@@ -0,0 +1,16 @@
package it.integry.FoodProcess.dto.response;
import java.util.List;
public class ImportOrdersResponse {
private List<ImportOrderStatus> statuses;
public List<ImportOrderStatus> getStatuses() {
return statuses;
}
public ImportOrdersResponse setStatuses(List<ImportOrderStatus> statuses) {
this.statuses = statuses;
return this;
}
}

View File

@@ -0,0 +1,17 @@
package it.integry.FoodProcess.dto.response;
import com.fasterxml.jackson.annotation.JsonProperty;
public class ImportPackagingMaterialStatus extends ResponseStatus {
@JsonProperty("packaging_material_id")
private String packagingMaterialId;
public String getPackagingMaterialId() {
return packagingMaterialId;
}
public ImportPackagingMaterialStatus setPackagingMaterialId(String packagingMaterialId) {
this.packagingMaterialId = packagingMaterialId;
return this;
}
}

View File

@@ -0,0 +1,16 @@
package it.integry.FoodProcess.dto.response;
import java.util.List;
public class ImportPackagingMaterialsResponse {
private List<ImportPackagingMaterialStatus> statuses;
public List<ImportPackagingMaterialStatus> getStatuses() {
return statuses;
}
public ImportPackagingMaterialsResponse setStatuses(List<ImportPackagingMaterialStatus> statuses) {
this.statuses = statuses;
return this;
}
}

View File

@@ -0,0 +1,17 @@
package it.integry.FoodProcess.dto.response;
import com.fasterxml.jackson.annotation.JsonProperty;
public class ImportRawMaterialStatus extends ResponseStatus {
@JsonProperty("raw_material_id")
private String rawMaterialId;
public String getRawMaterialId() {
return rawMaterialId;
}
public ImportRawMaterialStatus setRawMaterialId(String rawMaterialId) {
this.rawMaterialId = rawMaterialId;
return this;
}
}

View File

@@ -0,0 +1,16 @@
package it.integry.FoodProcess.dto.response;
import java.util.List;
public class ImportRawMaterialsResponse {
private List<ImportRawMaterialStatus> statuses;
public List<ImportRawMaterialStatus> getStatuses() {
return statuses;
}
public ImportRawMaterialsResponse setStatuses(List<ImportRawMaterialStatus> statuses) {
this.statuses = statuses;
return this;
}
}

View File

@@ -0,0 +1,9 @@
package it.integry.FoodProcess.dto.response;
public enum OrderStatus {
NEW,
ASSIGNED,
ACTIVE,
CLOSED,
CANCELED
}

View File

@@ -0,0 +1,29 @@
package it.integry.FoodProcess.dto.response;
import com.fasterxml.jackson.annotation.JsonProperty;
public class OrderStatusResponse {
@JsonProperty("order_id")
private String orderId;
@JsonProperty("order_status")
private OrderStatus orderStatus;
public String getOrderId() {
return orderId;
}
public OrderStatusResponse setOrderId(String orderId) {
this.orderId = orderId;
return this;
}
public OrderStatus getOrderStatus() {
return orderStatus;
}
public OrderStatusResponse setOrderStatus(OrderStatus orderStatus) {
this.orderStatus = orderStatus;
return this;
}
}

View File

@@ -0,0 +1,24 @@
package it.integry.FoodProcess.dto.response;
public class ResponseStatus {
private boolean success;
private String message;
public boolean isSuccess() {
return success;
}
public ResponseStatus setSuccess(boolean success) {
this.success = success;
return this;
}
public String getMessage() {
return message;
}
public ResponseStatus setMessage(String message) {
this.message = message;
return this;
}
}

View File

@@ -0,0 +1,175 @@
package it.integry.FoodProcess.service;
import it.integry.FoodProcess.api.AddApiKeyHeaderRequestFilter;
import it.integry.FoodProcess.api.ErrorMessageResponseFilter;
import it.integry.FoodProcess.api.FoodProcessClient;
import it.integry.FoodProcess.api.JacksonProvider;
import it.integry.FoodProcess.dto.Article;
import it.integry.FoodProcess.dto.ImportArticlesRequest;
import it.integry.FoodProcess.dto.response.ImportArticlesResponse;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityEntity;
import it.integry.ems_model.entity.MtbAart;
import it.integry.ems_model.entity.MtbAartAnag;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.Query;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityList;
import it.integry.ems_model.utility.UtilityString;
import org.jboss.resteasy.client.jaxrs.ResteasyClient;
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.regex.Pattern;
@Service
@Scope("request")
public class FoodProcessRestService {
private final Pattern ID_REGEX = Pattern.compile("^[0-9A-Fa-f]{1,}$");
private final SetupGest setupGest;
private final MultiDBTransactionManager multiDBTransactionManager;
private final EntityProcessor entityProcessor;
public FoodProcessRestService(SetupGest setupGest, MultiDBTransactionManager multiDBTransactionManager, EntityProcessor entityProcessor) {
this.setupGest = setupGest;
this.multiDBTransactionManager = multiDBTransactionManager;
this.entityProcessor = entityProcessor;
}
public FoodProcessClient makeInstance() throws Exception {
String endpoint = setupGest.getSetup("FOODPROCESS", "SETUP", "ENDPOINT");
if (UtilityString.isNullOrEmpty(endpoint)) {
throw new Exception("Endpoint per il servizio di FoodProcess non configurato.\nImpostarlo in FOODPROCESS->SETUP->ENDPOINT.");
}
String apiKey = setupGest.getSetup("FOODPROCESS", "SETUP", "API_KEY");
if (UtilityString.isNullOrEmpty(apiKey)) {
throw new Exception("Api key per il servizio di FoodProcess non configurato.\nImpostarlo in FOODPROCESS->SETUP->API_KEY.");
}
ResteasyClient client = new ResteasyClientBuilder().build();
client.register(new JacksonProvider());
client.register(new ErrorMessageResponseFilter());
client.register(new AddApiKeyHeaderRequestFilter(apiKey));
ResteasyWebTarget target = client.target(endpoint);
return target.proxy(FoodProcessClient.class);
}
public ImportArticlesResponse importArticles(ImportArticlesRequest importArticlesRequest) throws Exception {
if (UtilityList.isNullOrEmpty(importArticlesRequest.getArticles())) {
return null;
}
String codAnagTopControl = setupGest.getSetup("FOODPROCESS", "SETUP", "TOPCONTROL_CODANAG");
if (UtilityString.isNullOrEmpty(codAnagTopControl)) {
throw new Exception("Cod. anag. di Top Control non configurato.\nImpostarlo in FOODPROCESS->SETUP->TOPCONTROL_CODANAG.");
}
FoodProcessClient client = makeInstance();
List<Article> foodProcessArticles = client.getArticles();
List<MtbAart> entityList = new ArrayList<>();
for (Article article : importArticlesRequest.getArticles()) {
if (UtilityString.isNullOrEmpty(article.getId()) || !ID_REGEX.matcher(article.getId()).matches()) {
String sql;
MtbAartAnag mtbAartAnag = null;
// Cerco negli articoli loro
Optional<Article> optionalFoodProcessArticle = foodProcessArticles.stream()
.filter(x -> !x.getIsArchived())
.filter(x -> x.getCode().equalsIgnoreCase(article.getCode()))
.findFirst();
if (optionalFoodProcessArticle.isPresent()) {
Article foodProcessArticle = optionalFoodProcessArticle.get();
mtbAartAnag = new MtbAartAnag()
.setCodAnag(codAnagTopControl)
.setCodMartAnag(foodProcessArticle.getId())
.setCodMart(article.getId());
mtbAartAnag.setOperation(OperationType.INSERT_OR_UPDATE);
}
// Cerco id in nostra anagrafica
if (mtbAartAnag == null && !UtilityString.isNullOrEmpty(article.getId())) {
sql = Query.format(
"SELECT id, cod_mart_anag\n" +
"FROM mtb_aart_anag\n" +
"WHERE cod_anag = %s\n" +
" AND cod_mart = %s",
codAnagTopControl,
article.getId()
);
mtbAartAnag = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MtbAartAnag.class);
}
// Articolo nuovo, creo un nuovo id
if (mtbAartAnag == null) {
sql = Query.format(
"SELECT CAST(ISNULL(MAX(CAST(cod_mart_anag AS INT)), 0) + 1 AS VARCHAR) AS cod_mart_anag\n" +
"FROM mtb_aart_anag\n" +
"WHERE cod_anag = %s",
codAnagTopControl
);
String codMartAnag = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
mtbAartAnag = new MtbAartAnag()
.setCodAnag(codAnagTopControl)
.setCodMartAnag(codMartAnag);
mtbAartAnag.setOperation(OperationType.INSERT_OR_UPDATE);
}
if (!UtilityString.isNullOrEmpty(mtbAartAnag)) {
if (!mtbAartAnag.getOperation().equals(OperationType.SELECT_OBJECT)) {
MtbAart mtbAart = entityList.stream()
.filter(x -> x.getCodMart().equalsIgnoreCase(article.getId()))
.findFirst()
.orElseGet(() -> {
MtbAart newMtbAart = new MtbAart()
.setCodMart(article.getId())
.setMtbAartAnag(new ArrayList<>());
newMtbAart.setOperation(OperationType.NO_OP);
entityList.add(newMtbAart);
return newMtbAart;
});
mtbAart.getMtbAartAnag().add(mtbAartAnag);
}
article.setId(mtbAartAnag.getCodMartAnag());
}
}
}
if (!UtilityList.isNullOrEmpty(entityList)) {
entityProcessor.processEntityList(entityList, false);
UtilityEntity.throwEntitiesException(entityList);
}
return client.importArticles(importArticlesRequest);
}
}

View File

@@ -5,7 +5,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import it.integry.WooCommerce.dto.order.WooCommerceOrderDTO;
import it.integry.WooCommerce.service.WooCommerceService;
import it.integry.common.var.CommonConstants;
import it.integry.ems.json.JSONObjectMapper;
import it.integry.ems.json.ResponseJSONObjectMapper;
import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems_model.config.EmsRestConstants;
import org.apache.logging.log4j.LogManager;
@@ -26,7 +26,7 @@ public class WooCommerceController {
@Autowired
private WooCommerceService wooService;
@Autowired
private JSONObjectMapper jsonObjectMapper;
private ResponseJSONObjectMapper jsonObjectMapper;
@RequestMapping(value = EmsRestConstants.PATH_WOO_NEW_ORDER, method = RequestMethod.POST)

View File

@@ -1,7 +1,7 @@
package it.integry.WooCommerce.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import it.integry.ems_model.annotation.SqlField;
import org.codehaus.jackson.annotate.JsonProperty;
public class AttributeDTO {
@SqlField("attributo")

View File

@@ -1,8 +1,8 @@
package it.integry.WooCommerce.dto.order;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.JsonNode;
import it.integry.WooCommerce.enums.OrderStatus;
import org.codehaus.jackson.JsonNode;
import java.util.Arrays;
import java.util.List;

View File

@@ -768,7 +768,8 @@ public class WooCommerceService {
private void sendErrorMail(String errorMsg, String service, byte[] content, String filename, List<AnomalieDTO> anomalie) {
try {
mailService.sendErrorMail(multiDBTransactionManager, service, "WOOCOMMERCE", null, content, filename, anomalie);
mailService.sendErrorMailByGestNameSection(multiDBTransactionManager, service, "WOOCOMMERCE", "Errore WooCommerce",
null, content, filename, anomalie);
} catch (Exception exception) {
logger.error(service, exception);
}

View File

@@ -1,12 +1,13 @@
package it.integry.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
@Retention(RUNTIME)
@Target(FIELD)
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
public @interface PostContextAutowired {
}

View File

@@ -8,6 +8,7 @@ public enum EntityImportType {
ORDINI("ORDINI"),
ORDINI_WEB("ORDINI WEB"),
ORDINI_ACQUISTO("ORDINI ACQUISTO"),
ORDINI_VENDITA("ORDINI VENDITA"),
DOCUMENTI("DOCUMENTI"),
DOCUMENTI_ACQUISTO("DOCUMENTI ACQUISTO"),
DOCUMENTI_LAVORAZIONE("DOCUMENTI LAVORAZIONE"),
@@ -22,7 +23,9 @@ public enum EntityImportType {
RAPPORTINI_FG("RAPPORTINI FG"),
SCONTRINI("SCONTRINI"),
MOVIMENTI_CONTABILI("MOVIMENTI CONTABILI"),
GRIGLIA_ACQUISTO("GRIGLIA ACQUISTO");
GRIGLIA_VENDITA("GRIGLIA VENDITA"),
GRIGLIA_ACQUISTO("GRIGLIA ACQUISTO"),
SCADENZE("SCADENZE");
private String text;

View File

@@ -5,17 +5,9 @@ import com.microsoft.sqlserver.jdbc.SQLServerDriver;
import it.integry.annotations.PostContextAutowired;
import it.integry.annotations.PostContextConstruct;
import it.integry.annotations.PostWebServerConstruct;
import it.integry.ems.properties.EmsProperties;
import it.integry.ems.schedule.new_cron_job.dto.AutomatedOperationTypeEnum;
import it.integry.ems.schedule.new_cron_job.dto.operations.ServiceCallAutomatedOperationDTO;
import it.integry.ems.schedule.new_cron_job.dto.operations.base_classes.BaseAutomatedOperationDTO;
import it.integry.ems.schedule.new_cron_job.service.AutomatedOperationHandlerComponent;
import it.integry.ems.settings.Model.AvailableConnectionsModel;
import it.integry.ems.settings.Model.SettingsModel;
import it.integry.ems.settings.SettingsController;
import it.integry.ems.sync.MultiDBTransaction.AdvancedDataSource;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityDebug;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.postgresql.Driver;
@@ -33,10 +25,12 @@ import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.DriverManager;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import static org.reflections.scanners.Scanners.TypesAnnotated;
@Component
public class EmsCoreContext implements ApplicationListener<ContextRefreshedEvent> {
@@ -53,9 +47,6 @@ public class EmsCoreContext implements ApplicationListener<ContextRefreshedEvent
@Autowired
private SettingsModel settingsModel;
@Autowired
private EmsProperties emsProperties;
private boolean contextInitialized = false;
private boolean firstStart = true;
@@ -116,13 +107,11 @@ public class EmsCoreContext implements ApplicationListener<ContextRefreshedEvent
private void dispatchPostContextConstruct(MultiDBTransactionManager multiDBTransactionManager) throws InvocationTargetException, IllegalAccessException {
Reflections reflections = new Reflections("it.integry");
final Set<Class<?>> typesAnnotatedWith = reflections.getTypesAnnotatedWith(Component.class);
typesAnnotatedWith.addAll(reflections.getTypesAnnotatedWith(Service.class));
final Set<Class<?>> typesAnnotatedWith = reflections.get(TypesAnnotated.with(Component.class, Service.class).asClass());
List<Class<?>> classesWithPostContextConstruct = Stream.of(typesAnnotatedWith)
.filter(x -> Stream.of(x.getDeclaredMethods()).anyMatch(y -> y.isAnnotationPresent(PostContextConstruct.class)))
.sortBy(x -> Stream.of(x.getDeclaredMethods())
.filter(x -> Arrays.stream(x.getDeclaredMethods()).anyMatch(y -> y.isAnnotationPresent(PostContextConstruct.class)))
.sortBy(x -> Arrays.stream(x.getDeclaredMethods())
.filter(y -> y.isAnnotationPresent(PostContextConstruct.class))
.findFirst()
.get()
@@ -134,9 +123,9 @@ public class EmsCoreContext implements ApplicationListener<ContextRefreshedEvent
logger.debug("PostContextConstruct - " + classType.getSimpleName() + " - START");
Object beanInstance = ContextLoader.getCurrentWebApplicationContext().getBean(classType);
List<Field> fieldsToInject = Stream.of(classType.getDeclaredFields())
List<Field> fieldsToInject = Arrays.stream(classType.getDeclaredFields())
.filter(y -> y.isAnnotationPresent(PostContextAutowired.class))
.toList();
.collect(Collectors.toList());
for (Field fieldToInject : fieldsToInject) {
fieldToInject.setAccessible(true);
@@ -146,7 +135,7 @@ public class EmsCoreContext implements ApplicationListener<ContextRefreshedEvent
}
}
Method constructor = Stream.of(classType.getDeclaredMethods())
Method constructor = Arrays.stream(classType.getDeclaredMethods())
.filter(y -> y.isAnnotationPresent(PostContextConstruct.class))
.findFirst()
.get();
@@ -159,13 +148,11 @@ public class EmsCoreContext implements ApplicationListener<ContextRefreshedEvent
private void dispatchPostWebServerConstruct(MultiDBTransactionManager multiDBTransactionManager) throws InvocationTargetException, IllegalAccessException {
Reflections reflections = new Reflections("it.integry");
final Set<Class<?>> typesAnnotatedWith = reflections.getTypesAnnotatedWith(Component.class);
typesAnnotatedWith.addAll(reflections.getTypesAnnotatedWith(Service.class));
final Set<Class<?>> typesAnnotatedWith = reflections.get(TypesAnnotated.with(Component.class, Service.class).asClass());
List<Class<?>> classesWithPostWebServerConstruct = Stream.of(typesAnnotatedWith)
.filter(x -> Stream.of(x.getDeclaredMethods()).anyMatch(y -> y.isAnnotationPresent(PostWebServerConstruct.class)))
.sortBy(x -> Stream.of(x.getDeclaredMethods())
.filter(x -> Arrays.stream(x.getDeclaredMethods()).anyMatch(y -> y.isAnnotationPresent(PostWebServerConstruct.class)))
.sortBy(x -> Arrays.stream(x.getDeclaredMethods())
.filter(y -> y.isAnnotationPresent(PostWebServerConstruct.class))
.findFirst()
.get()
@@ -177,9 +164,9 @@ public class EmsCoreContext implements ApplicationListener<ContextRefreshedEvent
logger.debug("PostWebServerConstruct - " + classType.getSimpleName() + " - START");
Object beanInstance = ContextLoader.getCurrentWebApplicationContext().getBean(classType);
List<Field> fieldsToInject = Stream.of(classType.getDeclaredFields())
List<Field> fieldsToInject = Arrays.stream(classType.getDeclaredFields())
.filter(y -> y.isAnnotationPresent(PostContextAutowired.class))
.toList();
.collect(Collectors.toList());
for (Field fieldToInject : fieldsToInject) {
fieldToInject.setAccessible(true);
@@ -189,7 +176,7 @@ public class EmsCoreContext implements ApplicationListener<ContextRefreshedEvent
}
}
Method constructor = Stream.of(classType.getDeclaredMethods())
Method constructor = Arrays.stream(classType.getDeclaredMethods())
.filter(y -> y.isAnnotationPresent(PostWebServerConstruct.class))
.findFirst()
.get();

View File

@@ -3,18 +3,16 @@ package it.integry.ems._context;
import it.integry.annotations.PostContextConstruct;
import it.integry.common.var.EmsDBConst;
import it.integry.ems.datasource.DataSource;
import it.integry.ems.dynamic_cache.DynamicCacheService;
import it.integry.ems.expansion.RunnableArgs;
import it.integry.ems.settings.Model.AvailableConnectionsModel;
import it.integry.ems.settings.Model.SettingsModel;
import it.integry.ems.settings.SettingsController;
import it.integry.ems.sync.MultiDBTransaction.AdvancedDataSource;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.UserCacheService;
import it.integry.ems.user.service.UserCacheService;
import it.integry.ems_model.entity.Azienda;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityHashMap;
import it.integry.ems_model.utility.UtilityString;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -22,9 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@Component
public class EmsCoreDBLoader {

View File

@@ -1,20 +1,27 @@
package it.integry.ems.adapter;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.utility.UtilityString;
import java.io.IOException;
import java.util.Date;
public class JsonDateAdapterDeserializer extends JsonDeserializer<Date> {
public class JsonDateAdapterDeserializer extends StdDeserializer<Date> {
public JsonDateAdapterDeserializer() {
this(null);
}
protected JsonDateAdapterDeserializer(Class<?> vc) {
super(vc);
}
@Override
public Date deserialize(JsonParser jp, DeserializationContext arg1)
throws IOException, JsonProcessingException {
throws IOException {
if (UtilityString.isNullOrEmpty(jp.getText()))
return null;

View File

@@ -0,0 +1,49 @@
package it.integry.ems.configuration;
import it.integry.ems.json.ResponseJSONObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.nio.charset.StandardCharsets;
import java.util.List;
@Configuration
@EnableWebMvc
public class JsonConfig implements WebMvcConfigurer {
@Bean
public ResponseJSONObjectMapper jacksonResponseObjectMapper() {
final ResponseJSONObjectMapper objectMapper = new ResponseJSONObjectMapper();
return objectMapper;
}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.defaultContentType(MediaType.APPLICATION_JSON);
}
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
final MappingJackson2HttpMessageConverter httpMessageConverter = converters.stream()
.filter(x -> x instanceof MappingJackson2HttpMessageConverter)
.map(x -> (MappingJackson2HttpMessageConverter) x)
.findFirst()
.get();
httpMessageConverter.setDefaultCharset(StandardCharsets.UTF_8);
httpMessageConverter.setObjectMapper(jacksonResponseObjectMapper());
int oldIndex = converters.indexOf(httpMessageConverter);
converters.remove(oldIndex);
converters.add(0, httpMessageConverter);
}
}

View File

@@ -0,0 +1,43 @@
package it.integry.ems.configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@Configuration
//@EnableSwagger2
@EnableWebMvc
@EnableOpenApi
public class SwaggerConfig implements WebMvcConfigurer {
@Bean
public Docket api() {
return new Docket(DocumentationType.OAS_30)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/swagger-ui/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/")
.resourceChain(false);
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/swagger-ui/")
.setViewName("forward:" + "swagger-ui/index.html");
}
}

View File

@@ -7,13 +7,13 @@ import it.integry.ems.Import.base.EntityImportResponse;
import it.integry.ems.Import.dto.ImportRequestDTO;
import it.integry.ems.download.DownloadFileHandlerService;
import it.integry.ems.download.dto.DownloadFileDto;
import it.integry.ems.dto.EntityHierarchyDTO;
import it.integry.ems.dto.CreateZipDTO;
import it.integry.ems.dto.EntityHierarchy;
import it.integry.ems.export.base.EntityExportResponse;
import it.integry.ems.export.base.EntityExportedFile;
import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.media.MediaImageService;
import it.integry.ems.media.MimeTypesHandler;
import it.integry.ems.metrics.service.MetricService;
import it.integry.ems.model.EntityModel;
import it.integry.ems.model.FieldModel;
import it.integry.ems.model.PKFieldModel;
@@ -49,6 +49,8 @@ import org.quartz.*;
import org.quartz.impl.matchers.GroupMatcher;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.mail.javamail.ConfigurableMimeFileTypeMap;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import org.springframework.web.bind.annotation.*;
@@ -96,9 +98,6 @@ public class EmsController {
@Autowired
private ServiceChecker serviceChecker;
@Autowired
private MetricService metricService;
@Autowired
private SchedulerFactoryBean quartzScheduler;
@@ -183,17 +182,6 @@ public class EmsController {
}
}
@RequestMapping(value = "/metric/count", method = RequestMethod.GET)
public @ResponseBody
ServiceRestResponse metricCount(HttpServletRequest request) {
try {
return ServiceRestResponse.createPositiveResponse(metricService.getJsonCountMetric());
} catch (Exception e) {
logger.error(request.getRequestURI(), e);
return ServiceRestResponse.createNegativeResponse(e);
}
}
@RequestMapping(value = "/decodeUcs", method = RequestMethod.POST)
public @ResponseBody
String decodeUcs(@RequestBody String encodedUcs) {
@@ -557,8 +545,7 @@ public class EmsController {
}
@RequestMapping(value = EmsRestConstants.PATH_EXPORT, method = RequestMethod.POST)
public @ResponseBody
ServiceRestResponse export(
public @ResponseBody ServiceRestResponse export(
HttpServletRequest request,
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
@RequestParam(value = EmsRestConstants.TYPE) String typeExport,
@@ -566,44 +553,39 @@ public class EmsController {
@RequestParam(required = false, defaultValue = "false") Boolean binaryDownload,
@RequestParam(required = false, defaultValue = "true") boolean headless,
@RequestBody(required = false) JsonNode body) throws Exception {
ServiceRestResponse sr = null;
try {
EntityExportResponse<?> entityExportResponse = emsServices.export(typeExport, formatExport, body, headless);
EntityExportResponse<?> entityExportResponse = emsServices.export(typeExport, formatExport, body, headless);
sr = new ServiceRestResponse(EsitoType.OK);
if (entityExportResponse != null) {
ServiceRestResponse sr = ServiceRestResponse.createPositiveResponse();
if (entityExportResponse != null) {
if (binaryDownload) {
List<DownloadFileDto> downloadableFileList = new ArrayList<>();
for (EntityExportedFile exportedFile : (List<EntityExportedFile>) entityExportResponse.getResponse()) {
downloadableFileList.add(downloadFileHandlerService.generateDownloadItem(exportedFile.getFile()));
}
sr.setJsonObject(downloadableFileList);
} else if (entityExportResponse.isResponseToB64()) {
List<File> listaFile = new ArrayList<>();
for (EntityExportedFile exportedFile : (List<EntityExportedFile>) entityExportResponse.getResponse()) {
listaFile.add(exportedFile.getFile());
}
sr.setJsonObject(EncodedB64File.fromFileList(listaFile));
} else {
sr.setJsonObject(entityExportResponse.getResponse());
if (binaryDownload) {
List<DownloadFileDto> downloadableFileList = new ArrayList<>();
for (EntityExportedFile exportedFile : (List<EntityExportedFile>) entityExportResponse.getResponse()) {
downloadableFileList.add(downloadFileHandlerService.generateDownloadItem(exportedFile.getFile()));
}
if (!UtilityString.isNullOrEmpty(entityExportResponse.getMessageContent())) {
sr.initMessageList();
sr.getMessages().add(new MessageDTO()
.setLevel(MessageDTO.Level.INFO)
.setText(entityExportResponse.getMessageContent()));
sr.setJsonObject(downloadableFileList);
} else if (entityExportResponse.isResponseToB64()) {
List<File> listaFile = new ArrayList<>();
for (EntityExportedFile exportedFile : (List<EntityExportedFile>) entityExportResponse.getResponse()) {
listaFile.add(exportedFile.getFile());
}
sr.setJsonObject(EncodedB64File.fromFileList(listaFile));
} else {
sr.setJsonObject(entityExportResponse.getResponse());
}
if (!UtilityString.isNullOrEmpty(entityExportResponse.getMessageContent())) {
sr.initMessageList();
sr.getMessages()
.add(new MessageDTO()
.setLevel(MessageDTO.Level.INFO)
.setText(entityExportResponse.getMessageContent()));
}
} catch (Exception e) {
logger.error(request.getRequestURI(), e);
sr = new ServiceRestResponse(EsitoType.KO, multiDBTransactionManager.getPrimaryDatasource().getProfile(), e);
}
return sr;
@@ -616,70 +598,64 @@ public class EmsController {
@RequestParam(value = EmsRestConstants.TYPE) String importType,
@RequestParam(value = EmsRestConstants.FORMAT) String importFormat,
@RequestParam(required = false, defaultValue = "true") boolean headless,
@RequestBody(required = false) ImportRequestDTO requestBody) {
@RequestBody(required = false) ImportRequestDTO requestBody) throws Exception {
EntityImportResponse<List<EntityBase>> importResponse = emsServices.importEntity(importType, importFormat, requestBody, headless);
List<EntityBase> entities = importResponse.getResponse();
ServiceRestResponse response;
if (entities != null && entities.size() > 0 && Stream.of(entities).anyMatch(x -> x instanceof EntityBase)) {
List<MessageDTO> errorMessages = Stream.of(entities)
.filter(x -> x.getException() != null)
.map(x -> MessageDTO.error(x.getException().getMessage()))
.toList();
try {
EntityImportResponse<List<EntityBase>> importResponse = emsServices.importEntity(importType, importFormat, requestBody, headless);
List<EntityBase> entities = importResponse.getResponse();
List<MessageDTO> messages = Stream.of(importResponse.getAnomalie())
.filter(x -> x.getTipo() != null)
.map(x -> {
switch (x.getTipo()) {
case ERROR:
return MessageDTO.error(x.getMessage());
case WARNING:
default:
return MessageDTO.warning(x.getMessage());
}
})
.toList();
errorMessages.addAll(messages);
if (entities != null && entities.size() > 0 && Stream.of(entities).anyMatch(x -> x instanceof EntityBase)) {
List<MessageDTO> errorMessages = Stream.of(entities)
.filter(x -> x.getException() != null)
.map(x -> MessageDTO.error(x.getException().getMessage()))
.toList();
List<MessageDTO> messages = Stream.of(importResponse.getAnomalie())
.filter(x -> x.getTipo() != null)
.map(x -> {
switch (x.getTipo()) {
case ERROR:
return MessageDTO.error(x.getMessage());
case WARNING:
default:
return MessageDTO.warning(x.getMessage());
}
})
.toList();
errorMessages.addAll(messages);
if (errorMessages.size() > 0) {
response = ServiceRestResponse.createNegativeResponse();
} else {
response = ServiceRestResponse.createPositiveResponse();
}
response.setMessages(errorMessages);
response.setEntityList(Stream.of(entities).filter(x -> x.getException() == null).toList());
if (errorMessages.size() > 0) {
response = ServiceRestResponse.createNegativeResponse();
} else {
if (importResponse.getAnomalie() != null) {
if (!importResponse.getAnomalie().isEmpty()) {
List<MessageDTO> messages = Stream.of(importResponse.getAnomalie())
.map(x -> {
switch (x.getTipo()) {
case ERROR:
return MessageDTO.error(x.getMessage());
case WARNING:
default:
return MessageDTO.warning(x.getMessage());
}
})
.toList();
response = ServiceRestResponse.createNegativeResponse();
response.setMessages(messages);
} else response = ServiceRestResponse.createPositiveResponse();
} else throw new Exception("Non ci sono dati da importare");
response = ServiceRestResponse.createPositiveResponse();
}
} catch (Exception e) {
response = ServiceRestResponse.createNegativeResponse(e);
logger.error("Import " + httpRequest.getRequestURI(), e.getMessage());
response.setMessages(errorMessages);
response.setEntityList(Stream.of(entities).filter(x -> x.getException() == null).toList());
} else {
if (importResponse.getAnomalie() != null) {
if (!importResponse.getAnomalie().isEmpty()) {
List<MessageDTO> messages = Stream.of(importResponse.getAnomalie())
.map(x -> {
switch (x.getTipo()) {
case ERROR:
return MessageDTO.error(x.getMessage());
case WARNING:
default:
return MessageDTO.warning(x.getMessage());
}
})
.toList();
response = ServiceRestResponse.createNegativeResponse();
response.setMessages(messages);
} else response = ServiceRestResponse.createPositiveResponse();
} else throw new Exception("Non ci sono dati da importare");
}
return response;
@@ -778,47 +754,42 @@ public class EmsController {
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_STB_FILE_ATTACHMENT + "/{idAttach}/{filename}", method = RequestMethod.GET)
public byte[] downloadStbFileAttachment(HttpServletRequest request, HttpServletResponse response,
@RequestParam(CommonConstants.PROFILE_DB) String config,
@PathVariable String idAttach,
@PathVariable String filename,
@RequestParam(defaultValue = "false") boolean requestThumbnail) throws Exception {
@ResponseBody
public ResponseEntity<byte[]> downloadStbFileAttachment(
@RequestParam(CommonConstants.PROFILE_DB) String config,
@PathVariable String idAttach,
@PathVariable String filename,
@RequestParam(defaultValue = "false") boolean requestThumbnail) throws Exception {
AttachmentDTO attachmentDTO = emsServices.downloadStbFileAttachment(idAttach, requestThumbnail);
if (attachmentDTO != null) {
response.setContentType(attachmentDTO.getMimeType());
response.setStatus(HttpServletResponse.SC_OK);
response.addHeader("Content-Disposition", "attachment; filename=\"" + attachmentDTO.getFileName() + "\"");
response.setContentLength((int) attachmentDTO.getFileSize());
return attachmentDTO.getFileContent();
return ResponseEntity.ok()
.contentType(MediaType.parseMediaType(attachmentDTO.getMimeType()))
.contentLength(attachmentDTO.getFileSize())
.header("Content-Disposition", "attachment; filename=\"" + attachmentDTO.getFileName() + "\"")
.body(attachmentDTO.getFileContent());
}
response.sendError(404, "Allegato non trovato");
return null;
return ResponseEntity.notFound().build();
}
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_STB_FILE_ATTACHMENT, method = RequestMethod.GET)
public byte[] downloadStbFileAttachmentPath(HttpServletRequest request, HttpServletResponse response,
@RequestParam(CommonConstants.PROFILE_DB) String config,
@RequestParam String idAttach,
@RequestParam(defaultValue = "false") boolean requestThumbnail) throws Exception {
public ResponseEntity<byte[]> downloadStbFileAttachmentPath(
@RequestParam(CommonConstants.PROFILE_DB) String config,
@RequestParam String idAttach,
@RequestParam(defaultValue = "false") boolean requestThumbnail) throws Exception {
AttachmentDTO attachmentDTO = emsServices.downloadStbFileAttachment(idAttach, requestThumbnail);
if (attachmentDTO != null) {
response.setContentType(attachmentDTO.getMimeType());
response.setStatus(HttpServletResponse.SC_OK);
response.addHeader("Content-Disposition", "attachment; filename=\"" + attachmentDTO.getFileName() + "\"");
response.setContentLength((int) attachmentDTO.getFileSize());
return attachmentDTO.getFileContent();
return ResponseEntity.ok()
.contentType(MediaType.parseMediaType(attachmentDTO.getMimeType()))
.contentLength(attachmentDTO.getFileSize())
.header("Content-Disposition", "attachment; filename=\"" + attachmentDTO.getFileName() + "\"")
.body(attachmentDTO.getFileContent());
}
response.sendError(404, "Allegato non trovato");
return null;
return ResponseEntity.notFound().build();
}
@@ -943,6 +914,7 @@ public class EmsController {
@RequestParam(CommonConstants.PROFILE_DB) String config,
@RequestParam(required = false) String idAttach,
@RequestParam(required = false) String descrizione,
@RequestParam(required = false) String typeAttach,
@RequestPart() MultipartFile[] files
) {
try {
@@ -957,6 +929,7 @@ public class EmsController {
files[0].getBytes(),
descrizione,
files[0].getContentType(),
typeAttach,
null, null);
stbFilesAttached.setOnlyPkMaster(false);
@@ -1101,6 +1074,11 @@ public class EmsController {
}
}
@RequestMapping(value = "createZipFromFiles", method = RequestMethod.POST)
public @ResponseBody
ServiceRestResponse createZipFromFiles(@RequestBody CreateZipDTO createZipDTO) throws Exception {
return ServiceRestResponse.createPositiveResponse(emsServices.createZipFromFiles(createZipDTO));
}
// @RequestMapping(value = EmsRestConstants.PATH_UPLOAD_STB_EMAIL_CONTENT, method = RequestMethod.POST)
// public ServiceRestResponse uploadStbFileAttachment(HttpServletRequest request, HttpServletResponse response,
@@ -1168,7 +1146,7 @@ public class EmsController {
public @ResponseBody
ServiceRestResponse getEntityMapping(@RequestParam(CommonConstants.PROFILE_DB) String config) throws Exception {
try {
List<EntityHierarchyDTO> mapping = emsServices.getEntityMapping();
List<EntityHierarchy> mapping = emsServices.getEntityMapping();
return ServiceRestResponse.createPositiveResponse(mapping);
} catch (Exception e) {
logger.error(e.getMessage(), e);

View File

@@ -3,7 +3,7 @@ package it.integry.ems.directory;
import com.fasterxml.jackson.databind.node.ArrayNode;
import it.integry.common.var.CommonConstants;
import it.integry.ems.datasource.DataSource;
import it.integry.ems.json.JSONObjectMapper;
import it.integry.ems.json.ResponseJSONObjectMapper;
import it.integry.ems.properties.EmsProperties;
import it.integry.ems.response.EsitoType;
import it.integry.ems.response.FileItem;
@@ -39,10 +39,10 @@ public class EmailWatcherListener extends TimerTask {
private EmailListenerInfo emailListenerInfo;
private EmsProperties prop;
private SetupGest setupGest;
private JSONObjectMapper jsonObjectMapper;
private ResponseJSONObjectMapper jsonObjectMapper;
public EmailWatcherListener(EmailListenerInfo emailListenerInfo, EmsProperties prop,
SetupGest setupGest, JSONObjectMapper jsonObjectMapper) {
SetupGest setupGest, ResponseJSONObjectMapper jsonObjectMapper) {
super();
this.emailListenerInfo = emailListenerInfo;
this.prop = prop;

View File

@@ -0,0 +1,132 @@
package it.integry.ems.dto;
import com.fasterxml.jackson.annotation.JsonValue;
import it.integry.ems.report.dto.JasperDTO;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.entity.DtbDocPdf;
import it.integry.ems_model.entity.MtbAartLink;
import it.integry.ems_model.entity.MtbUntMis;
import it.integry.ems_model.entity.StbActivityFile;
import it.integry.ems_model.entity._enum.IBaseEnum;
import java.util.HashMap;
import java.util.List;
public class CreateZipDTO {
private List<String> listIdAttach;
private List<StbActivityFile> listStbActivityFile;
private List<MtbAartLink> listMtbAartLink;
private List<DtbDocPdf> listDtbDocPdf;
private String fileName;
private SaveMode saveMode = SaveMode.STB_FILES_ATTACHED;
private EntityBase entityToSaveTo;
public List<String> getListIdAttach() {
return listIdAttach;
}
public CreateZipDTO setListIdAttach(List<String> listIdAttach) {
this.listIdAttach = listIdAttach;
return this;
}
public List<StbActivityFile> getListStbActivityFile() {
return listStbActivityFile;
}
public CreateZipDTO setListStbActivityFile(List<StbActivityFile> listStbActivityFile) {
this.listStbActivityFile = listStbActivityFile;
return this;
}
public List<MtbAartLink> getListMtbAartLink() {
return listMtbAartLink;
}
public CreateZipDTO setListMtbAartLink(List<MtbAartLink> listMtbAartLink) {
this.listMtbAartLink = listMtbAartLink;
return this;
}
public List<DtbDocPdf> getListDtbDocPdf() {
return listDtbDocPdf;
}
public CreateZipDTO setListDtbDocPdf(List<DtbDocPdf> listDtbDocPdf) {
this.listDtbDocPdf = listDtbDocPdf;
return this;
}
public String getFileName() {
return fileName;
}
public CreateZipDTO setFileName(String fileName) {
this.fileName = fileName;
return this;
}
public SaveMode getSaveMode() {
return saveMode;
}
public CreateZipDTO setSaveMode(SaveMode saveMode) {
this.saveMode = saveMode;
return this;
}
public EntityBase getEntityToSaveTo() {
return entityToSaveTo;
}
public CreateZipDTO setEntityToSaveTo(EntityBase entityToSaveTo) {
this.entityToSaveTo = entityToSaveTo;
return this;
}
public enum SaveMode implements IBaseEnum<SaveMode> {
STB_FILES_ATTACHED((short) 0),
STB_ACTIVITY_FILE((short) 1);
private final short value;
SaveMode(final short value) {
this.value = value;
}
public static SaveMode from(Object value) {
short castValue = (short) value;
for (SaveMode b : SaveMode.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 SaveMode fromInternal(Object val) {
return from(val);
}
@Override
public String toString() {
return String.valueOf(value);
}
}
}

View File

@@ -0,0 +1,180 @@
package it.integry.ems.dto;
import it.integry.ems_model.annotation.*;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.base.EntityInterface;
import java.util.List;
public class EntityHierarchy {
private Class<? extends EntityBase> clazz;
private String entityName;
private String tableName;
private java.lang.reflect.Field parentField; //Used for entityChild
private boolean master;
private boolean equatable;
private List<EntityHierarchy> children;
private List<Field> fields;
public Class<? extends EntityInterface> getClazz() {
return clazz;
}
public EntityHierarchy setClazz(Class<? extends EntityBase> clazz) {
this.clazz = clazz;
return this;
}
public String getEntityName() {
return entityName;
}
public void setEntityName(String entityName) {
this.entityName = entityName;
}
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public java.lang.reflect.Field getParentField() {
return parentField;
}
public EntityHierarchy setParentField(java.lang.reflect.Field parentField) {
this.parentField = parentField;
return this;
}
public boolean isMaster() {
return master;
}
public EntityHierarchy setMaster(boolean master) {
this.master = master;
return this;
}
public List<EntityHierarchy> getChildren() {
return children;
}
public void setChildren(List<EntityHierarchy> children) {
this.children = children;
}
public void addChild(EntityHierarchy child) {
this.children.add(child);
}
public void removeChild(EntityHierarchy child) {
this.children.remove(child);
}
public List<Field> getFields() {
return fields;
}
public EntityHierarchy setFields(List<Field> fields) {
this.fields = fields;
return this;
}
public boolean isEquatable() {
return equatable;
}
public EntityHierarchy setEquatable(boolean equatable) {
this.equatable = equatable;
return this;
}
public static class Field {
private java.lang.reflect.Field field;
private Identity identity;
private SqlField sqlField;
private ObjectStorage objectStorage;
private Blob blob;
private Clob clob;
public java.lang.reflect.Field getField() {
return field;
}
public Field setField(java.lang.reflect.Field field) {
this.field = field;
return this;
}
public boolean isSqlField() {
return sqlField != null;
}
public boolean isObjectStorage() {
return objectStorage != null;
}
public boolean isBlob() {
return blob != null;
}
public boolean isClob() {
return clob != null;
}
public boolean isIdentity() {
return identity != null;
}
public Identity getIdentity() {
return identity;
}
public Field setIdentity(Identity identity) {
this.identity = identity;
return this;
}
public SqlField getSqlField() {
return sqlField;
}
public Field setSqlField(SqlField sqlField) {
this.sqlField = sqlField;
return this;
}
public ObjectStorage getObjectStorage() {
return objectStorage;
}
public Field setObjectStorage(ObjectStorage objectStorage) {
this.objectStorage = objectStorage;
return this;
}
public Blob getBlob() {
return blob;
}
public Field setBlob(Blob blob) {
this.blob = blob;
return this;
}
public Clob getClob() {
return clob;
}
public Field setClob(Clob clob) {
this.clob = clob;
return this;
}
}
}

View File

@@ -1,75 +0,0 @@
package it.integry.ems.dto;
import it.integry.ems_model.base.EntityBase;
import java.lang.reflect.Field;
import java.util.List;
public class EntityHierarchyDTO {
private Class<? extends EntityBase> clazz;
private String entityName;
private String tableName;
private Field field;
private boolean master;
private List<EntityHierarchyDTO> children;
public Class<? extends EntityBase> getClazz() {
return clazz;
}
public EntityHierarchyDTO setClazz(Class<? extends EntityBase> clazz) {
this.clazz = clazz;
return this;
}
public String getEntityName() {
return entityName;
}
public void setEntityName(String entityName) {
this.entityName = entityName;
}
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public Field getField() {
return field;
}
public EntityHierarchyDTO setField(Field field) {
this.field = field;
return this;
}
public boolean isMaster() {
return master;
}
public EntityHierarchyDTO setMaster(boolean master) {
this.master = master;
return this;
}
public List<EntityHierarchyDTO> getChildren() {
return children;
}
public void setChildren(List<EntityHierarchyDTO> children) {
this.children = children;
}
public void addChild(EntityHierarchyDTO child) {
this.children.add(child);
}
public void removeChild(EntityHierarchyDTO child) {
this.children.remove(child);
}
}

View File

@@ -0,0 +1,46 @@
package it.integry.ems.dto;
public abstract class Result<T> {
private Result() {}
@Override
public String toString() {
if (this instanceof Result.Success) {
Result.Success<?> success = (Result.Success<?>) this;
return "Success[data=" + success.getData().toString() + "]";
} else if (this instanceof Result.Error) {
Result.Error error = (Result.Error) this;
return "Error[exception=" + error.getError().toString() + "]";
}
return "";
}
public static final class Success<T> extends Result<T> {
private final T data;
public Success() {
data = null;
}
public Success(T data) {
this.data = data;
}
public T getData() {
return data;
}
}
public static final class Error<T> extends Result<T> {
private final Exception exception;
public Error(Exception exception) {
exception.printStackTrace();
this.exception = exception;
}
public Exception getError() {
return exception;
}
}
}

View File

@@ -1,6 +1,7 @@
package it.integry.ems.ecedi.enums;
public enum EuritmoCCIAppIdentifier {
CCI37("37"),
CCI00("00"),
CCI10("10"),
CCI17("17"),

View File

@@ -12,15 +12,16 @@ import com.github.javaparser.ast.type.ClassOrInterfaceType;
import it.integry.ems.entity_development.dto.CreateEntityItemRequestDTO;
import it.integry.ems.entity_logger.db_schema_manager.component.SQLServerDBSchemaManager;
import it.integry.ems.entity_logger.db_schema_manager.dto.DatabaseForeignKey;
import it.integry.ems.entity_logger.db_schema_manager.dto.DatabaseTable;
import it.integry.ems.entity_logger.db_schema_manager.dto.DatabaseTableColumn;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.entity_logger.db_schema_manager.dto.DatabaseTableView;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityDirs;
import it.integry.ems_model.annotation.*;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.utility.UtilityDB;
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;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@@ -29,9 +30,11 @@ import org.springframework.stereotype.Service;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import static com.github.javaparser.ast.Modifier.Keyword.*;
@@ -53,7 +56,7 @@ public class EntityDevelopmentService {
.collect(Collectors.toList());
for (CreateEntityItemRequestDTO createEntityItemRequestDTO : createEntityItemRequestList) {
final DatabaseTable tableData = sourceDBSchema.getTable(createEntityItemRequestDTO.getTableName());
final DatabaseTableView tableData = sourceDBSchema.getTable(createEntityItemRequestDTO.getTableName());
final CompilationUnit javaClassDeclaration =
createJavaClassDeclaration(createEntityItemRequestDTO, tableData, createEntityItemRequestDTO.isMaster() ? entityChilds : null);
@@ -70,9 +73,13 @@ public class EntityDevelopmentService {
}
private CompilationUnit createJavaClassDeclaration(CreateEntityItemRequestDTO createEntityItemRequestDTO, final DatabaseTable databaseTable, final List<CreateEntityItemRequestDTO> childEntities) throws Exception {
private CompilationUnit createJavaClassDeclaration(CreateEntityItemRequestDTO createEntityItemRequestDTO, final DatabaseTableView databaseTable, final List<CreateEntityItemRequestDTO> childEntities) throws Exception {
CompilationUnit javaClassCompilation = new CompilationUnit();
// addImportInstructions(javaClassCompilation);
javaClassCompilation.setPackageDeclaration("it.integry.ems_model.entity");
javaClassCompilation.addImport(LogManager.class);
javaClassCompilation.addImport(List.class);
javaClassCompilation.addImport(ArrayList.class);
String javaClassName = UtilityString.sqlToCamelCase(databaseTable.getTableName());
javaClassName = javaClassName.substring(0, 1).toUpperCase() + javaClassName.substring(1);
@@ -96,20 +103,12 @@ public class EntityDevelopmentService {
javaClass.addAndGetAnnotation(JsonTypeName.class)
.addPair("value", new FieldAccessExpr(new NameExpr(javaClassName), "ENTITY"));
final FieldDeclaration entityField = javaClass.addField(String.class, "ENTITY", PUBLIC, FINAL, STATIC);
ClassOrInterfaceType entityFieldType = entityField.getElementType().asClassOrInterfaceType();
entityFieldType.setName("String");
entityField.setVariable(0, new VariableDeclarator(entityFieldType, "ENTITY",
new StringLiteralExpr(databaseTable.getTableName())));
final FieldDeclaration entityField = javaClass.addFieldWithInitializer(String.class, "ENTITY", new StringLiteralExpr(databaseTable.getTableName()), PUBLIC, FINAL, STATIC);
final FieldDeclaration serialVersionUIDField = javaClass.addFieldWithInitializer(Long.class, "serialVersionUID", new LongLiteralExpr("1L"), PRIVATE, FINAL, STATIC);
final FieldDeclaration loggerField = javaClass.addFieldWithInitializer(Logger.class, "logger", new MethodCallExpr("LogManager.getLogger"), PRIVATE, FINAL, STATIC);
final FieldDeclaration serialVersionUIDField = javaClass.addField(Long.class, "serialVersionUID", PRIVATE, FINAL, STATIC);
ClassOrInterfaceType serialVersionUIDFieldType = serialVersionUIDField.getElementType().asClassOrInterfaceType();
serialVersionUIDFieldType.setName("long");
serialVersionUIDField.setVariable(0, new VariableDeclarator(serialVersionUIDFieldType, "serialVersionUID",
new LongLiteralExpr("1L")));
createEntityConstructor(javaClass);
List<FieldDeclaration> entityFields = new ArrayList<>();
@@ -122,10 +121,16 @@ public class EntityDevelopmentService {
String entityChildClassName = UtilityString.sqlToCamelCase(child.getTableName());
entityChildClassName = entityChildClassName.substring(0, 1).toUpperCase() + entityChildClassName.substring(1);
String variableName = entityChildClassName.substring(0, 1).toLowerCase() + entityChildClassName.substring(1);
final FieldDeclaration fieldDeclaration = javaClass.addField(
"List<" + entityChildClassName + ">",
entityChildClassName.substring(0, 1).toLowerCase() + entityChildClassName.substring(1),
variableName,
PRIVATE);
//final InitializerDeclaration initializerDeclaration = new InitializerDeclaration(false, new BlockStmt().addStatement("new ArrayList<>()"));
fieldDeclaration.setVariable(0, new VariableDeclarator(fieldDeclaration.getElementType(), variableName, new MethodCallExpr("new ArrayList<>")));
entityFields.add(fieldDeclaration);
fieldDeclaration.addAnnotation(EntityChild.class);
@@ -147,6 +152,16 @@ public class EntityDevelopmentService {
return javaClassCompilation;
}
private void createEntityConstructor(ClassOrInterfaceDeclaration javaClass) {
final ConstructorDeclaration constructorDeclaration = javaClass.addConstructor(PUBLIC);
final BlockStmt constructorBlockStmt = constructorDeclaration.getBody();
constructorBlockStmt.addStatement(new MethodCallExpr("super",
new NameExpr("logger")));
}
private FieldDeclaration createEntityField(ClassOrInterfaceDeclaration javaClass, DatabaseTableColumn databaseColumn) throws Exception {
final Class<?> aClass = UtilityDB.sqlTypeToJavaClass(databaseColumn.getDataType().toSqlDataType());
@@ -169,11 +184,6 @@ public class EntityDevelopmentService {
sqlFieldAnnotation
.addPair("nullable", new BooleanLiteralExpr(databaseColumn.isNullable()));
// if (databaseColumn.getColumnDefault() != null)
// sqlFieldValues.add(new MemberValuePair("defaultObjectValue", new StringLiteralExpr(databaseColumn.getColumnDefault())));
//Create @FK annotations
if (databaseColumn.getForeignKeys() != null) {
for (DatabaseForeignKey fkInfo : databaseColumn.getForeignKeys()) {

View File

@@ -5,9 +5,9 @@ import com.microsoft.sqlserver.jdbc.SQLServerException;
import it.integry.ems.entity_logger.db_schema_manager.dto.*;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityHashMap;
import it.integry.ems_model.utility.UtilityLocalDate;
import it.integry.ems_model.utility.UtilityString;
import org.apache.commons.lang3.StringUtils;
import org.springframework.orm.jpa.vendor.Database;
import java.io.File;
import java.sql.Connection;
@@ -82,8 +82,15 @@ public class SQLServerDBSchemaManager {
return UtilityDB.executeSimpleQueryDTO(this.mConnection, sql, DatabaseFile.class);
}
public DatabaseTable getTable(String tableName) throws Exception {
return getTableOrView(tableName, DatabaseObjectTypeEnum.TABLE, DatabaseTable.class);
}
public DatabaseView getView(String viewName) throws Exception {
return getTableOrView(viewName, DatabaseObjectTypeEnum.VIEW, DatabaseView.class);
}
public <T extends DatabaseTableView> T getTableOrView(String objectName, DatabaseObjectTypeEnum type, Class<T> classType) throws Exception {
String sql = "SELECT TABLE_CATALOG,\n" +
" COLUMNS.TABLE_SCHEMA,\n" +
" COLUMNS.TABLE_NAME,\n" +
@@ -121,18 +128,18 @@ public class SQLServerDBSchemaManager {
" ON pk.TABLE_NAME = COLUMNS.TABLE_NAME AND\n" +
" pk.COLUMN_NAME = COLUMNS.COLUMN_NAME AND\n" +
" pk.TABLE_SCHEMA = COLUMNS.TABLE_SCHEMA\n" +
" WHERE type = " + UtilityDB.valueToString(DatabaseObjectTypeEnum.TABLE.getText()) +
" AND COLUMNS.TABLE_NAME = " + UtilityDB.valueToString(tableName);
" WHERE type = " + UtilityDB.valueToString(type.getText()) +
" AND COLUMNS.TABLE_NAME = " + UtilityDB.valueToString(objectName);
List<HashMap<String, Object>> result = UtilityDB.executeSimpleQuery(this.mConnection, sql);
if (result.isEmpty())
return null;
HashMap<String, ArrayList<DatabaseForeignKey>> foreignKeysResults = getForeignKeys(tableName);
HashMap<String, ArrayList<DatabaseForeignKey>> foreignKeysResults = getForeignKeys(objectName);
DatabaseTable databaseTable = new DatabaseTable()
.setTableName(tableName);
T databaseTable = (T) classType.newInstance()
.setTableName(objectName);
List<DatabaseTableColumn> databaseTableColumns = new ArrayList<>();
for (HashMap<String, Object> column : result) {
@@ -167,7 +174,15 @@ public class SQLServerDBSchemaManager {
}
public List<DatabaseTable> getTables() throws Exception {
List<DatabaseTable> tableList = new ArrayList<>();
return getTablesOrViews(DatabaseObjectTypeEnum.TABLE, DatabaseTable.class);
}
public List<DatabaseView> getViews() throws Exception {
return getTablesOrViews(DatabaseObjectTypeEnum.VIEW, DatabaseView.class);
}
private <T extends DatabaseTableView> List<T> getTablesOrViews(DatabaseObjectTypeEnum type, Class<T> classType) throws Exception {
List<T> tableList = new ArrayList<>();
String sql = "SELECT TABLE_CATALOG,\n" +
" COLUMNS.TABLE_SCHEMA,\n" +
@@ -193,7 +208,8 @@ public class SQLServerDBSchemaManager {
" COLLATION_NAME,\n" +
" DOMAIN_CATALOG,\n" +
" DOMAIN_SCHEMA,\n" +
" DOMAIN_NAME\n" +
" DOMAIN_NAME,\n" +
" CAST(create_date AS DATE) AS CREATE_DATE\n" +
"FROM INFORMATION_SCHEMA.COLUMNS\n" +
" INNER JOIN sys.objects ON TABLE_NAME = name\n" +
" LEFT OUTER JOIN (SELECT TABLE_NAME,\n" +
@@ -206,16 +222,26 @@ public class SQLServerDBSchemaManager {
" ON pk.TABLE_NAME = COLUMNS.TABLE_NAME AND\n" +
" pk.COLUMN_NAME = COLUMNS.COLUMN_NAME AND\n" +
" pk.TABLE_SCHEMA = COLUMNS.TABLE_SCHEMA\n" +
" WHERE type = " + UtilityDB.valueToString(DatabaseObjectTypeEnum.TABLE.getText());
" WHERE type = " + UtilityDB.valueToString(type.getText());
List<HashMap<String, Object>> result = UtilityDB.executeSimpleQuery(this.mConnection, sql);
final HashMap<String, HashMap<String, ArrayList<DatabaseForeignKey>>> foreignKeys = getForeignKeys();
Stream.of(result)
.groupBy(x -> UtilityHashMap.<String>getValueIfExists(x, "TABLE_NAME"))
.forEach(x -> {
DatabaseTable databaseTable = new DatabaseTable()
.setTableName(x.getKey());
T databaseTable = null;
try {
databaseTable = (T) classType.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
throw new RuntimeException(e);
}
databaseTable
.setTableName(x.getKey())
.setCreationDate(UtilityLocalDate.localDateFromDate(UtilityHashMap.getValueIfExists(x.getValue().get(0), "CREATE_DATE")));
HashMap<String, ArrayList<DatabaseForeignKey>> foreignKeysResults = foreignKeys.getOrDefault(x.getKey(), new HashMap<>());
@@ -239,7 +265,8 @@ public class SQLServerDBSchemaManager {
.setCharacterSetSchema(UtilityHashMap.getValueIfExists(column, "CHARACTER_SET_SCHEMA"))
.setCharacterSetName(UtilityHashMap.getValueIfExists(column, "CHARACTER_SET_NAME"));
databaseTableColumn.setIdentity(databaseTableColumn.isPrimaryKey() && UtilityHashMap.<Boolean>getValueIfExists(column, "TABLE_HAS_IDENTITY"));
Boolean tableHasIdentity = UtilityHashMap.<Boolean>getValueIfExists(column, "TABLE_HAS_IDENTITY", false);
databaseTableColumn.setIdentity(databaseTableColumn.isPrimaryKey() && tableHasIdentity != null && tableHasIdentity);
if (foreignKeysResults != null && foreignKeysResults.containsKey(databaseTableColumn.getColumnName()))
databaseTableColumn.setForeignKeys(foreignKeysResults.get(databaseTableColumn.getColumnName()));
@@ -339,7 +366,7 @@ public class SQLServerDBSchemaManager {
return hashMap;
}
public String createTableSyntax(DatabaseTable databaseTable) throws Exception {
public String createTableSyntax(DatabaseTableView databaseTable) throws Exception {
StringBuilder sb = new StringBuilder();
sb.append("CREATE TABLE [" + databaseTable.getTableName() + "] (");
@@ -354,14 +381,29 @@ public class SQLServerDBSchemaManager {
return sb.toString();
}
public void createTable(DatabaseTable databaseTable) throws Exception {
public void createTable(DatabaseTableView databaseTable) throws Exception {
String sql = createTableSyntax(databaseTable);
execTableAlterSQL(sql);
this.mConnection.commit();
}
public String addTableColumnsSyntax(DatabaseTable deltaTable) throws Exception {
public void dropTable(DatabaseTable databaseTable) throws Exception {
String dropSql = "DROP TABLE " + databaseTable.getTableName();
execTableAlterSQL(dropSql);
this.mConnection.commit();
}
public void dropView(DatabaseView databaseTable) throws Exception {
String dropSql = "DROP VIEW " + databaseTable.getTableName();
execTableAlterSQL(dropSql);
this.mConnection.commit();
}
public String addTableColumnsSyntax(DatabaseTableView deltaTable) {
StringBuilder sb = new StringBuilder();
sb.append("ALTER TABLE [" + deltaTable.getTableName() + "] ADD ");
@@ -377,7 +419,7 @@ public class SQLServerDBSchemaManager {
return sb.toString();
}
public void addTableColumns(DatabaseTable deltaTable) throws Exception {
public void addTableColumns(DatabaseTableView deltaTable) throws Exception {
String sql = addTableColumnsSyntax(deltaTable);
execTableAlterSQL(sql);
@@ -385,6 +427,74 @@ public class SQLServerDBSchemaManager {
}
private String dropTableColumnsSyntax(DatabaseTableView deltaTable) {
StringBuilder sb = new StringBuilder();
sb.append("ALTER TABLE [" + deltaTable.getTableName() + "] DROP COLUMN ");
List<DatabaseTableColumn> sourceColumns = deltaTable.getColumns();
List<String> columnsTempSql = new ArrayList<>();
for (DatabaseTableColumn sourceColumn : sourceColumns) {
columnsTempSql.add(sourceColumn.getColumnName());
}
sb.append(StringUtils.join(columnsTempSql, ", "));
return sb.toString();
}
public void dropTableColumns(DatabaseTableView deltaTable) throws Exception {
String sql = dropTableColumnsSyntax(deltaTable);
execTableAlterSQL(sql);
this.mConnection.commit();
}
private List<String> updateTableColumnsSyntax(DatabaseTableView deltaTable) {
List<String> alterSqls = new ArrayList<>();
List<DatabaseTableColumn> sourceColumns = deltaTable.getColumns();
for (DatabaseTableColumn sourceColumn : sourceColumns) {
alterSqls.add("ALTER TABLE [" + deltaTable.getTableName() + "] ALTER COLUMN " + generateAddColumnSyntax(sourceColumn));
}
return alterSqls;
}
public void updateTableColumns(DatabaseTableView deltaTable) throws Exception {
List<String> sqls = updateTableColumnsSyntax(deltaTable);
for (String sql : sqls)
execTableAlterSQL(sql);
this.mConnection.commit();
}
public List<String> generateAlterTableToDisableAnsiPadding() throws SQLException {
return UtilityDB.executeSimpleQueryOnlyFirstColumn(this.mConnection, "SELECT 'ALTER TABLE ' + OBJECT_SCHEMA_NAME(sys.objects.object_id) + '.' + \n" +
" sys.objects.name + ' ALTER COLUMN [' + sys.columns.name + '] ' + \n" +
" sys.types.name + CASE WHEN sys.types.name IN ('text','ntext') THEN ''\n" +
" WHEN sys.types.name IN ('char','varchar') \n" +
" THEN '('+IIF(sys.columns.max_length = -1, 'MAX', CAST(sys.columns.max_length AS varchar(10)))+')'\n" +
" WHEN sys.types.name IN ('nchar','nvarchar') \n" +
" THEN '('+CAST(sys.columns.max_length/2 AS varchar(10))+')' END +\n" +
" ' ' + CASE WHEN sys.columns.is_nullable = 0 \n" +
" THEN 'NOT NULL' ELSE 'NULL' END\n" +
"FROM sys.columns\n" +
"JOIN sys.types\n" +
" ON sys.columns.user_type_id = sys.types.user_type_id\n" +
"JOIN sys.objects\n" +
" ON sys.columns.object_id = sys.objects.object_id\n" +
"WHERE is_ansi_padded = 0\n" +
" AND sys.types.name in ('char','varchar')\n" +
" AND sys.objects.type = 'U'");
}
private String generateAddColumnSyntax(DatabaseTableColumn tableColumn) {
String columnSize = null;

View File

@@ -1,37 +1,10 @@
package it.integry.ems.entity_logger.db_schema_manager.dto;
import java.util.ArrayList;
import java.util.List;
public class DatabaseTable extends DatabaseTableView {
public class DatabaseTable implements Cloneable {
private final DatabaseObjectTypeEnum type = DatabaseObjectTypeEnum.TABLE;
private String tableName;
private List<DatabaseTableColumn> columns = new ArrayList<>();
public String getTableName() {
return tableName;
}
public DatabaseTable setTableName(String tableName) {
this.tableName = tableName;
return this;
}
public List<DatabaseTableColumn> getColumns() {
return columns;
}
public DatabaseTable setColumns(List<DatabaseTableColumn> columns) {
this.columns = columns;
return this;
}
@Override
public DatabaseTable clone() {
try {
return (DatabaseTable) super.clone();
} catch (CloneNotSupportedException e) {
throw new AssertionError();
}
public DatabaseObjectTypeEnum getType() {
return type;
}
}

View File

@@ -0,0 +1,48 @@
package it.integry.ems.entity_logger.db_schema_manager.dto;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
public class DatabaseTableView implements Cloneable {
private String tableName;
private LocalDate creationDate;
private List<DatabaseTableColumn> columns = new ArrayList<>();
public String getTableName() {
return tableName;
}
public DatabaseTableView setTableName(String tableName) {
this.tableName = tableName;
return this;
}
public LocalDate getCreationDate() {
return creationDate;
}
public DatabaseTableView setCreationDate(LocalDate creationDate) {
this.creationDate = creationDate;
return this;
}
public List<DatabaseTableColumn> getColumns() {
return columns;
}
public DatabaseTableView setColumns(List<DatabaseTableColumn> columns) {
this.columns = columns;
return this;
}
@Override
public DatabaseTableView clone() {
try {
return (DatabaseTableView) super.clone();
} catch (CloneNotSupportedException e) {
throw new AssertionError();
}
}
}

View File

@@ -0,0 +1,10 @@
package it.integry.ems.entity_logger.db_schema_manager.dto;
public class DatabaseView extends DatabaseTableView {
private final DatabaseObjectTypeEnum type = DatabaseObjectTypeEnum.VIEW;
public DatabaseObjectTypeEnum getType() {
return type;
}
}

View File

@@ -3,12 +3,8 @@ package it.integry.ems.entity_logger.service;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import it.integry.annotations.PostContextConstruct;
import it.integry.ems.dynamic_cache.DynamicCacheService;
import it.integry.ems.entity_logger.db_schema_manager.component.SQLServerDBSchemaManager;
import it.integry.ems.entity_logger.db_schema_manager.dto.DatabaseFile;
import it.integry.ems.entity_logger.db_schema_manager.dto.DatabaseTable;
import it.integry.ems.entity_logger.db_schema_manager.dto.DatabaseTableColumn;
import it.integry.ems.entity_logger.db_schema_manager.dto.DatabaseTableColumnDataType;
import it.integry.ems.entity_logger.db_schema_manager.dto.*;
import it.integry.ems.looper.service.LooperService;
import it.integry.ems.settings.Model.AvailableConnectionsModel;
import it.integry.ems.settings.Model.SettingsModel;
@@ -130,16 +126,16 @@ public class EntityLoggerComponent {
for (DatabaseTable sourceTable : sourceTables) {
Optional<DatabaseTable> optDestTable = Stream.of(destTables)
java.util.Optional<DatabaseTable> optDestTable = destTables.stream()
.filter(x -> x.getTableName().equalsIgnoreCase(sourceTable.getTableName()))
.findFirst();
DatabaseTable destTable;
DatabaseTableView destTable;
StringBuilder sb = new StringBuilder();
if (optDestTable.isEmpty()) {
if (!optDestTable.isPresent()) {
Stream.of(sourceTable.getColumns())
sourceTable.getColumns()
.forEach(x -> x.setNullable(true));
int maxOrdinalPosition = Stream.of(sourceTable.getColumns())
@@ -182,7 +178,7 @@ public class EntityLoggerComponent {
} else {
destTable = optDestTable.get();
DatabaseTable cloneDatabaseTableADD = destTable.clone();
DatabaseTable cloneDatabaseTableADD = (DatabaseTable) destTable.clone();
cloneDatabaseTableADD.setColumns(new ArrayList<>());
List<DatabaseTableColumn> sourceColumns = sourceTable.getColumns();

View File

@@ -1,7 +1,7 @@
package it.integry.ems.exception;
public class MissingDataException extends Exception {
public MissingDataException(String method) {
super("Dati mancanti in " + method);
public MissingDataException(String error) {
super("Dati mancanti: " + error);
}
}

View File

@@ -0,0 +1,7 @@
package it.integry.ems.expansion;
public interface RunnableArgsThrowable<T> {
T run() throws Exception;
}

View File

@@ -0,0 +1,7 @@
package it.integry.ems.expansion;
public interface RunnableThrowable {
void run() throws Exception;
}

View File

@@ -1,6 +1,5 @@
package it.integry.ems.export.base;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
@@ -20,7 +19,7 @@ import it.integry.ems.file_sharer.sharers.ftp.FTPFileSharerSettings;
import it.integry.ems.file_sharer.sharers.sftp.SFTPFileAttachment;
import it.integry.ems.file_sharer.sharers.sftp.SFTPFileSharer;
import it.integry.ems.file_sharer.sharers.sftp.SFTPFileSharerSettings;
import it.integry.ems.json.JSONObjectMapper;
import it.integry.ems.json.ResponseJSONObjectMapper;
import it.integry.ems.properties.EmsProperties;
import it.integry.ems.response.EsitoType;
import it.integry.ems.response.FileItem;
@@ -29,7 +28,6 @@ import it.integry.ems.service.HttpRestWrapper;
import it.integry.ems.service.MailService;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityDirs;
import it.integry.ems_model.entity.Azienda;
import it.integry.ems_model.entity.WtbUsersInfo;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.utility.UtilityString;
@@ -41,8 +39,10 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.context.ContextLoader;
import java.io.*;
import java.net.URL;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -251,7 +251,7 @@ public abstract class BaseEntityExporter implements IEntityExporter {
case WEBSERVICES:
JSONObjectMapper objectMapper = new JSONObjectMapper();
ResponseJSONObjectMapper objectMapper = new ResponseJSONObjectMapper();
String url = wtbUserInfo.getWsEndpoint();
@@ -399,7 +399,7 @@ public abstract class BaseEntityExporter implements IEntityExporter {
}
}
if (counterTotalSend > 0 && counterFailedSend != 0 && retException != null) {
if (counterTotalSend > 0 && counterFailedSend == counterTotalSend && retException != null) {
//Se gli invii precedenti sono andati bene usciamo
throw retException;
}
@@ -421,20 +421,10 @@ public abstract class BaseEntityExporter implements IEntityExporter {
private void sendNotificationMail(String notificationEmail) {
try {
String nomeDitta = Azienda.getDefaultAzienda(multiDBTransactionManager.getPrimaryConnection()).getNomeDitta();
String mailSubject = String.format("Esportazione di %s - %s (%s)", getType(), getFormat(), nomeDitta);
URL url = new URL("https://www2.studioml.it/ems-api/mail_models/info_mail.php");
InputStream is = url.openStream();
String htmlMailBody = IOUtils.toString(is);
htmlMailBody = htmlMailBody.replaceAll("%%USER%%", "cliente");
htmlMailBody = htmlMailBody.replaceAll("%%MESSAGE%%", String.format("come da accordi, l'esportazione %s - %s &egrave; stata completata.", getType(), getFormat()));
htmlMailBody = htmlMailBody.replaceAll("%%NOME_DITTA%%", nomeDitta);
MailService mailService = ContextLoader.getCurrentWebApplicationContext().getBean(MailService.class);
mailService.sendMailPrimary(null, null, notificationEmail, null, null, mailSubject, htmlMailBody, true, false, null, null, null);
mailService.sendInfoMail(multiDBTransactionManager, notificationEmail,
String.format("Esportazione di %s - %s", getType(), getFormat()),
String.format("come da accordi, l'esportazione %s - %s &egrave; stata completata.", getType(), getFormat()));
} catch (Exception e) {
e.printStackTrace();

View File

@@ -17,7 +17,8 @@ public enum EntityExportType {
RAPPORTINI("RAPPORTINI"),
VARIAZIONE_PV("VARIAZIONE PV"),
LISTINI_ACQUISTO("LISTINI ACQUISTO"),
COLLI("COLLI");
COLLI("COLLI"),
SCADENZE("SCADENZE");
private String text;

View File

@@ -16,7 +16,7 @@ import java.util.List;
public class TxtMapper<T> {
private Logger logger = LogManager.getLogger();
private final Logger logger = LogManager.getLogger();
private String fieldsSplitChar = " ";
@@ -29,20 +29,10 @@ public class TxtMapper<T> {
public String serialize(T object) {
Class Tclass = object.getClass();
Class<?> Tclass = object.getClass();
List<Field> declaredFields = Arrays.asList(Tclass.getDeclaredFields());
List<Field> sortedFields = Stream.of(declaredFields)
.filter(x -> x.getAnnotation(DtoField.class) != null && x.getAnnotation(DtoField.class).startPosition() >= 0)
.sortBy(x -> x.getAnnotation(DtoField.class).startPosition())
.toList();
sortedFields.addAll(Stream.of(declaredFields)
.filter(x -> x.getAnnotation(DtoField.class) != null && x.getAnnotation(DtoField.class).startPosition() < 0)
.toList());
List<Field> sortedFields = sortFields(declaredFields);
StringBuilder stringBuilder = new StringBuilder();
@@ -52,18 +42,7 @@ public class TxtMapper<T> {
declaredField.setAccessible(true);
try {
// if(dtoField.startPosition() > stringBuilder.length()) {
// int spacesNeeded = dtoField.startPosition() - stringBuilder.length() - 1;
// int counter = 0;
// do {
// stringBuilder.append(" ");
// counter ++;
// } while (counter < spacesNeeded);
//
// stringBuilder.append(fieldsSplitChar);
// }
String value = applyDtoAnnotation(declaredField.get(object), dtoField);
String value = applyDtoAnnotationForSerialization(declaredField.get(object), dtoField);
if (value == null) {
value = "";
@@ -101,7 +80,7 @@ public class TxtMapper<T> {
public String serialize(List<T> objectList) {
if (objectList == null || objectList.size() == 0)
if (objectList == null || objectList.isEmpty())
return null;
StringBuilder stringBuilder = new StringBuilder();
@@ -109,12 +88,63 @@ public class TxtMapper<T> {
for (int i = 0; i < objectList.size(); i++) {
stringBuilder.append(serialize(objectList.get(i)));
if (i < objectList.size() - 1) stringBuilder.append(System.getProperty("line.separator"));
if (i < objectList.size() - 1) stringBuilder.append(System.lineSeparator());
}
return stringBuilder.toString();
}
public T deserialize(String line, Class<T> clazz) {
try {
T instance = clazz.getDeclaredConstructor().newInstance();
List<Field> declaredFields = Arrays.asList(clazz.getDeclaredFields());
List<Field> sortedFields = sortFields(declaredFields);
for (Field field : sortedFields) {
DtoField dtoField = field.getAnnotation(DtoField.class);
field.setAccessible(true);
String value = null;
if (ignorePosition) {
String[] tokens = line.split(fieldsSplitChar);
value = tokens[sortedFields.indexOf(field)];
} else {
int startPosition = dtoField.startPosition();
int endPosition = Math.min(line.length(), startPosition + dtoField.maxLength());
if (startPosition < endPosition && endPosition <= line.length()) {
value = line.substring(startPosition, endPosition).trim();
}
}
applyDtoAnnotationForDeserialization(field, instance, value, dtoField);
}
return instance;
} catch (Exception e) {
logger.error("Error during deserialization", e);
return null;
}
}
public List<T> deserialize(List<String> lines, Class<T> clazz) {
return Stream.of(lines)
.map(line -> deserialize(line, clazz))
.toList();
}
private List<Field> sortFields(List<Field> declaredFields) {
List<Field> sortedFields = Stream.of(declaredFields)
.filter(x -> x.getAnnotation(DtoField.class) != null && x.getAnnotation(DtoField.class).startPosition() >= 0)
.sortBy(x -> x.getAnnotation(DtoField.class).startPosition())
.toList();
sortedFields.addAll(Stream.of(declaredFields)
.filter(x -> x.getAnnotation(DtoField.class) != null && x.getAnnotation(DtoField.class).startPosition() < 0)
.toList());
return sortedFields;
}
public String getFieldsSplitChar() {
return fieldsSplitChar;
@@ -162,13 +192,11 @@ public class TxtMapper<T> {
}
private String applyDtoAnnotation(Object value, DtoField dtoField) {
private String applyDtoAnnotationForSerialization(Object value, DtoField dtoField) {
if (value != null) {
if (!UtilityString.isNullOrEmpty(dtoField.format()) && value instanceof Date) {
value = new SimpleDateFormat(dtoField.format()).format(value);
} else if (!UtilityString.isNullOrEmpty(dtoField.formula()) && value instanceof BigDecimal) {
// String regex = "[0-9]+\\.[0-9]{"+dtoField.scale()+"}+";
// if(Pattern.matches(regex, columnValue.toString())
value = ((BigDecimal) value).setScale(dtoField.scale(), RoundingMode.HALF_DOWN);
String formula = dtoField.formula().replaceAll("this", value.toString());
String[] opList = formula.split("\\*");
@@ -193,4 +221,29 @@ public class TxtMapper<T> {
return value != null ? value.toString() : null;
}
private void applyDtoAnnotationForDeserialization(Field field, T instance, String value, DtoField dtoField) throws Exception {
if (!UtilityString.isNullOrEmpty(value)) {
Class<?> fieldType = field.getType();
if (fieldType == Integer.class) {
field.set(instance, Integer.parseInt(value));
} else if (fieldType == BigDecimal.class) {
BigDecimal bigDecimalValue = new BigDecimal(value);
if (!UtilityString.isNullOrEmpty(dtoField.moltiplicatore())) {
bigDecimalValue = bigDecimalValue.divide(new BigDecimal(dtoField.moltiplicatore()));
}
field.set(instance, bigDecimalValue.setScale(dtoField.scale(), RoundingMode.HALF_DOWN));
} else if (fieldType == Boolean.class) {
field.set(instance, value.equalsIgnoreCase(defaultBooleanTrueValue));
} else if (fieldType == Date.class) {
if (!UtilityString.isNullOrEmpty(dtoField.format())) {
SimpleDateFormat sdf = new SimpleDateFormat(dtoField.format());
field.set(instance, sdf.parse(value));
}
} else {
field.set(instance, value);
}
}
}
}

View File

@@ -2,7 +2,7 @@ package it.integry.ems.javabeans;
import com.fasterxml.jackson.annotation.JsonInclude;
import it.integry.common.var.CommonConstants;
import it.integry.ems.json.JSONObjectMapper;
import it.integry.ems.json.ResponseJSONObjectMapper;
import it.integry.ems.model.IntegryApplicationEnum;
import it.integry.ems.user.dto.UserDTO;
import it.integry.ems_model.config.EmsRestConstants;
@@ -31,7 +31,7 @@ public class RequestDataDTO {
private HttpServletRequest request;
@Autowired
private JSONObjectMapper jsonObjectMapper;
private ResponseJSONObjectMapper jsonObjectMapper;
private String requestURI;
private String requestClientIP;
@@ -89,9 +89,9 @@ public class RequestDataDTO {
}
if (shouldIncludeNulls()) {
jsonObjectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
} else {
jsonObjectMapper.setSerializationInclusion(JsonInclude.Include.USE_DEFAULTS);
} else {
jsonObjectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
}
}

View File

@@ -1,74 +0,0 @@
package it.integry.ems.json;
import com.fasterxml.jackson.core.Version;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import it.integry.ems.adapter.*;
import it.integry.ems.response.EsitoType;
import it.integry.ems.schedule.new_cron_job.controller.AutomatedOperationController;
import it.integry.ems.schedule.new_cron_job.dto.operations.base_classes.BaseAutomatedOperationDTO;
import it.integry.ems_model.base.ComposedEntityBase;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.resolver.EntitySubTypeHolder;
import org.reflections.Reflections;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.Set;
public class CommonObjectMapper extends ObjectMapper {
private static final long serialVersionUID = 1L;
protected void setupModules(SimpleModule module) {
registerModule(module);
SimpleModule moduleSubType = new SimpleModule("test", Version.unknownVersion());
Reflections reflections = new Reflections("it.integry");
Set<Class<? extends EntityBase>> clssList = reflections.getSubTypesOf(EntityBase.class);
final Set<Class<? extends ComposedEntityBase>> subTypesOfComposed = reflections.getSubTypesOf(ComposedEntityBase.class);
clssList.addAll(subTypesOfComposed);
for (Class<? extends EntityBase> clazz : clssList) {
try {
Field f = clazz.getDeclaredField("ENTITY");
f.setAccessible(true);
String keyType = (String) f.get(null);
EntitySubTypeHolder.getMapType().put(keyType, clazz);
} catch (Exception e) {
}
moduleSubType.addAbstractTypeMapping(EntityBase.class, clazz);
registerSubtypes(clazz);
}
registerModule(moduleSubType);
}
protected SimpleModule setupAdapters() {
SimpleModule module = new SimpleModule();
module.addSerializer(Date.class, new JsonDateAdapterSerializer());
module.addDeserializer(Date.class, new JsonDateAdapterDeserializer());
module.addSerializer(LocalDate.class, new JsonLocalDateAdapterSerializer());
module.addDeserializer(LocalDate.class, new JsonLocalDateAdapterDeserializer());
module.addSerializer(LocalDateTime.class, new JsonLocalDateTimeAdapterSerializer());
module.addDeserializer(LocalDateTime.class, new JsonLocalDateTimeAdapterDeserializer());
module.addSerializer(EsitoType.class, new EsitoSerialize());
module.addDeserializer(EsitoType.class, new EsitoDeserialize());
module.addDeserializer(BigDecimal.class, new BigDecimalDeserialize());
module.addDeserializer(Integer.class, new IntegerDeserializer());
module.addDeserializer(String.class, new StringUnicodeDeserialize());
module.addDeserializer(Boolean.class, new BooleanDeserializer());
module.addDeserializer(BaseAutomatedOperationDTO.class, new AutomatedOperationController.AutomatedOperationsDeserializer());
return module;
}
}

View File

@@ -1,60 +0,0 @@
package it.integry.ems.json;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.BeanPropertyWriter;
import com.fasterxml.jackson.databind.ser.FilterProvider;
import com.fasterxml.jackson.databind.ser.PropertyFilter;
import com.fasterxml.jackson.databind.ser.PropertyWriter;
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
public class JSONObjectMapper extends CommonObjectMapper {
private static final long serialVersionUID = 1L;
public JSONObjectMapper() {
SimpleModule module = setupAdapters();
PropertyFilter theFilter = new SimpleBeanPropertyFilter() {
@Override
public void serializeAsField(Object pojo, JsonGenerator jgen, SerializerProvider provider,
PropertyWriter writer) throws Exception {
if (include(writer)) {
try {
writer.serializeAsField(pojo, jgen, provider);
return;
} catch (Exception e) {
}
} else if (!jgen.canOmitFields()) { // since 2.3
writer.serializeAsOmittedField(pojo, jgen, provider);
}
}
@Override
protected boolean include(BeanPropertyWriter writer) {
return true;
}
@Override
protected boolean include(PropertyWriter writer) {
return true;
}
};
FilterProvider filters = new SimpleFilterProvider().addFilter("jsonEntityFilter", theFilter);
setFilterProvider(filters);
// setSerializationInclusion(Include.NON_NULL);
// escape dei caratteri non standard
configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true);
configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
setupModules(module);
}
}

View File

@@ -1,76 +0,0 @@
package it.integry.ems.json;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.BeanPropertyWriter;
import com.fasterxml.jackson.databind.ser.FilterProvider;
import com.fasterxml.jackson.databind.ser.PropertyFilter;
import com.fasterxml.jackson.databind.ser.PropertyWriter;
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
import it.integry.ems_model.annotation.EntityChild;
import it.integry.ems_model.annotation.PK;
import it.integry.ems_model.annotation.SqlField;
import java.lang.reflect.Field;
public class OrdikidsResponseJSONObjectMapper extends CommonObjectMapper {
private static final long serialVersionUID = 1L;
public OrdikidsResponseJSONObjectMapper() {
SimpleModule module = setupAdapters();
PropertyFilter theFilter = new SimpleBeanPropertyFilter() {
@Override
public void serializeAsField(Object pojo, JsonGenerator jgen, SerializerProvider provider,
PropertyWriter writer) throws Exception {
if (include(writer)) {
try {
if ("operation".equals(writer.getName())) {
writer.serializeAsField(pojo, jgen, provider);
return;
} else {
Field f = pojo.getClass().getDeclaredField(writer.getName());
if (f != null) {
PK pk = f.getAnnotation(PK.class);
SqlField sqlField = f.getAnnotation(SqlField.class);
EntityChild child = f.getAnnotation(EntityChild.class);
if (pk != null || child != null || (sqlField != null && sqlField.isReturned()))
writer.serializeAsField(pojo, jgen, provider);
return;
}
}
} catch (Exception e) {
}
} else if (!jgen.canOmitFields()) { // since 2.3
writer.serializeAsOmittedField(pojo, jgen, provider);
}
}
@Override
protected boolean include(BeanPropertyWriter writer) {
return true;
}
@Override
protected boolean include(PropertyWriter writer) {
return true;
}
};
FilterProvider filters = new SimpleFilterProvider().addFilter("jsonEntityFilter", theFilter);
setFilterProvider(filters);
// escape dei caratteri non standard
configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true);
configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
setupModules(module);
}
}

View File

@@ -3,6 +3,7 @@ package it.integry.ems.json;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.BeanPropertyWriter;
@@ -11,21 +12,62 @@ import com.fasterxml.jackson.databind.ser.PropertyFilter;
import com.fasterxml.jackson.databind.ser.PropertyWriter;
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
import it.integry.ems.adapter.*;
import it.integry.ems.response.EsitoType;
import it.integry.ems.schedule.new_cron_job.controller.AutomatedOperationController;
import it.integry.ems.schedule.new_cron_job.dto.operations.base_classes.BaseAutomatedOperationDTO;
import it.integry.ems_model.annotation.EntityChild;
import it.integry.ems_model.annotation.PK;
import it.integry.ems_model.annotation.SqlField;
import it.integry.ems_model.annotation.Table;
import it.integry.ems_model.base.ComposedEntityBase;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.resolver.EntitySubTypeHolder;
import it.integry.ems_model.types.OperationType;
import org.reflections.Reflections;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.AbstractMap;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
public class ResponseJSONObjectMapper extends CommonObjectMapper {
import static org.reflections.scanners.Scanners.SubTypes;
public class ResponseJSONObjectMapper extends ObjectMapper {
private static final long serialVersionUID = 1L;
public SimpleModule addDefaultAdapters(SimpleModule module) {
module.addSerializer(Date.class, new JsonDateAdapterSerializer());
module.addDeserializer(Date.class, new JsonDateAdapterDeserializer());
module.addSerializer(LocalDate.class, new JsonLocalDateAdapterSerializer());
module.addDeserializer(LocalDate.class, new JsonLocalDateAdapterDeserializer());
module.addSerializer(LocalDateTime.class, new JsonLocalDateTimeAdapterSerializer());
module.addDeserializer(LocalDateTime.class, new JsonLocalDateTimeAdapterDeserializer());
module.addSerializer(EsitoType.class, new EsitoSerialize());
module.addDeserializer(EsitoType.class, new EsitoDeserialize());
module.addDeserializer(BigDecimal.class, new BigDecimalDeserialize());
module.addDeserializer(Integer.class, new IntegerDeserializer());
module.addDeserializer(String.class, new StringUnicodeDeserialize());
module.addDeserializer(Boolean.class, new BooleanDeserializer());
module.addDeserializer(BaseAutomatedOperationDTO.class, new AutomatedOperationController.AutomatedOperationsDeserializer());
return module;
}
public ResponseJSONObjectMapper() {
SimpleModule module = setupAdapters();
PropertyFilter theFilter = new SimpleBeanPropertyFilter() {
@Override
@@ -60,7 +102,7 @@ public class ResponseJSONObjectMapper extends CommonObjectMapper {
if (onlyPkMaster && child != null)
return;
if (pk != null || child != null || (sqlField != null && sqlField.isReturned())) {
if (pk != null || child != null || (sqlField != null && sqlField.isReturned()) || !onlyPkMaster) {
writer.serializeAsField(pojo, jgen, provider);
}
@@ -92,14 +134,41 @@ public class ResponseJSONObjectMapper extends CommonObjectMapper {
setFilterProvider(filters);
setSerializationInclusion(Include.NON_NULL);
// escape dei caratteri non standard
configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true);
SimpleModule simpleModule = new SimpleModule();
simpleModule = addDefaultAdapters(simpleModule);
setupEntityModules(simpleModule);
registerModule(simpleModule);
configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false);
configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false);
configure(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES, false);
// configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true); // escape dei caratteri non standard
setupModules(module);
setSerializationInclusion(Include.NON_NULL);
}
public void setupEntityModules(SimpleModule module) {
Reflections reflections = new Reflections("it.integry");
final List<AbstractMap.SimpleEntry<String, Class<? extends EntityBase>>> classList = reflections.get(SubTypes.of(EntityBase.class, ComposedEntityBase.class).asClass())
.stream()
.filter(x -> x.isAnnotationPresent(Table.class))
.map(x ->
new AbstractMap.SimpleEntry<String, Class<? extends EntityBase>>(
x.getAnnotation(Table.class).value(), (Class<? extends EntityBase>) x))
.collect(Collectors.toList());
for (AbstractMap.SimpleEntry<String, Class<? extends EntityBase>> classData : classList) {
EntitySubTypeHolder.getMapType().put(classData.getKey(), classData.getValue());
module.addAbstractTypeMapping(EntityBase.class, classData.getValue());
}
registerSubtypes(classList.stream().map(AbstractMap.SimpleEntry::getValue).collect(Collectors.toList()));
}
}

View File

@@ -4,7 +4,7 @@ package it.integry.ems.license;
import com.fasterxml.jackson.core.type.TypeReference;
import it.integry.annotations.PostContextConstruct;
import it.integry.ems.datasource.DataSource;
import it.integry.ems.json.JSONObjectMapper;
import it.integry.ems.json.ResponseJSONObjectMapper;
import it.integry.ems.looper.service.LooperService;
import it.integry.ems.response.EsitoType;
import it.integry.ems.response.ServiceRestResponse;
@@ -37,7 +37,7 @@ public class LicenseComponent {
private LooperService looperService;
@Autowired
private JSONObjectMapper jsonObjectMapper;
private ResponseJSONObjectMapper jsonObjectMapper;
private final HashMap<String, LicenseStatusDTO> cachedLicenseStatus = new HashMap<>();

View File

@@ -12,12 +12,13 @@ import it.integry.ems.menu.dto.StbTipoAziendaDTO;
import it.integry.ems.settings.SettingsController;
import it.integry.ems.sync.MultiDBTransaction.AdvancedDataSource;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityDebug;
import it.integry.ems.utility.UtilityDirs;
import it.integry.ems_model.entity.*;
import it.integry.ems_model.entity.Azienda;
import it.integry.ems_model.entity.StbMenu;
import it.integry.ems_model.entity.StbMenuOpz;
import it.integry.ems_model.entity.StbTipoAzienda;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityLocalDate;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,8 +27,6 @@ import org.springframework.stereotype.Service;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.List;
import static it.integry.ems_model.utility.UtilityDB.executeStatement;
@@ -95,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",
@@ -189,7 +188,7 @@ public class MenuConfigurationService {
" AND abil.flag_Abil <> 'N') Opz2Abil\n" +
" LEFT OUTER JOIN stb_Abil ON stb_Abil.cod_opz = Opz2Abil.cod_parent AND stb_abil.user_name = Opz2Abil.user_name\n" +
"WHERE stb_abil.cod_opz IS NULL",
"UPDATE azienda SET last_upg_db_menu = " + UtilityDB.valueToString("QM" + menuConfig.getVersion()));
"UPDATE azienda SET last_upg_db_menu = " + UtilityDB.valueToString(menuConfig.getVersion()));
connection.commit();

View File

@@ -1,47 +0,0 @@
package it.integry.ems.metrics.filter;
import it.integry.ems.metrics.service.MetricService;
import it.integry.ems_model.utility.UtilityString;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.context.support.WebApplicationContextUtils;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
@Component
public class MetricFilter implements Filter {
@Autowired
private MetricService metricService;
@Override
public void init(final FilterConfig config) throws ServletException {
if (metricService == null) {
metricService = (MetricService) WebApplicationContextUtils.
getRequiredWebApplicationContext(config.getServletContext()).getBean("metricService");
}
}
@Override
public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws java.io.IOException, ServletException {
final HttpServletRequest httpRequest = ((HttpServletRequest) request);
if (!UtilityString.isNullOrEmpty(httpRequest.getServletPath())) {
final String req = httpRequest.getServletPath().substring(1);
long startTime = System.nanoTime();
chain.doFilter(request, response);
double stopTime = System.nanoTime();
double execTime = (stopTime - startTime) / 1000000000;
// final int status = ((HttpServletResponse) response).getStatus();
metricService.updateCountTimeForService(req, execTime);
}
}
@Override
public void destroy() {
}
}

View File

@@ -1,98 +0,0 @@
package it.integry.ems.metrics.service;
import it.integry.ems.json.JSONObjectMapper;
import org.joda.time.LocalDateTime;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicInteger;
@Service
public class MetricService {
private static int DAY_HOUR = 24;
private final ConcurrentMap<String, Integer> barchartCountService;
private final ConcurrentMap<String, List<Double>> barchartTimeExecService;
private final int[] dayHalfHourLoad = new int[DAY_HOUR * 2];
@Autowired
private JSONObjectMapper jsonObjectMapper;
private Integer totCount = 0;
private AtomicInteger totCountHalfHour = new AtomicInteger(0);
private AtomicInteger idxArray;
private SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
public MetricService() {
barchartCountService = new ConcurrentHashMap<>();
barchartTimeExecService = new ConcurrentHashMap<>();
}
public void updateCountTimeForService(String serviceName, Double timeExec) {
if(!serviceName.startsWith("metric") &&
!serviceName.startsWith("js") &&
!serviceName.startsWith("font") &&
!serviceName.startsWith("assets") &&
!serviceName.startsWith("css") &&
!serviceName.startsWith("index.html") &&
!serviceName.endsWith("favicon.ico") &&
!serviceName.endsWith("/status") &&
!serviceName.contains("system/ok") &&
!serviceName.contains("logs")){
String[] hourMin = sdf.format(new Date()).split(":");
idxArray = new AtomicInteger(Integer.parseInt(hourMin[0]));
int incr = 0;
if (Integer.parseInt(hourMin[1]) > 29) {
incr = 1;
totCountHalfHour.getAndSet(0);
}
totCountHalfHour.getAndIncrement();
dayHalfHourLoad[idxArray.get() * 2 + incr] = totCountHalfHour.get();
totCount++;
Integer count = barchartCountService.get(serviceName);
if (count == null)
count = 0;
count++;
barchartCountService.put(serviceName, count);
List<Double> list = barchartTimeExecService.get(serviceName);
if (list == null)
list = new ArrayList<>();
list.add(timeExec);
barchartTimeExecService.put(serviceName, list);
}
}
public String getJsonCountMetric() throws Exception {
StringWriter sw = new StringWriter();
jsonObjectMapper.writeValue(sw, barchartCountService);
return sw.toString();
}
public void resetMetric() {
totCount = 0;
barchartCountService.clear();
barchartTimeExecService.clear();
}
}

View File

@@ -32,6 +32,8 @@ import java.sql.SQLException;
import java.util.*;
import java.util.stream.Collectors;
import static org.reflections.scanners.Scanners.SubTypes;
@Component
public class MigrationComponent {
@@ -60,11 +62,12 @@ public class MigrationComponent {
public void init() {
Reflections reflections = new Reflections("it.integry.ems.migration.model");
allMigrationsList = new ArrayList<>(Stream.of(reflections.getSubTypesOf(MigrationModelInterface.class))
.map(x -> x)
allMigrationsList = reflections.get(SubTypes.of(MigrationModelInterface.class).asClass())
.stream()
.map(x -> (Class<? extends MigrationModelInterface>) x)
.filter(x -> !Modifier.isAbstract(x.getModifiers()))
.sortBy(Class::getSimpleName)
.toList());
.sorted(Comparator.comparing(Class::getSimpleName))
.collect(Collectors.toList());
if (UtilityDebug.isDebugExecution())
return;
@@ -161,7 +164,12 @@ public class MigrationComponent {
.setSkipped(false);
stbMigrationStatus.setOperation(OperationType.INSERT);
} else {
stbMigrationStatus.setCompleted(true);
stbMigrationStatus
.setCompleted(true);
if (UtilityDebug.isDebugExecution())
stbMigrationStatus
.setErrorMessage(EmsRestConstants.NULL);
stbMigrationStatus.setOperation(OperationType.UPDATE);
}
@@ -263,7 +271,7 @@ public class MigrationComponent {
"La migrazione " + migrationCode + " non è andata a buon fine sul DB " + advancedDataSource.getProfileName() + ". Controllare il log per ulteriori dettagli.",
e, new Date());
} catch (Exception ex) {
logger.error("MigrationService - Mail", e);
logger.error("MigrationService - Mail", ex);
}
}

View File

@@ -10,6 +10,8 @@ import it.integry.ems.sync.MultiDBTransaction.AdvancedDataSource;
import it.integry.ems.utility.UtilityDebug;
import it.integry.ems_model.entity.Azienda;
import it.integry.ems_model.entity.StbGestSetup;
import it.integry.ems_model.entity.StbGestSetupQuery;
import it.integry.ems_model.entity.StbGestSync;
import it.integry.ems_model.exception.DataConverterNotFoundException;
import it.integry.ems_model.rulescompleting.DroolsDataCompleting;
import it.integry.ems_model.types.ApplicationName;
@@ -17,6 +19,7 @@ import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.Query;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
import it.integry.ems_model.utility.dto.IndexTableDTO;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.context.ContextLoader;
@@ -64,13 +67,11 @@ public abstract class BaseMigration implements MigrationModelInterface {
}
protected void executeStatement(Connection connection, String... sqls) throws SQLException {
Statement statement = connection.createStatement();
for (String sql : sqls) {
statement.execute(sql);
try (Statement statement = connection.createStatement()) {
for (String sql : sqls) {
statement.execute(sql);
}
}
statement.close();
}
protected long executeInsertStatement(String sql) throws SQLException {
@@ -100,6 +101,10 @@ public abstract class BaseMigration implements MigrationModelInterface {
alterObject(SqlObjectTypeEnum.FUNCTION, objectName, createFunctionSql);
}
protected void dropFunction(String objectName) throws SQLException, IOException {
dropObject(SqlObjectTypeEnum.FUNCTION, objectName);
}
protected void createOrUpdateView(String objectName, String createViewSql) throws SQLException, IOException {
alterObject(SqlObjectTypeEnum.VIEW, objectName, createViewSql);
}
@@ -118,6 +123,15 @@ public abstract class BaseMigration implements MigrationModelInterface {
sql);
}
private void dropObject(SqlObjectTypeEnum sqlObject, String objectName) throws SQLException, IOException {
executeStatement("IF EXISTS (SELECT * FROM SYSOBJECTS WHERE id = object_id('" + objectName + "'))\r\n" +
"\tDROP " + sqlObject.toString() + " " + objectName);
}
protected void createIndex(IndexTableDTO indexTableDTO) throws Exception {
UtilityDB.createIndex(advancedDataSource.getConnection(), indexTableDTO );
}
protected boolean existsColumn(String tableName, String columnName) throws SQLException, IOException {
String schema = null;
@@ -153,9 +167,10 @@ public abstract class BaseMigration implements MigrationModelInterface {
" AND OBJECT_NAME(id) = %s\n" +
" AND cdefault <> 0", columnName, tableName));
if (!existDefault)
executeStatement(Query.format("ALTER TABLE dbo." + tableName + " ADD DEFAULT (%s) FOR "+ columnName, defaultValue));
executeStatement(Query.format("ALTER TABLE dbo." + tableName + " ADD DEFAULT (%s) FOR " + columnName, defaultValue));
}
protected boolean existsTable(String tableName) throws SQLException, IOException {
String schema = null;
if (tableName.contains(".")) {
@@ -177,13 +192,20 @@ public abstract class BaseMigration implements MigrationModelInterface {
executeStatement(dropSql);
}
protected void createSetupQuery(String codQuery, String name, String query) throws SQLException, IOException {
if (UtilityString.isNullOrEmpty(codQuery)) {
executeStatement(Query.format("EXEC sp_insertQuerySetup %s", query));
return;
}
String sql = Query.format("SELECT cast(count(*) as bit) FROM stb_gest_setup_query WHERE cod_query = %s", codQuery);
boolean existQuery = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(advancedDataSource.getConnection(), sql);
protected void createSetupQuery(String codQuery, String name, String query, boolean override) throws SQLException, IOException {
if(override)
executeStatement(Query.format("DELETE FROM stb_gest_setup_query WHERE cod_query = %s", codQuery));
executeStatement(Query.format("INSERT INTO stb_gest_setup_query (cod_query, query_default, description)"+
" VALUES (%s, %s, %s);", codQuery, query, name));
if (existQuery)
executeStatement(Query.format("UPDATE stb_gest_setup_query SET query_default = %S, description = %S WHERE cod_query = %s ",
query, name, codQuery));
else
executeStatement(Query.format("INSERT INTO stb_gest_setup_query (cod_query, query_default, description)" +
" VALUES (%s, %s, %s);", codQuery, query, name));
}
protected boolean existsSetup(String gestName, String section, String keySection) throws SQLException, IOException {
@@ -195,6 +217,13 @@ public abstract class BaseMigration implements MigrationModelInterface {
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(advancedDataSource.getConnection(), sql);
}
protected boolean existsSetupQuery(String codQuery) throws SQLException, IOException {
String sql = Query.format("SELECT CAST(COUNT(*) AS BIT) AS exist FROM " + StbGestSetupQuery.ENTITY +
" WHERE cod_query = %s", codQuery);
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(advancedDataSource.getConnection(), sql);
}
protected void createSetup(String gestName, String section, String keySection, String value, String description, String codQuery) throws Exception {
if (existsSetup(gestName, section, keySection))
return;
@@ -254,12 +283,27 @@ public abstract class BaseMigration implements MigrationModelInterface {
ps.executeUpdate();
}
}
protected void createSetup(String gestName, String section, String keySection, String value, String description, boolean flagSync,
String codQuery, boolean flagUserView, boolean flagSetupDepo, boolean flagSetupUserWeb,
boolean flagTipoJson, boolean flagTipoColore, String tipoSetup, boolean flagMultiValue ) throws Exception {
if (existsSetup(gestName, section, keySection))
boolean flagTipoJson, boolean flagTipoColore, String tipoSetup, boolean flagMultiValue) throws Exception {
createSetup(gestName, section, keySection, value, description, flagSync, codQuery, flagUserView, flagSetupDepo,
flagSetupUserWeb, flagTipoJson, flagTipoColore, tipoSetup, flagMultiValue, null);
}
protected void createSetup(String gestName, String section, String keySection, String value, String description, boolean flagSync,
String codQuery, boolean flagUserView, boolean flagSetupDepo, boolean flagSetupUserWeb,
boolean flagTipoJson, boolean flagTipoColore, String tipoSetup, boolean flagMultiValue,
String query) throws Exception {
if (!UtilityDebug.isDebugExecution() && existsSetup(gestName, section, keySection))
return;
if (!UtilityString.isNullOrEmpty(query) && UtilityString.isNullOrEmpty(codQuery)) {
codQuery = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(advancedDataSource.getConnection(),
Query.format("SELECT cod_query FROM stb_gest_setup_query WHERE query_default = %s", query));
}
String insertSql = "INSERT INTO " + StbGestSetup.ENTITY +
" (gest_name, section, key_section, value, description, flag_sync, query_default,\n" +
"flag_user_view, flag_setup_depo, flag_setup_user_web,\n" +
@@ -271,13 +315,13 @@ public abstract class BaseMigration implements MigrationModelInterface {
ps.setString(3, keySection);
ps.setString(4, value);
ps.setString(5, description);
ps.setString(6, (flagSync?"S":"N"));
ps.setString(6, (flagSync ? "S" : "N"));
ps.setString(7, codQuery);
ps.setString(8, (flagUserView?"S":"N"));
ps.setString(9, (flagSetupDepo?"S":"N"));
ps.setString(10, (flagSetupUserWeb?"S":"N"));
ps.setString(11, (flagTipoJson?"S":"N"));
ps.setString(12, (flagTipoColore?"S":"N"));
ps.setString(8, (flagUserView ? "S" : "N"));
ps.setString(9, (flagSetupDepo ? "S" : "N"));
ps.setString(10, (flagSetupUserWeb ? "S" : "N"));
ps.setString(11, (flagTipoJson ? "S" : "N"));
ps.setString(12, (flagTipoColore ? "S" : "N"));
ps.setString(13, tipoSetup);
ps.setBoolean(14, flagMultiValue);
@@ -296,17 +340,60 @@ public abstract class BaseMigration implements MigrationModelInterface {
}
protected void updateSetupValue(String gestName, String section, String keySection, String newValue) throws Exception {
this.updateSetupValue(gestName, section, keySection, newValue, null, null, null,
null, null, null, null, null, null, null);
}
protected void updateSetupValue(String gestName, String section, String keySection, String newValue, String description, Boolean flagSync,
String codQuery, Boolean flagUserView, Boolean flagSetupDepo, Boolean flagSetupUserWeb,
Boolean flagTipoJson, Boolean flagTipoColore, String tipoSetup, Boolean flagMultiValue) throws Exception {
this.updateSetupValue(gestName, section, keySection, newValue, description, flagSync, codQuery, flagUserView, flagSetupDepo,
flagSetupUserWeb, flagTipoJson, flagTipoColore, tipoSetup, flagMultiValue, null);
}
protected void updateSetupValue(String gestName, String section, String keySection, String newValue, String description, Boolean flagSync,
String codQuery, Boolean flagUserView, Boolean flagSetupDepo, Boolean flagSetupUserWeb,
Boolean flagTipoJson, Boolean flagTipoColore, String tipoSetup, Boolean flagMultiValue,
String query) throws Exception {
if (!UtilityString.isNullOrEmpty(query) && UtilityString.isNullOrEmpty(codQuery)) {
codQuery = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(advancedDataSource.getConnection(),
Query.format("SELECT cod_query FROM stb_gest_setup_query WHERE query_default = %s", query));
}
StbGestSetup stbGestSetup = new StbGestSetup()
.setGestName(gestName)
.setSection(section)
.setKeySection(keySection)
.setValue(newValue);
.setValue(newValue)
.setDescription(description)
.setCodQuery(codQuery)
.setTipoSetup(tipoSetup);
if (flagSync != null)
stbGestSetup.setFlagSync(flagSync ? "S" : "N");
if (flagUserView != null)
stbGestSetup.setFlagUserView(flagUserView ? "S" : "N");
if (flagSetupDepo != null)
stbGestSetup.setFlagSetupDepo(flagSetupDepo ? "S" : "N");
if (flagSetupUserWeb != null)
stbGestSetup.setFlagSetupUserWeb(flagSetupUserWeb ? "S" : "N");
if (flagTipoJson != null)
stbGestSetup.setFlagTipoJson(flagTipoJson ? "S" : "N");
if (flagTipoColore != null)
stbGestSetup.setFlagTipoColore(flagTipoColore ? "S" : "N");
if (flagMultiValue != null)
stbGestSetup.setFlagMultiValue(flagMultiValue);
stbGestSetup.setOperation(OperationType.UPDATE);
stbGestSetup.manageWithParentConnection(advancedDataSource.getConnection());
}
protected void addAutomatedOperation(BaseScheduledOperationDTO operation) {
new Thread(() -> {
try {
@@ -364,4 +451,32 @@ public abstract class BaseMigration implements MigrationModelInterface {
return currentAzienda.getApplicationNameEnum() == ApplicationName.TEXTILES;
}
protected boolean isDMS() throws SQLException, IOException, DataConverterNotFoundException, InstantiationException, IllegalAccessException {
Azienda currentAzienda = Azienda.getDefaultAzienda(advancedDataSource.getConnection());
return currentAzienda.getApplicationNameEnum() == ApplicationName.DMS;
}
protected void enableSaveToRest(String gestName) throws Exception {
boolean existRow =
UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(advancedDataSource.getConnection(),
Query.format("SELECT cast(count(*) as bit) FROM stb_gest_sync WHERE gest_name = %s", gestName));
StbGestSync gestSync =
new StbGestSync()
.setGestName(gestName)
.setSyncronize("R");
if (existRow) {
gestSync.setOperation(OperationType.UPDATE);
} else{
String entityName =
UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(advancedDataSource.getConnection(),
Query.format("SELECT entity_name FROM stb_menu_opz WHERE gest_name = %s", gestName));
gestSync.setEntityName(entityName);
gestSync.setOperation(OperationType.INSERT);
}
gestSync.manageWithParentConnection(advancedDataSource.getConnection());
}
}

View File

@@ -43,6 +43,8 @@ public enum IntegryCustomer {
IntegryCustomerDB.Didonna_Diba,
IntegryCustomerDB.Didonna_MediimpexLiq,
IntegryCustomerDB.Didonna_DibaLiq),
DMS(IntegryCustomerDB.Siciliani_DMS),
DolceBonta(IntegryCustomerDB.DolceBonta_DolceBo,
IntegryCustomerDB.DolceBonta_Emanuela),
Dulciar(IntegryCustomerDB.Dulciar_Dulciar,
@@ -66,6 +68,7 @@ public enum IntegryCustomer {
Igood(IntegryCustomerDB.Igood_Igood,
IntegryCustomerDB.Igood_ShopService),
Ime(IntegryCustomerDB.Ime_ImeTe),
Integry(IntegryCustomerDB.Integry_Studioml),
Ivr(IntegryCustomerDB.Ivr_Vetta, IntegryCustomerDB.Ivr_Varci),
Lamonarca(IntegryCustomerDB.Lamonarca_Lamonarca),
Levanplast(IntegryCustomerDB.Levanplast_Levanplast,

View File

@@ -52,6 +52,7 @@ public enum IntegryCustomerDB {
Didonna_MediimpexLiq("mediimpexliq"),
Didonna_DibaLiq("dibaliq"),
Siciliani_DMS("DMS"),
DolceBonta_DolceBo("dolce_bo"),
DolceBonta_Emanuela("emanuela"),
@@ -96,6 +97,9 @@ public enum IntegryCustomerDB {
Ime_ImeTe("ime_te"),
Integry_Studioml("studioml"),
Ivr_Vetta("vetta"),
Ivr_Varci("varci"),

View File

@@ -10,7 +10,7 @@ public class Migration_20240314133221 extends BaseMigration implements Migration
if (isHistoryDB())
return;
createSetupQuery("TIPI_DEPO", "Tipi deposito", "SELECT cod_tipo_depo FROM mtb_depo_tipi", true);
createSetupQuery("TIPI_DEPO", "Tipi deposito", "SELECT cod_tipo_depo FROM mtb_depo_tipi");
createSetup("PVM", "PIAN_ACC_ROSSG", "TIPI_DEPO_LAV", null,
"Identifica i tipi di deposito dove è possibile far arrivare la materia prima per la produzione.",

View File

@@ -0,0 +1,66 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240408145448 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createSetupQuery("A_C",null,"SELECT 'A|Anagrafica' UNION ALL SELECT 'C|Consumi'");
createSetupQuery("ACTIVITY_TYPE","Tipo attività","select activity_type_id from stb_activity_type where flag_tipologia = 'A' and flag_attiva = 'S'");
createSetupQuery("ATTACH_LIBERI","Allegati liberi","SELECT stb_files_attached.id_attach, stb_files_attached.file_name, stb_files_attached.user_name, stb_files_attached.description, stb_files_attached.datetime_attach, stb_files_attached.file_size FROM stb_files_attached LEFT OUTER JOIN mrl_partita_mag_attached ON stb_files_attached.id_attach = mrl_partita_mag_attached.id_attach LEFT OUTER JOIN drl_ord_attached ON stb_files_attached.id_attach = drl_ord_attached.id_attach LEFT OUTER JOIN drl_doc_attached ON stb_files_attached.id_attach = drl_doc_attached.id_attach WHERE stb_files_attached.data_doc IS NULL AND stb_files_attached.num_doc IS NULL AND parent_id_attach IS NULL AND mrl_partita_mag_attached.id_attach IS NULL AND mrl_partita_mag_attached.id_attach IS NULL AND mrl_partita_mag_attached.id_attach IS NULL AND flag_lock = 'N' AND file_size > 0 ORDER BY stb_files_attached.file_name");
createSetupQuery("COD_ALIQ","Aliquota","SELECT cod_aliq FROM gtb_aliq ORDER BY 1");
createSetupQuery("COD_ANAG_CLIE","Cod. cliente","SELECT gtb_anag.cod_anag FROM gtb_anag INNER JOIN vtb_clie ON gtb_anag.cod_anag = vtb_clie.cod_anag AND vtb_clie.flag_stato = 'A' ORDER BY 1");
createSetupQuery("COD_ANAG_FORN","Cod. fornitore","SELECT gtb_anag.cod_anag FROM gtb_anag INNER JOIN atb_forn ON gtb_anag.cod_anag = atb_forn.cod_anag AND atb_forn.flag_stato = 'A' ORDER BY 1");
createSetupQuery("COD_ATIP","Tipo fornitore","SELECT cod_atip FROM atb_tipi ORDER BY 1");
createSetupQuery("COD_CCAU","Causale contabile","SELECT cod_ccau FROM ctb_caus ORDER BY 1");
createSetupQuery("COD_DTIP","Tipo Doc.","SELECT cod_dtip FROM dtb_tipi order by 1");
createSetupQuery("COD_DTIP_A","Tipo Doc. Acq.","select cod_dtip from dtb_tipi where gestione = 'A' order by 1");
createSetupQuery("COD_DTIP_L","Tipo Doc. Lav.","select cod_dtip from dtb_tipi where gestione = 'L' order by 1");
createSetupQuery("COD_DTIP_L_CAR",null,"SELECT cod_dtip FROM dtb_tipi WHERE gestione = 'L' AND ( segno_qta_car > 0 OR segno_qta_scar < 0 )");
createSetupQuery("COD_DTIP_L_SCAR",null,"SELECT cod_dtip FROM dtb_tipi WHERE gestione = 'L' AND ( segno_qta_car < 0 or segno_qta_scar > 0 )");
createSetupQuery("COD_DTIP_V","Selezione tipo documento di vendita","select cod_dtip from dtb_tipi where gestione = 'V' and tipo_emissione = 'DIRETTA' order by 1");
createSetupQuery("COD_JCOM","Commessa","SELECT cod_jcom FROM jtb_comt ORDER BY 1");
createSetupQuery("COD_JFAS","Cod. fase","SELECT cod_jfas FROM jtb_fasi WHERE flag_attivo = 'S' ORDER BY 1");
createSetupQuery("COD_JFLAV",null,"select cod_jflav from jtb_flav");
createSetupQuery("COD_MDEP","Tutti i depositi","SELECT cod_mdep FROM mtb_depo ORDER BY 1");
createSetupQuery("COD_MGRP","Gruppi merceologici","select cod_mgrp from mtb_grup");
createSetupQuery("COD_PAGA","Tipo pagamento","SELECT cod_paga FROM gtb_paga WHERE flag_attivo = 'S' ORDER BY 1");
createSetupQuery("COD_SPES","Cod. spesa","SELECT cod_spes FROM gtb_spes ORDER BY 1");
createSetupQuery("COD_VAGE",null,"select cod_vage + '|'+ cod_vage + ' - ' + rag_soc from vtb_agen where data_fine_rap is null order by rag_soc");
createSetupQuery("COD_VLIS",null,"SELECT cod_vlis FROM vtb_list WHERE flag_attivo = 'S'");
createSetupQuery("COD_VVET",null,"select cod_vvet + '|'+rag_soc from vtb_vett");
createSetupQuery("EQUI_PREZZO_VEN",null,"SELECT 'N|NON EQUIVALENTE NEL PREZZO' UNION ALL SELECT 'B|EQUIVALENTE NEL PREZZO BASE' UNION ALL SELECT 'V|EQUIVALENTE NEL PREZZO DI VENDITA' UNION ALL SELECT 'R|EQUIVALENTE NEL RICARICO' UNION ALL SELECT 'P|EQUIVALENTE NEL RICARICO E PREZZO DI VENDITA' UNION ALL SELECT 'T|EQUIVALENTE NEL PREZZO BASE, RICARICO E PREZZO DI VENDITA'");
createSetupQuery("FLAG_3_STATI","flag con tre stati","SELECT 0 UNION ALL SELECT 1 UNION ALL SELECT 2");
createSetupQuery("GRIGLIA_AGENTI",null,"SELECT DISTINCT cod_vage FROM vtb_agen_group");
createSetupQuery("GRUPPI_UTENTI_W",null,"SELECT key_group, UPPER(user_group) FROM wtb_user_groups ORDER BY key_group");
createSetupQuery("I_P",null,"SELECT 'I|INSERISCI' UNION ALL SELECT 'P|STAMPA'");
createSetupQuery("LOAD_BOLLE_DESC",null,"select 'D|DATI DESTINATARIO' UNION ALL select 'O|ORDINE INTERNO + ORDINE CLIENTE'");
createSetupQuery("MEZZO",null,"select mezzo from gtb_mezzo");
createSetupQuery("PORTO",null,"select porto from gtb_porto");
createSetupQuery("PRINTER_NAME","Nome stampante","SELECT name FROM stb_printers order by 1");
createSetupQuery("PROCESSO",null,"select activity_type_id FROM stb_activity_type WHERE flag_attiva = 'S' AND flag_tipologia = 'P'");
createSetupQuery("REPORT_NAME","Nome report","SELECT report_name FROM wtb_jrept ORDER BY 1");
createSetupQuery("SI_NO","Flag S/N","SELECT 'S' UNION ALL SELECT 'N'");
createSetupQuery("SIGNUP_MODE",null,"select 'MAILONLY', 'MAILONLY' UNION ALL SELECT 'CODANAG_PARTIVA', 'CODANAG_PARTIVA' UNION ALL SELECT 'REGISTRAZIONE_CLIENTI', 'REGISTRAZIONE_CLIENTI'");
createSetupQuery("STATO_COMMESSA","Stato commessa","SELECT stato_commessa FROM jtb_com_stato WHERE flag_attivo = 'S' ORDER BY 1");
createSetupQuery("STORED_PROCEDUR",null,"SELECT name FROM SYSOBJECTS WHERE XTYPE = 'p' AND category = 0 order BY name");
createSetupQuery("TIPI_DEPO","Tipi deposito","SELECT cod_tipo_depo FROM mtb_depo_tipi");
createSetupQuery("TIPO_CALC_TRASP",null,"SELECT 'PESO' UNION ALL SELECT 'COLLI'");
createSetupQuery("TRUE_FALSE",null,"SELECT 'true' union all select 'false'");
createSetupQuery("UNITA_MISURA",null,"select unt_mis from mtb_unt_mis where flag_attivo = 'S'");
createSetupQuery("VAL_SCARICHI",null,"SELECT 'C|Costo ultimo' UNION ALL SELECT 'V|Valore vendita'");
createSetupQuery("VAR_CAMPI_LIBER",null,"SELECT 'P|POSIZIONE ARTICOLO' UNION ALL SELECT 'M|MEDIA SETTIMANALE VENDITE'");
createSetupQuery("YES_NO","","SELECT 'Yes' UNION SELECT 'No'");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -1,17 +1,21 @@
package it.integry.ems.migration.model;
import it.integry.ems.entity_logger.db_schema_manager.component.SQLServerDBSchemaManager;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.IntegryCustomer;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240408151802 extends BaseMigration implements MigrationModelInterface {
import java.util.List;
public class Migration_20240408151803 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if (isCustomer(IntegryCustomer.Tosca,
if (isCustomer(
IntegryCustomer.Tosca,
IntegryCustomer.Biolevante,
IntegryCustomer.Cosmapack,
IntegryCustomer.Dulciar,
@@ -23,11 +27,16 @@ public class Migration_20240408151802 extends BaseMigration implements Migration
IntegryCustomer.ResinaColor,
IntegryCustomer.Ivr,
IntegryCustomer.Sardinya,
IntegryCustomer.Didonna))
{
IntegryCustomer.Didonna,
IntegryCustomer.Smetar)) {
updateSetupValue("DATI_AZIENDA", "SETUP", "DELIMITED_IDENTIFIER", "1");
updateSetupValue("DATI_AZIENDA", "SETUP", "FLAG_ANSI_PADDING", "S");
updateSetupValue("DATI_AZIENDA", "SETUP", "FLAG_CONCAT_NULL_YIELDS_NULL", "S");
SQLServerDBSchemaManager schemaManager = new SQLServerDBSchemaManager(this.advancedDataSource.getConnection());
final List<String> queries = schemaManager.generateAlterTableToDisableAnsiPadding();
//executeStatement(queries.toArray(new String[0]));
}
}

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_20240409102838 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
executeStatement("ALTER TABLE ctb_beni ALTER COLUMN descrizione varchar(1024)");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,59 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240409131537 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createOrUpdateView("cvw_saldiAnagAnno", "CREATE view cvw_saldiAnagAnno as \n" +
"select cod_anag, cod_ccon, anno_comp, sum(saldo_iniz) as saldo_iniz, sum(dare) as dare, sum(avere) as avere from (\n" +
"SELECT ctb_movr.cod_anag,\n" +
" ctb_movr.cod_ccon,\n" +
" ctb_movt.anno_comp,\n" +
" 0 AS saldo_iniz,\n" +
" SUM(imp_dare) AS dare,\n" +
" SUM(imp_avere) AS avere\n" +
"FROM ctb_anag,\n" +
" ctb_caus,\n" +
" ctb_movr,\n" +
" ctb_movt\n" +
"WHERE (ctb_caus.cod_ccau = ctb_movr.cod_ccau)\n" +
" AND (ctb_anag.cod_anag = ctb_movr.cod_anag)\n" +
" AND (ctb_anag.cod_ccon = ctb_movr.cod_ccon)\n" +
" AND (ctb_movt.num_cmov = ctb_movr.num_cmov)\n" +
" AND ((ctb_caus.flag_ap_ch <> 'A' AND ctb_caus.flag_ap_ch <> 'F'))\n" +
"GROUP BY ctb_movr.cod_anag, ctb_movr.cod_ccon, ctb_movt.anno_comp\n" +
"UNION\n" +
"SELECT ctb_movr.cod_anag,\n" +
" ctb_movr.cod_ccon,\n" +
" ctb_movt.anno_comp,\n" +
" SUM(imp_dare - imp_avere) AS saldo_iniz,\n" +
" 0 AS dare,\n" +
" 0 AS avere\n" +
"FROM ctb_anag,\n" +
" ctb_caus,\n" +
" ctb_movr,\n" +
" ctb_movt\n" +
"WHERE (ctb_caus.cod_ccau = ctb_movr.cod_ccau)\n" +
" AND (ctb_anag.cod_anag = ctb_movr.cod_anag)\n" +
" AND (ctb_anag.cod_ccon = ctb_movr.cod_ccon)\n" +
" AND (ctb_movt.num_cmov = ctb_movr.num_cmov)\n" +
" AND ((ctb_caus.flag_ap_ch = 'A'))\n" +
"GROUP BY ctb_movr.cod_anag, ctb_movr.cod_ccon, ctb_movt.anno_comp\n" +
") t \n" +
"group by cod_anag, cod_ccon, anno_comp");
}
@Override
public void down() throws Exception {
}
}

Some files were not shown because too many files have changed in this diff Show More