Compare commits

...

206 Commits

Author SHA1 Message Date
a3598fab56 Merge branch 'release/v1.29.13(317)' 2022-10-21 17:56:41 +02:00
7dc77bf1f9 -> v1.29.13 (317) 2022-10-21 17:56:26 +02:00
66f2bda370 Refactoring dialog ask posizione 2022-10-21 17:55:02 +02:00
600258228b Rimossa gestione MtbCols 2022-10-21 11:48:34 +02:00
19cc9f5016 Finish v1.29.12(316) 2022-10-20 17:36:22 +02:00
0dcb8c6af4 Finish v1.29.12(316) 2022-10-20 17:36:22 +02:00
9974deaf69 -> v1.29.12 (316) 2022-10-20 17:36:16 +02:00
fe081897e7 bugfix
la gestione approvv. linee prod crasha a fine caricamento
2022-10-20 12:03:35 +02:00
b0de2dda40 Finish v1.29.11(315) 2022-10-19 18:40:07 +02:00
dda288d709 Finish v1.29.11(315) 2022-10-19 18:40:07 +02:00
f6fdc45e1a -> v1.29.11 (315) 2022-10-19 18:40:01 +02:00
5e88833039 bugfix ConcurrentModificationException in aggiunta articoli atumatica in nuovo ordine acquisto 2022-10-19 18:39:12 +02:00
2c521c5f96 Merge branch 'release/v1.29.10(314)'
# Conflicts:
#	app/build.gradle
2022-10-12 15:27:31 +02:00
8530309244 -> v1.29.10 (314) 2022-10-12 15:27:00 +02:00
57dd0cef76 Rimossa troncatura barcode da itf14 a ean13 2022-10-12 15:25:25 +02:00
8df31407ac Merge remote-tracking branch 'origin/develop' into develop 2022-10-12 12:13:24 +02:00
8134a64a43 in rettifica cerca per codice articolo se code128 2022-10-12 12:13:16 +02:00
0c2fd117d5 Merge branch 'release/v1.29.9(313)' 2022-10-07 15:23:56 +02:00
d2b5fe917d -> v1.29.9 (313) 2022-10-07 15:23:44 +02:00
3de49545b7 Merge branch 'feature/InternalLogger' into develop 2022-10-07 15:22:59 +02:00
7163d91c53 Revert "Rimossa troncatura dell'ITF-14"
This reverts commit 7555e3d90f.
2022-10-07 15:22:43 +02:00
b8b3d2f2bb Implementato log su file 2022-10-07 15:22:32 +02:00
7555e3d90f Rimossa troncatura dell'ITF-14 2022-10-07 10:53:35 +02:00
46e438e0e9 Merge branch 'release/v1.29.8(312)' 2022-10-06 17:00:08 +02:00
439eada61b -> v1.29.8 (312) 2022-10-06 16:59:09 +02:00
48548b7c92 Prova fix su dialog progress 2022-10-06 16:56:35 +02:00
79afe0155b boh 2022-10-06 15:48:45 +02:00
730dabc2bb Finish v1.29.7(311) 2022-10-05 16:20:09 +02:00
44255f08b4 Finish v1.29.7(311) 2022-10-05 16:20:09 +02:00
fb23009fcc -> v1.29.7 (311) 2022-10-05 16:20:03 +02:00
c0310e492f Merge remote-tracking branch 'origin/develop' into develop 2022-10-05 15:58:13 +02:00
bf1fc455e1 fix su dialog vari 2022-10-05 15:58:09 +02:00
c7c2700dbe Finish v1.29.6(310) 2022-10-05 14:11:57 +02:00
c89e4869ef Finish v1.29.6(310) 2022-10-05 14:11:57 +02:00
5e147c9d96 -> v1.29.6 (310) 2022-10-05 14:11:52 +02:00
95fc680823 aggiunti controlli su lista ordini accettazione nulla 2022-10-05 14:11:11 +02:00
3cd1b8eb9f Finish v1.29.5(309) 2022-10-04 14:54:42 +02:00
ca04b87a8e Finish v1.29.5(309) 2022-10-04 14:54:42 +02:00
10ab47a1b7 -> v1.29.5 (309) 2022-10-04 14:54:37 +02:00
fdaa2b7f21 commit file .idea 2022-10-04 13:21:26 +02:00
e9b179ca7f risolto problema su articoli senza diacod 2022-10-04 13:20:55 +02:00
04d811af93 Merge branch 'feature/UpdateUI' into develop 2022-10-04 12:16:18 +02:00
cb2421f263 Fix su versioni librerie 2022-10-03 18:12:15 +02:00
16a565fc51 Layout filters and other dialogs 2022-10-03 15:26:42 +02:00
f68691df6b Refactoring su DialogBasketLU 2022-10-03 15:26:42 +02:00
f4f7f4a6f0 Refactoring DialogScanOrCreateLU 2022-10-03 15:26:41 +02:00
b129bb51c6 Aggiornato tema.
Aggiornato DialogProgressView.
Aggiornato DialogYesNoView.
Aggiornato DialogInputPesoLuView.
2022-10-03 15:26:41 +02:00
8c80918521 Update AGP to 7.3.0 2022-10-03 12:56:03 +02:00
e8dea4cef0 Merge branch 'hotfix/Hotfix-1' into develop 2022-10-03 12:37:37 +02:00
b51bf1d9cb Merge branch 'hotfix/Hotfix-1' 2022-10-03 12:37:36 +02:00
3c25e223ab -> v1.29.4 (308) 2022-10-03 12:37:22 +02:00
16d9f2f6ff Merge branch 'hotfix/Hotfix-1' into develop 2022-10-03 12:36:13 +02:00
fd3dfb9afe Merge branch 'hotfix/Hotfix-1' 2022-10-03 12:36:13 +02:00
2916d2b5d0 Fix su focus in dialogInputQuantity 2022-10-03 12:35:58 +02:00
dac12905ef Cambiato statoPartitaMag to int 2022-10-03 12:15:29 +02:00
bf56c8e4c7 Aggiunta quantità omaggio in spedizione
aggiunto alert partite in scadenza in spediione
2022-09-28 16:59:25 +02:00
7272e3e541 Finish v1.29.3(307) 2022-09-26 12:05:27 +02:00
020c99e700 Finish v1.29.3(307) 2022-09-26 12:05:27 +02:00
12a9610e7a -> v1.29.3 (307) 2022-09-26 12:04:55 +02:00
0e6f4a7892 aggiunta configurazione scanner barcode tramite preferenze app 2022-09-26 11:52:24 +02:00
f8c0852cb7 Finish v1.29.2(306) 2022-08-31 13:08:46 +02:00
ee48e7e2a4 Finish v1.29.2(306) 2022-08-31 13:08:45 +02:00
821099c037 -> v1.29.2 (306) 2022-08-31 13:08:26 +02:00
9a6211fc46 Fix su partita mag nulla in spedizione 2022-08-31 13:07:35 +02:00
ee8abe3ea8 Libraries updates pt2 2022-08-31 11:28:02 +02:00
654a9e0161 Libraries updates 2022-08-31 10:58:14 +02:00
076c84c119 Finish v1.29.1(305) 2022-08-05 19:07:03 +02:00
6fa80a5485 Finish v1.29.1(305) 2022-08-05 19:07:02 +02:00
e0ea6b17a1 -> v1.29.1 (305) 2022-08-05 19:06:58 +02:00
60978167c2 Miglioramento UI di recupero materiale 2022-08-05 17:34:43 +02:00
6a848e081a Cambiata configurazione per scanner Honeywell.
Sistemati decimali in lista ul recupero materiale.
2022-08-05 17:09:36 +02:00
2960d0d4b4 Finish v1.29.0(304) 2022-08-04 09:58:55 +02:00
6b01861a26 Finish v1.29.0(304) 2022-08-04 09:58:54 +02:00
5889942ff9 -> v1.29.0 (304) 2022-08-04 09:58:48 +02:00
0359ddcc90 Fix in rettifica giacenze.
Aggiunti i campi "Giacenza in magazzino" e "Impegnato" nel dialog input quantity.
2022-08-04 09:58:10 +02:00
8409507dab Finish v1.28.9(303) 2022-07-29 19:41:12 +02:00
208653223c Finish v1.28.9(303) 2022-07-29 19:41:11 +02:00
62f6e12a86 -> v1.28.9 (303) 2022-07-29 19:41:06 +02:00
b662929c19 fix timeout connessioni.
fix pre destroy rettifica giacenze.
2022-07-29 19:40:24 +02:00
40895eac2f Finish v1.28.8(302) 2022-07-22 19:00:53 +02:00
dc7e90b2fe Finish v1.28.8(302) 2022-07-22 19:00:53 +02:00
5d1f275ebc -> v1.28.8 (302) 2022-07-22 19:00:47 +02:00
79192ce337 aggiunta stampa etichetta da rientro merce 2022-07-22 18:49:58 +02:00
7f0f6c969a Finish v1.28.7(301) 2022-07-22 15:53:28 +02:00
e23beddf65 Finish v1.28.7(301) 2022-07-22 15:53:27 +02:00
1fd51a4097 -> v1.28.7 (301) 2022-07-22 15:53:19 +02:00
5ea124bcf6 rimosso filtro per linea in recupero materiale da gestione linee 2022-07-22 15:52:27 +02:00
fa6ab9f58f Finish v1.28.6(300) 2022-07-22 11:21:59 +02:00
f7806103fb Finish v1.28.6(300) 2022-07-22 11:21:59 +02:00
87acc5a4e3 -> v1.28.6 (300) 2022-07-22 11:21:54 +02:00
7c49af085d aggiunte condizioni per l'autocompletamento delle tipo pedana in rientro merce 2022-07-22 11:21:08 +02:00
0c3d5bd0f1 Finish v1.28.5(299) 2022-07-21 17:15:10 +02:00
37d956bb5c Finish v1.28.5(299) 2022-07-21 17:15:09 +02:00
fef564b090 -> v1.28.5 (299) 2022-07-21 17:15:03 +02:00
d1c491ee80 risolti bug vari 2022-07-21 17:14:30 +02:00
0cd8a3b41f Finish v1.28.4(298) 2022-07-21 15:59:03 +02:00
f7e4a3d005 Finish v1.28.4(298) 2022-07-21 15:59:02 +02:00
a22ecb9620 -> v1.28.4 (298) 2022-07-21 15:58:54 +02:00
57c22b617e apportate modifiche rientro merce richieste da Agricoper,
risolto bug divide by zero in spedizione quando qtaCmfOrd è decimale
2022-07-21 15:58:01 +02:00
84876bf7c1 Finish v1.28.3(297) 2022-07-20 16:08:12 +02:00
2718f0ff2b Finish v1.28.3(297) 2022-07-20 16:08:12 +02:00
fca325855e -> v1.28.3 (297) 2022-07-20 16:08:06 +02:00
c6fc287a3f corretto controllo su creazione collo in accettazione
aggiunto controllo su stato articoli in servizio getArticoloBybarcode
2022-07-20 16:07:14 +02:00
29fd0292e7 Finish v1.28.2(296) 2022-07-20 15:46:00 +02:00
90cf83e3cd Finish v1.28.2(296) 2022-07-20 15:46:00 +02:00
f4c1f1fe34 -> v1.28.2 (296) 2022-07-20 15:45:53 +02:00
9e85b9f828 aggiunta setup non presente in lista 2022-07-20 15:44:40 +02:00
a9fd55c01f Finish v1.28.1(295) 2022-07-18 10:56:05 +02:00
506a56a1a2 Finish v1.28.1(295) 2022-07-18 10:56:05 +02:00
c93e29606c -> v1.28.1 (295) 2022-07-18 10:55:57 +02:00
4adc40aa90 adeguamento rientro merce da lavorazione agricoper 2022-07-18 10:54:29 +02:00
4842a6091b Documento perdite (wms). La possibilità di scaricare l'intera anagrafica puo' essere effettuata soltanto una volta (a cache vuota)
Inserire il campo 'Annotazioni' quando si crea un collo  che sia editabile dall'utente (picking Vendita)
2022-07-13 17:29:26 +02:00
9faf4123ef fase di creazione dell'ordine di acquisto preimpostare gli articoli che hanno una qta proposta da acquistare 2022-07-11 13:11:52 +02:00
cdf5b413a2 Finish v1.28.0(294) 2022-07-07 18:56:19 +02:00
4dd2ccdb13 Finish v1.28.0(294) 2022-07-07 18:56:18 +02:00
56c54d3cde -> v1.28.0 (294) 2022-07-07 18:56:13 +02:00
19e2d5b869 Creata login page per layout large 2022-07-07 18:21:30 +02:00
0acf023556 Creata UI per smartphone del rientro merce 2022-07-07 17:51:46 +02:00
71f6dc83fb Vario 2022-06-29 18:54:11 +02:00
3479ee2b87 Finish v1.27.6(293) 2022-06-29 16:39:22 +02:00
609b9f1852 Finish v1.27.6(293) 2022-06-29 16:39:22 +02:00
23c98d9218 -> v1.27.6 (293) 2022-06-29 16:39:17 +02:00
57900a9617 bug fix: Nel picking da ordine, quando sparano alcune referenze (100142-100171), l'app si chiude in maniera anomala. 2022-06-29 16:36:46 +02:00
c3274a4311 corretto bug per in gestione linee e aggiu ta richiesta di recupero prima di chiudere gli ordini 2022-06-29 16:01:51 +02:00
356e2562da Finish v1.27.5(292) 2022-06-08 12:50:49 +02:00
46c0078331 Finish v1.27.5(292) 2022-06-08 12:50:48 +02:00
bbc81f3d99 -> v1.27.5 (292) 2022-06-08 12:50:18 +02:00
0dd662518e In versamento se si versa una pedana già versata l'app crasha
permettere il versamento di un articolo non compatibile con gli ordini aperti dopo richiesta conferma

precompilare input risorse da allocare

in input qta mantenere fissa la qtaCnf in entrambe le direzioni di calcolo

togliere popup di notifica versamento completato
2022-06-08 12:26:20 +02:00
08d332e2c6 Quando creo una pedana dalla funzione di rientro merce non inserendo il tipo collo, l'app si blocca. 2022-06-07 17:33:32 +02:00
b9001790be corretto funzionamento rettifica giacenza al clik del pulsante indietro 2022-06-07 12:56:26 +02:00
d43bd8e659 Finish v1.27.4(291) 2022-06-01 19:23:56 +02:00
ef2886c963 Finish v1.27.4(291) 2022-06-01 19:23:55 +02:00
7a6097fa69 -> v1.27.4 (291) 2022-06-01 19:23:49 +02:00
9c45cebf51 aggiunte funzionalità versamento e recupero alla gestione linee di produzione 2022-06-01 19:22:32 +02:00
344fc42d03 bugfix in schermata dialog_input_quantity_v2 2022-05-27 16:22:34 +02:00
33a01b2c15 spedizione: bugfix calcolo qta residua in picking da collo 2022-05-27 09:45:35 +02:00
d165174345 Finish v1.27.3(290) 2022-05-26 16:18:34 +02:00
05314803bc Finish v1.27.3(290) 2022-05-26 16:18:34 +02:00
9db8337f9b -> v1.27.3 (290) 2022-05-26 16:18:10 +02:00
abfd92ce07 Fix su inizializzazione observables in DialogInputQuantityV2 2022-05-26 16:16:13 +02:00
c11858aea2 Ottimizzazione funzione rettifica giacenza. Evitare di uscire dalla gestione dopo aver rettificato una pedana. 2022-05-26 12:35:26 +02:00
a67b28f0ad Finish v1.27.2(289) 2022-05-26 12:11:01 +02:00
b9f5baae5f Finish v1.27.2(289) 2022-05-26 12:11:01 +02:00
cb5e36ffb7 -> v1.27.2 (289) 2022-05-26 12:10:16 +02:00
82ff37f4ee Bug Fix: eliminazione righe in picking libero 2022-05-26 12:09:21 +02:00
350c4bc4ed Finish v1.27.1(288) 2022-05-25 19:11:27 +02:00
33f0866ea2 Finish v1.27.1(288) 2022-05-25 19:11:27 +02:00
df13a6e29d -> v1.27.1 (288) 2022-05-25 19:11:23 +02:00
ee8fa96c40 mmodifica label impostazione risorse 2022-05-25 19:10:35 +02:00
c264cd38e3 Finish v1.27.0(287) 2022-05-25 17:19:49 +02:00
64f669753f Finish v1.27.0(287) 2022-05-25 17:19:49 +02:00
aabc4310fd -> v1.27.0 (287) 2022-05-25 17:19:40 +02:00
9dc3996aef Nuova gestione linee di produzione 2022-05-25 17:17:58 +02:00
e0e9e657c9 Nuova gestione linee di produzione 2022-05-25 17:17:48 +02:00
84cbab334f Aggiunta possibilità di stampa dei soli colli non stampati 2022-05-18 18:07:14 +02:00
f9751e770a Finish v1.26.3(286) 2022-05-12 13:03:57 +02:00
6539c9179e Finish v1.26.3(286) 2022-05-12 13:03:56 +02:00
f43a7acf35 -> v1.26.3 (286) 2022-05-12 13:03:46 +02:00
ca96bacde6 aggiunto controllo per evitare l'nizializzazione degli observables in più punti 2022-05-12 12:54:33 +02:00
d4c94b7ab9 Finish v1.26.2(285) 2022-05-11 09:49:58 +02:00
0c9e607c33 Finish v1.26.2(285) 2022-05-11 09:49:57 +02:00
b5c6ce2aa5 -> v1.26.2 (285) 2022-05-11 09:49:54 +02:00
66f58ea20d Aggiunte qta_proposta e giacenza in system note degli ordini di acquisto pv 2022-05-11 09:49:12 +02:00
d6979289e2 spostate stampe in chiusura ordine su servizio dedicato 2022-05-06 15:20:34 +02:00
496387b5c6 Finish v1.26.1(284) 2022-05-05 16:11:33 +02:00
6b0d75fc60 Finish v1.26.1(284) 2022-05-05 16:11:32 +02:00
7d263699da -> v1.26.1 (284) 2022-05-05 16:11:27 +02:00
63e4e4e791 aggiunto controllo su aggiunta articoli extra senza collo 2022-05-05 16:09:48 +02:00
98c260f621 Finish v1.26.0(283) 2022-05-03 10:49:24 +02:00
1b57dc74cf Finish v1.26.0(283) 2022-05-03 10:49:23 +02:00
4f140d0d58 -> v1.26.0 (283) 2022-05-03 10:49:07 +02:00
0d021e6bad aggiunto controllo su mtbColrRif null in picking libero 2022-05-03 10:31:38 +02:00
1a0af47613 Modifiche stampa per tipo report 2022-04-27 18:54:43 +02:00
ead509bb32 Finish v1.25.5(282) 2022-04-26 12:42:43 +02:00
ddfde73f1e Finish v1.25.5(282) 2022-04-26 12:42:43 +02:00
3de5a2320d -> v1.25.5 (282) 2022-04-26 12:42:36 +02:00
5cb32a9a77 Risolto problema di aggiornamento lista d'ordini in uscita nel caso in cui si filtrava tramite barcode 2022-04-26 12:42:00 +02:00
ecbb4ac55c Finish v1.25.4(281) 2022-04-22 16:20:46 +02:00
84e0561fff Finish v1.25.4(281) 2022-04-22 16:20:45 +02:00
71bfbb2afc -> v1.25.4 (281) 2022-04-22 16:20:40 +02:00
2cb563320b Fix su lettura numero collo da etichetta anonima con serie alla fine 2022-04-22 15:14:54 +02:00
f3837f35b0 aggiunti controlli per rendere obbligatorie le note sui documenti di taglio di carelli 2022-04-20 16:21:55 +02:00
fa52b8e040 Finish v1.25.3(280) 2022-04-14 16:27:34 +02:00
c80b5a9160 Finish v1.25.3(280) 2022-04-14 16:27:34 +02:00
65ac5590c7 -> v1.25.3 (280) 2022-04-14 16:27:27 +02:00
3cee7f2a95 Fix su visibilità dialogInputQuantity 2022-04-14 16:26:55 +02:00
3034b49586 Finish v1.25.2(279) 2022-04-13 17:25:19 +02:00
718ffb3124 Finish v1.25.2(279) 2022-04-13 17:25:18 +02:00
7173c49561 -> v1.25.2 (279) 2022-04-13 17:25:10 +02:00
4407f37f8c Bugfix vari 2022-04-13 17:24:20 +02:00
37a16f6292 Finish v1.25.1(278) 2022-04-11 19:17:26 +02:00
83d9e0c5f7 Finish v1.25.1(278) 2022-04-11 19:17:26 +02:00
d2249e031a -> v1.25.1 (278) 2022-04-11 19:17:21 +02:00
2522e67705 Merge remote-tracking branch 'origin/develop' into develop 2022-04-11 19:16:46 +02:00
371514157c Fix su peso tipo collo al posto della tara 2022-04-11 19:16:42 +02:00
de889045e6 Merge remote-tracking branch 'origin/develop' into develop 2022-04-11 13:18:04 +02:00
6225ba8207 corretta gestione flag per ordinare in automatico articoli in acquisti pv 2022-04-11 13:17:56 +02:00
36c9319bce Finish v1.25.0(277) 2022-04-11 12:09:47 +02:00
d4d494218b Finish v1.25.0(277) 2022-04-11 12:09:46 +02:00
a3d6b11c69 -> v1.25.0 (277) 2022-04-11 12:09:42 +02:00
852edf1b13 Implementata comunicazione con dispositivo bluetooth in fase di rientro merce da lav.
Rimosso printerName e quantity dalla stampa delle SSCC.
2022-04-11 12:08:58 +02:00
6806290d98 Finish v1.24.8(276) 2022-03-30 17:46:46 +02:00
66f7a51462 Finish v1.24.8(276) 2022-03-30 17:46:46 +02:00
0e1e69dc9a -> v1.24.8 (276) 2022-03-30 17:46:41 +02:00
2ef24fe6e9 impostato focus automatico sul campo numCnf 2022-03-30 17:45:57 +02:00
577f2041a1 Finish v1.24.7(275) 2022-03-29 11:05:53 +02:00
279 changed files with 13380 additions and 4658 deletions

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<targetSelectedWithDropDown>
<Target>
<type value="QUICK_BOOT_TARGET" />
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="C:\Users\ValerioC.STUDIO-ML\.android\avd\Nexus_S_API_30.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2022-03-29T07:39:18.735889700Z" />
<runningDeviceTargetsSelectedWithDialog>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="20119B1E55" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetsSelectedWithDialog>
</component>
</project>

View File

@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android { android {
def appVersionCode = 275 def appVersionCode = 317
def appVersionName = '1.24.7' def appVersionName = '1.29.13'
signingConfigs { signingConfigs {
release { release {
@@ -31,12 +31,12 @@ android {
} }
} }
compileSdkVersion 31 compileSdkVersion 32
defaultConfig { defaultConfig {
applicationId "it.integry.integrywmsnative" applicationId "it.integry.integrywmsnative"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 31 targetSdkVersion 32
versionCode appVersionCode versionCode appVersionCode
versionName appVersionName versionName appVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -78,11 +78,12 @@ android {
} }
} }
lintOptions {
abortOnError false
}
dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti"] dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti"]
lint {
abortOnError false
}
namespace 'it.integry.integrywmsnative'
} }
@@ -93,7 +94,7 @@ dependencies {
exclude group: 'com.android.support', module: 'support-annotations' exclude group: 'com.android.support', module: 'support-annotations'
}) })
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.orhanobut:logger:2.2.0' implementation 'com.github.lupaulus:logger:2.3.2'
//Firebase //Firebase
@@ -103,27 +104,32 @@ dependencies {
implementation 'com.google.firebase:firebase-core' implementation 'com.google.firebase:firebase-core'
implementation 'com.google.firebase:firebase-crashlytics' implementation 'com.google.firebase:firebase-crashlytics'
implementation 'com.google.firebase:firebase-perf' implementation 'com.google.firebase:firebase-perf'
implementation 'com.google.android.gms:play-services-basement:18.0.0' implementation 'com.google.android.gms:play-services-basement:18.1.0'
implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.5.0' implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'androidx.preference:preference-ktx:1.2.0'
implementation('androidx.preference:preference-ktx:1.2.0') {
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel'
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx'
}
implementation "androidx.slidingpanelayout:slidingpanelayout:1.2.0"
implementation 'com.squareup.okhttp3:okhttp:4.9.1' implementation 'com.squareup.okhttp3:okhttp:4.9.1'
implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.annimon:stream:1.2.2' implementation 'com.annimon:stream:1.2.2'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' // implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation 'androidx.lifecycle:lifecycle-common-java8:2.4.1'
implementation 'org.apache.commons:commons-text:1.9' implementation 'org.apache.commons:commons-text:1.9'
//MVVM //MVVM
def dagger2_version = '2.40' def dagger2_version = '2.40.1'
api "com.google.dagger:dagger:$dagger2_version" api "com.google.dagger:dagger:$dagger2_version"
annotationProcessor "com.google.dagger:dagger-compiler:$dagger2_version" annotationProcessor "com.google.dagger:dagger-compiler:$dagger2_version"
api "com.google.dagger:dagger-android:$dagger2_version" api "com.google.dagger:dagger-android:$dagger2_version"
@@ -142,7 +148,7 @@ dependencies {
implementation 'com.github.pedromassango:doubleClick:3.0' implementation 'com.github.pedromassango:doubleClick:3.0'
//SQLite ROOM //SQLite ROOM
def room_version = "2.4.1" def room_version = "2.4.3"
implementation "androidx.room:room-runtime:$room_version" implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version"
@@ -164,6 +170,14 @@ dependencies {
// testImplementation "org.junit.jupiter:junit-jupiter-api:5.8.1" // testImplementation "org.junit.jupiter:junit-jupiter-api:5.8.1"
// androidTestImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1' // androidTestImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
// androidTestImplementation 'org.testng:testng:7.4.0' // androidTestImplementation 'org.testng:testng:7.4.0'
//Bluetooth device manager
implementation 'com.github.harry1453:android-bluetooth-serial:v1.1'
// RxJava is also required.
implementation 'io.reactivex.rxjava2:rxjava:2.1.12'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
} }
repositories { repositories {

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android">
package="it.integry.integrywmsnative">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
@@ -8,6 +7,7 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<application <application
android:name=".MainApplication" android:name=".MainApplication"
@@ -26,11 +26,18 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/Light" android:theme="@style/Light"
android:windowSoftInputMode="adjustNothing" /> android:windowSoftInputMode="adjustNothing" />
<activity android:name=".gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity" <activity
android:name=".gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/Light" android:theme="@style/Light"
android:windowSoftInputMode="adjustNothing" /> android:windowSoftInputMode="adjustNothing" />
<activity android:name=".gest.contab_doc_interni.edit_form.DocInterniEditFormActivity" <activity
android:name=".gest.prod_dettaglio_linea.ProdDettaglioLineaActivity"
android:screenOrientation="portrait"
android:theme="@style/Light"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name=".gest.contab_doc_interni.edit_form.DocInterniEditFormActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/Light" android:theme="@style/Light"
android:windowSoftInputMode="adjustNothing" /> android:windowSoftInputMode="adjustNothing" />

View File

@@ -41,10 +41,14 @@ import it.integry.integrywmsnative.gest.picking_resi.PickingResiComponent;
import it.integry.integrywmsnative.gest.picking_resi.PickingResiModule; import it.integry.integrywmsnative.gest.picking_resi.PickingResiModule;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoComponent; import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoComponent;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoModule; import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoModule;
import it.integry.integrywmsnative.gest.prod_dettaglio_linea.ProdDettaglioLineaComponent;
import it.integry.integrywmsnative.gest.prod_dettaglio_linea.ProdDettaglioLineaModule;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdComponent; import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdComponent;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdModule; import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdModule;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaComponent; import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaComponent;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaModule; import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaModule;
import it.integry.integrywmsnative.gest.prod_linee_produzione.ProdLineeProduzioneComponent;
import it.integry.integrywmsnative.gest.prod_linee_produzione.ProdLineeProduzioneModule;
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeComponent; import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeComponent;
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeModule; import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeModule;
import it.integry.integrywmsnative.gest.prod_rientro_merce.ProdRientroMerceComponent; import it.integry.integrywmsnative.gest.prod_rientro_merce.ProdRientroMerceComponent;
@@ -61,6 +65,8 @@ import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeComp
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule; import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule;
import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent; import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent;
import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule; import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule;
import it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list.DialogPrintOrderSSCCListComponent;
import it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list.DialogPrintOrderSSCCListModule;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdComponent; import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdComponent;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdModule; import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdModule;
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteComponent; import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteComponent;
@@ -80,6 +86,8 @@ import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdC
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdModule; import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdModule;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Component; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Component;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Module; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Module;
import it.integry.integrywmsnative.view.dialogs.printSsccUl.DialogPrintUlSSCCComponent;
import it.integry.integrywmsnative.view.dialogs.printSsccUl.DialogPrintUlSSCCModule;
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtComponent; import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtComponent;
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtModule; import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtModule;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUComponent; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUComponent;
@@ -128,7 +136,11 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
DocInterniEditFormModule.class, DocInterniEditFormModule.class,
DialogSelectDocRowsModule.class, DialogSelectDocRowsModule.class,
DialogAskClienteModule.class, DialogAskClienteModule.class,
DialogEditArticoloModule.class DialogEditArticoloModule.class,
DialogPrintOrderSSCCListModule.class,
ProdLineeProduzioneModule.class,
ProdDettaglioLineaModule.class,
DialogPrintUlSSCCModule.class
}) })
public interface MainApplicationComponent { public interface MainApplicationComponent {
@@ -216,6 +228,14 @@ public interface MainApplicationComponent {
DialogEditArticoloComponent.Factory dialogEditArticoloComponent(); DialogEditArticoloComponent.Factory dialogEditArticoloComponent();
DialogPrintOrderSSCCListComponent.Factory dialogPrintOrderSSCCListComponent();
ProdLineeProduzioneComponent.Factory prodLineeProduzioneComponent();
ProdDettaglioLineaComponent.Factory prodDettaglioLineaComponent();
DialogPrintUlSSCCComponent.Factory dialogPrintUlSSCCComponent();
void inject(MainApplication mainApplication); void inject(MainApplication mainApplication);
void inject(AppContext mainApplication); void inject(AppContext mainApplication);

View File

@@ -17,6 +17,7 @@ import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.CommessaRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.CommessaRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.DocumentiRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.EntityRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.EntityRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
@@ -25,6 +26,7 @@ import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ProductionLinesRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.services.inventario.InventarioService; import it.integry.integrywmsnative.core.services.inventario.InventarioService;
import it.integry.integrywmsnative.core.update.UpdatesManager; import it.integry.integrywmsnative.core.update.UpdatesManager;
@@ -200,4 +202,16 @@ public class MainApplicationModule {
return new InventarioService(giacenzaRESTConsumer); return new InventarioService(giacenzaRESTConsumer);
} }
@Provides
@Singleton
ProductionLinesRESTConsumer provideProductionLinesRESTConsumer() {
return new ProductionLinesRESTConsumer();
}
@Provides
@Singleton
DocumentiRESTConsumer provideDocumentiRESTConsumer() {
return new DocumentiRESTConsumer();
}
} }

