Compare commits

...

312 Commits

Author SHA1 Message Date
e3f4196e42 Finish FixTransUl
Some checks failed
PVM/pipeline/head There was a failure building this commit
2025-12-16 12:06:57 +01:00
13dfca6944 Corretta chiusura popup trasferimento in caso di stampa in popup trasferimento 2025-12-16 12:06:43 +01:00
4e15508d80 Finish FixAddArt
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-15 11:11:36 +01:00
6502abf6ba Fix articolo non visibile in aggiunta al listino in popup ordine se presente in contratto 2025-12-15 11:09:33 +01:00
f68da24f87 Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-12 17:15:29 +01:00
ef816ecf1a aggiunti parametri 2025-12-12 17:13:28 +01:00
aed3eac4b8 Fix stampe in popup trasferimento controllo giacenze
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-12 16:16:34 +01:00
d891fefae8 Fix messaggio articoli senza prezzo sostituito dal fido in popup ordine dp
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-12 15:46:05 +01:00
8c80c27ea9 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-11 16:29:59 +01:00
92761f3d85 Finish Hotfix-15
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-11 16:29:58 +01:00
1ba7b7ad33 aggiunto fitlro per deposito 2025-12-11 15:39:18 +01:00
5f3d47f20d Unificato popup trasferimento da refactoring
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-11 12:51:22 +01:00
bf3da20652 Unificato popup trasferimento da refactoring
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-11 09:45:40 +01:00
0c092ed928 Finish Hotfix-15
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-10 15:54:55 +01:00
c748a65d71 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-10 15:54:55 +01:00
7f78643d0e cambiata condizione sui pv 2025-12-10 15:52:26 +01:00
6c93df7b4e Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-10 12:24:00 +01:00
eda828a708 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-10 12:23:59 +01:00
945cea8b7c [Anomalie UL]
- TabView per visualizzazione e gestione dei livelli di anomalia
2025-12-10 12:23:38 +01:00
25de0b8d12 Gestita richiesta dei dati del documento in trasferimento ul controllo giacenze
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-10 10:16:42 +01:00
9dc5ad1672 Gestita richiesta dei dati del documento in trasferimento ul controllo giacenze
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-10 10:08:56 +01:00
8a313bc694 Gestita richiesta dei dati del documento in trasferimento ul controllo giacenze
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-10 09:53:05 +01:00
f09c599d82 - fix drag to select in savableTable
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-09 16:23:56 +01:00
be22f27b6d Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-09 14:34:56 +01:00
06b200094d Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-09 14:34:55 +01:00
09d778b68d corretto reloading datsource in modifica anomalie 2025-12-09 14:33:52 +01:00
cc15afd890 Merge tag 'Release-2' into develop
All checks were successful
PVM/pipeline/head This commit looks good
Finish Release-anomalie
2025-12-09 12:42:48 +01:00
4a3cac8f60 Merge branch 'release/Release-2'
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-09 12:42:47 +01:00
7572634526 Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-09 12:41:49 +01:00
c13c3eec4f [CONTROLLO GIACENZE]
- gestite anomalie merce
2025-12-09 12:41:35 +01:00
1f3dadfd21 Finish FixSaveManutenzione
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-09 10:32:25 +01:00
152c53859c Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-09 10:32:25 +01:00
c3cd28938a Corretto creazione ordine in manutenzione macchinari 2025-12-09 10:32:08 +01:00
e01f8af9ce [Rossogargano - Non conformità]
- fix nuova anomalia
- merge da branch nuovi colli
2025-12-05 13:38:35 +01:00
a751b01146 Merge remote-tracking branch 'origin/develop' into develop 2025-12-05 11:10:09 +01:00
9f46de09f4 [Rossogargano - Non conformità]
- creata nuova gestione non conformità
2025-12-05 11:09:52 +01:00
194a6be744 Fix cancellazione dataRifScad in contratti di vendita e delivery plan
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-04 17:40:20 +01:00
5ac7033aa1 Gestito gruppo SC come SL in azzeramento magazzino prod 2025-12-04 17:35:46 +01:00
525e9a35c1 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-04 15:16:07 +01:00
e8d4c893c0 Finish FixRicambi
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-04 15:16:06 +01:00
fef34df435 Fix dropdownlist articoli in macchinari prod 2025-12-04 15:14:25 +01:00
a33e509b14 Ordini per deposito utente in piano arrivi, qta ord in storico mes e modifica query statistiche listini vendita
Some checks are pending
PVM/pipeline/head Build queued...
2025-12-04 15:12:26 +01:00
4fe3a6639a Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-04 15:07:37 +01:00
82aea4f73a Modifica query approvvigionamenti AURICCHIO 2025-12-04 15:07:07 +01:00
cce2aff5da Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-03 16:59:36 +01:00
7f5693b623 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-03 16:59:35 +01:00
333f7f6b1d [GRAMM]
- fix errore download scheda tecnica
2025-12-03 16:59:12 +01:00
57c15fca36 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-03 11:41:27 +01:00
16c13c96d4 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-03 11:41:26 +01:00
3adae42e13 [DELIVERY PLAN]
- gestiti caratteri speciali in conflitti note ordini
2025-12-03 11:41:01 +01:00
3b7ecb6279 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-02 16:02:06 +01:00
6e04ee70c9 Finish FixGetArticoli
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-02 16:02:06 +01:00
1be6647903 Fix errore campo mancante in popup nuovo materiale mes 2025-12-02 16:01:43 +01:00
6895c17781 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-02 11:47:05 +01:00
ff783398b1 Finish FixUpdEntriesWeb
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-02 11:47:04 +01:00
3cd4b5f93a Corretto invio richieste di tipo form 2025-12-02 11:46:50 +01:00
09c9706e05 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-01 18:20:31 +01:00
825f7f5c4a Finish CMMSRicambi
All checks were successful
PVM/pipeline/head This commit looks good
2025-12-01 18:19:31 +01:00
b17f6d62b3 Gestito e configurato guzzl, gestiti ricambi in macchinari prod 2025-12-01 18:19:02 +01:00
68820281b2 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-27 13:17:42 +01:00
4484a23cc4 Finish FixQueryListVend
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-27 13:17:42 +01:00
4a602184d3 Fix lentezza query listino vendita delivery plan 2025-11-27 13:17:23 +01:00
55be4808a1 eliminati ordini agganciati ai colli
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-27 11:05:11 +01:00
f9c03367da Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-27 10:30:34 +01:00
8929de84f7 Finish FixSaveCq
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-27 10:30:33 +01:00
d72c6d9476 Corretto salvataggio e cancellazione cq per tipologia 2025-11-27 10:30:14 +01:00
fb83c28919 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-26 16:27:04 +01:00
73b54e058b Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-26 16:27:03 +01:00
3fda9384b0 Merge branch 'master' into hotfix/Hotfix-15 2025-11-26 16:26:48 +01:00
2ee3a85fbe [Carelli - Modellini]
- gestita lista di articoli in form ispezioni
2025-11-26 16:26:18 +01:00
60f2bb8fef Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-26 11:11:25 +01:00
6b133e8388 Finish FixDupOrdDP
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-26 11:10:58 +01:00
90dbf28bd1 Rimossi viaggi in duplica ordine delivery plan 2025-11-26 11:10:42 +01:00
496d91ff3c Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-26 10:29:58 +01:00
a1a520d4b2 Finish FixLoginMD5
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-26 10:29:58 +01:00
bf3b1b1955 Corretta login con md5 2025-11-26 10:29:41 +01:00
bc0be3565a Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-25 10:17:21 +01:00
8737c2f13f Finish FixDataAddType
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-25 10:17:20 +01:00
d1a20eb06e Fix errore se nessun filtro in dataAddType 2025-11-25 10:17:03 +01:00
3227cec406 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-24 13:42:41 +01:00
0f41c64ddb Finish FixUpdateMaster
All checks were successful
PVM/pipeline/head This commit is unstable
2025-11-24 13:42:40 +01:00
5c8ff8600c Modifica modalita pubblicazione da ftp ad ssh 2025-11-24 13:35:28 +01:00
a1abc0c809 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-24 12:14:38 +01:00
7d75d11b50 Finish FixUpdateMaster
All checks were successful
PVM/pipeline/head This commit is unstable
2025-11-24 12:14:37 +01:00
58b1a5b424 Modifica modalita pubblicazione da ftp ad ssh 2025-11-24 12:14:23 +01:00
74e0ca4fa2 Merge branch 'master' into develop
Some checks failed
PVM/pipeline/head There was a failure building this commit
2025-11-24 11:39:26 +01:00
74b2aafe3c Finish FixUpdateMaster
All checks were successful
PVM/pipeline/head This commit is unstable
2025-11-24 11:39:25 +01:00
82f68cf520 Modifica modalita pubblicazione da ftp ad ssh 2025-11-24 11:39:10 +01:00
d04277192e Merge branch 'master' into develop
Some checks failed
PVM/pipeline/head Something is wrong with the build of this commit
2025-11-24 11:37:50 +01:00
fd6a1a2f74 Finish FixUpdateMaster
Some checks failed
PVM/pipeline/head Something is wrong with the build of this commit
2025-11-24 11:37:50 +01:00
b07af1cc18 Modifica modalita pubblicazione da ftp ad ssh 2025-11-24 11:37:35 +01:00
68b967ca0a Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-24 11:22:53 +01:00
181e24efc1 Finish FixUpdateMaster
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-24 11:22:52 +01:00
0ba636ba7f Modifica modalita pubblicazione da ftp ad ssh 2025-11-24 11:22:36 +01:00
f7cacc6a61 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-24 10:22:25 +01:00
6d2d376358 Finish FixUpdateMaster
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-24 10:22:24 +01:00
6e087ac049 Modifica modalita pubblicazione da ftp ad ssh 2025-11-24 10:22:07 +01:00
jenkins
70892a332d Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit is unstable
2025-11-23 07:21:42 +01:00
a595442cac Gestito focus sul campo password in caso di credenziali non valide
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-20 09:59:49 +01:00
0a006e81ef Cambio decimali in costo trasporto listini di vendita 2025-11-20 09:40:11 +01:00
be767b2c34 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-19 15:49:47 +01:00
2c259f2a07 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-19 15:49:47 +01:00
8c22d00faf [Controllo giacenze]
- fix gestione colonne nascoste/visibili
2025-11-19 15:49:23 +01:00
a1960a6164 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-19 12:37:04 +01:00
09b742ddf5 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-19 12:37:03 +01:00
0fec755244 corretto nome gestione ordini di produzione per cambio su wingest 2025-11-19 12:36:40 +01:00
f6d3405bc8 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-18 15:30:20 +01:00
33be4a79d8 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-18 15:30:19 +01:00
ffd098ddcd [Kendo]
- risolto problema sui filtri varchar con rappresentazione numerica
2025-11-18 15:29:32 +01:00
7f8d1de28d Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-18 13:22:09 +01:00
82da3e6527 Finish FixButtonDP
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-18 13:22:08 +01:00
8f6fbed5ec Fix pulsanti stampa non cliccabili in popup ordine delivery plan 2025-11-18 13:21:55 +01:00
5a915ca77c Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-18 13:07:04 +01:00
b86f3e3900 Finish FixBancaDP
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-18 13:07:03 +01:00
eddd90f1ab Rimosso controllo modifica flag banca ven in cambio cod paga popup ordine delivery plan 2025-11-18 13:06:45 +01:00
025c6de857 Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-18 12:18:53 +01:00
15d12263d4 Aggiunta condizione per escludere ordini fatturati 2025-11-18 12:18:38 +01:00
f779338879 [MRP]
All checks were successful
PVM/pipeline/head This commit looks good
-fix filtro num ordine
2025-11-18 12:16:30 +01:00
8d64f5ed42 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-18 12:10:16 +01:00
b20aca0c1b Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-18 12:10:15 +01:00
9bf2e2c450 [Controllo giacenze]
- fix in filtri con valori numerici in campi varchar
2025-11-18 12:08:51 +01:00
df0f111571 [MRP]
All checks were successful
PVM/pipeline/head This commit looks good
- aggiunto filtro su numero ordine
2025-11-18 11:31:44 +01:00
a7b71d538c Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-18 11:31:09 +01:00
510cd46ff6 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-18 11:31:09 +01:00
fdf6ed0229 [Controllo giacenze]
- fix ricerca
2025-11-18 11:30:47 +01:00
598b5d0a85 [MES]
All checks were successful
PVM/pipeline/head This commit looks good
- rimossa distinta obbligatoria in query ordine lav
2025-11-17 17:47:14 +01:00
c15b7fc33e Finish FixDPPopupOrd
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-17 17:41:09 +01:00
071f46e5fd Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-17 17:41:09 +01:00
f70c17bc69 Fix width articolo in popup ordine delivery plan 2025-11-17 17:40:32 +01:00
195333136f Finish Hotfix-15
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-17 15:35:31 +01:00
b52adf3144 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-17 15:35:31 +01:00
6d311e5054 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-17 15:35:05 +01:00
00f38fa56c Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-17 15:35:04 +01:00
93ab6d9298 aggiunta immagine a sistemata query 2025-11-17 15:34:52 +01:00
b2f53e63e0 Merge branch 'master' into hotfix/Hotfix-15 2025-11-17 15:34:49 +01:00
e2efa1e9b4 [Controllo giacenze]
- fix doppio filtro su campi cod_mart e cod_mdep
- aggiunto controllo sui depositi utilizzabili dall'utente
2025-11-17 15:34:07 +01:00
704ab8c742 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-17 15:13:26 +01:00
75cdb8c0ea Finish Hotfix-100
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-17 15:13:25 +01:00
4da8997786 aggiunta immagine a sistemata query 2025-11-17 15:13:08 +01:00
cab8782281 aggiunta immagine a sistemata query 2025-11-17 15:12:51 +01:00
4c5149f21d Finish LoginJWT
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-17 12:36:33 +01:00
92da2191df Gestito login con token jwt 2025-11-17 12:20:03 +01:00
1ef37d47f5 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-17 12:11:45 +01:00
afd1b2bfb2 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit is unstable
2025-11-17 12:11:43 +01:00
0b728b3e61 [Delivery Plan]
- corretto controllo su righe di vendita evase
2025-11-17 12:11:07 +01:00
43b73417c4 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-17 11:18:19 +01:00
2f077574bf Finish ContGiacRead
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-17 11:16:56 +01:00
7cc0bb5e1d Rimosso read ad apertura giacenze 2025-11-17 11:16:40 +01:00
019d38fe71 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-14 15:46:59 +01:00
550466fb1f Finish FixSaveSegnalazione
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-14 15:46:58 +01:00
d428b2a660 Corretto salvataggio allegati in segnalazione modellini 2025-11-14 15:46:43 +01:00
220f2903bf [CMMS]
All checks were successful
PVM/pipeline/head This commit looks good
- rimosso codice deposito da anagrafica macchinari
2025-11-14 12:18:20 +01:00
d6ee4198ae Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-14 09:53:58 +01:00
bba4103d8a [GRAMM - MES]
- ripianificazione ordine lav tramite servizio
2025-11-14 09:53:38 +01:00
638f399929 Rimosso file inutile
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-14 09:30:12 +01:00
b4b41aa431 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-13 18:47:11 +01:00
8da5157f93 Finish FixCreaUdc
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-13 18:47:10 +01:00
eea7530563 Fix in creazione risposta in createUDS 2025-11-13 18:46:55 +01:00
8729f6ccc8 Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-13 15:52:54 +01:00
386161064f [GRAMM - MES]
- aggiunta nuova categoria di controlli di qualità
2025-11-13 15:52:32 +01:00
60af3b04ee Cambio titolo pagina ordini v slim2k
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-13 15:35:49 +01:00
32181a9c9e Ordinato anche per progressivo ul in popup ordine mes
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-13 15:27:24 +01:00
1cb0fc8a4e Creata tabella ordini v slim2k 2025-11-13 15:26:52 +01:00
6873371cd7 logo capelli monelli
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-13 12:38:08 +01:00
ea343fdabc Gestito flag evaso sulle righe popup ordine delivery plan
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-13 10:58:01 +01:00
59be998b44 Fix filtro utente in chiusura tagli prezzo
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-12 18:15:44 +01:00
32c1a6585f Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-12 12:59:50 +01:00
87020dd47d Finish AttivazioneTabUDCMes
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-12 12:59:49 +01:00
9d79008230 Attivata tab udc anche senza colli in popup ordine mes 2025-11-12 12:58:31 +01:00
2988fe27be gestito tipo um
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-11 17:26:07 +01:00
193907efc0 Finish FixContextMenuCntrolloGiac
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-11 17:19:07 +01:00
59309e7ea9 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-11 17:19:07 +01:00
dbd59cf54e Fix context menu sostituito anche per thead della tabella in controllo giacenze 2025-11-11 17:18:49 +01:00
bbdcd5946e Forzata creazione setup base per setup user
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-11 11:47:47 +01:00
6b0737a929 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-11 11:16:19 +01:00
f9377ba14d Finish RevertDCodBancDP
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-11 11:16:18 +01:00
72ef5d0836 Annullata modifica su cod_banc 2025-11-11 11:15:38 +01:00
9e821fda61 Impostati cq solo standard per deposito 01
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-10 16:54:36 +01:00
38570211ac Finish FixCQDate
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-10 16:12:45 +01:00
f5a63dd9ad Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-10 16:12:45 +01:00
2b698b026e Fix salvataggio cq per deposito 01 gramm 2025-11-10 16:12:39 +01:00
fca19d1018 portato divario di minuti in timepicker manutenzioni ad 1 minuto
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-10 13:20:16 +01:00
157e6ea8ed Finish FixCodBancDP
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-10 12:33:15 +01:00
8379c03474 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-10 12:33:15 +01:00
6e6c090a3b Fix errore se in nuovo ordine popup delivery plan 2025-11-10 12:33:00 +01:00
9f5bd0720c Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-10 12:12:12 +01:00
b0404b0ee1 modifiche a mrp 2025-11-10 12:11:45 +01:00
30f1cc0994 Spostata modifiche query listini-vendita da branch refactoring
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-10 11:52:45 +01:00
95d51e05d7 Gestite note incoterms da ordine in creazione viaggio
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-10 11:12:04 +01:00
c1443e6313 Impostata data validita fissa alla versione con data prima dell'ordine in aggiunta art listino delivery plan
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-07 17:18:52 +01:00
a939a8b4dd Fix campi non svuotati in aggiunta nuova riga cq gramm
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-07 16:51:28 +01:00
d6ed4324db Fix descrizione del fermo troppo stretta
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-07 12:16:28 +01:00
a35f1c5cac Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-06 18:09:30 +01:00
7f30268db5 sistemata query 2025-11-06 16:49:33 +01:00
33a739cd5a Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-06 16:18:59 +01:00
2de5d92ac9 Finish FixIdViaggioDP
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-06 16:18:58 +01:00
31acf9172b Fix id viaggio non assegnato se nuova riga in popup ordine 2025-11-06 16:18:42 +01:00
7f14c2e444 Revert mostrati solo articoli con flag primario in aggiunta articoli popup ordine delivery plan, usato solo in order by
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-06 16:03:01 +01:00
ee473209d2 Mostrati solo articoli con flag primario in aggiunta articoli popup ordine delivery plan
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-06 15:58:01 +01:00
f259928f95 Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-06 12:16:49 +01:00
e375fa4df7 aggiunta pagina OrdiniVSlim2k 2025-11-06 12:16:32 +01:00
557b934434 aggiunta pagina OrdiniVSlim2k 2025-11-06 12:16:11 +01:00
84b30d6d61 Mostrati solo articoli con flag primario in aggiunta articoli popup ordine delivery plan
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-06 12:13:41 +01:00
2c732d375f Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-06 09:51:51 +01:00
5bcba57fb3 Aggiunto filtro su flag primario in tab costi listini di vendita
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-05 18:38:55 +01:00
aaa258f6d1 Fix cod_jfas errato in storico ordini al cambio linea monitoraggio ordini
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-05 17:21:22 +01:00
84566fa7cd aggiunto capelli monelli 2025-11-05 15:59:23 +01:00
21f085f9e9 Fix null su flag banca ven in nuovo ordine
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-05 15:28:14 +01:00
9f45a1575f Impostato filtro suddivisione e riassortimento se non punto vendita
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-05 14:58:12 +01:00
cde2435693 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-05 12:18:27 +01:00
85cf0e1a84 Finish ModifListiniVend
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-05 12:18:26 +01:00
e5ee119819 Gestito group_equi null in listini di vendita 2025-11-05 12:18:11 +01:00
e46b154362 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-05 11:11:56 +01:00
29e0d2b52c Finish FixEModifStat
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-05 11:11:56 +01:00
5e6efdd63b Fix errore creaViaggio body troppo lungo, modificato gruppo statistiche in listini di vendita e descrizione art estesa 2025-11-05 11:11:39 +01:00
fad540afae Gestita banca in contratti di vendita e delivery plan
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-05 11:04:50 +01:00
d37e3bb930 Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-04 12:26:17 +01:00
438e77fe07 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-04 09:43:54 +01:00
73bb0ff43e Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-04 09:43:53 +01:00
36b70ebd80 fix: contextMenu in errore su articoli senza posizione 2025-11-04 09:43:33 +01:00
f37aff119c modificata chiamata al servizio 2025-11-03 12:51:11 +01:00
2b098d2977 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-03 12:22:48 +01:00
b199436934 Finish FixPopupOrdDP
All checks were successful
PVM/pipeline/head This commit looks good
2025-11-03 12:22:48 +01:00
176417b508 Fix errore in nuovo ordine dp 2025-11-03 12:21:19 +01:00
1961c74290 Modificato messaggio errore foritore non valido
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-31 17:44:08 +01:00
88186d90b1 Gestito tipo valore dropdownlist in controlli qualita
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-30 16:07:15 +01:00
00cb5135d8 Fix calcolo qta in query giacenze mes
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-29 16:07:06 +01:00
bd6cb118b1 Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-29 15:13:11 +01:00
6db01fba80 aggiunti nuovi campi della vista 2025-10-29 15:12:42 +01:00
9ea40beefa Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-29 10:52:09 +01:00
993d5129ab Finish FixCambioDataPartDP
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-29 10:52:08 +01:00
2fe3ed8e02 Corretta modifica data consegna su righe ordini con viaggi agganciati 2025-10-29 10:51:35 +01:00
c2a5387d63 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit is unstable
2025-10-29 09:51:52 +01:00
6d282e589f Finish FixArticoliAll
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-29 09:51:51 +01:00
61922ba1a8 Fix query list-articoli-all se non usa kendo 2025-10-29 09:51:41 +01:00
fd5cd04ffb Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-28 12:22:59 +01:00
08737a18fa Finish FixListiniVend
All checks were successful
PVM/pipeline/head This commit is unstable
2025-10-28 12:22:58 +01:00
420ecd95b4 Corretta modifica unt mis ven e cancellazione trasporti in listini di vendita 2025-10-28 12:22:41 +01:00
17731d5b5d Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-22 16:46:44 +02:00
7791252860 Finish FixCreaViaggio
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-22 16:46:44 +02:00
435aa9c18e Fix in creazione viaggi da ordini con incoterms 2025-10-22 16:46:29 +02:00
8521f581d6 Sistemata query listini quando ci sono equivalenti
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-22 16:25:46 +02:00
836ded1b56 Finish ModifListiniVend
Some checks failed
PVM/pipeline/head There was a failure building this commit
2025-10-22 11:55:34 +02:00
e5807d98fa Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-22 11:55:34 +02:00
bb639337c0 Gestita creazione nuovo listino vuoto in listini di vendita e modifica tab statistiche 2025-10-22 11:55:18 +02:00
a80f0f1cfd Finish MargNegStat
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-21 17:56:37 +02:00
ddabd0a9e8 Merge branch 'master' into develop
Some checks failed
PVM/pipeline/head There was a failure building this commit
2025-10-21 17:56:37 +02:00
55d2fce4d8 Margine negativo rosso in statistiche listini di vendita 2025-10-21 17:56:22 +02:00
57bef21034 Finish FixCostiStat
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-21 17:45:49 +02:00
650af8ea7e Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-21 17:45:49 +02:00
ae9b427e99 Corretto costo in statistiche listini di vendita 2025-10-21 17:45:34 +02:00
0601905158 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-21 17:44:29 +02:00
fa07c3ec89 Finish FixPermessoModifLotto
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-21 17:44:28 +02:00
f96fd82517 Fix permesso modifica lotto in caso di partita mag prod diversa da quella dell'ordine 2025-10-21 17:44:14 +02:00
6708b1ee0a Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-21 10:08:05 +02:00
062a0df5a8 Finish FixDuplicaLisv
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-21 10:08:05 +02:00
bc5b09aa45 Corretta duplicazione listino di vendita, prima usava solo l'ultima versione 2025-10-21 10:07:49 +02:00
0200c195e1 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-20 18:05:43 +02:00
74fbcca896 Finish FixFlagPrimario
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-20 18:05:42 +02:00
fbff3c0923 Fix flag primario true solo in inserimento 2025-10-20 18:04:24 +02:00
a3b113f342 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-20 12:08:33 +02:00
f8c3d6f33e Finish FixModifQtaGiac
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-20 12:08:32 +02:00
1ff25282a3 Fix context menu voci cancellate permanentemente se aperto su un collo V in controllo giacenze 2025-10-20 12:08:15 +02:00
44e6e41a8b Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-20 11:08:51 +02:00
5d1063a42d Finish aggNumUDCMP
Some checks failed
PVM/pipeline/head There was a failure building this commit
2025-10-20 11:08:50 +02:00
30124d66c5 inserito numUDCMP 2025-10-20 11:07:57 +02:00
jenkins
be708dc549 Merge branch 'master' into develop
Some checks failed
PVM/pipeline/head There was a failure building this commit
2025-10-19 07:21:51 +02:00
af6c781d81 Gestito fork di phpexcel
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-17 10:47:22 +02:00
cdf69d3170 Fix ricerca articoli in aggiunti riga contratti di vendita
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-16 17:50:03 +02:00
ddd51a64b8 Migliorato filtro per codMdep utente in controllo giacenze
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-16 16:10:01 +02:00
5935b6182d Gestito context menu filtro articolo ed unificate classi ListaArriviView e ListaImpegnatoView
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-16 10:40:08 +02:00
a03e7e1091 gestito flag_primario
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-15 15:11:12 +02:00
c367ea2e51 aggiunto flag primario
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-15 13:15:41 +02:00
07a0896bff Esclusi cancellati e non attivi in get-costi listini vendita
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-15 13:02:30 +02:00
ac5becd634 Modificato .editorconfig, fix divide by 0 in listini di vendita e creata api WmsUtility
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-15 12:42:52 +02:00
8724fa0cab Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-15 12:27:16 +02:00
a060e5c7f7 Merge branch 'hotfix/Hotfix-15' into develop
Some checks failed
PVM/pipeline/head There was a failure building this commit
2025-10-15 12:27:16 +02:00
9d196f78cb [GRAMM - MES]
- corretti undefined index in rettifica plus alla chiusura dell'ordine
2025-10-15 12:26:54 +02:00
920af2894d Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-14 18:11:57 +02:00
98a90a14c4 Sistemato inserimento utente in modo che venga aggiornata la cache 2025-10-14 18:11:38 +02:00
52ed386d34 Sistemato inserimento utente in modo che venga aggiornata la cache 2025-10-14 18:05:45 +02:00
8484aa1014 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-14 16:05:07 +02:00
fa2be30fbf Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-14 16:05:07 +02:00
7e8cc923b4 [ROSSOGARGANO - Articoli Ricambi]
- corretta gestione modifica articoli di ricambio (errore di validazione sul gruppo merceologico)
2025-10-14 16:04:45 +02:00
53a0aaab1c Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-14 15:52:09 +02:00
23d19c8d71 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-14 15:52:09 +02:00
7f0fcdbe45 [ROSSOGARGANO - CONTRATTI V]
- corretto controllo su data ricorrenza minima in modifica
2025-10-14 15:51:36 +02:00
b06f5ad5c7 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-14 15:42:19 +02:00
b1c51afcf9 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-14 15:42:18 +02:00
86a4a91855 [ROSSOGARGANO - Articoli Ricambi]
- corretta gestione modifica articoli di ricambio (errore di validazione sul gruppo merceologico)
2025-10-14 15:41:58 +02:00
7b13209c5c Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit is unstable
2025-10-14 11:00:51 +02:00
9a97cf08b3 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-14 11:00:50 +02:00
5dd1605879 [GRAMM - MES]
- corretti undefined index in rettifica plus alla chiusura dell'ordine
2025-10-14 11:00:30 +02:00
e864b35d5e Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-14 10:18:54 +02:00
a7e13e23c0 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-14 10:18:53 +02:00
f6e0c6988f [GRAMM - MES]
- corretto controllo differenze quantità residuo in chiusura ordine dovute alla gestione dei valori float
2025-10-14 10:18:29 +02:00
8fcf7d42f0 Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-13 12:38:55 +02:00
81fca4c581 Modifica query elenco ordini per floreali 2025-10-13 12:38:39 +02:00
jenkins
145c4d3049 Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-12 07:21:40 +02:00
9946c54b9e Aggiornato devcontainer.json
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-09 10:54:04 +00:00
0335d1aad5 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-08 16:45:27 +02:00
f48b215777 Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-08 16:45:27 +02:00
b3938af954 [CMMS]
- corretta gestione macchinari senza collector
[MODELLINI]
- corretta gestione date su attività con nuovi campi calcolati
[MES]
- fix in caricamento linee senza supervisor
2025-10-08 16:45:02 +02:00
9c89f43246 Modifica query duplicazione ordini di vendita: riportava anche flag e qtà evasa
Some checks failed
PVM/pipeline/head There was a failure building this commit
2025-10-08 13:16:10 +02:00
5d216fe34e Merge branch 'hotfix/Hotfix-15' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-07 10:54:51 +02:00
f4826d10c4 Merge branch 'hotfix/Hotfix-15'
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-07 10:54:50 +02:00
3403ddeccd [REPORT_AREA]
- modificati flag htmlentities per fare in modo che caratteri non validi (es. à) non annullino la stringa ma vengano solo ignorati
[CMMS]
- gestito correttamente parametro codArea in stampa riepilogo reparto
2025-10-07 10:54:27 +02:00
176a86edab Merge branch 'master' into develop
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-06 10:53:24 +02:00
b8f58a63b5 Finish ModifBlacklistArt
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-06 10:53:23 +02:00
f7037fbc01 Modificate colonne tabella blacklist textiles 2025-10-06 10:53:02 +02:00
1fdba573b5 Aggiunta possibilità di override custom in docker-compose
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-03 15:36:54 +02:00
1b391a2814 Visualizzazione giacenza per depositi dell'utente in riepilogo prodotto rosso gargano
All checks were successful
PVM/pipeline/head This commit looks good
2025-10-01 18:21:00 +02:00
360 changed files with 11328 additions and 3820 deletions

