Compare commits
839 Commits
v1.30.06__
...
v1.44.08(4
| Author | SHA1 | Date | |
|---|---|---|---|
| a02035e9b8 | |||
| deee26d55b | |||
| 00443b46c8 | |||
| 9228eaf01b | |||
| 51f9e1f58c | |||
| 6747ee077b | |||
| e11e270101 | |||
| bc27355ed6 | |||
| 078d9af116 | |||
| 9b14e1186e | |||
| 779c606c2a | |||
| 581e56a245 | |||
| 7f468e19bd | |||
| e8a511d49e | |||
| 1988ad993f | |||
| 6105c44dab | |||
| d3b7cd8cd6 | |||
| 36c48f28d1 | |||
| 93b18531ab | |||
| 27edd84442 | |||
| e24e6858fb | |||
| fa10973626 | |||
| 521e2fe62b | |||
| 7e7938ea1a | |||
| 4fe48bd02a | |||
| f26bc28ba1 | |||
| aaf8b96070 | |||
| c5720059f3 | |||
| 361faf235d | |||
| f85f5d63a6 | |||
| 526bc11626 | |||
| 95d73b5bc5 | |||
| 73e0f03886 | |||
| 91bc82ed16 | |||
| c6a30588e6 | |||
| 26c09c02ab | |||
| c34e6723d8 | |||
| bf2a039700 | |||
| cebe5afd0a | |||
| 2e8e4c0ccc | |||
| 1c5c8c61cf | |||
| 726d9fd29c | |||
| d7eeeeeac2 | |||
| ee72f8364e | |||
| a95ff0b0e5 | |||
| 57ced048a0 | |||
| ca545e2d44 | |||
| 0b777137d5 | |||
| d19f4de424 | |||
| 56d509b07b | |||
| fe3a9d84d5 | |||
| dc38311125 | |||
| bce8f2a8b7 | |||
| 13ec0c745e | |||
| b5f7e12f5a | |||
| 90e8ff128c | |||
| 998b1057e0 | |||
| d4a7dee121 | |||
| e85e05a526 | |||
| 7f953e78cf | |||
| 8b536eb0b0 | |||
| f390548d66 | |||
| c6a2b8c6ea | |||
| a046e31412 | |||
| 716f6d4daa | |||
| 9b451ff1bc | |||
| 6d48182d90 | |||
| e3d8defa5b | |||
| dc24b43311 | |||
| 75f55ebd44 | |||
| 09cebb1c7e | |||
| 9dc0935cc1 | |||
| 5bfd695f2d | |||
| 8e0b05b6af | |||
| ddc441e76e | |||
| 20602cadb5 | |||
| 416ac0a2a5 | |||
| 49933c8493 | |||
| b1bc72a1a5 | |||
| c498a373f5 | |||
| bd04d6263e | |||
| fbe9244000 | |||
| 6e52a3c0c7 | |||
| 9f92274720 | |||
| 6d431bb251 | |||
| 5265b949af | |||
| db875491d0 | |||
| 778fdff69a | |||
| 4b54aa3c02 | |||
| 019688a5cc | |||
| 00fc3a59eb | |||
| e5244e75a3 | |||
| cb77c21656 | |||
| 7b0f7f16ba | |||
| e23446654d | |||
| b3641534c9 | |||
| a3a5f65e53 | |||
| d5c0f388db | |||
| 8ae3820aa2 | |||
| ac6f64d494 | |||
| 9d001f8896 | |||
| 24e9cffeea | |||
| b0f2763a85 | |||
| cc343c296f | |||
| bc9b60b0ac | |||
| 856592e1fe | |||
| cd28d01354 | |||
| 653cd3fd75 | |||
| 73b1a77a12 | |||
| 777d6a3c5b | |||
| 98f520427e | |||
| 403f2ec57c | |||
| e69d99fdf1 | |||
| b48b2fbac9 | |||
| 00515aaf9b | |||
| e70d5697c3 | |||
| fb6d206203 | |||
| d3a9c87d14 | |||
| 39841f6b0d | |||
| 7ed3b421a1 | |||
| 3b5eb32190 | |||
| be31b87eac | |||
| 3d341ac99d | |||
| 9df1c37ee9 | |||
| 385a28c29b | |||
| e26568cdf1 | |||
| 191953a003 | |||
| 47143fe97d | |||
| 387ce6a555 | |||
| 47ff01805c | |||
| 0e24f7188c | |||
| 8b3d1f2a2e | |||
| dcdc823b5f | |||
| 7201e5c8f8 | |||
| 929c52b94c | |||
| 2adfda5f30 | |||
| 421accaf15 | |||
| 574ad6176b | |||
| 290d737ff7 | |||
| 4b0fbd0b6b | |||
| 6327089a55 | |||
| 807c3a8cde | |||
| 665c261b9a | |||
| bdd6f21522 | |||
| 482243ceff | |||
| 9890fbfec0 | |||
| 2a0465dc0f | |||
| 3ebe311728 | |||
| 95a51ecc7a | |||
| 342753aeac | |||
| 2b467f56d7 | |||
| a27db0ab68 | |||
| 845a4c8faa | |||
| 7b9959e68d | |||
| 0328ebad85 | |||
| 77c5252bf6 | |||
| c42a597bb4 | |||
| b40781db84 | |||
| f5a0bf67c8 | |||
| 044d60fb66 | |||
| 7999e98bd9 | |||
| 7c14688ef3 | |||
| 8039d1942d | |||
| 6c8fd2518e | |||
| 03e2f4390b | |||
| 08656ae276 | |||
| 9f2ba56c59 | |||
| 34e1ba8f95 | |||
| 4e95f4f9c9 | |||
| 7ee59ea814 | |||
| 1463510b08 | |||
| a771335ff1 | |||
| 7b1f58412a | |||
| d897c83165 | |||
| 44b9bc3fc1 | |||
| fa95ed1391 | |||
| 26ca580ba4 | |||
| f65e69b745 | |||
| 5a147fb0de | |||
| 64e38ce05a | |||
| 6c79a1781d | |||
| 6177d84131 | |||
| c6975badce | |||
| c548c6484f | |||
| 9aae16521f | |||
| 559ff4e94c | |||
| 7b11f503d8 | |||
| bc788c3a34 | |||
| f936c71188 | |||
| 25a7982a87 | |||
| 74a3749e44 | |||
| 074fb10b44 | |||
| 4f490eb737 | |||
| 2b981b6c40 | |||
| bec80d980f | |||
| 8a5c8f5c94 | |||
| da301ec6b2 | |||
| a5a9cb1c50 | |||
| cef74ab71f | |||
| 3f647952c0 | |||
| 9bf55aae85 | |||
| f9a31faa78 | |||
| 9a643837d4 | |||
| f458a52b18 | |||
| 132437d134 | |||
| 022841c195 | |||
| bdbecfb037 | |||
| 1a501af172 | |||
| fe558a8be8 | |||
| 05d930d8f7 | |||
| 267aa85e01 | |||
| 89a98cac8b | |||
| efc052d622 | |||
| 6f61f3af9b | |||
| e7d06c9752 | |||
| 81e3c70960 | |||
| 76a0fe9b6f | |||
| a9bab6db56 | |||
| 85197c1f9b | |||
| ece434806f | |||
| 0962192144 | |||
| 38139a1ec9 | |||
| 56e5603256 | |||
| b5c2efa9e2 | |||
| 26f9f0e16c | |||
| 9abba0ce82 | |||
| c616a9d31a | |||
| e45a980ce3 | |||
| 91bca90e5d | |||
| c5d09b0d8b | |||
| 46c9fa184d | |||
| 3a31fba1b4 | |||
| 6cded1d2d1 | |||
| 027d0e891b | |||
| 0da31ef866 | |||
| 56f14c064e | |||
| 09c929803f | |||
| 93abea0823 | |||
| 5c5216e207 | |||
| 7a20ff6ddc | |||
| 048b7d7f56 | |||
| f009726cf0 | |||
| fb213cbdbb | |||
| 971dcaed87 | |||
| 7b132def2a | |||
| 998dc54292 | |||
| 157eaf8760 | |||
| 10ffcf7806 | |||
| 392dd18338 | |||
| d4c7cdf400 | |||
| cde96ae694 | |||
| e49d35fdbc | |||
| 55db6d362d | |||
| 925cb6ae07 | |||
| c4f1d53199 | |||
| e18ac7a390 | |||
| cc454aea1a | |||
| 5cf275e43c | |||
| 53fe1db488 | |||
| 64082fc5ee | |||
| f9c642ad13 | |||
| bd7edf2357 | |||
| b7605bd28c | |||
| ad01283511 | |||
| adeab93b17 | |||
| 51480c2b06 | |||
| d04b3797ce | |||
| 518a00becf | |||
| c808cf7ce3 | |||
| 8cb488d81f | |||
| ed3f84d0ea | |||
| d9b02c4402 | |||
| 23522c9370 | |||
| f79b40c574 | |||
| 835915b46a | |||
| e643f25aa3 | |||
| 230a32139d | |||
| b0272cd9e0 | |||
| fa9947f22b | |||
| 5d3bb333e1 | |||
| 9f7085dfed | |||
| 95f765756c | |||
| a846ec00d7 | |||
| 6edc1917e1 | |||
| 1b864253b5 | |||
| f212987547 | |||
| 76f9c7030b | |||
| 05bc6e3fbe | |||
| 38dc5e134c | |||
| 76cf6c7d66 | |||
| 21100d517c | |||
| 37f83cd642 | |||
| f29f832387 | |||
| dd523ed6d8 | |||
| 879cfc5f7e | |||
| 83a6dd29f2 | |||
| cc85d83267 | |||
| 5d427a258e | |||
| 75e0a13f10 | |||
| 0862727176 | |||
| 6c02fcc9d5 | |||
| cd38c1b301 | |||
| c822f14a10 | |||
| 76683cb80c | |||
| 3041498ff1 | |||
| 66e0ce15cb | |||
| e12da84fa3 | |||
| bd4f28eb6d | |||
| c25b2e6cb5 | |||
| b86a1eb1bd | |||
| a9b5483005 | |||
| 29c181cff1 | |||
| 614da5ec5a | |||
| 5342f96076 | |||
| 479950df14 | |||
| 51fa32d48d | |||
| e491c56f3f | |||
| 5c505e2fe1 | |||
| 67e88d01e7 | |||
| 9454614af6 | |||
| 535a095b0a | |||
| c6457ccf1c | |||
| 3f470df462 | |||
| af5c5338b7 | |||
| e832db3214 | |||
| 8b432d1b19 | |||
| d33eb81968 | |||
| be60cdb971 | |||
| 062f877777 | |||
| 5187564250 | |||
| fc22c119f6 | |||
| dd8b696862 | |||
| 99a5e162de | |||
| 84dcf30aac | |||
| 388c0641cf | |||
| 40f2c86eec | |||
| 34bd0109c0 | |||
| b4199f38aa | |||
| 299e066436 | |||
| 0098fdaf5a | |||
| 76d26765ef | |||
| c5b6e80aaf | |||
| a1b3517b07 | |||
| bd3fdd9ab1 | |||
| 377950c978 | |||
| d17e528158 | |||
| a0c9c40ab5 | |||
| 175f9e226b | |||
| 5f2a2d96e9 | |||
| 3a167befae | |||
| 364c627f2d | |||
| c0a9477000 | |||
| f1f56b97d6 | |||
| 4a79b6c1bf | |||
| 3fddb6bcf7 | |||
| 435b6d753a | |||
| f0e1cf7f0b | |||
| 7049552f16 | |||
| 4e53189d56 | |||
| 9aa38b6fca | |||
| 5745d249f0 | |||
| 089ca061a7 | |||
| 725372befe | |||
| 6a84828506 | |||
| 1c0dc8c6f2 | |||
| 59350f768e | |||
| 0ebcf934ff | |||
| 20c934a28e | |||
| b6abeee972 | |||
| 7ecf9e4807 | |||
| 8030a90e8e | |||
| 61810c44c7 | |||
| d64bc584f0 | |||
| 4f4dea9097 | |||
| 707c852377 | |||
| 0ae1ac87d5 | |||
| f03fe78ed3 | |||
| 77cf6ac4db | |||
| 48d1a34c52 | |||
| 258f150dbb | |||
| 14783dfef5 | |||
| e62e5d11f0 | |||
| 648d908e95 | |||
| db3eb1b062 | |||
| fb2bed2dbf | |||
| f45010650a | |||
| 6022cfea1f | |||
| 1ceb8c9cf9 | |||
| 3c86db62c0 | |||
| 49687efc16 | |||
| 62835878a6 | |||
| 02cd92f2dd | |||
| 1014043c53 | |||
| bd087fbf73 | |||
| 12a1ce1654 | |||
| fbb7d414f1 | |||
| a09ed92945 | |||
| 0194a5a49d | |||
| 112110e10f | |||
| 8045d8b4e9 | |||
| d839d94d34 | |||
| 5728481a94 | |||
| 4b1632c265 | |||
| b95863d66d | |||
| 2e360e8104 | |||
| 7c52a692e3 | |||
| 17e3b8856c | |||
| 550cf3506e | |||
| 243d0d1d30 | |||
| 98649e3a42 | |||
| 9dabbee1c7 | |||
| 1c9f4de437 | |||
| b6bd8d5e01 | |||
| 502ff6f684 | |||
| 50e58446b4 | |||
| f8df1ffa96 | |||
| adf80ae3f5 | |||
| d81f623ee6 | |||
| 84c6b7099b | |||
| 965a60b6e8 | |||
| 4ba1b847e7 | |||
| f5ad8e8b64 | |||
| 4863b31bb6 | |||
| 8411b0fc17 | |||
| 6541f17555 | |||
| 143a6c9e9c | |||
| 8ef216318e | |||
| 946d3e6593 | |||
| 0bdc3a0638 | |||
| 49782755bc | |||
| 2c5fb3ba48 | |||
| bf732a1182 | |||
| a73ecc1e81 | |||
| 818351f1d0 | |||
| 27577d10cf | |||
| 09dd2ef31e | |||
| 86507d41c7 | |||
| ea6585152c | |||
| 01d7e433b5 | |||
| 185288b221 | |||
| ba35a6b32d | |||
| 04838ce08f | |||
| 7c936bc387 | |||
| 6c30400aa9 | |||
| 03aa2b17ac | |||
| 8c24f5f025 | |||
| 7f9524e0b2 | |||
| e6b50ef7da | |||
| 2275db39b3 | |||
| 3a3680b2b2 | |||
| 2189acce5a | |||
| 4a4e290a9c | |||
| 1d92759653 | |||
| bc9f4121ef | |||
| cc54c6decb | |||
| c592ba0795 | |||
| 09d009bcc5 | |||
| 95bc3031df | |||
| 0aca5df3fe | |||
| 2ce2b8b25c | |||
| bea30a5400 | |||
| d520e18a30 | |||
| ebc0d22e9f | |||
| 19122ed637 | |||
| 138500a16f | |||
| 8d93da11b1 | |||
| 9db04fcd02 | |||
| 70b2fbd47b | |||
| 9361d786b4 | |||
| c7db59b70f | |||
| 1008e2aece | |||
| d2703fd495 | |||
| 68f576fb93 | |||
| 69758da7e2 | |||
| b832a593f4 | |||
| c115a6f9f1 | |||
| 35210db708 | |||
| 51728a8103 | |||
| 3961721241 | |||
| 5d5ca02c16 | |||
| be8739c167 | |||
| 8c6b19a064 | |||
| 8751b7c698 | |||
| 42b16975d6 | |||
| 23da1b3e94 | |||
| d003a0322e | |||
| 1e129d1ea9 | |||
| a7dbe55ad2 | |||
| 99f21b19f1 | |||
| eeb06e105e | |||
| 5988667944 | |||
| 77e3d00bef | |||
| 4b475ef1e5 | |||
| 1ec0611e2a | |||
| bd81385cac | |||
| 6dbcdb0475 | |||
| e1fddc8682 | |||
| a046f736b0 | |||
| 696ea31d7d | |||
| 3d9e33464a | |||
| ab74a9cbad | |||
| d56dcc0ed2 | |||
| 7e73aceeb7 | |||
| d63c80d6b7 | |||
| bc9016cf93 | |||
| ff128a1de2 | |||
| fa6ad5a150 | |||
| a8aaf69c57 | |||
| 9c86598f03 | |||
| 031cbc8d0a | |||
| df63fbe4af | |||
| 1372e831f7 | |||
| c31700d9cb | |||
| e6ecebd49a | |||
| dfec2f2bd3 | |||
| 3d425b6b02 | |||
| 318a8f645e | |||
| 8ec314044f | |||
| 2965b18a5f | |||
| 24f6341ff6 | |||
| 589a179a1b | |||
| afc2aef691 | |||
| 19e4a14c95 | |||
| 8237466adf | |||
| 3c1471ee8d | |||
| 099d5fa54d | |||
| 8b04f3e696 | |||
| 04ef20c69a | |||
| d08ec43d29 | |||
| 64e5200912 | |||
| 9e79653769 | |||
| 1fee2c901a | |||
| 3713bb5e49 | |||
| fdeb98b82a | |||
| 3e68dd2d36 | |||
| 1a964d7a97 | |||
| 43df6fc9f5 | |||
| 10f7ecd79b | |||
| 9a60b1ff86 | |||
| 386d51ffd7 | |||
| d3804a4601 | |||
| 04720c1d97 | |||
| 0826aa0445 | |||
| 7ceb51a54b | |||
| e8351ca75b | |||
| f8ceb1fb2d | |||
| 4ef49f3523 | |||
| 21ed15a2ea | |||
| aacec1dfde | |||
| ac7e0443a6 | |||
| 4bbb0d5cbb | |||
| 05c28d62d8 | |||
| bf2ac81ab8 | |||
| 17a78ef044 | |||
| 3c78c2787a | |||
| c7358b536e | |||
| 4f9fe14f7e | |||
| 0934765176 | |||
| b7d3cb18b9 | |||
| 227c67dc23 | |||
| da3c9eae6e | |||
| bf37a1acaf | |||
| 2a8974e9c6 | |||
| c34d7dc777 | |||
| 461a2f705e | |||
| 705dd96a0e | |||
| 10128a1bae | |||
| 54d40ca06e | |||
| e4aa2d19d9 | |||
| 6251c0f1ac | |||
| 3caed63b7f | |||
| 75bc046cf5 | |||
| 97d27b047d | |||
| 44e00f4f98 | |||
| 81b053ee06 | |||
| f1b5a7ec1b | |||
| 2d4211d329 | |||
| c5ba78eeda | |||
| 1faaef7062 | |||
| 762c5fd5b5 | |||
| 9af5970ec7 | |||
| 3a5836ba4b | |||
| 72b0e29ae6 | |||
| e0cc802b62 | |||
| 2d4d9cef4e | |||
| 4a8a21b970 | |||
| 5103a53c11 | |||
| 11c4cba70c | |||
| b1dba20973 | |||
| 920c22083b | |||
| f9230ac341 | |||
| 6344c4b77d | |||
| d4c111dedc | |||
| 65dda1d5c0 | |||
| 4a7406fda1 | |||
| ef17e7a0c7 | |||
| c45850555e | |||
| 303690eed2 | |||
| ae62b26edf | |||
| 2e39754c20 | |||
| 0ae6bbcd96 | |||
| 529455931d | |||
| 46d0510ed8 | |||
| b02e12d76e | |||
| c6bbde2b67 | |||
| cfbb27a67b | |||
| 35283fc11b | |||
| c3d62f88b4 | |||
| fc8469bf07 | |||
| 400f1440db | |||
| ad12e7e65b | |||
| a63e3817b5 | |||
| cbd772bf7e | |||
| e90bd46a42 | |||
| 96bd5d516c | |||
| d9306e13c2 | |||
| fc80baeaee | |||
| c0b49b68f7 | |||
| 73242bc208 | |||
| d4b60a51bd | |||
| 1bc687c79a | |||
| 3a6b0949d4 | |||
| bfc03a4ef9 | |||
| 4dfa796790 | |||
| f0db805c84 | |||
| 0cc742e103 | |||
| d01319c417 | |||
| c0b9496041 | |||
| d4e7832f80 | |||
| cb4f9e68f5 | |||
| ac4a5b1d34 | |||
| 39ebc9d367 | |||
| 7ef0299282 | |||
| 6a998d6605 | |||
| 9eb4b0a621 | |||
| f55080f7ca | |||
| 7fb6109e18 | |||
| f419944699 | |||
| 8de54a504b | |||
| 6f2be2b459 | |||
| fa413aba25 | |||
| ab6eeb91a6 | |||
| 16cbe01157 | |||
| 16cb685bb3 | |||
| 28501c5509 | |||
| 79c4bdad48 | |||
| 68007ebc8e | |||
| c5eec26f8d | |||
| 5c3f8d8717 | |||
| 43aa0f0324 | |||
| 4ab7bf27d7 | |||
| 28f4ac4414 | |||
| 60414c949e | |||
| ff09147968 | |||
| 17e66af99a | |||
| 762ab2719d | |||
| 95f282cd4d | |||
| 029979c463 | |||
| e748161dda | |||
| c2c2a1f984 | |||
| fd13f2f1b4 | |||
| ac6cca1eda | |||
| dc46b36624 | |||
| 42aa655021 | |||
| b89085a9c3 | |||
| 557644f024 | |||
| 258ed9d7ca | |||
| be7d3775cc | |||
| 93ffb191b5 | |||
| 8eb58a4d64 | |||
| 4bc8374ea3 | |||
| f76295c3f6 | |||
| b8486b677f | |||
| 1ad2d9ca9b | |||
| a57eadeab3 | |||
| 1c34b120db | |||
| c6c19ca04b | |||
| 987d667350 | |||
| e704bd1597 | |||
| 0f08d704ac | |||
| b340c2270d | |||
| d3c518b7df | |||
| d8a0594600 | |||
| 7af451724a | |||
| 6cbfb1d81b | |||
| a8c28d7624 | |||
| 3c7792febb | |||
| 4f2dfb82e6 | |||
| cd2c04ad0c | |||
| a1d8e98dfe | |||
| 80fb6737fe | |||
| eadd93dfaf | |||
| 12919613ab | |||
| 7da729205c | |||
| 1bfb734139 | |||
| 09ae517903 | |||
| 0735312c98 | |||
| c31e1ae79a | |||
| 3a9b6a99eb | |||
| 3da92d4630 | |||
| 1d54680db6 | |||
| 384214e084 | |||
| 03dc6e93be | |||
| 2ba4e5d11e | |||
| 78c6e98084 | |||
| 968eed44cb | |||
| ee784b27c6 | |||
| bac849324f | |||
| d823856ac5 | |||
| a49ee430e2 | |||
| d8672e1c22 | |||
| d8c6464830 | |||
| af5d19eb55 | |||
| 8fe0a1fd07 | |||
| b0a7a93f85 | |||
| 10f888b5d5 | |||
| 95807fbfbc | |||
| 4317e083a6 | |||
| 0c54a32e39 | |||
| 62dc62aa99 | |||
| 603fd6ad96 | |||
| 2182a970ac | |||
| 9b823fdca8 | |||
| 904c825472 | |||
| a15d225998 | |||
| 62f8ee61d3 | |||
| e3b8373bb9 | |||
| 0cdbbc096c | |||
| 895c21cee4 | |||
| d541761ac6 | |||
| 1df84ba046 | |||
| 72773deaf1 | |||
| 165568b7e3 | |||
| 3396e295fa | |||
| 0f3f593abd | |||
| df48ea3b32 | |||
| 5e52d83c40 | |||
| 0a71f54814 | |||
| c18828cdda | |||
| 92073fa8bb | |||
| 4131dd7e97 | |||
| 3c4fdea0ec | |||
| 71c73e8cde | |||
| 1a66d4f541 | |||
| d9c33dc5f5 | |||
| 1edcba63aa | |||
| 2566311f96 | |||
| c01cbc1bac | |||
| 9c95b107d5 | |||
| c2e1c048be | |||
| c3bfe70093 | |||
| a6cb8c9c9c | |||
| 5908e076a4 | |||
| 4445e9aff2 | |||
| 9cd0855dcf | |||
| d807ab1f31 | |||
| 69b88b1f6d | |||
| 35f1495ebc | |||
| 7fdc964687 | |||
| 8322303351 | |||
| a7f5f5f505 | |||
| 9b1a00d09c | |||
| 72ebf8f135 | |||
| be58e333b6 | |||
| 42620bd324 | |||
| d4deade046 | |||
| 846393304a | |||
| c3ceae8027 | |||
| 7b4d7db265 | |||
| 1c6cf9a02b | |||
| fd2d4fb47b | |||
| 094f9b68f6 | |||
| be418d3d26 | |||
| 25813a6362 | |||
| 51c5d3a0c7 | |||
| e964220655 | |||
| e493f1796b | |||
| 4882645311 | |||
| 468f1e5b58 | |||
| 79add4f60a | |||
| 975763f400 | |||
| 5eac3f14cc | |||
| bed5b36ade | |||
| 7678ce1a50 | |||
| b3faf38455 | |||
| 283cb59d42 | |||
| 1867ac8742 | |||
| d210e3b3e0 | |||
| 8bb2f48090 | |||
| 15b4d728e6 | |||
| 3018123110 | |||
| b02eaf02a8 | |||
| ad9795a3a3 | |||
| 170411383f | |||
| 9e87130d6c | |||
| 0f6a9cdae2 | |||
| 79ec6430f6 | |||
| 0c46fb09c1 | |||
| 8aad7337bf | |||
| c49197d002 | |||
| 16f611c147 | |||
| 7b623913d8 | |||
| 0a8997f30b | |||
| 702d0a7348 | |||
| f4ae1fbed3 | |||
| 8c0639be9b | |||
| c9ea13a1d2 | |||
| bef5423a06 | |||
| 22b072aff7 | |||
| 50acee47e9 | |||
| ba041d1133 | |||
| 21c26ab3ad | |||
| 5288ad8bb0 | |||
| 0ccff458f7 | |||
| a1c8a52dd2 | |||
| e6e8b22554 | |||
| 9371e5824f | |||
| bda1328dec | |||
| 2030893249 | |||
| fa695ca9a4 | |||
| 8b9c9437ae | |||
| 6f026145ef | |||
| 0744d3713e | |||
| 3275422af8 | |||
| a49aab1fb0 | |||
| e25cc9e825 | |||
| 92e9529cc5 | |||
| 7990f38c37 | |||
| 134dff5aba | |||
| 0c359e5110 | |||
| 7b913e607e | |||
| ee5d30ff80 | |||
| 6c41506a97 | |||
| ab14d6736c | |||
| b6c82c869e | |||
| f3f04e9473 | |||
| ef753f9bcd | |||
| e764ad1148 | |||
| 650d1670de |
41
.idea/appInsightsSettings.xml
generated
Normal file
41
.idea/appInsightsSettings.xml
generated
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AppInsightsSettings">
|
||||||
|
<option name="selectedTabId" value="Firebase Crashlytics" />
|
||||||
|
<option name="tabSettings">
|
||||||
|
<map>
|
||||||
|
<entry key="Android Vitals">
|
||||||
|
<value>
|
||||||
|
<InsightsFilterSettings>
|
||||||
|
<option name="connection">
|
||||||
|
<ConnectionSetting>
|
||||||
|
<option name="appId" value="it.integry.ordify.dulciar" />
|
||||||
|
</ConnectionSetting>
|
||||||
|
</option>
|
||||||
|
<option name="signal" value="SIGNAL_UNSPECIFIED" />
|
||||||
|
<option name="timeIntervalDays" value="SEVEN_DAYS" />
|
||||||
|
<option name="visibilityType" value="ALL" />
|
||||||
|
</InsightsFilterSettings>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="Firebase Crashlytics">
|
||||||
|
<value>
|
||||||
|
<InsightsFilterSettings>
|
||||||
|
<option name="connection">
|
||||||
|
<ConnectionSetting>
|
||||||
|
<option name="appId" value="it.integry.integrywmsnative" />
|
||||||
|
<option name="mobileSdkAppId" value="1:963231271247:android:6d73ab369f33c450" />
|
||||||
|
<option name="projectId" value="wmsfirebaseproject-64854" />
|
||||||
|
<option name="projectNumber" value="963231271247" />
|
||||||
|
</ConnectionSetting>
|
||||||
|
</option>
|
||||||
|
<option name="signal" value="SIGNAL_UNSPECIFIED" />
|
||||||
|
<option name="timeIntervalDays" value="THIRTY_DAYS" />
|
||||||
|
<option name="visibilityType" value="ALL" />
|
||||||
|
</InsightsFilterSettings>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
13
.idea/deploymentTargetDropDown.xml
generated
Normal file
13
.idea/deploymentTargetDropDown.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="deploymentTargetDropDown">
|
||||||
|
<value>
|
||||||
|
<entry key="Prod_Android.WMS.app">
|
||||||
|
<State />
|
||||||
|
</entry>
|
||||||
|
<entry key="app">
|
||||||
|
<State />
|
||||||
|
</entry>
|
||||||
|
</value>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
18
.idea/deploymentTargetSelector.xml
generated
Normal file
18
.idea/deploymentTargetSelector.xml
generated
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="deploymentTargetSelector">
|
||||||
|
<selectionStates>
|
||||||
|
<SelectionState runConfigName="app">
|
||||||
|
<option name="selectionMode" value="DROPDOWN" />
|
||||||
|
<DropdownSelection timestamp="2025-01-27T15:42:06.256113400Z">
|
||||||
|
<Target type="DEFAULT_BOOT">
|
||||||
|
<handle>
|
||||||
|
<DeviceId pluginId="PhysicalDevice" identifier="serial=21088B8EFD" />
|
||||||
|
</handle>
|
||||||
|
</Target>
|
||||||
|
</DropdownSelection>
|
||||||
|
<DialogSelection />
|
||||||
|
</SelectionState>
|
||||||
|
</selectionStates>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
97
.idea/fileTemplates/Android Activity.java
generated
Normal file
97
.idea/fileTemplates/Android Activity.java
generated
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
#set( $regex = "([a-z])([A-Z]+)")
|
||||||
|
#set( $replacement = "$1_$2")
|
||||||
|
#set( $dashName = $NAME.replaceAll($regex, $replacement).toLowerCase())
|
||||||
|
#set( $variableName = $NAME.replace($NAME.substring(0, 1), $NAME.substring(0, 1).toLowerCase()))
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.content.Intent;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||||
|
|
||||||
|
public class ${NAME}Activity extends BaseActivity {
|
||||||
|
|
||||||
|
/*
|
||||||
|
- Create the following layout resource file [activity_${dashName}.xml]
|
||||||
|
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
</layout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- Create an entry in AndroidManifest.xml
|
||||||
|
Fix the android:name tag with current path
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name="${NAME}Activity"
|
||||||
|
android:label="@string/activity_${dashName}_title"
|
||||||
|
android:screenOrientation="portrait"
|
||||||
|
android:theme="@style/Light" />
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
${NAME}ViewModel mViewModel;
|
||||||
|
|
||||||
|
//private Activity${NAME}Binding mBindings;
|
||||||
|
|
||||||
|
//Pass here all external parameters
|
||||||
|
public static void startActivity(Context context) {
|
||||||
|
Intent myIntent = new Intent(context, ${NAME}Activity.class);
|
||||||
|
|
||||||
|
//String keyExtraItem = DataCache.addItem(var);
|
||||||
|
//myIntent.putExtra("keyExtraItem", keyExtraItem);
|
||||||
|
|
||||||
|
context.startActivity(myIntent);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
//mBindings = DataBindingUtil.setContentView(this, R.layout.activity_${dashName});
|
||||||
|
//mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
- Add following lines into MainApplicationComponent
|
||||||
|
|
||||||
|
[a] into @Component
|
||||||
|
${NAME}Module.class
|
||||||
|
|
||||||
|
[b] into interface body
|
||||||
|
${NAME}Component.Factory ${variableName}Component();
|
||||||
|
*/
|
||||||
|
MainApplication.appComponent
|
||||||
|
.${variableName}Component()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
12
.idea/fileTemplates/Android Activity.java.child.0.java
generated
Normal file
12
.idea/fileTemplates/Android Activity.java.child.0.java
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = ${NAME}Component.class)
|
||||||
|
public class ${NAME}Module {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
${NAME}ViewModel provides${NAME}ViewModel() {
|
||||||
|
return new ${NAME}ViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
12
.idea/fileTemplates/Android Activity.java.child.1.java
generated
Normal file
12
.idea/fileTemplates/Android Activity.java.child.1.java
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface ${NAME}Component {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
${NAME}Component create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(${NAME}Activity ${NAME}Activity);
|
||||||
|
}
|
||||||
3
.idea/fileTemplates/Android Activity.java.child.2.java
generated
Normal file
3
.idea/fileTemplates/Android Activity.java.child.2.java
generated
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
public class ${NAME}ViewModel {
|
||||||
|
|
||||||
|
}
|
||||||
126
.idea/fileTemplates/Android Dialog.java
generated
Normal file
126
.idea/fileTemplates/Android Dialog.java
generated
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
#set( $regex = "([a-z])([A-Z]+)")
|
||||||
|
#set( $replacement = "$1_$2")
|
||||||
|
#set( $dashName = $NAME.replaceAll($regex, $replacement).toLowerCase())
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
|
|
||||||
|
public class Dialog${NAME}View extends BaseDialogFragment {
|
||||||
|
|
||||||
|
/*
|
||||||
|
Create the following layout resource file [dialog_${dashName}.xml]
|
||||||
|
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical" android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardElevation="0dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingHorizontal="16dp"
|
||||||
|
android:paddingVertical="16dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
style="@style/MaterialAlertDialog.Material3.Title.Icon.CenterStacked"
|
||||||
|
android:layout_width="36dp"
|
||||||
|
android:layout_height="36dp"
|
||||||
|
android:src="@drawable/ic_error_white_24dp"
|
||||||
|
app:tint="?colorPrimary" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/title_text"
|
||||||
|
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:text="Title here" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/description_text"
|
||||||
|
style="@style/TextAppearance.Material3.BodyMedium"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:text="Description here" />
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
</layout>
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
Dialog${NAME}ViewModel mViewModel;
|
||||||
|
|
||||||
|
//private Dialog${NAME}Binding mBindings;
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
//Pass here all external parameters
|
||||||
|
public static Dialog${NAME}View newInstance() {
|
||||||
|
return new Dialog${NAME}View();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Dialog${NAME}View() {
|
||||||
|
super();
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.dialog${NAME}Component()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
|
this.mContext = requireContext();
|
||||||
|
|
||||||
|
//mBindings = Dialog${NAME}Binding.inflate(LayoutInflater.from(this.mContext), null, false);
|
||||||
|
//mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
- Add following lines into MainApplicationComponent
|
||||||
|
|
||||||
|
[a] into @Component
|
||||||
|
Dialog${NAME}Module.class
|
||||||
|
|
||||||
|
[b] into interface body
|
||||||
|
Dialog${NAME}Component.Factory dialog${NAME}Component();
|
||||||
|
*/
|
||||||
|
|
||||||
|
setCancelable(false);
|
||||||
|
|
||||||
|
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||||
|
.setView(mBindings.getRoot())
|
||||||
|
.setCancelable(isCancelable())
|
||||||
|
.create();
|
||||||
|
|
||||||
|
alertDialog.setCanceledOnTouchOutside(isCancelable());
|
||||||
|
alertDialog.setOnShowListener(this);
|
||||||
|
return alertDialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
12
.idea/fileTemplates/Android Dialog.java.child.0.java
generated
Normal file
12
.idea/fileTemplates/Android Dialog.java.child.0.java
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = Dialog${NAME}Component.class)
|
||||||
|
public class Dialog${NAME}Module {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
Dialog${NAME}ViewModel providesDialog${NAME}ViewModel() {
|
||||||
|
return new Dialog${NAME}ViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
12
.idea/fileTemplates/Android Dialog.java.child.1.java
generated
Normal file
12
.idea/fileTemplates/Android Dialog.java.child.1.java
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface Dialog${NAME}Component {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
Dialog${NAME}Component create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(Dialog${NAME}View dialog${NAME}View);
|
||||||
|
}
|
||||||
3
.idea/fileTemplates/Android Dialog.java.child.2.java
generated
Normal file
3
.idea/fileTemplates/Android Dialog.java.child.2.java
generated
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
public class Dialog${NAME}ViewModel {
|
||||||
|
|
||||||
|
}
|
||||||
82
.idea/fileTemplates/Android Fragment.java
generated
Normal file
82
.idea/fileTemplates/Android Fragment.java
generated
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
#set( $regex = "([a-z])([A-Z]+)")
|
||||||
|
#set( $replacement = "$1_$2")
|
||||||
|
#set( $dashName = $NAME.replaceAll($regex, $replacement).toLowerCase())
|
||||||
|
#set( $variableName = $NAME.replace($NAME.substring(0, 1), $NAME.substring(0, 1).toLowerCase()))
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
||||||
|
|
||||||
|
public class ${NAME}Fragment extends BaseFragment {
|
||||||
|
|
||||||
|
/*
|
||||||
|
- Create the following layout resource file [fragment_${dashName}.xml]
|
||||||
|
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
</layout>
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
${NAME}ViewModel mViewModel;
|
||||||
|
|
||||||
|
//private Fragment${NAME}Binding mBindings;
|
||||||
|
|
||||||
|
|
||||||
|
public ${NAME}Fragment() {
|
||||||
|
// Required empty public constructor
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ${NAME}Fragment newInstance() {
|
||||||
|
return new ${NAME}Fragment();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
// Inflate the layout for this fragment
|
||||||
|
setRetainInstance(true);
|
||||||
|
|
||||||
|
//mBindings = Fragment${NAME}Binding.inflate(inflater, container, false);
|
||||||
|
//mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
- Add following lines into MainApplicationComponent
|
||||||
|
|
||||||
|
[a] into @Component
|
||||||
|
${NAME}Module.class
|
||||||
|
|
||||||
|
[b] into interface body
|
||||||
|
${NAME}Component.Factory ${variableName}Component();
|
||||||
|
*/
|
||||||
|
MainApplication.appComponent
|
||||||
|
.${variableName}Component()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
return mBindings.getRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
3
.idea/fileTemplates/Android Fragment.java.child.0.java
generated
Normal file
3
.idea/fileTemplates/Android Fragment.java.child.0.java
generated
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
public class ${NAME}ViewModel {
|
||||||
|
|
||||||
|
}
|
||||||
12
.idea/fileTemplates/Android Fragment.java.child.1.java
generated
Normal file
12
.idea/fileTemplates/Android Fragment.java.child.1.java
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface ${NAME}Component {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
${NAME}Component create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(${NAME}Fragment ${NAME}Fragment);
|
||||||
|
}
|
||||||
12
.idea/fileTemplates/Android Fragment.java.child.2.java
generated
Normal file
12
.idea/fileTemplates/Android Fragment.java.child.2.java
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = ${NAME}Component.class)
|
||||||
|
public class ${NAME}Module {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
${NAME}ViewModel provides${NAME}ViewModel() {
|
||||||
|
return new ${NAME}ViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
15
.idea/git_toolbox_prj.xml
generated
Normal file
15
.idea/git_toolbox_prj.xml
generated
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="GitToolBoxProjectSettings">
|
||||||
|
<option name="commitMessageIssueKeyValidationOverride">
|
||||||
|
<BoolValueOverride>
|
||||||
|
<option name="enabled" value="true" />
|
||||||
|
</BoolValueOverride>
|
||||||
|
</option>
|
||||||
|
<option name="commitMessageValidationEnabledOverride">
|
||||||
|
<BoolValueOverride>
|
||||||
|
<option name="enabled" value="true" />
|
||||||
|
</BoolValueOverride>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
8
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
8
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<profile version="1.0">
|
||||||
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="AutoCloseableResource" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
|
<option name="METHOD_MATCHER_CONFIG" value="java.util.Formatter,format,java.io.Writer,append,com.google.common.base.Preconditions,checkNotNull,org.hibernate.Session,close,java.io.PrintWriter,printf,java.io.PrintStream,printf,com.annimon.stream.Stream,of" />
|
||||||
|
</inspection_tool>
|
||||||
|
</profile>
|
||||||
|
</component>
|
||||||
6
.idea/kotlinc.xml
generated
Normal file
6
.idea/kotlinc.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="KotlinJpsPluginSettings">
|
||||||
|
<option name="version" value="1.9.25" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
10
.idea/migrations.xml
generated
Normal file
10
.idea/migrations.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectMigrations">
|
||||||
|
<option name="MigrateToGradleLocalJavaHome">
|
||||||
|
<set>
|
||||||
|
<option value="$PROJECT_DIR$" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
17
.idea/runConfigurations.xml
generated
Normal file
17
.idea/runConfigurations.xml
generated
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RunConfigurationProducerService">
|
||||||
|
<option name="ignoredProducers">
|
||||||
|
<set>
|
||||||
|
<option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
|
||||||
|
<option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
|
||||||
|
<option value="com.intellij.execution.junit.PatternConfigurationProducer" />
|
||||||
|
<option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
|
||||||
|
<option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
|
||||||
|
<option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
|
||||||
|
<option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
|
||||||
|
<option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="app_base" type="AndroidRunConfigurationType" factoryName="Android App" activateToolWindowBeforeRun="false">
|
<configuration default="false" name="app" type="AndroidRunConfigurationType" factoryName="Android App">
|
||||||
<module name="WMS.app" />
|
<module name="WMS.app.main" />
|
||||||
<option name="DEPLOY" value="true" />
|
<option name="DEPLOY" value="true" />
|
||||||
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
|
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
|
||||||
<option name="DEPLOY_AS_INSTANT" value="false" />
|
<option name="DEPLOY_AS_INSTANT" value="false" />
|
||||||
@@ -8,13 +8,12 @@
|
|||||||
<option name="PM_INSTALL_OPTIONS" value="" />
|
<option name="PM_INSTALL_OPTIONS" value="" />
|
||||||
<option name="ALL_USERS" value="false" />
|
<option name="ALL_USERS" value="false" />
|
||||||
<option name="ALWAYS_INSTALL_WITH_PM" value="false" />
|
<option name="ALWAYS_INSTALL_WITH_PM" value="false" />
|
||||||
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="WMS.dynamic_vgalimenti" />
|
<option name="CLEAR_APP_STORAGE" value="false" />
|
||||||
|
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="" />
|
||||||
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
|
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
|
||||||
<option name="MODE" value="default_activity" />
|
<option name="MODE" value="default_activity" />
|
||||||
<option name="CLEAR_LOGCAT" value="true" />
|
<option name="CLEAR_LOGCAT" value="false" />
|
||||||
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
|
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
|
||||||
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
|
|
||||||
<option name="FORCE_STOP_RUNNING_APP" value="true" />
|
|
||||||
<option name="INSPECTION_WITHOUT_ACTIVITY_RESTART" value="false" />
|
<option name="INSPECTION_WITHOUT_ACTIVITY_RESTART" value="false" />
|
||||||
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
|
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
|
||||||
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
|
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
|
||||||
@@ -26,6 +25,8 @@
|
|||||||
<option name="WORKING_DIR" value="" />
|
<option name="WORKING_DIR" value="" />
|
||||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
||||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
||||||
|
<option name="ATTACH_ON_WAIT_FOR_DEBUGGER" value="false" />
|
||||||
|
<option name="DEBUG_SANDBOX_SDK" value="false" />
|
||||||
</Auto>
|
</Auto>
|
||||||
<Hybrid>
|
<Hybrid>
|
||||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
||||||
@@ -33,20 +34,27 @@
|
|||||||
<option name="WORKING_DIR" value="" />
|
<option name="WORKING_DIR" value="" />
|
||||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
||||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
||||||
|
<option name="ATTACH_ON_WAIT_FOR_DEBUGGER" value="false" />
|
||||||
|
<option name="DEBUG_SANDBOX_SDK" value="false" />
|
||||||
</Hybrid>
|
</Hybrid>
|
||||||
<Java />
|
<Java>
|
||||||
|
<option name="ATTACH_ON_WAIT_FOR_DEBUGGER" value="false" />
|
||||||
|
<option name="DEBUG_SANDBOX_SDK" value="false" />
|
||||||
|
</Java>
|
||||||
<Native>
|
<Native>
|
||||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
||||||
<option name="SHOW_STATIC_VARS" value="true" />
|
<option name="SHOW_STATIC_VARS" value="true" />
|
||||||
<option name="WORKING_DIR" value="" />
|
<option name="WORKING_DIR" value="" />
|
||||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
||||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
||||||
|
<option name="ATTACH_ON_WAIT_FOR_DEBUGGER" value="false" />
|
||||||
|
<option name="DEBUG_SANDBOX_SDK" value="false" />
|
||||||
</Native>
|
</Native>
|
||||||
<Profilers>
|
<Profilers>
|
||||||
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
|
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
|
||||||
<option name="STARTUP_PROFILING_ENABLED" value="false" />
|
<option name="STARTUP_PROFILING_ENABLED" value="false" />
|
||||||
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
|
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
|
||||||
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Callstack Sample" />
|
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Java/Kotlin Method Sample (legacy)" />
|
||||||
<option name="STARTUP_NATIVE_MEMORY_PROFILING_ENABLED" value="false" />
|
<option name="STARTUP_NATIVE_MEMORY_PROFILING_ENABLED" value="false" />
|
||||||
<option name="NATIVE_MEMORY_SAMPLE_RATE_BYTES" value="2048" />
|
<option name="NATIVE_MEMORY_SAMPLE_RATE_BYTES" value="2048" />
|
||||||
</Profilers>
|
</Profilers>
|
||||||
61
.idea/runConfigurations/app_vglimenti.xml
generated
61
.idea/runConfigurations/app_vglimenti.xml
generated
@@ -1,61 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="app_vglimenti" type="AndroidRunConfigurationType" factoryName="Android App" activateToolWindowBeforeRun="false">
|
|
||||||
<module name="WMS.app" />
|
|
||||||
<option name="DEPLOY" value="true" />
|
|
||||||
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
|
|
||||||
<option name="DEPLOY_AS_INSTANT" value="false" />
|
|
||||||
<option name="ARTIFACT_NAME" value="" />
|
|
||||||
<option name="PM_INSTALL_OPTIONS" value="" />
|
|
||||||
<option name="ALL_USERS" value="false" />
|
|
||||||
<option name="ALWAYS_INSTALL_WITH_PM" value="false" />
|
|
||||||
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="WMS.dynamic__base" />
|
|
||||||
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
|
|
||||||
<option name="MODE" value="default_activity" />
|
|
||||||
<option name="CLEAR_LOGCAT" value="true" />
|
|
||||||
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
|
|
||||||
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
|
|
||||||
<option name="FORCE_STOP_RUNNING_APP" value="true" />
|
|
||||||
<option name="INSPECTION_WITHOUT_ACTIVITY_RESTART" value="false" />
|
|
||||||
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
|
|
||||||
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
|
|
||||||
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
|
|
||||||
<option name="DEBUGGER_TYPE" value="Auto" />
|
|
||||||
<Auto>
|
|
||||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
|
||||||
<option name="SHOW_STATIC_VARS" value="true" />
|
|
||||||
<option name="WORKING_DIR" value="" />
|
|
||||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
|
||||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
|
||||||
</Auto>
|
|
||||||
<Hybrid>
|
|
||||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
|
||||||
<option name="SHOW_STATIC_VARS" value="true" />
|
|
||||||
<option name="WORKING_DIR" value="" />
|
|
||||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
|
||||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
|
||||||
</Hybrid>
|
|
||||||
<Java />
|
|
||||||
<Native>
|
|
||||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
|
||||||
<option name="SHOW_STATIC_VARS" value="true" />
|
|
||||||
<option name="WORKING_DIR" value="" />
|
|
||||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
|
||||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
|
||||||
</Native>
|
|
||||||
<Profilers>
|
|
||||||
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
|
|
||||||
<option name="STARTUP_PROFILING_ENABLED" value="false" />
|
|
||||||
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
|
|
||||||
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Callstack Sample" />
|
|
||||||
<option name="STARTUP_NATIVE_MEMORY_PROFILING_ENABLED" value="false" />
|
|
||||||
<option name="NATIVE_MEMORY_SAMPLE_RATE_BYTES" value="2048" />
|
|
||||||
</Profilers>
|
|
||||||
<option name="DEEP_LINK" value="" />
|
|
||||||
<option name="ACTIVITY_CLASS" value="" />
|
|
||||||
<option name="SEARCH_ACTIVITY_IN_GLOBAL_SCOPE" value="false" />
|
|
||||||
<option name="SKIP_ACTIVITY_VALIDATION" value="false" />
|
|
||||||
<method v="2">
|
|
||||||
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
|
|
||||||
</method>
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
||||||
@@ -5,13 +5,13 @@ if (!project.hasProperty("disable-performance-plugin")) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
apply plugin: 'com.google.firebase.crashlytics'
|
apply plugin: 'com.google.firebase.crashlytics'
|
||||||
apply plugin: 'kotlin-android'
|
//apply plugin: 'kotlin-android'
|
||||||
apply plugin: 'com.google.gms.google-services'
|
apply plugin: 'com.google.gms.google-services'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 324
|
def appVersionCode = 477
|
||||||
def appVersionName = '1.30.06'
|
def appVersionName = '1.44.08'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
@@ -25,21 +25,19 @@ android {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
applicationVariants.all { variant ->
|
applicationVariants.configureEach { variant ->
|
||||||
variant.outputs.all { output ->
|
variant.outputs.configureEach { output ->
|
||||||
output.outputFileName = "android-release.apk"
|
output.outputFileName = "android-release.apk"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
compileSdkVersion 32
|
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "it.integry.integrywmsnative"
|
applicationId "it.integry.integrywmsnative"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 32
|
targetSdkVersion 35
|
||||||
versionCode appVersionCode
|
versionCode appVersionCode
|
||||||
versionName appVersionName
|
versionName appVersionName
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
// testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
signingConfig signingConfigs.release
|
signingConfig signingConfigs.release
|
||||||
|
|
||||||
javaCompileOptions {
|
javaCompileOptions {
|
||||||
@@ -62,10 +60,11 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
android.buildFeatures.dataBinding true
|
android.buildFeatures.dataBinding true
|
||||||
|
android.buildFeatures.buildConfig true
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_11
|
sourceCompatibility JavaVersion.VERSION_17
|
||||||
targetCompatibility JavaVersion.VERSION_11
|
targetCompatibility JavaVersion.VERSION_17
|
||||||
coreLibraryDesugaringEnabled true
|
coreLibraryDesugaringEnabled true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,68 +75,76 @@ android {
|
|||||||
build {
|
build {
|
||||||
doLast {
|
doLast {
|
||||||
delete "$projectDir/build/outputs/apk/release/version.txt"
|
delete "$projectDir/build/outputs/apk/release/version.txt"
|
||||||
file("$projectDir/build/outputs/apk/release/version.txt").text = appVersionCode + '\n' + appVersionName
|
file("$projectDir/build/outputs/apk/release/version.txt").text = appVersionCode + '\n' + appVersionName + '\n' + 'forced=true'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gradle.projectsEvaluated {
|
gradle.projectsEvaluated {
|
||||||
tasks.withType(JavaCompile.class) {
|
tasks.withType(JavaCompile.class).tap {
|
||||||
options.compilerArgs << "-Xmaxerrs" << "10000"
|
configureEach {
|
||||||
|
options.compilerArgs << "-Xmaxerrs" << "10000"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti"]
|
|
||||||
lint {
|
lint {
|
||||||
abortOnError false
|
abortOnError false
|
||||||
}
|
}
|
||||||
namespace 'it.integry.integrywmsnative'
|
namespace 'it.integry.integrywmsnative'
|
||||||
|
compileSdk 35
|
||||||
|
}
|
||||||
|
|
||||||
|
configurations {
|
||||||
|
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
|
||||||
|
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.4'
|
||||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||||
androidTestImplementation('androidx.test.espresso:espresso-core:3.3.0', {
|
// androidTestImplementation('androidx.test.espresso:espresso-core:3.6.1', {
|
||||||
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:$kotlin_version"
|
||||||
implementation 'com.github.lupaulus:logger:2.3.2'
|
implementation 'com.github.lupaulus:logger:2.3.2'
|
||||||
|
|
||||||
//Firebase
|
//Firebase
|
||||||
|
|
||||||
// Import the Firebase BoM
|
// Import the Firebase BoM
|
||||||
implementation platform('com.google.firebase:firebase-bom:29.1.0')
|
implementation platform('com.google.firebase:firebase-bom:33.8.0')
|
||||||
implementation 'com.google.firebase:firebase-analytics'
|
implementation 'com.google.firebase:firebase-analytics'
|
||||||
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.1.0'
|
implementation 'com.google.android.gms:play-services-basement:18.5.0'
|
||||||
|
|
||||||
|
//JJWT
|
||||||
|
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
|
||||||
|
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'
|
||||||
|
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5'
|
||||||
|
|
||||||
|
|
||||||
implementation 'androidx.appcompat:appcompat:1.5.1'
|
implementation 'androidx.appcompat:appcompat:1.7.0'
|
||||||
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.6.1'
|
implementation 'com.google.android.material:material:1.12.0'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
implementation 'androidx.constraintlayout:constraintlayout:2.2.0'
|
||||||
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.4.0'
|
||||||
|
|
||||||
implementation('androidx.preference:preference-ktx:1.2.0') {
|
implementation('androidx.preference:preference-ktx:1.2.1') {
|
||||||
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel'
|
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel'
|
||||||
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx'
|
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx'
|
||||||
}
|
}
|
||||||
|
|
||||||
implementation "androidx.slidingpanelayout:slidingpanelayout:1.2.0"
|
implementation "androidx.slidingpanelayout:slidingpanelayout:1.2.0"
|
||||||
implementation 'com.squareup.okhttp3:okhttp:4.9.1'
|
implementation 'com.squareup.okhttp3:okhttp:4.10.0'
|
||||||
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.5.1'
|
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7'
|
||||||
// implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
|
// implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
|
||||||
implementation 'org.apache.commons:commons-text:1.9'
|
implementation 'org.apache.commons:commons-text:1.9'
|
||||||
|
|
||||||
//MVVM
|
//MVVM
|
||||||
def dagger2_version = '2.40.1'
|
def dagger2_version = '2.55'
|
||||||
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"
|
||||||
@@ -148,23 +155,16 @@ dependencies {
|
|||||||
//FAB
|
//FAB
|
||||||
implementation 'com.github.clans:fab:1.6.4'
|
implementation 'com.github.clans:fab:1.6.4'
|
||||||
//CUSTOM VIEWS
|
//CUSTOM VIEWS
|
||||||
implementation 'com.github.NaimishTrivedi:FBToast:1.0'
|
|
||||||
implementation 'com.github.cachapa:ExpandableLayout:2.9.2'
|
implementation 'com.github.cachapa:ExpandableLayout:2.9.2'
|
||||||
implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'
|
|
||||||
implementation 'com.github.fede87:StatusBarAlert:1.0.1'
|
|
||||||
implementation 'com.github.zhukic:sectioned-recyclerview:1.2.3'
|
implementation 'com.github.zhukic:sectioned-recyclerview:1.2.3'
|
||||||
implementation 'com.github.pedromassango:doubleClick:3.0'
|
implementation 'com.github.pedromassango:doubleClick:3.0'
|
||||||
|
|
||||||
//SQLite ROOM
|
//SQLite ROOM
|
||||||
def room_version = "2.4.3"
|
def room_version = "2.6.1"
|
||||||
|
|
||||||
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"
|
||||||
implementation "androidx.room:room-rxjava3:$room_version"
|
implementation "androidx.room:room-rxjava3:$room_version"
|
||||||
androidTestImplementation "androidx.room:room-testing:2.4.3"
|
|
||||||
|
|
||||||
//AppUpdate
|
|
||||||
implementation 'com.github.javiersantos:AppUpdater:2.7'
|
|
||||||
|
|
||||||
//Barcode
|
//Barcode
|
||||||
implementation project(':pointmobilescannerlibrary')
|
implementation project(':pointmobilescannerlibrary')
|
||||||
@@ -183,14 +183,16 @@ dependencies {
|
|||||||
|
|
||||||
|
|
||||||
//Bluetooth device manager
|
//Bluetooth device manager
|
||||||
implementation 'com.github.harry1453:android-bluetooth-serial:v1.1'
|
implementation 'com.github.harry1453:android-bluetooth-serial:v1.1.2'
|
||||||
|
|
||||||
// RxJava is also required.
|
// RxJava is also required.
|
||||||
implementation 'io.reactivex.rxjava2:rxjava:2.1.12'
|
implementation 'io.reactivex.rxjava2:rxjava:2.1.12'
|
||||||
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
|
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
|
||||||
|
|
||||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.0'
|
implementation 'org.greenrobot:eventbus:3.3.1'
|
||||||
|
|
||||||
|
//Barcode generator
|
||||||
|
implementation group: 'com.google.zxing', name: 'core', version: '3.5.3'
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"formatVersion": 1,
|
"formatVersion": 1,
|
||||||
"database": {
|
"database": {
|
||||||
"version": 13,
|
"version": 13,
|
||||||
"identityHash": "bc3841159bac7a7731fe39a5fa4f0f4e",
|
"identityHash": "bef89b513f0a4d5ecd9c2111e2e614a4",
|
||||||
"entities": [
|
"entities": [
|
||||||
{
|
{
|
||||||
"tableName": "articoli_griglia",
|
"tableName": "articoli_griglia",
|
||||||
@@ -112,10 +112,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"primaryKey": {
|
"primaryKey": {
|
||||||
|
"autoGenerate": true,
|
||||||
"columnNames": [
|
"columnNames": [
|
||||||
"articolo_griglia_id"
|
"articolo_griglia_id"
|
||||||
],
|
]
|
||||||
"autoGenerate": true
|
|
||||||
},
|
},
|
||||||
"indices": [
|
"indices": [
|
||||||
{
|
{
|
||||||
@@ -172,10 +172,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"primaryKey": {
|
"primaryKey": {
|
||||||
|
"autoGenerate": true,
|
||||||
"columnNames": [
|
"columnNames": [
|
||||||
"griglia_id"
|
"griglia_id"
|
||||||
],
|
]
|
||||||
"autoGenerate": true
|
|
||||||
},
|
},
|
||||||
"indices": [
|
"indices": [
|
||||||
{
|
{
|
||||||
@@ -262,10 +262,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"primaryKey": {
|
"primaryKey": {
|
||||||
|
"autoGenerate": true,
|
||||||
"columnNames": [
|
"columnNames": [
|
||||||
"ordine_id"
|
"ordine_id"
|
||||||
],
|
]
|
||||||
"autoGenerate": true
|
|
||||||
},
|
},
|
||||||
"indices": [],
|
"indices": [],
|
||||||
"foreignKeys": []
|
"foreignKeys": []
|
||||||
@@ -366,10 +366,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"primaryKey": {
|
"primaryKey": {
|
||||||
|
"autoGenerate": true,
|
||||||
"columnNames": [
|
"columnNames": [
|
||||||
"articolo_ordine_id"
|
"articolo_ordine_id"
|
||||||
],
|
]
|
||||||
"autoGenerate": true
|
|
||||||
},
|
},
|
||||||
"indices": [
|
"indices": [
|
||||||
{
|
{
|
||||||
@@ -580,10 +580,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"primaryKey": {
|
"primaryKey": {
|
||||||
|
"autoGenerate": true,
|
||||||
"columnNames": [
|
"columnNames": [
|
||||||
"id"
|
"id"
|
||||||
],
|
]
|
||||||
"autoGenerate": true
|
|
||||||
},
|
},
|
||||||
"indices": [
|
"indices": [
|
||||||
{
|
{
|
||||||
@@ -829,10 +829,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"primaryKey": {
|
"primaryKey": {
|
||||||
|
"autoGenerate": true,
|
||||||
"columnNames": [
|
"columnNames": [
|
||||||
"id"
|
"id"
|
||||||
],
|
]
|
||||||
"autoGenerate": true
|
|
||||||
},
|
},
|
||||||
"indices": [
|
"indices": [
|
||||||
{
|
{
|
||||||
@@ -874,7 +874,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tableName": "inventari",
|
"tableName": "inventari",
|
||||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `id_inventario` INTEGER, `cod_mdep` TEXT NOT NULL, `data_inventario` INTEGER, `data_reg` INTEGER, `data_ver` INTEGER, `filtro` TEXT, `flag_stato` TEXT, `flag_operazione` TEXT, `cod_anag` TEXT, `cod_dtip` TEXT, `inserito_da` TEXT, `registrato_da` TEXT, `verificato_da` TEXT, `data_ora_inizio` INTEGER, `data_ora_fine` INTEGER, `causale` TEXT, `zona` TEXT, `remote_sync_date` INTEGER)",
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `id_inventario` INTEGER, `cod_mdep` TEXT NOT NULL, `data_inventario` INTEGER, `data_reg` INTEGER, `data_ver` INTEGER, `filtro` TEXT, `flag_stato` TEXT, `flag_operazione` TEXT, `cod_anag` TEXT, `cod_dtip` TEXT, `inserito_da` TEXT, `registrato_da` TEXT, `verificato_da` TEXT, `data_ora_inizio` INTEGER, `data_ora_fine` INTEGER, `causale` TEXT, `zona` TEXT, `new` INTEGER, `remote_sync_date` INTEGER)",
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
"fieldPath": "id",
|
"fieldPath": "id",
|
||||||
@@ -984,6 +984,12 @@
|
|||||||
"affinity": "TEXT",
|
"affinity": "TEXT",
|
||||||
"notNull": false
|
"notNull": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "isNew",
|
||||||
|
"columnName": "new",
|
||||||
|
"affinity": "INTEGER",
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"fieldPath": "remoteSyncDate",
|
"fieldPath": "remoteSyncDate",
|
||||||
"columnName": "remote_sync_date",
|
"columnName": "remote_sync_date",
|
||||||
@@ -992,10 +998,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"primaryKey": {
|
"primaryKey": {
|
||||||
|
"autoGenerate": true,
|
||||||
"columnNames": [
|
"columnNames": [
|
||||||
"_id"
|
"_id"
|
||||||
],
|
]
|
||||||
"autoGenerate": true
|
|
||||||
},
|
},
|
||||||
"indices": [
|
"indices": [
|
||||||
{
|
{
|
||||||
@@ -1107,10 +1113,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"primaryKey": {
|
"primaryKey": {
|
||||||
|
"autoGenerate": true,
|
||||||
"columnNames": [
|
"columnNames": [
|
||||||
"_id"
|
"_id"
|
||||||
],
|
]
|
||||||
"autoGenerate": true
|
|
||||||
},
|
},
|
||||||
"indices": [
|
"indices": [
|
||||||
{
|
{
|
||||||
@@ -1150,7 +1156,7 @@
|
|||||||
"views": [],
|
"views": [],
|
||||||
"setupQueries": [
|
"setupQueries": [
|
||||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'bc3841159bac7a7731fe39a5fa4f0f4e')"
|
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'bef89b513f0a4d5ecd9c2111e2e614a4')"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,21 +1,31 @@
|
|||||||
<?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:tools="http://schemas.android.com/tools"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
<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" />
|
||||||
<uses-permission android:name="android.permission.READ_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" />
|
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
||||||
|
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
|
||||||
|
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
|
||||||
|
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
|
||||||
|
android:maxSdkVersion="32" />
|
||||||
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||||
|
android:maxSdkVersion="32"
|
||||||
|
tools:ignore="ScopedStorage" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name=".MainApplication"
|
android:name=".MainApplication"
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:hardwareAccelerated="true"
|
android:hardwareAccelerated="true"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="@string/app_name"
|
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
|
android:label="@string/app_name"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/AppTheme"
|
android:theme="@style/AppTheme"
|
||||||
android:usesCleartextTraffic="true"
|
android:usesCleartextTraffic="true"
|
||||||
@@ -23,31 +33,25 @@
|
|||||||
android:requestLegacyExternalStorage="true">
|
android:requestLegacyExternalStorage="true">
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.spedizione.SpedizioneActivity"
|
android:name=".gest.spedizione.SpedizioneActivity"
|
||||||
android:screenOrientation="portrait"
|
android:windowSoftInputMode="adjustNothing"
|
||||||
android:theme="@style/Light"
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
android:windowSoftInputMode="adjustNothing" />
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity"
|
android:name=".gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity"
|
||||||
android:screenOrientation="portrait"
|
android:windowSoftInputMode="adjustNothing"
|
||||||
android:theme="@style/Light"
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
android:windowSoftInputMode="adjustNothing" />
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.prod_dettaglio_linea.ProdDettaglioLineaActivity"
|
android:name=".gest.prod_dettaglio_linea.ProdDettaglioLineaActivity"
|
||||||
android:screenOrientation="portrait"
|
android:windowSoftInputMode="adjustNothing"
|
||||||
android:theme="@style/Light"
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
android:windowSoftInputMode="adjustNothing" />
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.contab_doc_interni.edit_form.DocInterniEditFormActivity"
|
android:name=".gest.contab_doc_interni.edit_form.DocInterniEditFormActivity"
|
||||||
android:screenOrientation="portrait"
|
android:windowSoftInputMode="adjustNothing"
|
||||||
android:theme="@style/Light"
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
android:windowSoftInputMode="adjustNothing" />
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.picking_resi.PickingResiActivity"
|
android:name=".gest.picking_resi.PickingResiActivity"
|
||||||
android:screenOrientation="portrait"
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
android:theme="@style/Light" />
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.main.MainActivity"
|
android:name=".gest.main.MainActivity"
|
||||||
android:theme="@style/Light"
|
|
||||||
android:windowSoftInputMode="adjustNothing"
|
android:windowSoftInputMode="adjustNothing"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
@@ -56,30 +60,26 @@
|
|||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
|
||||||
android:name=".gest.accettazione_picking.AccettazionePickingActivity"
|
|
||||||
android:screenOrientation="portrait"
|
|
||||||
android:theme="@style/Light"
|
|
||||||
android:windowSoftInputMode="adjustNothing" />
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.login.LoginActivity"
|
android:name=".gest.login.LoginActivity"
|
||||||
android:theme="@style/Light" />
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
|
<activity
|
||||||
|
android:name=".gest.accettazione_ordini_picking.AccettazioneOrdiniPickingActivity"
|
||||||
|
android:windowSoftInputMode="adjustPan"
|
||||||
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.lista_bancali.ListaBancaliActivity"
|
android:name=".gest.lista_bancali.ListaBancaliActivity"
|
||||||
android:label="@string/activity_lista_bancali_title"
|
android:label="@string/activity_lista_bancali_title"
|
||||||
android:screenOrientation="portrait"
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
android:theme="@style/Light" />
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.contenuto_bancale.ContenutoBancaleActivity"
|
android:name=".gest.contenuto_bancale.ContenutoBancaleActivity"
|
||||||
android:label="@string/activity_contenuto_bancale_title"
|
android:label="@string/activity_contenuto_bancale_title"
|
||||||
android:screenOrientation="portrait"
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
android:theme="@style/Light" />
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.inventario.picking.PickingInventarioActivity"
|
android:name=".gest.inventario.picking.PickingInventarioActivity"
|
||||||
android:label="@string/activity_picking_inventario_title"
|
android:label="@string/activity_picking_inventario_title"
|
||||||
android:screenOrientation="portrait"
|
|
||||||
android:windowSoftInputMode="adjustNothing"
|
android:windowSoftInputMode="adjustNothing"
|
||||||
android:theme="@style/Light"/>
|
android:configChanges="orientation|screenSize|keyboardHidden"/>
|
||||||
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="firebase_crashlytics_collection_enabled"
|
android:name="firebase_crashlytics_collection_enabled"
|
||||||
@@ -97,6 +97,10 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name=".gest.accettazione_bolla_picking.AccettazioneBollaPickingActivity"
|
||||||
|
android:screenOrientation="portrait" />
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name=".core.update.GenericFileProvider"
|
android:name=".core.update.GenericFileProvider"
|
||||||
android:authorities="${applicationId}.core.update.GenericFileProvider"
|
android:authorities="${applicationId}.core.update.GenericFileProvider"
|
||||||
|
|||||||
BIN
app/src/main/ic_launcher-playstore.png
Normal file
BIN
app/src/main/ic_launcher-playstore.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
@@ -3,11 +3,13 @@ package it.integry.integrywmsnative;
|
|||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.context.AppContext;
|
import it.integry.integrywmsnative.core.context.AppContext;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
|
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
|
|
||||||
|
|
||||||
public class MainApplication extends Application {
|
public class MainApplication extends Application {
|
||||||
@@ -19,6 +21,8 @@ public class MainApplication extends Application {
|
|||||||
public static MainApplicationModule appModule;
|
public static MainApplicationModule appModule;
|
||||||
public static RoomModule roomModule;
|
public static RoomModule roomModule;
|
||||||
|
|
||||||
|
private Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
AppContext appContext;
|
AppContext appContext;
|
||||||
|
|
||||||
@@ -40,6 +44,9 @@ public class MainApplication extends Application {
|
|||||||
appComponent.inject(this);
|
appComponent.inject(this);
|
||||||
|
|
||||||
res = getResources();
|
res = getResources();
|
||||||
|
|
||||||
|
defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
|
||||||
|
Thread.setDefaultUncaughtExceptionHandler(_unCaughtExceptionHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called by the system when the device configuration changes while your component is running.
|
// Called by the system when the device configuration changes while your component is running.
|
||||||
@@ -61,4 +68,22 @@ public class MainApplication extends Application {
|
|||||||
System.exit(0);
|
System.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// handler listener
|
||||||
|
private final Thread.UncaughtExceptionHandler _unCaughtExceptionHandler =
|
||||||
|
new Thread.UncaughtExceptionHandler() {
|
||||||
|
@Override
|
||||||
|
public void uncaughtException(Thread thread, Throwable ex) {
|
||||||
|
// re-throw critical exception further to the os (important)
|
||||||
|
defaultUncaughtExceptionHandler.uncaughtException(thread, ex);
|
||||||
|
|
||||||
|
try {
|
||||||
|
UtilityLogger.error(new Exception(ex));
|
||||||
|
MainApplication.exit();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e("Uncaught error", "Exception Logger failed!", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,16 @@ import it.integry.integrywmsnative.core.expansion.BaseDialogFragmentComponent;
|
|||||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragmentModule;
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragmentModule;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseFragmentComponent;
|
import it.integry.integrywmsnative.core.expansion.BaseFragmentComponent;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseFragmentModule;
|
import it.integry.integrywmsnative.core.expansion.BaseFragmentModule;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneComponent;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.MainAccettazioneBollaElencoComponent;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneModule;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.MainAccettazioneBollaElencoModule;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingComponent;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.AccettazioneBollaPickingComponent;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingModule;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.AccettazioneBollaPickingModule;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoModule;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingModule;
|
||||||
|
import it.integry.integrywmsnative.gest.articoli_in_giacenza.ArticoliInGiacenzaComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.articoli_in_giacenza.ArticoliInGiacenzaModule;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniComponent;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniComponent;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniModule;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniModule;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoComponent;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoComponent;
|
||||||
@@ -23,6 +29,8 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniE
|
|||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniEditFormModule;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniEditFormModule;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsComponent;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsComponent;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsModule;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsModule;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti.DialogSelectLottiComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti.DialogSelectLottiModule;
|
||||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleComponent;
|
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleComponent;
|
||||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleModule;
|
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleModule;
|
||||||
import it.integry.integrywmsnative.gest.inventario.ElencoInventariComponent;
|
import it.integry.integrywmsnative.gest.inventario.ElencoInventariComponent;
|
||||||
@@ -63,21 +71,34 @@ import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMate
|
|||||||
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;
|
||||||
import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.ProdRientroMerceOrderDetailComponent;
|
import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.ProdRientroMerceOrderDetailComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_rientro_merce.order_list.ProdRientroMerceOrderListComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.ProdRiposizionamentoDaProdComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.ProdRiposizionamentoDaProdModule;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dialogs.info_giacenza.DialogInfoGiacenzaComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dialogs.info_giacenza.DialogInfoGiacenzaModule;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeComponent;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeComponent;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeModule;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeModule;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale_su_mag_prossimita.ProdVersamentoMaterialeInBufferComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale_su_mag_prossimita.ProdVersamentoMaterialeInBufferModule;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditComponent;
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditComponent;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditModule;
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditModule;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.DialogEditArticoloComponent;
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.edit_articolo.DialogEditArticoloComponent;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.DialogEditArticoloModule;
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.edit_articolo.DialogEditArticoloModule;
|
||||||
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.selectArtFromList.DialogSelectArtToOrderComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.selectArtFromList.DialogSelectArtToOrderModule;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdiniAcquistoGrigliaComponent;
|
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdiniAcquistoGrigliaComponent;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdiniAcquistoGrigliaModule;
|
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdiniAcquistoGrigliaModule;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanGrigliaAcquistoComponent;
|
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanGrigliaAcquistoComponent;
|
||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeComponent;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeComponent;
|
||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule;
|
||||||
|
import it.integry.integrywmsnative.gest.settings.MainSettingsComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.settings.MainSettingsModule;
|
||||||
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.DialogPrintOrderSSCCListComponent;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list.DialogPrintOrderSSCCListModule;
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list.DialogPrintOrderSSCCListModule;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.DialogInfoSituazioneArticoloComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.DialogInfoSituazioneArticoloModule;
|
||||||
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;
|
||||||
@@ -92,15 +113,33 @@ import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetM
|
|||||||
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalModule;
|
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteComponent;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteModule;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArtsComponent;
|
import it.integry.integrywmsnative.view.dialogs.ask_commessa.DialogAskCommessaComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArtsModule;
|
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_vettore.DialogAskVettoreComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_vettore.DialogAskVettoreModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.basket_lu.DialogBasketLUComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.basket_lu.DialogBasketLUModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotComponent;
|
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotModule;
|
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.InfoAggiuntiveLUDialogComponent;
|
import it.integry.integrywmsnative.view.dialogs.create_new_art.DialogCreateNewArtComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.create_new_art.DialogCreateNewArtModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdComponent;
|
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdComponent;
|
||||||
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_peso_lu.DialogInputPesoLUComponent;
|
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUModule;
|
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_to_return.DialogInputQuantityToReturnComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_to_return.DialogInputQuantityToReturnModule;
|
||||||
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.DialogPrintUlSSCCComponent;
|
||||||
@@ -109,6 +148,12 @@ 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;
|
||||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUModule;
|
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.switch_user_depo.DialogSwitchUserDepoComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.switch_user_depo.DialogSwitchUserDepoModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.DialogTracciamentoImballiComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.DialogTracciamentoImballiModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.update_available.DialogUpdateAvailableComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.update_available.DialogUpdateAvailableModule;
|
||||||
|
|
||||||
// Definition of the Application graph
|
// Definition of the Application graph
|
||||||
@Singleton
|
@Singleton
|
||||||
@@ -122,7 +167,7 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
LoginModule.class,
|
LoginModule.class,
|
||||||
MainActivityModule.class,
|
MainActivityModule.class,
|
||||||
MainFragmentModule.class,
|
MainFragmentModule.class,
|
||||||
MainAccettazioneModule.class,
|
MainAccettazioneOrdiniElencoModule.class,
|
||||||
ListaBancaliModule.class,
|
ListaBancaliModule.class,
|
||||||
ContenutoBancaleModule.class,
|
ContenutoBancaleModule.class,
|
||||||
PVOrdiniAcquistoGrigliaModule.class,
|
PVOrdiniAcquistoGrigliaModule.class,
|
||||||
@@ -131,7 +176,7 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
RettificaGiacenzeModule.class,
|
RettificaGiacenzeModule.class,
|
||||||
ElencoInventariModule.class,
|
ElencoInventariModule.class,
|
||||||
SpedizioneModule.class,
|
SpedizioneModule.class,
|
||||||
AccettazionePickingModule.class,
|
AccettazioneOrdiniPickingModule.class,
|
||||||
UltimeConsegneClienteModule.class,
|
UltimeConsegneClienteModule.class,
|
||||||
UltimiArriviFornitoreModule.class,
|
UltimiArriviFornitoreModule.class,
|
||||||
PickingResiModule.class,
|
PickingResiModule.class,
|
||||||
@@ -140,6 +185,7 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
DialogInputLUProdModule.class,
|
DialogInputLUProdModule.class,
|
||||||
DialogScanArtModule.class,
|
DialogScanArtModule.class,
|
||||||
DialogScanOrCreateLUModule.class,
|
DialogScanOrCreateLUModule.class,
|
||||||
|
DialogBasketLUModule.class,
|
||||||
ProdFabbisognoLineeProdModule.class,
|
ProdFabbisognoLineeProdModule.class,
|
||||||
VersamentoMerceModule.class,
|
VersamentoMerceModule.class,
|
||||||
DialogAskMagazzinoProssimitaModule.class,
|
DialogAskMagazzinoProssimitaModule.class,
|
||||||
@@ -148,11 +194,12 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
ProdOrdineProduzioneElencoModule.class,
|
ProdOrdineProduzioneElencoModule.class,
|
||||||
ProdRecuperoMaterialeModule.class,
|
ProdRecuperoMaterialeModule.class,
|
||||||
ProdVersamentoMaterialeModule.class,
|
ProdVersamentoMaterialeModule.class,
|
||||||
DialogChooseArtsFromListaArtsModule.class,
|
DialogChooseArtsFromMtbColrListModule.class,
|
||||||
DocInterniModule.class,
|
DocInterniModule.class,
|
||||||
DialogSelectDocInfoModule.class,
|
DialogSelectDocInfoModule.class,
|
||||||
DocInterniEditFormModule.class,
|
DocInterniEditFormModule.class,
|
||||||
DialogSelectDocRowsModule.class,
|
DialogSelectDocRowsModule.class,
|
||||||
|
DialogSelectLottiModule.class,
|
||||||
DialogAskClienteModule.class,
|
DialogAskClienteModule.class,
|
||||||
DialogEditArticoloModule.class,
|
DialogEditArticoloModule.class,
|
||||||
DialogPrintOrderSSCCListModule.class,
|
DialogPrintOrderSSCCListModule.class,
|
||||||
@@ -166,6 +213,27 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
BottomSheetInventarioActionsModule.class,
|
BottomSheetInventarioActionsModule.class,
|
||||||
BottomSheetInventarioRowActionsModule.class,
|
BottomSheetInventarioRowActionsModule.class,
|
||||||
BottomSheetMtbColrEditModalModule.class,
|
BottomSheetMtbColrEditModalModule.class,
|
||||||
|
DialogChooseArtsFromMtbAartListModule.class,
|
||||||
|
MainSettingsModule.class,
|
||||||
|
DialogInfoSituazioneArticoloModule.class,
|
||||||
|
DialogSelectArtToOrderModule.class,
|
||||||
|
MainAccettazioneBollaElencoModule.class,
|
||||||
|
AccettazioneBollaPickingModule.class,
|
||||||
|
DialogBindProductBarcodeWithPackageModule.class,
|
||||||
|
DialogAskUnknownBarcodeNotesModule.class,
|
||||||
|
ProdVersamentoMaterialeInBufferModule.class,
|
||||||
|
DialogInputQuantityToReturnModule.class,
|
||||||
|
DialogInfoAggiuntiveLUModule.class,
|
||||||
|
DialogAskLineaProdModule.class,
|
||||||
|
ProdRiposizionamentoDaProdModule.class,
|
||||||
|
DialogInfoGiacenzaModule.class,
|
||||||
|
ArticoliInGiacenzaModule.class,
|
||||||
|
DialogTracciamentoImballiModule.class,
|
||||||
|
DialogAskVettoreModule.class,
|
||||||
|
DialogAskVettoreModule.class,
|
||||||
|
DialogCreateNewArtModule.class,
|
||||||
|
DialogSwitchUserDepoModule.class,
|
||||||
|
DialogUpdateAvailableModule.class
|
||||||
})
|
})
|
||||||
public interface MainApplicationComponent {
|
public interface MainApplicationComponent {
|
||||||
|
|
||||||
@@ -183,7 +251,7 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
MainFragmentComponent.Factory mainFragmentComponent();
|
MainFragmentComponent.Factory mainFragmentComponent();
|
||||||
|
|
||||||
MainAccettazioneComponent.Factory mainAccettazioneComponent();
|
MainAccettazioneOrdiniElencoComponent.Factory mainAccettazioneOrdiniComponent();
|
||||||
|
|
||||||
ListaBancaliComponent.Factory listaBancaliComponent();
|
ListaBancaliComponent.Factory listaBancaliComponent();
|
||||||
|
|
||||||
@@ -201,7 +269,7 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
SpedizioneComponent.Factory spedizioneComponent();
|
SpedizioneComponent.Factory spedizioneComponent();
|
||||||
|
|
||||||
AccettazionePickingComponent.Factory accettazionePickingComponent();
|
AccettazioneOrdiniPickingComponent.Factory accettazionePickingComponent();
|
||||||
|
|
||||||
UltimeConsegneClienteComponent.Factory ultimeConsegneClienteComponent();
|
UltimeConsegneClienteComponent.Factory ultimeConsegneClienteComponent();
|
||||||
|
|
||||||
@@ -221,6 +289,8 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
DialogScanOrCreateLUComponent.Factory dialogScanOrCreateLUComponent();
|
DialogScanOrCreateLUComponent.Factory dialogScanOrCreateLUComponent();
|
||||||
|
|
||||||
|
DialogBasketLUComponent.Factory dialogBasketLUComponent();
|
||||||
|
|
||||||
ProdFabbisognoLineeProdComponent.Factory prodFabbisognoLineeProdComponent();
|
ProdFabbisognoLineeProdComponent.Factory prodFabbisognoLineeProdComponent();
|
||||||
|
|
||||||
VersamentoMerceComponent.Factory versamentoMerceComponent();
|
VersamentoMerceComponent.Factory versamentoMerceComponent();
|
||||||
@@ -243,18 +313,14 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
ProdVersamentoMaterialeComponent.Factory prodVersamentoMaterialeComponent();
|
ProdVersamentoMaterialeComponent.Factory prodVersamentoMaterialeComponent();
|
||||||
|
|
||||||
DialogChooseArtsFromListaArtsComponent.Factory dialogChooseArtsFromListaArtsComponent();
|
DialogChooseArtsFromMtbColrListComponent.Factory dialogChooseArtsFromListaArtsComponent();
|
||||||
|
|
||||||
DocInterniComponent.Factory docInterniComponent();
|
DocInterniComponent.Factory docInterniComponent();
|
||||||
|
|
||||||
DialogSelectDocInfoComponent.Factory dialogSelectMgrpDtipPairComponent();
|
DialogSelectDocInfoComponent.Factory dialogSelectDocInfoNewViewComponent();
|
||||||
|
|
||||||
DialogSelectDocRowsComponent.Factory dialogSelectDocRowsComponent();
|
|
||||||
|
|
||||||
DocInterniEditFormComponent.Factory docInterniEditFormComponent();
|
DocInterniEditFormComponent.Factory docInterniEditFormComponent();
|
||||||
|
|
||||||
InfoAggiuntiveLUDialogComponent.Factory infoAggiuntiveLUDialogComponent();
|
|
||||||
|
|
||||||
DialogEditArticoloComponent.Factory dialogEditArticoloComponent();
|
DialogEditArticoloComponent.Factory dialogEditArticoloComponent();
|
||||||
|
|
||||||
DialogPrintOrderSSCCListComponent.Factory dialogPrintOrderSSCCListComponent();
|
DialogPrintOrderSSCCListComponent.Factory dialogPrintOrderSSCCListComponent();
|
||||||
@@ -279,6 +345,53 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
BottomSheetMtbColrEditModalComponent.Factory bottomSheetMtbColrEditModalComponent();
|
BottomSheetMtbColrEditModalComponent.Factory bottomSheetMtbColrEditModalComponent();
|
||||||
|
|
||||||
|
DialogChooseArtsFromMtbAartListComponent.Factory dialogDialogDialogChooseArtsFromMtbAartListViewComponent();
|
||||||
|
|
||||||
|
MainSettingsComponent.Factory mainSettingsFragmentComponent();
|
||||||
|
|
||||||
|
DialogInfoSituazioneArticoloComponent.Factory dialogInfoSituazioneArticoloComponent();
|
||||||
|
|
||||||
|
DialogSelectDocRowsComponent.Factory dialogSelectDocRowsNewComponent();
|
||||||
|
DialogSelectLottiComponent.Factory dialogSelectLottiComponent();
|
||||||
|
|
||||||
|
DialogSelectArtToOrderComponent.Factory dialogSelectArtToOrderNewComponent();
|
||||||
|
|
||||||
|
MainAccettazioneBollaElencoComponent.Factory mainAccettazioneBollaElencoComponent();
|
||||||
|
|
||||||
|
AccettazioneBollaPickingComponent.Factory accettazioneBollaPickingComponent();
|
||||||
|
|
||||||
|
DialogBindProductBarcodeWithPackageComponent.Factory dialogBindProductBarcodeWithPackageComponent();
|
||||||
|
|
||||||
|
DialogAskUnknownBarcodeNotesComponent.Factory dialogAskUnknownBarcodeNotesComponent();
|
||||||
|
|
||||||
|
ProdVersamentoMaterialeInBufferComponent.Factory prodVersamentoMaterialeInBufferComponent();
|
||||||
|
|
||||||
|
DialogInputQuantityToReturnComponent.Factory dialogInputQuantityToReturnComponent();
|
||||||
|
|
||||||
|
DialogInfoAggiuntiveLUComponent.Factory dialogInfoAggiuntiveLUComponent();
|
||||||
|
|
||||||
|
DialogAskLineaProdComponent.Factory dialogAskLineaProdComponent();
|
||||||
|
|
||||||
|
ProdRiposizionamentoDaProdComponent.Factory prodRiposizionamentoDaprodComponent();
|
||||||
|
|
||||||
|
DialogInfoGiacenzaComponent.Factory dialogInfoGiacenzaComponent();
|
||||||
|
|
||||||
|
ArticoliInGiacenzaComponent.Factory controlloGiacenzeComponent();
|
||||||
|
|
||||||
|
DialogTracciamentoImballiComponent.Factory dialogTracciamentoImballiComponent();
|
||||||
|
|
||||||
|
DialogAskVettoreComponent.Factory dialogAskVettoreComponent();
|
||||||
|
|
||||||
|
DialogAskCommessaComponent.Factory dialogAskCommessaComponent();
|
||||||
|
|
||||||
|
DialogCreateNewArtComponent.Factory dialogCreateNewArtComponent();
|
||||||
|
|
||||||
|
DialogSwitchUserDepoComponent.Factory dialogSwitchUserDepoComponent();
|
||||||
|
|
||||||
|
ProdRientroMerceOrderListComponent.Factory prodRientroMerceOrderListComponent();
|
||||||
|
|
||||||
|
DialogUpdateAvailableComponent.Factory dialogUpdateAvailableComponent();
|
||||||
|
|
||||||
void inject(MainApplication mainApplication);
|
void inject(MainApplication mainApplication);
|
||||||
|
|
||||||
void inject(AppContext mainApplication);
|
void inject(AppContext mainApplication);
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package it.integry.integrywmsnative;
|
|||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
|
||||||
|
|
||||||
import androidx.core.os.HandlerCompat;
|
import androidx.core.os.HandlerCompat;
|
||||||
|
|
||||||
@@ -17,30 +16,44 @@ import it.integry.integrywmsnative.core.context.AppContext;
|
|||||||
import it.integry.integrywmsnative.core.context.MainContext;
|
import it.integry.integrywmsnative.core.context.MainContext;
|
||||||
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.AppDatabase;
|
import it.integry.integrywmsnative.core.data_store.db.AppDatabase;
|
||||||
|
import it.integry.integrywmsnative.core.ean128.Ean128Service;
|
||||||
import it.integry.integrywmsnative.core.menu.MenuRESTConsumer;
|
import it.integry.integrywmsnative.core.menu.MenuRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.menu.MenuService;
|
import it.integry.integrywmsnative.core.menu.MenuService;
|
||||||
|
import it.integry.integrywmsnative.core.rest.AuthInterceptor;
|
||||||
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.AziendaRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.AziendaRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
|
||||||
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.DocumentRESTConsumer;
|
||||||
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;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoBufferRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.MaterialiRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
|
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.PVOrdiniAcquistoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
||||||
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.ProductionLinesRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ProduzioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.VettoriRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.services.inventario.InventarioService;
|
import it.integry.integrywmsnative.core.services.inventario.InventarioService;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.sound.SoundAlertService;
|
||||||
import it.integry.integrywmsnative.core.update.UpdatesManager;
|
import it.integry.integrywmsnative.core.update.UpdatesManager;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.gest.login.rest.AuthenticationRESTConsumer;
|
||||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest.ProdFabbisognoLineeProdRESTConsumer;
|
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest.ProdFabbisognoLineeProdRESTConsumer;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
|
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||||
@@ -69,13 +82,13 @@ public class MainApplicationModule {
|
|||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
public Handler providesMainThreadHandler() {
|
public Handler providesMainThreadHandler() {
|
||||||
return HandlerCompat.createAsync(Looper.getMainLooper());
|
return HandlerCompat.createAsync(mApplication.getApplicationContext().getMainLooper());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
public SettingsManager provideSettingsManager(SystemRESTConsumer systemRESTConsumer, AziendaRESTConsumer aziendaRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer, GestSetupRESTConsumer gestSetupRESTConsumer) {
|
public SettingsManager provideSettingsManager(SystemRESTConsumer systemRESTConsumer, ImballiRESTConsumer imballiRESTConsumer, AziendaRESTConsumer aziendaRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer, GestSetupRESTConsumer gestSetupRESTConsumer) {
|
||||||
return new SettingsManager(mApplication, systemRESTConsumer, aziendaRESTConsumer, gestSetupRESTConsumer, posizioniRESTConsumer);
|
return new SettingsManager(mApplication, systemRESTConsumer, imballiRESTConsumer, aziendaRESTConsumer, gestSetupRESTConsumer, posizioniRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -86,8 +99,8 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
MainContext providesMainContextNew(MenuService menuService, AppDatabase appDatabase) {
|
MainContext providesMainContextNew(MenuService menuService, AppDatabase appDatabase, SystemRESTConsumer systemRESTConsumer, AuthenticationRESTConsumer authenticationRESTConsumer) {
|
||||||
return new MainContext(mApplication.getApplicationContext(), menuService, appDatabase);
|
return new MainContext(mApplication.getApplicationContext(), menuService, appDatabase, systemRESTConsumer, authenticationRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -98,6 +111,19 @@ public class MainApplicationModule {
|
|||||||
return colliDataRecoverService;
|
return colliDataRecoverService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
Ean128Service provideEan128Service() {
|
||||||
|
return new Ean128Service();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
RESTBuilder providesRESTBuilder(AuthInterceptor authInterceptor) {
|
||||||
|
return new RESTBuilder(authInterceptor);
|
||||||
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
MenuService provideMenuService(MenuRESTConsumer menuRESTConsumer) {
|
MenuService provideMenuService(MenuRESTConsumer menuRESTConsumer) {
|
||||||
@@ -106,8 +132,8 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
UpdatesManager provideUpdatesManager() {
|
UpdatesManager provideUpdatesManager(ExecutorService executorService, Handler handler, SystemRESTConsumer systemRESTConsumer) {
|
||||||
return new UpdatesManager();
|
return new UpdatesManager(executorService, handler, systemRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -124,20 +150,20 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
OrdiniRESTConsumer provideOrdiniRESTConsumer(SystemRESTConsumer systemRESTConsumer, EntityRESTConsumer entityRESTConsumer) {
|
OrdiniRESTConsumer provideOrdiniRESTConsumer(RESTBuilder restBuilder, SystemRESTConsumer systemRESTConsumer, EntityRESTConsumer entityRESTConsumer) {
|
||||||
return new OrdiniRESTConsumer(systemRESTConsumer, entityRESTConsumer);
|
return new OrdiniRESTConsumer(restBuilder, systemRESTConsumer, entityRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
GestSetupRESTConsumer provideGestSetupRESTConsumer() {
|
GestSetupRESTConsumer provideGestSetupRESTConsumer(RESTBuilder restBuilder) {
|
||||||
return new GestSetupRESTConsumer();
|
return new GestSetupRESTConsumer(restBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
ArticoloRESTConsumer provideArticoloRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
ArticoloRESTConsumer provideArticoloRESTConsumer(RESTBuilder restBuilder, SystemRESTConsumer systemRESTConsumer) {
|
||||||
return new ArticoloRESTConsumer(systemRESTConsumer);
|
return new ArticoloRESTConsumer(restBuilder, systemRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -154,86 +180,108 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
MenuRESTConsumer provideMenuRESTConsumer() {
|
MenuRESTConsumer provideMenuRESTConsumer(RESTBuilder restBuilder) {
|
||||||
return new MenuRESTConsumer();
|
return new MenuRESTConsumer(restBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
MagazzinoRESTConsumer provideMagazzinoRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
MagazzinoRESTConsumer provideMagazzinoRESTConsumer(RESTBuilder restBuilder, ExecutorService executorService, SystemRESTConsumer systemRESTConsumer) {
|
||||||
return new MagazzinoRESTConsumer(systemRESTConsumer);
|
return new MagazzinoRESTConsumer(restBuilder, executorService, systemRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
MesRESTConsumer provideMesRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
MesRESTConsumer provideMesRESTConsumer(RESTBuilder restBuilder, SystemRESTConsumer systemRESTConsumer) {
|
||||||
return new MesRESTConsumer(systemRESTConsumer);
|
return new MesRESTConsumer(restBuilder, systemRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
EntityRESTConsumer provideEntityRESTConsumer() {
|
EntityRESTConsumer provideEntityRESTConsumer(RESTBuilder restBuilder) {
|
||||||
return new EntityRESTConsumer();
|
return new EntityRESTConsumer(restBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
ColliMagazzinoRESTConsumer provideColliMagazzinoRESTConsumer(SystemRESTConsumer systemRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer, EntityRESTConsumer entityRESTConsumer) {
|
ColliMagazzinoRESTConsumer provideColliMagazzinoRESTConsumer(RESTBuilder restBuilder,
|
||||||
return new ColliMagazzinoRESTConsumer(systemRESTConsumer, articoloRESTConsumer, entityRESTConsumer);
|
SystemRESTConsumer systemRESTConsumer,
|
||||||
|
ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
|
EntityRESTConsumer entityRESTConsumer,
|
||||||
|
SettingsManager settingsManager) {
|
||||||
|
return new ColliMagazzinoRESTConsumer(restBuilder, systemRESTConsumer, articoloRESTConsumer, entityRESTConsumer, settingsManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
AziendaRESTConsumer provideAziendaRESTConsumer() {
|
AziendaRESTConsumer provideAziendaRESTConsumer(RESTBuilder restBuilder) {
|
||||||
return new AziendaRESTConsumer();
|
return new AziendaRESTConsumer(restBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
BarcodeRESTConsumer provideBarcodeRESTConsumer() {
|
ProduzioneRESTConsumer provideProduzioneRESTConsumer(RESTBuilder restBuilder) {
|
||||||
return new BarcodeRESTConsumer();
|
return new ProduzioneRESTConsumer(restBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
PrinterRESTConsumer providePrinterRESTConsumer() {
|
BarcodeRESTConsumer provideBarcodeRESTConsumer(Ean128Service ean128Service) {
|
||||||
return new PrinterRESTConsumer();
|
return new BarcodeRESTConsumer(ean128Service);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
SystemRESTConsumer provideSystemRESTConsumer() {
|
PrinterRESTConsumer providePrinterRESTConsumer(RESTBuilder restBuilder) {
|
||||||
return new SystemRESTConsumer();
|
return new PrinterRESTConsumer(restBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
PVOrdiniAcquistoRESTConsumer providesPVOrdiniAcquistoRESTConsumer(MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
SystemRESTConsumer provideSystemRESTConsumer(ExecutorService executorService, RESTBuilder restBuilder) {
|
||||||
return new PVOrdiniAcquistoRESTConsumer(magazzinoRESTConsumer);
|
return new SystemRESTConsumer(executorService, restBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
PosizioniRESTConsumer providesPosizioniRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
PVOrdiniAcquistoRESTConsumer providesPVOrdiniAcquistoRESTConsumer(RESTBuilder restBuilder, MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
||||||
return new PosizioniRESTConsumer(systemRESTConsumer);
|
return new PVOrdiniAcquistoRESTConsumer(restBuilder, magazzinoRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
ProdFabbisognoLineeProdRESTConsumer providesProdFabbisognoLineeProdRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
PosizioniRESTConsumer providesPosizioniRESTConsumer(RESTBuilder restBuilder, SystemRESTConsumer systemRESTConsumer) {
|
||||||
return new ProdFabbisognoLineeProdRESTConsumer(systemRESTConsumer);
|
return new PosizioniRESTConsumer(restBuilder, systemRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
DocInterniRESTConsumer provideDocInterniRESTConsumer(MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
ProdFabbisognoLineeProdRESTConsumer providesProdFabbisognoLineeProdRESTConsumer(RESTBuilder restBuilder, SystemRESTConsumer systemRESTConsumer) {
|
||||||
return new DocInterniRESTConsumer(magazzinoRESTConsumer);
|
return new ProdFabbisognoLineeProdRESTConsumer(restBuilder, systemRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
GiacenzaRESTConsumer provideGiacenzaRESTConsumer(SystemRESTConsumer systemRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer) {
|
DocInterniRESTConsumer provideDocInterniRESTConsumer(RESTBuilder restBuilder, MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
||||||
return new GiacenzaRESTConsumer(systemRESTConsumer, articoloRESTConsumer);
|
return new DocInterniRESTConsumer(restBuilder, magazzinoRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
GiacenzaRESTConsumer provideGiacenzaRESTConsumer(RESTBuilder restBuilder, ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
|
return new GiacenzaRESTConsumer(restBuilder, articoloRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
ImballiRESTConsumer provideImballiRESTConsumer(RESTBuilder restBuilder, ExecutorService executorService) {
|
||||||
|
return new ImballiRESTConsumer(restBuilder, executorService);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
VettoriRESTConsumer provideVettoriRESTConsumer(RESTBuilder restBuilder, ExecutorService executorService) {
|
||||||
|
return new VettoriRESTConsumer(restBuilder, executorService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -244,14 +292,58 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
ProductionLinesRESTConsumer provideProductionLinesRESTConsumer() {
|
ProductionLinesRESTConsumer provideProductionLinesRESTConsumer(RESTBuilder restBuilder) {
|
||||||
return new ProductionLinesRESTConsumer();
|
return new ProductionLinesRESTConsumer(restBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
DocumentiRESTConsumer provideDocumentiRESTConsumer() {
|
DocumentRESTConsumer provideDocumentiRESTConsumer(RESTBuilder restBuilder) {
|
||||||
return new DocumentiRESTConsumer();
|
return new DocumentRESTConsumer(restBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
ColliAccettazioneRESTConsumer provideColliAccettazioneRESTConsumer(RESTBuilder restBuilder) {
|
||||||
|
return new ColliAccettazioneRESTConsumer(restBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
ColliSpedizioneRESTConsumer provideColliSpedizioneRESTConsumer(RESTBuilder restBuilder) {
|
||||||
|
return new ColliSpedizioneRESTConsumer(restBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
ColliLavorazioneRESTConsumer provideColliLavorazioneRESTConsumer(RESTBuilder restBuilder, SettingsManager settingsManager) {
|
||||||
|
return new ColliLavorazioneRESTConsumer(restBuilder, settingsManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
MagazzinoAutomaticoRESTConsumer provideMagazzinoAutomaticoRESTConsumer(RESTBuilder restBuilder) {
|
||||||
|
return new MagazzinoAutomaticoRESTConsumer(restBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
MagazzinoBufferRESTConsumer provideMagazzinoBufferRESTConsumer(RESTBuilder restBuilder) {
|
||||||
|
return new MagazzinoBufferRESTConsumer(restBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
MaterialiRESTConsumer provideMaterialiRESTConsumer(RESTBuilder restBuilder, ExecutorService executorService) {
|
||||||
|
return new MaterialiRESTConsumer(restBuilder, executorService);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
SoundAlertService provideSoundAlertService() {
|
||||||
|
SoundAlertService soundAlertService = new SoundAlertService(mApplication.getApplicationContext());
|
||||||
|
soundAlertService.init();
|
||||||
|
return soundAlertService;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,12 +103,12 @@ public class SplashActivity extends BaseActivity implements MainContext.Listener
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDBDataLoading(String item) {
|
public void onDBDataLoading(String item) {
|
||||||
mBinding.loadingInfoTextview.setText("Caricamento " + item);
|
runOnUiThread(() -> mBinding.loadingInfoTextview.setText("Caricamento " + item));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMenuLoading() {
|
public void onMenuLoading() {
|
||||||
mBinding.loadingInfoTextview.setText("Caricamento menù");
|
runOnUiThread(() -> mBinding.loadingInfoTextview.setText("Caricamento menù"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -5,8 +5,9 @@ public class CommonConst {
|
|||||||
public static class Login {
|
public static class Login {
|
||||||
|
|
||||||
public static class Azienda {
|
public static class Azienda {
|
||||||
|
public static String protocol = "https";
|
||||||
public static String host = "www2.studioml.it";
|
public static String host = "www2.studioml.it";
|
||||||
public static int port = 80;
|
public static int port = 443;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package it.integry.integrywmsnative.core.authentication;
|
||||||
|
|
||||||
|
import io.jsonwebtoken.Claims;
|
||||||
|
import io.jsonwebtoken.Jws;
|
||||||
|
import io.jsonwebtoken.Jwts;
|
||||||
|
import io.jsonwebtoken.io.Decoders;
|
||||||
|
import io.jsonwebtoken.security.Keys;
|
||||||
|
|
||||||
|
public class JwtUtils {
|
||||||
|
|
||||||
|
private final static String SIGNING_KEY = "gICy3bjD56i/YFnBZZKe5ibiz3Snsp08nybGGziCV4ZcvyXBbyqWUnJ2wTrRXhOuf/xdljPXX0yBaqdAgvKthQ==";
|
||||||
|
|
||||||
|
public static Claims parseJwt(String token) {
|
||||||
|
Jws<Claims> jws = Jwts.parserBuilder()
|
||||||
|
.setSigningKey(Keys.hmacShaKeyFor(Decoders.BASE64.decode(SIGNING_KEY)))
|
||||||
|
.build()
|
||||||
|
.parseClaimsJws(token);
|
||||||
|
|
||||||
|
return jws.getBody();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,7 +14,6 @@ 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.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.integrywmsnative.gest.settings.MainSettingsFragment;
|
||||||
import it.integry.keyobardemulatorscannerlibrary.KeyboardEmulatorBarcodeReader;
|
import it.integry.keyobardemulatorscannerlibrary.KeyboardEmulatorBarcodeReader;
|
||||||
import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader;
|
import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader;
|
||||||
@@ -76,7 +75,7 @@ public class BarcodeManager {
|
|||||||
var scanMode = sharedPreferences.getString(MainSettingsFragment.KEY_TRIGGER_SCAN_MODE, null);
|
var scanMode = sharedPreferences.getString(MainSettingsFragment.KEY_TRIGGER_SCAN_MODE, null);
|
||||||
var scanModeSetting = new Pair<String, Object>(BarcodeSetting.P_TRIGGER_SCAN_MODE, scanMode);
|
var scanModeSetting = new Pair<String, Object>(BarcodeSetting.P_TRIGGER_SCAN_MODE, scanMode);
|
||||||
additionalSettings.add(scanModeSetting);
|
additionalSettings.add(scanModeSetting);
|
||||||
|
|
||||||
BarcodeManager.changeSettings(additionalSettings);
|
BarcodeManager.changeSettings(additionalSettings);
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -86,7 +85,7 @@ public class BarcodeManager {
|
|||||||
|
|
||||||
private static BarcodeCallbackDTO getValidCallback() {
|
private static BarcodeCallbackDTO getValidCallback() {
|
||||||
|
|
||||||
if (mBarcodeCallbacksStacktrace.size() > 0) {
|
if (!mBarcodeCallbacksStacktrace.isEmpty()) {
|
||||||
return mBarcodeCallbacksStacktrace.get(mBarcodeCallbacksStacktrace.size() - 1);
|
return mBarcodeCallbacksStacktrace.get(mBarcodeCallbacksStacktrace.size() - 1);
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
@@ -107,7 +106,7 @@ public class BarcodeManager {
|
|||||||
|
|
||||||
int newID = -1;
|
int newID = -1;
|
||||||
|
|
||||||
if (mBarcodeCallbacksStacktrace.size() > 0) {
|
if (!mBarcodeCallbacksStacktrace.isEmpty()) {
|
||||||
newID = mBarcodeCallbacksStacktrace.get(mBarcodeCallbacksStacktrace.size() - 1).getID() + 1;
|
newID = mBarcodeCallbacksStacktrace.get(mBarcodeCallbacksStacktrace.size() - 1).getID() + 1;
|
||||||
} else {
|
} else {
|
||||||
newID = 1;
|
newID = 1;
|
||||||
@@ -136,12 +135,12 @@ public class BarcodeManager {
|
|||||||
|
|
||||||
public static void disable() {
|
public static void disable() {
|
||||||
mEnabled = false;
|
mEnabled = false;
|
||||||
UtilityLogger.trace("Barcode reader disabled");
|
// UtilityLogger.info("Barcode reader disabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void enable() {
|
public static void enable() {
|
||||||
mEnabled = true;
|
mEnabled = true;
|
||||||
UtilityLogger.trace("Barcode reader enabled");
|
// UtilityLogger.info("Barcode reader enabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isEnabled() {
|
public static boolean isEnabled() {
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package it.integry.integrywmsnative.core.base;
|
||||||
|
|
||||||
|
public interface Callable<I, O> {
|
||||||
|
O call(I input);
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package it.integry.integrywmsnative.core.base;
|
||||||
|
|
||||||
|
public interface CallableII<I, L, O> {
|
||||||
|
O call(I input, L input2);
|
||||||
|
}
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.class_router;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityHashMap;
|
|
||||||
|
|
||||||
public class BaseCustomConfiguration implements ICustomConfiguration {
|
|
||||||
|
|
||||||
|
|
||||||
public static class Keys {
|
|
||||||
public static int FLAG_SHOW_COD_FORN_IN_SPEDIZIONE = 1;
|
|
||||||
public static int CUSTOM_DYNAMIC_VERSION_PATH = 2;
|
|
||||||
public static int FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected HashMap<Integer, Object> configurations = new HashMap<>() {{
|
|
||||||
put(Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE, true);
|
|
||||||
put(Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC, false);
|
|
||||||
}};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public <T> T getConfig(int key) {
|
|
||||||
return UtilityHashMap.getValue(configurations, key);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.class_router;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.util.Pair;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class ClassRouter {
|
|
||||||
|
|
||||||
public enum PATH {
|
|
||||||
FILTRO_ORDINI_VENDITA,
|
|
||||||
ORDINI_VENDITA,
|
|
||||||
CUSTOM_CONFIGURATION,
|
|
||||||
BARCODE_CUSTOMIZATION
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Context context;
|
|
||||||
|
|
||||||
private static List<Pair<PATH, Object>> mRouteClasses = new ArrayList<>();
|
|
||||||
|
|
||||||
public static void init() {
|
|
||||||
// ClassRouter.context = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean checkIClassExists(PATH path) {
|
|
||||||
boolean methodAlreadyDeclared = false;
|
|
||||||
|
|
||||||
for(int i = 0; i < mRouteClasses.size() && !methodAlreadyDeclared; i++) {
|
|
||||||
if(mRouteClasses.get(i).first == path) methodAlreadyDeclared = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return methodAlreadyDeclared;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static int getClassIndex(PATH path) {
|
|
||||||
for(int i = 0; i < mRouteClasses.size(); i++) {
|
|
||||||
if(mRouteClasses.get(i).first == path) return i;
|
|
||||||
}
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void registerPath(PATH path, Class clazz) {
|
|
||||||
if(checkIClassExists(path)) {
|
|
||||||
//throw new MethodPathAlreadyDeclaredException(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
mRouteClasses.add(new Pair<>(path, clazz.newInstance()));
|
|
||||||
} catch (IllegalAccessException | InstantiationException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void deregisterPath(PATH path) {
|
|
||||||
if(checkIClassExists(path)) {
|
|
||||||
mRouteClasses.remove(getClassIndex(path));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static <T> T getInstance(PATH path) {
|
|
||||||
try {
|
|
||||||
|
|
||||||
if (!checkIClassExists(path)) {
|
|
||||||
// throw new MethodPathNotRegisteredException(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
Object instance = mRouteClasses.get(getClassIndex(path)).second;
|
|
||||||
|
|
||||||
return (T)instance;
|
|
||||||
|
|
||||||
} catch (Exception ex) {
|
|
||||||
// UtilityExceptions.defaultException(null, ex, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,10 @@ package it.integry.integrywmsnative.core.class_router.configs;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.MainAccettazioneBollaElencoFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.articoli_in_giacenza.ArticoliInGiacenzaFragment;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniFragment;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniFragment;
|
||||||
import it.integry.integrywmsnative.gest.inventario.ElencoInventariFragment;
|
import it.integry.integrywmsnative.gest.inventario.ElencoInventariFragment;
|
||||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment;
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment;
|
||||||
@@ -12,9 +15,12 @@ import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisogn
|
|||||||
import it.integry.integrywmsnative.gest.prod_linee_produzione.ProdLineeProduzioneFragment;
|
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_riposizionamento_da_prod.ProdRiposizionamentoDaProdFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale_su_mag_prossimita.ProdVersamentoMaterialeInBufferFragment;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdiniAcquistoGrigliaFragment;
|
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdiniAcquistoGrigliaFragment;
|
||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.DialogInfoSituazioneArticoloView;
|
||||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteFragment;
|
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteFragment;
|
||||||
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.UltimiArriviFornitoreFragment;
|
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.UltimiArriviFornitoreFragment;
|
||||||
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
|
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
|
||||||
@@ -34,10 +40,18 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_accettazione)
|
.setID(R.id.nav_accettazione)
|
||||||
.setCodMenu("MG044")
|
.setCodMenu("MG044")
|
||||||
.setTitleText(R.string.accettazione_title_fragment)
|
.setTitleText(R.string.accettazione_ordine_title_fragment)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_accettazione)
|
.setTitleIcon(R.drawable.ic_dashboard_accettazione_ordini)
|
||||||
.setDrawerIcon(R.drawable.ic_black_download)
|
.setDrawerIcon(R.drawable.ic_black_download)
|
||||||
.setFragmentFactory(MainAccettazioneFragment::newInstance))
|
.setFragmentFactory(MainAccettazioneOrdiniElencoFragment::newInstance))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(R.id.nav_accettazione_bolle)
|
||||||
|
.setCodMenu("MG065")
|
||||||
|
.setTitleText(R.string.accettazione_bolle_title_fragment)
|
||||||
|
.setTitleIcon(R.drawable.ic_dashboard_accettazione_bolle)
|
||||||
|
.setDrawerIcon(R.drawable.ic_black_download)
|
||||||
|
.setFragmentFactory(MainAccettazioneBollaElencoFragment::newInstance))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_resi_fornitore)
|
.setID(R.id.nav_resi_fornitore)
|
||||||
@@ -57,8 +71,16 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setCodMenu("MG046")
|
.setCodMenu("MG046")
|
||||||
.setTitleText(R.string.vendita_title_fragment)
|
.setTitleText(R.string.vendita_title_fragment)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_spedizione)
|
.setTitleIcon(R.drawable.ic_dashboard_spedizione)
|
||||||
.setDrawerIcon(R.drawable.ic_black_upload)
|
.setDrawerIcon(R.drawable.ic_upload)
|
||||||
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1, null)))
|
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1, DialogInfoSituazioneArticoloView.class)))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(R.id.nav_rettifica_spedizione)
|
||||||
|
.setCodMenu("MG064")
|
||||||
|
.setTitleText(R.string.rettifica_spedizione_fragment_title)
|
||||||
|
.setTitleIcon(R.drawable.ic_dashboard_rettifica_spedizione)
|
||||||
|
.setDrawerIcon(R.drawable.ic_rettifica_spedizione_drawer)
|
||||||
|
.setFragmentFactory(() -> RettificaGiacenzeFragment.newInstance(GestioneEnum.VENDITA)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_free_picking)
|
.setID(R.id.nav_free_picking)
|
||||||
@@ -66,7 +88,8 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleText(R.string.free_picking)
|
.setTitleText(R.string.free_picking)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_picking_libero)
|
.setTitleIcon(R.drawable.ic_dashboard_picking_libero)
|
||||||
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
|
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
|
||||||
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.VENDITA)))
|
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(R.string.free_picking, GestioneEnum.VENDITA,
|
||||||
|
SettingsManager.iDB().isFlagAskClienteInPickingLibero(), false, false)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_resi_cliente)
|
.setID(R.id.nav_resi_cliente)
|
||||||
@@ -94,22 +117,23 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
|
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
|
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
|
||||||
.setDrawerIcon(R.drawable.ic_black_external)
|
.setDrawerIcon(R.drawable.ic_black_external)
|
||||||
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1, null)))
|
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1, SettingsManager.iDB().isFlagProduzioneShowInfo() ? DialogInfoSituazioneArticoloView.class : null)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_free_lav_picking)
|
.setID(R.id.nav_free_lav_picking)
|
||||||
.setCodMenu("MG051")
|
.setCodMenu("MG051")
|
||||||
.setTitleText(it.integry.integrywmsnative.R.string.free_lav_picking)
|
.setTitleText(R.string.free_lav_picking)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_libero)
|
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_libero)
|
||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_barcode_scanner)
|
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
|
||||||
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE)))
|
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(R.string.free_lav_picking, GestioneEnum.LAVORAZIONE,
|
||||||
|
SettingsManager.iDB().isFlagAskClienteInPickingLibero(), false, SettingsManager.iDB().isFlagAskCommessaInPickingLiberoLav())))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_prod_posizionamento_da_ord)
|
.setID(R.id.nav_prod_posizionamento_da_ord)
|
||||||
.setCodMenu("MG052")
|
.setCodMenu("MG052")
|
||||||
.setTitleText(R.string.prod_fabbisogno_linee_prod_title)
|
.setTitleText(R.string.prod_fabbisogno_linee_prod_title)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_merce)
|
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_merce)
|
||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_load_shelf)
|
.setDrawerIcon(R.drawable.ic_black_load_shelf)
|
||||||
.setFragmentFactory(ProdFabbisognoLineeProdFragment::newInstance))
|
.setFragmentFactory(ProdFabbisognoLineeProdFragment::newInstance))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
@@ -129,20 +153,44 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setFragmentFactory(ProdRecuperoMaterialeFragment::newInstance))
|
.setFragmentFactory(ProdRecuperoMaterialeFragment::newInstance))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(it.integry.integrywmsnative.R.id.nav_prod_rientro_merce)
|
.setID(R.id.nav_prod_rientro_merce)
|
||||||
.setCodMenu("MG059")
|
.setCodMenu("MG059")
|
||||||
.setTitleText(it.integry.integrywmsnative.R.string.rientro_merce_fragment_title)
|
.setTitleText(R.string.rientro_merce_fragment_title)
|
||||||
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_prod_accettazione_produzione)
|
.setTitleIcon(R.drawable.ic_dashboard_prod_accettazione_produzione)
|
||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_external)
|
.setDrawerIcon(R.drawable.ic_black_external)
|
||||||
.setFragmentFactory(ProdRientroMerceFragment::newInstance))
|
.setFragmentFactory(ProdRientroMerceFragment::newInstance))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(it.integry.integrywmsnative.R.id.nav_prod_linee)
|
.setID(R.id.nav_prod_linee)
|
||||||
.setCodMenu("MG061")
|
.setCodMenu("MG061")
|
||||||
.setTitleText(it.integry.integrywmsnative.R.string.nav_prod_linee_title)
|
.setTitleText(R.string.nav_prod_linee_title)
|
||||||
.setTitleIcon(R.drawable.ic_production_line)
|
.setTitleIcon(R.drawable.ic_production_line)
|
||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_production_line)
|
.setDrawerIcon(R.drawable.ic_production_line)
|
||||||
.setFragmentFactory(ProdLineeProduzioneFragment::newInstance))
|
.setFragmentFactory(ProdLineeProduzioneFragment::newInstance))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(R.id.nav_prod_versamento_materiale_in_buffer)
|
||||||
|
.setCodMenu("MG066")
|
||||||
|
.setTitleText(R.string.prod_versamento_materiale_in_buffer_title_fragment)
|
||||||
|
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_materiale)
|
||||||
|
.setDrawerIcon(R.drawable.ic_black_external)
|
||||||
|
.setFragmentFactory(ProdVersamentoMaterialeInBufferFragment::newInstance))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(R.id.nav_prod_versamento_su_ordine)
|
||||||
|
.setCodMenu("MG068")
|
||||||
|
.setTitleText(R.string.prod_versamento_su_ordine_title_fragment)
|
||||||
|
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_su_ord)
|
||||||
|
.setDrawerIcon(R.drawable.ic_black_external)
|
||||||
|
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(R.string.prod_versamento_su_ordine_title_fragment, GestioneEnum.LAVORAZIONE, false, true, false)))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(R.id.nav_prod_riposizionamento_da_ord)
|
||||||
|
.setCodMenu("MG069")
|
||||||
|
.setTitleText(R.string.prod_riposizionamento_da_prod_title)
|
||||||
|
.setTitleIcon(R.drawable.ic_production_line_produzione)
|
||||||
|
.setDrawerIcon(R.drawable.ic_black_load_shelf)
|
||||||
|
.setFragmentFactory(ProdRiposizionamentoDaProdFragment::newInstance))
|
||||||
).addGroup(
|
).addGroup(
|
||||||
new MenuGroup()
|
new MenuGroup()
|
||||||
.setGroupText(R.string.internal_handling)
|
.setGroupText(R.string.internal_handling)
|
||||||
@@ -173,6 +221,13 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setDrawerIcon(R.drawable.ic_black_empty_box)
|
.setDrawerIcon(R.drawable.ic_black_empty_box)
|
||||||
.setFragmentFactory(ElencoInventariFragment::newInstance))
|
.setFragmentFactory(ElencoInventariFragment::newInstance))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(R.id.nav_articoli_in_giacenza)
|
||||||
|
.setCodMenu("MG070")
|
||||||
|
.setTitleText(R.string.articoli_in_giacenza_title)
|
||||||
|
.setTitleIcon(R.drawable.ic_dashboard_articoli_in_giacenza)
|
||||||
|
.setDrawerIcon(R.drawable.ic_black_empty_box)
|
||||||
|
.setFragmentFactory(ArticoliInGiacenzaFragment::newInstance))
|
||||||
|
|
||||||
).addGroup(
|
).addGroup(
|
||||||
new MenuGroup()
|
new MenuGroup()
|
||||||
@@ -192,7 +247,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setID(it.integry.integrywmsnative.R.id.nav_pv_doc_interni)
|
.setID(it.integry.integrywmsnative.R.id.nav_pv_doc_interni)
|
||||||
.setTitleText(it.integry.integrywmsnative.R.string.doc_interni)
|
.setTitleText(it.integry.integrywmsnative.R.string.doc_interni)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_contab_doc_interni)
|
.setTitleIcon(R.drawable.ic_dashboard_contab_doc_interni)
|
||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_contab_doc_interni)
|
.setDrawerIcon(R.drawable.ic_documents_outline)
|
||||||
.setFragmentFactory(DocInterniFragment::newInstance))
|
.setFragmentFactory(DocInterniFragment::newInstance))
|
||||||
|
|
||||||
// .addItem(new MenuItem()
|
// .addItem(new MenuItem()
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.class_router.exceptions;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
|
||||||
|
|
||||||
public class MethodPathNotRegisteredException extends Exception {
|
|
||||||
|
|
||||||
public MethodPathNotRegisteredException(ClassRouter.PATH path) {
|
|
||||||
super(String.format("Path %s is not registered", path.toString()));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.class_router.interfaces;
|
|
||||||
|
|
||||||
public interface IBarcodeCustomization {
|
|
||||||
|
|
||||||
boolean shouldForceToEan13(String barcode);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.class_router.interfaces;
|
|
||||||
|
|
||||||
public interface ICustomConfiguration {
|
|
||||||
|
|
||||||
<T>T getConfig(int key);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.class_router.interfaces;
|
|
||||||
|
|
||||||
public interface IFiltroOrdiniVendita {
|
|
||||||
|
|
||||||
boolean shoudShowCodMdepFilter();
|
|
||||||
|
|
||||||
boolean shoudShowIdViaggioFilter();
|
|
||||||
|
|
||||||
boolean shoudShowAgenteFilter();
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.class_router.interfaces;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
|
||||||
|
|
||||||
public interface IOrdiniVendita {
|
|
||||||
|
|
||||||
void distribuisciCollo(MtbColt mtbColt, List<OrdineUscitaInevasoDTO> testateOrdini, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.context;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
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.DiskLogAdapter;
|
||||||
@@ -34,6 +35,8 @@ public class AppContext {
|
|||||||
@Inject
|
@Inject
|
||||||
SettingsManager mSettingsManager;
|
SettingsManager mSettingsManager;
|
||||||
|
|
||||||
|
private File logsFolder;
|
||||||
|
|
||||||
public AppContext(Context context) {
|
public AppContext(Context context) {
|
||||||
this.mApplicationContext = context;
|
this.mApplicationContext = context;
|
||||||
|
|
||||||
@@ -53,6 +56,10 @@ public class AppContext {
|
|||||||
this.initLogger();
|
this.initLogger();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public File getLogFilePath() {
|
||||||
|
return logsFolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void initSettings() {
|
private void initSettings() {
|
||||||
Stash.init(mApplicationContext);
|
Stash.init(mApplicationContext);
|
||||||
@@ -82,10 +89,35 @@ 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());
|
logsFolder = new File(mApplicationContext.getExternalFilesDir(null).getAbsolutePath());
|
||||||
int maxBytesSize = 5 * 1024 * 1024;
|
int maxBytesSize = 5 * 1024 * 1024;
|
||||||
Logger.addLogAdapter(new DiskLogAdapter(logsFolder, maxBytesSize));
|
Logger.addLogAdapter(new DiskLogAdapter(logsFolder, maxBytesSize));
|
||||||
|
|
||||||
|
removeOldLogs(logsFolder);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void removeOldLogs(File logsFolder) {
|
||||||
|
var files = logsFolder.listFiles();
|
||||||
|
|
||||||
|
if (files == null || files.length <= 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var logFiles = Stream.of(files)
|
||||||
|
.sortBy(x -> -1 * x.lastModified())
|
||||||
|
.skip(1)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
for (var logFile : logFiles) {
|
||||||
|
boolean isDeleted = logFile.delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
files = logsFolder.listFiles();
|
||||||
|
|
||||||
|
if (files == null || files.length > 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
final boolean isRenamed = files[0].renameTo(new File(files[0].getParentFile().getAbsolutePath() + "/" + "logs_0.csv"));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,18 +6,20 @@ import android.text.SpannableString;
|
|||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.text.SpannedString;
|
import android.text.SpannedString;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import com.google.firebase.installations.FirebaseInstallations;
|
||||||
|
|
||||||
import java.net.ConnectException;
|
import java.net.ConnectException;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.AppDatabase;
|
import it.integry.integrywmsnative.core.data_store.db.AppDatabase;
|
||||||
import it.integry.integrywmsnative.core.menu.MenuService;
|
import it.integry.integrywmsnative.core.menu.MenuService;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
|
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityThread;
|
import it.integry.integrywmsnative.core.utility.UtilityThread;
|
||||||
|
import it.integry.integrywmsnative.gest.login.rest.AuthenticationRESTConsumer;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class MainContext {
|
public class MainContext {
|
||||||
@@ -25,36 +27,82 @@ public class MainContext {
|
|||||||
private final Context applicationContext;
|
private final Context applicationContext;
|
||||||
private final MenuService menuService;
|
private final MenuService menuService;
|
||||||
private final AppDatabase appDatabase;
|
private final AppDatabase appDatabase;
|
||||||
|
private final SystemRESTConsumer systemRESTConsumer;
|
||||||
|
private final AuthenticationRESTConsumer authenticationRESTConsumer;
|
||||||
|
|
||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
public MainContext(Context applicationContext, MenuService menuService, AppDatabase appDatabase) {
|
public MainContext(Context applicationContext, MenuService menuService, AppDatabase appDatabase, SystemRESTConsumer systemRESTConsumer, AuthenticationRESTConsumer authenticationRESTConsumer) {
|
||||||
this.applicationContext = applicationContext;
|
this.applicationContext = applicationContext;
|
||||||
this.menuService = menuService;
|
this.menuService = menuService;
|
||||||
this.appDatabase = appDatabase;
|
this.appDatabase = appDatabase;
|
||||||
|
this.systemRESTConsumer = systemRESTConsumer;
|
||||||
|
this.authenticationRESTConsumer = authenticationRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void init() {
|
public void init() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
BarcodeManager.init(applicationContext);
|
BarcodeManager.init(applicationContext);
|
||||||
} catch (Exception exception) {
|
} catch (Exception exception) {
|
||||||
exception.printStackTrace();
|
exception.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.initDBData(() -> {
|
|
||||||
this.initMenu(() -> {
|
|
||||||
|
|
||||||
this.initReflections();
|
//this.initAuthSession(() -> {
|
||||||
if (mListener != null) mListener.onContextInitialized();
|
this.initDeviceId(() -> {
|
||||||
|
this.initDBData(() -> {
|
||||||
|
this.initMenu(() -> {
|
||||||
|
|
||||||
|
if (mListener != null) mListener.onContextInitialized();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
//});
|
||||||
|
|
||||||
|
|
||||||
this.initServerStatusChecker();
|
this.initServerStatusChecker();
|
||||||
|
|
||||||
|
// EventBus.getDefault().register(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
|
// public void onSessionExpired(SessionExpiredEvent event) {
|
||||||
|
// DialogSimpleMessageView.makeErrorDialog(
|
||||||
|
// new SpannedString("La sessione è scaduta. Effettua nuovamente la login"),
|
||||||
|
// null,
|
||||||
|
// () -> {
|
||||||
|
// logout(MainApplication::exit);
|
||||||
|
// })
|
||||||
|
// .show(activity.getSupportFragmentManager(), "expired-session-error");
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
private void initAuthSession(Runnable onComplete) {
|
||||||
|
this.authenticationRESTConsumer.me(obj -> {
|
||||||
|
onComplete.run();
|
||||||
|
}, ex -> {
|
||||||
|
if (mListener != null) mListener.onError(new SpannedString(ex.getMessage()));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initDeviceId(Runnable onComplete) {
|
||||||
|
if (SettingsManager.i().getUserSession().getDeviceId() != null) {
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FirebaseInstallations.getInstance().getId().addOnCompleteListener(fid -> {
|
||||||
|
SettingsManager.i().getUserSession().setDeviceId(fid.getResult());
|
||||||
|
SettingsManager.update();
|
||||||
|
|
||||||
|
systemRESTConsumer.registerDevice(onComplete, ex -> {
|
||||||
|
if (mListener != null) mListener.onError(new SpannedString(ex.getMessage()));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void logout(Runnable onLoggedOut) {
|
public void logout(Runnable onLoggedOut) {
|
||||||
menuService.invalidateCache();
|
menuService.invalidateCache();
|
||||||
UtilityThread.executeParallel(() -> {
|
UtilityThread.executeParallel(() -> {
|
||||||
@@ -103,30 +151,6 @@ public class MainContext {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initReflections() {
|
|
||||||
ClassRouter.init();
|
|
||||||
|
|
||||||
try {
|
|
||||||
String initMethod = "init";
|
|
||||||
|
|
||||||
Class dynamicContextClass = Class.forName("it.integry.wms.dynamic_customization.DynamicContext");
|
|
||||||
|
|
||||||
Method[] methods = dynamicContextClass.getMethods();
|
|
||||||
for (Method m : methods) {
|
|
||||||
if (initMethod.equals(m.getName())) {
|
|
||||||
// for static methods we can use null as instance of class
|
|
||||||
final Object newInstance = dynamicContextClass.newInstance();
|
|
||||||
|
|
||||||
m.invoke(newInstance, applicationContext);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
// UtilityExceptions.defaultException(mContext, e, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public MainContext setListener(Listener listener) {
|
public MainContext setListener(Listener listener) {
|
||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class DataCache {
|
|||||||
|
|
||||||
Object foundDataCache = null;
|
Object foundDataCache = null;
|
||||||
|
|
||||||
if(dataCacheTemp != null && dataCacheTemp.size() > 0) {
|
if(dataCacheTemp != null && !dataCacheTemp.isEmpty()) {
|
||||||
foundDataCache = dataCacheTemp.get(0).getItem();
|
foundDataCache = dataCacheTemp.get(0).getItem();
|
||||||
dataCacheList.remove(dataCacheTemp.get(0));
|
dataCacheList.remove(dataCacheTemp.get(0));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import javax.inject.Singleton;
|
|||||||
import it.integry.integrywmsnative.core.CommonConst;
|
import it.integry.integrywmsnative.core.CommonConst;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityGson;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class ColliDataRecoverService {
|
public class ColliDataRecoverService {
|
||||||
@@ -39,15 +40,17 @@ public class ColliDataRecoverService {
|
|||||||
if(isFilePresent(CommonConst.Files.RECOVER_COLLO_FILE)) {
|
if(isFilePresent(CommonConst.Files.RECOVER_COLLO_FILE)) {
|
||||||
loadLocalFile();
|
loadLocalFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(mtbColtsSessions == null)
|
||||||
|
mtbColtsSessions = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean thereIsAnExistantSession() {
|
public boolean thereIsAnExistantSession() {
|
||||||
return mtbColtsSessions != null && mtbColtsSessions.size() > 0;
|
return mtbColtsSessions != null && !mtbColtsSessions.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Integer> getAllSessionIDs() {
|
public List<Integer> getAllSessionIDs() {
|
||||||
if(thereIsAnExistantSession()) {
|
if(thereIsAnExistantSession()) {
|
||||||
|
|
||||||
return Stream.of(mtbColtsSessions)
|
return Stream.of(mtbColtsSessions)
|
||||||
.map(ColliDataRecoverDTO::getId)
|
.map(ColliDataRecoverDTO::getId)
|
||||||
.toList();
|
.toList();
|
||||||
@@ -56,7 +59,6 @@ public class ColliDataRecoverService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ColliDataRecoverDTO getSession(Integer sessionID) {
|
public ColliDataRecoverDTO getSession(Integer sessionID) {
|
||||||
|
|
||||||
if(sessionID == null) return null;
|
if(sessionID == null) return null;
|
||||||
|
|
||||||
return getIfExists(sessionID);
|
return getIfExists(sessionID);
|
||||||
@@ -107,7 +109,7 @@ public class ColliDataRecoverService {
|
|||||||
|
|
||||||
private void loadLocalFile() {
|
private void loadLocalFile() {
|
||||||
InputStream inputStream;
|
InputStream inputStream;
|
||||||
Gson gson = new Gson();
|
Gson gson = UtilityGson.createObject();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
inputStream = mApplicationContext.openFileInput(CommonConst.Files.RECOVER_COLLO_FILE);
|
inputStream = mApplicationContext.openFileInput(CommonConst.Files.RECOVER_COLLO_FILE);
|
||||||
@@ -129,7 +131,7 @@ public class ColliDataRecoverService {
|
|||||||
private void updateLocalFile() {
|
private void updateLocalFile() {
|
||||||
FileOutputStream outputStream;
|
FileOutputStream outputStream;
|
||||||
|
|
||||||
Gson gson = new Gson();
|
Gson gson = UtilityGson.createObject();
|
||||||
String jsonText = gson.toJson(mtbColtsSessions);
|
String jsonText = gson.toJson(mtbColtsSessions);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import it.integry.integrywmsnative.core.data_store.db.dao.InventarioRowDao;
|
|||||||
import it.integry.integrywmsnative.core.data_store.db.dao.MtbColrDao;
|
import it.integry.integrywmsnative.core.data_store.db.dao.MtbColrDao;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.dao.MtbColtDao;
|
import it.integry.integrywmsnative.core.data_store.db.dao.MtbColtDao;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
|
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
|
||||||
|
import it.integry.integrywmsnative.core.data_store.db.dao.RawDao;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||||
@@ -40,8 +41,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
|
|||||||
InventarioRoomDTO.class,
|
InventarioRoomDTO.class,
|
||||||
InventarioRowRoomDTO.class
|
InventarioRowRoomDTO.class
|
||||||
},
|
},
|
||||||
version = 13,
|
version = 17)
|
||||||
exportSchema = true)
|
|
||||||
@TypeConverters({
|
@TypeConverters({
|
||||||
DateConverter.class,
|
DateConverter.class,
|
||||||
BigDecimalConverter.class,
|
BigDecimalConverter.class,
|
||||||
@@ -66,13 +66,19 @@ public abstract class AppDatabase extends RoomDatabase {
|
|||||||
AppDatabase.class, "integry_wms")
|
AppDatabase.class, "integry_wms")
|
||||||
.addMigrations(MIGRATION_10_11)
|
.addMigrations(MIGRATION_10_11)
|
||||||
.addMigrations(MIGRATION_11_12)
|
.addMigrations(MIGRATION_11_12)
|
||||||
.addMigrations(MIGRATION_12_13);
|
.addMigrations(MIGRATION_12_13)
|
||||||
|
.addMigrations(MIGRATION_13_14)
|
||||||
|
.addMigrations(MIGRATION_14_15)
|
||||||
|
.addMigrations(MIGRATION_15_16)
|
||||||
|
.addMigrations(MIGRATION_16_17);
|
||||||
|
|
||||||
sInstance = builder.build();
|
sInstance = builder.build();
|
||||||
}
|
}
|
||||||
return sInstance;
|
return sInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract RawDao rawDao();
|
||||||
|
|
||||||
public abstract ArticoloGrigliaDao articoloGrigliaDao();
|
public abstract ArticoloGrigliaDao articoloGrigliaDao();
|
||||||
|
|
||||||
public abstract GrigliaDao grigliaDao();
|
public abstract GrigliaDao grigliaDao();
|
||||||
@@ -90,6 +96,7 @@ public abstract class AppDatabase extends RoomDatabase {
|
|||||||
public abstract InventarioRowDao inventarioRowDao();
|
public abstract InventarioRowDao inventarioRowDao();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static final Migration MIGRATION_10_11 = new Migration(10, 11) {
|
static final Migration MIGRATION_10_11 = new Migration(10, 11) {
|
||||||
@Override
|
@Override
|
||||||
public void migrate(SupportSQLiteDatabase database) {
|
public void migrate(SupportSQLiteDatabase database) {
|
||||||
@@ -126,4 +133,53 @@ public abstract class AppDatabase extends RoomDatabase {
|
|||||||
database.execSQL("CREATE INDEX IF NOT EXISTS index_inventario_rows__parent_id ON inventario_rows (parent_id)");
|
database.execSQL("CREATE INDEX IF NOT EXISTS index_inventario_rows__parent_id ON inventario_rows (parent_id)");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static final Migration MIGRATION_13_14 = new Migration(13, 14) {
|
||||||
|
@Override
|
||||||
|
public void migrate(@NonNull SupportSQLiteDatabase database) {
|
||||||
|
database.execSQL("ALTER TABLE inventari"
|
||||||
|
+ " ADD COLUMN new INTEGER");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static final Migration MIGRATION_14_15 = new Migration(14, 15) {
|
||||||
|
@Override
|
||||||
|
public void migrate(@NonNull SupportSQLiteDatabase database) {
|
||||||
|
// rimuovo vincoli "not null" dai campi id_griglia e cod_alis
|
||||||
|
database.execSQL("DROP TABLE IF EXISTS ordini_tmp;");
|
||||||
|
database.execSQL("CREATE TABLE ordini_tmp (ordine_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, data_ins INTEGER, annotazioni TEXT, transmitted INTEGER NOT NULL, transmission_date INTEGER, gestione TEXT, data_ord INTEGER, num_ord INTEGER, cod_mdep TEXT, id_griglia INTEGER, cod_alis TEXT);");
|
||||||
|
database.execSQL("INSERT INTO ordini_tmp(ordine_id,data_ins,annotazioni,transmitted,transmission_date,gestione,data_ord,num_ord,cod_mdep,id_griglia,cod_alis) SELECT ordini.ordine_id,ordini.data_ins,ordini.annotazioni,ordini.transmitted,ordini.transmission_date,ordini.gestione,ordini.data_ord,ordini.num_ord,ordini.cod_mdep,ordini.id_griglia,griglie.cod_alis from ordini left outer join griglie on ordini.id_griglia = griglie.griglia_id;");
|
||||||
|
database.execSQL("DROP TABLE ordini;");
|
||||||
|
database.execSQL("ALTER TABLE ordini_tmp RENAME TO ordini;");
|
||||||
|
// aggiungo campo cod_alis sulle righe dell'ordine
|
||||||
|
database.execSQL("DROP TABLE IF EXISTS art_ord_tmp;");
|
||||||
|
database.execSQL("CREATE TABLE IF NOT EXISTS art_ord_tmp( articolo_ordine_id INTEGER PRIMARY KEY AUTOINCREMENT, cod_mart TEXT, descrizione TEXT, unt_mis TEXT, qta_cnf REAL NOT NULL, bar_code TEXT, merce_da_ric REAL NOT NULL, media_sett REAL NOT NULL, flag_qta_multipla TEXT, qta_min_ordinabile REAL NOT NULL, id_ordine INTEGER NOT NULL, qta_ord REAL NOT NULL, data_ins INTEGER, new_no_promo INTEGER NOT NULL, system_note TEXT, cod_alis TEXT , FOREIGN KEY(id_ordine) REFERENCES ordini(ordine_id) ON UPDATE NO ACTION ON DELETE CASCADE );");
|
||||||
|
database.execSQL("INSERT INTO art_ord_tmp(articolo_ordine_id, cod_mart, descrizione, unt_mis, qta_cnf, bar_code, merce_da_ric, media_sett, flag_qta_multipla, qta_min_ordinabile, id_ordine, qta_ord, data_ins, new_no_promo, system_note, cod_alis) SELECT articolo_ordine_id, cod_mart, descrizione, unt_mis, qta_cnf, bar_code, merce_da_ric, media_sett, flag_qta_multipla, qta_min_ordinabile, id_ordine, qta_ord, data_ins, new_no_promo, system_note, null from articoli_ordine;");
|
||||||
|
database.execSQL("DROP TABLE articoli_ordine;");
|
||||||
|
database.execSQL("ALTER TABLE art_ord_tmp RENAME TO articoli_ordine;");
|
||||||
|
database.execSQL("CREATE INDEX IF NOT EXISTS index_articoli_ordine_id_ordine ON articoli_ordine (id_ordine);");
|
||||||
|
database.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS index_articoli_ordine_id_ordine_cod_mart ON articoli_ordine (id_ordine, cod_mart);");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
static final Migration MIGRATION_15_16 = new Migration(15, 16) {
|
||||||
|
@Override
|
||||||
|
public void migrate(@NonNull SupportSQLiteDatabase database) {
|
||||||
|
}
|
||||||
|
};
|
||||||
|
static final Migration MIGRATION_16_17 = new Migration(16, 17) {
|
||||||
|
@Override
|
||||||
|
public void migrate(@NonNull SupportSQLiteDatabase database) {
|
||||||
|
database.execSQL("ALTER TABLE inventario_rows RENAME TO _inventario_rows_old;");
|
||||||
|
database.execSQL("DROP INDEX index_inventario_rows__id;");
|
||||||
|
database.execSQL("DROP INDEX index_inventario_rows_parent_id;");
|
||||||
|
|
||||||
|
database.execSQL("CREATE TABLE inventario_rows (_id INTEGER PRIMARY KEY AUTOINCREMENT, parent_id INTEGER, cod_mart TEXT, partita_mag TEXT, descrizione TEXT, qta REAL NOT NULL DEFAULT 0, num_cnf REAL NOT NULL DEFAULT 0, qta_cnf REAL NOT NULL DEFAULT 0, unt_mis TEXT NOT NULL DEFAULT '0', data_ora_inv INTEGER, scan_cod_barre TEXT, zona TEXT, remote_sync_date INTEGER, FOREIGN KEY(parent_id) REFERENCES inventari(_id) ON UPDATE NO ACTION ON DELETE CASCADE);");
|
||||||
|
|
||||||
|
database.execSQL("INSERT INTO inventario_rows SELECT * FROM _inventario_rows_old;");
|
||||||
|
|
||||||
|
database.execSQL("CREATE INDEX index_inventario_rows__id ON inventario_rows (_id);");
|
||||||
|
database.execSQL("CREATE INDEX index_inventario_rows_parent_id ON inventario_rows (parent_id)");
|
||||||
|
database.execSQL("DROP TABLE _inventario_rows_old;");
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import it.integry.integrywmsnative.core.data_store.db.dao.InventarioRowDao;
|
|||||||
import it.integry.integrywmsnative.core.data_store.db.dao.MtbColrDao;
|
import it.integry.integrywmsnative.core.data_store.db.dao.MtbColrDao;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.dao.MtbColtDao;
|
import it.integry.integrywmsnative.core.data_store.db.dao.MtbColtDao;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
|
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
|
||||||
|
import it.integry.integrywmsnative.core.data_store.db.dao.RawDao;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
|
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
|
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
||||||
@@ -53,7 +54,11 @@ public class RoomModule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
@Provides
|
||||||
|
RawDao providesRawDao(AppDatabase appDatabase) {
|
||||||
|
return appDatabase.rawDao();
|
||||||
|
}
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@Provides
|
@Provides
|
||||||
@@ -104,12 +109,6 @@ public class RoomModule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@Provides
|
@Provides
|
||||||
InventarioRowMapper providesInventarioRowMapper() {
|
InventarioRowMapper providesInventarioRowMapper() {
|
||||||
@@ -123,71 +122,58 @@ public class RoomModule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Singleton
|
|
||||||
@Provides
|
@Provides
|
||||||
InventarioLocalDataSource providesInventarioLocalDataSource(ExecutorService executorService, InventarioDao inventarioDao) {
|
InventarioLocalDataSource providesInventarioLocalDataSource(ExecutorService executorService, InventarioDao inventarioDao) {
|
||||||
return new InventarioLocalDataSource(executorService, inventarioDao);
|
return new InventarioLocalDataSource(executorService, inventarioDao);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Singleton
|
|
||||||
@Provides
|
@Provides
|
||||||
InventarioRowLocalDataSource providesInventarioRowLocalDataSource(ExecutorService executorService, InventarioRowDao inventarioRowDao) {
|
InventarioRowLocalDataSource providesInventarioRowLocalDataSource(ExecutorService executorService, InventarioRowDao inventarioRowDao) {
|
||||||
return new InventarioRowLocalDataSource(executorService, inventarioRowDao);
|
return new InventarioRowLocalDataSource(executorService, inventarioRowDao);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Singleton
|
|
||||||
@Provides
|
@Provides
|
||||||
ArticoloGrigliaRepository providesArticoloGrigliaRepository(ExecutorService executorService, Handler handler, ArticoloGrigliaDao articoloGrigliaDao) {
|
ArticoloGrigliaRepository providesArticoloGrigliaRepository(ExecutorService executorService, Handler handler, ArticoloGrigliaDao articoloGrigliaDao) {
|
||||||
return new ArticoliGrigliaDataSource(executorService, handler, articoloGrigliaDao);
|
return new ArticoliGrigliaDataSource(executorService, handler, articoloGrigliaDao);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Singleton
|
|
||||||
@Provides
|
@Provides
|
||||||
ArticoliOrdineRepository providesArticoliOrdineRepository(ExecutorService executorService, Handler handler, ArticoloOrdineDao articoloOrdineDao) {
|
ArticoliOrdineRepository providesArticoliOrdineRepository(ExecutorService executorService, Handler handler, ArticoloOrdineDao articoloOrdineDao) {
|
||||||
return new ArticoliOrdineDataSource(executorService, handler, articoloOrdineDao);
|
return new ArticoliOrdineDataSource(executorService, handler, articoloOrdineDao);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Singleton
|
|
||||||
@Provides
|
@Provides
|
||||||
GrigliaRepository providesGrigliaRepository(ExecutorService executorService, Handler handler, GrigliaDao grigliaDao) {
|
GrigliaRepository providesGrigliaRepository(ExecutorService executorService, Handler handler, GrigliaDao grigliaDao) {
|
||||||
return new GrigliaDataSource(executorService, handler, grigliaDao);
|
return new GrigliaDataSource(executorService, handler, grigliaDao);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Singleton
|
|
||||||
@Provides
|
@Provides
|
||||||
OrdineRepository providesOrdineRepository(ExecutorService executorService, Handler handler, OrdineDao ordineDao) {
|
OrdineRepository providesOrdineRepository(ExecutorService executorService, Handler handler, OrdineDao ordineDao) {
|
||||||
return new OrdineDataSource(executorService, handler, ordineDao);
|
return new OrdineDataSource(executorService, handler, ordineDao);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Singleton
|
|
||||||
@Provides
|
@Provides
|
||||||
MtbColtRepository providesMtbColtRepository(ExecutorService executorService, Handler handler, MtbColtDao mtbColtDao) {
|
MtbColtRepository providesMtbColtRepository(ExecutorService executorService, Handler handler, MtbColtDao mtbColtDao) {
|
||||||
return new SqlMtbColtDataSource(executorService, handler, mtbColtDao);
|
return new SqlMtbColtDataSource(executorService, handler, mtbColtDao);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Singleton
|
|
||||||
@Provides
|
@Provides
|
||||||
MtbColrDataSource providesMtbColrRepository(ExecutorService executorService, Handler handler, MtbColrDao mtbColrDao) {
|
MtbColrDataSource providesMtbColrRepository(ExecutorService executorService, Handler handler, MtbColrDao mtbColrDao) {
|
||||||
return new SqlMtbColrDataSource(executorService, handler, mtbColrDao);
|
return new SqlMtbColrDataSource(executorService, handler, mtbColrDao);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Singleton
|
|
||||||
@Provides
|
@Provides
|
||||||
InventarioRepository providesInventarioRepository(ExecutorService executorService, Handler handler,
|
InventarioRepository providesInventarioRepository(ExecutorService executorService, Handler handler,
|
||||||
InventarioLocalDataSource inventarioLocalDataSource,
|
InventarioLocalDataSource inventarioLocalDataSource,
|
||||||
InventarioRESTConsumer inventarioRESTConsumer,
|
InventarioRESTConsumer inventarioRESTConsumer,
|
||||||
InventarioMapper inventarioMapper) {
|
InventarioMapper inventarioMapper) {
|
||||||
return new InventarioRepository(inventarioLocalDataSource, inventarioRESTConsumer, inventarioMapper, handler);
|
return new InventarioRepository(inventarioLocalDataSource, inventarioRESTConsumer, inventarioMapper, handler, executorService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Singleton
|
|
||||||
@Provides
|
@Provides
|
||||||
InventarioRowRepository providesInventarioRowRepository(ExecutorService executorService, Handler handler,
|
InventarioRowRepository providesInventarioRowRepository(ExecutorService executorService, Handler handler,
|
||||||
InventarioRowLocalDataSource inventarioRowLocalDataSource,
|
InventarioRowLocalDataSource inventarioRowLocalDataSource,
|
||||||
|
|||||||
@@ -24,6 +24,6 @@ public interface MtbColrDao {
|
|||||||
@Delete
|
@Delete
|
||||||
void delete(SqlMtbColr mtbColr);
|
void delete(SqlMtbColr mtbColr);
|
||||||
|
|
||||||
@Query("SELECT * from mtb_colr where id_collo = :idDocument")
|
@Query("SELECT * FROM mtb_colr WHERE id_collo = :idDocument ORDER BY id DESC")
|
||||||
List<SqlMtbColr> getDocumentRows(long idDocument);
|
List<SqlMtbColr> getDocumentRows(long idDocument);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.dao;
|
package it.integry.integrywmsnative.core.data_store.db.dao;
|
||||||
|
|
||||||
|
import androidx.lifecycle.LiveData;
|
||||||
import androidx.room.Dao;
|
import androidx.room.Dao;
|
||||||
import androidx.room.Delete;
|
import androidx.room.Delete;
|
||||||
import androidx.room.Insert;
|
import androidx.room.Insert;
|
||||||
@@ -33,7 +34,7 @@ public interface MtbColtDao {
|
|||||||
" AND ( mtb_colt.data_doc = :dataDoc OR (mtb_colt.data_doc is null and :dataDoc is null)) " +
|
" AND ( mtb_colt.data_doc = :dataDoc OR (mtb_colt.data_doc is null and :dataDoc is null)) " +
|
||||||
" AND ( mtb_colt.num_doc = :numDoc OR (mtb_colt.num_doc is null and :numDoc is null)) " +
|
" AND ( mtb_colt.num_doc = :numDoc OR (mtb_colt.num_doc is null and :numDoc is null)) " +
|
||||||
" and cod_dtip is null group by mtb_colt.id")
|
" and cod_dtip is null group by mtb_colt.id")
|
||||||
List<DocInternoWrapper> getLocalDocumentsByCodDtip(String codDtip, String codAnag, String codVdes, Date dataDoc, String numDoc);
|
LiveData<List<DocInternoWrapper>> getLocalDocumentsByCodDtip(String codDtip, String codAnag, String codVdes, Date dataDoc, String numDoc);
|
||||||
|
|
||||||
@Query("SELECT ifnull(MAX(num_collo),0) +1 as num_collo from mtb_colt")
|
@Query("SELECT ifnull(MAX(num_collo),0) +1 as num_collo from mtb_colt")
|
||||||
Integer getNextNumCollo();
|
Integer getNextNumCollo();
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public interface OrdineDao {
|
|||||||
@Query("SELECT ordini.* from ordini where ordini.transmitted = 1")
|
@Query("SELECT ordini.* from ordini where ordini.transmitted = 1")
|
||||||
List<Ordine> getAllTrasnmitted();
|
List<Ordine> getAllTrasnmitted();
|
||||||
|
|
||||||
@Query("SELECT ordini.*, count(articolo_ordine_id) as countArticoli from ordini left join articoli_ordine ON ordini.ordine_id = articoli_ordine.id_ordine where ordini.transmitted = 0 and ordini.cod_alis = :codAlis group by ordini.ordine_id")
|
@Query("SELECT ordini.*, count(articolo_ordine_id) as countArticoli from ordini left join articoli_ordine ON ordini.ordine_id = articoli_ordine.id_ordine where ordini.transmitted = 0 and ((:codAlis is null and ordini.cod_alis is null) OR (ordini.cod_alis = :codAlis)) group by ordini.ordine_id")
|
||||||
List<OrdineWrapper> getAllOpenOrdersByGriglia(String codAlis);
|
List<OrdineWrapper> getAllOpenOrdersByGriglia(String codAlis);
|
||||||
|
|
||||||
@Insert
|
@Insert
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package it.integry.integrywmsnative.core.data_store.db.dao;
|
||||||
|
|
||||||
|
import androidx.room.Dao;
|
||||||
|
import androidx.room.RawQuery;
|
||||||
|
import androidx.sqlite.db.SupportSQLiteQuery;
|
||||||
|
|
||||||
|
@Dao
|
||||||
|
public interface RawDao {
|
||||||
|
|
||||||
|
@RawQuery
|
||||||
|
int vacuumDb(SupportSQLiteQuery supportSQLiteQuery);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -73,6 +73,9 @@ public class ArticoloOrdine {
|
|||||||
@ColumnInfo(name = "system_note")
|
@ColumnInfo(name = "system_note")
|
||||||
private String systemNote;
|
private String systemNote;
|
||||||
|
|
||||||
|
@ColumnInfo(name = "cod_alis")
|
||||||
|
private String codAlis;
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
private int ggScadenza = 0;
|
private int ggScadenza = 0;
|
||||||
|
|
||||||
@@ -85,9 +88,15 @@ public class ArticoloOrdine {
|
|||||||
@Ignore
|
@Ignore
|
||||||
private BigDecimal qtaProposta = BigDecimal.ZERO;
|
private BigDecimal qtaProposta = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@Ignore
|
||||||
|
private BigDecimal ctMaxOrd = BigDecimal.ZERO;
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
private int bgTint;
|
private int bgTint;
|
||||||
|
|
||||||
|
@Ignore
|
||||||
|
private boolean invalid = false;
|
||||||
|
|
||||||
|
|
||||||
public Integer getArticoloOrdineId() {
|
public Integer getArticoloOrdineId() {
|
||||||
return articoloOrdineId;
|
return articoloOrdineId;
|
||||||
@@ -230,15 +239,15 @@ public class ArticoloOrdine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getQtaCnfPrevistaVendita() {
|
public BigDecimal getQtaCnfPrevistaVendita() {
|
||||||
return qtaPrevistaVendita.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : qtaPrevistaVendita.divide(BigDecimal.valueOf(qtaCnf), 0, RoundingMode.CEILING);
|
return qtaPrevistaVendita == null || qtaPrevistaVendita.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : qtaPrevistaVendita.divide(BigDecimal.valueOf(qtaCnf), 0, RoundingMode.CEILING);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getQtaCnfProposta() {
|
public BigDecimal getQtaCnfProposta() {
|
||||||
return qtaProposta.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : qtaProposta.divide(BigDecimal.valueOf(qtaCnf), 0, RoundingMode.CEILING);
|
return qtaProposta == null || qtaProposta.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : qtaProposta.divide(BigDecimal.valueOf(qtaCnf), 0, RoundingMode.CEILING);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getQtaCnfGiacenza() {
|
public BigDecimal getQtaCnfGiacenza() {
|
||||||
return giacenza.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : giacenza.divide(BigDecimal.valueOf(qtaCnf), 0, RoundingMode.CEILING);
|
return giacenza == null || giacenza.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : giacenza.divide(BigDecimal.valueOf(qtaCnf), 0, RoundingMode.CEILING);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isNewNoPromo() {
|
public boolean isNewNoPromo() {
|
||||||
@@ -250,12 +259,12 @@ public class ArticoloOrdine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public float getCnfDaRic() {
|
public float getCnfDaRic() {
|
||||||
return qtaCnf > 0.f ? merceDaRic * qtaCnf : 0;
|
return qtaCnf > 0.f ? merceDaRic / qtaCnf : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int checkQtaProposta() {
|
public int checkQtaProposta() {
|
||||||
int check = 0;
|
int check = 0;
|
||||||
if (!qtaProposta.equals(BigDecimal.ZERO)) {
|
if (qtaProposta != null && !qtaProposta.equals(BigDecimal.ZERO)) {
|
||||||
check = BigDecimal.valueOf(qtaOrd).compareTo(qtaProposta);
|
check = BigDecimal.valueOf(qtaOrd).compareTo(qtaProposta);
|
||||||
}
|
}
|
||||||
return check;
|
return check;
|
||||||
@@ -277,4 +286,30 @@ public class ArticoloOrdine {
|
|||||||
public void setSystemNote(String systemNote) {
|
public void setSystemNote(String systemNote) {
|
||||||
this.systemNote = systemNote;
|
this.systemNote = systemNote;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCodAlis() {
|
||||||
|
return codAlis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodAlis(String codAlis) {
|
||||||
|
this.codAlis = codAlis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCtMaxOrd() {
|
||||||
|
return ctMaxOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdine setCtMaxOrd(BigDecimal ctMaxOrd) {
|
||||||
|
this.ctMaxOrd = ctMaxOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isInvalid() {
|
||||||
|
return invalid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdine setInvalid(boolean invalid) {
|
||||||
|
this.invalid = invalid;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ public class InventarioRoomDTO extends BaseSyncDTO implements EntityModelInterfa
|
|||||||
public static final String DATA_ORA_FINE = "data_ora_fine";
|
public static final String DATA_ORA_FINE = "data_ora_fine";
|
||||||
public static final String CAUSALE = "causale";
|
public static final String CAUSALE = "causale";
|
||||||
public static final String ZONA = "zona";
|
public static final String ZONA = "zona";
|
||||||
|
public static final String IS_NEW = "new";
|
||||||
}
|
}
|
||||||
|
|
||||||
/** The unique ID of the cheese. */
|
/** The unique ID of the cheese. */
|
||||||
@@ -95,6 +96,9 @@ public class InventarioRoomDTO extends BaseSyncDTO implements EntityModelInterfa
|
|||||||
@ColumnInfo(name = Columns.ZONA)
|
@ColumnInfo(name = Columns.ZONA)
|
||||||
private String zona;
|
private String zona;
|
||||||
|
|
||||||
|
@ColumnInfo(name = Columns.IS_NEW)
|
||||||
|
private Boolean isNew = Boolean.TRUE;
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
private List<InventarioRowRoomDTO> inventarioRowList;
|
private List<InventarioRowRoomDTO> inventarioRowList;
|
||||||
|
|
||||||
@@ -235,6 +239,14 @@ public class InventarioRoomDTO extends BaseSyncDTO implements EntityModelInterfa
|
|||||||
this.zona = zona;
|
this.zona = zona;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Boolean isNew() {
|
||||||
|
return isNew;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNew(Boolean aNew) {
|
||||||
|
isNew = aNew;
|
||||||
|
}
|
||||||
|
|
||||||
public List<InventarioRowRoomDTO> getInventarioRowList() {
|
public List<InventarioRowRoomDTO> getInventarioRowList() {
|
||||||
return inventarioRowList;
|
return inventarioRowList;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ import it.integry.integrywmsnative.core.data_store.db.interfaces.EntityModelInte
|
|||||||
@ForeignKey(
|
@ForeignKey(
|
||||||
entity = InventarioRoomDTO.class,
|
entity = InventarioRoomDTO.class,
|
||||||
parentColumns = {BaseSyncDTO.Columns.ID},
|
parentColumns = {BaseSyncDTO.Columns.ID},
|
||||||
childColumns = {InventarioRowRoomDTO.Columns.PARENT_ID}
|
childColumns = {InventarioRowRoomDTO.Columns.PARENT_ID},
|
||||||
|
onDelete = ForeignKey.CASCADE
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.entity;
|
package it.integry.integrywmsnative.core.data_store.db.entity;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.room.ColumnInfo;
|
import androidx.room.ColumnInfo;
|
||||||
import androidx.room.Entity;
|
import androidx.room.Entity;
|
||||||
@@ -52,10 +51,10 @@ public class Ordine {
|
|||||||
private boolean orderNewProducts = false;
|
private boolean orderNewProducts = false;
|
||||||
|
|
||||||
@ColumnInfo(name = "id_griglia")
|
@ColumnInfo(name = "id_griglia")
|
||||||
private int idGriglia;
|
@Nullable
|
||||||
|
private Integer idGriglia;
|
||||||
|
|
||||||
@ColumnInfo(name = "cod_alis")
|
@ColumnInfo(name = "cod_alis")
|
||||||
@NonNull
|
|
||||||
private String codAlis;
|
private String codAlis;
|
||||||
|
|
||||||
public int getOrdineId() {
|
public int getOrdineId() {
|
||||||
@@ -82,11 +81,11 @@ public class Ordine {
|
|||||||
this.annotazioni = annotazioni;
|
this.annotazioni = annotazioni;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getIdGriglia() {
|
public Integer getIdGriglia() {
|
||||||
return idGriglia;
|
return idGriglia;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIdGriglia(int idGriglia) {
|
public void setIdGriglia(Integer idGriglia) {
|
||||||
this.idGriglia = idGriglia;
|
this.idGriglia = idGriglia;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import androidx.room.ForeignKey;
|
|||||||
import androidx.room.Index;
|
import androidx.room.Index;
|
||||||
import androidx.room.PrimaryKey;
|
import androidx.room.PrimaryKey;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@Entity(
|
@Entity(
|
||||||
@@ -138,7 +138,7 @@ public class SqlMtbColr {
|
|||||||
@ColumnInfo(name = "unt_mis")
|
@ColumnInfo(name = "unt_mis")
|
||||||
private String untMis;
|
private String untMis;
|
||||||
@ColumnInfo(name = "data_scad")
|
@ColumnInfo(name = "data_scad")
|
||||||
private Date dataScad;
|
private LocalDate dataScad;
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return id;
|
return id;
|
||||||
@@ -428,11 +428,11 @@ public class SqlMtbColr {
|
|||||||
this.descrizione = descrizione;
|
this.descrizione = descrizione;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getDataScad() {
|
public LocalDate getDataScad() {
|
||||||
return dataScad;
|
return dataScad;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDataScad(Date dataScad) {
|
public void setDataScad(LocalDate dataScad) {
|
||||||
this.dataScad = dataScad;
|
this.dataScad = dataScad;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.repository;
|
package it.integry.integrywmsnative.core.data_store.db.repository;
|
||||||
|
|
||||||
|
import androidx.lifecycle.LiveData;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -17,7 +19,7 @@ public interface MtbColtRepository {
|
|||||||
|
|
||||||
void delete(SqlMtbColt mtbColt, Runnable onSuccess, RunnableArgs<Exception> onError);
|
void delete(SqlMtbColt mtbColt, Runnable onSuccess, RunnableArgs<Exception> onError);
|
||||||
|
|
||||||
void getLocalDocumentsByCodDtip(String codDtip, String codAnag, String codVdes, Date dataDoc, String numDoc, RunnableArgs<List<DocInternoWrapper>> onSuccess, RunnableArgs<Exception> onError);
|
LiveData<List<DocInternoWrapper>> getDocuments(String codDtip, String codAnag, String codVdes, Date dataDoc, String numDoc);
|
||||||
|
|
||||||
void getNextNumCollo(RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError);
|
void getNextNumCollo(RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError);
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.data_store.db.repository.datasource;
|
|||||||
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
|
||||||
|
import androidx.lifecycle.LiveData;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
@@ -50,10 +52,8 @@ public class SqlMtbColtDataSource extends BaseDataSource implements MtbColtRepos
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getLocalDocumentsByCodDtip(String codDtip, String codAnag, String codVdes, Date dataDoc, String numDoc, RunnableArgs<List<DocInternoWrapper>> onSuccess, RunnableArgs<Exception> onError) {
|
public LiveData<List<DocInternoWrapper>> getDocuments(String codDtip, String codAnag, String codVdes, Date dataDoc, String numDoc) {
|
||||||
execute(() -> mMtbColtDao.getLocalDocumentsByCodDtip(codDtip, codAnag, codVdes, dataDoc, numDoc),
|
return mMtbColtDao.getLocalDocumentsByCodDtip(codDtip, codAnag, codVdes, dataDoc, numDoc);
|
||||||
onSuccess,
|
|
||||||
onError);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.respository_new;
|
package it.integry.integrywmsnative.core.data_store.db.respository_new;
|
||||||
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.lifecycle.LiveData;
|
import androidx.lifecycle.LiveData;
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@@ -17,9 +21,13 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|||||||
import it.integry.integrywmsnative.core.mapper.InventarioMapper;
|
import it.integry.integrywmsnative.core.mapper.InventarioMapper;
|
||||||
import it.integry.integrywmsnative.core.model.MtbInvent;
|
import it.integry.integrywmsnative.core.model.MtbInvent;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.InventarioRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.InventarioRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityLiveData;
|
||||||
|
|
||||||
public class InventarioRepository extends _BaseRepository<MtbInvent, InventarioRoomDTO, InventarioMapper, InventarioLocalDataSource, InventarioRESTConsumer> {
|
public class InventarioRepository extends _BaseRepository<MtbInvent, InventarioRoomDTO, InventarioMapper, InventarioLocalDataSource, InventarioRESTConsumer> {
|
||||||
|
|
||||||
|
private final ExecutorService executorService;
|
||||||
|
|
||||||
private final Handler handler;
|
private final Handler handler;
|
||||||
|
|
||||||
private final MutableLiveData<List<InventarioRoomDTO>> internalLiveData = new MutableLiveData<>();
|
private final MutableLiveData<List<InventarioRoomDTO>> internalLiveData = new MutableLiveData<>();
|
||||||
@@ -28,22 +36,54 @@ public class InventarioRepository extends _BaseRepository<MtbInvent, InventarioR
|
|||||||
public InventarioRepository(InventarioLocalDataSource localDataSource,
|
public InventarioRepository(InventarioLocalDataSource localDataSource,
|
||||||
InventarioRESTConsumer remoteDataSource,
|
InventarioRESTConsumer remoteDataSource,
|
||||||
InventarioMapper dataMapper,
|
InventarioMapper dataMapper,
|
||||||
Handler handler) {
|
Handler handler,
|
||||||
|
ExecutorService executorService) {
|
||||||
super(dataMapper, localDataSource, remoteDataSource);
|
super(dataMapper, localDataSource, remoteDataSource);
|
||||||
this.handler = handler;
|
this.handler = handler;
|
||||||
|
this.executorService = executorService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public LiveData<List<InventarioRoomDTO>> retrieve() {
|
public LiveData<List<InventarioRoomDTO>> retrieve(Runnable onComplete, RunnableArgs<Exception> onError) {
|
||||||
localDataSource.makeSynchronousRetrieveAllLive(false)
|
localDataSource.makeSynchronousRetrieveAllLive(false)
|
||||||
.observeOn(Schedulers.io())
|
.observeOn(Schedulers.io())
|
||||||
.subscribe(internalLiveData::postValue);
|
.subscribe(internalLiveData::postValue);
|
||||||
// refresh(onComplete, onError);
|
|
||||||
|
UtilityLiveData.observeOnce(internalLiveData, inventories -> {
|
||||||
|
refresh(onComplete, onError);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
return internalLiveData;
|
return internalLiveData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void refresh(Runnable onComplete, RunnableArgs<Exception> onError) {
|
||||||
|
executorService.execute(() -> {
|
||||||
|
try {
|
||||||
|
var startRetrieve = new Date();
|
||||||
|
var remoteData = remoteDataSource.makeSynchronousRetrieveRequest();
|
||||||
|
Log.d("Time INVENTORY RETRIEVE", ((new Date().getTime() - startRetrieve.getTime()) / 1000) + " secs");
|
||||||
|
|
||||||
|
if (remoteData == null) remoteData = new ArrayList<>();
|
||||||
|
|
||||||
|
List<MtbInvent> finalRemoteData = remoteData;
|
||||||
|
|
||||||
|
resolveFetch(finalRemoteData, internalLiveData.getValue(),
|
||||||
|
(remoteItem, localItem) -> Objects.equals(remoteItem.getIdInventario(), localItem.getIdInventario()),
|
||||||
|
(remoteItem, localItem) -> {
|
||||||
|
remoteItem.setRemoteSyncDate(localItem.getRemoteSyncDate());
|
||||||
|
remoteItem.setNew(false);
|
||||||
|
}, () -> handler.post(onComplete), ex -> handler.post(() -> onError.run(ex)),
|
||||||
|
SettingsManager.iDB().isFlagIsInventarioCacheEnabled());
|
||||||
|
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
onError.run(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void insert(InventarioRoomDTO inventarioDTO, Runnable onComplete, RunnableArgs<Exception> onError) {
|
public void insert(InventarioRoomDTO inventarioDTO, Runnable onComplete, RunnableArgs<Exception> onError) {
|
||||||
localDataSource.makeInsertRequest(inventarioDTO, localResult -> {
|
localDataSource.makeInsertRequest(inventarioDTO, localResult -> {
|
||||||
if (onComplete != null) handler.post(onComplete);
|
if (onComplete != null) handler.post(onComplete);
|
||||||
@@ -60,7 +100,7 @@ public class InventarioRepository extends _BaseRepository<MtbInvent, InventarioR
|
|||||||
}, onError);
|
}, onError);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void delete(InventarioRoomDTO inventarioDTO, Runnable onComplete, RunnableArgs<Exception> onError){
|
public void delete(InventarioRoomDTO inventarioDTO, Runnable onComplete, RunnableArgs<Exception> onError) {
|
||||||
localDataSource.makeDeleteRequest(inventarioDTO, onComplete, onError);
|
localDataSource.makeDeleteRequest(inventarioDTO, onComplete, onError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,8 @@ public abstract class _BaseRepository<
|
|||||||
RunnableArgssWithReturn<B, B, Boolean> keyComparator,
|
RunnableArgssWithReturn<B, B, Boolean> keyComparator,
|
||||||
RunnableArgss<B, B> dataCopy,
|
RunnableArgss<B, B> dataCopy,
|
||||||
Runnable onComplete,
|
Runnable onComplete,
|
||||||
RunnableArgs<Exception> onError) {
|
RunnableArgs<Exception> onError,
|
||||||
|
boolean isCacheEnabled) {
|
||||||
List<B> finalRemoteData = dataMapper.mapRestsToRooms(remoteData);
|
List<B> finalRemoteData = dataMapper.mapRestsToRooms(remoteData);
|
||||||
|
|
||||||
if (localData == null) localData = new ArrayList<>();
|
if (localData == null) localData = new ArrayList<>();
|
||||||
@@ -53,12 +54,14 @@ public abstract class _BaseRepository<
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var dataToUpdate = finalRemoteData.stream()
|
var dataToUpdate = finalRemoteData.stream()
|
||||||
.filter(x -> x.getId() != null && finalLocalData.stream().noneMatch(x::equals))
|
.filter(x -> x.getId() != null && finalLocalData.stream().noneMatch(x::equals))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
var dataToDelete = finalLocalData.stream()
|
var dataToDelete = finalLocalData.stream()
|
||||||
.filter(x -> x.isSyncronized() && finalRemoteData.stream().noneMatch(y -> keyComparator.run(y, x)))
|
.filter(x -> (!isCacheEnabled || x.isSyncronized()) && finalRemoteData.stream().noneMatch(y -> keyComparator.run(y, x)))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
var dataToInsert = finalRemoteData.stream()
|
var dataToInsert = finalRemoteData.stream()
|
||||||
|
|||||||
@@ -1,218 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
|
|
||||||
public class ArticoloDTO {
|
|
||||||
|
|
||||||
public String codMart;
|
|
||||||
public String descrizione;
|
|
||||||
public String untMis;
|
|
||||||
public float qtaCnf;
|
|
||||||
public String barcode;
|
|
||||||
public float merceDaRic;
|
|
||||||
public float mediaSett;
|
|
||||||
public String flagQtaMultipla;
|
|
||||||
public String flagTracciabilita;
|
|
||||||
public float qtaMinOrdinabile;
|
|
||||||
public boolean newNoPromo;
|
|
||||||
private int ggScadenza;
|
|
||||||
private float giacenza;
|
|
||||||
private float qtaPrevistaVendita;
|
|
||||||
private float qtaProposta;
|
|
||||||
private float qtaOrd;
|
|
||||||
|
|
||||||
|
|
||||||
public String getCodMart() {
|
|
||||||
return codMart;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCodMart(String codMart) {
|
|
||||||
this.codMart = codMart;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrizione() {
|
|
||||||
return descrizione;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescrizione(String descrizione) {
|
|
||||||
this.descrizione = descrizione;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUntMis() {
|
|
||||||
return untMis;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUntMis(String untMis) {
|
|
||||||
this.untMis = untMis;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getQtaCnf() {
|
|
||||||
return qtaCnf;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQtaCnf(float qtaCnf) {
|
|
||||||
this.qtaCnf = qtaCnf;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBarCode() {
|
|
||||||
return barcode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBarCode(String barCode) {
|
|
||||||
this.barcode = barCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getMerceDaRic() {
|
|
||||||
return merceDaRic;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMerceDaRic(float merceDaRic) {
|
|
||||||
this.merceDaRic = merceDaRic;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getMediaSett() {
|
|
||||||
return mediaSett;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMediaSett(float mediaSett) {
|
|
||||||
this.mediaSett = mediaSett;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFlagQtaMultipla() {
|
|
||||||
return flagQtaMultipla;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFlagQtaMultipla(String flagQtaMultipla) {
|
|
||||||
this.flagQtaMultipla = flagQtaMultipla;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getQtaMinOrdinabile() {
|
|
||||||
return qtaMinOrdinabile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQtaMinOrdinabile(float qtaMinOrdinabile) {
|
|
||||||
this.qtaMinOrdinabile = qtaMinOrdinabile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBarcode() {
|
|
||||||
return barcode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBarcode(String barcode) {
|
|
||||||
this.barcode = barcode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getGgScadenza() {
|
|
||||||
return ggScadenza;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGgScadenza(int ggScadenza) {
|
|
||||||
this.ggScadenza = ggScadenza;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getGiacenza() {
|
|
||||||
return giacenza;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGiacenza(float giacenza) {
|
|
||||||
this.giacenza = giacenza;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getQtaPrevistaVendita() {
|
|
||||||
return qtaPrevistaVendita;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQtaPrevistaVendita(float qtaPrevistaVendita) {
|
|
||||||
this.qtaPrevistaVendita = qtaPrevistaVendita;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getQtaProposta() {
|
|
||||||
return qtaProposta;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQtaProposta(float qtaProposta) {
|
|
||||||
this.qtaProposta = qtaProposta;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFlagTracciabilita() {
|
|
||||||
return flagTracciabilita;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArticoloDTO setFlagTracciabilita(String flagTracciabilita) {
|
|
||||||
this.flagTracciabilita = flagTracciabilita;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isNewNoPromo() {
|
|
||||||
return newNoPromo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArticoloDTO setNewNoPromo(boolean newNoPromo) {
|
|
||||||
this.newNoPromo = newNoPromo;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getQtaOrd() {
|
|
||||||
return qtaOrd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArticoloDTO setQtaOrd(float qtaOrd) {
|
|
||||||
this.qtaOrd = qtaOrd;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) {
|
|
||||||
ArticoloOrdine articolo = new ArticoloOrdine();
|
|
||||||
|
|
||||||
articolo.setIdOrdine(ordine.getOrdineId());
|
|
||||||
|
|
||||||
articolo.setBarCode(this.getBarCode());
|
|
||||||
articolo.setCodMart(this.getCodMart());
|
|
||||||
articolo.setMediaSett(this.getMediaSett());
|
|
||||||
articolo.setFlagQtaMultipla(this.getFlagQtaMultipla());
|
|
||||||
articolo.setQtaMinOrdinabile(this.getQtaMinOrdinabile());
|
|
||||||
articolo.setMerceDaRic(this.getMerceDaRic());
|
|
||||||
articolo.setQtaCnf(this.getQtaCnf());
|
|
||||||
articolo.setUntMis(this.getUntMis());
|
|
||||||
articolo.setDescrizione(this.getDescrizione());
|
|
||||||
articolo.setDataIns(UtilityDate.getDateInstance());
|
|
||||||
articolo.setGgScadenza(this.getGgScadenza());
|
|
||||||
articolo.setGiacenza(BigDecimal.valueOf(this.getGiacenza()));
|
|
||||||
articolo.setQtaPrevistaVendita(BigDecimal.valueOf(this.getQtaPrevistaVendita()));
|
|
||||||
articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta()));
|
|
||||||
articolo.setNewNoPromo(this.isNewNoPromo());
|
|
||||||
articolo.setSystemNote(generateSystemNote());
|
|
||||||
articolo.setQtaOrd(this.getQtaOrd());
|
|
||||||
|
|
||||||
return articolo;
|
|
||||||
}
|
|
||||||
|
|
||||||
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 int getSortByBarcodeCondition(String barcode) {
|
|
||||||
if (codMart.equalsIgnoreCase(barcode))
|
|
||||||
return 1;
|
|
||||||
if (barcode != null) {
|
|
||||||
if (barcode.equalsIgnoreCase(barcode))
|
|
||||||
return 2;
|
|
||||||
if (StringUtils.leftPad(barcode, 13, "0").equalsIgnoreCase(barcode))
|
|
||||||
return 3;
|
|
||||||
}
|
|
||||||
return 100;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,224 @@
|
|||||||
|
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
||||||
|
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ArticoloOrdinabileDTO {
|
||||||
|
|
||||||
|
|
||||||
|
private String codAlis;
|
||||||
|
private String codMart;
|
||||||
|
private String descrizione;
|
||||||
|
private String untMis;
|
||||||
|
private float qtaCnf;
|
||||||
|
private float merceDaRic;
|
||||||
|
private float mediaSett;
|
||||||
|
private String flagQtaMultipla;
|
||||||
|
private String flagTracciabilita;
|
||||||
|
private String flagQtaCnfFissa;
|
||||||
|
private boolean newNoPromo;
|
||||||
|
private float qtaMinOrdinabile;
|
||||||
|
private int ggScadenza;
|
||||||
|
private BigDecimal giacenza;
|
||||||
|
private BigDecimal qtaPrevistaVendita;
|
||||||
|
private BigDecimal qtaProposta;
|
||||||
|
private float qtaOrd;
|
||||||
|
|
||||||
|
private float ctMaxOrd;
|
||||||
|
|
||||||
|
private List<String> barcode;
|
||||||
|
|
||||||
|
private String selectedBarcode;
|
||||||
|
|
||||||
|
public String getCodAlis() {
|
||||||
|
return codAlis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setCodAlis(String codAlis) {
|
||||||
|
this.codAlis = codAlis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodMart() {
|
||||||
|
return codMart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setCodMart(String codMart) {
|
||||||
|
this.codMart = codMart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizione() {
|
||||||
|
return descrizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setDescrizione(String descrizione) {
|
||||||
|
this.descrizione = descrizione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUntMis() {
|
||||||
|
return untMis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setUntMis(String untMis) {
|
||||||
|
this.untMis = untMis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getQtaCnf() {
|
||||||
|
return qtaCnf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setQtaCnf(float qtaCnf) {
|
||||||
|
this.qtaCnf = qtaCnf;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getMerceDaRic() {
|
||||||
|
return merceDaRic;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setMerceDaRic(float merceDaRic) {
|
||||||
|
this.merceDaRic = merceDaRic;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getMediaSett() {
|
||||||
|
return mediaSett;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setMediaSett(float mediaSett) {
|
||||||
|
this.mediaSett = mediaSett;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFlagQtaMultipla() {
|
||||||
|
return flagQtaMultipla;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setFlagQtaMultipla(String flagQtaMultipla) {
|
||||||
|
this.flagQtaMultipla = flagQtaMultipla;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFlagTracciabilita() {
|
||||||
|
return flagTracciabilita;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setFlagTracciabilita(String flagTracciabilita) {
|
||||||
|
this.flagTracciabilita = flagTracciabilita;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFlagQtaCnfFissa() {
|
||||||
|
return flagQtaCnfFissa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setFlagQtaCnfFissa(String flagQtaCnfFissa) {
|
||||||
|
this.flagQtaCnfFissa = flagQtaCnfFissa;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isNewNoPromo() {
|
||||||
|
return newNoPromo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setNewNoPromo(boolean newNoPromo) {
|
||||||
|
this.newNoPromo = newNoPromo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getQtaMinOrdinabile() {
|
||||||
|
return qtaMinOrdinabile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setQtaMinOrdinabile(float qtaMinOrdinabile) {
|
||||||
|
this.qtaMinOrdinabile = qtaMinOrdinabile;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGgScadenza() {
|
||||||
|
return ggScadenza;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setGgScadenza(int ggScadenza) {
|
||||||
|
this.ggScadenza = ggScadenza;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getGiacenza() {
|
||||||
|
return giacenza;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setGiacenza(BigDecimal giacenza) {
|
||||||
|
this.giacenza = giacenza;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaPrevistaVendita() {
|
||||||
|
return qtaPrevistaVendita;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setQtaPrevistaVendita(BigDecimal qtaPrevistaVendita) {
|
||||||
|
this.qtaPrevistaVendita = qtaPrevistaVendita;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaProposta() {
|
||||||
|
return qtaProposta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setQtaProposta(BigDecimal qtaProposta) {
|
||||||
|
this.qtaProposta = qtaProposta;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getQtaOrd() {
|
||||||
|
return qtaOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setQtaOrd(float qtaOrd) {
|
||||||
|
this.qtaOrd = qtaOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getCtMaxOrd() {
|
||||||
|
return ctMaxOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setCtMaxOrd(float ctMaxOrd) {
|
||||||
|
this.ctMaxOrd = ctMaxOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getBarcode() {
|
||||||
|
return barcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setBarcode(List<String> barcode) {
|
||||||
|
this.barcode = barcode;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
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 String getSelectedBarcode() {
|
||||||
|
return selectedBarcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setSelectedBarcode(String selectedBarcode) {
|
||||||
|
this.selectedBarcode = selectedBarcode;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
|
||||||
|
|
||||||
public class GrigliaDTO {
|
|
||||||
private String descrLisa;
|
|
||||||
private String descrDepo;
|
|
||||||
private List<ArticoloDTO> grigliaAcquistiChild;
|
|
||||||
|
|
||||||
|
|
||||||
public String getDescrLisa() {
|
|
||||||
return descrLisa;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescrLisa(String descrLisa) {
|
|
||||||
this.descrLisa = descrLisa;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrDepo() {
|
|
||||||
return descrDepo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescrDepo(String descrDepo) {
|
|
||||||
this.descrDepo = descrDepo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ArticoloDTO> getGrigliaAcquistiChild() {
|
|
||||||
return grigliaAcquistiChild;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGrigliaAcquistiChild(List<ArticoloDTO> grigliaAcquistiChild) {
|
|
||||||
this.grigliaAcquistiChild = grigliaAcquistiChild;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
|
||||||
|
|
||||||
import androidx.room.Embedded;
|
|
||||||
import androidx.room.Ignore;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
|
||||||
|
|
||||||
public class OrdineWithGriglia {
|
|
||||||
|
|
||||||
@Embedded
|
|
||||||
private Ordine ordine;
|
|
||||||
@Embedded
|
|
||||||
private Griglia griglia;
|
|
||||||
|
|
||||||
|
|
||||||
public Ordine getOrdine() {
|
|
||||||
return ordine;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOrdine(Ordine ordine) {
|
|
||||||
this.ordine = ordine;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Griglia getGriglia() {
|
|
||||||
return griglia;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGriglia(Griglia griglia) {
|
|
||||||
this.griglia = griglia;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class OrdiniAcquistoGrigliaDTO {
|
||||||
|
private String descrLisa;
|
||||||
|
|
||||||
|
private String descrDepo;
|
||||||
|
|
||||||
|
private List<ArticoloOrdinabileDTO> articoli;
|
||||||
|
|
||||||
|
public String getDescrLisa() {
|
||||||
|
return descrLisa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniAcquistoGrigliaDTO setDescrLisa(String descrLisa) {
|
||||||
|
this.descrLisa = descrLisa;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrDepo() {
|
||||||
|
return descrDepo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniAcquistoGrigliaDTO setDescrDepo(String descrDepo) {
|
||||||
|
this.descrDepo = descrDepo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ArticoloOrdinabileDTO> getArticoli() {
|
||||||
|
return articoli;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniAcquistoGrigliaDTO setArticoli(List<ArticoloOrdinabileDTO> articoli) {
|
||||||
|
this.articoli = articoli;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@ import java.math.BigDecimal;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
|
||||||
public class BindableBigDecimal implements Observable {
|
public class BindableBigDecimal implements Observable {
|
||||||
|
|
||||||
BigDecimal mValue;
|
BigDecimal mValue;
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ public class BindableBoolean implements Observable {
|
|||||||
this.mValue = startValue;
|
this.mValue = startValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addOnPropertyChangedCallback(@NonNull OnPropertyChangedCallback callback) {
|
public void addOnPropertyChangedCallback(@NonNull OnPropertyChangedCallback callback) {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
package it.integry.integrywmsnative.core.di;
|
package it.integry.integrywmsnative.core.di;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.math.RoundingMode;
|
|
||||||
|
|
||||||
import androidx.databinding.BaseObservable;
|
import androidx.databinding.BaseObservable;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.CommonConst;
|
import it.integry.integrywmsnative.core.CommonConst;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||||
|
|
||||||
@@ -20,7 +19,7 @@ public class BindableFloat extends BaseObservable {
|
|||||||
|
|
||||||
if(numberOfDigits > CommonConst.Config.NUMBER_OF_DECIMAL_DIGITS) numberOfDigits = CommonConst.Config.NUMBER_OF_DECIMAL_DIGITS;
|
if(numberOfDigits > CommonConst.Config.NUMBER_OF_DECIMAL_DIGITS) numberOfDigits = CommonConst.Config.NUMBER_OF_DECIMAL_DIGITS;
|
||||||
|
|
||||||
return new BigDecimal(get());
|
return BigDecimal.valueOf(get());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Float get(boolean defaultIfNull) {
|
public Float get(boolean defaultIfNull) {
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import com.google.android.material.textfield.TextInputLayout;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.text.DecimalFormatSymbols;
|
import java.text.DecimalFormatSymbols;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@@ -104,6 +105,28 @@ public class Converters {
|
|||||||
view.setTag(R.id.bound_observable, new Pair<>(observableField, watcher));
|
view.setTag(R.id.bound_observable, new Pair<>(observableField, watcher));
|
||||||
view.addTextChangedListener(watcher);
|
view.addTextChangedListener(watcher);
|
||||||
}
|
}
|
||||||
|
String newValue = observableField != null ? observableField.get() : "";
|
||||||
|
if (!view.getText().toString().equals(newValue)) {
|
||||||
|
view.setText(newValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@BindingAdapter("binding")
|
||||||
|
public static void bindEditText(AppCompatTextView view, final ValidatableObservableField<String> observableField) {
|
||||||
|
Pair<ValidatableObservableField<String>, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
|
||||||
|
if (pair == null || pair.first != observableField) {
|
||||||
|
if (pair != null) {
|
||||||
|
view.removeTextChangedListener(pair.second);
|
||||||
|
}
|
||||||
|
TextWatcherAdapter watcher = new TextWatcherAdapter() {
|
||||||
|
@Override
|
||||||
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||||
|
if (observableField != null) observableField.set(s.toString());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
view.setTag(R.id.bound_observable, new Pair<>(observableField, watcher));
|
||||||
|
view.addTextChangedListener(watcher);
|
||||||
|
}
|
||||||
String newValue = observableField.get();
|
String newValue = observableField.get();
|
||||||
if (!view.getText().toString().equals(newValue)) {
|
if (!view.getText().toString().equals(newValue)) {
|
||||||
view.setText(newValue);
|
view.setText(newValue);
|
||||||
@@ -155,6 +178,28 @@ public class Converters {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@BindingAdapter("binding")
|
||||||
|
public static void bindEditText(EditText view, final ValidatableObservableField<String> observableString) {
|
||||||
|
Pair<ValidatableObservableField<String>, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
|
||||||
|
if (pair == null || pair.first != observableString) {
|
||||||
|
if (pair != null) {
|
||||||
|
view.removeTextChangedListener(pair.second);
|
||||||
|
}
|
||||||
|
TextWatcherAdapter watcher = new TextWatcherAdapter() {
|
||||||
|
@Override
|
||||||
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||||
|
observableString.set(s.toString());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
view.setTag(R.id.bound_observable, new Pair<>(observableString, watcher));
|
||||||
|
view.addTextChangedListener(watcher);
|
||||||
|
}
|
||||||
|
String newValue = observableString.get();
|
||||||
|
if (!view.getText().toString().equals(newValue)) {
|
||||||
|
view.setText(newValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@BindingAdapter("binding")
|
@BindingAdapter("binding")
|
||||||
public static void bindEditText(AutoCompleteTextView view, final ObservableField<String> observableString) {
|
public static void bindEditText(AutoCompleteTextView view, final ObservableField<String> observableString) {
|
||||||
Pair<ObservableField<String>, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
|
Pair<ObservableField<String>, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
|
||||||
@@ -210,16 +255,19 @@ public class Converters {
|
|||||||
@Override
|
@Override
|
||||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||||
BigDecimal value = null;
|
BigDecimal value = null;
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(s.toString()))
|
if (!UtilityString.isNullOrEmpty(s.toString()))
|
||||||
value = new BigDecimal(s.toString());
|
value = new BigDecimal(s.toString());
|
||||||
|
|
||||||
observableBigDecimal.set(value);
|
observableBigDecimal.set(value);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
view.setTag(R.id.bound_observable, new Pair<>(observableBigDecimal, watcher));
|
view.setTag(R.id.bound_observable, new Pair<>(observableBigDecimal, watcher));
|
||||||
view.addTextChangedListener(watcher);
|
view.addTextChangedListener(watcher);
|
||||||
}
|
}
|
||||||
|
|
||||||
BigDecimal newValue = observableBigDecimal.get();
|
BigDecimal newValue = observableBigDecimal.get();
|
||||||
BigDecimal viewValue = view.getText().toString().trim().length() > 0 ? new BigDecimal(view.getText().toString()) : null;
|
BigDecimal viewValue = !view.getText().toString().trim().isEmpty() ? new BigDecimal(view.getText().toString()) : null;
|
||||||
|
|
||||||
if (!UtilityBigDecimal.equalsTo(viewValue, newValue)) {
|
if (!UtilityBigDecimal.equalsTo(viewValue, newValue)) {
|
||||||
view.setText(UtilityNumber.decimalToString(newValue));
|
view.setText(UtilityNumber.decimalToString(newValue));
|
||||||
@@ -237,8 +285,11 @@ public class Converters {
|
|||||||
@Override
|
@Override
|
||||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||||
BigDecimal value = null;
|
BigDecimal value = null;
|
||||||
if (!UtilityString.isNullOrEmpty(s.toString()))
|
String newValueString = s.toString().trim();
|
||||||
value = new BigDecimal(s.toString());
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(newValueString))
|
||||||
|
value = new BigDecimal(newValueString);
|
||||||
|
|
||||||
observableBigDecimal.set(value);
|
observableBigDecimal.set(value);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -246,7 +297,37 @@ public class Converters {
|
|||||||
view.addTextChangedListener(watcher);
|
view.addTextChangedListener(watcher);
|
||||||
}
|
}
|
||||||
BigDecimal newValue = observableBigDecimal.get();
|
BigDecimal newValue = observableBigDecimal.get();
|
||||||
BigDecimal viewValue = view.getText().toString().trim().length() > 0 ? new BigDecimal(view.getText().toString()) : null;
|
BigDecimal viewValue = !view.getText().toString().trim().isEmpty() ? new BigDecimal(view.getText().toString()) : null;
|
||||||
|
|
||||||
|
if (!UtilityBigDecimal.equalsTo(viewValue, newValue)) {
|
||||||
|
view.setText(UtilityNumber.decimalToString(newValue));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@BindingAdapter("binding")
|
||||||
|
public static void bindTextInputEditTextBigDecimal(EditText view, final ValidatableObservableField<BigDecimal> observableBigDecimal) {
|
||||||
|
Pair<ValidatableObservableField<BigDecimal>, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
|
||||||
|
if (pair == null || pair.first != observableBigDecimal) {
|
||||||
|
if (pair != null) {
|
||||||
|
view.removeTextChangedListener(pair.second);
|
||||||
|
}
|
||||||
|
TextWatcherAdapter watcher = new TextWatcherAdapter() {
|
||||||
|
@Override
|
||||||
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||||
|
BigDecimal value = null;
|
||||||
|
String newValueString = s.toString().trim();
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(newValueString))
|
||||||
|
value = new BigDecimal(newValueString);
|
||||||
|
|
||||||
|
observableBigDecimal.set(value);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
view.setTag(R.id.bound_observable, new Pair<>(observableBigDecimal, watcher));
|
||||||
|
view.addTextChangedListener(watcher);
|
||||||
|
}
|
||||||
|
BigDecimal newValue = observableBigDecimal.get();
|
||||||
|
BigDecimal viewValue = !view.getText().toString().trim().isEmpty() ? new BigDecimal(view.getText().toString()) : null;
|
||||||
|
|
||||||
if (!UtilityBigDecimal.equalsTo(viewValue, newValue)) {
|
if (!UtilityBigDecimal.equalsTo(viewValue, newValue)) {
|
||||||
view.setText(UtilityNumber.decimalToString(newValue));
|
view.setText(UtilityNumber.decimalToString(newValue));
|
||||||
@@ -273,7 +354,7 @@ public class Converters {
|
|||||||
view.addTextChangedListener(watcher);
|
view.addTextChangedListener(watcher);
|
||||||
}
|
}
|
||||||
BigDecimal newValue = bindableBigDecimal.get();
|
BigDecimal newValue = bindableBigDecimal.get();
|
||||||
BigDecimal viewValue = view.getText().toString().trim().length() > 0 ? new BigDecimal(view.getText().toString()) : null;
|
BigDecimal viewValue = !view.getText().toString().trim().isEmpty() ? new BigDecimal(view.getText().toString()) : null;
|
||||||
|
|
||||||
if (!UtilityBigDecimal.equalsTo(viewValue, newValue)) {
|
if (!UtilityBigDecimal.equalsTo(viewValue, newValue)) {
|
||||||
view.setText(UtilityNumber.decimalToString(newValue));
|
view.setText(UtilityNumber.decimalToString(newValue));
|
||||||
@@ -300,7 +381,7 @@ public class Converters {
|
|||||||
view.addTextChangedListener(watcher);
|
view.addTextChangedListener(watcher);
|
||||||
}
|
}
|
||||||
Integer newValue = bindableInteger.get();
|
Integer newValue = bindableInteger.get();
|
||||||
Integer viewValue = view.getText().toString().trim().length() > 0 ? Integer.valueOf(view.getText().toString()) : Integer.valueOf(0);
|
Integer viewValue = !view.getText().toString().trim().isEmpty() ? Integer.valueOf(view.getText().toString()) : Integer.valueOf(0);
|
||||||
|
|
||||||
if (!(viewValue.compareTo(newValue) == 0)) {
|
if (!(viewValue.compareTo(newValue) == 0)) {
|
||||||
view.setText(newValue.toString());
|
view.setText(newValue.toString());
|
||||||
@@ -351,7 +432,7 @@ public class Converters {
|
|||||||
view.addTextChangedListener(watcher);
|
view.addTextChangedListener(watcher);
|
||||||
}
|
}
|
||||||
Integer newValue = observableInteger.get();
|
Integer newValue = observableInteger.get();
|
||||||
Integer viewValue = view.getText().toString().trim().length() > 0 ? Integer.valueOf(view.getText().toString()) : Integer.valueOf(0);
|
Integer viewValue = !view.getText().toString().trim().isEmpty() ? Integer.valueOf(view.getText().toString()) : Integer.valueOf(0);
|
||||||
|
|
||||||
if (!viewValue.equals(newValue) && newValue != null) {
|
if (!viewValue.equals(newValue) && newValue != null) {
|
||||||
view.setText(newValue.toString());
|
view.setText(newValue.toString());
|
||||||
@@ -378,7 +459,7 @@ public class Converters {
|
|||||||
view.addTextChangedListener(watcher);
|
view.addTextChangedListener(watcher);
|
||||||
}
|
}
|
||||||
Long newValue = observableLong.get();
|
Long newValue = observableLong.get();
|
||||||
Long viewValue = view.getText().toString().trim().length() > 0 ? Long.valueOf(view.getText().toString()) : Long.valueOf(0);
|
Long viewValue = !view.getText().toString().trim().isEmpty() ? Long.valueOf(view.getText().toString()) : Long.valueOf(0);
|
||||||
|
|
||||||
if (!viewValue.equals(newValue) && newValue != null) {
|
if (!viewValue.equals(newValue) && newValue != null) {
|
||||||
view.setText(newValue.toString());
|
view.setText(newValue.toString());
|
||||||
@@ -456,8 +537,8 @@ public class Converters {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@BindingAdapter(value = {"binding", "parentView", "warningOnOldDates"}, requireAll = false)
|
@BindingAdapter(value = {"binding", "parentView", "warningOnOldDates"}, requireAll = false)
|
||||||
public static void bindEditTextDate(EditText view, final ObservableField<Date> observableDate, BaseDialogFragment parentFragment, boolean warningOnOldDates) {
|
public static void bindEditTextDate(EditText view, final ObservableField<LocalDate> observableDate, BaseDialogFragment parentFragment, boolean warningOnOldDates) {
|
||||||
Pair<ObservableField<Date>, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
|
Pair<ObservableField<LocalDate>, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
|
||||||
if (pair == null || pair.first != observableDate) {
|
if (pair == null || pair.first != observableDate) {
|
||||||
if (pair != null) {
|
if (pair != null) {
|
||||||
view.removeTextChangedListener(pair.second);
|
view.removeTextChangedListener(pair.second);
|
||||||
@@ -472,37 +553,33 @@ public class Converters {
|
|||||||
|
|
||||||
RunnableArgs<View> onClick = v -> {
|
RunnableArgs<View> onClick = v -> {
|
||||||
// Get Current Date
|
// Get Current Date
|
||||||
Calendar c = UtilityDate.getCalendarInstance();
|
LocalDate selectedDate = observableDate.get() != null ? observableDate.get() : UtilityDate.getNow();
|
||||||
|
|
||||||
if (observableDate.get() != null) {
|
|
||||||
c.setTime(observableDate.get());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var datePicker =
|
var datePicker =
|
||||||
MaterialDatePicker.Builder.datePicker()
|
MaterialDatePicker.Builder.datePicker()
|
||||||
.setSelection(c.getTimeInMillis())
|
.setSelection(UtilityDate.localDateToMillisTime(selectedDate))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
datePicker.addOnDismissListener(dialog -> {
|
datePicker.addOnDismissListener(dialog -> {
|
||||||
if(datePicker.getSelection() != null) {
|
if(datePicker.getSelection() != null) {
|
||||||
var timeInMillis = datePicker.getSelection();
|
var selectedTimeInMillis = datePicker.getSelection();
|
||||||
|
var nowTime = UtilityDate.millisTimeToLocalDate(selectedTimeInMillis, null);
|
||||||
|
|
||||||
var calendar = UtilityDate.getCalendarInstance();
|
|
||||||
calendar.setTimeInMillis(timeInMillis);
|
|
||||||
|
|
||||||
if (parentFragment != null && warningOnOldDates && calendar.before(UtilityDate.getCalendarInstance())) {
|
if (parentFragment != null && warningOnOldDates && nowTime.isBefore(UtilityDate.getNow())) {
|
||||||
DialogSimpleMessageView
|
DialogSimpleMessageView
|
||||||
.makeWarningDialog(new SpannableString("Hai scelto una data precedente a quella odierna. Continuare?"), null, () -> {
|
.makeWarningDialog(new SpannableString("Hai scelto una data precedente a quella odierna. Continuare?"), null, () -> {
|
||||||
view.setText(UtilityDate.formatDate(calendar.getTime(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
view.setText(UtilityDate.formatDate(nowTime, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||||
observableDate.set(calendar.getTime());
|
observableDate.set(nowTime);
|
||||||
}, () -> {
|
}, () -> {
|
||||||
|
|
||||||
})
|
})
|
||||||
.show(parentFragment.requireActivity().getSupportFragmentManager(), "tag");
|
.show(parentFragment.requireActivity().getSupportFragmentManager(), "tag");
|
||||||
} else {
|
} else {
|
||||||
view.setText(UtilityDate.formatDate(calendar.getTime(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
view.setText(UtilityDate.formatDate(nowTime, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||||
observableDate.set(calendar.getTime());
|
observableDate.set(nowTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -521,7 +598,7 @@ public class Converters {
|
|||||||
((TextInputLayout) view.getParent().getParent()).setOnClickListener(onClick::run);
|
((TextInputLayout) view.getParent().getParent()).setOnClickListener(onClick::run);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Date newValue = observableDate.get();
|
var newValue = observableDate.get();
|
||||||
view.setText(UtilityDate.formatDate(newValue, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
view.setText(UtilityDate.formatDate(newValue, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -654,6 +731,30 @@ public class Converters {
|
|||||||
view.setChecked(newValue);
|
view.setChecked(newValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@BindingAdapter("checked")
|
||||||
|
public static void bindCheckbox(AppCompatCheckBox view, final ObservableField<Boolean> bindableBoolean) {
|
||||||
|
if (view.getTag(R.id.bound_observable) != bindableBoolean) {
|
||||||
|
view.setTag(R.id.bound_observable, bindableBoolean);
|
||||||
|
view.setOnCheckedChangeListener((compoundButton, b) -> {
|
||||||
|
bindableBoolean.set(b);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Boolean newValue = bindableBoolean.get();
|
||||||
|
view.setChecked(newValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
@BindingAdapter("checked")
|
||||||
|
public static void bindCheckbox(AppCompatCheckBox view, final ValidatableObservableField<Boolean> bindableBoolean) {
|
||||||
|
if (view.getTag(R.id.bound_observable) != bindableBoolean) {
|
||||||
|
view.setTag(R.id.bound_observable, bindableBoolean);
|
||||||
|
view.setOnCheckedChangeListener((compoundButton, b) -> {
|
||||||
|
bindableBoolean.set(b);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Boolean newValue = bindableBoolean.get();
|
||||||
|
view.setChecked(newValue);
|
||||||
|
}
|
||||||
|
|
||||||
@BindingAdapter("checked")
|
@BindingAdapter("checked")
|
||||||
public static void bindCheckbox(CheckBox view, final BindableBoolean bindableBoolean) {
|
public static void bindCheckbox(CheckBox view, final BindableBoolean bindableBoolean) {
|
||||||
if (view.getTag(R.id.bound_observable) != bindableBoolean) {
|
if (view.getTag(R.id.bound_observable) != bindableBoolean) {
|
||||||
@@ -718,10 +819,55 @@ public class Converters {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@BindingAdapter("visibilityWhenNotNull")
|
||||||
|
public static void bindViewVisibilityWhenNotNull(View view, ObservableField<?> bindableObject) {
|
||||||
|
if(bindableObject == null) return;
|
||||||
|
|
||||||
|
if (view.getTag(R.id.bound_observable) != bindableObject) {
|
||||||
|
view.setTag(R.id.bound_observable, bindableObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
bindableObject.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||||
|
@Override
|
||||||
|
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||||
|
view.setVisibility(bindableObject.get() == null ? View.GONE : View.VISIBLE);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
view.setVisibility(bindableObject.get() == null ? View.GONE : View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@BindingAdapter("visibilityWhenNotNull")
|
||||||
|
public static void bindViewVisibilityWhenNotNull(View view, Object genericObject) {
|
||||||
|
view.setVisibility(genericObject == null ? View.GONE : View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@BindingAdapter("visibilityWhenNull")
|
||||||
|
public static void bindViewVisibilityWhenNull(View view, ObservableField<?> bindableObject) {
|
||||||
|
|
||||||
|
if (view.getTag(R.id.bound_observable_visibility) != bindableObject) {
|
||||||
|
view.setTag(R.id.bound_observable_visibility, bindableObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
view.setVisibility(bindableObject == null || bindableObject.get() == null ? View.VISIBLE : View.GONE);
|
||||||
|
|
||||||
|
if(bindableObject == null) return;
|
||||||
|
|
||||||
|
bindableObject.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||||
|
@Override
|
||||||
|
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||||
|
view.setVisibility(bindableObject.get() == null ? View.VISIBLE : View.GONE);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@BindingAdapter({"reverse_visibility"})
|
@BindingAdapter({"reverse_visibility"})
|
||||||
public static void bindViewReverseVisibility(View view, final BindableBoolean bindableBoolean) {
|
public static void bindViewReverseVisibility(View view, final BindableBoolean bindableBoolean) {
|
||||||
if (view.getTag(R.id.bound_observable) != bindableBoolean) {
|
if (view.getTag(R.id.bound_reverse_visibility) != bindableBoolean) {
|
||||||
view.setTag(R.id.bound_observable, bindableBoolean);
|
view.setTag(R.id.bound_reverse_visibility, bindableBoolean);
|
||||||
}
|
}
|
||||||
bindableBoolean.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
bindableBoolean.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package it.integry.integrywmsnative.core.di;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.databinding.BaseObservable;
|
||||||
|
import androidx.databinding.Bindable;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.BR;
|
||||||
|
import it.integry.integrywmsnative.core.di.validators.Validator;
|
||||||
|
|
||||||
|
public class ValidatableObservableField<T> extends BaseObservable {
|
||||||
|
private T mValue;
|
||||||
|
private final List<Validator<T>> validators = new ArrayList<>();
|
||||||
|
public String errorMessage;
|
||||||
|
|
||||||
|
public ValidatableObservableField() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ValidatableObservableField(T value) {
|
||||||
|
mValue = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the stored value.
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
public T get() {
|
||||||
|
return mValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void set(T value) {
|
||||||
|
if (value != mValue) {
|
||||||
|
mValue = value;
|
||||||
|
notifyChange();
|
||||||
|
validate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addValidator(Validator<T> validator) {
|
||||||
|
validators.add(validator);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean validate() {
|
||||||
|
for (Validator<T> validator : validators) {
|
||||||
|
if (!validator.isValid(mValue)) {
|
||||||
|
setErrorMessage(validator.getErrorMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setErrorMessage(null);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bindable
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setErrorMessage(String errorMessage) {
|
||||||
|
this.errorMessage = errorMessage;
|
||||||
|
notifyPropertyChanged(BR.errorMessage); // Notifica il cambiamento di errorMessage
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,5 +2,25 @@ package it.integry.integrywmsnative.core.di.binders;
|
|||||||
|
|
||||||
public class AutoCompleteTextViewBinders {
|
public class AutoCompleteTextViewBinders {
|
||||||
|
|
||||||
|
// @BindingAdapter("binding")
|
||||||
|
// public static void bindUntMisText(AppCompatAutoCompleteTextView view, ObservableField<MtbUntMis> untMisField) {
|
||||||
|
// Pair<ObservableField<MtbUntMis>, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
|
||||||
|
// if (pair == null || pair.first != untMisField) {
|
||||||
|
// if (pair != null) {
|
||||||
|
// view.removeTextChangedListener(pair.second);
|
||||||
|
// }
|
||||||
|
// TextWatcherAdapter watcher = new TextWatcherAdapter() {
|
||||||
|
// @Override
|
||||||
|
// public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||||
|
// if (untMisField != null) untMisField.set(s.toString());
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// view.setTag(R.id.bound_observable, new Pair<>(untMisField, watcher));
|
||||||
|
// view.addTextChangedListener(watcher);
|
||||||
|
// }
|
||||||
|
// String newValue = untMisField != null && untMisField.get() != null ? Objects.requireNonNull(untMisField.get()).getUntMis() : "";
|
||||||
|
// if (!view.getText().toString().equals(newValue)) {
|
||||||
|
// view.setText(newValue);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package it.integry.integrywmsnative.core.di.binders;
|
package it.integry.integrywmsnative.core.di.binders;
|
||||||
|
|
||||||
import androidx.databinding.BindingAdapter;
|
import androidx.databinding.BindingAdapter;
|
||||||
|
|
||||||
import com.google.android.material.textfield.TextInputLayout;
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
|
|
||||||
public class TextInputLayoutBinders {
|
public class TextInputLayoutBinders {
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
package it.integry.integrywmsnative.core.di.binders.recyclerview;
|
package it.integry.integrywmsnative.core.di.binders.recyclerview;
|
||||||
|
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.databinding.ObservableList;
|
import androidx.databinding.ObservableList;
|
||||||
import androidx.databinding.ViewDataBinding;
|
import androidx.databinding.ViewDataBinding;
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package it.integry.integrywmsnative.core.di.validators;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class GreaterThenValidator implements Validator<BigDecimal> {
|
||||||
|
private final String errorMessage;
|
||||||
|
private final BigDecimal greaterThanValue;
|
||||||
|
|
||||||
|
public GreaterThenValidator(BigDecimal greaterThanValue, String errorMessage) {
|
||||||
|
this.greaterThanValue = greaterThanValue;
|
||||||
|
this.errorMessage = errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValid(BigDecimal value) {
|
||||||
|
return value != null && value.compareTo(greaterThanValue) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return errorMessage;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package it.integry.integrywmsnative.core.di.validators;
|
||||||
|
|
||||||
|
public class MinLengthValidator implements Validator<String> {
|
||||||
|
private final int minLength;
|
||||||
|
private final String errorMessage;
|
||||||
|
|
||||||
|
public MinLengthValidator(int minLength, String errorMessage) {
|
||||||
|
this.minLength = minLength;
|
||||||
|
this.errorMessage = errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValid(String value) {
|
||||||
|
return value != null && value.length() >= minLength;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return errorMessage;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package it.integry.integrywmsnative.core.di.validators;
|
||||||
|
|
||||||
|
public class NotEmptyValidator implements Validator<String> {
|
||||||
|
private final String errorMessage;
|
||||||
|
|
||||||
|
public NotEmptyValidator(String errorMessage) {
|
||||||
|
this.errorMessage = errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValid(String value) {
|
||||||
|
return value != null && !value.trim().isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return errorMessage;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package it.integry.integrywmsnative.core.di.validators;
|
||||||
|
|
||||||
|
public class NotNullValidator<T> implements Validator<T>{
|
||||||
|
private final String errorMessage;
|
||||||
|
|
||||||
|
public NotNullValidator(String errorMessage) {
|
||||||
|
this.errorMessage = errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValid(T value) {
|
||||||
|
return value != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return errorMessage;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package it.integry.integrywmsnative.core.di.validators;
|
||||||
|
|
||||||
|
public interface Validator<T> {
|
||||||
|
boolean isValid(T value);
|
||||||
|
|
||||||
|
String getErrorMessage();
|
||||||
|
}
|
||||||
@@ -0,0 +1,127 @@
|
|||||||
|
package it.integry.integrywmsnative.core.ean128;
|
||||||
|
|
||||||
|
public enum Ean128AI {
|
||||||
|
|
||||||
|
|
||||||
|
NULL, //Valore nullo (usato solo in logica)
|
||||||
|
SSCC, //Numero sequenziale del collo n2+n18
|
||||||
|
GTIN, //Codice EAN/UCC unità logistica n2+n14
|
||||||
|
CONTENT, //Codice EAN/UCC dei prodotti contenuti all'interno di unità log n2+n14
|
||||||
|
BATCH_LOT, //Numero del lotto di fabbricazione n2+an.20
|
||||||
|
PROD_DATE, //Data di produzione (yymmdd) 0~50 (2000~2050) - 51~99 (1951~1999) n2+n6
|
||||||
|
DUE_DATE, //Data di scadenza pagamento fattura n2+n6
|
||||||
|
PACK_DATE, //Data di confezionamento n2+n6
|
||||||
|
BEST_BEFORE,//Data minima di validità n2+n6
|
||||||
|
EXPIRY, //Data massima di validità n2+n6
|
||||||
|
VARIANT, //Variante di prodotto - uso interno aziendale n2+n2
|
||||||
|
SERIAL, //Numero di serie n2+an.20
|
||||||
|
QTY_DATE_BATCH, //Dati supplementari per prodotti farmaceutici n2+an.29
|
||||||
|
ADDITIONAL_ID, //Numedi di identificazione supplementare del prodotto n3+an.30
|
||||||
|
CUST_PART_NO, //Codice prodotto interno del cliente n3+an.30
|
||||||
|
SECONDARY_SERIAL, //Numero di serie secondario n3+an.30
|
||||||
|
REF_TO_SOURCE, //Entità di origine o marca auricolare n3+an.30
|
||||||
|
VAR_COUNT, //Quantità variabile n2+n.8
|
||||||
|
|
||||||
|
//Misure commerciali e logistiche FORMATO: n4+n6
|
||||||
|
NET_WEIGHT_KG, //Peso netto in Kg
|
||||||
|
LENGTH_M, //Lunghezza o 1° dimensione, in mt, uso commerciale
|
||||||
|
WIDTH_M, //Larghezza, diametro o 2° dimensione, in mt, uso commerciale
|
||||||
|
HEIGHT_M, //Profondità, spessore, altezza o 3° dimensione, in mt, uso commerciale
|
||||||
|
AREA_M2, //Superficie, in metriquadri, uso commerciale
|
||||||
|
NET_VOLUME_L, //Volume, in litri, uso commerciale
|
||||||
|
NET_VOLUME_M3, //Volume, in metricubi, uso commerciale
|
||||||
|
NET_WEIGHT_LB, //Peso netto, in libbre, uso commerciale
|
||||||
|
LENGTH_I, //Lunghezza o 1° dimensione, in pollici, uso commerciale
|
||||||
|
LENGTH_F, //Lunghezza o 1° dimensione, in piedi, uso commerciale
|
||||||
|
LENGTH_Y, //Lunghezza o 1° dimensione, in yards, uso commerciale
|
||||||
|
WIDTH_I, //Larghezza, diametro o 2° dimensione, in pollici, uso commerciale
|
||||||
|
WIDTH_F, //Larghezza, diametro o 2° dimensione, in piedi, uso commerciale
|
||||||
|
WIDTH_Y, //Larghezza, diametro o 2° dimensione, in yards, uso commerciale
|
||||||
|
HEIGHT_I, //Profondità, spessore, altezza o 3° dimensione, in pollici, uso commerciale
|
||||||
|
HEIGHT_F, //Profondità, spessore, altezza o 3° dimensione, in piedi, uso commerciale
|
||||||
|
HEIGHT_Y, //Profondità, spessore, altezza o 3° dimensione, in yards, uso commerciale
|
||||||
|
CROSSWEIGHT_KG_LOG, //Peso lordo, in Kg, uso logistico
|
||||||
|
LENGTH_M_LOG, //Lunghezza o 1° dimensione, in metri, uso logistico
|
||||||
|
WIDTH_M_LOG, //Larghezza, diametro o 2° dimensione, in metri, uso logistico
|
||||||
|
HEIGHT_M_LOG, //Profondità, spessore, altezza o 3° dimensione, in metri, uso logistico
|
||||||
|
AREA_M2_LOG, //Superficie, in metriquadri, uso logistico
|
||||||
|
VOLUME_L_LOG, //Volume lordo, in litri, uso logistico
|
||||||
|
VOLUME_M3_LOG, //Volume lordo, in metricubi, uso logistico
|
||||||
|
CROSSWEIGHT_LB_LOG, //Peso lordo, in libbre, uso logistico
|
||||||
|
LENGTH_I_LOG, //Lunghezza o 1° dimensione, in pollici, uso logistico
|
||||||
|
LENGTH_F_LOG, //Lunghezza o 1° dimensione, in piedi, uso logistico
|
||||||
|
LENGTH_Y_LOG, //Lunghezza o 1° dimensione, in yards, uso logistico
|
||||||
|
WIDTH_I_LOG, //Larghezza, diametro o 2° dimensione, in pollici, uso logistico
|
||||||
|
WIDTH_F_LOG, //Larghezza, diametro o 2° dimensione, in piedi, uso logistico
|
||||||
|
WIDTH_Y_LOG, //Larghezza, diametro o 2° dimensione, in yards, uso logistico
|
||||||
|
HEIGHT_I_LOG, //Profondità, spessore, altezza o 3° dimensione, in pollici, uso logistico
|
||||||
|
HEIGHT_F_LOG, //Profondità, spessore, altezza o 3° dimensione, in piedi, uso logistico
|
||||||
|
HEIGHT_Y_LOG, //Profondità, spessore, altezza o 3° dimensione, in yards, uso logistico
|
||||||
|
AREA_I2, //Superficie, in pollici quadrati, uso commerciale
|
||||||
|
AREA_F2, //Superficie, in piedi quadrati, uso commerciale
|
||||||
|
AREA_Y2, //Superficie, in yards quadrati, uso commerciale
|
||||||
|
AREA_I2_LOG, //Superficie, in pollici quadrati, uso logistico
|
||||||
|
AREA_F2_LOG, //Superficie, in piedi quadrati, uso logistico
|
||||||
|
AREA_Y2_LOG, //Superficie, in yards quadrati, uso logistico
|
||||||
|
NET_WEIGHT_T, //Peso netto, in once troy, uso commerciale
|
||||||
|
NET_VOLUME_OZ, //Volume netto, in once (U.S.), uso commerciale
|
||||||
|
NET_VOLUME_LB, //Volume netto, in quarti di gallone, uso commerciale
|
||||||
|
NET_VOLUME_G, //Volume netto, in galloni (U.S.), uso commerciale
|
||||||
|
VOLUME_Q_LOG, //Volume lordo, in quarti di gallone, uso logistico
|
||||||
|
VOLUME_G_LOG, //Volume lordo, in galloni (U.S.), uso logistico
|
||||||
|
NET_VOLUME_I3, //Volume netto, in pollici cubi, uso commerciale
|
||||||
|
NET_VOLUME_F3, //Volume netto, in piedi cubi, uso commerciale
|
||||||
|
NET_VOLUME_Y3, //Volume netto, in yards cubi, uso commerciale
|
||||||
|
VOLUME_I3_LOG, //Volume lordo, in pollici cubi, uso logistico
|
||||||
|
VOLUME_F3_LOG, //Volume lordo, in piedi cubi, uso logistico
|
||||||
|
VOLUME_Y3_LOG, //Volume lordo, in yards cubi, uso logistico
|
||||||
|
COUNT, //Quantità prodotti contenuti in un'unità logistica
|
||||||
|
AMOUNT, //Importo da pagare singola area monetaria
|
||||||
|
AMOUNT_ISO, //Importo da pagare con codice valuta ISO
|
||||||
|
PRICE, //Importo da pagare singola unità monetaria (prodotti a peso variabile)
|
||||||
|
PRICE_ISO, //Importo da pagare con codice valuta ISO (prodotti a peso variabile)
|
||||||
|
ORDER_NUMBER, //Numero d'ordine d'acquisto cliente
|
||||||
|
CONSIGNMENT, //Numero di consegna
|
||||||
|
SHIPMENT_NO, //Numero di spedizione
|
||||||
|
ROUTE, //Codice di smistamento pacchi
|
||||||
|
SHIP_TO_LOC, //Codice di locazione EAN/UCC "Spedire a, Consegnare a"
|
||||||
|
BILL_TO_LOC, //Codice di locazione EAN/UCC "Fatturare a"
|
||||||
|
PURCHASE_FROM_LOC, //Codice di locazione EAN/UCC "Acquistato da"
|
||||||
|
SHIP_FOR_LOC, //Codice di locazione EAN/UCC "Sperdire per, Consegnare per, Inoltrare a"
|
||||||
|
LOC_NO, //Codice di locazione EAN/UCC: identificazione di una locazione fisica
|
||||||
|
PAY_TO_LOC, //Codice di locazione EAN/UCC di chi emette la fattura
|
||||||
|
SHIP_TO_POST, //Codice postale "Spedire a, Consegnare a" (nazionale)
|
||||||
|
SHIP_TO_POST_ISO, //Codice postale "Spedire a, Consegnare a" con codice nazione ISO
|
||||||
|
ORIGIN, //Paese di origine del prodotto
|
||||||
|
COUNTRY_INITIAL_PROCESS, //Paese di lavorazione iniziale del prodotto con codice nazionale ISO
|
||||||
|
COUNTRY_PROCESS, //Paese di lavorazione con codice nazionale ISO
|
||||||
|
COUNTRY_DISASSEMBLY, //Paese di scomposizione con codice nazionale ISO
|
||||||
|
COUNTRY_FULL_PROCESS,//Paese di lavorazione completa con codice nazionale ISO
|
||||||
|
NSN, //Numero di stock NATO
|
||||||
|
MEAT_CUT, //Carcasse animali e classificazione dei tagli UN/ECE
|
||||||
|
PROCESSORS, //Numero di approvazione del laboratorio di lavorazione intermedio con codice nazionale ISO
|
||||||
|
DIMENSIONS, //Prodotti in rotoli - larghezza, lunghezza, diametro interno, senso di svolgimento e giunte
|
||||||
|
CMT_NO, //Numero sequenziale elettronico per applicazioni di telefonia cellulare
|
||||||
|
GRAI, //Numero di identificazione per beni a rendere,
|
||||||
|
GIAI, //Numero di identificazione globale per beni individuali
|
||||||
|
PRICE_PER_UNIT, //Prezzo per unità di misura
|
||||||
|
GCTIN, //Identificazione dei componenti di un prodotto
|
||||||
|
IBAN, //Numero di contocorrente bancario internazionale
|
||||||
|
PROD_TIME, //Data e ora di produzione
|
||||||
|
GSRN, //Numedo Globale di Relazione di Servizio
|
||||||
|
REF_NO, //Numero del bollettino di pagamento
|
||||||
|
COUPON_1, //Codice esteso per i coupons, UCC
|
||||||
|
COUPON_2, //Codice esteso per i coupons, UCC
|
||||||
|
COUPON_3, //Codice esteso per i coupons, UCC
|
||||||
|
INTERNAL_PART, //Informazioni concordate tra i partners commerciali
|
||||||
|
INTERNAL_1, //Informazioni interne
|
||||||
|
INTERNAL_2, //Informazioni interne
|
||||||
|
INTERNAL_3, //Informazioni interne
|
||||||
|
INTERNAL_4, //Informazioni interne
|
||||||
|
INTERNAL_5, //Informazioni interne
|
||||||
|
INTERNAL_6, //Informazioni interne
|
||||||
|
INTERNAL_7, //Informazioni interne
|
||||||
|
INTERNAL_8, //Informazioni interne
|
||||||
|
INTERNAL_9, //Informazioni interne
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package it.integry.integrywmsnative.core.ean128;
|
||||||
|
|
||||||
|
public class Ean128AIModel implements Cloneable {
|
||||||
|
|
||||||
|
|
||||||
|
public Ean128AI AI;
|
||||||
|
|
||||||
|
public String code;
|
||||||
|
|
||||||
|
public int dataLength;
|
||||||
|
|
||||||
|
public boolean flagVariableLength;
|
||||||
|
|
||||||
|
public boolean flagOnlyNumeric;
|
||||||
|
|
||||||
|
public int decimalDigits;
|
||||||
|
|
||||||
|
public Ean128AIModel(Ean128AI AI, String code, int dataLength, boolean flagVariableLength, boolean flagOnlyNumeric, int decimalDigits) {
|
||||||
|
this.AI = AI;
|
||||||
|
this.code = code;
|
||||||
|
this.dataLength = dataLength;
|
||||||
|
this.flagVariableLength = flagVariableLength;
|
||||||
|
this.flagOnlyNumeric = flagOnlyNumeric;
|
||||||
|
this.decimalDigits = decimalDigits;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Ean128AIModel(Ean128AI AI, String code, int dataLength, boolean flagVariableLength, boolean flagOnlyNumeric) {
|
||||||
|
this.AI = AI;
|
||||||
|
this.code = code;
|
||||||
|
this.dataLength = dataLength;
|
||||||
|
this.flagVariableLength = flagVariableLength;
|
||||||
|
this.flagOnlyNumeric = flagOnlyNumeric;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Object clone() throws CloneNotSupportedException {
|
||||||
|
return super.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,209 @@
|
|||||||
|
package it.integry.integrywmsnative.core.ean128;
|
||||||
|
|
||||||
|
import java.util.regex.MatchResult;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
public class Ean128AIModelBij {
|
||||||
|
|
||||||
|
private final Ean128AIModel[] _aiModelArray = new Ean128AIModel[]{
|
||||||
|
new Ean128AIModel(Ean128AI.SSCC, "^00", 18, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.GTIN, "^01", 14, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.CONTENT, "^02", 14, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.BATCH_LOT, "^10", 20, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.PROD_DATE, "^11", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.DUE_DATE, "^12", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.PACK_DATE, "^13", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.BEST_BEFORE, "^15", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.EXPIRY, "^17", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.VARIANT, "^20", 2, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.SERIAL, "^21", 20, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.QTY_DATE_BATCH, "^22", 29, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.ADDITIONAL_ID, "^240", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.CUST_PART_NO, "^241", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.SECONDARY_SERIAL, "^250", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.REF_TO_SOURCE, "^251", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.VAR_COUNT, "^30", 8, true, true),
|
||||||
|
new Ean128AIModel(Ean128AI.NET_WEIGHT_KG, "^310(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.LENGTH_M, "^311(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.WIDTH_M, "^312(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.HEIGHT_M, "^313(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.AREA_M2, "^314(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.NET_VOLUME_L, "^315(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.NET_VOLUME_M3, "^316(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.NET_WEIGHT_LB, "^320(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.LENGTH_I, "^321(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.LENGTH_F, "^322(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.LENGTH_Y, "^323(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.WIDTH_I, "^324(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.WIDTH_F, "^325(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.WIDTH_Y, "^326(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.HEIGHT_I, "^327(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.HEIGHT_F, "^328(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.HEIGHT_Y, "^329(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.CROSSWEIGHT_KG_LOG, "^330(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.LENGTH_M_LOG, "^331(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.WIDTH_M_LOG, "^332(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.HEIGHT_M_LOG, "^333(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.AREA_M2_LOG, "^334(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.VOLUME_L_LOG, "^335(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.VOLUME_M3_LOG, "^336(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.CROSSWEIGHT_LB_LOG, "^340(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.LENGTH_I_LOG, "^341(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.LENGTH_F_LOG, "^342(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.LENGTH_Y_LOG, "^343(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.WIDTH_I_LOG, "^344(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.WIDTH_F_LOG, "^345(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.WIDTH_Y_LOG, "^346(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.HEIGHT_I_LOG, "^347(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.HEIGHT_F_LOG, "^348(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.HEIGHT_Y_LOG, "^349(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.AREA_I2, "^350(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.AREA_F2, "^351(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.AREA_Y2, "^352(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.AREA_I2_LOG, "^353(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.AREA_F2_LOG, "^354(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.AREA_Y2_LOG, "^355(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.NET_WEIGHT_T, "^356(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.NET_VOLUME_OZ, "^357(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.NET_VOLUME_LB, "^360(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.NET_VOLUME_G, "^361(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.VOLUME_Q_LOG, "^362(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.VOLUME_G_LOG, "^363(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.NET_VOLUME_I3, "^364(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.NET_VOLUME_F3, "^365(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.NET_VOLUME_Y3, "^366(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.VOLUME_I3_LOG, "^367(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.VOLUME_F3_LOG, "^368(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.VOLUME_Y3_LOG, "^369(\\d{1})", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.COUNT, "^37", 8, true, true),
|
||||||
|
new Ean128AIModel(Ean128AI.AMOUNT, "^390(\\d{1})", 15, true, true),
|
||||||
|
new Ean128AIModel(Ean128AI.AMOUNT_ISO, "^391(\\d{1})", 18, true, true),
|
||||||
|
new Ean128AIModel(Ean128AI.PRICE, "^392(\\d{1})", 15, true, true),
|
||||||
|
new Ean128AIModel(Ean128AI.PRICE_ISO, "^393(\\d{1})", 18, true, true),
|
||||||
|
new Ean128AIModel(Ean128AI.ORDER_NUMBER, "^400", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.CONSIGNMENT, "^401", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.SHIPMENT_NO, "^402", 17, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.ROUTE, "^403", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.SHIP_TO_LOC, "^410", 13, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.BILL_TO_LOC, "^411", 13, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.PURCHASE_FROM_LOC, "^412", 13, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.SHIP_FOR_LOC, "^413", 13, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.LOC_NO, "^414", 13, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.PAY_TO_LOC, "^415", 13, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.SHIP_TO_POST, "^420", 20, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.SHIP_TO_POST_ISO, "^421", 12, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.ORIGIN, "^422", 3, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.COUNTRY_INITIAL_PROCESS, "^423", 15, true, true),
|
||||||
|
new Ean128AIModel(Ean128AI.COUNTRY_PROCESS, "^424", 3, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.COUNTRY_DISASSEMBLY, "^425", 3, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.COUNTRY_FULL_PROCESS, "^426", 3, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.NSN, "^7001", 13, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.MEAT_CUT, "^7002", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.DIMENSIONS, "^8001", 14, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.CMT_NO, "^8002", 20, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.GRAI, "^8003", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.GIAI, "^8004", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.PRICE_PER_UNIT, "^8005", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.GCTIN, "^8006", 18, false, false),
|
||||||
|
new Ean128AIModel(Ean128AI.IBAN, "^8007", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.PROD_TIME, "^8008", 12, true, true),
|
||||||
|
new Ean128AIModel(Ean128AI.GSRN, "^8018", 18, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.REF_NO, "^8020", 25, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.COUPON_1, "^8100", 6, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.COUPON_2, "^8101", 10, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.COUPON_3, "^8102", 2, false, true),
|
||||||
|
new Ean128AIModel(Ean128AI.INTERNAL_PART, "^90", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.INTERNAL_1, "^91", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.INTERNAL_2, "^92", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.INTERNAL_3, "^93", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.INTERNAL_4, "^94", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.INTERNAL_5, "^95", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.INTERNAL_6, "^96", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.INTERNAL_7, "^97", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.INTERNAL_8, "^98", 30, true, false),
|
||||||
|
new Ean128AIModel(Ean128AI.INTERNAL_9, "^99", 30, true, false)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
public int checkAI(String aiToCheck) {
|
||||||
|
int count = -1;
|
||||||
|
|
||||||
|
if (aiToCheck.length() > 1) {
|
||||||
|
for (int i = 0; i < _aiModelArray.length; i++) {
|
||||||
|
final String groupSeparatorCharInHexForRegex = "\\x1D";
|
||||||
|
String codePattern = "";
|
||||||
|
|
||||||
|
if (aiToCheck.charAt(0) == (char) 29) {
|
||||||
|
codePattern += groupSeparatorCharInHexForRegex;
|
||||||
|
}
|
||||||
|
|
||||||
|
codePattern += _aiModelArray[i].code;
|
||||||
|
|
||||||
|
|
||||||
|
Pattern pattern = Pattern.compile(codePattern, Pattern.CASE_INSENSITIVE);
|
||||||
|
Matcher matcher = pattern.matcher(aiToCheck);
|
||||||
|
|
||||||
|
|
||||||
|
if (matcher.find()) {
|
||||||
|
count = i;
|
||||||
|
MatchResult matchResult = matcher.toMatchResult();
|
||||||
|
|
||||||
|
if (matchResult.groupCount() >= 1) {
|
||||||
|
String digitsString = matchResult.group(1);
|
||||||
|
_aiModelArray[i].decimalDigits = Integer.parseInt(digitsString);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Ean128AIModel readAI(String aiToSearch) {
|
||||||
|
|
||||||
|
Ean128AIModel barcodeAIModel = null;
|
||||||
|
|
||||||
|
for (Ean128AIModel singleBarcodeAIModel : _aiModelArray) {
|
||||||
|
final String groupSeparatorCharInHexForRegex = "\\x1D";
|
||||||
|
String codePattern = "";
|
||||||
|
|
||||||
|
if (aiToSearch.charAt(0) == (char) 29) {
|
||||||
|
codePattern += groupSeparatorCharInHexForRegex;
|
||||||
|
}
|
||||||
|
|
||||||
|
codePattern += singleBarcodeAIModel.code;
|
||||||
|
|
||||||
|
|
||||||
|
Pattern pattern = Pattern.compile(codePattern, Pattern.CASE_INSENSITIVE);
|
||||||
|
Matcher matcher = pattern.matcher(aiToSearch);
|
||||||
|
|
||||||
|
if (matcher.matches()) {
|
||||||
|
try {
|
||||||
|
barcodeAIModel = (Ean128AIModel) singleBarcodeAIModel.clone();
|
||||||
|
|
||||||
|
MatchResult matchResult = matcher.toMatchResult();
|
||||||
|
|
||||||
|
if (matchResult.groupCount() > 1) {
|
||||||
|
String digitsString = matchResult.group(1);
|
||||||
|
barcodeAIModel.decimalDigits = Integer.parseInt(digitsString);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
} catch (CloneNotSupportedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return barcodeAIModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Ean128AIModel getAI(int index) {
|
||||||
|
return _aiModelArray[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package it.integry.integrywmsnative.core.ean128;
|
||||||
|
|
||||||
|
public class Ean128ISOValueModel<T> {
|
||||||
|
|
||||||
|
public String ISOCode;
|
||||||
|
public T Value;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,331 @@
|
|||||||
|
package it.integry.integrywmsnative.core.ean128;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.core.base.Callable;
|
||||||
|
import it.integry.integrywmsnative.core.base.CallableII;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
|
public class Ean128Service {
|
||||||
|
|
||||||
|
public Ean128Model decode(BarcodeScanDTO barcodeScanDTO) throws Exception {
|
||||||
|
byte[] inputEan128ByteArr = barcodeScanDTO.getStringValue().replaceAll("" + ((char) 29), "|").getBytes();
|
||||||
|
Ean128AIModelBij ean128AIModelBij = new Ean128AIModelBij();
|
||||||
|
|
||||||
|
String aiCodeBuffer = "";
|
||||||
|
|
||||||
|
Ean128Model model = new Ean128Model();
|
||||||
|
|
||||||
|
for (int i = 0; i < inputEan128ByteArr.length; i++) {
|
||||||
|
aiCodeBuffer += (char) inputEan128ByteArr[i];
|
||||||
|
|
||||||
|
if (aiCodeBuffer.startsWith("|")) {
|
||||||
|
aiCodeBuffer = aiCodeBuffer.substring(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aiCodeBuffer.length() <= 5) {
|
||||||
|
int aiIndex = ean128AIModelBij.checkAI(aiCodeBuffer);
|
||||||
|
|
||||||
|
if (aiIndex != -1) {
|
||||||
|
|
||||||
|
Ean128AIModel aiModel = ean128AIModelBij.getAI(aiIndex);
|
||||||
|
|
||||||
|
StringBuilder aiValue = new StringBuilder();
|
||||||
|
|
||||||
|
if (!aiModel.flagVariableLength) {
|
||||||
|
|
||||||
|
for (int j = (i + 1); j < (i + 1) + aiModel.dataLength; j++) {
|
||||||
|
aiValue.append((char) inputEan128ByteArr[j]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//aiValue = barcodeAsString.Substring(i + 1, aiModel.DataLength);
|
||||||
|
i += aiModel.dataLength;
|
||||||
|
} else {
|
||||||
|
String tempBuffer = "";
|
||||||
|
|
||||||
|
i++;
|
||||||
|
|
||||||
|
while (i < inputEan128ByteArr.length && i < (aiModel.dataLength + i)) {
|
||||||
|
byte currentChar = inputEan128ByteArr[i];
|
||||||
|
|
||||||
|
if (currentChar != 29 && currentChar != '|') { //Controllo carattere FNC1
|
||||||
|
tempBuffer += (char) currentChar;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
aiValue = new StringBuilder(tempBuffer.replace("\r", "").replace("\n", ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (aiModel.AI) {
|
||||||
|
case SSCC -> {
|
||||||
|
if (aiValue.length() > 0 && (aiValue.charAt(0) == '0' || aiValue.charAt(0) == '9')) {
|
||||||
|
aiValue = new StringBuilder(aiValue.substring(1));
|
||||||
|
}
|
||||||
|
model.Sscc = aiValue.toString();
|
||||||
|
}
|
||||||
|
case GTIN -> {
|
||||||
|
if (aiValue.length() > 0 && (aiValue.charAt(0) == '0' || aiValue.charAt(0) == '9')) {
|
||||||
|
aiValue = new StringBuilder(aiValue.substring(1));
|
||||||
|
}
|
||||||
|
model.Gtin = aiValue.toString();
|
||||||
|
}
|
||||||
|
case CONTENT -> {
|
||||||
|
if (aiValue.length() > 0 && (aiValue.charAt(0) == '0' || aiValue.charAt(0) == '9')) {
|
||||||
|
aiValue = new StringBuilder(aiValue.substring(1));
|
||||||
|
}
|
||||||
|
model.Content = aiValue.toString();
|
||||||
|
}
|
||||||
|
case BATCH_LOT -> model.BatchLot = aiValue.toString();
|
||||||
|
case PROD_DATE -> model.ProdDate = convertToDateTime(aiValue.toString());
|
||||||
|
case DUE_DATE -> model.DueDate = convertToDateTime(aiValue.toString());
|
||||||
|
case PACK_DATE -> model.PackDate = convertToDateTime(aiValue.toString());
|
||||||
|
case BEST_BEFORE ->
|
||||||
|
model.BestBefore = UtilityDate.formatDate(convertToDateTime(aiValue.toString()), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH);
|
||||||
|
case EXPIRY -> model.Expiry = UtilityDate.formatDate(convertToDateTime(aiValue.toString()), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH);
|
||||||
|
case VARIANT -> model.Variant = aiValue.toString();
|
||||||
|
case SERIAL -> model.Serial = aiValue.toString();
|
||||||
|
case QTY_DATE_BATCH -> model.QtyDateBatch = aiValue.toString();
|
||||||
|
case ADDITIONAL_ID -> model.AdditionalID = aiValue.toString();
|
||||||
|
case CUST_PART_NO -> model.CustPartNumber = aiValue.toString();
|
||||||
|
case SECONDARY_SERIAL -> model.SecondarySerial = aiValue.toString();
|
||||||
|
case REF_TO_SOURCE -> model.RefToSource = aiValue.toString();
|
||||||
|
case VAR_COUNT -> model.VarCount = aiValue.toString();
|
||||||
|
case NET_WEIGHT_KG ->
|
||||||
|
model.NetWeightKg = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case LENGTH_M ->
|
||||||
|
model.LengthM = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case WIDTH_M ->
|
||||||
|
model.WidthM = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case HEIGHT_M ->
|
||||||
|
model.HeightM = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case AREA_M2 ->
|
||||||
|
model.AreaM2 = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case NET_VOLUME_L ->
|
||||||
|
model.NetVolumeL = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case NET_VOLUME_M3 ->
|
||||||
|
model.NetVolumeM3 = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case NET_WEIGHT_LB ->
|
||||||
|
model.NetWeightLb = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case LENGTH_I ->
|
||||||
|
model.LengthI = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case LENGTH_F ->
|
||||||
|
model.LengthF = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case LENGTH_Y ->
|
||||||
|
model.LengthY = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case WIDTH_I ->
|
||||||
|
model.WidthI = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case WIDTH_F ->
|
||||||
|
model.WidthF = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case WIDTH_Y ->
|
||||||
|
model.WidthY = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case HEIGHT_I ->
|
||||||
|
model.HeightI = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case HEIGHT_F ->
|
||||||
|
model.HeightF = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case HEIGHT_Y ->
|
||||||
|
model.HeightY = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case CROSSWEIGHT_KG_LOG ->
|
||||||
|
model.CrossweightKgLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case CROSSWEIGHT_LB_LOG ->
|
||||||
|
model.CrossweightLbLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case LENGTH_M_LOG ->
|
||||||
|
model.LengthMLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case WIDTH_M_LOG ->
|
||||||
|
model.WidthMLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case HEIGHT_M_LOG ->
|
||||||
|
model.HeigthMLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case AREA_M2_LOG ->
|
||||||
|
model.AreaM2Log = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case VOLUME_L_LOG ->
|
||||||
|
model.VolumeLLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case VOLUME_M3_LOG ->
|
||||||
|
model.VolumeM3Log = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case LENGTH_I_LOG ->
|
||||||
|
model.LengthILog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case LENGTH_F_LOG ->
|
||||||
|
model.LengthFLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case LENGTH_Y_LOG ->
|
||||||
|
model.LengthYLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case WIDTH_I_LOG ->
|
||||||
|
model.WidthILog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case WIDTH_F_LOG ->
|
||||||
|
model.WidthFLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case WIDTH_Y_LOG ->
|
||||||
|
model.WidthYLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case HEIGHT_I_LOG ->
|
||||||
|
model.HeigthILog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case HEIGHT_F_LOG ->
|
||||||
|
model.HeigthFLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case HEIGHT_Y_LOG ->
|
||||||
|
model.HeigthYLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case AREA_I2 ->
|
||||||
|
model.AreaI2 = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case AREA_F2 ->
|
||||||
|
model.AreaF2 = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case AREA_Y2 ->
|
||||||
|
model.AreaY2 = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case AREA_I2_LOG ->
|
||||||
|
model.AreaI2Log = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case AREA_F2_LOG ->
|
||||||
|
model.AreaF2Log = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case AREA_Y2_LOG ->
|
||||||
|
model.AreaY2Log = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case NET_WEIGHT_T ->
|
||||||
|
model.NetWeightT = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case NET_VOLUME_OZ ->
|
||||||
|
model.NetVolumeOz = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case NET_VOLUME_LB ->
|
||||||
|
model.NetVolumeLb = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case NET_VOLUME_G ->
|
||||||
|
model.NetVolumeG = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case VOLUME_Q_LOG ->
|
||||||
|
model.VolumeQLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case VOLUME_G_LOG ->
|
||||||
|
model.VolumeGLog = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case NET_VOLUME_I3 ->
|
||||||
|
model.NetVolumeI3 = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case NET_VOLUME_F3 ->
|
||||||
|
model.NetVolumeF3 = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case NET_VOLUME_Y3 ->
|
||||||
|
model.NetVolumeY3 = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case VOLUME_I3_LOG ->
|
||||||
|
model.VolumeI3Log = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case VOLUME_F3_LOG ->
|
||||||
|
model.VolumeF3Log = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case VOLUME_Y3_LOG ->
|
||||||
|
model.VolumeY3Log = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case COUNT -> model.Count = Integer.parseInt(aiValue.toString());
|
||||||
|
case AMOUNT ->
|
||||||
|
model.Amount = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case AMOUNT_ISO ->
|
||||||
|
model.AmountISO = convertToIsoValueModel(aiValue.toString(), aiModel.decimalDigits,
|
||||||
|
Double::parseDouble,
|
||||||
|
(input, input2) -> String.valueOf(convertToDecimalString(input, input2)));
|
||||||
|
case PRICE ->
|
||||||
|
model.Price = convertToDecimalString(aiValue.toString(), aiModel.decimalDigits);
|
||||||
|
case PRICE_ISO ->
|
||||||
|
model.PriceISO = convertToIsoValueModel(aiValue.toString(), aiModel.decimalDigits,
|
||||||
|
Double::parseDouble,
|
||||||
|
(input, input2) -> String.valueOf(convertToDecimalString(input, input2)));
|
||||||
|
case ORDER_NUMBER -> model.OrderNumber = aiValue.toString();
|
||||||
|
case CONSIGNMENT -> model.Consignment = aiValue.toString();
|
||||||
|
case SHIPMENT_NO -> model.ShipmentNo = aiValue.toString();
|
||||||
|
case ROUTE -> model.Route = aiValue.toString();
|
||||||
|
case SHIP_TO_LOC -> model.ShipToLoc = aiValue.toString();
|
||||||
|
case BILL_TO_LOC -> model.BillToLoc = aiValue.toString();
|
||||||
|
case PURCHASE_FROM_LOC -> model.PurchaseFromLoc = aiValue.toString();
|
||||||
|
case SHIP_FOR_LOC -> model.ShipForLoc = aiValue.toString();
|
||||||
|
case LOC_NO -> model.LocationNumber = aiValue.toString();
|
||||||
|
case PAY_TO_LOC -> model.PayToLoc = aiValue.toString();
|
||||||
|
case SHIP_TO_POST -> model.ShipToPost = aiValue.toString();
|
||||||
|
case SHIP_TO_POST_ISO ->
|
||||||
|
model.ShipToPostISO = convertToIsoValueModel(aiValue.toString(), 0,
|
||||||
|
new Callable<>() {
|
||||||
|
@Override
|
||||||
|
public String call(String input) {
|
||||||
|
return input;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new CallableII<>() {
|
||||||
|
@Override
|
||||||
|
public String call(String input, Integer input2) {
|
||||||
|
return input;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
case ORIGIN -> model.Origin = aiValue.toString();
|
||||||
|
case COUNTRY_INITIAL_PROCESS ->
|
||||||
|
model.ShipToPostISO = convertToIsoValueModel(aiValue.toString(), 0,
|
||||||
|
input -> input,
|
||||||
|
(input, input2) -> input);
|
||||||
|
case COUNTRY_PROCESS -> model.CountryProcess = aiValue.toString();
|
||||||
|
case COUNTRY_DISASSEMBLY -> model.CountryDisassembly = aiValue.toString();
|
||||||
|
case COUNTRY_FULL_PROCESS -> model.CountryFullProcess = aiValue.toString();
|
||||||
|
case NSN -> model.NSN = aiValue.toString();
|
||||||
|
case MEAT_CUT -> model.MeatCut = aiValue.toString();
|
||||||
|
case DIMENSIONS -> model.Dimensions = aiValue.toString();
|
||||||
|
case CMT_NO -> model.CmtNo = aiValue.toString();
|
||||||
|
case GRAI -> model.Grai = aiValue.toString();
|
||||||
|
case GIAI -> model.Giai = aiValue.toString();
|
||||||
|
case PRICE_PER_UNIT -> model.PricePerUnit = aiValue.toString();
|
||||||
|
case GCTIN -> model.Gctin = aiValue.toString();
|
||||||
|
case IBAN -> model.Iban = aiValue.toString();
|
||||||
|
case PROD_TIME -> model.ProdTime = convertToDateTime(aiValue.toString());
|
||||||
|
case GSRN -> model.Gsrn = aiValue.toString();
|
||||||
|
case REF_NO -> model.RefNo = aiValue.toString();
|
||||||
|
case COUPON_1 -> model.Coupon1 = aiValue.toString();
|
||||||
|
case COUPON_2 -> model.Coupon2 = aiValue.toString();
|
||||||
|
case COUPON_3 -> model.Coupon3 = aiValue.toString();
|
||||||
|
case INTERNAL_PART -> model.InternalPart = aiValue.toString();
|
||||||
|
case INTERNAL_1 -> model.Internal1 = aiValue.toString();
|
||||||
|
case INTERNAL_2 -> model.Internal2 = aiValue.toString();
|
||||||
|
case INTERNAL_3 -> model.Internal3 = aiValue.toString();
|
||||||
|
case INTERNAL_4 -> model.Internal4 = aiValue.toString();
|
||||||
|
case INTERNAL_5 -> model.Internal5 = aiValue.toString();
|
||||||
|
case INTERNAL_6 -> model.Internal6 = aiValue.toString();
|
||||||
|
case INTERNAL_7 -> model.Internal7 = aiValue.toString();
|
||||||
|
case INTERNAL_8 -> model.Internal8 = aiValue.toString();
|
||||||
|
case INTERNAL_9 -> model.Internal9 = aiValue.toString();
|
||||||
|
default -> {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
aiCodeBuffer = "";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new Exception(String.format("Il barcode non è un EAN128 valido (%s)", new String(inputEan128ByteArr)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private float convertToDecimalString(String sourceString, int numberOfdecimalDigits) {
|
||||||
|
|
||||||
|
int divider = (int) Math.pow(10, numberOfdecimalDigits);
|
||||||
|
|
||||||
|
return Float.parseFloat(sourceString) / divider;
|
||||||
|
}
|
||||||
|
|
||||||
|
private <T> Ean128ISOValueModel<T> convertToIsoValueModel(String sourceString, int numberOfDecimalDigits, Callable<String, T> castFunc, CallableII<String, Integer, String> splitFunc) {
|
||||||
|
String isoCode = sourceString.substring(0, 3);
|
||||||
|
|
||||||
|
T value = castFunc.call(splitFunc.call(sourceString.substring(3), numberOfDecimalDigits));
|
||||||
|
|
||||||
|
Ean128ISOValueModel<T> isoModel = new Ean128ISOValueModel<>();
|
||||||
|
isoModel.ISOCode = isoCode;
|
||||||
|
isoModel.Value = value;
|
||||||
|
|
||||||
|
return isoModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Date convertToDateTime(String sourceString) {
|
||||||
|
int year = Integer.parseInt(sourceString.substring(0, 2));
|
||||||
|
|
||||||
|
//Se l'anno è minore di 50 indica 2000-2050 altrimenti 1951-1999
|
||||||
|
int correctedYear = year <= 50 ? (2000 + year) : (1900 + year);
|
||||||
|
|
||||||
|
int month = Integer.parseInt(sourceString.substring(2, 4));
|
||||||
|
int day = Integer.parseInt(sourceString.substring(4, 6));
|
||||||
|
|
||||||
|
Date d = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
d = formatter.parse(day + "/" + month + "/" + correctedYear);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package it.integry.integrywmsnative.core.event;
|
||||||
|
|
||||||
|
public class SessionExpiredEvent {
|
||||||
|
}
|
||||||
@@ -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 EmptyOrderException extends Exception {
|
||||||
|
public EmptyOrderException() {
|
||||||
|
super(UtilityResources.getString(R.string.empty_order));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.exception;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.os.Environment;
|
|
||||||
import android.os.Looper;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import java.io.BufferedWriter;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileWriter;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.MainApplication;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.exception.DialogException;
|
|
||||||
|
|
||||||
public class ExceptionsHandler implements Thread.UncaughtExceptionHandler {
|
|
||||||
|
|
||||||
private final static String TAG = ExceptionsHandler.class.getSimpleName();
|
|
||||||
|
|
||||||
private final Activity context;
|
|
||||||
|
|
||||||
public static void init(Activity context) {
|
|
||||||
new ExceptionsHandler(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
private ExceptionsHandler(Activity context) {
|
|
||||||
this.context = context;
|
|
||||||
|
|
||||||
//if (!BuildConfig.DEBUG) {
|
|
||||||
Thread.setDefaultUncaughtExceptionHandler(this);
|
|
||||||
|
|
||||||
|
|
||||||
//}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uncaughtException(final Thread thread, final Throwable ex) {
|
|
||||||
try {
|
|
||||||
UtilityLogger.error(new Exception(ex));
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(TAG, "Exception Logger failed!", e);
|
|
||||||
MainApplication.exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
appendToFile(new Exception(ex));
|
|
||||||
new Thread() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
Looper.prepare();
|
|
||||||
DialogException.make(context, context::finish).show();
|
|
||||||
Looper.loop();
|
|
||||||
}
|
|
||||||
}.start();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void appendToFile(Exception e) {
|
|
||||||
try {
|
|
||||||
File yourFile = new File(Environment.getExternalStorageDirectory(), "log.txt");
|
|
||||||
|
|
||||||
FileWriter fstream = new FileWriter(yourFile.getPath(), true);
|
|
||||||
BufferedWriter out = new BufferedWriter(fstream);
|
|
||||||
PrintWriter pWriter = new PrintWriter(out, true);
|
|
||||||
e.printStackTrace(pWriter);
|
|
||||||
}
|
|
||||||
catch (Exception ie) {
|
|
||||||
throw new RuntimeException("Could not write Exception to file", ie);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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 ExpiredProductListException extends Exception {
|
||||||
|
public ExpiredProductListException() {
|
||||||
|
super(UtilityResources.getString(R.string.expired_list_session));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public class GridNotSelectedException extends Exception {
|
||||||
|
|
||||||
|
public GridNotSelectedException() {
|
||||||
|
super(UtilityResources.getString(R.string.grid_not_selected));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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 InvalidCodMdepException extends Exception {
|
||||||
|
public InvalidCodMdepException() {
|
||||||
|
super(UtilityResources.getString(R.string.invalid_codmdep));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public class InvalidLineaProdBarcodeException extends Exception {
|
||||||
|
|
||||||
|
public InvalidLineaProdBarcodeException() {
|
||||||
|
super(UtilityResources.getString(R.string.no_result_from_linea_prod_barcode));
|
||||||
|
}
|
||||||
|
|
||||||
|
public InvalidLineaProdBarcodeException(String barcode) {
|
||||||
|
super(UtilityResources.getString(R.string.no_result_from_linea_prod_barcode) + " (" + barcode + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public final class InvalidProductOrderedException extends Exception {
|
||||||
|
|
||||||
|
public InvalidProductOrderedException() {
|
||||||
|
super(UtilityResources.getString(R.string.invalid_product_ordered));
|
||||||
|
}
|
||||||
|
|
||||||
|
public InvalidProductOrderedException(String product) {
|
||||||
|
super(UtilityResources.getString(R.string.invalid_product_ordered) + " (" + product + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public class MaxQtyExceededException extends Exception {
|
||||||
|
|
||||||
|
public MaxQtyExceededException() {
|
||||||
|
super(UtilityResources.getString(R.string.max_qty_exceeded));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public final class MultipleResultFromBarcodeException extends Exception {
|
||||||
|
|
||||||
|
public MultipleResultFromBarcodeException() {
|
||||||
|
super(UtilityResources.getString(R.string.multiple_results_from_barcode));
|
||||||
|
}
|
||||||
|
|
||||||
|
public MultipleResultFromBarcodeException(String barcode) {
|
||||||
|
super(UtilityResources.getString(R.string.multiple_results_from_barcode) + " (" + barcode + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public class NoOrdersScheduledException extends Exception {
|
||||||
|
|
||||||
|
public NoOrdersScheduledException() {
|
||||||
|
super(UtilityResources.getString(R.string.no_orders_scheduled));
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user