View File

@@ -1,14 +1,21 @@
package it.integry.integrywmsnative.core.barcode_reader; package it.integry.integrywmsnative.core.barcode_reader;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences;
import android.util.Pair;
import android.view.KeyEvent; import android.view.KeyEvent;
import androidx.preference.PreferenceManager;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import it.integry.barcode_base_android_library.interfaces.BarcodeReaderInterface; import it.integry.barcode_base_android_library.interfaces.BarcodeReaderInterface;
import it.integry.barcode_base_android_library.model.BarcodeSetting;
import it.integry.honeywellscannerlibrary.HoneyWellBarcodeReader; import it.integry.honeywellscannerlibrary.HoneyWellBarcodeReader;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
import it.integry.keyobardemulatorscannerlibrary.KeyboardEmulatorBarcodeReader; import it.integry.keyobardemulatorscannerlibrary.KeyboardEmulatorBarcodeReader;
import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader; import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader;
import it.integry.zebrascannerlibrary.ZebraBarcodeReader; import it.integry.zebrascannerlibrary.ZebraBarcodeReader;
@@ -21,12 +28,7 @@ public class BarcodeManager {
private static boolean mEnabled = true; private static boolean mEnabled = true;
private static final Class<? extends BarcodeReaderInterface>[] registeredBarcodeReaderInterfaces = new Class[]{ private static final Class<? extends BarcodeReaderInterface>[] registeredBarcodeReaderInterfaces = new Class[]{PointMobileBarcodeReader.class, ZebraBarcodeReader.class, HoneyWellBarcodeReader.class, KeyboardEmulatorBarcodeReader.class};
PointMobileBarcodeReader.class,
ZebraBarcodeReader.class,
HoneyWellBarcodeReader.class,
KeyboardEmulatorBarcodeReader.class
};
public static void init(Context applicationContext) throws Exception { public static void init(Context applicationContext) throws Exception {
@@ -65,6 +67,18 @@ public class BarcodeManager {
} }
}); });
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(applicationContext);
var additionalSettings = new ArrayList<Pair<String, Object>>();
var scanDelay = sharedPreferences.getString(MainSettingsFragment.KEY_TRIGGER_SCAN_DELAY, null);
var scanDelaySetting = new Pair<String, Object>(BarcodeSetting.P_TRIGGER_SCAN_DELAY, scanDelay);
additionalSettings.add(scanDelaySetting);
var scanMode = sharedPreferences.getString(MainSettingsFragment.KEY_TRIGGER_SCAN_MODE, null);
var scanModeSetting = new Pair<String, Object>(BarcodeSetting.P_TRIGGER_SCAN_MODE, scanMode);
additionalSettings.add(scanModeSetting);
BarcodeManager.changeSettings(additionalSettings);
}); });
} }
} }
@@ -81,8 +95,7 @@ public class BarcodeManager {
} }
public static boolean onKeyDown(int keyCode, KeyEvent keyEvent) { public static boolean onKeyDown(int keyCode, KeyEvent keyEvent) {
if (mCurrentBarcodeInterface != null) if (mCurrentBarcodeInterface != null) mCurrentBarcodeInterface.onKeyEvent(keyEvent);
mCurrentBarcodeInterface.onKeyEvent(keyEvent);
return true; return true;
} }
@@ -123,16 +136,21 @@ public class BarcodeManager {
public static void disable() { public static void disable() {
mEnabled = false; mEnabled = false;
UtilityLogger.trace("Barcode reader disabled");
} }
public static void enable() { public static void enable() {
mEnabled = true; mEnabled = true;
UtilityLogger.trace("Barcode reader enabled");
} }
public static boolean isEnabled() { public static boolean isEnabled() {
return mEnabled; return mEnabled;
} }
public static void changeSettings(List<Pair<String, Object>> settings) {
mCurrentBarcodeInterface.changeSettings(settings);
}
public static boolean isKeyboardEmulator() { public static boolean isKeyboardEmulator() {
return mCurrentBarcodeInterface instanceof KeyboardEmulatorBarcodeReader; return mCurrentBarcodeInterface instanceof KeyboardEmulatorBarcodeReader;

View File

@@ -8,6 +8,7 @@ import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoF
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment; import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment; import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdFragment; import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdFragment;
import it.integry.integrywmsnative.gest.prod_linee_produzione.ProdLineeProduzioneFragment;
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment; import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
import it.integry.integrywmsnative.gest.prod_rientro_merce.ProdRientroMerceFragment; import it.integry.integrywmsnative.gest.prod_rientro_merce.ProdRientroMerceFragment;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment; import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
@@ -45,137 +46,145 @@ public class MenuConfiguration extends BaseMenuConfiguration {
.setDrawerIcon(R.drawable.ic_black_latest_delivery) .setDrawerIcon(R.drawable.ic_black_latest_delivery)
.setFragmentFactory(UltimiArriviFornitoreFragment::newInstance)) .setFragmentFactory(UltimiArriviFornitoreFragment::newInstance))
).addGroup( ).addGroup(
new MenuGroup() new MenuGroup()
.setGroupText(R.string.checkout) .setGroupText(R.string.checkout)
.setGroupId(R.id.nav_group_spedizione) .setGroupId(R.id.nav_group_spedizione)
.setCodMenu("MM010") .setCodMenu("MM010")
.addItem(new MenuItem()
.setID(R.id.nav_spedizione)
.setCodMenu("MG046")
.setTitleText(R.string.vendita_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_spedizione)
.setDrawerIcon(R.drawable.ic_black_upload)
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1, null)))
.addItem(new MenuItem()
.setID(R.id.nav_free_picking)
.setCodMenu("MG047")
.setTitleText(R.string.free_picking)
.setTitleIcon(R.drawable.ic_dashboard_picking_libero)
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.VENDITA)))
.addItem(new MenuItem()
.setID(R.id.nav_resi_cliente)
.setCodMenu("MG048")
.setTitleText(R.string.fragment_ultime_consegne_cliente_title)
.setTitleIcon(R.drawable.ic_latest_delivery_customer)
.setDrawerIcon(R.drawable.ic_black_latest_delivery)
.setFragmentFactory(UltimeConsegneClienteFragment::newInstance))
).addGroup(new MenuGroup()
.setGroupText(R.string.manufacture)
.setGroupId(R.id.nav_group_produzione)
.setCodMenu("MM009")
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(R.id.nav_spedizione) .setID(R.id.nav_prod_ordine_produzione)
.setCodMenu("MG046") .setCodMenu("MG049")
.setTitleText(R.string.vendita_title_fragment) .setTitleText(R.string.prod_ordine_produzione_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_spedizione) .setTitleIcon(R.drawable.ic_dashboard_prod_accettazione_produzione)
.setDrawerIcon(R.drawable.ic_black_upload) .setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1, null))) .setFragmentFactory(ProdOrdineProduzioneElencoFragment::newInstance))
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(R.id.nav_free_picking) .setID(R.id.nav_prod_ordine_lavorazione)
.setCodMenu("MG047") .setCodMenu("MG050")
.setTitleText(R.string.free_picking) .setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_picking_libero) .setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
.setDrawerIcon(R.drawable.ic_black_barcode_scanner) .setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.VENDITA))) .setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1, null)))
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(R.id.nav_resi_cliente) .setID(R.id.nav_free_lav_picking)
.setCodMenu("MG048") .setCodMenu("MG051")
.setTitleText(R.string.fragment_ultime_consegne_cliente_title) .setTitleText(it.integry.integrywmsnative.R.string.free_lav_picking)
.setTitleIcon(R.drawable.ic_latest_delivery_customer) .setTitleIcon(R.drawable.ic_dashboard_prod_picking_libero)
.setDrawerIcon(R.drawable.ic_black_latest_delivery) .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_barcode_scanner)
.setFragmentFactory(UltimeConsegneClienteFragment::newInstance)) .setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE)))
).addGroup(new MenuGroup()
.setGroupText(R.string.manufacture)
.setGroupId(R.id.nav_group_produzione)
.setCodMenu("MM009")
.addItem(new MenuItem()
.setID(R.id.nav_prod_ordine_produzione)
.setCodMenu("MG049")
.setTitleText(R.string.prod_ordine_produzione_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_prod_accettazione_produzione)
.setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(ProdOrdineProduzioneElencoFragment::newInstance))
.addItem(new MenuItem()
.setID(R.id.nav_prod_ordine_lavorazione)
.setCodMenu("MG050")
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
.setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1, null)))
.addItem(new MenuItem()
.setID(R.id.nav_free_lav_picking)
.setCodMenu("MG051")
.setTitleText(it.integry.integrywmsnative.R.string.free_lav_picking)
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_libero)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_barcode_scanner)
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE)))
.addItem(new MenuItem()
.setID(R.id.nav_prod_posizionamento_da_ord)
.setCodMenu("MG052")
.setTitleText(R.string.prod_fabbisogno_linee_prod_title)
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_merce)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_load_shelf)
.setFragmentFactory(ProdFabbisognoLineeProdFragment::newInstance))
.addItem(new MenuItem()
.setID(R.id.nav_prod_versamento_materiale)
.setCodMenu("MG053")
.setTitleText(R.string.prod_versamento_materiale_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_materiale)
.setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(ProdVersamentoMaterialeFragment::newInstance))
.addItem(new MenuItem()
.setID(R.id.nav_prod_recupero_materiale)
.setCodMenu("MG054")
.setTitleText(R.string.prod_recupero_materiale_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_prod_recupero_materiale)
.setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(ProdRecuperoMaterialeFragment::newInstance))
.addItem(new MenuItem()
.setID(it.integry.integrywmsnative.R.id.nav_prod_rientro_merce)
.setCodMenu("MG059")
.setTitleText(it.integry.integrywmsnative.R.string.rientro_merce_fragment_title)
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_prod_accettazione_produzione)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_external)
.setFragmentFactory(ProdRientroMerceFragment::newInstance))
).addGroup(
new MenuGroup()
.setGroupText(R.string.internal_handling)
.setGroupId(R.id.nav_group_movimentazione_interna)
.setCodMenu("MM011")
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(R.id.nav_versamento_merce) .setID(R.id.nav_prod_posizionamento_da_ord)
.setCodMenu("MG055") .setCodMenu("MG052")
.setTitleText(R.string.versamento_merce_fragment_title) .setTitleText(R.string.prod_fabbisogno_linee_prod_title)
.setTitleIcon(R.drawable.ic_dashboard_versamento_merce) .setTitleIcon(R.drawable.ic_dashboard_prod_versamento_merce)
.setDrawerIcon(R.drawable.ic_black_load_shelf) .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_load_shelf)
.setFragmentFactory(VersamentoMerceFragment::newInstance)) .setFragmentFactory(ProdFabbisognoLineeProdFragment::newInstance))
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(R.id.nav_rettifica_giacenze) .setID(R.id.nav_prod_versamento_materiale)
.setCodMenu("MG056") .setCodMenu("MG053")
.setTitleText(R.string.rettifica_giacenze_fragment_title) .setTitleText(R.string.prod_versamento_materiale_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_rettifica_giacenze) .setTitleIcon(R.drawable.ic_dashboard_prod_versamento_materiale)
.setDrawerIcon(R.drawable.ic_black_empty_box) .setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(RettificaGiacenzeFragment::newInstance)) .setFragmentFactory(ProdVersamentoMaterialeFragment::newInstance))
).addGroup(
new MenuGroup()
.setCodMenu("MM012")
.setGroupText(it.integry.integrywmsnative.R.string.punto_vendita)
.setGroupId(it.integry.integrywmsnative.R.id.nav_group_puntivendita)
.addItem(new MenuItem() .addItem(new MenuItem()
.setCodMenu("MG057") .setID(R.id.nav_prod_recupero_materiale)
.setID(it.integry.integrywmsnative.R.id.nav_pv_ordini_acquisto) .setCodMenu("MG054")
.setTitleText(it.integry.integrywmsnative.R.string.generate_orders) .setTitleText(R.string.prod_recupero_materiale_title_fragment)
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_purchase_orders_pv) .setTitleIcon(R.drawable.ic_dashboard_prod_recupero_materiale)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_purchase_orders_pv) .setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(PVOrdiniAcquistoGrigliaFragment::newInstance)) .setFragmentFactory(ProdRecuperoMaterialeFragment::newInstance))
.addItem(new MenuItem() .addItem(new MenuItem()
.setCodMenu("MG058") .setID(it.integry.integrywmsnative.R.id.nav_prod_rientro_merce)
.setID(it.integry.integrywmsnative.R.id.nav_pv_doc_interni) .setCodMenu("MG059")
.setTitleText(it.integry.integrywmsnative.R.string.doc_interni) .setTitleText(it.integry.integrywmsnative.R.string.rientro_merce_fragment_title)
.setTitleIcon(R.drawable.ic_dashboard_contab_doc_interni) .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_prod_accettazione_produzione)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_contab_doc_interni) .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_external)
.setFragmentFactory(DocInterniFragment::newInstance)) .setFragmentFactory(ProdRientroMerceFragment::newInstance))
.addItem(new MenuItem()
.setID(it.integry.integrywmsnative.R.id.nav_prod_linee)
.setCodMenu("MG061")
.setTitleText(it.integry.integrywmsnative.R.string.nav_prod_linee_title)
.setTitleIcon(R.drawable.ic_production_line)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_production_line)
.setFragmentFactory(ProdLineeProduzioneFragment::newInstance))
).addGroup(
new MenuGroup()
.setGroupText(R.string.internal_handling)
.setGroupId(R.id.nav_group_movimentazione_interna)
.setCodMenu("MM011")
.addItem(new MenuItem()
.setID(R.id.nav_versamento_merce)
.setCodMenu("MG055")
.setTitleText(R.string.versamento_merce_fragment_title)
.setTitleIcon(R.drawable.ic_dashboard_versamento_merce)
.setDrawerIcon(R.drawable.ic_black_load_shelf)
.setFragmentFactory(VersamentoMerceFragment::newInstance))
.addItem(new MenuItem()
.setID(R.id.nav_rettifica_giacenze)
.setCodMenu("MG056")
.setTitleText(R.string.rettifica_giacenze_fragment_title)
.setTitleIcon(R.drawable.ic_dashboard_rettifica_giacenze)
.setDrawerIcon(R.drawable.ic_black_empty_box)
.setFragmentFactory(RettificaGiacenzeFragment::newInstance))
).addGroup(
new MenuGroup()
.setCodMenu("MM012")
.setGroupText(it.integry.integrywmsnative.R.string.punto_vendita)
.setGroupId(it.integry.integrywmsnative.R.id.nav_group_puntivendita)
.addItem(new MenuItem()
.setCodMenu("MG057")
.setID(it.integry.integrywmsnative.R.id.nav_pv_ordini_acquisto)
.setTitleText(it.integry.integrywmsnative.R.string.generate_orders)
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_purchase_orders_pv)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_purchase_orders_pv)
.setFragmentFactory(PVOrdiniAcquistoGrigliaFragment::newInstance))
.addItem(new MenuItem()
.setCodMenu("MG058")
.setID(it.integry.integrywmsnative.R.id.nav_pv_doc_interni)
.setTitleText(it.integry.integrywmsnative.R.string.doc_interni)
.setTitleIcon(R.drawable.ic_dashboard_contab_doc_interni)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_contab_doc_interni)
.setFragmentFactory(DocInterniFragment::newInstance))
// .addItem(new MenuItem() // .addItem(new MenuItem()
// .setID(it.integry.integrywmsnative.R.id.nav_pv_ordini_acquisto_trasmessi) // .setID(it.integry.integrywmsnative.R.id.nav_pv_ordini_acquisto_trasmessi)
@@ -183,7 +192,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
// .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_trasmitted_orders_list) // .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_trasmitted_orders_list)
// .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_trasmitted_orders_list) // .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_trasmitted_orders_list)
// .setFragmentClass(PVOrdiniAcquistoTransmittedListFragment.newInstance())) // .setFragmentClass(PVOrdiniAcquistoTransmittedListFragment.newInstance()))
); );
} }

View File