View File

@@ -9,7 +9,7 @@
"-p", "80:80",
"-p", "9003:9003"
],
"appPort": [80, 9003],
// "appPort": [80, 9003],
"forwardPorts": [80, 9003],
"workspaceFolder": "/var/www/html/pvm",
"postCreateCommand": "",

View File

@@ -3,7 +3,7 @@ charset = utf-8
end_of_line = crlf
indent_size = 4
indent_style = space
insert_final_newline = false
insert_final_newline = true
max_line_length = 120
tab_width = 4
trim_trailing_whitespace = true
@@ -197,7 +197,7 @@ ij_typescript_class_method_decorator_wrap = off
ij_typescript_comma_on_new_line = false
ij_typescript_do_while_brace_force = never
ij_typescript_else_on_new_line = false
ij_typescript_enforce_trailing_comma = keep
ij_typescript_enforce_trailing_comma = whenmultiline
ij_typescript_enum_constants_wrap = on_every_item
ij_typescript_extends_keyword_wrap = off
ij_typescript_extends_list_wrap = off
@@ -208,8 +208,8 @@ ij_typescript_for_brace_force = never
ij_typescript_for_statement_new_line_after_left_paren = false
ij_typescript_for_statement_right_paren_on_new_line = false
ij_typescript_for_statement_wrap = off
ij_typescript_force_quote_style = false
ij_typescript_force_semicolon_style = false
ij_typescript_force_quote_style = true
ij_typescript_force_semicolon_style = true
ij_typescript_function_expression_brace_style = end_of_line
ij_typescript_function_parameter_decorator_wrap = off
ij_typescript_if_brace_force = never
@@ -383,7 +383,7 @@ ij_javascript_class_method_decorator_wrap = off
ij_javascript_comma_on_new_line = false
ij_javascript_do_while_brace_force = never
ij_javascript_else_on_new_line = false
ij_javascript_enforce_trailing_comma = keep
ij_javascript_enforce_trailing_comma = whenmultiline
ij_javascript_extends_keyword_wrap = off
ij_javascript_extends_list_wrap = off
ij_javascript_field_prefix = _
@@ -393,8 +393,8 @@ ij_javascript_for_brace_force = never
ij_javascript_for_statement_new_line_after_left_paren = false
ij_javascript_for_statement_right_paren_on_new_line = false
ij_javascript_for_statement_wrap = off
ij_javascript_force_quote_style = false
ij_javascript_force_semicolon_style = false
ij_javascript_force_quote_style = true
ij_javascript_force_semicolon_style = true
ij_javascript_function_expression_brace_style = end_of_line
ij_javascript_function_parameter_decorator_wrap = off
ij_javascript_if_brace_force = never
@@ -542,7 +542,7 @@ ij_php_array_initializer_new_line_after_left_brace = true
ij_php_array_initializer_right_brace_on_new_line = true
ij_php_array_initializer_wrap = normal
ij_php_assignment_wrap = normal
ij_php_attributes_wrap = off
ij_php_attributes_wrap = split_into_lines
ij_php_author_weight = 28
ij_php_binary_operation_sign_on_next_line = true
ij_php_binary_operation_wrap = normal
@@ -733,7 +733,7 @@ ij_php_spaces_within_parentheses = false
ij_php_spaces_within_short_echo_tags = true
ij_php_spaces_within_switch_parentheses = false
ij_php_spaces_within_while_parentheses = false
ij_php_special_else_if_treatment = true
ij_php_special_else_if_treatment = false
ij_php_subpackage_weight = 28
ij_php_ternary_operation_signs_on_next_line = false
ij_php_ternary_operation_wrap = off
@@ -835,6 +835,3 @@ ij_yaml_sequence_on_new_line = false
ij_yaml_space_before_colon = false
ij_yaml_spaces_within_braces = true
ij_yaml_spaces_within_brackets = true
[*.php]
insert_final_newline = true

View File

@@ -1,5 +1,6 @@
NODE_ENV=development
LOGIN_JWT=true
AZIENDA=integry
ENABLED_PROFILES=
@@ -7,4 +8,4 @@ SERVICES_BASE_URL=http://localhost:8080
PUBLIC_URL=http://localhost/pvm
SC_PROJECT=
SC_SECURITY=
SC_SECURITY=

View File

@@ -4,11 +4,11 @@ module.exports = {
env: {
browser: true,
es6: true,
jquery: true
jquery: true,
},
parserOptions: {
ecmaVersion: 2022,
sourceType: "module"
sourceType: "module",
},
rules: {
"no-redeclare": "off",
@@ -16,7 +16,8 @@ module.exports = {
"no-unused-vars": "warn",
"no-extra-semi": "warn",
"no-useless-escape": "warn",
"no-delete-var": "warn"
"no-delete-var": "warn",
"no-warning-comments": ["error", {"terms": ["DONOTPUSH"]}],
},
ignorePatterns: ["public_html/assets/**", "public_html/vendor/**", "public_html/dist/**"],
overrides: [
@@ -32,4 +33,4 @@ module.exports = {
},
},
],
};
};

2
.gitignore vendored
View File

@@ -25,6 +25,8 @@
# Mutagen project lock files
*.lock
docker-compose.override.yml
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

12
.idea/php.xml generated
View File

@@ -70,7 +70,6 @@
<path value="$PROJECT_DIR$/public_html/vendor/phpseclib/phpseclib" />
<path value="$PROJECT_DIR$/public_html/vendor/electrolinux/phpquery" />
<path value="$PROJECT_DIR$/public_html/vendor/composer" />
<path value="$PROJECT_DIR$/public_html/vendor/phpoffice/phpexcel" />
<path value="$PROJECT_DIR$/public_html/vendor/phpoption/phpoption" />
<path value="$PROJECT_DIR$/public_html/vendor/mobiledetect/mobiledetectlib" />
<path value="$PROJECT_DIR$/public_html/vendor/mike42/escpos-php" />
@@ -82,6 +81,17 @@
<path value="$PROJECT_DIR$/public_html/vendor/psr/cache" />
<path value="$PROJECT_DIR$/public_html/vendor/psr/simple-cache" />
<path value="$PROJECT_DIR$/public_html/vendor/phpfastcache/phpfastcache" />
<path value="$PROJECT_DIR$/public_html/vendor/integrydev/phpexcel" />
<path value="$PROJECT_DIR$/public_html/vendor/ralouphie/getallheaders" />
<path value="$PROJECT_DIR$/public_html/vendor/paragonie/random_compat" />
<path value="$PROJECT_DIR$/public_html/vendor/guzzlehttp/promises" />
<path value="$PROJECT_DIR$/public_html/vendor/guzzlehttp/guzzle" />
<path value="$PROJECT_DIR$/public_html/vendor/guzzlehttp/psr7" />
<path value="$PROJECT_DIR$/public_html/vendor/psr/http-message" />
<path value="$PROJECT_DIR$/public_html/vendor/symfony/polyfill-php72" />
<path value="$PROJECT_DIR$/public_html/vendor/symfony/polyfill-intl-idn" />
<path value="$PROJECT_DIR$/public_html/vendor/symfony/polyfill-intl-normalizer" />
<path value="$PROJECT_DIR$/public_html/vendor/symfony/polyfill-php70" />
</include_path>
</component>
<component name="PhpInterpreters">

1
.idea/pvm.iml generated
View File

@@ -32,7 +32,6 @@
<excludeFolder url="file://$MODULE_DIR$/public_html/vendor/mike42/escpos-php" />
<excludeFolder url="file://$MODULE_DIR$/public_html/vendor/mobiledetect/mobiledetectlib" />
<excludeFolder url="file://$MODULE_DIR$/public_html/vendor/nategood/httpful" />
<excludeFolder url="file://$MODULE_DIR$/public_html/vendor/phpoffice/phpexcel" />
<excludeFolder url="file://$MODULE_DIR$/public_html/vendor/phpoption/phpoption" />
<excludeFolder url="file://$MODULE_DIR$/public_html/vendor/phpseclib/phpseclib" />
<excludeFolder url="file://$MODULE_DIR$/public_html/vendor/symfony/polyfill-ctype" />

View File

@@ -2,7 +2,6 @@
<configuration default="false" name="PVM" type="docker-deploy" factoryName="docker-compose.yml" server-name="Docker">
<deployment type="docker-compose.yml">
<settings>
<option name="envFilePath" value="" />
<option name="commandLineOptions" value="--build" />
<option name="sourceFilePath" value="docker-compose.yml" />
</settings>

12
.idea/runConfigurations/lint.xml generated Normal file
View File

@@ -0,0 +1,12 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="lint" type="js.build_tools.npm" nameIsGenerated="true">
<package-json value="$PROJECT_DIR$/package.json" />
<command value="run" />
<scripts>
<script value="lint" />
</scripts>
<node-interpreter value="project" />
<envs />
<method v="2" />
</configuration>
</component>

1
.idea/sqldialects.xml generated
View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="SqlDialectMappings">
<file url="file://$PROJECT_DIR$/public_html/gest-lib/macchinari_prod/sql/getProductionLineData.sql" dialect="TSQL" />
<file url="PROJECT" dialect="TSQL" />
</component>
</project>

View File