@@ -4,8 +4,11 @@ import android.content.Context;
import com.google.firebase.crashlytics.FirebaseCrashlytics; import com.google.firebase.crashlytics.FirebaseCrashlytics;
import com.orhanobut.logger.AndroidLogAdapter; import com.orhanobut.logger.AndroidLogAdapter;
import com.orhanobut.logger.DiskLogAdapter;
import com.orhanobut.logger.Logger; import com.orhanobut.logger.Logger;
import java.io.File;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
@@ -36,8 +39,6 @@ public class AppContext {
} }
@Inject @Inject
public void init() { public void init() {
this.initUtilities(); this.initUtilities();
@@ -56,10 +57,10 @@ public class AppContext {
} }
private void initCrashlytics() { private void initCrashlytics() {
if(!BuildConfig.DEBUG) { if (!BuildConfig.DEBUG) {
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();
if( SettingsManager.isInstanceAvailable() && if (SettingsManager.isInstanceAvailable() &&
(SettingsManager.i().getUserSession() != null && !UtilityString.isNullOrEmpty(SettingsManager.i().getUserSession().getProfileDB())) && (SettingsManager.i().getUserSession() != null && !UtilityString.isNullOrEmpty(SettingsManager.i().getUserSession().getProfileDB())) &&
(SettingsManager.i().getUser() != null && !UtilityString.isNullOrEmpty(SettingsManager.i().getUser().getFullname()))) { (SettingsManager.i().getUser() != null && !UtilityString.isNullOrEmpty(SettingsManager.i().getUser().getFullname()))) {
@@ -77,6 +78,11 @@ public class AppContext {
private void initLogger() { private void initLogger() {
Logger.addLogAdapter(new AndroidLogAdapter()); Logger.addLogAdapter(new AndroidLogAdapter());
File logsFolder = new File(mApplicationContext.getExternalFilesDir(null).getAbsolutePath());
int maxBytesSize = 5000;
Logger.addLogAdapter(new DiskLogAdapter(logsFolder, maxBytesSize));
} }
} }

View File

@@ -39,7 +39,7 @@ public class MainContext {
try { try {
BarcodeManager.init(applicationContext); BarcodeManager.init(applicationContext);
} catch (Exception exception) { } catch (Exception exception) {
exception.printStackTrace();
} }
this.initDBData(() -> { this.initDBData(() -> {

View File

@@ -8,7 +8,7 @@ import java.util.UUID;
public class DataCache { public class DataCache {
private static List<DataCacheDTO> dataCacheList = new ArrayList<>(); private static final List<DataCacheDTO> dataCacheList = new ArrayList<>();
public static String addItem(Object item) { public static String addItem(Object item) {

View File

@@ -19,7 +19,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 8, exportSchema = false) @Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 10, exportSchema = false)
@TypeConverters({ @TypeConverters({
DateConverter.class, DateConverter.class,
BigDecimalConverter.class BigDecimalConverter.class

View File

@@ -53,6 +53,6 @@ public interface ArticoloGrigliaDao {
@Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId") @Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId")
List<ArticoloGriglia> getArticoliFromGriglia(int grigliaId); List<ArticoloGriglia> getArticoliFromGriglia(int grigliaId);
@Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId AND new_no_promo = 1") @Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId AND qta_ord >= 1")
List<ArticoloGriglia> getNewArticoliInGriglia(int grigliaId); List<ArticoloGriglia> getNewArticoliInGriglia(int grigliaId);
} }

View File

@@ -6,7 +6,10 @@ import androidx.room.ForeignKey;
import androidx.room.Index; import androidx.room.Index;
import androidx.room.PrimaryKey; import androidx.room.PrimaryKey;
import org.json.JSONObject;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.HashMap;
import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityDate;
@@ -68,6 +71,9 @@ public class ArticoloGriglia {
@ColumnInfo(name = "qta_proposta") @ColumnInfo(name = "qta_proposta")
private float qtaProposta; private float qtaProposta;
@ColumnInfo(name = "qta_ord")
private float qtaOrd;
@ColumnInfo(name = "id_griglia") @ColumnInfo(name = "id_griglia")
private int idGriglia; private int idGriglia;
@@ -202,6 +208,22 @@ public class ArticoloGriglia {
this.newNoPromo = newNoPromo; this.newNoPromo = newNoPromo;
} }
public float getQtaOrd() {
return qtaOrd;
}
public void setQtaOrd(float qtaOrd) {
this.qtaOrd = qtaOrd;
}
public String generateSystemNote() {
HashMap<String, String> pairs = new HashMap<>();
pairs.put("qta_proposta", String.valueOf(qtaProposta));
pairs.put("giacenza", String.valueOf(giacenza));
return new JSONObject(pairs).toString();
}
public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) { public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) {
ArticoloOrdine articolo = new ArticoloOrdine(); ArticoloOrdine articolo = new ArticoloOrdine();
@@ -222,8 +244,8 @@ public class ArticoloGriglia {
articolo.setQtaPrevistaVendita(BigDecimal.valueOf(this.getQtaPrevistaVendita())); articolo.setQtaPrevistaVendita(BigDecimal.valueOf(this.getQtaPrevistaVendita()));
articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta())); articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta()));
articolo.setNewNoPromo(this.isNewNoPromo()); articolo.setNewNoPromo(this.isNewNoPromo());
articolo.setSystemNote(generateSystemNote());
articolo.setQtaOrd(0); articolo.setQtaOrd(this.getQtaOrd());
return articolo; return articolo;
} }

View File

@@ -70,6 +70,9 @@ public class ArticoloOrdine {
@ColumnInfo(name = "new_no_promo") @ColumnInfo(name = "new_no_promo")
private boolean newNoPromo; private boolean newNoPromo;
@ColumnInfo(name = "system_note")
private String systemNote;
@Ignore @Ignore
private int ggScadenza = 0; private int ggScadenza = 0;
@@ -266,4 +269,12 @@ public class ArticoloOrdine {
this.bgTint = bgTint; this.bgTint = bgTint;
return this; return this;
} }
public String getSystemNote() {
return systemNote;
}
public void setSystemNote(String systemNote) {
this.systemNote = systemNote;
}
} }

View File

@@ -50,6 +50,9 @@ public class Ordine {
@Ignore @Ignore
private int countArticoli = 0; private int countArticoli = 0;
@Ignore
private boolean orderNewProducts = false;
@ColumnInfo(name = "id_griglia") @ColumnInfo(name = "id_griglia")
private int idGriglia; private int idGriglia;
@@ -149,4 +152,13 @@ public class Ordine {
public void setDataOrdS(String dataOrd) { public void setDataOrdS(String dataOrd) {
setDataOrd(UtilityDate.recognizeDateWithExceptionHandler(dataOrd)); setDataOrd(UtilityDate.recognizeDateWithExceptionHandler(dataOrd));
} }
public boolean isOrderNewProducts() {
return orderNewProducts;
}
public Ordine setOrderNewProducts(boolean orderNewProducts) {
this.orderNewProducts = orderNewProducts;
return this;
}
} }

View File

@@ -19,6 +19,7 @@ public class ArticoloDTO {
private float giacenza; private float giacenza;
private float qtaPrevistaVendita; private float qtaPrevistaVendita;
private float qtaProposta; private float qtaProposta;
private float qtaOrd;
public String getCodMart() { public String getCodMart() {
@@ -151,6 +152,15 @@ public class ArticoloDTO {
return this; return this;
} }
public float getQtaOrd() {
return qtaOrd;
}
public ArticoloDTO setQtaOrd(float qtaOrd) {
this.qtaOrd = qtaOrd;
return this;
}
public ArticoloGriglia toArticoloGriglia() { public ArticoloGriglia toArticoloGriglia() {
ArticoloGriglia result = new ArticoloGriglia(); ArticoloGriglia result = new ArticoloGriglia();
result.setBarCode(this.getBarCode()); result.setBarCode(this.getBarCode());
@@ -164,6 +174,7 @@ public class ArticoloDTO {
result.setQtaMinOrdinabile(this.getQtaMinOrdinabile()); result.setQtaMinOrdinabile(this.getQtaMinOrdinabile());
result.setGgScadenza(this.ggScadenza); result.setGgScadenza(this.ggScadenza);
result.setNewNoPromo(this.newNoPromo); result.setNewNoPromo(this.newNoPromo);
result.setQtaOrd(this.getQtaOrd());
result.setGiacenza(this.giacenza); result.setGiacenza(this.giacenza);
result.setQtaPrevistaVendita(this.qtaPrevistaVendita); result.setQtaPrevistaVendita(this.qtaPrevistaVendita);
result.setQtaProposta(this.qtaProposta); result.setQtaProposta(this.qtaProposta);

View File

@@ -0,0 +1,12 @@
package it.integry.integrywmsnative.core.di.binders;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.databinding.BindingAdapter;
public class ImageViewBinders {
@BindingAdapter("tint")
public static void bindImageViewTint(final AppCompatImageView view, final int color) {
view.setColorFilter(color, android.graphics.PorterDuff.Mode.MULTIPLY);
}
}

View File

@@ -0,0 +1,10 @@
package it.integry.integrywmsnative.core.exception;
public class BluetoothConnectionException extends Exception {
public BluetoothConnectionException(String btDeviceName, String btDeviceMac, Throwable th) {
super("Impossibile collegarsi al dispositivo bluetooth: " + btDeviceName + " [" + btDeviceMac + "]. Riprovare.");
initCause(th);
}
}

View File

@@ -0,0 +1,10 @@
package it.integry.integrywmsnative.core.exception;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.utility.UtilityResources;
public final class EmptyLUException extends Exception {
public EmptyLUException() {
super(UtilityResources.getString(R.string.empty_lu));
}
}

View File

@@ -38,7 +38,7 @@ public class ExceptionsHandler implements Thread.UncaughtExceptionHandler {
@Override @Override
public void uncaughtException(final Thread thread, final Throwable ex) { public void uncaughtException(final Thread thread, final Throwable ex) {
try { try {
UtilityLogger.errorMe(new Exception(ex)); UtilityLogger.error(new Exception(ex));
} catch (Exception e) { } catch (Exception e) {
Log.e(TAG, "Exception Logger failed!", e); Log.e(TAG, "Exception Logger failed!", e);
MainApplication.exit(); MainApplication.exit();

View File

@@ -0,0 +1,12 @@
package it.integry.integrywmsnative.core.exception;
import java.util.Locale;
public class InvalidConnectionException extends Exception {
public InvalidConnectionException(String host, int port, Throwable cause) {
super(String.format(Locale.ITALY, "Impossibile stabilire la connessione con il server (%s:%d)", host, port), cause);
}
}

View File

@@ -5,6 +5,6 @@ import it.integry.integrywmsnative.core.utility.UtilityResources;
public final class NoArtsFoundException extends Exception { public final class NoArtsFoundException extends Exception {
public NoArtsFoundException() { public NoArtsFoundException() {
super(UtilityResources.getString(R.string.no_result_from_barcode)); super(UtilityResources.getString(R.string.no_arts_found));
} }
} }

View File

@@ -4,6 +4,11 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityResources;
public final class NoResultFromBarcodeException extends Exception { public final class NoResultFromBarcodeException extends Exception {
public NoResultFromBarcodeException() {
super(UtilityResources.getString(R.string.no_result_from_barcode));
}
public NoResultFromBarcodeException(String barcode) { public NoResultFromBarcodeException(String barcode) {
super(UtilityResources.getString(R.string.no_result_from_barcode) + " (" + barcode + ")"); super(UtilityResources.getString(R.string.no_result_from_barcode) + " (" + barcode + ")");
} }

View File

@@ -49,7 +49,7 @@ public class BaseActivity extends AppCompatActivity {
public void onError(Exception ex) { public void onError(Exception ex) {
this.runOnUiThread(() -> { this.runOnUiThread(() -> {
this.closeProgress(); this.closeProgress();
UtilityExceptions.defaultException(this, ex, mCurrentProgress); UtilityExceptions.defaultException(this, ex);
BarcodeManager.enable(); BarcodeManager.enable();
}); });
} }

View File

@@ -27,7 +27,6 @@ public class BaseDialogFragment extends DialogFragment {
private boolean mBarcodeListener = false; private boolean mBarcodeListener = false;
@Override @Override
public void show(FragmentManager manager, String tag) { public void show(FragmentManager manager, String tag) {
try { try {

View File

@@ -1,7 +1,6 @@
package it.integry.integrywmsnative.core.expansion; package it.integry.integrywmsnative.core.expansion;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -55,43 +54,37 @@ public abstract class BaseFragment extends Fragment {
} }
public void onLoadingStarted() { public void onLoadingStarted() {
BarcodeManager.disable();
this.openProgress(); this.openProgress();
} }
public void onLoadingEnded() { public void onLoadingEnded() {
this.closeProgress(); this.closeProgress();
BarcodeManager.enable();
} }
private void openProgress() { private void openProgress() {
Log.d("PROGRESS DIALOG", "OPENED"); BarcodeManager.disable();
new Thread(() -> { if (!progressOpened && !this.mCurrentProgress.isAdded()) {
if (!progressOpened && !this.mCurrentProgress.isAdded()) { this.progressOpened = true;
this.progressOpened = true; requireActivity().runOnUiThread(() -> {
requireActivity().runOnUiThread(() -> { this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag");
this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag"); });
}); }
}
}).start();
} }
private void closeProgress() { private void closeProgress() {
Log.d("PROGRESS DIALOG", "CLOSED"); BarcodeManager.enable();
new Thread(() -> { if (progressOpened) {
if (progressOpened) { this.progressOpened = false;
this.progressOpened = false; requireActivity().runOnUiThread(() -> {
requireActivity().runOnUiThread(() -> { mCurrentProgress.dismissAllowingStateLoss();
mCurrentProgress.dismiss(); });
}); }
}
}).start();
} }
public void onError(Exception ex) { public void onError(Exception ex) {
requireActivity().runOnUiThread(() -> { requireActivity().runOnUiThread(() -> {
this.closeProgress(); this.closeProgress();
UtilityExceptions.defaultException(getActivity(), ex, mCurrentProgress); UtilityExceptions.defaultException(getActivity(), ex);
BarcodeManager.enable(); BarcodeManager.enable();
}); });
} }
@@ -106,9 +99,17 @@ public abstract class BaseFragment extends Fragment {
} }
} }
public boolean onBackPressed() {
return false;
}
protected void popMe() { protected void popMe() {
requireActivity().runOnUiThread(() -> { if (requireActivity() instanceof IPoppableActivity) {
((IPoppableActivity) requireActivity()).pop(); requireActivity().runOnUiThread(() -> {
}); ((IPoppableActivity) requireActivity()).pop();
});
} else {
requireActivity().getSupportFragmentManager().popBackStack();
}
} }
} }

View File

@@ -2,7 +2,7 @@ package it.integry.integrywmsnative.core.expansion;
import androidx.databinding.Observable; import androidx.databinding.Observable;
public abstract class OnGeneralChangedCallback extends Observable.OnPropertyChangedCallback implements Runnable{ public abstract class OnGeneralChangedCallback extends Observable.OnPropertyChangedCallback implements Runnable {
@Override @Override
public void onPropertyChanged(Observable sender, int propertyId) { public void onPropertyChanged(Observable sender, int propertyId) {

View File

@@ -21,13 +21,13 @@ public abstract class ExtendedSectionedRecyclerView<T, SH extends RecyclerView.V
public ExtendedSectionedRecyclerView(ObservableArrayList<T> myDataset) { public ExtendedSectionedRecyclerView(ObservableArrayList<T> myDataset) {
mDataset.addAll(myDataset); mDataset.addAll(myDataset);
myDataset.addOnListChangedCallback(new OnListGeneralChangedCallback() { myDataset.addOnListChangedCallback(new OnListGeneralChangedCallback<T>() {
@Override @Override
public void onChanged(ObservableList sender) { public void onChanged(ObservableList<T> sender) {
mDataset.clear(); mDataset.clear();
mDataset.addAll(sender); mDataset.addAll(sender);
notifyDataSetChanged();
notifyDataChanged(); notifyDataChanged();
notifyDataSetChanged();
checkIfEmpty(); checkIfEmpty();
} }
}); });

View File

@@ -0,0 +1,9 @@
package it.integry.integrywmsnative.core.interfaces.viewmodel_listeners;
public interface IOrdersLoadingListener {
void onOrderLoadingStarted();
void onOrderLoadingEnded();
}

File diff suppressed because it is too large Load Diff

View File

@@ -88,6 +88,11 @@ public class MtbAart extends EntityBase {
private String marchio; private String marchio;
private Integer sezione; private Integer sezione;
private UntMisRifPesoEnum untMisRifPeso; private UntMisRifPesoEnum untMisRifPeso;
private BigDecimal qtaEsistente;
private BigDecimal qtaImpegnata;
private BigDecimal numCnfEsistente;
private BigDecimal numCnfImpegnata;
private List<MtbUntMis> mtbUntMis; private List<MtbUntMis> mtbUntMis;
@@ -819,4 +824,40 @@ public class MtbAart extends EntityBase {
this.untMisRifPeso = untMisRifPeso; this.untMisRifPeso = untMisRifPeso;
return this; return this;
} }
public BigDecimal getQtaEsistente() {
return qtaEsistente;
}
public MtbAart setQtaEsistente(BigDecimal qtaEsistente) {
this.qtaEsistente = qtaEsistente;
return this;
}
public BigDecimal getQtaImpegnata() {
return qtaImpegnata;
}
public MtbAart setQtaImpegnata(BigDecimal qtaImpegnata) {
this.qtaImpegnata = qtaImpegnata;
return this;
}
public BigDecimal getNumCnfEsistente() {
return numCnfEsistente;
}
public MtbAart setNumCnfEsistente(BigDecimal numCnfEsistente) {
this.numCnfEsistente = numCnfEsistente;
return this;
}
public BigDecimal getNumCnfImpegnata() {
return numCnfImpegnata;
}
public MtbAart setNumCnfImpegnata(BigDecimal numCnfImpegnata) {
this.numCnfImpegnata = numCnfImpegnata;
return this;
}
} }

View File

@@ -1,122 +0,0 @@
package it.integry.integrywmsnative.core.model;
import java.util.Date;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
public class MtbCols extends EntityBase {
private String dataCollo;
private String gestione;
private Integer idRiga;
private Integer numCollo;
private String serCollo;
private String codMdep;
private String dataMove;
private String modificatoDa;
private String posizione;
private String causale;
public MtbCols() {
type = "mtb_cols";
setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep());
setModificatoDa(SettingsManager.i().getUser().getFullname());
//setDataMove(UtilityDate.getDateInstance());
}
public String getDataCollo() {
return dataCollo;
}
public MtbCols setDataCollo(String dataCollo) {
this.dataCollo = dataCollo;
return this;
}
public String getGestione() {
return gestione;
}
public MtbCols setGestione(String gestione) {
this.gestione = gestione;
return this;
}
public Integer getIdRiga() {
return idRiga;
}
public MtbCols setIdRiga(Integer idRiga) {
this.idRiga = idRiga;
return this;
}
public Integer getNumCollo() {
return numCollo;
}
public MtbCols setNumCollo(Integer numCollo) {
this.numCollo = numCollo;
return this;
}
public String getSerCollo() {
return serCollo;
}
public MtbCols setSerCollo(String serCollo) {
this.serCollo = serCollo;
return this;
}
public String getCodMdep() {
return codMdep;
}
public MtbCols setCodMdep(String codMdep) {
this.codMdep = codMdep;
return this;
}
public String getDataMove() {
return dataMove;
}
public MtbCols setDataMove(String dataMove) {
this.dataMove = dataMove;
return this;
}
public MtbCols setDataMove(Date dataMove) {
this.dataMove = UtilityDate.formatDate(dataMove, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}
public String getModificatoDa() {
return modificatoDa;
}
public MtbCols setModificatoDa(String modificatoDa) {
this.modificatoDa = modificatoDa;
return this;
}
public String getPosizione() {
return posizione;
}
public MtbCols setPosizione(String posizione) {
this.posizione = posizione;
return this;
}
public String getCausale() {
return causale;
}
public MtbCols setCausale(String causale) {
this.causale = causale;
return this;
}
}

View File

@@ -63,7 +63,6 @@ public class MtbColt extends EntityBase {
private BigDecimal altezzaCm; private BigDecimal altezzaCm;
private String codJcom; private String codJcom;
private List<MtbCols> mtbCols;
private MtbTCol mtbTCol; private MtbTCol mtbTCol;
private Boolean disablePrint; private Boolean disablePrint;
@@ -175,7 +174,7 @@ public class MtbColt extends EntityBase {
try { try {
dataColloD = getDataColloD(); dataColloD = getDataColloD();
} catch (Exception ex) { } catch (Exception ex) {
UtilityLogger.errorMe(ex); UtilityLogger.error(ex);
} }
if (dataColloD != null) { if (dataColloD != null) {
@@ -526,16 +525,6 @@ public class MtbColt extends EntityBase {
return this; return this;
} }
public List<MtbCols> getMtbCols() {
return mtbCols;
}
public MtbColt setMtbCols(List<MtbCols> mtbCols) {
this.mtbCols = mtbCols;
return this;
}
public Boolean getDisablePrint() { public Boolean getDisablePrint() {
return disablePrint == null ? false : disablePrint; return disablePrint == null ? false : disablePrint;
} }

View File

@@ -1,6 +1,5 @@
package it.integry.integrywmsnative.core.model; package it.integry.integrywmsnative.core.model;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.core.utility.UtilityLogger;
public class MtbDepoPosizione { public class MtbDepoPosizione {
@@ -19,7 +18,7 @@ public class MtbDepoPosizione {
return (MtbDepoPosizione) super.clone(); return (MtbDepoPosizione) super.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {
e.printStackTrace(); e.printStackTrace();
UtilityLogger.errorMe(e); UtilityLogger.error(e);
} }
return null; return null;

View File

@@ -0,0 +1,93 @@
package it.integry.integrywmsnative.core.model.dto;
import java.util.Date;
public class StatoArticoloDTO {
private String codMart;
private String partitaMag;
private Date dataScad;
private Integer ggScadPartita;
private Integer ggMax;
private Integer ggScadEffettivi;
private Integer ggUtili;
private Integer statoArt;
public String getCodMart() {
return codMart;
}
public StatoArticoloDTO setCodMart(String codMart) {
this.codMart = codMart;
return this;
}
public String getPartitaMag() {
return partitaMag;
}
public StatoArticoloDTO setPartitaMag(String partitaMag) {
this.partitaMag = partitaMag;
return this;
}
public Date getDataScad() {
return dataScad;
}
public StatoArticoloDTO setDataScad(Date dataScad) {
this.dataScad = dataScad;
return this;
}
public Integer getGgScadPartita() {
return ggScadPartita;
}
public StatoArticoloDTO setGgScadPartita(Integer ggScadPartita) {
this.ggScadPartita = ggScadPartita;
return this;
}
public Integer getGgMax() {
return ggMax;
}
public StatoArticoloDTO setGgMax(Integer ggMax) {
this.ggMax = ggMax;
return this;
}
public Integer getGgScadEffettivi() {
return ggScadEffettivi;
}
public StatoArticoloDTO setGgScadEffettivi(Integer ggScadEffettivi) {
this.ggScadEffettivi = ggScadEffettivi;
return this;
}
public Integer getGgUtili() {
return ggUtili;
}
public StatoArticoloDTO setGgUtili(Integer ggUtili) {
this.ggUtili = ggUtili;
return this;
}
public Integer getStatoArt() {
return statoArt;
}
public StatoArticoloDTO setStatoArt(Integer statoArt) {
this.statoArt = statoArt;
return this;
}
}

View File

@@ -0,0 +1,26 @@
package it.integry.integrywmsnative.core.model.secondary;
public enum StatoPartitaMag {
IN_SCADENZA(1),
SCADUTO(2),
NON_IN_SCADENZA(3);
private final int text;
StatoPartitaMag(int text) {
this.text = text;
}
public int getText() {
return this.text;
}
public static StatoPartitaMag from(int text) {
for (StatoPartitaMag b : StatoPartitaMag.values()) {
if (b.text == text) return b;
}
return null;
}
}

View File

@@ -0,0 +1,40 @@
package it.integry.integrywmsnative.core.report;
import com.google.gson.annotations.SerializedName;
public enum ReportType {
@SerializedName("0")
ETICHETTA_SSCC_ACCETTAZIONE(0),
@SerializedName("1")
ETICHETTA_SSCC_LAVORAZIONE(1),
@SerializedName("2")
ETICHETTA_SSCC_SPEDIZIONE(2),
@SerializedName("3")
WMS_SPEDIZIONE_ETICHETTE_SSCC_ORD(3),
@SerializedName("4")
WMS_SPEDIZIONE_PACKING_LIST_ORD(4),
@SerializedName("5")
STAMPA_LISTINI_VENDITA(5);
private final int value;
ReportType(int value) {
this.value = value;
}
public static ReportType from(Object value) {
int castValue = (int) value;
for (ReportType b : ReportType.values()) {
if (b.value == castValue)
return b;
}
return null;
}
public int getValue() {
return this.value;
}
}

View File

@@ -5,6 +5,7 @@ import java.net.SocketTimeoutException;
import java.util.HashMap; import java.util.HashMap;
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException; import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
/** /**
* Created by GiuseppeS on 22/03/2018. * Created by GiuseppeS on 22/03/2018.
@@ -15,13 +16,16 @@ public class CommonRESTException {
private static String MESSAGE_KEY = "message"; private static String MESSAGE_KEY = "message";
private static String EXCEPTION_KEY = "exception"; private static String EXCEPTION_KEY = "exception";
private static HashMap<String, HashMap<String, Object>> bindingExceptions = new HashMap() {{ private static final HashMap<String, HashMap<String, Object>> bindingExceptions = new HashMap<>() {{
put("Printer not found", new HashMap<String, Object>(){{ put("Printer not found", new HashMap<>() {{
put(MESSAGE_KEY, "Stampante non trovata"); put(MESSAGE_KEY, "Stampante non trovata");
put(EXCEPTION_KEY, NoPrintersFoundException.class); put(EXCEPTION_KEY, NoPrintersFoundException.class);
}}); }});
put("barcode non letto correttamente", new HashMap<>() {{
put(MESSAGE_KEY, "Barcode non letto correttamente");
put(EXCEPTION_KEY, NoResultFromBarcodeException.class);
}});
}}; }};
@@ -42,13 +46,11 @@ public class CommonRESTException {
for(String key : bindingExceptions.keySet()) { for(String key : bindingExceptions.keySet()) {
if(message.contains(key)) { if(message.contains(key)) {
Class classType = (Class) bindingExceptions.get(key).get(EXCEPTION_KEY); Class<?> classType = (Class<?>) bindingExceptions.get(key).get(EXCEPTION_KEY);
try { try {
return (Exception) classType.newInstance(); return (Exception) classType.newInstance();
} catch (IllegalAccessException e) { } catch (IllegalAccessException | InstantiationException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }

View File

@@ -21,20 +21,21 @@ public class RESTBuilder {
return getService(service, SettingsManager.i().getServer().getHost(), SettingsManager.i().getServer().getPort(), true); return getService(service, SettingsManager.i().getServer().getHost(), SettingsManager.i().getServer().getPort(), true);
} }
public static <T> T getService(final Class<T> service, int timeout) { public static <T> T getService(final Class<T> service, int timeout) {
return getService(service, SettingsManager.i().getServer().getHost(), SettingsManager.i().getServer().getPort(), true, true, timeout); return getService(service, SettingsManager.i().getServer().getHost(), SettingsManager.i().getServer().getPort(), true, true, timeout);
} }
public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors) { public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors) {
return getService(service, host, port, addInterceptors, true, 30); return getService(service, host, port, addInterceptors, true, 60);
} }
public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors, boolean addEmsApi) { public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors, boolean addEmsApi) {
return getService(service, host, port, addInterceptors, addEmsApi, 30); return getService(service, host, port, addInterceptors, addEmsApi, 60);
} }
public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors, boolean addEmsApi, int timeout){ public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors, boolean addEmsApi, int timeout) {
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder(); OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
clientBuilder.connectTimeout(timeout, TimeUnit.SECONDS); clientBuilder.connectTimeout(timeout, TimeUnit.SECONDS);
@@ -43,7 +44,7 @@ public class RESTBuilder {
clientBuilder.retryOnConnectionFailure(true); clientBuilder.retryOnConnectionFailure(true);
if(addInterceptors) clientBuilder.addInterceptor(new HttpInterceptor()); if (addInterceptors) clientBuilder.addInterceptor(new HttpInterceptor());
OkHttpClient client = clientBuilder.build(); OkHttpClient client = clientBuilder.build();
@@ -62,4 +63,13 @@ public class RESTBuilder {
return retrofit.create(service); return retrofit.create(service);
} }
public static String getDefaultHost() {
return SettingsManager.i().getServer().getHost();
}
public static int getDefaultPort() {
return SettingsManager.i().getServer().getPort();
}
} }

View File

@@ -14,6 +14,7 @@ import javax.inject.Singleton;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbGrup; import it.integry.integrywmsnative.core.model.MtbGrup;
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.utility.UtilityQuery; import it.integry.integrywmsnative.core.utility.UtilityQuery;
@@ -32,11 +33,13 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
public void getByBarcodeProd(String barcodeProd, RunnableArgs<List<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) { public void getByBarcodeProd(String barcodeProd, RunnableArgs<List<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) {
ArticoloRESTConsumerService articoloRESTConsumerService = RESTBuilder.getService(ArticoloRESTConsumerService.class); ArticoloRESTConsumerService articoloRESTConsumerService = RESTBuilder.getService(ArticoloRESTConsumerService.class);
articoloRESTConsumerService.getByBarcodeProd(barcodeProd).enqueue(new Callback<ServiceRESTResponse<MtbAart>>() { articoloRESTConsumerService.getByBarcodeProd(barcodeProd).enqueue(new Callback<>() {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) { public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) {
analyzeAnswer(response, "getByBarcodeProd", (m) -> { analyzeAnswer(response, "getByBarcodeProd", (m) -> {
onComplete.run(response.body().getEntityList()); List<MtbAart> aartList = response.body().getEntityList();
aartList = aartList != null ? Stream.of(aartList).filter(x -> x.getFlagStato().equalsIgnoreCase("A")).toList() : null;
onComplete.run(aartList);
}, onFailed); }, onFailed);
} }
@@ -59,7 +62,7 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class); ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class);
articoloRESTConsumer.getByCodMart(joinedCods).enqueue(new Callback<ServiceRESTResponse<MtbAart>>() { articoloRESTConsumer.getByCodMart(joinedCods).enqueue(new Callback<>() {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) { public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) {
analyzeAnswer(response, "getByCodMart", (m) -> { analyzeAnswer(response, "getByCodMart", (m) -> {
@@ -75,11 +78,28 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
} }
public void getStatoPartita(String codMart, String partitaMag, RunnableArgs<List<StatoArticoloDTO>> onComplete, RunnableArgs<Exception> onFailed) {
ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class);
articoloRESTConsumer.getStatoPartita(codMart, partitaMag).enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<List<StatoArticoloDTO>>> call, Response<ServiceRESTResponse<List<StatoArticoloDTO>>> response) {
analyzeAnswer(response, "getStatoPartita", onComplete, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<List<StatoArticoloDTO>>> call, Throwable t) {
onFailed.run(new Exception(t));
}
});
}
public void getByCodMart(String codMartToFind, RunnableArgs<MtbAart> onComplete, RunnableArgs<Exception> onFailed) { public void getByCodMart(String codMartToFind, RunnableArgs<MtbAart> onComplete, RunnableArgs<Exception> onFailed) {
ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class); ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class);
articoloRESTConsumer.getByCodMart(codMartToFind).enqueue(new Callback<ServiceRESTResponse<MtbAart>>() { articoloRESTConsumer.getByCodMart(codMartToFind).enqueue(new Callback<>() {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) { public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) {
analyzeAnswer(response, "getByCodMart", (m) -> { analyzeAnswer(response, "getByCodMart", (m) -> {

View File

@@ -1,7 +1,10 @@
package it.integry.integrywmsnative.core.rest.consumers; package it.integry.integrywmsnative.core.rest.consumers;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import java.util.List;
import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.POST; import retrofit2.http.POST;
@@ -16,4 +19,7 @@ public interface ArticoloRESTConsumerService {
@GET("SM2getArticoloByCodMart") @GET("SM2getArticoloByCodMart")
Call<ServiceRESTResponse<MtbAart>> getByCodMart(@Query("codMart") String barcodeProd); Call<ServiceRESTResponse<MtbAart>> getByCodMart(@Query("codMart") String barcodeProd);
@GET("getProductLotStatus")
Call<ServiceRESTResponse<List<StatoArticoloDTO>>> getStatoPartita(@Query("codMart") String codMart, @Query("partitaMag") String partitaMag);
} }

View File

@@ -20,7 +20,7 @@ public class BarcodeRESTConsumer extends _BaseRESTConsumer {
IBarcodeCustomization barcodeCustomization = ClassRouter.getInstance(ClassRouter.PATH.BARCODE_CUSTOMIZATION); IBarcodeCustomization barcodeCustomization = ClassRouter.getInstance(ClassRouter.PATH.BARCODE_CUSTOMIZATION);
if(barcodeCustomization != null && barcodeCustomization.shouldForceToEan13(barcodeObj.getStringValue())){ if (barcodeCustomization != null && barcodeCustomization.shouldForceToEan13(barcodeObj.getStringValue())) {
Ean128Model ean128Model = new Ean128Model(); Ean128Model ean128Model = new Ean128Model();
ean128Model.Gtin = barcodeObj.getStringValue(); ean128Model.Gtin = barcodeObj.getStringValue();
onComplete.run(ean128Model); onComplete.run(ean128Model);
@@ -30,7 +30,7 @@ public class BarcodeRESTConsumer extends _BaseRESTConsumer {
String ean128 = barcodeObj.getStringValue().replaceAll("" + ((char) 29), "|"); String ean128 = barcodeObj.getStringValue().replaceAll("" + ((char) 29), "|");
BarcodeRESTConsumerService barcodeRESTConsumerService = RESTBuilder.getService(BarcodeRESTConsumerService.class); BarcodeRESTConsumerService barcodeRESTConsumerService = RESTBuilder.getService(BarcodeRESTConsumerService.class);
barcodeRESTConsumerService.decodeEan128(ean128).enqueue(new Callback<ServiceRESTResponse<Ean128Model>>() { barcodeRESTConsumerService.decodeEan128(ean128).enqueue(new Callback<>() {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<Ean128Model>> call, Response<ServiceRESTResponse<Ean128Model>> response) { public void onResponse(Call<ServiceRESTResponse<Ean128Model>> call, Response<ServiceRESTResponse<Ean128Model>> response) {
analyzeAnswer(response, "DecodeEan128", onComplete, onFailed); analyzeAnswer(response, "DecodeEan128", onComplete, onFailed);

View File

@@ -89,8 +89,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
public void saveColli(List<MtbColt> mtbColtsToSave, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) { public void saveColli(List<MtbColt> mtbColtsToSave, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
for (MtbColt mtbColt : mtbColtsToSave) { for (MtbColt mtbColt : mtbColtsToSave) {
mtbColt.setMtbCols(null);
for (int i = 0; i < mtbColt.getMtbColr().size(); i++) { for (int i = 0; i < mtbColt.getMtbColr().size(); i++) {
mtbColt.getMtbColr().get(i) mtbColt.getMtbColr().get(i)
.setMtbAart(null) .setMtbAart(null)
@@ -245,7 +243,14 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
MtbColt mtbColtToCreate = new MtbColt() MtbColt mtbColtToCreate = new MtbColt()
.initDefaultFields(gestione); .initDefaultFields(gestione);
Integer customNumCollo = UtilityBarcode.getNumColloFromULAnonima(barcode); Integer customNumCollo = null;
try {
customNumCollo = UtilityBarcode.getNumColloFromULAnonima(barcode);
} catch (Exception ex) {
onFailed.run(ex);
}
String customSerCollo = CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE; String customSerCollo = CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE;
if (customNumCollo != null) { if (customNumCollo != null) {
@@ -319,7 +324,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
public void getBySSCC(String ssccString, boolean onlyResiduo, boolean throwExcIfNull, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) { public void getBySSCC(String ssccString, boolean onlyResiduo, boolean throwExcIfNull, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
ColliMagazzinoRESTConsumerService colliMagazzinoRESTConsumerService = RESTBuilder.getService(ColliMagazzinoRESTConsumerService.class); ColliMagazzinoRESTConsumerService colliMagazzinoRESTConsumerService = RESTBuilder.getService(ColliMagazzinoRESTConsumerService.class);
colliMagazzinoRESTConsumerService.getColloByBarcode(ssccString, onlyResiduo, throwExcIfNull).enqueue(new Callback<ServiceRESTResponse<MtbColt>>() { colliMagazzinoRESTConsumerService.getColloByBarcode(ssccString, onlyResiduo, throwExcIfNull).enqueue(new Callback<>() {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<MtbColt>> call, Response<ServiceRESTResponse<MtbColt>> response) { public void onResponse(Call<ServiceRESTResponse<MtbColt>> call, Response<ServiceRESTResponse<MtbColt>> response) {
analyzeAnswer(response, "GetBySSCC", mtbColt -> { analyzeAnswer(response, "GetBySSCC", mtbColt -> {
@@ -693,4 +698,50 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
}); });
} }
public void confirmGiacenzaUL(MtbColt sourceMtbColt, Runnable onComplete, RunnableArgs<Exception> onFailed) {
MtbColt sourceMtbColtClone = (MtbColt) sourceMtbColt.clone();
sourceMtbColtClone.setMtbColr(new ObservableArrayList<>());
ColliMagazzinoRESTConsumerService colliMagazzinoRESTConsumerService = RESTBuilder.getService(ColliMagazzinoRESTConsumerService.class);
colliMagazzinoRESTConsumerService.confirmGiacenzaUL(sourceMtbColtClone).enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
analyzeAnswer(response, "confirmGiacenzaUL", data -> {
onComplete.run();
}, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
if (onFailed != null) onFailed.run(new Exception(t));
}
});
}
public void loadShipmentUlFromProductionUL(MtbColt mtbColt, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
HashMap<String, Object> params = new HashMap<>();
params.put("mtb_colr.gestione_rif", mtbColt.getGestione());
params.put("mtb_colr.ser_collo_rif", mtbColt.getSerCollo());
params.put("mtb_colr.num_collo_rif", mtbColt.getNumCollo());
params.put("mtb_colr.data_collo_rif", mtbColt.getDataColloD());
String whereCond = UtilityQuery.concatFieldsInWhereCond(params);
String query = "select distinct mtb_colt.*\n" +
"from mtb_colt\n" +
" left join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and mtb_colt.data_collo = mtb_colr.data_collo and\n" +
" mtb_colt.ser_collo = mtb_colr.ser_collo and mtb_colt.num_collo = mtb_colr.num_collo\n" +
"where mtb_colt.gestione = 'V'" +
" AND " + whereCond;
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {
}.getType();
this.mSystemRESTConsumer.<ArrayList<MtbColt>>processSql(query, typeOfObjectsList, data -> {
onComplete.run(data.get(0));
}, onFailed);
}
} }

View File

@@ -46,4 +46,7 @@ public interface ColliMagazzinoRESTConsumerService {
@POST("wms/versamentoAutomaticoUL") @POST("wms/versamentoAutomaticoUL")
Call<ServiceRESTResponse<VersamentoAutomaticoULResponseDTO>> versamentoAutomaticoUL(@Body MtbColt mtbColt); Call<ServiceRESTResponse<VersamentoAutomaticoULResponseDTO>> versamentoAutomaticoUL(@Body MtbColt mtbColt);
@POST("wms/confirmGiacenzaUL")
Call<ServiceRESTResponse<Object>> confirmGiacenzaUL(@Body MtbColt mtbColt);
} }

View File

@@ -0,0 +1,51 @@
package it.integry.integrywmsnative.core.rest.consumers;
import java.util.List;
import javax.inject.Singleton;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.DtbDoct;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.LoadColliDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@Singleton
public class DocumentiRESTConsumer extends _BaseRESTConsumer {
public void createDocsFromColli(List<LoadColliDTO> listColli, RunnableArgs<List<DtbDoct>> onComplete, RunnableArgs<Exception> onFailed) {
DocumentiRESTConsumerService documentiRESTConsumerService = RESTBuilder.getService(DocumentiRESTConsumerService.class);
documentiRESTConsumerService.createDocsFromColli(listColli).enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<List<DtbDoct>>> call, Response<ServiceRESTResponse<List<DtbDoct>>> response) {
analyzeAnswer(response, "createDocsFromColli", onComplete, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<List<DtbDoct>>> call, Throwable t) {
onFailed.run(new Exception(t));
}
});
}
public void createDocFromColli(LoadColliDTO loadColliDTO, RunnableArgs<DtbDoct> onComplete, RunnableArgs<Exception> onFailed) {
DocumentiRESTConsumerService documentiRESTConsumerService = RESTBuilder.getService(DocumentiRESTConsumerService.class);
documentiRESTConsumerService.createDocFromColli(loadColliDTO).enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<DtbDoct>> call, Response<ServiceRESTResponse<DtbDoct>> response) {
analyzeAnswer(response, "createDocFromColli", onComplete, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<DtbDoct>> call, Throwable t) {
onFailed.run(new Exception(t));
}
});
}
}

View File

@@ -0,0 +1,20 @@
package it.integry.integrywmsnative.core.rest.consumers;
import java.util.List;
import it.integry.integrywmsnative.core.model.DtbDoct;
import it.integry.integrywmsnative.core.rest.model.LoadColliDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
public interface DocumentiRESTConsumerService {
@POST("getDatiColliForDocs")
Call<ServiceRESTResponse<List<DtbDoct>>> createDocsFromColli(@Body List<LoadColliDTO> listColli);
@POST("createDocFromColli")
Call<ServiceRESTResponse<DtbDoct>> createDocFromColli(@Body LoadColliDTO listColli);
}

View File

@@ -6,11 +6,11 @@ import java.util.List;
import javax.inject.Singleton; import javax.inject.Singleton;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.StbGestSetup; import it.integry.integrywmsnative.core.model.StbGestSetup;
import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.GestSetupDTO; import it.integry.integrywmsnative.core.rest.model.GestSetupDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.core.utility.UtilityLogger;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Callback; import retrofit2.Callback;
@@ -35,18 +35,18 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
public void onFailure(Call<ServiceRESTResponse<GestSetupDTO>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<GestSetupDTO>> call, Throwable t) {
Log.e("GestSetup", t.toString()); Log.e("GestSetup", t.toString());
// UtilityLogger.errorMe(new Exception(t)); // UtilityLogger.errorMe(new Exception(t));
if(onFailed != null) onFailed.run(new Exception(t)); if (onFailed != null) onFailed.run(new Exception(t));
} }
}); });
} }
public static void getBooleanValue(String gestName, String sectionName, String keySection, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) { public static void getBooleanValue(String gestName, String sectionName, String keySection, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
getValueStatic(gestName, sectionName, keySection, value -> { getValueStatic(gestName, sectionName, keySection, value -> {
if(value != null){ if (value != null) {
onComplete.run("S".equalsIgnoreCase(value.value)); onComplete.run("S".equalsIgnoreCase(value.value));
} else onComplete.run(false); } else onComplete.run(false);
}, ex -> { }, ex -> {
if(onFailed != null) onFailed.run(ex); if (onFailed != null) onFailed.run(ex);
}); });
} }
@@ -61,26 +61,26 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<GestSetupDTO>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<GestSetupDTO>> call, Throwable t) {
Log.e("PrintCollo", t.toString()); Log.e("PrintCollo", t.toString());
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
if(onFailed != null) onFailed.run(new Exception(t)); if (onFailed != null) onFailed.run(new Exception(t));
} }
}); });
} }
public static void getBooleanValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) { public static void getBooleanValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
getValueStatic(gestName, sectionName, keySection, codMdep, value -> { getValueStatic(gestName, sectionName, keySection, codMdep, value -> {
if(value != null){ if (value != null) {
onComplete.run("S".equalsIgnoreCase(value.value)); onComplete.run("S".equalsIgnoreCase(value.value));
} else onComplete.run(false); } else onComplete.run(false);
}, ex -> { }, ex -> {
if(onFailed != null) onFailed.run(ex); if (onFailed != null) onFailed.run(ex);
}); });
} }
public static void getValues(List<StbGestSetup> stbGestSetupList, RunnableArgs<List<StbGestSetup>> onComplete, RunnableArgs<Exception> onFailed) { public static void getValues(String codMdep, List<StbGestSetup> stbGestSetupList, RunnableArgs<List<StbGestSetup>> onComplete, RunnableArgs<Exception> onFailed) {
GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class); GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class);
service.getGestSetupValues(stbGestSetupList).enqueue(new Callback<ServiceRESTResponse<List<StbGestSetup>>>() { service.getGestSetupValues(codMdep, stbGestSetupList).enqueue(new Callback<>() {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<List<StbGestSetup>>> call, Response<ServiceRESTResponse<List<StbGestSetup>>> response) { public void onResponse(Call<ServiceRESTResponse<List<StbGestSetup>>> call, Response<ServiceRESTResponse<List<StbGestSetup>>> response) {
analyzeAnswer(response, "GestSetup", onComplete, onFailed); analyzeAnswer(response, "GestSetup", onComplete, onFailed);
@@ -88,8 +88,8 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<List<StbGestSetup>>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<StbGestSetup>>> call, Throwable t) {
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
if(onFailed != null) onFailed.run(new Exception(t)); if (onFailed != null) onFailed.run(new Exception(t));
} }
}); });
} }

View File

@@ -28,6 +28,7 @@ public interface GestSetupRESTConsumerService {
@POST("gestSetupList") @POST("gestSetupList")
Call<ServiceRESTResponse<List<StbGestSetup>>> getGestSetupValues( Call<ServiceRESTResponse<List<StbGestSetup>>> getGestSetupValues(
@Query("codMdep") String codMdep,
@Body List<StbGestSetup> stbGestSetupList); @Body List<StbGestSetup> stbGestSetupList);
} }

View File

@@ -46,11 +46,11 @@ public class MesRESTConsumer extends _BaseRESTConsumer {
}); });
} }
public void getOrdiniLavorazione(String flagEvaso, String codJfas, RunnableArgs<List<OrdineLavorazioneDTO>> onComplete, RunnableArgs<Exception> onFailed) { public void getOrdiniLavorazione(String flagEvaso, String codJfas, String codAnag, RunnableArgs<List<OrdineLavorazioneDTO>> onComplete, RunnableArgs<Exception> onFailed) {
MesRESTConsumerService mesRESTConsumerService = RESTBuilder.getService(MesRESTConsumerService.class); MesRESTConsumerService mesRESTConsumerService = RESTBuilder.getService(MesRESTConsumerService.class);
mesRESTConsumerService.getOrdiniLavorazione(flagEvaso, codJfas) mesRESTConsumerService.getOrdiniLavorazione(null, flagEvaso, codJfas, codAnag)
.enqueue(new Callback<ServiceRESTResponse<List<OrdineLavorazioneDTO>>>() { .enqueue(new Callback<>() {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> call, Response<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> response) { public void onResponse(Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> call, Response<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> response) {
analyzeAnswer(response, "getOrdiniLavorazione", (m) -> onComplete.run(response.body().getDto()), onFailed); analyzeAnswer(response, "getOrdiniLavorazione", (m) -> onComplete.run(response.body().getDto()), onFailed);
@@ -63,6 +63,7 @@ public class MesRESTConsumer extends _BaseRESTConsumer {
}); });
} }
public void getOrdiniLavorazione(Date dateStart, String flagEvaso, String codJfas, RunnableArgs<List<OrdineLavorazioneDTO>> onComplete, RunnableArgs<Exception> onFailed) { public void getOrdiniLavorazione(Date dateStart, String flagEvaso, String codJfas, RunnableArgs<List<OrdineLavorazioneDTO>> onComplete, RunnableArgs<Exception> onFailed) {
MesRESTConsumerService mesRESTConsumerService = RESTBuilder.getService(MesRESTConsumerService.class); MesRESTConsumerService mesRESTConsumerService = RESTBuilder.getService(MesRESTConsumerService.class);
@@ -82,7 +83,8 @@ public class MesRESTConsumer extends _BaseRESTConsumer {
public void getLineeProduzione(String codJfasParent, RunnableArgs<List<JtbFasi>> onComplete, RunnableArgs<Exception> onFailed) { public void getLineeProduzione(String codJfasParent, RunnableArgs<List<JtbFasi>> onComplete, RunnableArgs<Exception> onFailed) {
Type typeOfObjectsList = new TypeToken<ArrayList<JtbFasi>>() {}.getType(); Type typeOfObjectsList = new TypeToken<ArrayList<JtbFasi>>() {
}.getType();
this.mSystemRESTConsumer.processSql( this.mSystemRESTConsumer.processSql(
"SELECT * FROM jtb_fasi WHERE cod_jfas_parent = " + UtilityDB.valueToString(codJfasParent), "SELECT * FROM jtb_fasi WHERE cod_jfas_parent = " + UtilityDB.valueToString(codJfasParent),
typeOfObjectsList, typeOfObjectsList,

View File

@@ -22,4 +22,7 @@ public interface MesRESTConsumerService {
@GET("mes_v2/getOrdiniLavorazione") @GET("mes_v2/getOrdiniLavorazione")
Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> getOrdiniLavorazione(@Query("startDate") String startDate, @Query("flagEvaso") String flagEvaso, @Query("codJfas") String codJfas); Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> getOrdiniLavorazione(@Query("startDate") String startDate, @Query("flagEvaso") String flagEvaso, @Query("codJfas") String codJfas);
@GET("mes_v2/getOrdiniLavorazione")
Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> getOrdiniLavorazione(@Query("startDate") String startDate, @Query("flagEvaso") String flagEvaso, @Query("codJfas") String codJfas, @Query("codAnag") String codAnag);
} }

View File

@@ -109,7 +109,7 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<List<PickingObjectDTO>>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<PickingObjectDTO>>> call, Throwable t) {
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });
@@ -161,12 +161,20 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
service.getArticoliFromOrdini(codMdep, getPickingListDTOs).enqueue(new Callback<>() { service.getArticoliFromOrdini(codMdep, getPickingListDTOs).enqueue(new Callback<>() {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Response<ServiceRESTResponse<List<SitArtOrdDTO>>> response) { public void onResponse(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Response<ServiceRESTResponse<List<SitArtOrdDTO>>> response) {
analyzeAnswer(response, "retrieveListaArticoliFromOrdiniUscita", onComplete, onFailed); analyzeAnswer(response, "retrieveListaArticoliFromOrdiniUscita", sitArtOrds -> {
if (sitArtOrds != null) {
for (SitArtOrdDTO sitArtOrd : sitArtOrds) {
sitArtOrd.setCodMart(sitArtOrd.getCodMart().trim());
}
}
onComplete.run(sitArtOrds);
}, onFailed);
} }
@Override @Override
public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) {
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });
@@ -189,7 +197,7 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
" AND mtb_colt.ser_collo = mtb_colr.ser_collo " + " AND mtb_colt.ser_collo = mtb_colr.ser_collo " +
" AND mtb_colt.data_collo = mtb_colr.data_collo " + " AND mtb_colt.data_collo = mtb_colr.data_collo " +
" AND mtb_colt.num_collo = mtb_colr.num_collo " + " AND mtb_colt.num_collo = mtb_colr.num_collo " +
" WHERE " + whereCondGestione + " WHERE " + whereCondGestione +
" AND mtb_colt.segno = " + UtilityDB.valueToString(segno) + " " + " AND mtb_colt.segno = " + UtilityDB.valueToString(segno) + " " +
" AND mtb_colt.data_doc IS NULL AND "; " AND mtb_colt.data_doc IS NULL AND ";

View File

@@ -56,7 +56,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
.groupBy(ArticoloDTO::getCodMart) .groupBy(ArticoloDTO::getCodMart)
.forEach(entry -> { .forEach(entry -> {
if(entry.getValue().size() == 1) { if (entry.getValue().size() == 1) {
listaArticoli.add(entry.getValue().get(0)); listaArticoli.add(entry.getValue().get(0));
} else { } else {
for (ArticoloDTO articolo : entry.getValue()) { for (ArticoloDTO articolo : entry.getValue()) {
@@ -79,7 +79,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<GrigliaDTO>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<GrigliaDTO>> call, Throwable t) {
Log.e("getArticoliListino_pv", t.toString()); Log.e("getArticoliListino_pv", t.toString());
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });
@@ -93,7 +93,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
int i = 0; int i = 0;
for (ArticoloOrdine art : articoli) { for (ArticoloOrdine art : articoli) {
i++; i++;
artRows.add(convertArtToDTO(art,i)); artRows.add(convertArtToDTO(art, i));
} }
ordineDTO.setChiaveGriglia(griglia.getCodAlis()); ordineDTO.setChiaveGriglia(griglia.getCodAlis());
@@ -109,9 +109,9 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
.enqueue(new Callback<List<ServiceRESTResponse<DtbOrdt>>>() { .enqueue(new Callback<List<ServiceRESTResponse<DtbOrdt>>>() {
@Override @Override
public void onResponse(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Response<List<ServiceRESTResponse<DtbOrdt>>> response) { public void onResponse(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Response<List<ServiceRESTResponse<DtbOrdt>>> response) {
if (response.body() != null && response.body().size() > 0){ if (response.body() != null && response.body().size() > 0) {
analyzeListOfAnswers(response, "getArticoliListino", dtoList-> { analyzeListOfAnswers(response, "getArticoliListino", dtoList -> {
if (dtoList.size() > 0){ if (dtoList.size() > 0) {
DtbOrdt dto = dtoList.get(0); DtbOrdt dto = dtoList.get(0);
ordine.setTransmitted(true); ordine.setTransmitted(true);
ordine.setTransmissionDate(UtilityDate.getDateInstance()); ordine.setTransmissionDate(UtilityDate.getDateInstance());
@@ -120,7 +120,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
ordine.setCodMdep(dto.getCodMdep()); ordine.setCodMdep(dto.getCodMdep());
ordine.setNumOrd(dto.getNumOrd()); ordine.setNumOrd(dto.getNumOrd());
onSuccess.run(ordine); onSuccess.run(ordine);
}else{ } else {
onFailed.run(new Exception("Nessun ordine generato")); onFailed.run(new Exception("Nessun ordine generato"));
} }
}, onFailed); }, onFailed);
@@ -128,15 +128,14 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
} }
@Override @Override
public void onFailure(Call<List<ServiceRESTResponse<DtbOrdt>>>call, Throwable t) { public void onFailure(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Throwable t) {
Log.e("saveOrdineTerminale_pv", t.toString()); Log.e("saveOrdineTerminale_pv", t.toString());
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });
} }
private ArtDTO convertArtToDTO(ArticoloOrdine art, int rigaOrd) { private ArtDTO convertArtToDTO(ArticoloOrdine art, int rigaOrd) {
@@ -147,6 +146,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
dto.setDescrizione(art.getDescrizione()); dto.setDescrizione(art.getDescrizione());
dto.setDataInsD(art.getDataIns()); dto.setDataInsD(art.getDataIns());
dto.setUntMis(art.getUntMis()); dto.setUntMis(art.getUntMis());
dto.setSystemNote(art.getSystemNote());
dto.setQta(BigDecimal.valueOf(art.getQtaOrd())); dto.setQta(BigDecimal.valueOf(art.getQtaOrd()));
dto.setQtaCnf(BigDecimal.valueOf(art.getQtaCnf())); dto.setQtaCnf(BigDecimal.valueOf(art.getQtaCnf()));
dto.setColli(BigDecimal.ZERO); dto.setColli(BigDecimal.ZERO);

View File

@@ -13,12 +13,15 @@ import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException; import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.report.ReportType;
import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.JasperDTO; import it.integry.integrywmsnative.core.rest.model.JasperDTO;
import it.integry.integrywmsnative.core.rest.model.JasperPairDTO; import it.integry.integrywmsnative.core.rest.model.JasperPairDTO;
import it.integry.integrywmsnative.core.rest.model.ReportTypeDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Callback; import retrofit2.Callback;
import retrofit2.Response; import retrofit2.Response;
@@ -49,25 +52,22 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<List<String>>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<String>>> call, Throwable t) {
Log.e("GetAvailablePrinters", t.toString()); Log.e("GetAvailablePrinters", t.toString());
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });
} }
public void printCollo(Type printerType, MtbColt testataColloToPrint, Runnable onComplete, RunnableArgs<Exception> onFailed) { public void printCollo(MtbColt testataColloToPrint, Runnable onComplete, RunnableArgs<Exception> onFailed) {
// if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
// onComplete.run(); onComplete.run();
// return; return;
// } }
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class); PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class);
Call<ServiceRESTResponse<Object>> callable = null; Call<ServiceRESTResponse<Object>> callable = null;
if (printerType != null) callable = printerService.printCollo(testataColloToPrint);
callable = printerService.printCollo(printerType.toString(), testataColloToPrint);
else
callable = printerService.printCollo(testataColloToPrint);
callable.enqueue(new Callback<>() { callable.enqueue(new Callback<>() {
@Override @Override
@@ -88,10 +88,10 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
public void printReport(String printerName, String reportName, HashMap<String, Object> params, int quantity, Runnable onComplete, RunnableArgs<Exception> onFailed) { public void printReport(String printerName, String reportName, HashMap<String, Object> params, int quantity, Runnable onComplete, RunnableArgs<Exception> onFailed) {
// if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
// onComplete.run(); onComplete.run();
// return; return;
// } }
JasperDTO jasperDTO = new JasperDTO(); JasperDTO jasperDTO = new JasperDTO();
jasperDTO.setReportName(reportName); jasperDTO.setReportName(reportName);
@@ -119,4 +119,64 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
}); });
} }
public void printReportType(ReportType reportType, String codMdep, String codAnag, HashMap<String, Object> params, Runnable onComplete, RunnableArgs<Exception> onFailed) {
ReportTypeDTO reportTypeDTO = new ReportTypeDTO();
reportTypeDTO.setReportType(reportType);
reportTypeDTO.setCodAnag(codAnag);
reportTypeDTO.setCodMdep(codMdep);
Stream.of(params)
.forEach(x -> reportTypeDTO.getParams().add(new JasperPairDTO(x.getKey(), x.getValue())));
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class);
printerService
.printReportType(reportTypeDTO)
.enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
analyzeAnswer(response, "printReportType", data -> {
onComplete.run();
}, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
if (t.getMessage().contains("Printer not found")) {
onFailed.run(new NoPrintersFoundException());
} else onFailed.run(new Exception(t));
}
});
}
public void printReportType(ReportType reportType, HashMap<String, Object> params, Runnable onComplete, RunnableArgs<Exception> onFailed) {
printReportType(reportType, null, null, params, onComplete, onFailed);
}
public void printReportType(ReportType reportType, String codMdep, HashMap<String, Object> params, Runnable onComplete, RunnableArgs<Exception> onFailed) {
printReportType(reportType, codMdep, null, params, onComplete, onFailed);
}
public void printClosedOrders(PrintOrderCloseDTO dto, String codMdep, Runnable onComplete, RunnableArgs<Exception> onFailed) {
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class, 240);
Call<ServiceRESTResponse<Object>> callable = printerService.printClosedOrders(codMdep, dto);
callable.enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
analyzeAnswer(response, "printCollo", data -> {
onComplete.run();
}, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
if (t.getMessage().contains("Printer not found")) {
onFailed.run(new NoPrintersFoundException());
} else onFailed.run(new Exception(t));
}
});
}
} }

View File

@@ -4,7 +4,9 @@ import java.util.List;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.rest.model.JasperDTO; import it.integry.integrywmsnative.core.rest.model.JasperDTO;
import it.integry.integrywmsnative.core.rest.model.ReportTypeDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.http.Body; import retrofit2.http.Body;
import retrofit2.http.POST; import retrofit2.http.POST;
@@ -26,11 +28,9 @@ public interface PrinterRESTConsumerService {
@Body JasperDTO jasperDTO @Body JasperDTO jasperDTO
); );
@POST("printReportType")
@POST("wms/printEtichettaSSCC") Call<ServiceRESTResponse<Object>> printReportType(
Call<ServiceRESTResponse<Object>> printCollo( @Body ReportTypeDTO reportTypeDTO
@Query("printerType") String printerType,
@Body MtbColt mtbColtToPrint
); );
@POST("wms/printEtichettaSSCC") @POST("wms/printEtichettaSSCC")
@@ -38,4 +38,10 @@ public interface PrinterRESTConsumerService {
@Body MtbColt mtbColtToPrint @Body MtbColt mtbColtToPrint
); );
@POST("wms/printClosedOrders")
Call<ServiceRESTResponse<Object>> printClosedOrders(
@Query("codMdep") String codMdep,
@Body PrintOrderCloseDTO printOrderCloseDTO
);
} }

View File

@@ -0,0 +1,112 @@
package it.integry.integrywmsnative.core.rest.consumers;
import com.annimon.stream.Stream;
import com.google.gson.JsonObject;
import java.util.List;
import javax.inject.Singleton;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.gest.prod_linee_produzione.dto.ProdLineStatusDTO;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@Singleton
public class ProductionLinesRESTConsumer extends _BaseRESTConsumer {
public void avviaLineaDiProduzione(String codJfas, Integer hrNum, Runnable onComplete, RunnableArgs<Exception> onFailed) {
ProductionLinesRESTConsumerService restService = RESTBuilder.getService(ProductionLinesRESTConsumerService.class);
Call<ServiceRESTResponse<JsonObject>> callable = restService.avviaLineaDiProduzione(codJfas, hrNum);
callable.enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<JsonObject>> call, Response<ServiceRESTResponse<JsonObject>> response) {
analyzeAnswer(response, "avviaLineaDiProduzione", data -> {
onComplete.run();
}, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<JsonObject>> call, Throwable t) {
onFailed.run(new Exception(t));
}
});
}
public void arrestaLineaDiProduzione(String codJfas, Runnable onComplete, RunnableArgs<Exception> onFailed) {
ProductionLinesRESTConsumerService restService = RESTBuilder.getService(ProductionLinesRESTConsumerService.class);
Call<ServiceRESTResponse<JsonObject>> callable = restService.arrestaLineaDiProduzione(codJfas);
callable.enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<JsonObject>> call, Response<ServiceRESTResponse<JsonObject>> response) {
analyzeAnswer(response, "arrestaLineaDiProduzione", data -> {
onComplete.run();
}, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<JsonObject>> call, Throwable t) {
onFailed.run(new Exception(t));
}
});
}
public void avviaProduzioneArticoloSuLinea(String codJfas, String codMart, String partitaMag, Runnable onComplete, RunnableArgs<Exception> onFailed) {
ProductionLinesRESTConsumerService restService = RESTBuilder.getService(ProductionLinesRESTConsumerService.class, 300);
Call<ServiceRESTResponse<JsonObject>> callable = restService.avviaProduzioneArticoloSuLinea(codJfas, codMart, partitaMag);
callable.enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<JsonObject>> call, Response<ServiceRESTResponse<JsonObject>> response) {
analyzeAnswer(response, "avviaProduzioneArticoloSuLinea", data -> {
onComplete.run();
}, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<JsonObject>> call, Throwable t) {
onFailed.run(new Exception(t));
}
});
}
public void getStatoLinee(String codMdep, RunnableArgs<List<ProdLineStatusDTO>> onComplete, RunnableArgs<Exception> onFailed) {
ProductionLinesRESTConsumerService restService = RESTBuilder.getService(ProductionLinesRESTConsumerService.class);
Call<ServiceRESTResponse<List<ProdLineStatusDTO>>> callable = restService.getStatoLinee(codMdep);
callable.enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<List<ProdLineStatusDTO>>> call, Response<ServiceRESTResponse<List<ProdLineStatusDTO>>> response) {
analyzeAnswer(response, "getStatoLinee", onComplete::run, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<List<ProdLineStatusDTO>>> call, Throwable t) {
onFailed.run(new Exception(t));
}
});
}
public void getLineDetails(ProdLineStatusDTO lineaProd, RunnableArgs<ProdLineStatusDTO> onComplete, RunnableArgs<Exception> onFailed) {
ProductionLinesRESTConsumerService restService = RESTBuilder.getService(ProductionLinesRESTConsumerService.class);
Call<ServiceRESTResponse<List<ProdLineStatusDTO>>> callable = restService.getStatoLinee(lineaProd.getCodMdepLav());
callable.enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<List<ProdLineStatusDTO>>> call, Response<ServiceRESTResponse<List<ProdLineStatusDTO>>> response) {
analyzeAnswer(response, "getLineDetails", (lines) -> {
ProdLineStatusDTO newLine = Stream.of(lines).filter(dto -> dto.getCodJfas().equalsIgnoreCase(lineaProd.getCodJfas())).findFirstOrElse(null);
onComplete.run(newLine);
}, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<List<ProdLineStatusDTO>>> call, Throwable t) {
onFailed.run(new Exception(t));
}
});
}
}

View File

@@ -0,0 +1,27 @@
package it.integry.integrywmsnative.core.rest.consumers;
import com.google.gson.JsonObject;
import java.util.List;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.gest.prod_linee_produzione.dto.ProdLineStatusDTO;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
public interface ProductionLinesRESTConsumerService {
@POST("mes_v2/avviaLineaDiProduzione")
Call<ServiceRESTResponse<JsonObject>> avviaLineaDiProduzione(@Query("codJfas") String codJfas, @Query("hrNum") Integer hrNum);
@POST("mes_v2/arrestaLineaDiProduzione")
Call<ServiceRESTResponse<JsonObject>> arrestaLineaDiProduzione(@Query("codJfas") String codJfas);
@POST("mes_v2/avviaProduzioneArticoloSuLinea")
Call<ServiceRESTResponse<JsonObject>> avviaProduzioneArticoloSuLinea(@Query("codJfas") String codJfas, @Query("codMart") String codMart, @Query("partitaMag") String partitaMag);
@GET("mes_v2/statoLineeProd")
Call<ServiceRESTResponse<List<ProdLineStatusDTO>>> getStatoLinee(@Query("codMdep") String codMdep);
}

View File

@@ -15,6 +15,7 @@ import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.Reader; import java.io.Reader;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.net.ConnectException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@@ -23,6 +24,7 @@ import javax.inject.Singleton;
import it.integry.integrywmsnative.BuildConfig; import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.core.CommonConst; import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.exception.InvalidConnectionException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.Azienda; import it.integry.integrywmsnative.core.model.Azienda;
import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.RESTBuilder;
@@ -47,37 +49,43 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
nativeSqlDTO.nativeSql = nativeSql; nativeSqlDTO.nativeSql = nativeSql;
SystemRESTConsumerService service = RESTBuilder.getService(SystemRESTConsumerService.class); SystemRESTConsumerService service = RESTBuilder.getService(SystemRESTConsumerService.class);
service.processSql(nativeSqlDTO).enqueue(new Callback<>() { service
@Override .processSql(nativeSqlDTO)
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) { .enqueue(new Callback<>() {
analyzeAnswer(response, "ProcessSql", o -> { @Override
Gson gson = new GsonBuilder() public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
.registerTypeAdapter(Date.class, (JsonDeserializer) (json, typeOfT, context) -> { analyzeAnswer(response, "ProcessSql", o -> {
try { Gson gson = new GsonBuilder()
return UtilityDate.recognizeDate(json.getAsString()); .registerTypeAdapter(Date.class, (JsonDeserializer<?>) (json, typeOfT, context) -> {
} catch (Exception e) { try {
throw new JsonParseException(e); return UtilityDate.recognizeDate(json.getAsString());
} } catch (Exception e) {
}) throw new JsonParseException(e);
.create(); }
})
.create();
String json = gson.toJson(o); String json = gson.toJson(o);
InputStream ims = new ByteArrayInputStream(json.getBytes()); InputStream ims = new ByteArrayInputStream(json.getBytes());
Reader reader = new InputStreamReader(ims); Reader reader = new InputStreamReader(ims);
T gsonObj = gson.fromJson(reader, clazz); T gsonObj = gson.fromJson(reader, clazz);
onComplete.run(gsonObj); onComplete.run(gsonObj);
}, onFailed); }, onFailed);
} }
@Override @Override
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
Logger.e(t, "ProcessSQL"); Logger.e(t, "ProcessSQL");
onFailed.run(new Exception(t));
} if (t instanceof ConnectException)
}); onFailed.run(new InvalidConnectionException(RESTBuilder.getDefaultHost(), RESTBuilder.getDefaultPort(), t));
else
onFailed.run(new Exception(t));
}
});
} }
@@ -107,7 +115,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
public void onFailure(Call<ServiceRESTResponse<List<String>>> call, final Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<String>>> call, final Throwable t) {
Log.e("ProfilesAvailable", t.toString()); Log.e("ProfilesAvailable", t.toString());
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
} }
}); });

View File

@@ -13,7 +13,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
import retrofit2.Response; import retrofit2.Response;
public class _BaseRESTConsumer { public abstract class _BaseRESTConsumer {
public static <T> void analyzeAnswer(Response<ServiceRESTResponse<T>> response, String logTitle, RunnableArgs<T> onComplete, RunnableArgs<Exception> onFailed) { public static <T> void analyzeAnswer(Response<ServiceRESTResponse<T>> response, String logTitle, RunnableArgs<T> onComplete, RunnableArgs<Exception> onFailed) {
if (response.isSuccessful()) { if (response.isSuccessful()) {
@@ -31,7 +31,6 @@ public class _BaseRESTConsumer {
} }
} else { } else {
Log.e(logTitle, response.body().getErrorMessage()); Log.e(logTitle, response.body().getErrorMessage());
// callback.onFailed(new Exception(response.body().getErrorMessage()));
onFailed.run(CommonRESTException.tryRecognizeException(response.body().getErrorMessage())); onFailed.run(CommonRESTException.tryRecognizeException(response.body().getErrorMessage()));
} }
} else { } else {
@@ -67,7 +66,7 @@ public class _BaseRESTConsumer {
} }
} else { } else {
Log.e(logTitle, response.body().getErrorMessage()); Log.e(logTitle, response.body().getErrorMessage());
onFailed.run(new Exception(response.body().getErrorMessage())); onFailed.run(CommonRESTException.tryRecognizeException(response.body().getErrorMessage()));
} }
} else { } else {
Log.e(logTitle, response.message()); Log.e(logTitle, response.message());
@@ -77,7 +76,9 @@ public class _BaseRESTConsumer {
if (response.code() == 404) { if (response.code() == 404) {
Log.e(logTitle, "Errore " + response.code() + ": risorsa non trovata"); Log.e(logTitle, "Errore " + response.code() + ": risorsa non trovata");
onFailed.run(new Exception("Errore " + response.code() + ": risorsa non trovata (" + logTitle + ")")); onFailed.run(new Exception("Errore " + response.code() + ": risorsa non trovata (" + logTitle + ")"));
} else { } else if (response.code() == 550)
onFailed.run(new NotValidLicenseException());
else {
Log.e(logTitle, "Status " + response.code() + ": " + response.message()); Log.e(logTitle, "Status " + response.code() + ": " + response.message());
onFailed.run(new Exception("Status " + response.code() + ": " + response.message())); onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
} }
@@ -114,7 +115,9 @@ public class _BaseRESTConsumer {
if (responseList.code() == 404) { if (responseList.code() == 404) {
Log.e(logTitle, "Errore " + responseList.code() + ": risorsa non trovata"); Log.e(logTitle, "Errore " + responseList.code() + ": risorsa non trovata");
onFailed.run(new Exception("Errore " + responseList.code() + ": risorsa non trovata (" + logTitle + ")")); onFailed.run(new Exception("Errore " + responseList.code() + ": risorsa non trovata (" + logTitle + ")"));
} else { } else if (responseList.code() == 550)
onFailed.run(new NotValidLicenseException());
else {
Log.e(logTitle, "Status " + responseList.code() + ": " + responseList.message()); Log.e(logTitle, "Status " + responseList.code() + ": " + responseList.message());
onFailed.run(new Exception("Status " + responseList.code() + ": " + responseList.message())); onFailed.run(new Exception("Status " + responseList.code() + ": " + responseList.message()));
} }

View File

@@ -0,0 +1,182 @@
package it.integry.integrywmsnative.core.rest.model;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import it.integry.integrywmsnative.core.model.MtbColt;
public class LoadColliDTO {
private String gestione;
private String codDtip;
private String codAnag;
private String codVdes;
private Date dataDoc;
private String serDoc;
private Integer numDoc;
private String codMdep;
private String calcPrz;
private boolean datiOrd;
private Date dataOrd;
private Integer numOrd;
private String flagEvasoForzato;
private Date dataVers;
private String note;
private boolean saveDoc = true;
private List<MtbColt> colli = new ArrayList<>();
public String getGestione() {
return gestione;
}
public LoadColliDTO setGestione(String gestione) {
this.gestione = gestione;
return this;
}
public String getCodDtip() {
return codDtip;
}
public LoadColliDTO setCodDtip(String codDtip) {
this.codDtip = codDtip;
return this;
}
public String getCodAnag() {
return codAnag;
}
public LoadColliDTO setCodAnag(String codAnag) {
this.codAnag = codAnag;
return this;
}
public String getCodVdes() {
return codVdes;
}
public LoadColliDTO setCodVdes(String codVdes) {
this.codVdes = codVdes;
return this;
}
public Date getDataDoc() {
return dataDoc;
}
public LoadColliDTO setDataDoc(Date dataDoc) {
this.dataDoc = dataDoc;
return this;
}
public String getSerDoc() {
return serDoc;
}
public LoadColliDTO setSerDoc(String serDoc) {
this.serDoc = serDoc;
return this;
}
public Integer getNumDoc() {
return numDoc;
}
public LoadColliDTO setNumDoc(Integer numDoc) {
this.numDoc = numDoc;
return this;
}
public String getCodMdep() {
return codMdep;
}
public LoadColliDTO setCodMdep(String codMdep) {
this.codMdep = codMdep;
return this;
}
public String getCalcPrz() {
return calcPrz;
}
public LoadColliDTO setCalcPrz(String calcPrz) {
this.calcPrz = calcPrz;
return this;
}
public boolean isDatiOrd() {
return datiOrd;
}
public LoadColliDTO setDatiOrd(boolean datiOrd) {
this.datiOrd = datiOrd;
return this;
}
public Date getDataOrd() {
return dataOrd;
}
public LoadColliDTO setDataOrd(Date dataOrd) {
this.dataOrd = dataOrd;
return this;
}
public Integer getNumOrd() {
return numOrd;
}
public LoadColliDTO setNumOrd(Integer numOrd) {
this.numOrd = numOrd;
return this;
}
public String getFlagEvasoForzato() {
return flagEvasoForzato;
}
public LoadColliDTO setFlagEvasoForzato(String flagEvasoForzato) {
this.flagEvasoForzato = flagEvasoForzato;
return this;
}
public Date getDataVers() {
return dataVers;
}
public LoadColliDTO setDataVers(Date dataVers) {
this.dataVers = dataVers;
return this;
}
public String getNote() {
return note;
}
public LoadColliDTO setNote(String note) {
this.note = note;
return this;
}
public boolean isSaveDoc() {
return saveDoc;
}
public LoadColliDTO setSaveDoc(boolean saveDoc) {
this.saveDoc = saveDoc;
return this;
}
public List<MtbColt> getColli() {
return colli;
}
public LoadColliDTO setColli(List<MtbColt> colli) {
this.colli = colli;
return this;
}
}

View File

@@ -45,6 +45,8 @@ public class OrdineUscitaInevasoDTO extends OrdineInevasoDTO {
private String nomeAgente; private String nomeAgente;
private String codJfas; private String codJfas;
private List<AvailableClassMerc> availableClassMerc; private List<AvailableClassMerc> availableClassMerc;
private boolean ordTrasf;
public Integer getIdViaggio() { public Integer getIdViaggio() {
return idViaggio; return idViaggio;
@@ -56,7 +58,6 @@ public class OrdineUscitaInevasoDTO extends OrdineInevasoDTO {
} }
public String getListino() { public String getListino() {
return listino; return listino;
} }
@@ -371,6 +372,14 @@ public class OrdineUscitaInevasoDTO extends OrdineInevasoDTO {
return this; return this;
} }
public boolean isOrdTrasf() {
return ordTrasf;
}
public OrdineUscitaInevasoDTO setOrdTrasf(boolean ordTrasf) {
this.ordTrasf = ordTrasf;
return this;
}
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {

View File

@@ -0,0 +1,51 @@
package it.integry.integrywmsnative.core.rest.model;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.core.report.ReportType;
public class ReportTypeDTO {
private ReportType reportType;
private String codAnag;
private String codMdep;
private List<JasperPairDTO> params = new ArrayList<>();
public List<JasperPairDTO> getParams() {
return params;
}
public ReportTypeDTO setParams(List<JasperPairDTO> params) {
this.params = params;
return this;
}
public ReportType getReportType() {
return reportType;
}
public ReportTypeDTO setReportType(ReportType reportType) {
this.reportType = reportType;
return this;
}
public String getCodAnag() {
return codAnag;
}
public ReportTypeDTO setCodAnag(String codAnag) {
this.codAnag = codAnag;
return this;
}
public String getCodMdep() {
return codMdep;
}
public ReportTypeDTO setCodMdep(String codMdep) {
this.codMdep = codMdep;
return this;
}
}

View File

@@ -26,6 +26,8 @@ public class SitArtOrdDTO {
private String descrizioneMsgr; private String descrizioneMsgr;
private String codMsfa; private String codMsfa;
private String descrizioneMsfa; private String descrizioneMsfa;
private String untord;
private BigDecimal qtaOmg;
private final HashMap<String, Object> extraInfo = new HashMap<>(); private final HashMap<String, Object> extraInfo = new HashMap<>();
@@ -212,4 +214,22 @@ public class SitArtOrdDTO {
public HashMap<String, Object> getExtraInfo() { public HashMap<String, Object> getExtraInfo() {
return extraInfo; return extraInfo;
} }
public String getUntord() {
return untord;
}
public SitArtOrdDTO setUntord(String untord) {
this.untord = untord;
return this;
}
public BigDecimal getQtaOmg() {
return qtaOmg;
}
public SitArtOrdDTO setQtaOmg(BigDecimal qtaOmg) {
this.qtaOmg = qtaOmg;
return this;
}
} }

View File

@@ -42,10 +42,16 @@ public class DBSettingsModel {
private boolean flagOrdinaArticoliOnScan; private boolean flagOrdinaArticoliOnScan;
private String docInterniCheckFornitore; private String docInterniCheckFornitore;
private String produzioneDefaultCodAnag; private String produzioneDefaultCodAnag;
private String reportNameSpedizionChiudiOrdine; private boolean flagPrintPackingListOnOrderClose;
private boolean flagPrintEtichetteOnOrderClose;
private int onNumCnfInputChanged = 1; private int onNumCnfInputChanged = 1;
private int onQtaTotInputChanged = 1;
private boolean flagAccettazioneUseQtaOrd = false; private boolean flagAccettazioneUseQtaOrd = false;
private boolean flagPickLiberoAllowEmptyDest = false; private boolean flagPickLiberoAllowEmptyDest = false;
private boolean flagAskInfoAggiuntiveSpedizione = false;
private String filterFornitoreProd;
private String codDtipOrdTrasfV;
private boolean notifyLotStatus = false;
public boolean isFlagSpedizioneEnableFakeGiacenza() { public boolean isFlagSpedizioneEnableFakeGiacenza() {
return flagSpedizioneEnableFakeGiacenza; return flagSpedizioneEnableFakeGiacenza;
@@ -281,12 +287,21 @@ public class DBSettingsModel {
return this; return this;
} }
public String getReportNameSpedizionChiudiOrdine() { public boolean isFlagPrintPackingListOnOrderClose() {
return reportNameSpedizionChiudiOrdine; return flagPrintPackingListOnOrderClose;
} }
public DBSettingsModel setReportNameSpedizionChiudiOrdine(String reportNameSpedizionChiudiOrdine) { public DBSettingsModel setFlagPrintPackingListOnOrderClose(boolean flagPrintPackingListOnOrderClose) {
this.reportNameSpedizionChiudiOrdine = reportNameSpedizionChiudiOrdine; this.flagPrintPackingListOnOrderClose = flagPrintPackingListOnOrderClose;
return this;
}
public boolean isFlagPrintEtichetteOnOrderClose() {
return flagPrintEtichetteOnOrderClose;
}
public DBSettingsModel setFlagPrintEtichetteOnOrderClose(boolean flagPrintEtichetteOnOrderClose) {
this.flagPrintEtichetteOnOrderClose = flagPrintEtichetteOnOrderClose;
return this; return this;
} }
@@ -299,6 +314,15 @@ public class DBSettingsModel {
return this; return this;
} }
public int getOnQtaTotInputChanged() {
return onQtaTotInputChanged;
}
public DBSettingsModel setOnQtaTotInputChanged(int onQtaTotInputChanged) {
this.onQtaTotInputChanged = onQtaTotInputChanged;
return this;
}
public List<String> getNotePerditaDocInterni() { public List<String> getNotePerditaDocInterni() {
return notePerditaDocInterni; return notePerditaDocInterni;
} }
@@ -336,7 +360,7 @@ public class DBSettingsModel {
} }
public boolean getFlagOrdinaArticoliOnScan() { public boolean isFlagOrdinaArticoliOnScan() {
return flagOrdinaArticoliOnScan; return flagOrdinaArticoliOnScan;
} }
@@ -344,4 +368,40 @@ public class DBSettingsModel {
this.flagOrdinaArticoliOnScan = flagOrdinaArticoliOnScan; this.flagOrdinaArticoliOnScan = flagOrdinaArticoliOnScan;
return this; return this;
} }
public boolean isFlagAskInfoAggiuntiveSpedizione() {
return flagAskInfoAggiuntiveSpedizione;
}
public DBSettingsModel setFlagAskInfoAggiuntiveSpedizione(boolean flagAskInfoAggiuntiveSpedizione) {
this.flagAskInfoAggiuntiveSpedizione = flagAskInfoAggiuntiveSpedizione;
return this;
}
public String getFilterFornitoreProd() {
return filterFornitoreProd;
}
public DBSettingsModel setFilterFornitoreProd(String filterFornitoreProd) {
this.filterFornitoreProd = filterFornitoreProd;
return this;
}
public String getCodDtipOrdTrasfV() {
return codDtipOrdTrasfV;
}
public DBSettingsModel setCodDtipOrdTrasfV(String codDtipOrdTrasfV) {
this.codDtipOrdTrasfV = codDtipOrdTrasfV;
return this;
}
public boolean isNotifyLotStatus() {
return notifyLotStatus;
}
public DBSettingsModel setNotifyLotStatus(boolean notifyLotStatus) {
this.notifyLotStatus = notifyLotStatus;
return this;
}
} }

View File

@@ -258,6 +258,10 @@ public class SettingsManager {
.setGestName("PICKING") .setGestName("PICKING")
.setSection("PRODUZIONE") .setSection("PRODUZIONE")
.setKeySection("FLAG_VERSAMENTO_DIRETTO")); .setKeySection("FLAG_VERSAMENTO_DIRETTO"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("PRODUZIONE")
.setKeySection("FILTER_FORNTIORE_PROD"));
stbGestSetupList.add(new StbGestSetup() stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING") .setGestName("PICKING")
.setSection("SPEDIZIONE") .setSection("SPEDIZIONE")
@@ -270,10 +274,6 @@ public class SettingsManager {
.setGestName("PICKING") .setGestName("PICKING")
.setSection("SPEDIZIONE") .setSection("SPEDIZIONE")
.setKeySection("FLAG_CAN_SELECT_MULTIPLE_ORDERS")); .setKeySection("FLAG_CAN_SELECT_MULTIPLE_ORDERS"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("REPORT_PACKING_LIST"));
stbGestSetupList.add(new StbGestSetup() stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING") .setGestName("PICKING")
.setSection("SPEDIZIONE") .setSection("SPEDIZIONE")
@@ -282,6 +282,10 @@ public class SettingsManager {
.setGestName("PICKING") .setGestName("PICKING")
.setSection("SETUP") .setSection("SETUP")
.setKeySection("ON_NUM_CNF_INPUT_CHANGED")); .setKeySection("ON_NUM_CNF_INPUT_CHANGED"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SETUP")
.setKeySection("ON_QTA_TOT_INPUT_CHANGED"));
stbGestSetupList.add(new StbGestSetup() stbGestSetupList.add(new StbGestSetup()
.setGestName("PVM") .setGestName("PVM")
.setSection("DOC_INTERNI") .setSection("DOC_INTERNI")
@@ -306,9 +310,33 @@ public class SettingsManager {
.setGestName("PICKING") .setGestName("PICKING")
.setSection("PICKING_LIBERO") .setSection("PICKING_LIBERO")
.setKeySection("FLAG_ALLOW_EMPTY_DEST")); .setKeySection("FLAG_ALLOW_EMPTY_DEST"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_PRINT_PACKING_LIST_ON_CLOSE"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_PRINT_ETICHETTE_ON_CLOSE"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_ALLOW_EMPTY_DEST"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_ASK_INFO_AGGIUNTIVE"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("COD_DTIP_ORD_TRASF"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_NOTIFICA_STATO_PARTITA"));
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
GestSetupRESTConsumer.getValues(codMdep, stbGestSetupList, list -> {
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
dbSettingsModelIstance.setDefaultCausaleRettificaGiacenze(getValueFromList(list, "SETUP", "DEFAULT_CAUSALE_RETTIFICA_GIACENZE", String.class)); dbSettingsModelIstance.setDefaultCausaleRettificaGiacenze(getValueFromList(list, "SETUP", "DEFAULT_CAUSALE_RETTIFICA_GIACENZE", String.class));
dbSettingsModelIstance.setEnableCheckPartitaMagCheckPickingV(getValueFromList(list, "SETUP", "ENABLE_CHECK_PARTITA_MAG_PICKING_V", Boolean.class)); dbSettingsModelIstance.setEnableCheckPartitaMagCheckPickingV(getValueFromList(list, "SETUP", "ENABLE_CHECK_PARTITA_MAG_PICKING_V", Boolean.class));
dbSettingsModelIstance.setFlagMultiClienteOrdV(getValueFromList(list, "SETUP", "FLAG_MULTI_CLIENTE_ORD_VENDITA", Boolean.class)); dbSettingsModelIstance.setFlagMultiClienteOrdV(getValueFromList(list, "SETUP", "FLAG_MULTI_CLIENTE_ORD_VENDITA", Boolean.class));
@@ -327,23 +355,30 @@ public class SettingsManager {
dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class)); dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class));
dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class)); dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class)); dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class));
dbSettingsModelIstance.setReportNameSpedizionChiudiOrdine(getValueFromList(list, "SPEDIZIONE", "REPORT_PACKING_LIST", String.class));
dbSettingsModelIstance.setFlagSpedizioneUseQtaOrd(getValueFromList(list, "SPEDIZIONE", "FLAG_USE_QTA_ORD", Boolean.class)); dbSettingsModelIstance.setFlagSpedizioneUseQtaOrd(getValueFromList(list, "SPEDIZIONE", "FLAG_USE_QTA_ORD", Boolean.class));
dbSettingsModelIstance.setFlagOrdinaNuoviArticoliInGriglia(getValueFromList(list, "ORDINI_A", "ORDINA_NUOVI_ARTICOLI", Boolean.class)); dbSettingsModelIstance.setFlagOrdinaNuoviArticoliInGriglia(getValueFromList(list, "ORDINI_A", "ORDINA_NUOVI_ARTICOLI", Boolean.class));
dbSettingsModelIstance.setDocInterniCheckFornitore(getValueFromList(list, "DOC_INTERNI", "CHECK_FORNITORE", String.class)); dbSettingsModelIstance.setDocInterniCheckFornitore(getValueFromList(list, "DOC_INTERNI", "CHECK_FORNITORE", String.class));
dbSettingsModelIstance.setFlagAccettazioneUseQtaOrd(getValueFromList(list, "ACCETTAZIONE", "FLAG_USE_QTA_ORD", Boolean.class)); dbSettingsModelIstance.setFlagAccettazioneUseQtaOrd(getValueFromList(list, "ACCETTAZIONE", "FLAG_USE_QTA_ORD", Boolean.class));
dbSettingsModelIstance.setFlagPickLiberoAllowEmptyDest(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_DEST", Boolean.class)); dbSettingsModelIstance.setFlagPickLiberoAllowEmptyDest(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_DEST", Boolean.class));
dbSettingsModelIstance.setFlagOrdinaArticoliOnScan(getValueFromList(list, "ORDINI_A", "ORDINA_ARTICOLI_ON_SCAN", Boolean.class)); dbSettingsModelIstance.setFlagOrdinaArticoliOnScan(getValueFromList(list, "ORDINI_A", "ORDINA_ARTICOLI_ON_SCAN", Boolean.class));
dbSettingsModelIstance.setFlagPrintPackingListOnOrderClose(getValueFromList(list, "SPEDIZIONE", "FLAG_PRINT_PACKING_LIST_ON_CLOSE", Boolean.class));
dbSettingsModelIstance.setFlagPrintEtichetteOnOrderClose(getValueFromList(list, "SPEDIZIONE", "FLAG_PRINT_ETICHETTE_ON_CLOSE", Boolean.class));
dbSettingsModelIstance.setFlagAskInfoAggiuntiveSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_ASK_INFO_AGGIUNTIVE", Boolean.class));
dbSettingsModelIstance.setFilterFornitoreProd(getValueFromList(list, "PRODUZIONE", "FILTER_FORNTIORE_PROD", String.class));
dbSettingsModelIstance.setCodDtipOrdTrasfV(getValueFromList(list, "SPEDIZIONE", "COD_DTIP_ORD_TRASF", String.class));
dbSettingsModelIstance.setNotifyLotStatus(getValueFromList(list, "SPEDIZIONE", "FLAG_NOTIFICA_STATO_PARTITA", Boolean.class));
String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class); String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
if (notePerdita != null) { if (notePerdita != null)
dbSettingsModelIstance.setNotePerditaDocInterni(Arrays.asList(notePerdita.split("\\|"))); dbSettingsModelIstance.setNotePerditaDocInterni(Arrays.asList(notePerdita.split("\\|")));
}
Integer onNumCnfInputChanged = getValueFromList(list, "SETUP", "ON_NUM_CNF_INPUT_CHANGED", Integer.class); Integer onNumCnfInputChanged = getValueFromList(list, "SETUP", "ON_NUM_CNF_INPUT_CHANGED", Integer.class);
if (onNumCnfInputChanged != null) { if (onNumCnfInputChanged != null)
dbSettingsModelIstance.setOnNumCnfInputChanged(onNumCnfInputChanged); dbSettingsModelIstance.setOnNumCnfInputChanged(onNumCnfInputChanged);
}
Integer onQtaTotInputChanged = getValueFromList(list, "SETUP", "ON_QTA_TOT_INPUT_CHANGED", Integer.class);
if (onQtaTotInputChanged != null)
dbSettingsModelIstance.setOnQtaTotInputChanged(onQtaTotInputChanged);
if (onComplete != null) onComplete.run(); if (onComplete != null) onComplete.run();
}, onFailed); }, onFailed);
@@ -355,7 +390,7 @@ public class SettingsManager {
StbGestSetup value = Stream.of(stbGestSetupList) StbGestSetup value = Stream.of(stbGestSetupList)
.filter(x -> x.getSection().equalsIgnoreCase(section) && x.getKeySection().equalsIgnoreCase(keySectionName)) .filter(x -> x.getSection().equalsIgnoreCase(section) && x.getKeySection().equalsIgnoreCase(keySectionName))
.findFirst().get(); .findFirstOrElse(new StbGestSetup());
if (clazz == String.class) { if (clazz == String.class) {
return clazz.cast(value.getValue()); return clazz.cast(value.getValue());

View File

@@ -61,8 +61,8 @@ public class UpdatesManager {
String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/"; String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/";
var progressDialog = DialogProgressView.newInstance("Download", null, false); var progressDialogBuilder = new DialogProgressView("Download", null, false);
progressDialog.show(mContext.getSupportFragmentManager(), "tag"); progressDialogBuilder.show(mContext.getSupportFragmentManager(), "tag");
var fileDownloader = new FileDownloader() var fileDownloader = new FileDownloader()
@@ -70,13 +70,13 @@ public class UpdatesManager {
.setUrlString(downloadURL) .setUrlString(downloadURL)
.setOnProgressUpdate(progress -> { .setOnProgressUpdate(progress -> {
mContext.runOnUiThread(() -> { mContext.runOnUiThread(() -> {
progressDialog.setProgress(progress); progressDialogBuilder.setProgress(progress);
}); });
}) })
.setOnDownloadCompleted(destPath -> { .setOnDownloadCompleted(destPath -> {
mContext.runOnUiThread(() -> { mContext.runOnUiThread(() -> {
progressDialog.dismiss(); progressDialogBuilder.dismiss();
Uri fileLoc; Uri fileLoc;
Intent intent; Intent intent;

View File

@@ -3,16 +3,15 @@ package it.integry.integrywmsnative.core.utility;
import android.Manifest; import android.Manifest;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.Build; import android.os.Build;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import it.integry.integrywmsnative.SplashActivity; import it.integry.integrywmsnative.SplashActivity;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@@ -31,6 +30,11 @@ public class PermissionsHelper {
if(Build.VERSION.SDK_INT >= 23) { if(Build.VERSION.SDK_INT >= 23) {
//permissionsToAsk.add(Manifest.permission.REQUEST_INSTALL_PACKAGES); //permissionsToAsk.add(Manifest.permission.REQUEST_INSTALL_PACKAGES);
} }
if(Build.VERSION.SDK_INT >= 31) {
permissionsToAsk.add(Manifest.permission.BLUETOOTH_CONNECT);
}
String[] permissionArray = new String[permissionsToAsk.size()]; String[] permissionArray = new String[permissionsToAsk.size()];
permissionsToAsk.toArray(permissionArray); permissionsToAsk.toArray(permissionArray);

View File

@@ -13,10 +13,10 @@ public class UtilityBarcode {
public static boolean isBarcodeOrdineV(BarcodeScanDTO barcodeScanDTO) { public static boolean isBarcodeOrdineV(BarcodeScanDTO barcodeScanDTO) {
return (isEan13(barcodeScanDTO) || isEtichetta128(barcodeScanDTO)) && barcodeScanDTO.getStringValue().startsWith("3"); return (isEan13(barcodeScanDTO) || isEtichetta128(barcodeScanDTO)) && barcodeScanDTO.getStringValue().startsWith("3");
} }
public static boolean isEtichettaAnonima(BarcodeScanDTO barcodeScanDTO){ public static boolean isEtichettaAnonima(BarcodeScanDTO barcodeScanDTO) {
return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.CODE128 && barcodeScanDTO.getStringValue().startsWith("U"); return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.CODE128 && barcodeScanDTO.getStringValue().startsWith("U");
} }
@@ -28,10 +28,14 @@ public class UtilityBarcode {
return fullYear.equalsIgnoreCase("" + currentYear); return fullYear.equalsIgnoreCase("" + currentYear);
} }
public static boolean isEtichetta128(BarcodeScanDTO barcodeScanDTO){ public static boolean isEtichetta128(BarcodeScanDTO barcodeScanDTO) {
return barcodeScanDTO != null && (barcodeScanDTO.getType() == BarcodeType.CODE128 || barcodeScanDTO.getType() == BarcodeType.EAN128); return barcodeScanDTO != null && (barcodeScanDTO.getType() == BarcodeType.CODE128 || barcodeScanDTO.getType() == BarcodeType.EAN128);
} }
public static boolean isEan128(BarcodeScanDTO barcodeScanDTO) {
return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.EAN128;
}
public static boolean isEtichettaPosizione(BarcodeScanDTO barcodeScanDTO) { public static boolean isEtichettaPosizione(BarcodeScanDTO barcodeScanDTO) {
return isEtichettaPosizione(barcodeScanDTO, true); return isEtichettaPosizione(barcodeScanDTO, true);
} }
@@ -42,12 +46,12 @@ public class UtilityBarcode {
String barcode = barcodeScanDTO.getStringValue(); String barcode = barcodeScanDTO.getStringValue();
boolean isPosizione = false; boolean isPosizione = false;
if(SettingsManager.iDB().getAvailablePosizioni() != null) { if (SettingsManager.iDB().getAvailablePosizioni() != null) {
Stream<MtbDepoPosizione> tmpStream = Stream.of(SettingsManager.iDB().getAvailablePosizioni()) Stream<MtbDepoPosizione> tmpStream = Stream.of(SettingsManager.iDB().getAvailablePosizioni())
.filter(x -> x.getPosizione().equalsIgnoreCase(barcode) && (!enableCheckCodMdep || currentCodMdep.equalsIgnoreCase(x.getCodMdep()))); .filter(x -> x.getPosizione().equalsIgnoreCase(barcode) && (!enableCheckCodMdep || currentCodMdep.equalsIgnoreCase(x.getCodMdep())));
if(tmpStream.count() > 0){ if (tmpStream.count() > 0) {
isPosizione = true; isPosizione = true;
} }
} }
@@ -59,7 +63,6 @@ public class UtilityBarcode {
} }
public static boolean isEanPeso(BarcodeScanDTO barcodeScanDTO) { public static boolean isEanPeso(BarcodeScanDTO barcodeScanDTO) {
return (isEtichetta128(barcodeScanDTO) || isEan13(barcodeScanDTO)) && barcodeScanDTO.getStringValue().startsWith("2"); return (isEtichetta128(barcodeScanDTO) || isEan13(barcodeScanDTO)) && barcodeScanDTO.getStringValue().startsWith("2");
} }
@@ -81,31 +84,31 @@ public class UtilityBarcode {
} }
public static Integer getNumColloFromULAnonima(String barcode) throws Exception {
public static Integer getNumColloFromULAnonima(String barcode) { if (!UtilityString.isNullOrEmpty(barcode)) {
if(!UtilityString.isNullOrEmpty(barcode)) {
barcode = barcode.trim(); barcode = barcode.trim();
try {
return Integer.parseInt(barcode.substring(3)); return Integer.parseInt(barcode.substring(3, 10));
} catch (NumberFormatException nfex) {
throw new Exception("Impossibile leggere il numero collo dal barcode: " + barcode);
}
} else } else
return null; return null;
} }
public static Integer getAnnoColloFromULAnonima(String barcode) { public static Integer getAnnoColloFromULAnonima(String barcode) {
if(barcode != null){ if (barcode != null) {
return Integer.parseInt(barcode.substring(1, 3)); return Integer.parseInt(barcode.substring(1, 3));
} else } else
return null; return null;
} }
public static String convertITF14toEAN13(String barcodeITF14) { public static String convertITF14toEAN13(String barcodeITF14) {
String barcodeEAN13 = null; String barcodeEAN13 = null;
if(barcodeITF14.length() == 14) { if (barcodeITF14.length() == 14) {
barcodeEAN13 = barcodeITF14.substring(1, barcodeITF14.length() - 1).trim(); barcodeEAN13 = barcodeITF14.substring(1, barcodeITF14.length() - 1).trim();
barcodeEAN13 += getEAN13CheckDigit(barcodeEAN13); barcodeEAN13 += getEAN13CheckDigit(barcodeEAN13);
} }
@@ -116,7 +119,7 @@ public class UtilityBarcode {
public static String convertITF14toNeutral(String barcodeITF14) { public static String convertITF14toNeutral(String barcodeITF14) {
String barcodeNeutral = null; String barcodeNeutral = null;
if(barcodeITF14.length() == 14) { if (barcodeITF14.length() == 14) {
barcodeNeutral = barcodeITF14.substring(1, barcodeITF14.length() - 1); barcodeNeutral = barcodeITF14.substring(1, barcodeITF14.length() - 1);
} }
@@ -124,10 +127,10 @@ public class UtilityBarcode {
} }
private static String getEAN13CheckDigit(String ean) { private static String getEAN13CheckDigit(String ean) {
if (ean.length() != 12) { if (ean.length() != 12) {
UtilityLogger.errorMe(new Exception("Please provide an input string of 12 chars. Current lenght: "+ean.length())); UtilityLogger.error(new Exception("Please provide an input string of 12 chars. Current lenght: " + ean.length()));
return null; return null;
} }
long tot = 0; long tot = 0;
@@ -135,7 +138,7 @@ public class UtilityBarcode {
for (int i = 0; i < 12; i++) { for (int i = 0; i < 12; i++) {
tot = tot + (Long.parseLong(String.valueOf(ean.charAt(i))) * (i % 2 == 0 ? 1 : 3)); tot = tot + (Long.parseLong(String.valueOf(ean.charAt(i))) * (i % 2 == 0 ? 1 : 3));
} }
return tot % 10 == 0 ? "0" : "" + ( 10 - ( tot % 10)); return tot % 10 == 0 ? "0" : "" + (10 - (tot % 10));
} }
} }

View File

@@ -37,7 +37,7 @@ public class UtilityDate {
try{ try{
return UtilityDate.recognizeDate(dateString); return UtilityDate.recognizeDate(dateString);
} catch (ParseException | DateNotRecognizedException | TimeNotRecognizedException pex){ } catch (ParseException | DateNotRecognizedException | TimeNotRecognizedException pex){
UtilityLogger.errorMe(pex); UtilityLogger.error(pex);
return null; return null;
} }
} }
@@ -99,7 +99,21 @@ public class UtilityDate {
public static Date getDateInstance() { public static Date getDateInstance() {
return getCalendarInstance().getTime(); return getDateInstance(false);
}
public static Date getDateInstance(boolean removeTime) {
var calendar = getCalendarInstance();
if(removeTime) {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
}
return calendar.getTime();
} }
public static Calendar getCalendarInstance() { public static Calendar getCalendarInstance() {

View File

@@ -11,21 +11,19 @@ import com.google.firebase.crashlytics.FirebaseCrashlytics;
import com.orhanobut.logger.Logger; import com.orhanobut.logger.Logger;
import it.integry.integrywmsnative.BuildConfig; import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.core.exception.InvalidConnectionException;
import it.integry.integrywmsnative.core.exception.InvalidLUException;
import it.integry.integrywmsnative.core.exception.InvalidLUGestioneException;
import it.integry.integrywmsnative.core.rest.CommonRESTException; import it.integry.integrywmsnative.core.rest.CommonRESTException;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class UtilityExceptions { public class UtilityExceptions {
private static final Class<? extends Exception>[] FIREBASE_IGNORED_EXCEPTIONS = new Class[] { private static final Class<?>[] FIREBASE_IGNORED_EXCEPTIONS = new Class[] {
InvalidConnectionException.class,
InvalidLUGestioneException.class,
InvalidLUException.class
}; };
public static void defaultException(Context context, Exception ex, DialogProgressView progressDialog) {
defaultException(context, ex);
if (progressDialog != null && progressDialog.isVisible()) progressDialog.dismiss();
}
public static void defaultException(Context context, Exception ex) { public static void defaultException(Context context, Exception ex) {
defaultException(context, ex, false); defaultException(context, ex, false);
} }
@@ -63,7 +61,7 @@ public class UtilityExceptions {
Stream.of(FIREBASE_IGNORED_EXCEPTIONS).anyMatch(x -> x.isAssignableFrom(ex.getClass())); Stream.of(FIREBASE_IGNORED_EXCEPTIONS).anyMatch(x -> x.isAssignableFrom(ex.getClass()));
if (!BuildConfig.DEBUG && !toIgnore) { if (!BuildConfig.DEBUG && !toIgnore) {
if (sendEmail) UtilityLogger.errorMe(ex); if (sendEmail) UtilityLogger.error(ex);
FirebaseCrashlytics.getInstance().recordException(ex); FirebaseCrashlytics.getInstance().recordException(ex);
} }
} }

View File

@@ -3,48 +3,30 @@ package it.integry.integrywmsnative.core.utility;
import com.google.firebase.crashlytics.FirebaseCrashlytics; import com.google.firebase.crashlytics.FirebaseCrashlytics;
import com.orhanobut.logger.Logger; import com.orhanobut.logger.Logger;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import it.integry.integrywmsnative.BuildConfig; import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.settings.SettingsManager;
public class UtilityLogger { public class UtilityLogger {
public static void logMe(String message) { public static void trace(String message) {
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); Logger.d(message, getPreviousStackTraceElement());
}
String caller = "UtilityLogger"; public static void info(String message) {
Logger.i(message);
for (int i = 0; i < stackTraceElements.length; i++) { }
if (stackTraceElements[i].getMethodName().equalsIgnoreCase("logMe")) {
caller = stackTraceElements[i + 1].getFileName() + "->" + stackTraceElements[i + 1].getMethodName();
}
}
public static void debug(String message) {
Logger.d(message); Logger.d(message);
} }
public static void errorMe(Exception ex) { public static void error(Exception ex) {
errorMe(ex, null, null, null); error(ex, "");
} }
public static void errorMe(Exception ex, String additionalText) { public static void error(Exception ex, String additionalText) {
errorMe(ex, additionalText, null, null); if (!BuildConfig.DEBUG) FirebaseCrashlytics.getInstance().recordException(ex);
}
public static void errorMe(Exception ex, String additionalText, Runnable onComplete, RunnableArgs<Exception> onFailed) { Logger.e(ex, additionalText);
if(!BuildConfig.DEBUG) FirebaseCrashlytics.getInstance().recordException(ex);
logMe(ex.getMessage());
// if ((!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) || // if ((!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) ||
// (!(ex instanceof SocketException) && !(ex.getCause() instanceof SocketException)) || // (!(ex instanceof SocketException) && !(ex.getCause() instanceof SocketException)) ||
@@ -82,4 +64,52 @@ public class UtilityLogger {
// } // }
} }
private static String getPreviousStackTraceElement() {
StackTraceElement[] stackTraceElementsArr = Thread.currentThread().getStackTrace();
String caller = "UtilityLogger";
StringBuilder callerNew = new StringBuilder();
int found = 0;
for (int i = 0; i < stackTraceElementsArr.length; i++) {
if(!stackTraceElementsArr[i].getClassName().startsWith("it.integry"))
continue;
if (stackTraceElementsArr[i].getMethodName().equalsIgnoreCase("getPreviousStackTraceElement")) {
found = i;
}
if (found > 0 && i >= found + 2) {
callerNew
.append(stackTraceElementsArr[i].getClassName())
.append("->")
.append(stackTraceElementsArr[i].getMethodName())
.append(":")
.append(stackTraceElementsArr[i].getLineNumber())
.append("\n");
}
}
return callerNew.length() > 0 ? callerNew.toString() : caller;
}
// public static void logMe(String message) {
// StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
//
// String caller = "UtilityLogger";
//
// for (int i = 0; i < stackTraceElements.length; i++) {
//
// if (stackTraceElements[i].getMethodName().equalsIgnoreCase("logMe")) {
// caller = stackTraceElements[i + 1].getFileName() + "->" + stackTraceElements[i + 1].getMethodName();
// }
//
// }
//
// Logger.d(message);
// }
} }

View File

@@ -35,6 +35,7 @@ public class UtilityNumber {
decimalFormat.setMaximumFractionDigits(decimal); decimalFormat.setMaximumFractionDigits(decimal);
decimalFormat.setDecimalFormatSymbols(otherSymbols); decimalFormat.setDecimalFormatSymbols(otherSymbols);
decimalFormat.setGroupingUsed(false); decimalFormat.setGroupingUsed(false);
decimalFormat.setMinimumFractionDigits(2);
return decimalFormat.format(floatValue); return decimalFormat.format(floatValue);
} }

View File

@@ -7,7 +7,7 @@ import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
public class UtilityProgress { public class UtilityProgress {
public static DialogProgressView createDefaultProgressDialog(FragmentActivity mContext) { public static DialogProgressView createDefaultProgressDialog(FragmentActivity mContext) {
var progress = DialogProgressView.newInstance(); var progress = DialogProgressView.newInstance(null, null, true);
progress.show(mContext.getSupportFragmentManager(), "tag"); progress.show(mContext.getSupportFragmentManager(), "tag");
return progress; return progress;
} }

View File

@@ -55,7 +55,7 @@ public class OrdiniAccettazioneRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) {
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });

View File

@@ -44,7 +44,6 @@ import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbTCol; import it.integry.integrywmsnative.core.model.MtbTCol;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.report.ReportManager; import it.integry.integrywmsnative.core.report.ReportManager;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO; import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
@@ -303,7 +302,8 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
} }
filterLayoutView.show(getSupportFragmentManager(), "TAG"); if (!filterLayoutView.isAdded())
filterLayoutView.show(getSupportFragmentManager(), "TAG");
} }
@Override @Override
@@ -732,7 +732,6 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
Intent myIntent = ListaBancaliActivity.createIntent(this, Intent myIntent = ListaBancaliActivity.createIntent(this,
Stream.of(mtbColts).map(x -> (MtbColt) x).toList(), Stream.of(mtbColts).map(x -> (MtbColt) x).toList(),
input -> ((RecoverMtbColt) input).isFlagCanBeRecovered(), input -> ((RecoverMtbColt) input).isFlagCanBeRecovered(),
PrinterRESTConsumer.Type.SECONDARIA,
ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO)); ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
this.startActivityForResult(myIntent, PICK_UL_REQUEST); this.startActivityForResult(myIntent, PICK_UL_REQUEST);
} }
@@ -799,7 +798,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
if (ex instanceof InvalidPesoKGException) { if (ex instanceof InvalidPesoKGException) {
UtilityToast.showToast(ex.getMessage()); UtilityToast.showToast(ex.getMessage());
} else { } else {
UtilityExceptions.defaultException(this, ex, mCurrentProgress); UtilityExceptions.defaultException(this, ex);
} }
BarcodeManager.enable(); BarcodeManager.enable();
@@ -827,19 +826,20 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
.setCanLUBeClosed(true) .setCanLUBeClosed(true)
.setCanOverflowOrderQuantity(canOverflowQuantity); .setCanOverflowOrderQuantity(canOverflowQuantity);
mDialogInputQuantityV2View if (!mDialogInputQuantityV2View.isVisible())
.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO) mDialogInputQuantityV2View
.setOnComplete((resultDTO, shouldCloseLU) -> { .setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() .setOnComplete((resultDTO, shouldCloseLU) -> {
.setNumCnf(resultDTO.getNumCnf()) PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
.setQtaCnf(resultDTO.getQtaCnf()) .setNumCnf(resultDTO.getNumCnf())
.setQtaTot(resultDTO.getQtaTot()) .setQtaCnf(resultDTO.getQtaCnf())
.setPartitaMag(resultDTO.getPartitaMag()) .setQtaTot(resultDTO.getQtaTot())
.setDataScad(resultDTO.getDataScad()); .setPartitaMag(resultDTO.getPartitaMag())
onComplete.run(pickedQuantityDTO, shouldCloseLU); .setDataScad(resultDTO.getDataScad());
}) onComplete.run(pickedQuantityDTO, shouldCloseLU);
.setOnAbort(() -> this.mViewModel.resetMatchedRows()) })
.show(getSupportFragmentManager(), "tag"); .setOnAbort(() -> this.mViewModel.resetMatchedRows())
.show(getSupportFragmentManager(), "tag");
} }
@Override @Override

View File

@@ -221,10 +221,16 @@ public class AccettazionePickingViewModel {
if (!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcodeScanDTO.getStringValue())) { if (!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcodeScanDTO.getStringValue())) {
this.sendError(new NotCurrentYearLUException()); this.sendError(new NotCurrentYearLUException());
} else { } else {
int numCollo = -1;
this.createNewLU( try {
UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()), numCollo = UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue());
CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, true, onComplete); this.createNewLU(
numCollo,
CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, true, onComplete);
} catch (Exception ex) {
this.sendError(ex);
}
} }
} else { } else {
this.sendError(new AlreadyUsedAnonymousLabelException()); this.sendError(new AlreadyUsedAnonymousLabelException());
@@ -313,17 +319,12 @@ public class AccettazionePickingViewModel {
} }
private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) { private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
if (barcodeProd.length() == 14) {
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
}
String finalBarcodeProd = barcodeProd;
this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
if (mtbAartList != null && mtbAartList.size() > 0) { if (mtbAartList != null && mtbAartList.size() > 0) {
this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete); this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete);
} else { } else {
this.sendError(new NoResultFromBarcodeException(finalBarcodeProd)); this.sendError(new NoResultFromBarcodeException(barcodeProd));
} }
}, this::sendError); }, this::sendError);
@@ -837,7 +838,6 @@ public class AccettazionePickingViewModel {
cloneMtbColt.setGestione(cloneMtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE ? GestioneEnum.PRODUZIONE : cloneMtbColt.getGestioneEnum()); cloneMtbColt.setGestione(cloneMtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE ? GestioneEnum.PRODUZIONE : cloneMtbColt.getGestioneEnum());
this.mPrinterRESTConsumer.printCollo( this.mPrinterRESTConsumer.printCollo(
PrinterRESTConsumer.Type.SECONDARIA,
cloneMtbColt, cloneMtbColt,
() -> { () -> {
this.sendLUSuccessfullyPrinted(); this.sendLUSuccessfullyPrinted();

View File

@@ -43,7 +43,7 @@ public class AccettazionePickingRESTConsumer {
whereCondListMap.add(whereCondMap); whereCondListMap.add(whereCondMap);
} catch (Exception ex) { } catch (Exception ex) {
UtilityLogger.errorMe(ex); UtilityLogger.error(ex);
} }
}); });

View File

@@ -31,8 +31,8 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.databinding.FragmentDocInterniBinding; import it.integry.integrywmsnative.databinding.FragmentDocInterniBinding;
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoView; import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoView;
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoViewModel; import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoViewModel;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniEditFormActivity; import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniEditFormActivity;
import it.integry.integrywmsnative.gest.contab_doc_interni.ui.DocInterniListAdapter; import it.integry.integrywmsnative.gest.contab_doc_interni.ui.DocInterniListAdapter;
import it.integry.integrywmsnative.gest.contab_doc_interni.ui.DocInterniListModel; import it.integry.integrywmsnative.gest.contab_doc_interni.ui.DocInterniListModel;
@@ -81,8 +81,8 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
mBinding.setLifecycleOwner(this); mBinding.setLifecycleOwner(this);
mBinding.setView(this); mBinding.setView(this);
mBinding.setViewModel(mViewModel); mBinding.setViewModel(mViewModel);
mViewModel.mtbGrup.observe(getViewLifecycleOwner(),mtbGrup-> mViewModel.fetchProducts()); mViewModel.mtbGrup.observe(getViewLifecycleOwner(), mtbGrup -> mViewModel.fetchProducts());
mViewModel.dtbTipi.observe(getViewLifecycleOwner(),dtbTipi-> mViewModel.fetchDocuments()); mViewModel.dtbTipi.observe(getViewLifecycleOwner(), dtbTipi -> mViewModel.fetchDocuments());
this.initRecyclerView(); this.initRecyclerView();
return mBinding.getRoot(); return mBinding.getRoot();
@@ -91,9 +91,9 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
@Override @Override
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
if (!this.mViewModel.hasDocDetails()){ if (!this.mViewModel.hasDocDetails()) {
mViewModel.init(); mViewModel.init();
}else{ } else {
this.mViewModel.fetchDocuments(); this.mViewModel.fetchDocuments();
} }
} }
@@ -115,30 +115,30 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
@Override @Override
public void onDocDetailsChanged(DialogSelectDocInfoViewModel selection) { public void onDocDetailsChanged(DialogSelectDocInfoViewModel selection) {
if(selection.isInputValid()){ if (selection.isInputValid()) {
mViewModel.setSelectedDocDetails(selection); mViewModel.setSelectedDocDetails(selection);
mBinding.mainFab.setVisibility(View.VISIBLE); mBinding.mainFab.setVisibility(View.VISIBLE);
}else{ } else {
mBinding.mainFab.setVisibility(View.GONE); mBinding.mainFab.setVisibility(View.GONE);
} }
if (selection.requiresFornitore()){ if (selection.requiresFornitore()) {
mBinding.codAnagContainer.setVisibility(View.VISIBLE); mBinding.codAnagContainer.setVisibility(View.VISIBLE);
}else{ } else {
mBinding.codAnagContainer.setVisibility(View.GONE); mBinding.codAnagContainer.setVisibility(View.GONE);
} }
if (selection.getSelectedGruppoArt() != null){ if (selection.getSelectedGruppoArt() != null) {
mBinding.mtbGrpContainer.setVisibility(View.VISIBLE); mBinding.mtbGrpContainer.setVisibility(View.VISIBLE);
}else{ } else {
mBinding.mtbGrpContainer.setVisibility(View.GONE); mBinding.mtbGrpContainer.setVisibility(View.GONE);
} }
if (selection.requiresDocData()){ if (selection.requiresDocData()) {
mBinding.docContainer.setVisibility(View.VISIBLE); mBinding.docContainer.setVisibility(View.VISIBLE);
mBinding.document.setText(Html.fromHtml(getString(R.string.doc_testata, String.valueOf(selection.getNumDoc()), UtilityDate.formatDate(selection.getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)))); mBinding.document.setText(Html.fromHtml(getString(R.string.doc_testata, String.valueOf(selection.getNumDoc()), UtilityDate.formatDate(selection.getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN))));
}else{ } else {
mBinding.docContainer.setVisibility(View.GONE); mBinding.docContainer.setVisibility(View.GONE);
} }
@@ -155,7 +155,7 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
} }
public void selectDocInfo() { public void selectDocInfo() {
if (this.dialogInitialized){ if (this.dialogInitialized) {
DialogSelectDocInfoView.newInstance( DialogSelectDocInfoView.newInstance(
mDocInterniSetupDTO, mDocInterniSetupDTO,
this.mViewModel.dtbTipi.getValue(), this.mViewModel.dtbTipi.getValue(),
@@ -201,6 +201,6 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
@Override @Override
public void onDocumentEditRequest(SqlMtbColt document, GrigliaAcquistiDTO arts) { public void onDocumentEditRequest(SqlMtbColt document, GrigliaAcquistiDTO arts) {
requireActivity().startActivity(DocInterniEditFormActivity.newInstance(requireActivity(),document,arts)); requireActivity().startActivity(DocInterniEditFormActivity.newInstance(requireActivity(), document, arts, mViewModel.getTipoDoc()));
} }
} }

View File

@@ -2,8 +2,6 @@ package it.integry.integrywmsnative.gest.contab_doc_interni;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import com.annimon.stream.Stream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@@ -17,10 +15,10 @@ import it.integry.integrywmsnative.core.di.BindableInteger;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoViewModel; import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoViewModel;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GruppiArticoloDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GruppiArticoloDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipiDocDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipiDocDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer; import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer;
@@ -91,7 +89,7 @@ public class DocInterniViewModel {
this.numDoc.postValue(selection.getNumDoc()); this.numDoc.postValue(selection.getNumDoc());
this.note.postValue(selection.getNote()); this.note.postValue(selection.getNote());
if (selection.getSelectedTipoDoc() != null ) { if (selection.getSelectedTipoDoc() != null) {
this.dtbTipi.postValue(selection.getSelectedTipoDoc()); this.dtbTipi.postValue(selection.getSelectedTipoDoc());
} }
} }
@@ -114,11 +112,11 @@ public class DocInterniViewModel {
this.sendOnLoadingStarted(); this.sendOnLoadingStarted();
String codAnag = null, codVdes = null; String codAnag = null, codVdes = null;
FornitoreDTO fornitore = this.fornitore.getValue(); FornitoreDTO fornitore = this.fornitore.getValue();
if (fornitore != null){ if (fornitore != null) {
codAnag = fornitore.getCodAnag(); codAnag = fornitore.getCodAnag();
codVdes = fornitore.getCodVdes(); codVdes = fornitore.getCodVdes();
} }
documentRepository.getLocalDocumentsByCodDtip(this.getCodDtip(), codAnag, codVdes, dataDoc.getValue(),numDoc.getValue(), list -> { documentRepository.getLocalDocumentsByCodDtip(this.getCodDtip(), codAnag, codVdes, dataDoc.getValue(), numDoc.getValue(), list -> {
documentRepository.getNextNumCollo(nextNumCollo -> { documentRepository.getNextNumCollo(nextNumCollo -> {
this.mDocsList.postValue(list); this.mDocsList.postValue(list);
this.setNextNumCollo(nextNumCollo); this.setNextNumCollo(nextNumCollo);
@@ -141,6 +139,13 @@ public class DocInterniViewModel {
return this.dtbTipi.getValue().getCodDtip(); return this.dtbTipi.getValue().getCodDtip();
} }
public TipiDocDTO getTipoDoc() {
if (this.dtbTipi.getValue() == null) {
return null;
}
return this.dtbTipi.getValue();
}
private String getCodMgrp() { private String getCodMgrp() {
if (this.mtbGrup.getValue() == null) { if (this.mtbGrup.getValue() == null) {
return null; return null;
@@ -168,10 +173,10 @@ public class DocInterniViewModel {
document.setNumCollo(this.nextNumCollo); document.setNumCollo(this.nextNumCollo);
document.setGestione("L"); document.setGestione("L");
document.setDataDoc(this.dataDoc.getValue()); document.setDataDoc(this.dataDoc.getValue());
if (this.numDoc.getValue() != null){ if (this.numDoc.getValue() != null) {
document.setNumDoc(Integer.parseInt(this.numDoc.getValue())); document.setNumDoc(Integer.parseInt(this.numDoc.getValue()));
} }
if (this.fornitore.getValue() != null){ if (this.fornitore.getValue() != null) {
document.setCodAnag(this.fornitore.getValue().getCodAnag()); document.setCodAnag(this.fornitore.getValue().getCodAnag());
document.setCodVdes(this.fornitore.getValue().getCodVdes()); document.setCodVdes(this.fornitore.getValue().getCodVdes());
} }

View File

@@ -35,6 +35,13 @@ public class DialogSelectDocInfoViewModel {
public void init(DocInterniSetupDTO initialList) { public void init(DocInterniSetupDTO initialList) {
this.mDocInterniSetupDTO = initialList; this.mDocInterniSetupDTO = initialList;
this.mTipoDoc = null;
this.mGruppoArt = null;
this.mFornitore = null;
this.mDataDoc = null;
this.mNumDoc = null;
this.mNote = null;
this.mListener = null;
} }
public String getCodDtip() { public String getCodDtip() {
@@ -112,7 +119,7 @@ public class DialogSelectDocInfoViewModel {
selectedDocType.getGestione().equalsIgnoreCase("V") ? "V" : "A" selectedDocType.getGestione().equalsIgnoreCase("V") ? "V" : "A"
); );
} else { } else {
return forn.getTipoAnag().equalsIgnoreCase("F") ; return forn.getTipoAnag().equalsIgnoreCase("F");
} }
}) })
.map(FornitoreDTO::getLabel).toList(); .map(FornitoreDTO::getLabel).toList();
@@ -148,8 +155,7 @@ public class DialogSelectDocInfoViewModel {
public boolean requiresNote() { public boolean requiresNote() {
return this.getSelectedTipoDoc() != null && return this.getSelectedTipoDoc() != null &&
this.getSelectedTipoDoc().getGestioneDoc().equals("P") && this.getSelectedTipoDoc().getGestioneDoc().equals("P") &&
this.getSelectedTipoDoc().getGestione().equals("L") this.getSelectedTipoDoc().getGestione().equals("L");
;
} }
public boolean isInputValid() { public boolean isInputValid() {
@@ -161,12 +167,12 @@ public class DialogSelectDocInfoViewModel {
return false; return false;
} }
if (this.requiresDocData() && (this.getDataDoc() == null || this.getNumDoc() == null)){ if (this.requiresDocData() && (this.getDataDoc() == null || this.getNumDoc() == null)) {
return false; return false;
} }
if (this.requiresNote() && (this.getNote() == null || this.getNote().length() <= 0) ){ if (this.requiresNote() && (this.getNote() == null || this.getNote().length() <= 0)) {
return false; return false;
} }
@@ -174,7 +180,7 @@ public class DialogSelectDocInfoViewModel {
} }
public boolean requiresDocData() { public boolean requiresDocData() {
TipiDocDTO doc = this.getSelectedTipoDoc(); TipiDocDTO doc = this.getSelectedTipoDoc();
return doc != null && doc.getGestioneDoc().equalsIgnoreCase("P") && !doc.getGestione().equalsIgnoreCase("L"); return doc != null && doc.getGestioneDoc().equalsIgnoreCase("P") && !doc.getGestione().equalsIgnoreCase("L");
} }

View File

@@ -19,6 +19,8 @@ public class GrigliaAcquistiChildDTO {
private float giacenza; private float giacenza;
private float qtaPrevistaVendita; private float qtaPrevistaVendita;
private float qtaProposta; private float qtaProposta;
private BigDecimal qtaOrd;
public String getCodMart() { public String getCodMart() {
return codMart; return codMart;
@@ -154,4 +156,13 @@ public class GrigliaAcquistiChildDTO {
this.newNoPromo = newNoPromo; this.newNoPromo = newNoPromo;
return this; return this;
} }
public BigDecimal getQtaOrd() {
return qtaOrd;
}
public GrigliaAcquistiChildDTO setQtaOrd(BigDecimal qtaOrd) {
this.qtaOrd = qtaOrd;
return this;
}
} }

View File

@@ -6,6 +6,7 @@ public class TipiDocDTO {
private String descrizione; private String descrizione;
private String gestione; private String gestione;
private String gestioneDoc; private String gestioneDoc;
private boolean requireNote = false;
public String getCodDtip() { public String getCodDtip() {
return codDtip; return codDtip;
@@ -38,7 +39,17 @@ public class TipiDocDTO {
public void setGestioneDoc(String gestioneDoc) { public void setGestioneDoc(String gestioneDoc) {
this.gestioneDoc = gestioneDoc; this.gestioneDoc = gestioneDoc;
} }
public String getLabel(){
return this.codDtip +" - "+this.descrizione; public String getLabel() {
return this.codDtip + " - " + this.descrizione;
}
public boolean isRequireNote() {
return requireNote;
}
public TipiDocDTO setRequireNote(boolean requireNote) {
this.requireNote = requireNote;
return this;
} }
} }

View File

@@ -39,6 +39,7 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.databinding.ActivityContabDocInterniEditBinding; import it.integry.integrywmsnative.databinding.ActivityContabDocInterniEditBinding;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiChildDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiChildDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipiDocDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsView; import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsView;
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.ui.DocumentRowsListAdapter; import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.ui.DocumentRowsListAdapter;
import it.integry.integrywmsnative.ui.FabMenuCustomAnimations; import it.integry.integrywmsnative.ui.FabMenuCustomAnimations;
@@ -52,6 +53,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
private static final String DATA_KEY_DOCUMENT = "document"; private static final String DATA_KEY_DOCUMENT = "document";
private static final String DATA_KEY_PRODUCTS_LIST = "productsList"; private static final String DATA_KEY_PRODUCTS_LIST = "productsList";
private static final String DATA_KEY_TIPO_DOC = "docType";
@Inject @Inject
MtbColrRepository documentRowsRepository; MtbColrRepository documentRowsRepository;
@@ -75,13 +77,15 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
public BindableBoolean isDocumentExportable = new BindableBoolean(false); public BindableBoolean isDocumentExportable = new BindableBoolean(false);
private final ObservableArrayList<SqlMtbColr> documentRowsObservableList = new ObservableArrayList<>(); private final ObservableArrayList<SqlMtbColr> documentRowsObservableList = new ObservableArrayList<>();
public static Intent newInstance(Context context, SqlMtbColt document, GrigliaAcquistiDTO productList) { public static Intent newInstance(Context context, SqlMtbColt document, GrigliaAcquistiDTO productList, TipiDocDTO tipoDoc) {
Intent myIntent = new Intent(context, DocInterniEditFormActivity.class); Intent myIntent = new Intent(context, DocInterniEditFormActivity.class);
String doc = DataCache.addItem(document); String doc = DataCache.addItem(document);
String productsKey = DataCache.addItem(productList); String productsKey = DataCache.addItem(productList);
String docType = DataCache.addItem(tipoDoc);
myIntent.putExtra(DATA_KEY_DOCUMENT, doc); myIntent.putExtra(DATA_KEY_DOCUMENT, doc);
myIntent.putExtra(DATA_KEY_PRODUCTS_LIST, productsKey); myIntent.putExtra(DATA_KEY_PRODUCTS_LIST, productsKey);
myIntent.putExtra(DATA_KEY_TIPO_DOC, docType);
return myIntent; return myIntent;
} }
@@ -96,7 +100,14 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
SqlMtbColt document = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_DOCUMENT)); SqlMtbColt document = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_DOCUMENT));
GrigliaAcquistiDTO griglia = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_PRODUCTS_LIST)); GrigliaAcquistiDTO griglia = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_PRODUCTS_LIST));
List<GrigliaAcquistiChildDTO> productList = griglia.getGrigliaAcquistiChild(); List<GrigliaAcquistiChildDTO> productList = griglia.getGrigliaAcquistiChild();
this.initViewModel(document, productList); TipiDocDTO docType = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_TIPO_DOC));
this.initViewModel();
this.viewModel.setDocument(document);
this.viewModel.setProductsList(productList);
this.viewModel.setTipoDoc(docType);
this.initView(); this.initView();
this.initBindables(); this.initBindables();
this.initRecyclerView(); this.initRecyclerView();
@@ -137,12 +148,9 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
binding.bottomSheetMtbColrEdit.init(binding.bottomSheetMtbColrEdit, binding.bottomSheetMtbColrEditBackground); binding.bottomSheetMtbColrEdit.init(binding.bottomSheetMtbColrEdit, binding.bottomSheetMtbColrEditBackground);
} }
private void initViewModel(SqlMtbColt document, List<GrigliaAcquistiChildDTO> productList) { private void initViewModel() {
this.viewModel.init(); this.viewModel.init();
this.viewModel.setListeners(this); this.viewModel.setListeners(this);
this.viewModel.setDocument(document);
this.viewModel.setProductsList(productList);
} }
private void initRecyclerView() { private void initRecyclerView() {
@@ -239,8 +247,10 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
.setCanOverflowOrderQuantity(false) .setCanOverflowOrderQuantity(false)
.setCanLUBeClosed(false) .setCanLUBeClosed(false)
.setNotesAllowed(true) .setNotesAllowed(true)
.setNotesMandatory(this.viewModel.isNotesMandatory())
.setDataScadMandatory(flagTracciabilita) .setDataScadMandatory(flagTracciabilita)
.setCanPartitaMagBeChanged(flagTracciabilita) .setCanPartitaMagBeChanged(flagTracciabilita)
.setNumCnfEditable(false)
.setSuggestPartitaMag(data -> { .setSuggestPartitaMag(data -> {
Date dataScad = data.getDataScad(); Date dataScad = data.getDataScad();
String partitaMag = null; String partitaMag = null;
@@ -249,13 +259,15 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
} }
return partitaMag; return partitaMag;
}); });
dialogInputQuantityV2View.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
.setOnComplete((resultDTO, shouldCloseLU) -> { if (!dialogInputQuantityV2View.isAdded())
this.onLoadingStarted(); dialogInputQuantityV2View.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
this.viewModel.saveRow(row, resultDTO); .setOnComplete((resultDTO, shouldCloseLU) -> {
}) this.onLoadingStarted();
.setOnAbort(this::onLoadingEnded) this.viewModel.saveRow(row, resultDTO);
.show(getSupportFragmentManager(), "tag"); })
.setOnAbort(this::onLoadingEnded)
.show(getSupportFragmentManager(), "tag");
} }
@Override @Override

View File

@@ -26,6 +26,7 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ArtDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ColloDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ColloDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiChildDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiChildDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipiDocDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer; import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2ResultDTO; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2ResultDTO;
@@ -38,6 +39,7 @@ public class DocInterniEditFormViewModel {
private final DocInterniRESTConsumer docInterniRESTConsumer; private final DocInterniRESTConsumer docInterniRESTConsumer;
private DocInterniEditFormViewModel.Listener listener; private DocInterniEditFormViewModel.Listener listener;
private List<GrigliaAcquistiChildDTO> productsList; private List<GrigliaAcquistiChildDTO> productsList;
private TipiDocDTO tipoDoc;
private boolean isCheckPartitaMag = false; private boolean isCheckPartitaMag = false;
private JSONObject checkFornitoreRules = null; private JSONObject checkFornitoreRules = null;
public MutableLiveData<SqlMtbColt> document = new MutableLiveData<>(); public MutableLiveData<SqlMtbColt> document = new MutableLiveData<>();
@@ -299,6 +301,15 @@ public class DocInterniEditFormViewModel {
return Stream.of(productsList).filter(prod -> prod.codMart.equalsIgnoreCase(codMart)).findFirstOrElse(null); return Stream.of(productsList).filter(prod -> prod.codMart.equalsIgnoreCase(codMart)).findFirstOrElse(null);
} }
public DocInterniEditFormViewModel setTipoDoc(TipiDocDTO docType) {
this.tipoDoc = docType;
return this;
}
public boolean isNotesMandatory() {
return this.tipoDoc != null && this.tipoDoc.isRequireNote();
}
public interface Listener extends ILoadingListener { public interface Listener extends ILoadingListener {
void onError(Exception ex); void onError(Exception ex);

View File

@@ -45,16 +45,14 @@ public class ContenutoBancaleActivity extends BaseActivity implements ContenutoB
public ObservableField<Boolean> recoverFabMenuVisible = new ObservableField<>(false); public ObservableField<Boolean> recoverFabMenuVisible = new ObservableField<>(false);
private String mReportName; private String mReportName;
private PrinterRESTConsumer.Type mPrinterType;
private static class Key { private static class Key {
private static final String MtbColtKey = "mtbColtKey"; private static final String MtbColtKey = "mtbColtKey";
private static final String CanRecoverUL = "canRecoverUL"; private static final String CanRecoverUL = "canRecoverUL";
private static final String PrinterType = "printerType";
private static final String ReportName = "reportName"; private static final String ReportName = "reportName";
} }
public static Intent createIntent(Context context, MtbColt item, boolean canRecoverUl, PrinterRESTConsumer.Type printerType, String reportName) { public static Intent createIntent(Context context, MtbColt item, boolean canRecoverUl, String reportName) {
Intent myIntent = new Intent(context, ContenutoBancaleActivity.class); Intent myIntent = new Intent(context, ContenutoBancaleActivity.class);
String keyMtbColt = DataCache.addItem(item); String keyMtbColt = DataCache.addItem(item);
@@ -63,9 +61,6 @@ public class ContenutoBancaleActivity extends BaseActivity implements ContenutoB
String keyCanRecoverUL = DataCache.addItem(canRecoverUl); String keyCanRecoverUL = DataCache.addItem(canRecoverUl);
myIntent.putExtra(Key.CanRecoverUL, keyCanRecoverUL); myIntent.putExtra(Key.CanRecoverUL, keyCanRecoverUL);
String keyPrinterType = DataCache.addItem(printerType);
myIntent.putExtra(Key.PrinterType, keyPrinterType);
String keyReportName = DataCache.addItem(reportName); String keyReportName = DataCache.addItem(reportName);
myIntent.putExtra(Key.ReportName, keyReportName); myIntent.putExtra(Key.ReportName, keyReportName);
@@ -79,7 +74,6 @@ public class ContenutoBancaleActivity extends BaseActivity implements ContenutoB
boolean canRecoverUL = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL)); boolean canRecoverUL = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL));
mtbColt.set(DataCache.retrieveItem(getIntent().getStringExtra(Key.MtbColtKey))); mtbColt.set(DataCache.retrieveItem(getIntent().getStringExtra(Key.MtbColtKey)));
mReportName = DataCache.retrieveItem(getIntent().getStringExtra(Key.ReportName)); mReportName = DataCache.retrieveItem(getIntent().getStringExtra(Key.ReportName));
mPrinterType = DataCache.retrieveItem(getIntent().getStringExtra(Key.PrinterType));
bindings = DataBindingUtil.setContentView(this, R.layout.activity_contenuto_bancale); bindings = DataBindingUtil.setContentView(this, R.layout.activity_contenuto_bancale);
@@ -97,7 +91,7 @@ public class ContenutoBancaleActivity extends BaseActivity implements ContenutoB
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mViewModel.setListener(this); mViewModel.setListener(this);
mViewModel.init(mtbColt.get(), mPrinterType, mReportName); mViewModel.init(mtbColt.get(), mReportName);
recoverFabMenuVisible.set(canRecoverUL); recoverFabMenuVisible.set(canRecoverUL);
@@ -143,7 +137,7 @@ public class ContenutoBancaleActivity extends BaseActivity implements ContenutoB
this.bindings.contenutoBancaleFab.close(true); this.bindings.contenutoBancaleFab.close(true);
this.onLoadingStarted(); this.onLoadingStarted();
try { try {
this.mPrinterRESTConsumer.printCollo(mPrinterType, mtbColt.get(), this.mPrinterRESTConsumer.printCollo(mtbColt.get(),
() -> { () -> {
this.onLoadingEnded(); this.onLoadingEnded();

View File

@@ -5,7 +5,6 @@ import javax.inject.Inject;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
public class ContenutoBancaleViewModel { public class ContenutoBancaleViewModel {
@@ -19,7 +18,7 @@ public class ContenutoBancaleViewModel {
this.mDepositoRESTConsumer = depositoRESTConsumer; this.mDepositoRESTConsumer = depositoRESTConsumer;
} }
public void init(MtbColt mtbColt, PrinterRESTConsumer.Type printerType, String defaultReportName) { public void init(MtbColt mtbColt, String defaultReportName) {
} }

View File

@@ -19,7 +19,6 @@ import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.expansion.BaseActivity; import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.expansion.RunnableArgsWithReturn; import it.integry.integrywmsnative.core.expansion.RunnableArgsWithReturn;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.databinding.ActivityListaBancaliBinding; import it.integry.integrywmsnative.databinding.ActivityListaBancaliBinding;
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity; import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity;
import it.integry.integrywmsnative.gest.lista_bancali.ui.ListaColliMainListAdapter; import it.integry.integrywmsnative.gest.lista_bancali.ui.ListaColliMainListAdapter;
@@ -30,7 +29,6 @@ public class ListaBancaliActivity extends BaseActivity implements ListaBancaliVi
private static class Key { private static class Key {
private static final String MtbColtsKey = "mtbColtsKey"; private static final String MtbColtsKey = "mtbColtsKey";
private static final String CanRecoverUL = "canRecoverUL"; private static final String CanRecoverUL = "canRecoverUL";
private static final String PrinterType = "printerType";
private static final String ReportName = "reportName"; private static final String ReportName = "reportName";
private static final String FlagOnlyResiduo = "flagOnlyResiduo"; private static final String FlagOnlyResiduo = "flagOnlyResiduo";
} }
@@ -43,7 +41,6 @@ public class ListaBancaliActivity extends BaseActivity implements ListaBancaliVi
private final ObservableArrayList<MtbColt> mtbColts = new ObservableArrayList<>(); private final ObservableArrayList<MtbColt> mtbColts = new ObservableArrayList<>();
private RunnableArgsWithReturn<MtbColt, Boolean> mCanRecoverUl; private RunnableArgsWithReturn<MtbColt, Boolean> mCanRecoverUl;
private PrinterRESTConsumer.Type mPrinterType;
private String mReportName; private String mReportName;
private boolean mFlagOnlyResiduo; private boolean mFlagOnlyResiduo;
@@ -51,19 +48,19 @@ public class ListaBancaliActivity extends BaseActivity implements ListaBancaliVi
public static Intent createIntent(Context context, List<MtbColt> items, RunnableArgsWithReturn<MtbColt, Boolean> canRecoverUlAction, PrinterRESTConsumer.Type printerType, String reportName) { public static Intent createIntent(Context context, List<MtbColt> items, RunnableArgsWithReturn<MtbColt, Boolean> canRecoverUlAction, String reportName) {
return createIntent(context, items, canRecoverUlAction, printerType, true, reportName); return createIntent(context, items, canRecoverUlAction, true, reportName);
} }
public static Intent createIntent(Context context, List<MtbColt> items, boolean canRecoverUl, PrinterRESTConsumer.Type printerType, boolean onlyResiduo) { public static Intent createIntent(Context context, List<MtbColt> items, boolean canRecoverUl, boolean onlyResiduo) {
return createIntent(context, items, input -> canRecoverUl, printerType, onlyResiduo); return createIntent(context, items, input -> canRecoverUl, onlyResiduo);
} }
public static Intent createIntent(Context context, List<MtbColt> items, RunnableArgsWithReturn<MtbColt, Boolean> canRecoverUlAction, PrinterRESTConsumer.Type printerType, boolean onlyResiduo) { public static Intent createIntent(Context context, List<MtbColt> items, RunnableArgsWithReturn<MtbColt, Boolean> canRecoverUlAction, boolean onlyResiduo) {
return createIntent(context, items, canRecoverUlAction, printerType, onlyResiduo, null); return createIntent(context, items, canRecoverUlAction, onlyResiduo, null);
} }
public static Intent createIntent(Context context, List<MtbColt> items, RunnableArgsWithReturn<MtbColt, Boolean> canRecoverUlAction, PrinterRESTConsumer.Type printerType, boolean onlyResiduo, String reportName) { public static Intent createIntent(Context context, List<MtbColt> items, RunnableArgsWithReturn<MtbColt, Boolean> canRecoverUlAction, boolean onlyResiduo, String reportName) {
Intent myIntent = new Intent(context, ListaBancaliActivity.class); Intent myIntent = new Intent(context, ListaBancaliActivity.class);
String mtbColtsKey = DataCache.addItem(items); String mtbColtsKey = DataCache.addItem(items);
@@ -72,9 +69,6 @@ public class ListaBancaliActivity extends BaseActivity implements ListaBancaliVi
String canRecoverULKey = DataCache.addItem(canRecoverUlAction); String canRecoverULKey = DataCache.addItem(canRecoverUlAction);
myIntent.putExtra(Key.CanRecoverUL, canRecoverULKey); myIntent.putExtra(Key.CanRecoverUL, canRecoverULKey);
String printerTypeKey = DataCache.addItem(printerType);
myIntent.putExtra(Key.PrinterType, printerTypeKey);
String flagOnlyResiduoKey = DataCache.addItem(onlyResiduo); String flagOnlyResiduoKey = DataCache.addItem(onlyResiduo);
myIntent.putExtra(Key.FlagOnlyResiduo, flagOnlyResiduoKey); myIntent.putExtra(Key.FlagOnlyResiduo, flagOnlyResiduoKey);
@@ -97,7 +91,6 @@ public class ListaBancaliActivity extends BaseActivity implements ListaBancaliVi
mCanRecoverUl = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL)); mCanRecoverUl = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL));
mPrinterType = DataCache.retrieveItem(getIntent().getStringExtra(Key.PrinterType));
mReportName = DataCache.retrieveItem(getIntent().getStringExtra(Key.ReportName)); mReportName = DataCache.retrieveItem(getIntent().getStringExtra(Key.ReportName));
mFlagOnlyResiduo = DataCache.retrieveItem(getIntent().getStringExtra(Key.FlagOnlyResiduo)); mFlagOnlyResiduo = DataCache.retrieveItem(getIntent().getStringExtra(Key.FlagOnlyResiduo));
@@ -138,7 +131,7 @@ public class ListaBancaliActivity extends BaseActivity implements ListaBancaliVi
} }
public void startContenutoBancaleActivity(MtbColt item){ public void startContenutoBancaleActivity(MtbColt item){
Intent myIntent = ContenutoBancaleActivity.createIntent(this, item, mCanRecoverUl.run(item), mPrinterType, mReportName); Intent myIntent = ContenutoBancaleActivity.createIntent(this, item, mCanRecoverUl.run(item), mReportName);
startActivityForResult(myIntent, PICK_UL_REQUEST); startActivityForResult(myIntent, PICK_UL_REQUEST);
} }

View File

@@ -49,6 +49,7 @@ import it.integry.integrywmsnative.core.utility.UtilityContext;
import it.integry.integrywmsnative.databinding.ActivityMainBinding; import it.integry.integrywmsnative.databinding.ActivityMainBinding;
import it.integry.integrywmsnative.gest.login.LoginActivity; import it.integry.integrywmsnative.gest.login.LoginActivity;
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment; import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
public class MainActivity extends BaseActivity public class MainActivity extends BaseActivity
implements NavigationView.OnNavigationItemSelectedListener, IPoppableActivity { implements NavigationView.OnNavigationItemSelectedListener, IPoppableActivity {
@@ -70,12 +71,16 @@ public class MainActivity extends BaseActivity
@Inject @Inject
UpdatesManager updatesManager; UpdatesManager updatesManager;
@Inject
DialogProgressView mDialogProgressView;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
MainApplication.appComponent MainApplication.appComponent
.mainActivityComponent() .mainActivityComponent()
.create() .create()
.inject(this); .inject(this);

View File

@@ -75,10 +75,7 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
} }
public static MainFragment newInstance() { public static MainFragment newInstance() {
MainFragment fragment = new MainFragment(); return new MainFragment();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
} }
@Override @Override
@@ -244,18 +241,18 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
private void initGestMenu() { private void initGestMenu() {
int menuSpanCount = 2; int menuSpanCount = 2;
if(UtilityDimension.getDisplayInchs(this.getActivity()) > 8) menuSpanCount = 4; if (UtilityDimension.getDisplayInchs(this.getActivity()) > 8) menuSpanCount = 4;
else if(UtilityDimension.getDisplayInchs(this.getActivity()) > 6.5) menuSpanCount = 3; else if (UtilityDimension.getDisplayInchs(this.getActivity()) > 6.5) menuSpanCount = 3;
MenuConfiguration baseMenuConfiguration = new MenuConfiguration(); MenuConfiguration baseMenuConfiguration = new MenuConfiguration();
List<MenuConfiguration.MenuGroup> menuGroups = baseMenuConfiguration.getGroups(); List<MenuConfiguration.MenuGroup> menuGroups = baseMenuConfiguration.getGroups();
for(int i = 0; i < menuGroups.size(); i++) { for (int i = 0; i < menuGroups.size(); i++) {
try { try {
BaseMenuConfiguration.MenuGroup menuGroup = menuGroups.get(i); BaseMenuConfiguration.MenuGroup menuGroup = menuGroups.get(i);
if(menuService.isGroupEnabled(menuGroup)) { if (menuService.isGroupEnabled(menuGroup)) {
FragmentMainMenuGroupLayoutBinding groupBinding = DataBindingUtil.inflate(mLayoutInflater, R.layout.fragment_main_menu_group_layout, null, false); FragmentMainMenuGroupLayoutBinding groupBinding = DataBindingUtil.inflate(mLayoutInflater, R.layout.fragment_main_menu_group_layout, null, false);
@@ -264,8 +261,8 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
List<BaseMenuConfiguration.MenuItem> enableMenuItems = new ArrayList<>(); List<BaseMenuConfiguration.MenuItem> enableMenuItems = new ArrayList<>();
for(int j = 0; j < menuGroup.getItems().size(); j++) { for (int j = 0; j < menuGroup.getItems().size(); j++) {
if(menuService.isItemEnabled(menuGroup.getItems().get(j))) { if (menuService.isItemEnabled(menuGroup.getItems().get(j))) {
enableMenuItems.add(menuGroup.getItems().get(j)); enableMenuItems.add(menuGroup.getItems().get(j));
} }
} }

View File

@@ -42,6 +42,7 @@ import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbDepo; import it.integry.integrywmsnative.core.model.MtbDepo;
import it.integry.integrywmsnative.core.model.MtbGrup; import it.integry.integrywmsnative.core.model.MtbGrup;
import it.integry.integrywmsnative.core.model.OrdineInevasoDTO;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer;
@@ -180,6 +181,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
for (Runnable onPreDestroy : mOnPreDestroyList) { for (Runnable onPreDestroy : mOnPreDestroyList) {
onPreDestroy.run(); onPreDestroy.run();
} }
mViewModel.setListener(null);
super.onDestroy(); super.onDestroy();
} }
@@ -682,37 +685,38 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
break; break;
} }
filterLayoutView.show(requireActivity().getSupportFragmentManager(), "TAG"); if (!filterLayoutView.isAdded())
filterLayoutView.show(requireActivity().getSupportFragmentManager(), "TAG");
} }
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> { private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
this.onLoadingStarted(); this.onLoadingStarted();
this.mViewModel.processBarcodeDTO(data, () -> { this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded);
this.onLoadingEnded();
});
}; };
private void refreshList(List<OrdiniUscitaElencoDTO> filteredList) { private void refreshList(List<OrdiniUscitaElencoDTO> filteredList) {
List<OrdiniUscitaElencoDTO> tmpList; requireActivity().runOnUiThread(() -> {
List<OrdiniUscitaElencoDTO> tmpList;
if (filteredList != null) { if (filteredList != null) {
tmpList = filteredList; tmpList = filteredList;
} else if (mAppliedFilterViewModel != null) { } else if (mAppliedFilterViewModel != null) {
mAppliedFilterViewModel.applyAllTests(); mAppliedFilterViewModel.applyAllTests();
tmpList = mAppliedFilterViewModel.getMutableFilteredOrderList().getValue(); tmpList = mAppliedFilterViewModel.getMutableFilteredOrderList().getValue();
} else { } else {
tmpList = mViewModel.getOrderList().getValue(); tmpList = mViewModel.getOrderList().getValue();
} }
var list = convertDataModelToListModel(tmpList); var list = convertDataModelToListModel(tmpList);
this.mOrdiniInevasiMutableData.clear(); this.mOrdiniInevasiMutableData.clear();
this.mOrdiniInevasiMutableData.addAll(list); this.mOrdiniInevasiMutableData.addAll(list);
fabVisible.set(Stream.of(mOrdiniInevasiMutableData) fabVisible.set(Stream.of(mOrdiniInevasiMutableData)
.anyMatch(y -> y.getSelectedObservable().get())); .anyMatch(y -> y.getSelectedObservable().get()));
});
} }
private List<OrdiniUscitaElencoListModel> convertDataModelToListModel(List<OrdiniUscitaElencoDTO> dataList) { private List<OrdiniUscitaElencoListModel> convertDataModelToListModel(List<OrdiniUscitaElencoDTO> dataList) {
@@ -777,6 +781,17 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
this.mViewModel.loadPicking(selectedOrders, this.mAppliedFilterViewModel.getSelectedMtbGrup()); this.mViewModel.loadPicking(selectedOrders, this.mAppliedFilterViewModel.getSelectedMtbGrup());
} }
@Override
public void onFilterNumOrderApplied(List<OrdiniUscitaElencoDTO> filteredOrder) {
requireActivity().runOnUiThread(() -> {
var numOrders = Stream.of(filteredOrder)
.map(OrdineInevasoDTO::getNumOrd)
.distinct()
.toList();
this.mAppliedFilterViewModel.setNumOrdFilter(numOrders);
});
}
@Override @Override
public void onOrderFiltered(List<OrdiniUscitaElencoDTO> filteredOrders) { public void onOrderFiltered(List<OrdiniUscitaElencoDTO> filteredOrders) {
refreshList(filteredOrders); refreshList(filteredOrders);

View File

@@ -154,12 +154,15 @@ public class OrdiniUscitaElencoViewModel {
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
RunnableArgs<List<OrdiniUscitaElencoDTO>> onBarcodeScanComplete = orderList -> { RunnableArgs<List<OrdiniUscitaElencoDTO>> onBarcodeScanComplete = orderList -> {
onComplete.run();
this.sendOnOrderFiltered(orderList); this.sendOnOrderFiltered(orderList);
onComplete.run();
}; };
if (UtilityBarcode.isBarcodeOrdineV(barcodeScanDTO)) { if (UtilityBarcode.isBarcodeOrdineV(barcodeScanDTO)) {
this.executeEtichettaOrdineV(barcodeScanDTO.getStringValue(), onBarcodeScanComplete); this.executeEtichettaOrdineV(barcodeScanDTO.getStringValue(), foundOrder -> {
this.sendOnFilterNumOrderApplied(foundOrder);
onComplete.run();
});
} else if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) { } else if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
this.executeEtichettaLU(barcodeScanDTO.getStringValue(), onBarcodeScanComplete); this.executeEtichettaLU(barcodeScanDTO.getStringValue(), onBarcodeScanComplete);
} else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) { } else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
@@ -196,10 +199,11 @@ public class OrdiniUscitaElencoViewModel {
final String finalGestione = gestione; final String finalGestione = gestione;
final Date finalDate = date; final Date finalDate = date;
List<OrdiniUscitaElencoDTO> filteredOrders = Stream.of(mOrderList.getValue()) List<OrdiniUscitaElencoDTO> foundItem = Stream.of(mOrderList.getValue())
.filter(x -> x.getNumOrd() == numOrd && x.getGestione().equalsIgnoreCase(finalGestione) && x.getDataOrdD().equals(finalDate)).toList(); .filter(x -> x.getNumOrd() == numOrd && x.getGestione().equalsIgnoreCase(finalGestione) && x.getDataOrdD().equals(finalDate))
.toList();
onComplete.run(filteredOrders); onComplete.run(foundItem);
} }
@@ -284,6 +288,10 @@ public class OrdiniUscitaElencoViewModel {
if (this.mListener != null) mListener.onError(ex); if (this.mListener != null) mListener.onError(ex);
} }
private void sendOnFilterNumOrderApplied(List<OrdiniUscitaElencoDTO> filteredOrder) {
if (this.mListener != null) mListener.onFilterNumOrderApplied(filteredOrder);
}
private void sendOnOrderFiltered(List<OrdiniUscitaElencoDTO> filteredOrders) { private void sendOnOrderFiltered(List<OrdiniUscitaElencoDTO> filteredOrders) {
if (this.mListener != null) mListener.onOrderFiltered(filteredOrders); if (this.mListener != null) mListener.onOrderFiltered(filteredOrders);
} }
@@ -297,6 +305,8 @@ public class OrdiniUscitaElencoViewModel {
void onError(Exception ex); void onError(Exception ex);
void onFilterNumOrderApplied(List<OrdiniUscitaElencoDTO> filteredOrder);
void onOrderFiltered(List<OrdiniUscitaElencoDTO> filteredOrders); void onOrderFiltered(List<OrdiniUscitaElencoDTO> filteredOrders);
void onOrdersDispatched(List<OrdineUscitaInevasoDTO> orders, List<SitArtOrdDTO> sitArts, List<MtbColt> alreadyRegisteredMtbColts); void onOrdersDispatched(List<OrdineUscitaInevasoDTO> orders, List<SitArtOrdDTO> sitArts, List<MtbColt> alreadyRegisteredMtbColts);

View File

@@ -171,10 +171,10 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
private void initRecyclerView() { private void initRecyclerView() {
mBindings.pickingLiberoMainList.setNestedScrollingEnabled(false); mBindings.pickingLiberoMainList.setNestedScrollingEnabled(false);
mBindings.pickingLiberoMainList.setHasFixedSize(true); mBindings.pickingLiberoMainList.setHasFixedSize(true);
mBindings.pickingLiberoMainList.setLayoutManager(new LinearLayoutManager(getActivity())); mBindings.pickingLiberoMainList.setLayoutManager(new LinearLayoutManager(requireActivity()));
SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(getActivity(), SimpleDividerItemDecoration.VERTICAL); SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(requireActivity(), SimpleDividerItemDecoration.VERTICAL);
itemDecorator.setDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.divider)); itemDecorator.setDrawable(ContextCompat.getDrawable(requireActivity(), R.drawable.divider));
mBindings.pickingLiberoMainList.addItemDecoration(itemDecorator); mBindings.pickingLiberoMainList.addItemDecoration(itemDecorator);
} }
@@ -277,7 +277,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
if (ex instanceof InvalidPesoKGException) { if (ex instanceof InvalidPesoKGException) {
UtilityToast.showToast(ex.getMessage()); UtilityToast.showToast(ex.getMessage());
} else { } else {
UtilityExceptions.defaultException(getActivity(), ex, mCurrentProgress); UtilityExceptions.defaultException(getActivity(), ex);
} }
BarcodeManager.enable(); BarcodeManager.enable();
@@ -337,20 +337,21 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
.setCanPartitaMagBeChanged(canPartitaMagBeChanged) .setCanPartitaMagBeChanged(canPartitaMagBeChanged)
.setCanLUBeClosed(canLUBeClosed); .setCanLUBeClosed(canLUBeClosed);
mDialogInputQuantityV2View.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO) if (!mDialogInputQuantityV2View.isVisible())
.setOnComplete((resultDTO, shouldCloseLU) -> { mDialogInputQuantityV2View.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() .setOnComplete((resultDTO, shouldCloseLU) -> {
.setNumCnf(resultDTO.getNumCnf()) PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
.setQtaCnf(resultDTO.getQtaCnf()) .setNumCnf(resultDTO.getNumCnf())
.setQtaTot(resultDTO.getQtaTot()) .setQtaCnf(resultDTO.getQtaCnf())
.setPartitaMag(resultDTO.getPartitaMag()) .setQtaTot(resultDTO.getQtaTot())
.setDataScad(resultDTO.getDataScad()); .setPartitaMag(resultDTO.getPartitaMag())
.setDataScad(resultDTO.getDataScad());
this.onLoadingStarted(); this.onLoadingStarted();
onComplete.run(pickedQuantityDTO, shouldCloseLU); onComplete.run(pickedQuantityDTO, shouldCloseLU);
}) })
.setOnAbort(this::onLoadingEnded) .setOnAbort(this::onLoadingEnded)
.show(requireActivity().getSupportFragmentManager(), "tag"); .show(requireActivity().getSupportFragmentManager(), "tag");
} }
@Override @Override

View File

@@ -200,12 +200,6 @@ public class PickingLiberoViewModel {
} }
private void loadArticolo(String barcodeProd, Ean128Model ean128Model, Runnable onComplete) { private void loadArticolo(String barcodeProd, Ean128Model ean128Model, Runnable onComplete) {
if (barcodeProd.length() == 14) {
// barcodeProd = UtilityBarcode.convertITF14toNeutral(barcodeProd);
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
}
String finalBarcodeProd = barcodeProd;
mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
if (mtbAartList != null && mtbAartList.size() > 0) { if (mtbAartList != null && mtbAartList.size() > 0) {
MtbAart articolo = mtbAartList.get(0); MtbAart articolo = mtbAartList.get(0);
@@ -213,15 +207,15 @@ public class PickingLiberoViewModel {
if (posizione != null && posizione.isFlagMonoCollo()) { if (posizione != null && posizione.isFlagMonoCollo()) {
this.executePosizione(posizione, articolo, onComplete); this.executePosizione(posizione, articolo, onComplete);
} else if(mDefaultGestione == GestioneEnum.VENDITA){ } else if (mDefaultGestione == GestioneEnum.VENDITA) {
this.dispatchArt(articolo, ean128Model); this.dispatchArt(articolo, ean128Model);
onComplete.run(); onComplete.run();
} else { } else {
this.sendError(new NoResultFromBarcodeException(finalBarcodeProd)); this.sendError(new NoResultFromBarcodeException(barcodeProd));
} }
} else { } else {
this.sendError(new NoResultFromBarcodeException(finalBarcodeProd)); this.sendError(new NoResultFromBarcodeException(barcodeProd));
} }
}, this::sendError); }, this::sendError);
@@ -439,6 +433,7 @@ public class PickingLiberoViewModel {
mColliMagazzinoRESTConsumer.saveCollo(clonedTestata, value -> { mColliMagazzinoRESTConsumer.saveCollo(clonedTestata, value -> {
for (int i = 0; i < mtbColrObservableField.size(); i++) { for (int i = 0; i < mtbColrObservableField.size(); i++) {
MtbColr initialMtbColr = mtbColrObservableField.get(i); MtbColr initialMtbColr = mtbColrObservableField.get(i);
var startIdx = (value.getMtbColr().size() - mtbColrObservableField.size());
initialMtbColr initialMtbColr
.setDataCollo(value.getDataColloS()) .setDataCollo(value.getDataColloS())
@@ -446,7 +441,7 @@ public class PickingLiberoViewModel {
.setGestione(value.getGestione()) .setGestione(value.getGestione())
.setSerCollo(value.getSerCollo()); .setSerCollo(value.getSerCollo());
initialMtbColr.setRiga(value.getMtbColr().get(i).getRiga()); initialMtbColr.setRiga(value.getMtbColr().get(startIdx + i).getRiga());
mCurrentMtbColt.getMtbColr().add(mtbColrObservableField.get(i)); mCurrentMtbColt.getMtbColr().add(mtbColrObservableField.get(i));
} }
@@ -626,7 +621,7 @@ public class PickingLiberoViewModel {
UtilityString.equalsIgnoreCase(x.getCodCol(), mtbColrToUpdate.getCodCol()) && UtilityString.equalsIgnoreCase(x.getCodCol(), mtbColrToUpdate.getCodCol()) &&
UtilityString.equalsIgnoreCase(x.getCodTagl(), mtbColrToUpdate.getCodTagl()) && UtilityString.equalsIgnoreCase(x.getCodTagl(), mtbColrToUpdate.getCodTagl()) &&
UtilityString.equalsIgnoreCase(x.getPartitaMag(), mtbColrToUpdate.getPartitaMag())) UtilityString.equalsIgnoreCase(x.getPartitaMag(), mtbColrToUpdate.getPartitaMag()))
.single(); .findFirstOrElse(null);
} }

View File

@@ -287,7 +287,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
if (ex instanceof InvalidPesoKGException) { if (ex instanceof InvalidPesoKGException) {
UtilityToast.showToast(ex.getMessage()); UtilityToast.showToast(ex.getMessage());
} else { } else {
UtilityExceptions.defaultException(this, ex, mCurrentProgress); UtilityExceptions.defaultException(this, ex);
} }
BarcodeManager.enable(); BarcodeManager.enable();
@@ -318,23 +318,24 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
.setCanLUBeClosed(false) .setCanLUBeClosed(false)
.setCanPartitaMagBeChanged(false); .setCanPartitaMagBeChanged(false);
mDialogInputQuantityV2View if (!mDialogInputQuantityV2View.isVisible())
.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO) mDialogInputQuantityV2View
.setOnComplete((resultDTO, shouldCloseLU) -> { .setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() .setOnComplete((resultDTO, shouldCloseLU) -> {
.setNumCnf(resultDTO.getNumCnf()) PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
.setQtaCnf(resultDTO.getQtaCnf()) .setNumCnf(resultDTO.getNumCnf())
.setQtaTot(resultDTO.getQtaTot()) .setQtaCnf(resultDTO.getQtaCnf())
.setPartitaMag(resultDTO.getPartitaMag()) .setQtaTot(resultDTO.getQtaTot())
.setDataScad(resultDTO.getDataScad()); .setPartitaMag(resultDTO.getPartitaMag())
.setDataScad(resultDTO.getDataScad());
this.onLoadingStarted(); this.onLoadingStarted();
onComplete.run(pickedQuantityDTO, shouldCloseLU); onComplete.run(pickedQuantityDTO, shouldCloseLU);
}) })
.setOnAbort(() -> { .setOnAbort(() -> {
this.mViewmodel.resetMatchedRows(); this.mViewmodel.resetMatchedRows();
}) })
.show(getSupportFragmentManager(), "tag"); .show(getSupportFragmentManager(), "tag");
} }
@Override @Override

View File

@@ -17,8 +17,8 @@ import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.core.CommonConst; import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService; import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
import it.integry.integrywmsnative.core.exception.InvalidLUException; import it.integry.integrywmsnative.core.exception.InvalidLUException;
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
import it.integry.integrywmsnative.core.exception.NoLUFoundException; import it.integry.integrywmsnative.core.exception.NoLUFoundException;
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss; import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUBaseOperationsListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUBaseOperationsListener;
@@ -218,7 +218,6 @@ public class PickingResiViewModel {
private void singlePrint(MtbColt mtbColtToPrint, Runnable onComplete, RunnableArgs<Exception> onFailed) { private void singlePrint(MtbColt mtbColtToPrint, Runnable onComplete, RunnableArgs<Exception> onFailed) {
this.mPrinterRESTConsumer.printCollo( this.mPrinterRESTConsumer.printCollo(
PrinterRESTConsumer.Type.PRIMARIA,
mtbColtToPrint, mtbColtToPrint,
onComplete, onFailed); onComplete, onFailed);
@@ -303,10 +302,16 @@ public class PickingResiViewModel {
if (!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcodeScanDTO.getStringValue())) { if (!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcodeScanDTO.getStringValue())) {
this.sendError(new NotCurrentYearLUException()); this.sendError(new NotCurrentYearLUException());
} else { } else {
int numCollo = -1;
this.createNewLU( try {
UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()), numCollo = UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue());
CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, onComplete); this.createNewLU(
numCollo,
CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, onComplete);
} catch (Exception ex) {
this.sendError(ex);
}
} }
} else { } else {
@@ -328,7 +333,7 @@ public class PickingResiViewModel {
searchArtFromUL(mtbColt, onComplete); searchArtFromUL(mtbColt, onComplete);
} else this.sendError(new InvalidLUException()); } else this.sendError(new InvalidLUException());
} else { } else {
this.sendError(new NoArtsFoundException()); this.sendError(new NoResultFromBarcodeException(SSCC));
} }
}, this::sendError); }, this::sendError);
@@ -412,7 +417,7 @@ public class PickingResiViewModel {
private void loadMatchedRows(List<WithdrawableDtbDocr> matchedRows) { private void loadMatchedRows(List<WithdrawableDtbDocr> matchedRows) {
if (matchedRows == null || matchedRows.size() == 0) { if (matchedRows == null || matchedRows.size() == 0) {
this.sendError(new NoArtsFoundException()); this.sendError(new NoResultFromBarcodeException());
} else if (matchedRows.size() == 1) { } else if (matchedRows.size() == 1) {
WithdrawableDtbDocr matchedItem = matchedRows.get(0); WithdrawableDtbDocr matchedItem = matchedRows.get(0);

View File

@@ -18,6 +18,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -274,7 +275,8 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
break; break;
} }
filterLayoutView.show(requireActivity().getSupportFragmentManager(), "TAG"); if (!filterLayoutView.isAdded())
filterLayoutView.show(requireActivity().getSupportFragmentManager(), "TAG");
} }
@@ -290,9 +292,10 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
} else { } else {
tmpList = mViewModel.getOrderList().getValue(); tmpList = mViewModel.getOrderList().getValue();
} }
this.mOrdiniInevasiMutableData.clear(); this.mOrdiniInevasiMutableData.clear();
this.mOrdiniInevasiMutableData.addAll(convertDataModelToListModel(tmpList)); if (tmpList != null) {
this.mOrdiniInevasiMutableData.addAll(convertDataModelToListModel(tmpList));
}
} }
private List<MainListProdOrdineProduzioneElencoListModel> convertDataModelToListModel(List<OrdineAccettazioneInevasoDTO> dataList) { private List<MainListProdOrdineProduzioneElencoListModel> convertDataModelToListModel(List<OrdineAccettazioneInevasoDTO> dataList) {
@@ -382,9 +385,12 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
} }
private void initJtbComtCache(Runnable onComplete) { private void initJtbComtCache(Runnable onComplete) {
if (this.mViewModel.getOrderList().getValue() == null) {
this.jtbComtCache = new ArrayList<>();
onComplete.run();
return;
}
var jtbComts = Stream.of(Objects.requireNonNull(this.mViewModel.getOrderList().getValue())) var jtbComts = Stream.of(Objects.requireNonNull(this.mViewModel.getOrderList().getValue()))
.flatMap(x -> Stream.of(x.getCodJcom())) .flatMap(x -> Stream.of(x.getCodJcom()))
.toList(); .toList();

View File

@@ -55,7 +55,7 @@ public class ProdOrdineProduzioneRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) {
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });

View File

@@ -0,0 +1,356 @@
package it.integry.integrywmsnative.gest.prod_dettaglio_linea;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.Html;
import android.text.InputType;
import android.text.SpannableString;
import android.widget.Toast;
import androidx.databinding.Observable;
import androidx.databinding.ObservableField;
import com.google.android.material.chip.Chip;
import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.di.BindableString;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.databinding.ActivityProdDettaglioLineaBinding;
import it.integry.integrywmsnative.gest.prod_dettaglio_linea.dialogs.BottomSheetLineAction;
import it.integry.integrywmsnative.gest.prod_dettaglio_linea.dialogs.DialogStartProduction;
import it.integry.integrywmsnative.gest.prod_linee_produzione.dto.ProdLineStatusDTO;
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
public class ProdDettaglioLineaActivity extends BaseActivity implements ProdDettaglioLineaViewModel.Listener {
private static final String DATA_KEY_LINE = "keyLinea";
private static final String DATA_KEY_FRAGMENT_LISTENER = "onFragmentClose";
private ActivityProdDettaglioLineaBinding mBinding;
public final ObservableField<String> listaOrd = new ObservableField<>();
public final BindableString lineaLabel = new BindableString();
public final BindableBoolean isStarted = new BindableBoolean(false);
public final BindableBoolean isPaused = new BindableBoolean(false);
public final BindableBoolean flagShowProdInfo = new BindableBoolean(false);
public final BindableString hrNum = new BindableString();
public final BindableString codMart = new BindableString();
public final BindableString partitaMag = new BindableString();
public final BindableString productDescription = new BindableString();
private Runnable onResumeRunnable = null;
private int barcodeScannerIstanceID = -1;
@Inject
ProdDettaglioLineaViewModel mViewModel;
@Inject
DialogInputQuantityV2View mDialogInputQuantityV2View;
public static Intent newInstance(Context context, ProdLineStatusDTO prodLine) {
Intent myIntent = new Intent(context, ProdDettaglioLineaActivity.class);
String keyLine = DataCache.addItem(prodLine);
myIntent.putExtra(DATA_KEY_LINE, keyLine);
return myIntent;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = ActivityProdDettaglioLineaBinding.inflate(getLayoutInflater());
setContentView(mBinding.getRoot());
setSupportActionBar(mBinding.toolbar);
setTitle(R.string.line_details);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
ProdLineStatusDTO lineaProd = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_LINE));
if (lineaProd == null) {
Toast.makeText(this, "Selezionare una linea di produzione e riprovare", Toast.LENGTH_SHORT).show();
close();
return;
}
MainApplication.appComponent
.prodDettaglioLineaComponent()
.create()
.inject(this);
mViewModel.setListener(this);
mBinding.setViewModel(mViewModel);
mBinding.setView(this);
this.init();
mViewModel.init(lineaProd);
}
private void init() {
initBarcodeReader();
mViewModel.lineaProd.observe(this, lineaProd -> {
this.listaOrd.set(lineaProd.getListaOrd());
this.lineaLabel.set(lineaProd.getLabel());
this.isStarted.set(lineaProd.isStarted());
this.isPaused.set(lineaProd.isPaused());
this.partitaMag.set(lineaProd.getPartitaMag());
this.codMart.set(lineaProd.getCodMart());
this.productDescription.set(lineaProd.getDescrizioneProd());
this.flagShowProdInfo.set(lineaProd.isStarted() && !UtilityString.isNullOrEmpty(lineaProd.getCodMart()));
this.hrNum.set(lineaProd.getQtaAllocate().toString());
});
listaOrd.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
@Override
public void onPropertyChanged(Observable sender, int propertyId) {
renderOrdersChips();
}
});
getSupportFragmentManager()
.setFragmentResultListener(DATA_KEY_FRAGMENT_LISTENER, this, (requestKey, result) -> {
if (onResumeRunnable != null) {
onResumeRunnable.run();
onResumeRunnable = null;
}
});
}
private void renderOrdersChips() {
mBinding.ordersList.removeAllViews();
String listaOrdString = listaOrd.get();
if (!UtilityString.isNullOrEmpty(listaOrdString)) {
for (String ord : listaOrdString.split("\\|")) {
Chip chip = new Chip(this);
chip.setClickable(false);
chip.setText(ord);
mBinding.ordersList.addView(chip);
}
}
}
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
@Override
public void onSettingsRequest(ProdLineStatusDTO lineaProd) {
BottomSheetLineAction.newInstance(lineaProd, this::requestResources, this::requestOrderChange, this::requestProductionStop, this::requestMaterialRecover, BarcodeManager::enable).show(getSupportFragmentManager(), "BottomSheetLineAction");
}
@Override
public void confirmInconsistentDeposit(Runnable onConfirm) {
this.runOnUiThread(() -> {
DialogSimpleMessageView.makeWarningDialog(
Html.fromHtml("L'articolo che si vuole versare non è compatibile con nessun ordine presente sulla linea!"
+ "<br /> <br/>" +
"Vuoi versarlo comunque?"),
null,
onConfirm,
() -> {
onLoadingEnded();
BarcodeManager.enable();
}
).show(getSupportFragmentManager(), "confirmOrderClose");
});
}
@Override
public void requestQtaVersamento(MtbColr mtbColr,
RunnableArgs<PickedQuantityDTO> onComplete) {
onLoadingStarted();
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
.setMtbAart(mtbColr.getMtbAart())
.setInitialNumCnf(mtbColr.getNumCnf())
.setInitialQtaCnf(mtbColr.getQtaCnf())
.setInitialQtaTot(mtbColr.getQtaCol())
.setTotalQtaAvailable(mtbColr.getQtaCol())
.setTotalNumCnfAvailable(mtbColr.getNumCnf())
.setQtaCnfAvailable(mtbColr.getQtaCnf())
.setPartitaMag(mtbColr.getPartitaMag())
.setDataScad(mtbColr.getDataScadPartitaD())
.setCanOverflowOrderQuantity(false)
.setCanPartitaMagBeChanged(false)
.setCanLUBeClosed(false)
.setFocusOnStart(false);
if (!mDialogInputQuantityV2View.isVisible())
this.runOnUiThread(() -> {
onLoadingEnded();
mDialogInputQuantityV2View
.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
.setOnComplete((resultDTO, shouldCloseLU) -> {
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
.setNumCnf(resultDTO.getNumCnf())
.setQtaCnf(resultDTO.getQtaCnf())
.setQtaTot(resultDTO.getQtaTot())
.setPartitaMag(resultDTO.getPartitaMag())
.setDataScad(resultDTO.getDataScad());
onComplete.run(pickedQuantityDTO);
})
.setOnAbort(this::onLoadingEnded)
.show(this.getSupportFragmentManager(), "tag");
});
else this.onLoadingEnded();
}
public void onLineStop() {
onBackPressed();
}
private void initBarcodeReader() {
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessful(onScanSuccessful)
.setOnScanFailed(this::onError));
BarcodeManager.enable();
}
public void requestResources() {
this.onLoadingEnded();
BarcodeManager.disable();
this.runOnUiThread(() -> {
DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il numero di risorse da allocare", this.hrNum.get(), "n. risorse", qta -> {
this.onLoadingStarted();
try {
Integer hrNum = Integer.parseInt(qta);
this.mViewModel.startProductionLine(hrNum);
} catch (NumberFormatException ex) {
this.onError(new Exception("Inserire un numero di risorse valido"));
}
}, BarcodeManager::enable, InputType.TYPE_CLASS_NUMBER).show();
});
}
public void requestOrderChange() {
this.onLoadingEnded();
this.runOnUiThread(() -> {
DialogStartProduction.newInstance((dto) -> {
this.mViewModel.checkBarcodeAndStartOrdine(dto);
}).show(getSupportFragmentManager(), "DialogStartProduction");
});
}
public void requestProductionStop() {
this.onLoadingEnded();
BarcodeManager.disable();
ProdLineStatusDTO lineaProd = mViewModel.getLineaProd();
if (UtilityString.isNullOrEmpty(lineaProd.getListaOrd())) {
mViewModel.stopProduction();
} else {
this.confirmOrderClose(() -> {
mViewModel.stopProduction();
});
}
}
public void requestMaterialRecover() {
this.onLoadingEnded();
BarcodeManager.disable();
this.runOnUiThread(() -> {
getSupportFragmentManager()
.beginTransaction()
.add(R.id.frame_layout_container,
ProdRecuperoMaterialeFragment.newInstance(null, DATA_KEY_FRAGMENT_LISTENER))
.addToBackStack("ProdRecuperoMaterialeFragment")
.commit();
});
}
@Override
public void successDialog(String message, Runnable onComplete) {
BarcodeManager.disable();
this.runOnUiThread(() -> DialogSimpleMessageView.makeSuccessDialog(getResources().getString(R.string.success),
new SpannableString(message), null, onComplete).show(getSupportFragmentManager(), "successDialog"));
}
@Override
public void showToast(String message, Runnable onComplete) {
this.runOnUiThread(() -> {
UtilityToast.showToast(message);
onComplete.run();
});
}
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
this.onLoadingStarted();
this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded);
};
@Override
public void confirmOrderClose(Runnable onConfirm) {
this.onLoadingEnded();
this.runOnUiThread(() -> {
DialogSimpleMessageView.makeWarningDialog(
Html.fromHtml("Per completare l'operazione è necessario chiudere gli ordini attualmente aperti sulla linea."
+ "<br /> <br/>" +
"Continuare?"),
null,
() -> {
DialogSimpleMessageView.makeInfoDialog(
null,
Html.fromHtml("Vuoi recuperare del materiale prima di chiudere gli ordini?"),
null,
() -> {
onResumeRunnable = onConfirm;
this.requestMaterialRecover();
},
onConfirm
).show(getSupportFragmentManager(), "confirmOrderClose");
},
BarcodeManager::enable
).show(getSupportFragmentManager(), "confirmOrderClose");
});
}
public void close() {
onBackPressed();
}
@Override
public void onBackPressed() {
int count = getSupportFragmentManager().getBackStackEntryCount();
if (count > 0) {
getSupportFragmentManager().popBackStack();
} else {
BarcodeManager.removeCallback(barcodeScannerIstanceID);
super.onBackPressed();
}
}
}

View File

@@ -0,0 +1,15 @@
package it.integry.integrywmsnative.gest.prod_dettaglio_linea;
import dagger.Subcomponent;
@Subcomponent
public interface ProdDettaglioLineaComponent {
@Subcomponent.Factory
interface Factory {
ProdDettaglioLineaComponent create();
}
void inject(ProdDettaglioLineaActivity prodDettaglioLineaActivity);
}

View File

@@ -0,0 +1,19 @@
package it.integry.integrywmsnative.gest.prod_dettaglio_linea;
import dagger.Module;
import dagger.Provides;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ProductionLinesRESTConsumer;
@Module(subcomponents = ProdDettaglioLineaComponent.class)
public class ProdDettaglioLineaModule {
@Provides
ProdDettaglioLineaViewModel providesProdDettaglioLineaViewModel(ProductionLinesRESTConsumer productionLinesRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, MesRESTConsumer mesRESTConsumer) {
return new ProdDettaglioLineaViewModel(productionLinesRESTConsumer, barcodeRESTConsumer, colliMagazzinoRESTConsumer, mesRESTConsumer);
}
}

View File

@@ -0,0 +1,236 @@
package it.integry.integrywmsnative.gest.prod_dettaglio_linea;
import androidx.lifecycle.MutableLiveData;
import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ProductionLinesRESTConsumer;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.prod_linee_produzione.dto.ProdLineStatusDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
public class ProdDettaglioLineaViewModel {
private Listener mListener;
private final ProductionLinesRESTConsumer productionLinesRESTConsumer;
private final ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer;
private final MesRESTConsumer mesRESTConsumer;
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
public final MutableLiveData<ProdLineStatusDTO> lineaProd = new MutableLiveData<>();
@Inject
public ProdDettaglioLineaViewModel(ProductionLinesRESTConsumer productionLinesRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliMagazzinoRESTConsumer magazzinoRESTConsumer, MesRESTConsumer mesRESTConsumer) {
this.productionLinesRESTConsumer = productionLinesRESTConsumer;
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
this.colliMagazzinoRESTConsumer = magazzinoRESTConsumer;
this.mesRESTConsumer = mesRESTConsumer;
}
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
this.executeEtichettaAnonima(barcodeScanDTO, onComplete);
} else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
this.executeEAN128(barcodeScanDTO, onComplete);
} else {
onComplete.run();
}
}
private void executeEtichettaAnonima(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
handleSSCCBarcode(barcodeScanDTO.getStringValue(), onComplete);
}
private void handleSSCCBarcode(String sscc, Runnable onComplete) {
this.colliMagazzinoRESTConsumer.getBySSCC(sscc, true, false, mtbColt -> {
if (mtbColt == null) {
this.sendError(new NoLUFoundException());
} else {
if (mtbColt.getMtbColr().size() <= 0) {
this.sendError(new Exception("E' stata scansionata una UL già vuota"));
} else {
this.sendOnLUSelected(mtbColt);
}
}
}, this::sendError);
}
private void sendOnLUSelected(MtbColt mtbColt) {
this.sendOnLoadingStarted();
this.checkOrdersCompatibility(mtbColt, () -> {
MtbColr row = mtbColt.getMtbColr().get(0);
mListener.requestQtaVersamento(
row,
dto -> {
sendOnLoadingStarted();
row.setQtaCnf(dto.getQtaCnf());
row.setNumCnf(dto.getNumCnf());
row.setQtaCol(dto.getQtaTot());
row.setPesoLordoKg(null);
row.setPesoNettoKg(null);
ProdLineStatusDTO prodLine = lineaProd.getValue();
MtbDepoPosizione posizione = new MtbDepoPosizione();
posizione.setPosizione(prodLine.getCodJfas());
posizione.setCodMdep(prodLine.getCodMdepLav());
posizione.setFlagLineaProduzione("S");
this.colliMagazzinoRESTConsumer.createColloScaricoDaCarico(mtbColt, posizione,
generatedMtbColt -> {
this.sendOnLoadingEnded();
this.mListener.showToast("Versamento completato!", BarcodeManager::enable);
}, this::sendError);
});
});
}
private void checkOrdersCompatibility(MtbColt mtbColt, Runnable onComplete) {
mesRESTConsumer.getOrdiniLavorazioneMateriale(lineaProd.getValue().getCodJfas(), getIdMaterialeFromCollo(mtbColt), ordini -> {
if (ordini != null && ordini.size() > 0) {
onComplete.run();
} else {
this.mListener.confirmInconsistentDeposit(onComplete);
}
}, this::sendError);
}
private String getIdMaterialeFromCollo(MtbColt mtbColt) {
MtbAart articolo = mtbColt.getMtbColr().get(0).getMtbAart();
return UtilityString.isNullOrEmpty(articolo.getIdArtEqui()) ? articolo.getCodMart() : articolo.getIdArtEqui();
}
private void executeEAN128(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
this.mBarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
if (ean128Model != null && !UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
handleSSCCBarcode(ean128Model.Sscc, onComplete);
} else {
this.sendError(new NoLUFoundException());
}
}, this::sendError);
}
public void settings() {
this.mListener.onSettingsRequest(lineaProd.getValue());
}
private void sendOnLoadingStarted() {
if (this.mListener != null) mListener.onLoadingStarted();
}
private void sendOnLoadingEnded() {
if (this.mListener != null) mListener.onLoadingEnded();
}
private void sendError(Exception ex) {
if (this.mListener != null) mListener.onError(ex);
}
public void startProductionLine(Integer hrNum) {
this.sendOnLoadingStarted();
ProdLineStatusDTO prodLine = lineaProd.getValue();
this.productionLinesRESTConsumer.avviaLineaDiProduzione(prodLine.getCodJfas(),
hrNum,
() -> this.mListener.successDialog("Operazione completata", this::loadLineDetails),
this::sendError);
}
private void startProduction(String codMart, String partitaMag) {
this.sendOnLoadingStarted();
ProdLineStatusDTO prodLine = lineaProd.getValue();
this.productionLinesRESTConsumer.avviaProduzioneArticoloSuLinea(prodLine.getCodJfas(), codMart, partitaMag,
() -> this.mListener.successDialog("Operazione completata", this::loadLineDetails),
this::sendError);
}
public void stopProduction() {
this.sendOnLoadingStarted();
ProdLineStatusDTO prodLine = lineaProd.getValue();
this.productionLinesRESTConsumer.arrestaLineaDiProduzione(prodLine.getCodJfas(),
() -> this.mListener.successDialog("Operazione completata", this::onLineStop),
this::sendError);
}
private void onLineStop() {
this.mListener.onLineStop();
}
public void checkBarcodeAndStartOrdine(BarcodeScanDTO dto) {
this.sendOnLoadingStarted();
ProdLineStatusDTO prodLine = lineaProd.getValue();
mBarcodeRESTConsumer.decodeEan128(dto, (ean128) -> {
String codMart = ean128.Content;
String partitaMag = ean128.BatchLot;
if (!prodLine.isStarted()) {
this.sendError(new Exception("Impossibile avviare una produzione su una linea ferma!"));
} else if (UtilityString.isNullOrEmpty(prodLine.getListaOrd())) {
this.startProduction(codMart, partitaMag);
} else {
this.mListener.confirmOrderClose(() -> {
this.startProduction(codMart, partitaMag);
});
}
}, this::sendError);
}
public void loadLineDetails() {
sendOnLoadingStarted();
if (lineaProd.getValue() == null) {
this.sendError(new Exception("Nessuna linea selezionata!"));
return;
}
productionLinesRESTConsumer.getLineDetails(lineaProd.getValue(), linea -> {
this.lineaProd.postValue(linea);
sendOnLoadingEnded();
}, this::sendError);
}
public void init(ProdLineStatusDTO lineaProd) {
this.lineaProd.setValue(lineaProd);
this.loadLineDetails();
}
public ProdLineStatusDTO getLineaProd() {
return lineaProd.getValue();
}
public interface Listener extends ILoadingListener {
void onError(Exception ex);
void successDialog(String message, Runnable onComplete);
void showToast(String message, Runnable onComplete);
void requestQtaVersamento(MtbColr mtbColr, RunnableArgs<PickedQuantityDTO> onComplete);
void onSettingsRequest(ProdLineStatusDTO lineaProd);
void confirmInconsistentDeposit(Runnable onConfirm);
void onLineStop();
void confirmOrderClose(Runnable onConfirm);
}
public ProdDettaglioLineaViewModel setListener(Listener listener) {
this.mListener = listener;
return this;
}
}

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