@@ -62,30 +62,54 @@ pipeline {
script {
if (env.BRANCH_NAME == 'develop') {
archiveArtifacts artifacts: 'public_html.zip', onlyIfSuccessful: true
sshPublisher(publishers: [sshPublisherDesc(configName: 'Production Linux Web Server (192.168.3.13)', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'sudo /bin/chmod -R 777 /var/www/dev/pvm/cache', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
ftpPublisher alwaysPublishFromMaster: false, masterNodeName: '',
paramPublish: [parameterName: ""], continueOnError: false, failOnError: false,
publishers: [[configName: 'Production Linux Web Server (ftp.studioml.it)', transfers: [[asciiMode: false, cleanRemote: true, excludes: '', flatten: false, makeEmptyDirs: true, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/dev/pvm', remoteDirectorySDF: false, removePrefix: 'public_html/', sourceFiles: 'public_html/']], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false]]
sshPublisher(publishers: [sshPublisherDesc(configName: 'Production Linux Web Server (192.168.3.13)',
transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'sudo /bin/chmod -R 777 /var/www/dev/pvm/cache',
execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+',
remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false,
useWorkspaceInPromotion: false, verbose: false)])
// ftpPublisher alwaysPublishFromMaster: false, masterNodeName: '',
// paramPublish: [parameterName: ""], continueOnError: false, failOnError: false,
// publishers: [[configName: 'Production Linux Web Server (ftp.studioml.it)',
// transfers: [[asciiMode: false, cleanRemote: true, excludes: '', flatten: false, makeEmptyDirs: true,
// noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/dev/pvm', remoteDirectorySDF: false,
// removePrefix: 'public_html/', sourceFiles: 'public_html/']], usePromotionTimestamp: false,
// useWorkspaceInPromotion: false, verbose: false]]
sshPublisher(publishers: [sshPublisherDesc(configName: 'Production Linux Web Server (192.168.3.13) (integry)',
transfers: [sshTransfer(cleanRemote: true, excludes: 'public_html/cache/', execCommand: '', execTimeout: 120000, flatten: false,
makeEmptyDirs: true, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/dev/pvm',
remoteDirectorySDF: false, removePrefix: 'public_html/', sourceFiles: 'public_html/')], usePromotionTimestamp: false,
useWorkspaceInPromotion: false, verbose: false)])
sshPublisher(publishers: [
sshPublisherDesc(configName: 'Production Linux Web Server (192.168.3.13)',
transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''sudo /bin/mkdir /var/www/dev/pvm/cache
sudo /bin/chmod -R 777 /var/www/dev/pvm/cache''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false,
patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false,
removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false,
useWorkspaceInPromotion: false, verbose: false)])
sshPublisherDesc(configName: 'Production Linux Web Server (192.168.3.13)',
transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''sudo /bin/mkdir /var/www/dev/pvm/cache
sudo /bin/chmod -R 777 /var/www/dev/pvm/cache''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false,
patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false,
removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false,
useWorkspaceInPromotion: false, verbose: false)])
} else if (env.BRANCH_NAME == 'master') {
archiveArtifacts artifacts: 'exports\\*.zip', onlyIfSuccessful: true
sshPublisher(publishers: [sshPublisherDesc(configName: 'Production Linux Web Server (192.168.3.13)', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'sudo /bin/chmod -R 777 /var/www/portale/cache', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
ftpPublisher alwaysPublishFromMaster: false, masterNodeName: '',
paramPublish: [parameterName: ""], continueOnError: false, failOnError: false,
publishers: [[configName: 'Production Linux Web Server (ftp.studioml.it)', transfers: [[asciiMode: false, cleanRemote: true, excludes: 'public_html/cache/', flatten: false, makeEmptyDirs: true, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/portale', remoteDirectorySDF: false, removePrefix: 'public_html/', sourceFiles: 'public_html/']], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false]]
sshPublisher(publishers: [sshPublisherDesc(configName: 'Production Linux Web Server (192.168.3.13)',
transfers: [sshTransfer(cleanRemote: false, excludes: '',
execCommand: 'sudo /bin/chmod -R 777 /var/www/portale/cache', execTimeout: 120000, flatten: false,
makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '',
remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false,
useWorkspaceInPromotion: false, verbose: false)])
// ftpPublisher alwaysPublishFromMaster: false, masterNodeName: '',
// paramPublish: [parameterName: ""], continueOnError: false, failOnError: false,
// publishers: [[configName: 'Production Linux Web Server (ftp.studioml.it)', transfers: [[asciiMode: false, cleanRemote: true, excludes: 'public_html/cache/', flatten: false, makeEmptyDirs: true, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/portale', remoteDirectorySDF: false, removePrefix: 'public_html/', sourceFiles: 'public_html/']], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false]]
sshPublisher(publishers: [sshPublisherDesc(configName: 'Production Linux Web Server (192.168.3.13) (integry)',
transfers: [sshTransfer(cleanRemote: true, excludes: 'public_html/cache/',
execCommand: '', execTimeout: 120000, flatten: false,
makeEmptyDirs: true, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/portale',
remoteDirectorySDF: false, removePrefix: 'public_html/', sourceFiles: 'public_html/')], usePromotionTimestamp: false,
useWorkspaceInPromotion: false, verbose: false)])
sshPublisher(publishers: [
sshPublisherDesc(configName: 'Production Linux Web Server (192.168.3.13)',
transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''sudo /bin/mkdir /var/www/portale/cache
sudo /bin/chmod -R 777 /var/www/portale/cache''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false,
patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false,
removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false,
useWorkspaceInPromotion: false, verbose: false)])
sshPublisherDesc(configName: 'Production Linux Web Server (192.168.3.13)',
transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''sudo /bin/mkdir /var/www/portale/cache
sudo /bin/chmod -R 777 /var/www/portale/cache''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false,
patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false,
removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false,
useWorkspaceInPromotion: false, verbose: false)])
}
}
}
@@ -136,4 +160,4 @@ sudo /bin/chmod -R 777 /var/www/portale/cache''', execTimeout: 120000, flatten:
}
}
}
}
}

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath(false);

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -30,4 +30,4 @@ include Controller::current_mainClasspath();
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -35,4 +35,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,11 +2,11 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
include_once "config.php";
if (!isset($_GET["render"])) {
require_once "include_login.php";
}
include_once "config.php";
(new AllegatiAjax())->checkAjaxRequests();
?>
<!DOCTYPE html>
@@ -29,4 +29,4 @@ include_once "config.php";
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -32,4 +32,4 @@ $className = "AnalisiBudget" . Utility\Str::ucfirst(preg_replace("/[^A-Za-z0-9\\
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -30,4 +30,4 @@ include Controller::current_mainClasspath();
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -0,0 +1,32 @@
<?php
include_once "session.php";
$session = getSession();
include_once "functions.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath(false);
(new Ajax())->checkAjaxRequests();
?>
<!DOCTYPE html>
<!--html manifest="manifest.appcache"-->
<html>
<head>
<?php include pvm_tagHead; ?>
</head>
<body>
<?php include pvm_headerNavbar; ?>
<?php include pvm_splashScreen; ?>
<?php
if (!PVM\CurrentModule::isAuthorizedToCurrentUser()) {
include pvm_unauthorized;
} else {
include Controller::current_gestpath_mainPage();
} ?>
<?php include pvm_footerMinimal; ?>
</body>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -535,4 +535,4 @@
"assets/jquery.sidebar.min.js"
]
}
}
}

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
(new BlacklistArtClie())->checkAjaxRequests();

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -26,4 +26,4 @@ if (!PVM\CurrentModule::isAuthorizedToCurrentUser()) {
} ?>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_mainClasspath();
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -26,4 +26,4 @@ if (!PVM\CurrentModule::isAuthorizedToCurrentUser()) {
} ?>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();

8
public_html/checkEnv.php Normal file
View File

@@ -0,0 +1,8 @@
<?php
require __DIR__ . "/vendor/autoload.php";
$dotenv = Dotenv\Dotenv::createImmutable(realpath(__DIR__ . "/."), array(".env", ".env.dev", ".env.prod"), false);
$dotenv->safeLoad();
var_dump(realpath(__DIR__ . "/."));
var_dump($_ENV);

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -30,4 +30,4 @@ include Controller::current_mainClasspath();
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -0,0 +1,41 @@
<?php
namespace Api;
use EntityItem;
class WmsUtility extends Api {
protected static $group = "wms";
public static function getDepositiWMS() {
$imsApi = self::imsApi();
$imsApi
->get("depositi");
$ret = $imsApi->send();
if ($ret->is_KO()) {
return $ret;
}
$ret->set_data($ret->getDto());
return $ret;
}
public static function getArticoliWMS($data) {
$imsApi = self::imsApi();
$imsApi
->get("articolo")
->body($data);
$ret = $imsApi->send();
if ($ret->is_KO()) {
return $ret;
}
$ret->set_data($ret->getDto());
return $ret;
}
}

View File

@@ -160,7 +160,9 @@ class EntityList implements Countable {
if ($arr_entityRet[$i]["esito"] == 1) {
$this->entityResult = array();
foreach ($arr_entityRet as $entityRet) {
$this->entityResult[] = $entityRet["entity"];
if (isset($entityRet["entity"])) {
$this->entityResult[] = $entityRet["entity"];
}
}
} else {
$Ret->set_error($arr_entityRet[$i]["errorMessage"]);
@@ -177,4 +179,4 @@ class EntityList implements Countable {
public static function is_entityList($value) {
return gettype($value) == "object" && get_class($value) == "EntityList";
}
}
}

View File

@@ -4,6 +4,7 @@ class ErrorHandler {
const EMSCONNECT = 0;
const EMSHTTP = 1;
const EMSHTTP400 = 2;
const EMSHTTP401 = 401;
const EMSPARSE = 3;
const EMSNOMESSAGE = 4;
const UNEXPECTED_AJAX_METHOD = 5;
@@ -40,16 +41,19 @@ class ErrorHandler {
// sostituito switch/case con if/elseif perche non veniva cfatta la comparazione col tipo
if ($errorCode === self::EMSCONNECT) {
return (!is_null($p1) ? "<span class='text-monospace'>Servizio <b>{$p1}</b></span><hr class='mt-0 mb-10'/>" : "")
. "Il servizio EMS non &egrave; raggiungibile";
. "Il servizio EMS non &egrave; raggiungibile";
} else if ($errorCode === self::EMSHTTP) {
return (!is_null($p1) ? "<span class='text-monospace'>Servizio <b>{$p3}</b></span><hr class='mt-0 mb-10'/>" : "")
. "La chiamata al servizio ha restituito l'errore http <u>" . blankIfNull($p1) . "</u>" . (!is_null($p2) ? "<div class='mt-10 text-muted text-monospace small'>{$p2}</div>" : "");
. "La chiamata al servizio ha restituito l'errore http <u>" . blankIfNull($p1) . "</u>"
. (!is_null($p2) ? "<div class='mt-10 text-muted text-monospace small'>{$p2}</div>" : "");
} else if ($errorCode === self::EMSHTTP400) {
return (!is_null($p1) ? "<span class='text-monospace'>Servizio <b>{$p1}</b></span><hr class='mt-0 mb-10'/>" : "")
. "La chiamata al servizio ha restituito l'errore http <u>400</u> (Bad Request)" . (!is_null($p2) ? "<div class='mt-10 text-muted text-monospace small'>{$p2}</div>" : "");
. "La chiamata al servizio ha restituito l'errore http <u>400</u> (Bad Request)"
. (!is_null($p2) ? "<div class='mt-10 text-muted text-monospace small'>{$p2}</div>" : "");
} else if ($errorCode === self::EMSHTTP401) {
return $p2;
} else if ($errorCode === self::EMSHTTP550) {
return "<span class='text-monospace'>Licenza <b>non valida</b></span>";
@@ -57,12 +61,13 @@ class ErrorHandler {
return "<span class='text-monospace'>Application name non valorizzato</span>";
} else if ($errorCode === self::EMSPARSE) {
return (!is_null($p1) ? "<span class='text-monospace'>Servizio <b>{$p1}</b></span><hr class='mt-0 mb-10'/>" : "") .
"Parse della risposta del servizio <b>" . blankIfNull($p1) . "</b> fallita";
return (!is_null($p1) ? "<span class='text-monospace'>Servizio <b>{$p1}</b></span><hr class='mt-0 mb-10'/>" : "")
.
"Parse della risposta del servizio <b>" . blankIfNull($p1) . "</b> fallita";
} else if ($errorCode === self::EMSNOMESSAGE) {
return (!is_null($p1) ? "<span class='text-monospace'>Servizio <b>{$p1}</b></span><hr class='mt-0 mb-10'/>" : "")
. "Messaggio di errore non pervenuto";
. "Messaggio di errore non pervenuto";
} else if ($errorCode === self::MISSINGINPUTSECRET) {
return "Parametro secret mancante";
@@ -143,7 +148,8 @@ class ErrorHandler {
if (\GestSetup::isGestSetupObject($GestSetup)) {
$description = $GestSetup->getDescription();
$message = "<span class='small font-italic text-uppercase'>" . $GestSetup->getGestName() . " > " . $GestSetup->getSection() . " > <b>" . $GestSetup->getKeySection() . "</b></span>";
$message = "<span class='small font-italic text-uppercase'>" . $GestSetup->getGestName() . " > "
. $GestSetup->getSection() . " > <b>" . $GestSetup->getKeySection() . "</b></span>";
if (!is_null($description)) {
$message .= " <span class='text-xs opacity-90 font-italic'>(" . ucfirst($description) . ")</span>";
}
@@ -155,7 +161,9 @@ class ErrorHandler {
}
public static function get_title($errorCode, $p1 = null, $p2 = null, $p3 = null) {
if (in_array($errorCode, array(self::EMSHTTP400, self::EMSHTTP, self::EMSPARSE, self::EMSNOMESSAGE, self::EMSCONNECT))) {
if (in_array($errorCode, array(
self::EMSHTTP400, self::EMSHTTP, self::EMSPARSE, self::EMSNOMESSAGE, self::EMSCONNECT
))) {
return "Servizio non disponibile";
} else if (in_array($errorCode, array(self::UNEXPECTED_AJAX_METHOD, self::UNEXPECTED_METHOD))) {
@@ -173,9 +181,13 @@ class ErrorHandler {
} else if (in_array($errorCode, array(self::UNAUTHORIZED_USER))) {
return "Utente non autorizzato";
} else if (in_array($errorCode, array(self::APIXU_MISSING_INVALID_KEY, self::APIXU_MISSING_Q, self::APIXU_INVALID_URL, self::APIXU_LOCATION_NOT_FOUND, self::APIXU_DAY_UNAVAILABLE, self::APIXU_INVALID_KEY, self::APIXU_EXCEED_QUOTA, self::APIXU_DISABLED_KEY, self::APIXU_INTERNAL_ERROR))) {
} else if (in_array($errorCode, array(
self::APIXU_MISSING_INVALID_KEY, self::APIXU_MISSING_Q, self::APIXU_INVALID_URL,
self::APIXU_LOCATION_NOT_FOUND, self::APIXU_DAY_UNAVAILABLE, self::APIXU_INVALID_KEY,
self::APIXU_EXCEED_QUOTA, self::APIXU_DISABLED_KEY, self::APIXU_INTERNAL_ERROR
))) {
return "Servizio meteo non disponibile";
}
return null;
}
}
}

View File

@@ -42,6 +42,16 @@ class GestSetupWebUser extends GestSetup {
$Ret = new Ret;
if ($this->checkKey()) {
if ($this->check_userGrant()) {
$entityList = new EntityList();
$parentEntityItem = new EntityItem(parent::$setupTable);
$parentEntityItem->insert_or_update()
->set("gestName", $this->gest_name)
->set("section", $this->getSection())
->set("keySection", $this->key_section)
->set("flagSetupUserWeb", "S");
$entityList->push($parentEntityItem);
$EntityItem = new \EntityItem(self::$setupTable);
$EntityItem->insert_or_update()
@@ -51,7 +61,9 @@ class GestSetupWebUser extends GestSetup {
->set("keySection", $this->key_section)
->set("value", $value);
$Ret = $EntityItem->send();
$entityList->push($EntityItem);
$Ret = $entityList->send();
} else {
$Ret->set_error("Utente non abilitato");

View File

@@ -13,6 +13,7 @@ class IMSApi {
private $endpoint = null;
private $profileDB = null;
private $queryParams = array();
private $accessToken = null;
private $authUsername = null;
private $authPassword = null;
private $anonymousAuth = false;
@@ -68,6 +69,11 @@ class IMSApi {
return $this;
}
public function accessToken($value) {
$this->accessToken = $value;
return $this;
}
public function authUsername($value) {
$this->authUsername = $value;
return $this;
@@ -107,18 +113,24 @@ class IMSApi {
if ($type == Format::strftimeYMD) {
$type = Format::strtotimeYMD;
} else if ($type == Format::strftimeYMDHMS) {
$type = Format::strtotimeYMDHMS;
} else if ($type == Format::strftimeSlashedYMD) {
$type = "Y/m/d";
} else {
if ($type == Format::strftimeYMDHMS) {
$type = Format::strtotimeYMDHMS;
} else {
if ($type == Format::strftimeSlashedYMD) {
$type = "Y/m/d";
}
}
}
$value = $dateTime->format($type);
} catch (Exception $e) {
}
}
} else if ($type == \Format::latLng1) {
} else {
if ($type == \Format::latLng1) {
}
}
}
@@ -195,16 +207,28 @@ class IMSApi {
}
public function attach($name, $file, $fileName = null) {
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$fileName = $fileName ?: array_get($file, "name");
$path = array_get($file, "tmp_name");
$mimeType = finfo_file($finfo, $path);
if (function_exists('curl_file_create')) {
$this->body[$name] = curl_file_create($path, $mimeType, $fileName);
if (USE_GUZZLE) {
if (!is_array($this->body)) {
$this->body = array();
}
$this->body[] = array(
"name" => $name,
"contents" => fopen($file["tmp_name"], "r"),
"filename" => $fileName ?: array_get($file, "name"),
);
} else {
$this->body[$name] = '@' . $path;
if ($mimeType) {
$this->body[$name] .= ';type=' . $mimeType;
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$fileName = $fileName ?: array_get($file, "name");
$path = array_get($file, "tmp_name");
$mimeType = finfo_file($finfo, $path);
if (function_exists('curl_file_create')) {
$this->body[$name] = curl_file_create($path, $mimeType, $fileName);
} else {
$this->body[$name] = '@' . $path;
if ($mimeType) {
$this->body[$name] .= ';type=' . $mimeType;
}
}
}
return $this;
@@ -215,11 +239,16 @@ class IMSApi {
if (is_array($this->body)) {
if ($this->contentType == Rest::FORM) {
return http_build_query($this->body);
} else if ($this->contentType == Rest::MULTIPART) {
return $this->body;
} else {
return Utility::json_encode($this->body);
if ($this->contentType == Rest::MULTIPART) {
return $this->body;
} else {
if (USE_GUZZLE) {
return $this->body;
} else {
return Utility::json_encode($this->body);
}
}
}
}
return $this->body;
@@ -253,12 +282,18 @@ class IMSApi {
$profileDb
= !is_null($this->profileDB) ? $this->profileDB : (isset($GLOBALS["profileDB"]) ? $GLOBALS["profileDB"] : null);
return array("username" => $profileDb, "password" => $profileDb);
} else if (!is_null($this->authUsername) && !is_null($this->authPassword)) {
return array("username" => $this->authUsername, "password" => $this->authPassword);
} else if (!is_null($this->authUsername)) {
return array("username" => $this->authUsername);
} else if (\User::is_authenticated() && isset($_SESSION["password"])) {
return array("username" => $_SESSION["username"], "password" => $_SESSION["password"]);
} else {
if (!is_null($this->authUsername) && !is_null($this->authPassword)) {
return array("username" => $this->authUsername, "password" => $this->authPassword);
} else {
if (!is_null($this->authUsername)) {
return array("username" => $this->authUsername);
} else {
if (\User::is_authenticated() && isset($_SESSION["password"])) {
return array("username" => $_SESSION["username"], "password" => $_SESSION["password"]);
}
}
}
}
return null;
@@ -296,18 +331,33 @@ class IMSApi {
$Rest->header("X-App-Token", self::X_APP_TOKEN);
$credentials = $this->get_authCredentials();
if (!is_null($credentials)) {
if (array_get($credentials, "username")) {
$Rest->authUsername($credentials["username"]);
}
if (LOGIN_JWT) {
if (!$this->anonymousAuth) {
if (is_null($this->accessToken)) {
$this->accessToken = array_get($_SESSION, "accessToken");
}
if (array_get($credentials, "password")) {
$Rest->authPassword($credentials["password"]);
if (!$this->accessToken) {
return $Ret->set_error(sprintf("Access token mancante al servizio <i>%s</i>", $this->serviceName));
}
$Rest->header("Authorization", "Bearer $this->accessToken");
}
} else {
return $Ret->set_error("Credenziali di autenticazione al servizio <i>" . $this->serviceName
. "</i> non valide");
$credentials = $this->get_authCredentials();
if (!is_null($credentials)) {
if (array_get($credentials, "username")) {
$Rest->authUsername($credentials["username"]);
}
if (array_get($credentials, "password")) {
$Rest->authPassword($credentials["password"]);
}
} else {
return $Ret->set_error("Credenziali di autenticazione al servizio <i>" . $this->serviceName
. "</i> non valide");
}
}
/********************************** HERE IT IS PERFORMED THE REST APIs CALL *************************************/
@@ -327,6 +377,44 @@ class IMSApi {
if ($Ret->is_OK()) {
@$Ret->set_Response(new IMSApi\Response($retData));
}
} else {
if (!\Utility\Str::contains("auth/refresh", $this->serviceName)
&& $Ret->get_errorCode() == ErrorHandler::EMSHTTP401
&& isset($_SESSION["refreshToken"])
&& isset($_SESSION["deviceId"])) {
$imsApi = new IMSApi();
$ret = $imsApi
->post("auth/refresh")
->anonymousAuth()
->profileDB($this->profileDB)
->body(array(
"refreshToken" => $_SESSION["refreshToken"],
"deviceId" => $_SESSION["deviceId"],
))
->send();
if ($ret->is_KO()) {
unset($_SESSION["accessToken"]);
User::logout();
// non posso impostare alcun header perchè è già partito l'output con echo ┑( ̄Д  ̄)┍
echo "<script type='text/javascript'>window.location.href = 'login.php';</script>";
return Ret::error();
}
$data = $ret->getDto();
$this->accessToken = $data["accessToken"];
$_SESSION["accessToken"] = $data["accessToken"];
$_SESSION["refreshToken"] = $data["refreshToken"];
$_SESSION["expiryDate"] = $data["expiryDate"];
$_SESSION["expiresIn"] = $data["expireIn"];
return self::send();
}
}
return $Ret;

View File

@@ -12,6 +12,7 @@ use MyCLabs\Enum\Enum;
* @method static self DATE()
* @method static self DATETIME()
* @method static self TIME()
* @method static self DROPDOWNLIST()
*/
class TipoValore extends Enum {
const TESTO = 0;
@@ -21,4 +22,5 @@ class TipoValore extends Enum {
const DATE = 4;
const DATETIME = 5;
const TIME = 6;
}
const DROPDOWNLIST = 7;
}

View File

@@ -61,7 +61,11 @@ class Response extends \IMSApi {
return $this;
}
private function is_list() {
public function get_entityList() {
return $this->entityList;
}
public function is_list() {
return $this->listResponse !== false && is_array($this->listResponse);
}
@@ -133,4 +137,4 @@ class Response extends \IMSApi {
}
return $this;
}
}
}

View File

@@ -517,7 +517,7 @@ class JasperProcessor {
return $itemList;
}
private function getJasperDTO() {
public function getJasperDTO() {
$JasperDTO = new EntityItem();
$JasperDTO

View File

@@ -35,6 +35,7 @@ class Rest {
private $isDirect = false;
// <editor-fold desc="SETTERS" defaultstate="collapsed">
public function post() {
return $this->method(self::POST);
}
@@ -223,8 +224,6 @@ class Rest {
// </editor-fold>
/************************************ CONNECTION BETWEEN PHP AND REST APIs *****************************************/
public function send() {
$Ret = new Ret;
$ret = array("headers" => null, "url" => null, "payload" => null, "http_code" => null, "body" => null);
@@ -232,167 +231,154 @@ class Rest {
try {
$url = $this->get_url();
/************************ creation of REQUEST OBJ ************************/
switch ($this->method) {
case self::POST:
$req = \Httpful\Request::post($url);
break;
case self::PUT:
$req = \Httpful\Request::put($url);
break;
case self::PATCH:
$req = \Httpful\Request::patch($url);
break;
case self::DELETE:
$req = \Httpful\Request::delete($url);
break;
default:
$req = \Httpful\Request::get($url);
}
$credentials = $this->get_authCredentials();
if (!is_null($credentials)) {
$req->authenticateWith($credentials["username"], $credentials["password"]);
}
foreach ($this->headers as $k => $v) {
$req->addHeader($k, $v);
}
/***************** here the body of Rest is passed to Request *******************/
if (!is_null($this->publicKey)) {
$req->body(self::encryptRsa(json_encode($this->body), $this->publicKey));
} else {
$req->body($this->body);
}
if (USE_GUZZLE) {
$client = new \GuzzleHttp\Client(array(
"auth" => is_null($credentials) ? null : array($credentials["username"], $credentials["password"]),
"timeout" => $this->timeout,
));
if ($this->contentType == self::APPLICATIONJSON) {
$req->sendsJson();
} else if ($this->contentType == self::FORM) {
$req->sendsType(Httpful\Mime::FORM);
} else if ($this->contentType == self::MULTIPART) {
$req->sendsType(Httpful\Mime::UPLOAD);
}
$req = new \GuzzleHttp\Psr7\Request($this->method ?: "GET", $url, $this->headers);
if ($this->timeout > 0) {
$req->timeoutIn($this->timeout);
}
$options = array();
$ret["headers"] = $req->headers;
/************************** if there's password, overwrites it with asterisks in ret *************** */
if (isset($ret["headers"]["password"])) {
$ret["headers"]["password"] = str_pad("", strlen($ret["headers"]["password"]), "*");
/****** last option: STR_PAD_RIGHT default */
}
$ret["payload"] = $req->payload;
$ret["url"] = $url;
/**************************** FINALLY SEND *******************************/
$result = @$req->send();
/************* no parameters passed!!! ******************/
if ($this->isDirect()) {
$Ret->set_data($result)->displayData();
}
$httpCode = $result->code;
$rawHeaders = $result->raw_headers;
$ret["http_code"] = $httpCode;
$ret["body"] = $result->raw_body;
$Ret->set_number($httpCode);
$rawResponse = $result->raw_body;
if (!is_null($this->privateKey)) {
$rawResponse = self::decryptRsa($rawResponse, $this->privateKey);
}
$retData = $this->isDownload() ? null : json_decode($rawResponse, true);
if (!isset($retData[0])) {
$retData = array($retData);
}
if ($httpCode == 200) {
if ($this->isDownload()) {
header("Cache-Control: no-cache");
header("Cache-Control: private", false); // required for certain browsers
$headers = explode("\r\n", $rawHeaders);
$headers = array_filter($headers, function ($header) {
return
strpos($header, "Content-Disposition:") === 0
|| strpos($header, "Content-Type:") === 0
|| strpos($header, "Content-Length:") === 0;
});
$contentDisposition = from($headers)->where(function ($header) {
return strpos($header, "Content-Disposition:") === 0;
})->firstOrDefault();
if ($this->isDirectDownload) {
header("Cache-Control: private, max-age=86400, must-revalidate");
header("Cache-Control: private", false);
foreach ($headers as $header) {
header($header);
}
if ($this->downloadType === "inline") {
$fileName = strpos($contentDisposition, "filename");
if ($fileName) {
header("Content-Disposition: inline; "
. substr($contentDisposition, $fileName, strlen($contentDisposition)));
} else {
header("Content-Disposition: inline");
}
}
}
$retData = $rawResponse;
$Ret->set_data($retData);
if ($this->contentType == self::APPLICATIONJSON) {
$options["json"] = !is_null($this->publicKey) ?
self::encryptRsa(json_encode($this->body), $this->publicKey) :
$this->body;
} else {
if (isset($retData[0]["esito"])) {
if ($retData[0]["esito"] == 1) {
$Ret->set_data($retData);
} else {
if ($retData) {
$Ret->set_data($retData);
}
if ($this->contentType == self::FORM) {
$options["body"] = !is_null($this->publicKey) ?
self::encryptRsa(json_encode($this->body), $this->publicKey) :
$this->body;
if (isset($retData[0]["errorMessage"])) {
$Ret->set_error($retData[0]["errorMessage"]);
} else {
$Ret->set_errorCode(ErrorHandler::EMSNOMESSAGE, $this->service);
}
}
$req = $req->withHeader("Content-Type", "application/x-www-form-urlencoded");
} else {
$Ret->set_errorCode(ErrorHandler::EMSPARSE, $this->service);
$suffixPath = "EMSPARSE-" . User::get_current_username();
$logPath = Utility::write_log("Parse error rest call: " . $result->raw_body, $suffixPath);
if ($logPath !== false && PVM::isDebugEnv()) {
$Ret->append_errorText("<br/><span class='small text-monospace'>Consulta <a href='{$logPath}' download>"
. basename($logPath) . "</a></span>");
if ($this->contentType == self::MULTIPART) {
$options["multipart"] = $this->body;
}
}
}
} else if ($httpCode == 400) {
$errorLog = "400";
$Ret->set_errorCode(ErrorHandler::EMSHTTP400, $this->service, array_get($retData, "0.errorMessage"));
} else if ($httpCode == 550) {
$errorLog = "550";
$Ret->set_errorCode(ErrorHandler::EMSHTTP550, $this->service);
} else if ($httpCode == 551) {
$errorLog = "551";
$Ret->set_errorCode(ErrorHandler::EMSHTTP551, $this->service);
} else {
$errorLog = $httpCode;
$Ret->set_errorCode(ErrorHandler::EMSHTTP, $httpCode, $rawHeaders, $this->service);
}
$result = $client->send($req, $options);
$rawResponse = $result->getBody()->getContents();
if (!is_null($this->privateKey)) {
$rawResponse = self::decryptRsa($rawResponse, $this->privateKey);
}
$headers = array();
foreach ($result->getHeaders() as $name => $values) {
$headers[] = $name . ": " . implode(", ", $values);
}
$Ret = self::manageResponse($result->getStatusCode(), $headers, $rawResponse);
if ($Ret->is_KO()) {
$errorLog = $result->getStatusCode();
}
} else {
switch ($this->method) {
case self::POST:
$req = \Httpful\Request::post($url);
break;
case self::PUT:
$req = \Httpful\Request::put($url);
break;
case self::PATCH:
$req = \Httpful\Request::patch($url);
break;
case self::DELETE:
$req = \Httpful\Request::delete($url);
break;
default:
$req = \Httpful\Request::get($url);
}
if (!is_null($credentials)) {
$req->authenticateWith($credentials["username"], $credentials["password"]);
}
foreach ($this->headers as $k => $v) {
$req->addHeader($k, $v);
}
/***************** here the body of Rest is passed to Request *******************/
if (!is_null($this->publicKey)) {
$req->body(self::encryptRsa(json_encode($this->body), $this->publicKey));
} else {
$req->body($this->body);
}
if ($this->contentType == self::APPLICATIONJSON) {
$req->sendsJson();
} else {
if ($this->contentType == self::FORM) {
$req->sendsType(Httpful\Mime::FORM);
} else {
if ($this->contentType == self::MULTIPART) {
$req->sendsType(Httpful\Mime::UPLOAD);
}
}
}
if ($this->timeout > 0) {
$req->timeoutIn($this->timeout);
}
$result = @$req->send();
if ($this->isDirect()) {
$Ret->set_data($result)->displayData();
}
$ret["headers"] = $req->headers;
/************************** if there's password, overwrites it with asterisks in ret *************** */
if (isset($ret["headers"]["password"])) {
$ret["headers"]["password"] = str_pad("", strlen($ret["headers"]["password"]), "*");
/****** last option: STR_PAD_RIGHT default */
}
$ret["payload"] = $req->payload;
$ret["url"] = $url;
$httpCode = $result->code;
$rawHeaders = $result->raw_headers;
$headers = explode("\r\n", $rawHeaders);
$ret["http_code"] = $httpCode;
$ret["body"] = $result->raw_body;
$Ret->set_number($httpCode);
$rawResponse = $result->raw_body;
if (!is_null($this->privateKey)) {
$rawResponse = self::decryptRsa($rawResponse, $this->privateKey);
}
$headers = array_filter($headers, function ($header) {
return
strpos($header, "Content-Disposition:") === 0
|| strpos($header, "Content-Type:") === 0
|| strpos($header, "Content-Length:") === 0;
});
$headers[] = "Cache-Control: no-cache";
$headers[] = array("Cache-Control: private", false); // required for certain browsers
$Ret = self::manageResponse($httpCode, $headers, $rawResponse);
if ($Ret->is_KO()) {
$errorLog = $httpCode;
}
}
} catch (Httpful\Exception\ConnectionErrorException $e) {
$errorLog = "EMSCONNECT";
$Ret
@@ -400,6 +386,13 @@ class Rest {
->append_errorText(" su <span class='text-monospace'>" . $this->get_endPoint() . "</span>")
->set_error($e->getMessage());
} catch (\GuzzleHttp\Exception\GuzzleException $e) {
$errorLog = "EMSCONNECT";
$Ret
->set_errorCode(ErrorHandler::EMSCONNECT, $this->service)
->append_errorText(" su <span class='text-monospace'>" . $this->get_endPoint() . "</span>")
->set_error($e->getMessage());
} catch (Exception $e) {
$errorLog = "restCatchError";
$Ret->set_error($e->getMessage());
@@ -420,6 +413,93 @@ class Rest {
return $Ret;
}
private function manageResponse($httpCode, $headers, $rawResponse) {
$Ret = new Ret();
$retData = $this->isDownload() ? $rawResponse : json_decode($rawResponse, true);
if ($httpCode == 200) {
if ($this->isDownload()) {
if ($this->isDirectDownload) {
$headers[] = "Cache-Control: private, max-age=86400, must-revalidate";
if ($this->downloadType === "inline") {
$contentDisposition = from($headers)->where(function ($header) {
return strpos($header, "Content-Disposition:") === 0;
})->firstOrDefault();
$fileName = strpos($contentDisposition, "filename");
if ($fileName) {
$headers[] = "Content-Disposition: inline; "
. substr($contentDisposition, $fileName, strlen($contentDisposition));
} else {
$headers[] = "Content-Disposition: inline";
}
}
}
foreach ($headers as $header) {
if (is_array($header)) {
header($header[0], count($header) > 1 ? $header[1] : true);
} else {
header($header);
}
}
$Ret->set_data($retData);
} else {
if (!isset($retData[0])) {
$retData = array($retData);
}
if (isset($retData[0]["esito"])) {
if ($retData[0]["esito"] == 1) {
$Ret->set_data($retData);
} else {
if ($retData) {
$Ret->set_data($retData);
}
if (isset($retData[0]["errorMessage"])) {
$Ret->set_error($retData[0]["errorMessage"]);
} else {
$Ret->set_errorCode(ErrorHandler::EMSNOMESSAGE, $this->service);
}
}
} else {
$Ret->set_errorCode(ErrorHandler::EMSPARSE, $this->service);
$suffixPath = "EMSPARSE-" . User::get_current_username();
$logPath = Utility::write_log("Parse error rest call: " . $rawResponse, $suffixPath);
if ($logPath !== false && PVM::isDebugEnv()) {
$Ret->append_errorText("<br/><span class='small text-monospace'>Consulta <a href='{$logPath}' download>"
. basename($logPath) . "</a></span>");
}
}
}
} else {
if ($httpCode == 400) {
$Ret->set_errorCode(ErrorHandler::EMSHTTP400, $this->service, array_get($retData, "0.errorMessage"));
} else {
if ($httpCode == 401) {
$Ret->set_errorCode(ErrorHandler::EMSHTTP401, $this->service, array_get($retData, "0.errorMessage"));
} else {
if ($httpCode == 550) {
$Ret->set_errorCode(ErrorHandler::EMSHTTP550, $this->service);
} else {
if ($httpCode == 551) {
$Ret->set_errorCode(ErrorHandler::EMSHTTP551, $this->service);
} else {
$Ret->set_errorCode(ErrorHandler::EMSHTTP, $httpCode, $headers, $this->service);
}
}
}
}
}
return $Ret;
}
private static function encryptRsa($data, $pubKey) {
$rsa = new Crypt_RSA;
$rsa->loadKey($pubKey);

View File

@@ -121,4 +121,4 @@ class StbFilesAttached {
return $Ret;
}
}
}

View File

@@ -289,6 +289,18 @@ class User {
public static function logout() {
getSession();
if (LOGIN_JWT && isset($_SESSION["accessToken"])) {
$imsApi = new IMSApi();
$imsApi
->put("auth/logout")
->body(array(
"deviceId" => $_SESSION["deviceId"]
))
->send();
}
//operazioni e controlli per effettura il logout dell'utente/agente
if (isset($_SESSION["login"])) {
$_SESSION["login"] = false;

View File

@@ -421,7 +421,7 @@ class File {
public static function rearrangeFilesArray($filePost) {
$fileArray = array();
if (is_array($filePost["name"])) {
if (is_array(array_get($filePost,"name"))) {
for ($i = 0; $i < count($filePost["name"]); $i++) {
foreach (array_keys($filePost) as $key) {
$fileArray[$i][$key] = $filePost[$key][$i];
@@ -531,4 +531,40 @@ class File {
return $ret;
}
public static function isFileValid($file, ...$allowedMimeTypes) {
$ret = new \Ret();
if (isset($file)) {
if (is_uploaded_file($file["tmp_name"])) {
if (!empty($allowedMimeTypes)) {
$mimeType = mime_content_type($file["tmp_name"]);
if (!File::checkFileMimeAllowed($mimeType, is_array($allowedMimeTypes) ? $allowedMimeTypes : array($allowedMimeTypes))) {
return $ret->set_error(
"Il file che hai caricato non &egrave; valido.<br>Tipo file: $mimeType, Tipo permesso: " . join(', ', $allowedMimeTypes)
);
}
}
$ret->set_data($file);
} else {
switch ($file["error"]) {
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
$ret->set_error("Il file che stai caricando &egrave; troppo grande.");
break;
case UPLOAD_ERR_PARTIAL:
$ret->set_error("Il file che stai caricando &egrave; stata caricata parzialmente.");
break;
case UPLOAD_ERR_OK:
default:
$ret->set_error("C'&egrave; stato un problema con il caricamento del file.");
break;
}
}
}
return $ret;
}
}

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -27,4 +27,4 @@ if (!PVM\CurrentModule::isAuthorizedToCurrentUser()) {
?>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -9,7 +9,6 @@
"require": {
"mike42/escpos-php": "^1.4.2",
"nategood/httpful": "^0.2.20",
"phpoffice/phpexcel": "^1.8.2",
"phpseclib/phpseclib": "^1.0",
"athari/yalinqo": "^1.0.0.0",
"mobiledetect/mobiledetectlib": "^2.8.31",
@@ -21,6 +20,14 @@
"vlucas/phpdotenv": "^4.3",
"ext-simplexml": "*",
"myclabs/php-enum": "^1.6",
"phpfastcache/phpfastcache": "^6.1"
}
"phpfastcache/phpfastcache": "^6.1",
"integrydev/phpexcel": "1.8.2",
"guzzlehttp/guzzle": "^6.5"
},
"repositories": [
{
"url": "https://github.com/integryDev/PHPExcel.git",
"type": "git"
}
]
}

View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "4aaaf487bb2be72b7b7f7cde495b4adb",
"content-hash": "b48d592777a01ad3c084f766ac08a05e",
"packages": [
{
"name": "athari/yalinqo",
@@ -110,6 +110,360 @@
},
"time": "2023-05-02T18:27:16+00:00"
},
{
"name": "guzzlehttp/guzzle",
"version": "6.5.8",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "a52f0440530b54fa079ce76e8c5d196a42cad981"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981",
"reference": "a52f0440530b54fa079ce76e8c5d196a42cad981",
"shasum": ""
},
"require": {
"ext-json": "*",
"guzzlehttp/promises": "^1.0",
"guzzlehttp/psr7": "^1.9",
"php": ">=5.5",
"symfony/polyfill-intl-idn": "^1.17"
},
"require-dev": {
"ext-curl": "*",
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
"psr/log": "^1.1"
},
"suggest": {
"psr/log": "Required for using the Log middleware"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "6.5-dev"
}
},
"autoload": {
"files": [
"src/functions_include.php"
],
"psr-4": {
"GuzzleHttp\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Graham Campbell",
"email": "hello@gjcampbell.co.uk",
"homepage": "https://github.com/GrahamCampbell"
},
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Jeremy Lindblom",
"email": "jeremeamia@gmail.com",
"homepage": "https://github.com/jeremeamia"
},
{
"name": "George Mponos",
"email": "gmponos@gmail.com",
"homepage": "https://github.com/gmponos"
},
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/Nyholm"
},
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com",
"homepage": "https://github.com/sagikazarmark"
},
{
"name": "Tobias Schultze",
"email": "webmaster@tubo-world.de",
"homepage": "https://github.com/Tobion"
}
],
"description": "Guzzle is a PHP HTTP client library",
"homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
"framework",
"http",
"http client",
"rest",
"web service"
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/6.5.8"
},
"funding": [
{
"url": "https://github.com/GrahamCampbell",
"type": "github"
},
{
"url": "https://github.com/Nyholm",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
"type": "tidelift"
}
],
"time": "2022-06-20T22:16:07+00:00"
},
{
"name": "guzzlehttp/promises",
"version": "1.5.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
"reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e",
"reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e",
"shasum": ""
},
"require": {
"php": ">=5.5"
},
"require-dev": {
"symfony/phpunit-bridge": "^4.4 || ^5.1"
},
"type": "library",
"autoload": {
"files": [
"src/functions_include.php"
],
"psr-4": {
"GuzzleHttp\\Promise\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Graham Campbell",
"email": "hello@gjcampbell.co.uk",
"homepage": "https://github.com/GrahamCampbell"
},
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/Nyholm"
},
{
"name": "Tobias Schultze",
"email": "webmaster@tubo-world.de",
"homepage": "https://github.com/Tobion"
}
],
"description": "Guzzle promises library",
"keywords": [
"promise"
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/1.5.3"
},
"funding": [
{
"url": "https://github.com/GrahamCampbell",
"type": "github"
},
{
"url": "https://github.com/Nyholm",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
"type": "tidelift"
}
],
"time": "2023-05-21T12:31:43+00:00"
},
{
"name": "guzzlehttp/psr7",
"version": "1.9.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/e4490cabc77465aaee90b20cfc9a770f8c04be6b",
"reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b",
"shasum": ""
},
"require": {
"php": ">=5.4.0",
"psr/http-message": "~1.0",
"ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
},
"provide": {
"psr/http-message-implementation": "1.0"
},
"require-dev": {
"ext-zlib": "*",
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
},
"type": "library",
"autoload": {
"files": [
"src/functions_include.php"
],
"psr-4": {
"GuzzleHttp\\Psr7\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Graham Campbell",
"email": "hello@gjcampbell.co.uk",
"homepage": "https://github.com/GrahamCampbell"
},
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "George Mponos",
"email": "gmponos@gmail.com",
"homepage": "https://github.com/gmponos"
},
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/Nyholm"
},
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com",
"homepage": "https://github.com/sagikazarmark"
},
{
"name": "Tobias Schultze",
"email": "webmaster@tubo-world.de",
"homepage": "https://github.com/Tobion"
}
],
"description": "PSR-7 message implementation that also provides common utility methods",
"keywords": [
"http",
"message",
"psr-7",
"request",
"response",
"stream",
"uri",
"url"
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/1.9.1"
},
"funding": [
{
"url": "https://github.com/GrahamCampbell",
"type": "github"
},
{
"url": "https://github.com/Nyholm",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
"type": "tidelift"
}
],
"time": "2023-04-17T16:00:37+00:00"
},
{
"name": "integrydev/phpexcel",
"version": "1.8.2",
"source": {
"type": "git",
"url": "https://github.com/integryDev/PHPExcel.git",
"reference": "1284223b0cabb80659a71d5fb968434d0557d7eb"
},
"require": {
"ext-mbstring": "*",
"ext-xml": "*",
"ext-xmlwriter": "*",
"php": "^5.2|^7.0"
},
"require-dev": {
"squizlabs/php_codesniffer": "2.*"
},
"type": "library",
"autoload": {
"psr-0": {
"PHPExcel": "Classes/"
}
},
"license": [
"LGPL-2.1"
],
"authors": [
{
"name": "Maarten Balliauw",
"homepage": "http://blog.maartenballiauw.be"
},
{
"name": "Mark Baker",
"homepage": "http://markbakeruk.net"
},
{
"name": "Franck Lefevre",
"homepage": "http://rootslabs.net"
},
{
"name": "Erik Tilt"
}
],
"description": "PHPExcel - OpenXML - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
"homepage": "https://github.com/integryDev/PHPExcel",
"keywords": [
"Excel",
"OpenXML",
"PHP",
"spreadsheet",
"xls",
"xlsx"
],
"time": "2025-10-17T08:38:15+00:00"
},
{
"name": "jdorn/sql-formatter",
"version": "v1.2.17",
@@ -388,6 +742,60 @@
},
"time": "2015-10-26T16:11:30+00:00"
},
{
"name": "paragonie/random_compat",
"version": "v2.0.21",
"source": {
"type": "git",
"url": "https://github.com/paragonie/random_compat.git",
"reference": "96c132c7f2f7bc3230723b66e89f8f150b29d5ae"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/96c132c7f2f7bc3230723b66e89f8f150b29d5ae",
"reference": "96c132c7f2f7bc3230723b66e89f8f150b29d5ae",
"shasum": ""
},
"require": {
"php": ">=5.2.0"
},
"require-dev": {
"phpunit/phpunit": "*"
},
"suggest": {
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
},
"type": "library",
"autoload": {
"files": [
"lib/random.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Paragon Initiative Enterprises",
"email": "security@paragonie.com",
"homepage": "https://paragonie.com"
}
],
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
"keywords": [
"csprng",
"polyfill",
"pseudorandom",
"random"
],
"support": {
"email": "info@paragonie.com",
"issues": "https://github.com/paragonie/random_compat/issues",
"source": "https://github.com/paragonie/random_compat"
},
"time": "2022-02-16T17:07:03+00:00"
},
{
"name": "phpfastcache/phpfastcache",
"version": "6.1.5",
@@ -499,73 +907,6 @@
],
"time": "2021-08-12T11:55:27+00:00"
},
{
"name": "phpoffice/phpexcel",
"version": "1.8.2",
"source": {
"type": "git",
"url": "https://github.com/PHPOffice/PHPExcel.git",
"reference": "1441011fb7ecdd8cc689878f54f8b58a6805f870"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPOffice/PHPExcel/zipball/1441011fb7ecdd8cc689878f54f8b58a6805f870",
"reference": "1441011fb7ecdd8cc689878f54f8b58a6805f870",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"ext-xml": "*",
"ext-xmlwriter": "*",
"php": "^5.2|^7.0"
},
"require-dev": {
"squizlabs/php_codesniffer": "2.*"
},
"type": "library",
"autoload": {
"psr-0": {
"PHPExcel": "Classes/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-2.1"
],
"authors": [
{
"name": "Maarten Balliauw",
"homepage": "http://blog.maartenballiauw.be"
},
{
"name": "Erik Tilt"
},
{
"name": "Franck Lefevre",
"homepage": "http://rootslabs.net"
},
{
"name": "Mark Baker",
"homepage": "http://markbakeruk.net"
}
],
"description": "PHPExcel - OpenXML - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
"homepage": "https://github.com/PHPOffice/PHPExcel",
"keywords": [
"OpenXML",
"excel",
"php",
"spreadsheet",
"xls",
"xlsx"
],
"support": {
"issues": "https://github.com/PHPOffice/PHPExcel/issues",
"source": "https://github.com/PHPOffice/PHPExcel/tree/master"
},
"abandoned": "phpoffice/phpspreadsheet",
"time": "2018-11-22T23:07:24+00:00"
},
{
"name": "phpoption/phpoption",
"version": "1.7.5",
@@ -802,6 +1143,59 @@
},
"time": "2016-08-06T20:24:11+00:00"
},
{
"name": "psr/http-message",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Message\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
"homepage": "https://github.com/php-fig/http-message",
"keywords": [
"http",
"http-message",
"psr",
"psr-7",
"request",
"response"
],
"support": {
"source": "https://github.com/php-fig/http-message/tree/master"
},
"time": "2016-08-06T14:39:51+00:00"
},
{
"name": "psr/simple-cache",
"version": "1.0.1",
@@ -853,6 +1247,50 @@
},
"time": "2017-10-23T01:57:42+00:00"
},
{
"name": "ralouphie/getallheaders",
"version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/ralouphie/getallheaders.git",
"reference": "120b605dfeb996808c31b6477290a714d356e822"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
"reference": "120b605dfeb996808c31b6477290a714d356e822",
"shasum": ""
},
"require": {
"php": ">=5.6"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.1",
"phpunit/phpunit": "^5 || ^6.5"
},
"type": "library",
"autoload": {
"files": [
"src/getallheaders.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ralph Khattar",
"email": "ralph.khattar@gmail.com"
}
],
"description": "A polyfill for getallheaders.",
"support": {
"issues": "https://github.com/ralouphie/getallheaders/issues",
"source": "https://github.com/ralouphie/getallheaders/tree/develop"
},
"time": "2019-03-08T08:55:37+00:00"
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.19.0",
@@ -932,6 +1370,334 @@
],
"time": "2020-10-23T09:01:57+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
"version": "v1.19.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
"reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/4ad5115c0f5d5172a9fe8147675ec6de266d8826",
"reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"symfony/polyfill-intl-normalizer": "^1.10",
"symfony/polyfill-php70": "^1.10",
"symfony/polyfill-php72": "^1.10"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
"thanks": {
"url": "https://github.com/symfony/polyfill",
"name": "symfony/polyfill"
},
"branch-alias": {
"dev-main": "1.19-dev"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Intl\\Idn\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Laurent Bassin",
"email": "laurent@bassin.info"
},
{
"name": "Trevor Rowbotham",
"email": "trevor.rowbotham@pm.me"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"idn",
"intl",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.19.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2020-10-21T09:57:48+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
"version": "v1.19.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8db0ae7936b42feb370840cf24de1a144fb0ef27",
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
"thanks": {
"url": "https://github.com/symfony/polyfill",
"name": "symfony/polyfill"
},
"branch-alias": {
"dev-main": "1.19-dev"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
},
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for intl's Normalizer class and related functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"intl",
"normalizer",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.19.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2020-10-23T09:01:57+00:00"
},
{
"name": "symfony/polyfill-php70",
"version": "v1.19.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php70.git",
"reference": "3fe414077251a81a1b15b1c709faf5c2fbae3d4e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3fe414077251a81a1b15b1c709faf5c2fbae3d4e",
"reference": "3fe414077251a81a1b15b1c709faf5c2fbae3d4e",
"shasum": ""
},
"require": {
"paragonie/random_compat": "~1.0|~2.0|~9.99",
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"thanks": {
"url": "https://github.com/symfony/polyfill",
"name": "symfony/polyfill"
},
"branch-alias": {
"dev-main": "1.19-dev"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Php70\\": ""
},
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php70/tree/v1.19.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2020-10-23T09:01:57+00:00"
},
{
"name": "symfony/polyfill-php72",
"version": "v1.19.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
"reference": "beecef6b463b06954638f02378f52496cb84bacc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/beecef6b463b06954638f02378f52496cb84bacc",
"reference": "beecef6b463b06954638f02378f52496cb84bacc",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"thanks": {
"url": "https://github.com/symfony/polyfill",
"name": "symfony/polyfill"
},
"branch-alias": {
"dev-main": "1.19-dev"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Php72\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php72/tree/v1.19.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2020-10-23T09:01:57+00:00"
},
{
"name": "vlucas/phpdotenv",
"version": "v4.3.0",

View File

@@ -1925,6 +1925,9 @@
"shortTitle": "CMMS",
"pages": "macchinari_prod.php",
"position": [],
"children": [
"modal_selezione_articoli"
],
"icon": "icon.png",
"libs": [
"std-pkg",
@@ -1934,7 +1937,8 @@
"chart-js",
"air-datepicker",
"select2",
"kendo"
"kendo",
"visibility"
],
"requirePermission": true,
"includeAssetsSubDirs": true
@@ -2241,5 +2245,27 @@
"std-pkg"
],
"requirePermission": true
},
"ordini_v_slim2k": {
"title": "Ordini di vendita Slim2k",
"pages": "ordini_v_slim2k.php",
"position": [],
"children": [],
"icon": "icon.png",
"libs": [
"std-pkg"
],
"requirePermission": true
},
"anomalie_merce": {
"title": "Anomalie Merce",
"pages": "anomalie_merce.php",
"position": [],
"children": [],
"icon": "icon.png",
"libs": [
"std-pkg"
],
"requirePermission": true
}
}
}

View File

@@ -7,6 +7,9 @@ ini_set("default_charset", "UTF-8");
if (!defined("ROOT")) {
define("ROOT", __DIR__);
}
if (!defined('PHP_FLOAT_EPSILON')) {
define('PHP_FLOAT_EPSILON', 2.2204460492503e-16);
}
require __DIR__ . "/vendor/autoload.php";
@@ -17,6 +20,9 @@ $dotenv->safeLoad();
//$dotenv->required(array("AZIENDA", "SERVICES_BASE_URL"))->notEmpty();
//$dotenv->required("APP_ENV")->allowedValues(array("DEV", "PROD"))->notEmpty();
define("LOGIN_JWT", array_key_exists("LOGIN_JWT", $_ENV) && $_ENV["LOGIN_JWT"] == "true");
define("USE_GUZZLE", !array_key_exists("USE_GUZZLE", $_ENV) || $_ENV["USE_GUZZLE"] == "true");
try {
$cacheManager = \phpFastCache\CacheManager::getInstance("sqlite");
} catch (\phpFastCache\Exceptions\phpFastCacheDriverCheckException $e) {

View File

@@ -0,0 +1 @@
nav#nb-main .navbar-center #titlebar{color:#2f363d}.navbar-default{background-color:#f5f5f5;border-color:#e0e0e0}.navbar-default .navbar-brand{color:#2f363d}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#2f363d}.navbar-default .navbar-text{color:#2f363d}.navbar-default .navbar-nav>li>a{color:#2f363d}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#2f363d}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#fff !important;background-color:#63221c}.navbar-default .navbar-nav>.open:not(.active)>a,.navbar-default .navbar-nav>.open:not(.active)>a:hover,.navbar-default .navbar-nav>.open:not(.active)>a:focus{color:#2f363d !important;background-color:#e0e0e0}.navbar-default .navbar-toggle{border-color:#e0e0e0}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#e0e0e0}.navbar-default .navbar-toggle .icon-bar{background-color:#2f363d}.navbar-default .navbar-link{color:#2f363d}.navbar-default .navbar-link:hover{color:#2f363d}@media(max-width: 767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#2f363d}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#2f363d}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff !important;background-color:#63221c}}#bt_nb-side-dismiss>i,#bt_nb-side-collapse>i{color:hsl(210,12.962962963%,61.1764705882%)}#nb-side>div>.navbar{background-color:#f5f5f5;border-color:#e0e0e0}/*# sourceMappingURL=custom.css.map */

View File

@@ -0,0 +1,11 @@
/** NAVBAR */
/* warning: ho generato con twbscolor, e aggiunto $bgActive, $colActive */
$bgDefault: #f5f5f5;
$bgHighlight: #e0e0e0;
$bgActive: #63221C;
$colDefault: #2f363d;
$colHighlight: #2f363d;
$colActive: #fff;
@import "../navbar";

View File

@@ -0,0 +1,83 @@
[
{
"name": "ordini_v",
"group": "Vendite",
"usergroups": [
"10"
]
},
{
"name": "emis_ddt",
"group": "Vendite",
"usergroups": [
"10"
]
},
{
"name": "produzione_tl",
"group": "Produzione",
"usergroups": [
"11"
]
},
{
"name": "monitoraggio_linee_v2",
"group": "Produzione",
"usergroups": [
"11"
]
},
{
"name": "delivery_plan",
"group": "Vendite",
"usergroups": [
"2",
"9",
"11"
]
},
{
"name": "previsioni_raccolta",
"group": "Produzione",
"usergroups": [
"2"
]
},
{
"name": "mrp",
"group": "Produzione",
"usergroups": [
"1"
]
},
{
"name": "mappa_campi_di_raccolta",
"group": "Produzione",
"usergroups": [
"2"
]
},
{
"name": "pianificazione_produzione_orto",
"group": "Produzione",
"usergroups": [
"2"
]
},
{
"name": "contratti_di_vendita",
"group": "Vendite",
"usergroups": [
"11",
"12",
"2"
]
},
{
"name": "budget_vendite",
"group": "Vendite",
"usergroups": [
"2"
]
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1,8 @@
<?php
namespace gruppo\SC;
use gruppo\SL\TransfManagerSL;
class TransfManagerSC extends TransfManagerSL {
}

View File

@@ -10,20 +10,9 @@
use IMSApi\Enum\TipoValore;
$i = 0;
foreach ($fermiMacchina as $fermoMacchina) {
$i++;
$colWidth = "3";
if ($i === 3) {
$colWidth = "4";
} else if ($i === 4) {
$colWidth = "2";
}
?>
<td class="vertical-middle col-sm-<?= $colWidth ?> text-center">
<td class="vertical-middle text-center">
<?= $fermoMacchina["controllo"] ?>
</td>
<?php
@@ -61,26 +50,67 @@
$tipoValore = array_get($fermoMacchina, "tipo_valore");
$valoreRil = array_get($ripetizione, "valore_ril", "");
$numRip = array_get($ripetizione, "num_rip", 0);
$width = "";
if (\Utility\Str::contains($fermoMacchina["controllo"], "descrizione")
|| \Utility\Str::contains($fermoMacchina["controllo"], "operatore")) {
$width = "35%";
} else {
if (\Utility\Str::contains($fermoMacchina["controllo"], "operatore")) {
$width = "25%";
} else {
if (\Utility\Str::contains($fermoMacchina["controllo"], "data")) {
$width = "24%";
}
}
}
?>
<td class="vertical-middle col-sm-3 text-center"
<td class="vertical-middle text-center"
<?= $width ? "style='width: $width'" : "" ?>
data-id_riga="<?= $fermoMacchina["id_riga"] ?>"
data-controllo="<?= $fermoMacchina['controllo'] ?>">
<div class="col-sm-12 input-group">
<?php
if ($tipoValore === TipoValore::DATETIME()->getValue()) { ?>
<input class="dateTimePicker"
name="valore_ril"
data-id_riga="<?= $fermoMacchina["id_riga"] ?>"
data-num_rip="<?= $i ?>"
data-prev="<?= $valoreRil ?>"
value="<?= $valoreRil ?>">
<?php
} else { ?>
<input type="text" class="form-control controlInput"
data-id_riga="<?= $fermoMacchina["id_riga"] ?>"
data-num_rip="<?= $i ?>"
data-prev="<?= $valoreRil ?>" value="<?= $valoreRil ?>">
<?php
switch ($tipoValore) {
case TipoValore::DATETIME()->getValue(): ?>
<input class="dateTimePicker"
name="valore_ril"
data-id_riga="<?= $fermoMacchina["id_riga"] ?>"
data-num_rip="<?= $i ?>"
data-prev="<?= $valoreRil ?>"
value="<?= $valoreRil ?>">
<?php
break;
case TipoValore::DROPDOWNLIST()->getValue():
$valori = array_get($fermoMacchina, "valori");
if (isset($valori) && strlen($valori) > 0) {
$valori = explode("|", array_get($fermoMacchina, "valori"));
} ?>
<select class="dropdownList"
name="valore_ril"
data-id_riga="<?= $fermoMacchina["id_riga"] ?>"
data-num_rip="<?= $i ?>">
<option value="">Seleziona un valore...</option>
<?php
foreach ($valori as $valore) { ?>
<option value="<?= $valore ?>"
<?= $valore == $valoreRil ? "selected" : "" ?>>
<?= $valore ?>
</option>
<?php
} ?>
</select>
<?php
break;
default: ?>
<input type="text" class="form-control controlInput"
data-id_riga="<?= $fermoMacchina["id_riga"] ?>"
data-num_rip="<?= $i ?>"
data-prev="<?= $valoreRil ?>" value="<?= $valoreRil ?>">
<?php
break;
} ?>
</div>
</td>
@@ -89,8 +119,8 @@
<td class="vertical-middle col-sm-1 text-center" data-repetitions=<?= $maxNumRip ?>>
<div class="btn-group btn-group-justified">
<a href="javascript:" class="plusRow btn btn-default <?= $i
!== array_slice($righePiene, -1)[0] ? "disabled" : "" ?>"
title="Aggiungi Riga">
!== array_slice($righePiene, -1)[0] ? "disabled" : "" ?>"
title="Aggiungi Riga">
<i class="fa fa-plus text-success"></i>
</a>
<a href="javascript:" class="deleteRow btn btn-default" title="Elimina Riga">
@@ -103,9 +133,9 @@
if ($key == 0) {
$row = ob_get_clean();
?>
<div style="display: none"
data-fermomacchinarowtemplate="<?= B64JSON_stringify(array("template" => Utility\Str::remove_multiple_spaces($row))); ?>">
</div>
<template id="fermomacchinarowtemplate">
<?= Utility\Str::remove_multiple_spaces($row); ?>
</template>
<?php
echo $row;
}

View File

@@ -71,7 +71,7 @@ CQ_DR03P06.prototype.init = function (o) {
CQ_DR03P06.prototype.initButtons = function ($tr) {
const self = this;
const $cqInputs = $tr.find("div.input-group > input[data-num_rip]:not(.dateTimePicker)"); /* here we add the saving function to all the input-groups already loaded from db*/
const $cqInputs = $tr.find("div.input-group > input.controlInput"); /* here we add the saving function to all the input-groups already loaded from db*/
$cqInputs.on("change", _.bind(self.saveSingleInput, self));
$tr.find("input.caratInput").on("change", _.bind(self.saveCaratInput, self));
@@ -93,9 +93,9 @@ CQ_DR03P06.prototype.initButtons = function ($tr) {
$dateTimePicker.each((i, el) => $(el).kendoDateTimePicker({
change: _.debounce((e) => {
// if (moment(e.sender.value()).format("HH:mm") !== "00:00") {
self.saveSingleInput(e);
self.saveSingleInput(e);
// }
}, 20000),
}, 25000),
dateInput: true,
interval: 5,
messages: {
@@ -104,50 +104,21 @@ CQ_DR03P06.prototype.initButtons = function ($tr) {
month: "mese",
day: "giorno",
hour: "ora",
minute: "minuto"
}
}
minute: "minuto",
},
},
}));
// let lastDate;
// let isDateSelected = false;
// let selectedDate = false;
//
// $dateTimePicker.datepicker({
// timepicker: true,
// dateFormat: "dd/mm/yyyy",
// timeFormat: "hh:ii",
// inModal: true,
// position: "top left",
// clearButton: true,
// onSelect: function (formattedDate, date, inst) {
// const value = inst.$el.val();
//
// isDateSelected = lastDate === "" || lastDate !== value;
// },
// onShow: function (inst) {
// const value = inst.$el.val();
// const dateValue = moment(value, "DD/MM/YYYY HH:mm").toDate();
//
// lastDate = value;
// if (isValidDate(dateValue)) {
// inst.selectDate(dateValue);
// }
// },
// onHide: function (inst, animationCompleted) {
// if (!animationCompleted) {
// selectedDate = inst.$el.val();
// }
//
// if (isDateSelected && animationCompleted && (lastDate === "" || lastDate !== selectedDate)) {
// inst.$el.trigger("change");
//
// isDateSelected = false;
// lastDate = null;
// }
// }
// });
}
const $dropdownList = $tr.find(".dropdownList");
$dropdownList.each((i, el) => {
$(el).kendoDropDownList({
change: (e) => {
self.saveSingleInput(e);
},
});
});
};
function isValidDate(d) {
return d instanceof Date && !isNaN(d);
@@ -220,8 +191,10 @@ CQ_DR03P06.prototype.onPlusRowClick = function (event) {
if (repetitionsLeft > 0) {
const $row = $plusRowBtn.parents("tr.fermoMacchinaRow");
const data = _ojbc.B64JSON_parse($("[data-fermomacchinarowtemplate]").attr("data-fermomacchinarowtemplate"));
const $clone = $(data.template).find("input").val("").end();
const data = $("#fermomacchinarowtemplate").html();
const $clone = $(data);
$clone.find("input,select").val("");
$clone.find("input,select").val("");
const repetitions = $row.find("[data-num_rip]");
const lastNumRip = _.max($("[data-lastnumrip]").map((i, el) => Number($(el).attr("data-lastnumrip")) || 0).toArray());
@@ -232,7 +205,7 @@ CQ_DR03P06.prototype.onPlusRowClick = function (event) {
const repetition = $(this).attr("data-num_rip");
const newRepetition = Number(repetition) + 1;
$($clone.find("input[data-num_rip]").get(index)).attr("data-num_rip", newRepetition);
$($clone.find("[data-num_rip]").get(index)).attr("data-num_rip", newRepetition);
});
/*************** ADD THE LISTENER TO THE FRESH NEW INPUT TO BE ADDED TO THE DOM ***************************************/
/**** WE NEED TO ADD THE LISTENER HERE, BECAUSE ON BEFORE SHOW, THESE NEW INPUT BOXES DID NOT EXIST *****************/
@@ -262,15 +235,23 @@ CQ_DR03P06.prototype.onDeleteRowClick = function (event) {
let fmrLength = $fermoMacchinaRow.length;
if (fmrLength > 0) {
const rowInputs = $row.find("input.controlInput,.dateTimePicker").val("");
const rowInputs = $row.find("[data-id_riga][data-num_rip]");
const cqrs = [];
_.each(rowInputs, function (rowInput) {
const $rowInput = $(rowInput);
const handler = $rowInput.data("handler");
if (typeof handler !== "undefined") {
handler.value("");
} else {
$rowInput.val("");
}
const cqr = {
id_riga: $rowInput.getIntDataAttr("id_riga"),
num_rip: $rowInput.getIntDataAttr("num_rip"),
valore_ril: $rowInput.val().trim(),
valore_ril: "",
data_ril: getNow(),
};
@@ -374,7 +355,7 @@ CQ_DR03P06.prototype.saveSingleInput = function (event, finalEnableTrash = true,
id_riga: $input.getIntDataAttr("id_riga"),
num_rip: $input.getIntDataAttr("num_rip"),
valore_ril,
data_ril: getNow()
data_ril: getNow(),
};
const savePromise = new $.Deferred();
@@ -449,7 +430,7 @@ CQ_DR03P06.prototype.onTrashClick = function (event) {
id_riga: $input.getIntDataAttr("id_riga"),
num_rip: $input.getIntDataAttr("num_rip"),
valore_ril: inputVal,
data_ril: getNow()
data_ril: getNow(),
};
/************ if valore_ril is not null, then it has already been memorized in db ****************/
/*********************************** DELETE DATA *************************************************/
@@ -486,7 +467,7 @@ CQ_DR03P06.prototype.onTrashClick = function (event) {
id_riga: parseInt($inputGroup.find("input.controlInput").attr("data-id_riga")),
num_rip: previousRowNumber,
valore_ril: $inputGroup.find("input.controlInput").data("prev"),
data_ril: getNow()
data_ril: getNow(),
};
/****************** DELETION OF LAST ROW *****/
self._onTrashClick([remainedCqr]).then((updateOK) => {
@@ -506,7 +487,7 @@ CQ_DR03P06.prototype.onTrashClick = function (event) {
}
}, (error) => {
console.log(error);
}
},
);
} else {
/************* last input is empty *************************/
@@ -566,7 +547,7 @@ CQ_DR03P06.prototype.saveCaratInput = function (e) {
idRiga: idRiga,
carat: carat,
val: val,
order: self._orderKey
order: self._orderKey,
})
.noticeAsToast()
.waitToast()
@@ -578,4 +559,4 @@ CQ_DR03P06.prototype.saveCaratInput = function (e) {
// self._parent._refreshModalDetails(self._orderKey, self._codProd, $input);
})
.execute();
};
};

View File

@@ -37,7 +37,8 @@ class CQDR03P06 {
/************************** this function returns null for measurements with single repetition ***************************/
private static function getRipRecord($cq, $numRip) {
$result = (!is_null($cq) && !is_null($cq["rip"])) ? array_values(from($cq["rip"])->where(function ($x) use ($numRip) {
$result = (!is_null($cq)
&& !is_null($cq["rip"])) ? array_values(from($cq["rip"])->where(function ($x) use ($numRip) {
return $x["num_rip"] === $numRip;
})->toArray()) : array();
return count($result) > 0 ? $result[0] : null;
@@ -89,7 +90,8 @@ $CQDR03P06 = new CQDR03P06($arr_cq);
</tr>
</thead>
<tbody>
<?php foreach ($standardCQ as $controlloQualita) { ?>
<?php
foreach ($standardCQ as $controlloQualita) { ?>
<tr class="">
<td class="vertical-middle col-sm-4 text-center">
<?= $controlloQualita['controllo'] ?>
@@ -117,8 +119,10 @@ $CQDR03P06 = new CQDR03P06($arr_cq);
data-num_rip="<?= $i + 1 ?>"
data-prev="<?= $valoreRil ?>"
value="<?= $valoreRil ?>">
<span class="plus <?= $controlloQualita['num_rip'] == count($ripetizioni) ? ("cursor-pointer") : ("disabled") ?> btn input-group-addon py-0"
title="<?= $controlloQualita['num_rip'] == count($ripetizioni) ? ("Aggiungi ulteriore misurazione") : ("Non sono previste altre misurazioni per questo controllo") ?>">
<span class="plus <?= $controlloQualita['num_rip']
== count($ripetizioni) ? ("cursor-pointer") : ("disabled") ?> btn input-group-addon py-0"
title="<?= $controlloQualita['num_rip']
== count($ripetizioni) ? ("Aggiungi ulteriore misurazione") : ("Non sono previste altre misurazioni per questo controllo") ?>">
<span class='p-0'>
<i class="fa fa-plus text-success"></i>
</span>
@@ -139,8 +143,10 @@ $CQDR03P06 = new CQDR03P06($arr_cq);
<input type="text" class="form-control controlInput"
data-id_riga="<?= $controlloQualita["id_riga"] ?>"
data-num_rip="1" data-prev="" value="">
<span class="plus <?= $controlloQualita['num_rip'] > 0 ? ("cursor-pointer") : ("disabled") ?> btn input-group-addon py-0"
title="<?= $controlloQualita['num_rip'] > 0 ? ("Aggiungi ulteriore misurazione") : ("Non sono previste altre misurazioni per questo controllo") ?>">
<span class="plus <?= $controlloQualita['num_rip']
> 0 ? ("cursor-pointer") : ("disabled") ?> btn input-group-addon py-0"
title="<?= $controlloQualita['num_rip']
> 0 ? ("Aggiungi ulteriore misurazione") : ("Non sono previste altre misurazioni per questo controllo") ?>">
<span class='p-0'>
<i class="fa fa-plus text-success"></i>
</span>
@@ -151,13 +157,16 @@ $CQDR03P06 = new CQDR03P06($arr_cq);
</span>
</span>
</div>
<?php } ?>
<?php
} ?>
</td>
</tr>
<?php } ?>
<?php
} ?>
</tbody>
</table>
<?php if (!empty($caratPartita)) { ?>
<?php
if (!empty($caratPartita)) { ?>
<table class="table table-bordered"> <!-- class "small" deleted to have bigger font-size -->
<thead>
<tr class="font-size-15">
@@ -169,7 +178,8 @@ $CQDR03P06 = new CQDR03P06($arr_cq);
</tr>
</thead>
<tbody>
<?php foreach ($caratPartita as $carat) { ?>
<?php
foreach ($caratPartita as $carat) { ?>
<tr class="">
<td class="vertical-middle col-sm-4 text-center">
<?= $carat['carat'] ?>
@@ -183,15 +193,59 @@ $CQDR03P06 = new CQDR03P06($arr_cq);
</div>
</td>
</tr>
<?php } ?>
<?php
} ?>
</tbody>
</table>
<?php } ?>
<?php
} ?>
<?php
if (count($fermiMacchina) > 0) {
include "cq_DR03P06-SL.php";
}
if (array_get($groupedDtbOrdCQ, "DETAILED_CQ")) {
foreach ($groupedDtbOrdCQ["DETAILED_CQ"] as $detailedCQ) { ?>
<table class="cqToKendo" data-inline_editing="true" id="cq_detail_<?= $detailedCQ["id_riga"] ?>"
data-controllo="<?= array_get($detailedCQ, "controllo") ?>"
data-id_riga="<?= array_get($detailedCQ, "id_riga") ?>"
data-tipo_valore="<?= array_get($detailedCQ, "tipo_valore") ?>"
data-max_rip="<?= array_get($detailedCQ, "num_rip") ?>"
>
<thead>
<tr>
<th>controllo</th>
<th>id_riga</th>
<th>num_rip</th>
<th>Valore</th>
<th>Data rilevazione</th>
<th>Rilevatore</th>
<th>Note</th>
<th></th>
</tr>
</thead>
<tbody>
<?php
foreach (array_get($detailedCQ, "rip") as $rip) {
?>
<tr>
<td><?= array_get($detailedCQ, "controllo") ?></td>
<td><?= array_get($detailedCQ, "id_riga") ?></td>
<td><?= array_get($rip, "num_rip") ?></td>
<td><?= array_get($rip, "valore_ril") ?></td>
<td><?= DateTime::createFromFormat("U", array_get($rip, "data_ril"))->setTimezone(new DateTimeZone(date_default_timezone_get()))->format(Format::strtotimeDMYHMS) ?></td>
<td><?= array_get($rip, "rilevatore") ?></td>
<td><?= array_get($rip, "note") ?></td>
<td></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
}
}
?>
</div>
</div>
@@ -200,4 +254,4 @@ $CQDR03P06 = new CQDR03P06($arr_cq);
/*
* WE SHOULD GENERATE A COMMON PAGE FOR ALL COMPANIES
**/
**/

View File

@@ -77,6 +77,7 @@ foreach ($arr_cq as $element) {
$groupedDtbOrdCQ[$element['tipologia']][] = $element;
}
$standardCQ = array_get($groupedDtbOrdCQ, "STANDARD", array());
$fermiMacchina = array_get($groupedDtbOrdCQ, "FERMI_MACCHINA", array());
$CQDR03P06 = new CQDR03P06($arr_cq);
@@ -117,7 +118,7 @@ $CQDR03P06 = new CQDR03P06($arr_cq);
</tr>
</thead>
<tbody>
<?php foreach ($arr_cq as $singleControl) { ?>
<?php foreach ($standardCQ as $singleControl) { ?>
<tr>
<td class="vertical-middle col-sm-4 text-center">
<?= $singleControl['controllo'] ?>
@@ -184,39 +185,8 @@ $CQDR03P06 = new CQDR03P06($arr_cq);
</div>
</div>
</div>
<script>
CQ_DR03P06.prototype.saveSingleInput = function (event) {
let self = this;
let $input = $(event.currentTarget).closest("div.input-group").find("input.controlInput");
$input.prop("disabled", true);
let cqr = {
id_riga: $input.getIntDataAttr("id_riga"),
num_rip: $input.getIntDataAttr("num_rip"),
valore_ril: $input.val().trim(),
data_ril: getNow()
};
let savePromise = new $.Deferred();
self._onCqrChange([cqr]).then((updateOK) => {
if (updateOK) {
$input.attr("data-prev", cqr["valore_ril"]);
self._allowToast ? self._toast.success("Dati salvati correttamente") : self.allowFollowingToast(true);
savePromise.resolve(true);
$input.prop("disabled", false);
} else {
/******* this message should be never displayed *****/
self._toast.danger("Dati non salvati, si prega di chiudere e riaprire i Dettagli");
$input.val("");
savePromise.resolve(false);
$input.prop("disabled", false);
}
});
};
</script>
<?php
/*
* WE SHOULD GENERATE A COMMON PAGE FOR ALL COMPANIES
**/
**/

View File

@@ -220,6 +220,10 @@ WHERE mt.data_ord = '[dataOrd]'
$residuoTeorico = array_sum(array_map(function ($collo) {
return $collo["qta_col"];
}, $colliResiduo));
if (abs($residuoTeorico - $qtaResiduoEffettivo) <= PHP_FLOAT_EPSILON)
return $ret;
if ($residuoTeorico < $qtaResiduoEffettivo) {
$data = array(
"qta_collo" => $qtaResiduoEffettivo - $residuoTeorico,
@@ -302,4 +306,4 @@ WHERE mt.data_ord = '[dataOrd]'
}
}
}

View File

@@ -0,0 +1,37 @@
{
"integry": {
"db": {
"driver": "pdosqlsrv",
"hostName": "192.168.2.220",
"dbName": "CAPELLI_MONELLI",
"userName": "sa",
"password": "sa"
},
"Xdb": {
"driver": "pdosqlsrv",
"hostName": "192.168.2.220",
"dbName": "CAPELLI_MONELLI",
"userName": "SA",
"password": "sa"
},
"endPoint": "192.168.3.15:8080",
"endPointRemote": "https://www2.studioml.it",
"public_url": "https://www.studioml.it/pvm/"
},
"cliente": {
"db": {
"driver": "pdosqlsrv",
"hostName": "192.168.2.220",
"dbName": "CAPELLI_MONELLI",
"userName": "sa",
"password": "sa"
},
"endPoint": "192.168.2.215:8080",
"endPointRemote": null,
"public_url": "https://www.studioml.it/pvm/"
},
"dbNameWeb": "CAPELLI_MONELLI",
"azienda": "CAPELLI_MONELLI",
"sc_project": "8873238",
"sc_security": "cdf04bba"
}

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_mainClasspath();
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();

File diff suppressed because one or more lines are too long

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_mainClasspath();
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_mainClasspath();
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -30,4 +30,4 @@ include Controller::current_mainClasspath();
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
if (isset($_GET["arr_codMart"])) {
@@ -83,4 +83,4 @@ if (isset($_GET["arr_codMart"])) {
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -30,4 +30,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -30,4 +30,4 @@ include Controller::current_mainClasspath();
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -26,4 +26,4 @@ if (!PVM\CurrentModule::isAuthorizedToCurrentUser()) {
} ?>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -29,4 +29,4 @@ include Controller::current_gestpath_include("ajax.php");
</div>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath();
@@ -26,4 +26,4 @@ if (!PVM\CurrentModule::isAuthorizedToCurrentUser()) {
} ?>
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -2,8 +2,8 @@
include_once "session.php";
$session = getSession();
include_once "functions.php";
require_once "include_login.php";
include_once "config.php";
require_once "include_login.php";
include_once "include/module.php";
include Controller::current_mainClasspath(false);
@@ -29,4 +29,4 @@ if (!PVM\CurrentModule::isAuthorizedToCurrentUser()) {
<?php include pvm_footerMinimal; ?>
</body>
</html>
</html>

View File

@@ -360,12 +360,18 @@ function parse_size($size) {
}
function is_logged() {
$arr_fields = array("username", "password", "cod_mdep", "user_code", "fullname", "gruppo");
if (LOGIN_JWT) {
$arr_fields = array("accessToken", "refreshToken");
} else {
$arr_fields = array("username", "password", "cod_mdep", "user_code", "fullname", "gruppo");
}
foreach ($arr_fields as $field) {
if (!array_key_exists($field, $_SESSION)) {
return false;
}
}
return true;
}

View File

@@ -0,0 +1,154 @@
<?php
class AnomalieMerce {
public static function _moduleDatasource($filter) {
$Ret = new Ret;
if ($Ret->is_OK()) {
$retData = array(
array("id"=>"livelliAnomalie","data"=>self::getLivelliAnomalie(true))
);
$Ret->set_data($retData);
}
return $Ret;
}
public static function getListaAnomalie($filter) {
$ims = new IMSApi();
$ret = $ims->get("magazzino/anomalie/lista")
->body($filter)
->send();
if ($ret->is_KO()) {
return $ret;
}
return Ret::data($ret->getDto());
}
public static function deleteAnomalia($data) {
$idAnomalia = array_get($data, "idAnomalia");
if (empty($idAnomalia)) {
return Ret::errorCode(ErrorHandler::MISSING_PARAMS, __FUNCTION__);
}
$ims = new IMSApi();
$ret = $ims->post("magazzino/anomalie/$idAnomalia/elimina")
->send();
if ($ret->is_KO()) {
return $ret;
}
return Ret::data($ret->getDto());
}
public static function deleteLivelloAnomalia($data) {
$id = array_get($data, "id");
if (empty($id)) {
return Ret::errorCode(ErrorHandler::MISSING_PARAMS, __FUNCTION__);
}
$ims = new IMSApi();
$ret = $ims->post("magazzino/anomalie/livelli/$id/elimina")
->send();
if ($ret->is_KO()) {
return $ret;
}
return Ret::data($ret->getDto());
}
public static function getUlAnomalia($filter) {
$idAnomalia = array_get($filter, "idAnomalia");
$ims = new IMSApi();
$ret = $ims->get("magazzino/anomalie/$idAnomalia/ul")
->send();
if ($ret->is_KO()) {
return $ret;
}
return Ret::data($ret->getDto());
}
public static function detachUlsFromAnomaly($data) {
$listaUl = array_get($data, "barcodeList");
if (empty($listaUl)) {
return Ret::errorCode(ErrorHandler::MISSING_PARAMS, "Parametri mancanti");
}
$ims = new IMSApi();
return $ims->post("magazzino/anomalie/detachUls")
->body($listaUl)
->send();
}
public static function attachUlsToAnomaly($data) {
$id = array_get($data, "id");
$listaUl = array_get($data, "barcodeList");
if (empty($id) || empty($listaUl)) {
return Ret::errorCode(ErrorHandler::MISSING_PARAMS, "Parametri mancanti");
}
$ims = new IMSApi();
return $ims->post("magazzino/anomalie/$id/attachUls")
->body($listaUl)
->send();
}
public static function getLivelliAnomalie($asPlainJson = false) {
$ims = new IMSApi();
$ret = $ims->get("magazzino/anomalie/livelli/lista")
->send();
if ($ret->is_KO()) {
return $ret;
}
return $asPlainJson ? $ret->getDto() : Ret::data($ret->getDto());
}
public static function saveLivelloAnomalia($data) {
$descrizione = array_get($data, "descrizione");
if (empty($descrizione)) {
return Ret::errorCode(ErrorHandler::MISSING_PARAMS, __FUNCTION__);
}
$ims = new IMSApi();
$ret = $ims->post("magazzino/anomalie/livelli/salva")
->body($data)
->send();
if ($ret->is_KO()) {
return $ret;
}
return Ret::data($ret->getDto());
}
public static function searchBarcodes($data) {
$searchTerm = array_get($data, "q");
$codJfas = array_get($data, "codJfas");
if (empty($searchTerm)) {
return Ret::data(array());
}
$ims = new IMSApi();
$ret = $ims->get("wms/barcodes/list")
->queryParam("barcodeUl",$searchTerm)
->queryParam("codJfas",$codJfas)
->send();
if ($ret->is_KO()) {
return $ret;
}
return Ret::data($ret->getDto());
}
public static function saveAnomalia($data) {
$idAnomalia = array_get($data, "id");
$descrizione = array_get($data, "descrizione");
$idLivelloAnomalia = array_get($data, "idLivelloAnomalia");
if (empty($idAnomalia) && (empty($descrizione) || empty($idLivelloAnomalia))) {
return Ret::errorCode(ErrorHandler::MISSING_PARAMS, __FUNCTION__);
}
$ims = new IMSApi();
$ret = $ims->post("magazzino/anomalie/salva")
->body($data)
->send();
if ($ret->is_KO()) {
return $ret;
}
return Ret::data($ret->getDto());
}
}

View File

@@ -0,0 +1 @@
/*# sourceMappingURL=main.css.map */

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 KiB

View File

@@ -0,0 +1 @@
<div id="anomalie_prod"></div>

View File

@@ -0,0 +1,48 @@
import TabsViewModule, {TabLike} from "@js/modules/TabsViewModule.js";
export default class AnomalieMerceTabViewModule extends TabsViewModule {
public static readonly MODULE_NAME: string = "anomalie_merce";
constructor(selector: string | null) {
super(selector, {
currentTab: "null",
justify: true,
tabs: [],
});
}
name(): string {
return AnomalieMerceTabViewModule.MODULE_NAME;
}
override async onLoad(): Promise<void> {
if (!this.module.isLoaded()) {
await this.module.load();
}
await super.onLoad();
this.initTabs();
}
initTabs(): void {
const tabs: TabLike[] = [];
tabs.push({
id: "lista_anomalie_view",
title: "Lista anomalie",
component: () => import("@gest-lib/anomalie_merce/ts/tabs/ListAnomalieTabView.js"),
});
tabs.push({
id: "lista_livelli_view",
title: "Livelli anomalie",
component: () => import("@gest-lib/anomalie_merce/ts/tabs/ListLivelliAnomalieTabView.js"),
});
this.tabs.push(...tabs);
if (this.tabs.length > 0) {
setTimeout(() => this.setInitialTab(this.getSession().currentTab, this.tabs[0].id), 500);
}
}
}

View File

@@ -0,0 +1,6 @@
import AnomalieMerceTabViewModule from "@gest-lib/anomalie_merce/ts/AnomalieMerceTabViewModule.js";
$(async function () {
await new AnomalieMerceTabViewModule("#anomalie_prod").load();
});

View File

@@ -0,0 +1,20 @@
import {defineKendoModel, FieldMap, KendoModelInstance} from "@js/KendoModelBuilder.js";
import {AnomalieMerceDTO} from "@js/ims/ems-engine.module";
const AnomaliaDTOFields: FieldMap<AnomalieMerceDTO> = {
id: {type: "number"},
idLivelloAnomalia: {type: "number"},
descrizione: {type: "string"},
annotazioni: {type: "string"},
inizioAnomalia: {type: "date"},
fineAnomalia: {type: "date"},
codJfas: {type: "string"},
livelloAnomalia: {type: "object"},
};
export type AnomaliaDTOInstance = KendoModelInstance<AnomalieMerceDTO>;
const AnomaliaDTOModel = defineKendoModel<AnomalieMerceDTO>("id", AnomaliaDTOFields);
export default AnomaliaDTOModel;

View File

@@ -0,0 +1,17 @@
import {defineKendoModel, FieldMap, KendoModelInstance} from "@js/KendoModelBuilder.js";
export interface AssignAnomaliaRequestDTO {
id: number | null;
barcodeList: string[];
}
const AssignAnomaliaRequestDTOFields: FieldMap<AssignAnomaliaRequestDTO> = {
id: {type: "number"},
barcodeList: {type: "object"},
};
export type AssignAnomaliaRequestDTOInstance = KendoModelInstance<AssignAnomaliaRequestDTO>;
const AssignAnomaliaRequestDTOModel = defineKendoModel<AssignAnomaliaRequestDTO>("id", AssignAnomaliaRequestDTOFields);
export default AssignAnomaliaRequestDTOModel;

View File

@@ -0,0 +1,20 @@
import {defineKendoModel, FieldMap, KendoModelInstance} from "@js/KendoModelBuilder.js";
import {AnomalieMerceDTO, DettaglioULDTO} from "@js/ims/ems-engine.module";
const UlDetailDTOFields: FieldMap<DettaglioULDTO> = {
barcodeUl: {type: "string"},
codJfas: {type: "string"},
codMart: {type: "string"},
descrizione: {type: "string"},
descrizioneEstesa: {type: "string"},
partitaMag: {type: "string"},
qtaCol: {type: "number"},
untMis: {type: "string"},
};
export type UlDetailDTOInstance = KendoModelInstance<DettaglioULDTO>;
const UlDetailDTOModel = defineKendoModel<DettaglioULDTO>("barcodeUl", UlDetailDTOFields);
export default UlDetailDTOModel;

View File

@@ -0,0 +1,18 @@
import {defineKendoModel, FieldMap, KendoModelInstance} from "@js/KendoModelBuilder.js";
import {AnomalieMerceDTO, MtbLivelliAnomalie} from "@js/ims/ems-engine.module";
const LivelloAnomaliaDTOFields: FieldMap<MtbLivelliAnomalie> = {
id: {type: "number"},
descrizione: {type: "string"},
hexColore: {type: "string"},
escludiPickingLavorazione: {type: "boolean"},
escludiPickingVendita: {type: "boolean"},
type: {type: "string"}
};
export type LivelloAnomaliaDTOInstance = KendoModelInstance<MtbLivelliAnomalie>;
const LivelloAnomaliaDTOModel = defineKendoModel<MtbLivelliAnomalie>("id", LivelloAnomaliaDTOFields);
export default LivelloAnomaliaDTOModel;

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