Compare commits
992 Commits
feature-re
...
feature-re
| Author | SHA1 | Date | |
|---|---|---|---|
| db17e8c473 | |||
| c8b1a0ddfd | |||
| 2ab3bb6043 | |||
| 29f6b7d2a4 | |||
| 2be30206ce | |||
| 3306423e0a | |||
| 23a70c266e | |||
| 672a055e55 | |||
| c2f427387b | |||
| 08be0a6ad2 | |||
| 7a9a72f11a | |||
| 68075b89fa | |||
| e9ec1d1a83 | |||
| 9c4f8ff47e | |||
| b0194e569a | |||
| 3339cf1c9d | |||
| d635079e50 | |||
| e7082aef49 | |||
| 09b28cccbe | |||
| a25dc83d30 | |||
| 7d0bc83b67 | |||
| 67756553f3 | |||
| 473c2e05b5 | |||
| 9a35af5b20 | |||
| ba899f3309 | |||
| 612bc1e3de | |||
| 6f198e7d5a | |||
| 19e709fc3d | |||
| fd4636e6a6 | |||
| 6d4a2bf31b | |||
| 43efca4045 | |||
| 3516a8c8de | |||
| db78ca0cc0 | |||
| 5db8172b3c | |||
|
|
e1b85b8879 | ||
| 3f4a8b38eb | |||
| 99047236fc | |||
| 0f3c828c1f | |||
| 5a07e918a4 | |||
| 8ebac5dd33 | |||
| 6d950cee38 | |||
| 2b426103cd | |||
| 876daa7df4 | |||
| cca26eb472 | |||
| ff81f2129b | |||
| 04eb85b190 | |||
| db83ba4a3c | |||
| a1c7f63976 | |||
| e83e7f03c8 | |||
| e4b08b9a61 | |||
| b4f8fa49da | |||
| 5842cf0048 | |||
| d75dd5ead7 | |||
| b6eed691d0 | |||
| 59788d83d7 | |||
| 5fb2be5da0 | |||
| 0760905c4f | |||
| 3f27ec44f8 | |||
| 49626f4371 | |||
| 6e1d889eb8 | |||
| 0cf5dbd24b | |||
| 19d4c6b929 | |||
| a040670c5b | |||
| 69a938d076 | |||
| b9fd701098 | |||
| d39134c47e | |||
| fa0b2e338b | |||
| e2a827f45a | |||
| 0efc991231 | |||
| 965e9ee3b4 | |||
| 59aabd6a43 | |||
| 40f5649a5f | |||
| 45d067673c | |||
| 9634306d01 | |||
| f8b636f23d | |||
| 981f5e4d67 | |||
| d8e24764dc | |||
| 5cd2151f6c | |||
| 449aa664ab | |||
| 91f7269af4 | |||
| 29a8f6efc6 | |||
| be3b57b1c5 | |||
| cd5cfa88bc | |||
| d9bc09e6f3 | |||
| d28e3578e4 | |||
| af6b053215 | |||
| cd3468fd50 | |||
| ac5361b9a8 | |||
| e7b3d65628 | |||
| 164f105878 | |||
| 605ec9a910 | |||
| 8d83789356 | |||
| 623d9d316a | |||
| bba6ae5d9b | |||
| db32ba0e15 | |||
| 02e2e73259 | |||
| 1bc1caa528 | |||
| 1439050345 | |||
| 3637ba0048 | |||
| 7409d15cce | |||
| 563902d29e | |||
| c2994b8767 | |||
| 7a9b1fba4d | |||
| 88743f65c6 | |||
| 61cf7b8601 | |||
| 2663f039a0 | |||
| 0bac28fc98 | |||
| 9f696ec2cd | |||
| 8983748314 | |||
| bcb39b8829 | |||
| 3abf35028f | |||
| 58c7d31fea | |||
| 68db2d9591 | |||
| d6d342ba42 | |||
| 9b7ba6e6f4 | |||
| fc3fcaf80c | |||
| 8a2029f396 | |||
| 3b4d29d1c4 | |||
| 952e1b22f2 | |||
| 75eb189a11 | |||
| 3151755a1f | |||
| 2659bbdc83 | |||
| d60ffea913 | |||
| 0144d6d7ef | |||
| 755132a1b9 | |||
| 0b1292ec55 | |||
| 4b4ba7bc10 | |||
| 8f365e77be | |||
| 7eded8848f | |||
| 42a9756d94 | |||
| 41fbeb333f | |||
| 279257a35d | |||
| 87d377a83c | |||
| 5d7d2cb99f | |||
| 9676b65be3 | |||
| 27f28abb9b | |||
| cbf7ec5cdb | |||
| b3e390a634 | |||
| 2ae58205d8 | |||
| ea025c1f31 | |||
| ee83cd024e | |||
| 36a0a99755 | |||
| 0a03b1d489 | |||
| 9d14673771 | |||
| ee9f4b08ff | |||
| a0f72ee7b1 | |||
| cdc81c58e7 | |||
| 4c4b364177 | |||
| 0a46eda642 | |||
| c633d7c97e | |||
| 53fb1cb58e | |||
| 44e48527c6 | |||
| 74dcedeba9 | |||
| 1faf5dd713 | |||
| 5848f82e4a | |||
| 797c5c7736 | |||
| 59a21796b8 | |||
| b666064d15 | |||
| 8457bfbc75 | |||
| 5541742c0d | |||
| 532aa91b23 | |||
| 6630e42024 | |||
| 50c41e9de2 | |||
| 6aae376098 | |||
| 7ee6e8d64a | |||
| 7f2c83ea69 | |||
| 307840c236 | |||
| 3daf60767f | |||
| 5ba9035238 | |||
| 25321a9941 | |||
| dcbf627840 | |||
| 3e069d1c39 | |||
| 988712b234 | |||
| 123c7835d6 | |||
| d9d2b5bef7 | |||
| a0035ad573 | |||
| 203a36cdba | |||
| 99740104b9 | |||
| 3606aa99d9 | |||
| 673de9d9b1 | |||
| 0bebf87fa4 | |||
| 87cb0f8302 | |||
| 6b80520d8d | |||
| c18551d630 | |||
| 939cfde0c5 | |||
| 4231f7b6ae | |||
| ab956b4a6e | |||
| b7b60491d4 | |||
| 84e46ce609 | |||
| 2831137dac | |||
| f49c622df0 | |||
| f7f8bee8d0 | |||
| dabf6a0a54 | |||
| 41e7c24b91 | |||
| 7a6ddde702 | |||
| 17f4e1ad49 | |||
| 74227e6bf1 | |||
| fc2eee29a6 | |||
| 5a6fa368e4 | |||
| 8cf75f9497 | |||
| 5b40bd4780 | |||
| 9899944a04 | |||
| 58335a5102 | |||
| 3507bc531c | |||
| 07fdd0a5df | |||
| fd4901c294 | |||
| 6e65992b90 | |||
| 64399d4803 | |||
| c6c4f52e93 | |||
| 4bb4a6b34b | |||
| fe0927c0eb | |||
| 0d93dd2b1c | |||
| ab70242ebf | |||
| cf078ced9c | |||
| dad53637e8 | |||
| 853470701b | |||
| b1ee861a5c | |||
| 05857e2b11 | |||
| 60fb37ad8b | |||
| dae03dc91f | |||
| 5c81248472 | |||
| 7184c24f16 | |||
| a2be331295 | |||
| 18403554e7 | |||
| b1e189321c | |||
| e61b2532b1 | |||
| db56575b8f | |||
| 7832095b86 | |||
| 6290c18046 | |||
| 2bd8b6392c | |||
| 442af631aa | |||
| 2666e9a7ef | |||
| 7b3395dec8 | |||
| 7a15a94b38 | |||
| da8884dcdc | |||
| 54a09c2300 | |||
| 8818a42457 | |||
| d4a035fc0e | |||
| 3c5a0ba1f1 | |||
| c49f135e49 | |||
| a4d7d09c0b | |||
| 73b26249eb | |||
| 2581f537b1 | |||
| 8c14cd1937 | |||
| 597c2fe2a2 | |||
| 785b03455e | |||
| c544679f1b | |||
| 95bc10950a | |||
| e7a581f326 | |||
| db85805afd | |||
| 3350677b23 | |||
| 8413be30a0 | |||
| 9033da0bf2 | |||
| a6415486c3 | |||
| 6dfd56c58e | |||
| 98e251478c | |||
| d31a28d3b5 | |||
| fd5867e5f1 | |||
| 13311f191e | |||
| 1f2ace8258 | |||
| 0aaba82e57 | |||
| f68f76e5ea | |||
| 3888c1ce25 | |||
| 954eb96a2a | |||
| 057e3ac3c1 | |||
| 8e934b8a38 | |||
| 3e9793eb76 | |||
| ea6cb1e9d7 | |||
| 49cad4a71a | |||
| 629cf3bf22 | |||
| 9e8b05cecf | |||
| 8b593a3b21 | |||
| 6072ab57c9 | |||
| 120d85c1d3 | |||
| 13e2b1b3a4 | |||
| 6c705ab96b | |||
| 28e0c448f4 | |||
| 0b22aa9764 | |||
| a1b813f051 | |||
| 516874a6e5 | |||
| 5b31befcec | |||
| 19335be66b | |||
| b7c452d41f | |||
| 9ac451693b | |||
| 399f712024 | |||
| db38f84fca | |||
| b3e5c78afb | |||
| fa94de4135 | |||
| 81b01dd5a8 | |||
| 085d6af657 | |||
| 5421cb12d2 | |||
| cd98c3884f | |||
| 92e60c95e3 | |||
| 227025b526 | |||
| 4647125b61 | |||
| 1217922b90 | |||
| 731c28f382 | |||
| 2c5deeceb6 | |||
| 8e727aeb73 | |||
| 273b76715a | |||
| 7aa8c71b3f | |||
| ac235c2b56 | |||
| b78ab2e308 | |||
| a44a307dd1 | |||
| c25d08c9ac | |||
| 695e784c73 | |||
| 0c3415b7d6 | |||
| b412860f1f | |||
| 85f5129057 | |||
| 74bfc38cd5 | |||
| 3ec6deaec6 | |||
| 7bd80d9e52 | |||
| e2113d0660 | |||
| 8199b354d8 | |||
| 4e795f6a0a | |||
| 5f8732299a | |||
| 8babc6acfb | |||
| f193d21ffa | |||
| 6361e790b2 | |||
| 206927622a | |||
| b1ee82f0dc | |||
| 0019f03668 | |||
| d74661153a | |||
| 2529660f3b | |||
| 5c784a3f90 | |||
| d493749445 | |||
| 7e9c36ab77 | |||
| 904f5115b9 | |||
| 4387c4d1c3 | |||
| 9c481c5380 | |||
| 8eda08d060 | |||
|
|
ea493b3fa2 | ||
| a898ef24eb | |||
| e8bd3c0c99 | |||
| ac7bb55874 | |||
| 626a728529 | |||
| a69466f5db | |||
| cdcb1eb0b6 | |||
| 9f9e1ef12d | |||
| c6526f6574 | |||
| a919c323ae | |||
| 00cb459c66 | |||
| e1bee4b70f | |||
| bd706155f6 | |||
| cd81b92bfe | |||
| 4120f20c5a | |||
| d43345c5fc | |||
| c0ad1f0770 | |||
| a2bd7bc9aa | |||
| 02eb94fdef | |||
| c6380a9e05 | |||
| a01025853c | |||
| 08b2cb3289 | |||
| 884c051b18 | |||
| 65009a6693 | |||
| cb0f18eb0b | |||
| 30108563a0 | |||
| bec0430942 | |||
| ed9952d37d | |||
| a656c81373 | |||
| d6c0271129 | |||
| d3ba9aae5f | |||
| 809a31ea87 | |||
| 63cf1920a9 | |||
| 3c79fb6745 | |||
| 4a86118707 | |||
| 9dfd8623a7 | |||
| 7e8b8a8bc4 | |||
| 554a78e40f | |||
| 32022652b3 | |||
| 3560f2a661 | |||
| 63265571ac | |||
| 73049f32eb | |||
| 1e9b48811c | |||
| 2312323649 | |||
| 9c634059ab | |||
| 57892e22ee | |||
| 9d6dd2ff5f | |||
| 2d1d15da98 | |||
| 08af6fddb2 | |||
| 1a97940826 | |||
| b2e6b0bd87 | |||
| c161857422 | |||
| 69343830a9 | |||
| f3644dcc3f | |||
| 20aea0c306 | |||
| 03e6db20b5 | |||
| e53add6f0d | |||
| b8782a14c1 | |||
| 4825d59616 | |||
| e10f2d3a0c | |||
| 18f4f2770a | |||
|
|
fbf26157c1 | ||
| ee2e5c5938 | |||
| 8602bbf09d | |||
| 38ef2b297d | |||
| 452a2d2555 | |||
| d6794a904f | |||
| 18c2ae047e | |||
| 2fc60c34c3 | |||
| 5581055f07 | |||
| fc0ac2ec4b | |||
| b64cd203eb | |||
| e436b9773e | |||
| 37cb5d90f4 | |||
| 15e598df7e | |||
| b2d2bd494a | |||
| b43b6be4ac | |||
| 4036d2a04f | |||
| 58d900cc6b | |||
| 90bc764e61 | |||
| 37fcfba74e | |||
| 9e5bfc6655 | |||
| 295fd59729 | |||
| 8c2cf7d9fe | |||
| efb786ed0d | |||
| cc21e43bd4 | |||
| 5acf3023b7 | |||
| 514500de0b | |||
| 304f0a53db | |||
| 645b269fc8 | |||
| 94ceff0753 | |||
| 7f16ca80f4 | |||
| 14c57d6ab5 | |||
| ce56820405 | |||
| 9d9ce1f3ac | |||
| 4e46f89440 | |||
| fa337ffb16 | |||
| bd3b915963 | |||
| 032a4e3aca | |||
| 3c4d62cde2 | |||
| d1a7a166a8 | |||
| e0a3dbcea2 | |||
| 112f083c9a | |||
| adccf68c45 | |||
| f84a18b9b6 | |||
| d7ef52f164 | |||
| 5a91589ac6 | |||
| 942dbeef5e | |||
| 7d6f11272f | |||
| a18156014b | |||
| c5cbfd406f | |||
| abc2a0bb1e | |||
| f9ab71462f | |||
| 3568b6b17e | |||
| 93261bdb87 | |||
| 202261afc1 | |||
| 75d42d04ee | |||
| f014e4b959 | |||
| 6898cfc92c | |||
| e85b00c457 | |||
| ba1e8bb41c | |||
| 32ad423fc2 | |||
| bd2f7126a9 | |||
| 1661d60b94 | |||
| 438d62a362 | |||
| 0bb2cf76bf | |||
| 987a576bfd | |||
| 91ea98d9f2 | |||
| b64c01e7ce | |||
| be1ee50f32 | |||
| d2955085c5 | |||
| 10ed26c023 | |||
| 98cf6d5192 | |||
| 9007eda560 | |||
| 139fc94ed5 | |||
| 7e0ee7192e | |||
| f68690a01b | |||
| fcdbe8ab94 | |||
| 19568d1394 | |||
| 425b4b544f | |||
| 5dc8949215 | |||
| b51fc95057 | |||
| 1497a55607 | |||
| 0782d0206c | |||
| 6f94a290ee | |||
| 911271a6b1 | |||
| d955609d93 | |||
| eddd9ff8e7 | |||
| 1eface5798 | |||
| dcd3b0aace | |||
| 77a2fef606 | |||
| d54da02dc0 | |||
| 7e4c36a785 | |||
| 1bee7e59ab | |||
| d629f0a21d | |||
| eecadba27d | |||
| ab764a9a50 | |||
| 6027df9ee5 | |||
| 3bc9e6629b | |||
| f10e90bc9b | |||
| 997c667f1b | |||
| 6efa6e7293 | |||
| 7d831c59e7 | |||
| eaf8e4779e | |||
| 84669f3929 | |||
| 9b3184281c | |||
| 32229f7157 | |||
| 7dff05df5c | |||
| b88a5bface | |||
| 7b09900a1f | |||
| 48b87b7b48 | |||
| bc512ab8f2 | |||
| 71cb4d0d88 | |||
| b73d2e9bac | |||
| bc18dc3231 | |||
| d660bb592b | |||
| a5478ef619 | |||
| c8034042aa | |||
| bff520b2ab | |||
| 71eeba9091 | |||
| f30284a30b | |||
| 0f42d5a2ba | |||
| 8932e3ac98 | |||
| ebf9af7b8b | |||
| 9476e99476 | |||
| a338077542 | |||
| db9a613fc9 | |||
| 0d4882b818 | |||
| 856b759acc | |||
| c6271341b8 | |||
| b68a7aebd4 | |||
| c682331a22 | |||
| af6bc8ebe9 | |||
| cbbc0739c6 | |||
| 685fa64f46 | |||
| e12f00984d | |||
| 5dc20c4e3f | |||
| 1456749587 | |||
| dac957e5b0 | |||
| f8fd7820bc | |||
| db35c3d914 | |||
| fde32f2314 | |||
| dee4485a89 | |||
| ef58f2e65c | |||
| d5763c1d03 | |||
| 26d83ddabf | |||
| d0369d85c5 | |||
| 4a61a4b60c | |||
| dbba2e3fb3 | |||
| 6248e0da07 | |||
| c9fac89d16 | |||
| 11431e37c9 | |||
| 827fc6836c | |||
| 262d6d0f08 | |||
| ea5c880b0a | |||
| 182bd07d6c | |||
| 66a514468f | |||
| ff41b7e0dd | |||
| de6e0865ac | |||
| 6b8a2fb4c0 | |||
| 86e0750f03 | |||
| d0bb5e9342 | |||
| 9712d81a7d | |||
| cea2af9237 | |||
| 6734cfdde2 | |||
| 8f6ce309a2 | |||
| d551f029a8 | |||
| 87204b30bd | |||
| 28faad2491 | |||
| 839942ea40 | |||
| d24f5387dc | |||
| 521cc48e56 | |||
| 44a9d7dbd2 | |||
| 74d3dc0a67 | |||
| acc35b8cc8 | |||
| b9b756a811 | |||
| b82a3dd227 | |||
| c1e979391d | |||
| 5fd28fddd1 | |||
| 8a1ef5c6cf | |||
| da57dfed5b | |||
| d60b57ff02 | |||
| 9c85f5da3c | |||
| 8357a33df8 | |||
| 7a150516b4 | |||
| ddf518d11a | |||
| cf69cccbce | |||
| 68c220b8a8 | |||
| 1b05d58049 | |||
| 925e08ffc7 | |||
| ca9843f71a | |||
| 90f86858e9 | |||
| 6c1652e955 | |||
| af364d4220 | |||
| b97bd848a8 | |||
| 4dedea79cf | |||
| 29963759f2 | |||
| 70c1723c5d | |||
| 41b95b9dcb | |||
| c0b67577a7 | |||
| 82a74cbf1c | |||
| 56fbc96d9a | |||
| 7d629b5753 | |||
| 56d7876eb5 | |||
| af0f1e14b0 | |||
| 20c6adc41f | |||
| cfe0ae52e8 | |||
| 49cbc45ac0 | |||
| 8672c7df11 | |||
| 6177a4b3c4 | |||
| 50c57d1977 | |||
| 1d16e2cc13 | |||
| 79355eab19 | |||
| d4f2032aa7 | |||
| d1a1aad1d8 | |||
| d94f0f1a7e | |||
| 7507ab834c | |||
| a2c007119b | |||
| 7e421762d7 | |||
| 2abf8b55ac | |||
| a24e26b436 | |||
| 1008229297 | |||
| cf492ee2a0 | |||
| dac93e9e30 | |||
| aaac5bebb7 | |||
| 46002e7580 | |||
| 5982c8e966 | |||
| 6889372e40 | |||
| 158ccaa3ce | |||
| a0014d5ccd | |||
| 44091910ff | |||
| b25dff5d48 | |||
| 163613f836 | |||
| 82972a537e | |||
| 5d77838838 | |||
| b163c74771 | |||
| 9006da1383 | |||
| 026f89d031 | |||
| 8068110cf3 | |||
| 78f91d2cfe | |||
| b39f07414b | |||
| e3be231990 | |||
| 3ee2272886 | |||
| 6c58a19495 | |||
| 2d11f53330 | |||
| ad7274fdbf | |||
| fd2f4772ce | |||
| 2f649932b6 | |||
| 198e1d284b | |||
| 5041244f63 | |||
| 592c4f4b9a | |||
| cb7a45d83e | |||
| 6c95492412 | |||
| 1dd6d8b3fa | |||
| e026f9a0ea | |||
| 17c5b96c98 | |||
| eddad11630 | |||
| 0f65aaffab | |||
| 8723751f78 | |||
| 67c1a8fba5 | |||
| 24db8fbcec | |||
| c687831f4f | |||
| b878529840 | |||
| c4e8985642 | |||
| e6ee9c7090 | |||
| ab9672cae3 | |||
| 3dc3aea47b | |||
| c8fdf2634d | |||
| 295afc7acc | |||
| 450848b080 | |||
| d154ee9852 | |||
| ff2420c551 | |||
| 096650b4f6 | |||
| b5a2d999e6 | |||
| 92bc126e24 | |||
| 966f73aef3 | |||
| d048ea1f9c | |||
| 77ff799dba | |||
| 4804ec24c1 | |||
| b1c3935457 | |||
| 6301305b1a | |||
| 5d0b300e2a | |||
| eac86126c2 | |||
| a3552e0926 | |||
| 6f2d485de7 | |||
| 9f46505136 | |||
| 3bd6521967 | |||
| e189aa4f6c | |||
| e318d8625b | |||
| 4d2fbf610d | |||
| 0f91128b8e | |||
| d5eb4c62f6 | |||
| 3ec8d6d0e1 | |||
| 360fa9e59f | |||
| a3df8d0822 | |||
| b902879a26 | |||
|
|
e570b32e05 | ||
| c2612e40b4 | |||
| c9ee41a1b1 | |||
| cc8b20d065 | |||
| 6cade2576e | |||
| a64e219632 | |||
| 3884a6736f | |||
| 03664cd9a5 | |||
| ee48302a0b | |||
| 9d724911ad | |||
| 3fcd649cce | |||
| 3a05e2c10d | |||
| e02fe6c36c | |||
| eaf10604ef | |||
| 26ca33258c | |||
| 4a0382cafc | |||
| 450252ff24 | |||
| f399b1a4cf | |||
| aaed6e7e0a | |||
| 9ef98b50e3 | |||
| 52b712ce32 | |||
| cd00a16aa3 | |||
| 80429f1700 | |||
| 73d80ef2bc | |||
| 36a66ee50d | |||
| 4a954c5870 | |||
| 9e4f099515 | |||
| bb21bc678e | |||
| 8e3a4afb5b | |||
| 55975c45c9 | |||
| 52adf80a2e | |||
| bc349742ef | |||
| 9fdc1f6b0e | |||
| 5cfff0e143 | |||
| bfce428f2c | |||
| 1e8745fc31 | |||
| 39ffb2ea49 | |||
| 69cb18762a | |||
| 1ba5e25eba | |||
| fe6343f4e4 | |||
| 772242fcae | |||
| 777c3e7aac | |||
| e799d0e577 | |||
| c3e8ccf0c2 | |||
| ce198e1da9 | |||
| 17b821157e | |||
| 32c7424c89 | |||
| df4e76f05e | |||
| cce5fa85d3 | |||
| f13b021fcd | |||
| 49499c1b91 | |||
| ea62524763 | |||
| 0b0942b995 | |||
| b530ec1821 | |||
| bc502cbf74 | |||
| 811b686f17 | |||
| 4fd2d5494e | |||
| f857b2ed95 | |||
| 3a64d116e6 | |||
| b44f2bb2f9 | |||
| 39d63497bb | |||
| b2250bf3cf | |||
| 54517ba92e | |||
| 3ae1d3cefe | |||
| a3eade290e | |||
| d6ac2f00b6 | |||
| 63727411c4 | |||
| 4100c9cc03 | |||
| f58282e73b | |||
| 566f748fb3 | |||
| 4630a53881 | |||
| 6fca8f90e6 | |||
| 9700db0dbc | |||
| 1fb09d1a41 | |||
| da8bc54f90 | |||
| 4b823e3b82 | |||
| 726aa7f080 | |||
| 14062da824 | |||
| 4bdf4ab779 | |||
| d454b4b8b1 | |||
| b4e22ca7a4 | |||
| e7abca0cc0 | |||
| 6ad433488e | |||
| 255de9a955 | |||
| 622c4c903c | |||
| 1c63622538 | |||
| 55f05f0541 | |||
| 192a45786d | |||
| 79f3105797 | |||
| 70e5dad7c1 | |||
| 63b46cd93f | |||
| 7872a82cc1 | |||
| 05ea13b155 | |||
| bcc00e39da | |||
| 5d3a79827c | |||
| e51fa4fa6b | |||
| 6f04ea323c | |||
| eb7c41841b | |||
| bbfcbeb906 | |||
| 36c0e3c9d1 | |||
| febe8be89e | |||
| e3f2eab10b | |||
| b81c7febbe | |||
| 97c7ac188c | |||
| 4d7a856ffb | |||
| 94add3ecde | |||
| 89ba0a60bf | |||
| 3ad15c8457 | |||
| be1480e2f0 | |||
| 5e4ec2c630 | |||
| 1a76055a09 | |||
| 2b4e97d90d | |||
| dfae26c49e | |||
| d78010662a | |||
| 79df2c503f | |||
| a42736bf91 | |||
| e53bd108ba | |||
| e9f47d4651 | |||
| 951f220626 | |||
| 3106ce46d9 | |||
| f8f22ee3b3 | |||
| 79576c06f7 | |||
| 7058231691 | |||
| 6f876edfa8 | |||
| 6b2ca47a8a | |||
| 92f5f7b290 | |||
| 3ae1d499c2 | |||
| b10c6e837c | |||
| 1d07f15169 | |||
| a6103e037d | |||
| b6299d6dd1 | |||
| 9f76fcfc72 | |||
| 08b5d93be3 | |||
| 77a1a965ca | |||
| a4d78c740d | |||
| 65fb43f87a | |||
| 9f27301e8b | |||
| ce583d2500 | |||
| 8c4430d68a | |||
| 18e69f0195 | |||
| 65c26a1f91 | |||
| 653f3a023a | |||
| 3c241ea168 | |||
| 3f4735f953 | |||
| edcd6ecf6b | |||
| 4f88d08a39 | |||
| 1bcffcc36a | |||
| 6eeb10868d | |||
| 4b1af00c23 | |||
| fd4d79c3be | |||
| 4d4ca3917f | |||
| f5f86985c9 | |||
| b2ac734b5e | |||
| e2f5b5b0a1 | |||
| 00405d67bb | |||
| b3475b9fcb | |||
| 6fc946d817 | |||
| 7893e6d808 | |||
| a205f222b0 | |||
| e99bf3403b | |||
| 124a4fe04c | |||
| 3a18dd2c71 | |||
| 6e7167f0f2 | |||
| 2188fa86a5 | |||
| 481e8e35cc | |||
| e41883bd73 | |||
| eddaadc3ba | |||
| 7c08f0ed48 | |||
| 77c8896de5 | |||
| b078028c24 | |||
| b40e26fc5e | |||
| 5a2f5328b4 | |||
| 33dc3129b3 | |||
| 725b93be81 | |||
| 0dc6e9555f | |||
| 6df7c809a2 | |||
| 8c451e3996 | |||
| 468a453b94 | |||
| 6f52677301 | |||
| 63a891d061 | |||
| 15b80239d1 | |||
| 044540ff10 | |||
| 90f3a636db | |||
| 592d8726d2 | |||
| 048c639e72 | |||
| 1111093b38 | |||
| 87461ce43a | |||
| 247ecb69a3 | |||
| b414942de9 | |||
| 5b1b5c5cde | |||
| b9a53ec7a2 | |||
| f1f779b436 | |||
| 06e9bb1c51 | |||
| 833d87f08d | |||
| 7eac47b3b7 | |||
| 3627c38df6 | |||
| e5c64dc0fd | |||
| 8abb7c2842 | |||
| 4ca6e3e5e9 | |||
| ab0b17470e | |||
| 70e8857031 | |||
| db2b8214a4 | |||
| bfd102a4a2 | |||
| 55e55bd64a | |||
| 7de563abf3 | |||
| 12154ed089 | |||
| 59780fef0c | |||
| aea6d9dc68 | |||
| 1454144502 | |||
| 98e518e295 | |||
| ac997e5e52 | |||
| 2831f675f2 | |||
| 214c6f6bf1 | |||
| 498ce2880e | |||
| b828e5bfae | |||
| 2d109a57e6 | |||
| 637fdca7ed | |||
| 8778aecbeb | |||
| 724bc750cf | |||
| 4c78c0cf37 | |||
| c8c476f98c | |||
| 0c3cf9095f | |||
| c9b98963ae | |||
| 945aeab210 | |||
| 956acd02ad | |||
| ff84144dbf | |||
| cfc60bb78d | |||
| 371ba4848c | |||
| 1963825bf5 | |||
| 7421ebeea9 | |||
| f90688e969 | |||
| edff5ae3ec | |||
| d8ede199ed | |||
| c76417b917 | |||
| 332b4fddd8 | |||
| 5fdd9d447a | |||
| a21c13f798 | |||
| 94f21f78a8 | |||
| fa2bca9c99 | |||
| 77549064f1 | |||
| 565cbc9f30 | |||
| febd5d7e7f | |||
| 05a092a664 | |||
| 934463a2a4 | |||
| 057d7961f2 | |||
| c62112e9d6 | |||
| 36b2d99f5a | |||
| b828a31544 | |||
| 8ead6d9fdb | |||
| 4656fbb61b | |||
| 08215fab9d | |||
| 7e9e207b66 | |||
| 47755e2c56 | |||
| 33582c62d4 | |||
| 46ef9bd59e | |||
| 73aed3e9d6 | |||
| 1ae0ee3567 | |||
| 25d549f681 | |||
| 5cbede1c68 | |||
| 5feea9ced0 | |||
| c77f212ca1 | |||
| 7dcdb85ee0 | |||
| 49f6664874 | |||
| 402ddc0009 | |||
| aff3eaa959 | |||
| 61de052e30 | |||
| e838df2876 | |||
| 4f65d93a65 | |||
| 1f3517a10b | |||
| 03fe0c7279 | |||
| 49b4fca63c | |||
| 3df0a0058d | |||
| 096c25955c | |||
| 6f3d8a7ef5 | |||
| 8448a8798d | |||
| 36c425941a | |||
| 36acbe175a | |||
| f08b5fe07e | |||
| 54804ec4d6 | |||
| 269d0d4aff | |||
| 5fa3dc538f | |||
| f24ebd5cbc | |||
| 48070baf25 | |||
| d266c8c9e1 | |||
| 280474d038 | |||
| 518263d955 | |||
| 0f298bcd05 | |||
| 6c15210a22 | |||
| 8eddffdc7c | |||
| 0187c33730 | |||
| acb33cad0f | |||
| 17fca32238 | |||
| c8200f3690 | |||
| 08ff9e1940 | |||
| 8997e8187e | |||
| 0729d1c0b6 | |||
| a15bf9957a | |||
| 9c48a57743 | |||
| 7a97a55df1 | |||
| ab7aa9e0bf | |||
| a6a9a3cbd8 | |||
| 5e145dd854 | |||
| d94bd75770 | |||
| 32c38b85aa | |||
| c7a96834a2 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -122,3 +122,5 @@ fabric.properties
|
|||||||
/temp
|
/temp
|
||||||
/docker/tomcat/conf/integry/logs.db
|
/docker/tomcat/conf/integry/logs.db
|
||||||
/docker/tomcat/conf/integry/logs.db-journal
|
/docker/tomcat/conf/integry/logs.db-journal
|
||||||
|
copilot.*.xml
|
||||||
|
/.idea/dataSources.xml
|
||||||
|
|||||||
6
.idea/copilot.data.migration.edit.xml
generated
Normal file
6
.idea/copilot.data.migration.edit.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="EditMigrationStateService">
|
||||||
|
<option name="migrationStatus" value="COMPLETED" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="Tomcat 9 (RistoCash)" type="Remote">
|
<configuration default="false" name="Tomcat 9 (AnydeskTunnel)" type="Remote">
|
||||||
<module name="ems-engine" />
|
<module name="ems-engine" />
|
||||||
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
||||||
<option name="SERVER_MODE" value="false" />
|
<option name="SERVER_MODE" value="false" />
|
||||||
<option name="SHMEM_ADDRESS" />
|
<option name="SHMEM_ADDRESS" />
|
||||||
<option name="HOST" value="127.0.0.1" />
|
<option name="HOST" value="localhost" />
|
||||||
<option name="PORT" value="8001" />
|
<option name="PORT" value="8001" />
|
||||||
<option name="AUTO_RESTART" value="false" />
|
<option name="AUTO_RESTART" value="false" />
|
||||||
<RunnerSettings RunnerId="Debug">
|
<RunnerSettings RunnerId="Debug">
|
||||||
16
.idea/runConfigurations/Tomcat__AnydeskTunnel_.xml
generated
16
.idea/runConfigurations/Tomcat__AnydeskTunnel_.xml
generated
@@ -1,16 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="Tomcat (AnydeskTunnel)" type="Remote">
|
|
||||||
<module name="ems-engine" />
|
|
||||||
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
|
||||||
<option name="SERVER_MODE" value="false" />
|
|
||||||
<option name="SHMEM_ADDRESS" />
|
|
||||||
<option name="HOST" value="servertomcat" />
|
|
||||||
<option name="PORT" value="8001" />
|
|
||||||
<option name="AUTO_RESTART" value="false" />
|
|
||||||
<RunnerSettings RunnerId="Debug">
|
|
||||||
<option name="DEBUG_PORT" value="8001" />
|
|
||||||
<option name="LOCAL" value="false" />
|
|
||||||
</RunnerSettings>
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
||||||
6
.idea/sqldialects.xml
generated
Normal file
6
.idea/sqldialects.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="SqlDialectMappings">
|
||||||
|
<file url="file://$PROJECT_DIR$/ems-engine/src/main/java/it/integry/ems/document/farm_mes/service/FarmMesImportService.java" dialect="GenericSQL" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
18
Containerfile
Normal file
18
Containerfile
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
FROM tomcat:9-jre8-alpine
|
||||||
|
|
||||||
|
RUN apk add --no-cache fontconfig ttf-dejavu
|
||||||
|
|
||||||
|
ENV TZ="Europe/Rome"
|
||||||
|
ENV JAVA_OPTS="-DDISABLE_DROOLS_COMPILE=TRUE -Xms512M -Xmx1G -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
|
||||||
|
ENV USERDOMAIN="STUDIO-ML"
|
||||||
|
|
||||||
|
COPY docker/tomcat/conf/integry/ems.properties /usr/local/tomcat/conf/integry/
|
||||||
|
COPY docker/tomcat/conf/integry/ems_automated_operations.json /usr/local/tomcat/conf/integry/
|
||||||
|
COPY docker/tomcat/conf/integry/ems_settings.json /usr/local/tomcat/conf/integry/
|
||||||
|
COPY ems-engine/target/ems-api.war /usr/local/tomcat/webapps/
|
||||||
|
|
||||||
|
#COPY docker/FontTest.class .
|
||||||
|
#ENTRYPOINT ["java","FontTest"]
|
||||||
|
|
||||||
|
EXPOSE 8080
|
||||||
|
EXPOSE 5005
|
||||||
@@ -42,7 +42,7 @@ pipeline {
|
|||||||
bat(script: 'mvn clean install -t toolchains-jenkins.xml', returnStdout: true)
|
bat(script: 'mvn clean install -t toolchains-jenkins.xml', returnStdout: true)
|
||||||
archiveArtifacts(artifacts: 'ems-engine/target/ems-api.war', onlyIfSuccessful: true)
|
archiveArtifacts(artifacts: 'ems-engine/target/ems-api.war', onlyIfSuccessful: true)
|
||||||
}
|
}
|
||||||
stash includes: 'ems-engine/target/ems-api.war,docker/**,Dockerfile', name: 'docker-files'
|
stash includes: 'ems-engine/target/ems-api.war,docker/**,Containerfile', name: 'container-files'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,7 +118,7 @@ sleep 10''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaul
|
|||||||
steps {
|
steps {
|
||||||
node('server-build') {
|
node('server-build') {
|
||||||
echo "Building Docker image"
|
echo "Building Docker image"
|
||||||
unstash 'docker-files'
|
unstash 'container-files'
|
||||||
|
|
||||||
script {
|
script {
|
||||||
def branchVersion = ""
|
def branchVersion = ""
|
||||||
@@ -127,7 +127,9 @@ sleep 10''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaul
|
|||||||
branchVersion = "-${env.GIT_BRANCH.toLowerCase().replace('/', '-')}"
|
branchVersion = "-${env.GIT_BRANCH.toLowerCase().replace('/', '-')}"
|
||||||
}
|
}
|
||||||
|
|
||||||
bat "docker buildx build --platform linux/amd64,linux/arm64 --push -t \"git.studioml.it/integry/ems-api${branchVersion}:latest\" ."
|
// bat "docker buildx build --platform linux/amd64,linux/arm64 --push -t \"git.studioml.it/integry/ems-api${branchVersion}:latest\" ."
|
||||||
|
bat "podman build -f .\\Containerfile -t \"git.studioml.it/integry/ems-api${branchVersion}:latest\" ."
|
||||||
|
bat "podman push \"git.studioml.it/integry/ems-api${branchVersion}:latest\""
|
||||||
|
|
||||||
//containerImageLink "git.studioml.it/integry/ems-api-${env.GIT_BRANCH.toLowerCase().replace('/', '-')}:latest}"
|
//containerImageLink "git.studioml.it/integry/ems-api-${env.GIT_BRANCH.toLowerCase().replace('/', '-')}:latest}"
|
||||||
}
|
}
|
||||||
@@ -186,14 +188,14 @@ sleep 10''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaul
|
|||||||
success {
|
success {
|
||||||
script {
|
script {
|
||||||
if (env.GIT_BRANCH == "master" || env.GIT_BRANCH == "develop") {
|
if (env.GIT_BRANCH == "master" || env.GIT_BRANCH == "develop") {
|
||||||
office365ConnectorSend adaptiveCards: true, color: '#008000', message: 'EMS-API ` stato compilato con successo', status: 'SUCCESS', webhookUrl: 'https://prod-197.westeurope.logic.azure.com:443/workflows/69a7b8ee3c284175bd6da7127c7eb3cf/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=_-eMfvsQGkIidHWzzlhGFgiZG28ujHZ41QqzuqD9YGw'
|
office365ConnectorSend adaptiveCards: true, color: '#008000', message: 'EMS-API è stato compilato con successo', status: 'SUCCESS', webhookUrl: 'https://prod-197.westeurope.logic.azure.com:443/workflows/69a7b8ee3c284175bd6da7127c7eb3cf/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=_-eMfvsQGkIidHWzzlhGFgiZG28ujHZ41QqzuqD9YGw'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unstable {
|
unstable {
|
||||||
script {
|
script {
|
||||||
if (env.GIT_BRANCH == "master" || env.GIT_BRANCH == "develop") {
|
if (env.GIT_BRANCH == "master" || env.GIT_BRANCH == "develop") {
|
||||||
office365ConnectorSend adaptiveCards: true, color: '#FFDE21', message: 'EMS-API ` INSTABILE', status: 'UNSTABLE', webhookUrl: 'https://prod-197.westeurope.logic.azure.com:443/workflows/69a7b8ee3c284175bd6da7127c7eb3cf/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=_-eMfvsQGkIidHWzzlhGFgiZG28ujHZ41QqzuqD9YGw'
|
office365ConnectorSend adaptiveCards: true, color: '#FFDE21', message: 'EMS-API è INSTABILE', status: 'UNSTABLE', webhookUrl: 'https://prod-197.westeurope.logic.azure.com:443/workflows/69a7b8ee3c284175bd6da7127c7eb3cf/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=_-eMfvsQGkIidHWzzlhGFgiZG28ujHZ41QqzuqD9YGw'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -692,7 +692,7 @@
|
|||||||
}, {
|
}, {
|
||||||
"profileName" : "BIOLEVANTE",
|
"profileName" : "BIOLEVANTE",
|
||||||
"connectionType" : "MSSQL",
|
"connectionType" : "MSSQL",
|
||||||
"dbName" : "biolevante_peppe",
|
"dbName": "biolevante",
|
||||||
"username" : "SA",
|
"username" : "SA",
|
||||||
"password" : "sZ",
|
"password" : "sZ",
|
||||||
"host" : "192.168.2.220",
|
"host" : "192.168.2.220",
|
||||||
|
|||||||
@@ -363,6 +363,11 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.fasterxml.jackson.core</groupId>
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
<artifactId>jackson-annotations</artifactId>
|
<artifactId>jackson-annotations</artifactId>
|
||||||
|
<version>2.20</version> <!-- Versione scritta a mano perché qui non hanno usato lo 0 finale -->
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||||
|
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||||
<version>${jackson.version}</version>
|
<version>${jackson.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import it.integry.WooCommerce.dto.product.variation.WooCommerceProductVariationD
|
|||||||
import it.integry.WooCommerce.enums.ArticoloException;
|
import it.integry.WooCommerce.enums.ArticoloException;
|
||||||
import it.integry.WooCommerce.enums.StockStatus;
|
import it.integry.WooCommerce.enums.StockStatus;
|
||||||
import it.integry.WooCommerce.enums.SyncOrigin;
|
import it.integry.WooCommerce.enums.SyncOrigin;
|
||||||
|
import it.integry.common.var.CommonConstants;
|
||||||
import it.integry.ems.Import.dto.AnomalieDTO;
|
import it.integry.ems.Import.dto.AnomalieDTO;
|
||||||
import it.integry.ems.service.EntityProcessor;
|
import it.integry.ems.service.EntityProcessor;
|
||||||
import it.integry.ems.service.MailService;
|
import it.integry.ems.service.MailService;
|
||||||
@@ -29,7 +30,6 @@ import it.integry.ems_model.entity.WdtbOrds;
|
|||||||
import it.integry.ems_model.entity.WdtbOrdt;
|
import it.integry.ems_model.entity.WdtbOrdt;
|
||||||
import it.integry.ems_model.service.SetupGest;
|
import it.integry.ems_model.service.SetupGest;
|
||||||
import it.integry.ems_model.types.OperationType;
|
import it.integry.ems_model.types.OperationType;
|
||||||
import it.integry.ems_model.utility.UtilityDate;
|
|
||||||
import it.integry.ems_model.utility.UtilityStream;
|
import it.integry.ems_model.utility.UtilityStream;
|
||||||
import it.integry.ems_model.utility.UtilityString;
|
import it.integry.ems_model.utility.UtilityString;
|
||||||
import org.apache.commons.text.StringEscapeUtils;
|
import org.apache.commons.text.StringEscapeUtils;
|
||||||
@@ -41,7 +41,7 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.text.SimpleDateFormat;
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -445,7 +445,8 @@ public class WooCommerceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//CHIAVE ORDINE
|
//CHIAVE ORDINE
|
||||||
Date dataOrd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(orderDTO.getDateCreated());
|
LocalDate dataOrd = UtilityString.parseLocalDateTime(orderDTO.getDateCreated(), "yyyy-MM-dd'T'HH:mm:ss")
|
||||||
|
.toLocalDate();
|
||||||
|
|
||||||
ordineWeb
|
ordineWeb
|
||||||
.setGestione("V")
|
.setGestione("V")
|
||||||
@@ -453,7 +454,7 @@ public class WooCommerceService {
|
|||||||
.setNumOrd(Integer.parseInt(orderDTO.getNumber()))
|
.setNumOrd(Integer.parseInt(orderDTO.getNumber()))
|
||||||
//CHIAVE RIFERIMENTO ORDINE WOOCOMMERCE
|
//CHIAVE RIFERIMENTO ORDINE WOOCOMMERCE
|
||||||
.setSerie(dataManager.getSetup("SERIE"))
|
.setSerie(dataManager.getSetup("SERIE"))
|
||||||
.setRifOrd(UtilityString.left("RIF N." + orderDTO.getNumber() + " DEL " + UtilityDate.formatDate(dataOrd, "dd-MM-yy") + " " + orderDTO.getOrderKey(), 40))
|
.setRifOrd(UtilityString.left("RIF N." + orderDTO.getNumber() + " DEL " + CommonConstants.DATE_DMY_DASHED_FORMATTER.format(dataOrd) + " " + orderDTO.getOrderKey(), 40))
|
||||||
.setDataOrdRif(dataOrd)
|
.setDataOrdRif(dataOrd)
|
||||||
.setNumOrdRif(Integer.parseInt(orderDTO.getNumber()))
|
.setNumOrdRif(Integer.parseInt(orderDTO.getNumber()))
|
||||||
.setListino(dataManager.getSetup("LISTINO"));
|
.setListino(dataManager.getSetup("LISTINO"));
|
||||||
@@ -768,7 +769,7 @@ public class WooCommerceService {
|
|||||||
|
|
||||||
private void sendErrorMail(String errorMsg, String service, byte[] content, String filename, List<AnomalieDTO> anomalie) {
|
private void sendErrorMail(String errorMsg, String service, byte[] content, String filename, List<AnomalieDTO> anomalie) {
|
||||||
try {
|
try {
|
||||||
mailService.sendErrorMailByGestNameSection(multiDBTransactionManager, service, "WOOCOMMERCE", "Errore WooCommerce",
|
mailService.sendErrorMailByGestNameSection(multiDBTransactionManager.getPrimaryConnection(), service, "WOOCOMMERCE", "Errore WooCommerce",
|
||||||
null, content, filename, anomalie);
|
null, content, filename, anomalie);
|
||||||
} catch (Exception exception) {
|
} catch (Exception exception) {
|
||||||
logger.error(service, exception);
|
logger.error(service, exception);
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.annotations;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import org.springframework.stereotype.Indexed;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
@Target({ElementType.TYPE})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
@Indexed
|
||||||
|
public @interface CustomerComponent {
|
||||||
|
IntegryCustomer value();
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package it.integry.annotations;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import org.springframework.core.annotation.AliasFor;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
@Target({ElementType.TYPE})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
@CustomerComponent(IntegryCustomer.Integry) // Valore di default, verrà sovrascritto
|
||||||
|
public @interface CustomerService {
|
||||||
|
@AliasFor(
|
||||||
|
annotation = CustomerComponent.class
|
||||||
|
)
|
||||||
|
IntegryCustomer value();
|
||||||
|
}
|
||||||
@@ -20,16 +20,17 @@ public class CommonConstants {
|
|||||||
public static final String TIMESTAMP = "timestamp";
|
public static final String TIMESTAMP = "timestamp";
|
||||||
|
|
||||||
|
|
||||||
public static final String DATE_FORMAT_YMD = "yyyy-MM-dd";
|
public static final String DATE_FORMAT_YMD_SLASHED = "yyyy/MM/dd";
|
||||||
public static final String DATE_FORMAT_DMY = "dd/MM/yyyy";
|
public static final String DATE_FORMAT_YMD_DASHED = "yyyy-MM-dd";
|
||||||
|
public static final String DATE_FORMAT_DMY_SLASHED = "dd/MM/yyyy";
|
||||||
public static final String DATE_FORMAT_DMY_DASHED = "dd-MM-yyyy";
|
public static final String DATE_FORMAT_DMY_DASHED = "dd-MM-yyyy";
|
||||||
public static final String DATE_FORMAT_DMYHMS_UNSPACED = "ddMMyyyyHHmmss";
|
public static final String DATE_FORMAT_DMYHMS_UNSPACED = "ddMMyyyyHHmmss";
|
||||||
|
|
||||||
public static final String TIME_FORMAT = "HH:mm:ss";
|
public static final String TIME_FORMAT = "HH:mm:ss";
|
||||||
|
|
||||||
public static final String DATETIME_FORMAT_YMD = String.format("%s %s", DATE_FORMAT_YMD, TIME_FORMAT);
|
public static final String DATETIME_FORMAT_YMD = String.format("%s %s", DATE_FORMAT_YMD_DASHED, TIME_FORMAT);
|
||||||
public static final String DATETIME_FORMAT_DMY = String.format("%s %s", DATE_FORMAT_DMY_DASHED, TIME_FORMAT);
|
public static final String DATETIME_FORMAT_DMY = String.format("%s %s", DATE_FORMAT_DMY_DASHED, TIME_FORMAT);
|
||||||
public static final String DATETIME_FORMAT_DMY_SLASHED = String.format("%s %s", DATE_FORMAT_DMY, TIME_FORMAT);
|
public static final String DATETIME_FORMAT_DMY_SLASHED = String.format("%s %s", DATE_FORMAT_DMY_SLASHED, TIME_FORMAT);
|
||||||
public static final String DATETIME_FORMAT_DMY_DASHED = String.format("%s %s", DATE_FORMAT_DMY_DASHED, TIME_FORMAT);
|
public static final String DATETIME_FORMAT_DMY_DASHED = String.format("%s %s", DATE_FORMAT_DMY_DASHED, TIME_FORMAT);
|
||||||
|
|
||||||
|
|
||||||
@@ -46,12 +47,17 @@ public class CommonConstants {
|
|||||||
.withZone(ZoneId.systemDefault());
|
.withZone(ZoneId.systemDefault());
|
||||||
|
|
||||||
|
|
||||||
public static final DateTimeFormatter DATE_YMD_DASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_YMD)
|
public static final DateTimeFormatter DATE_YMD_SLASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_YMD_SLASHED)
|
||||||
|
.withZone(ZoneId.systemDefault());
|
||||||
|
public static final DateTimeFormatter DATE_YMD_DASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_YMD_DASHED)
|
||||||
.withZone(ZoneId.systemDefault());
|
.withZone(ZoneId.systemDefault());
|
||||||
public static final DateTimeFormatter DATETIME_YMD_DASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATETIME_FORMAT_YMD)
|
public static final DateTimeFormatter DATETIME_YMD_DASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATETIME_FORMAT_YMD)
|
||||||
.withZone(ZoneId.systemDefault());
|
.withZone(ZoneId.systemDefault());
|
||||||
|
|
||||||
public static final DateTimeFormatter DATE_DMY_SLASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_DMY)
|
|
||||||
|
public static final DateTimeFormatter DATE_DMY_SLASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_DMY_SLASHED)
|
||||||
|
.withZone(ZoneId.systemDefault());
|
||||||
|
public static final DateTimeFormatter DATE_DMY_DASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_DMY_DASHED)
|
||||||
.withZone(ZoneId.systemDefault());
|
.withZone(ZoneId.systemDefault());
|
||||||
public static final DateTimeFormatter DATETIME_DMY_SLASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATETIME_FORMAT_DMY_SLASHED)
|
public static final DateTimeFormatter DATETIME_DMY_SLASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATETIME_FORMAT_DMY_SLASHED)
|
||||||
.withZone(ZoneId.systemDefault());
|
.withZone(ZoneId.systemDefault());
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||||||
import com.fasterxml.jackson.databind.module.SimpleModule;
|
import com.fasterxml.jackson.databind.module.SimpleModule;
|
||||||
import it.integry.ems.Import.dto.AnomalieDTO;
|
import it.integry.ems.Import.dto.AnomalieDTO;
|
||||||
import it.integry.ems.Import.dto.ImportRequestDTO;
|
import it.integry.ems.Import.dto.ImportRequestDTO;
|
||||||
|
import it.integry.ems.javabeans.RequestDataDTO;
|
||||||
import it.integry.ems.json.JsonObjectMapperConfig;
|
import it.integry.ems.json.JsonObjectMapperConfig;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
import it.integry.ems_model.base.EntityBase;
|
import it.integry.ems_model.base.EntityBase;
|
||||||
@@ -24,6 +25,7 @@ public abstract class BaseEntityImporter<T> implements IEntityImporter<T> {
|
|||||||
protected String format;
|
protected String format;
|
||||||
protected boolean headless;
|
protected boolean headless;
|
||||||
protected ImportRequestDTO requestDto;
|
protected ImportRequestDTO requestDto;
|
||||||
|
protected RequestDataDTO requestDataDTO;
|
||||||
protected MultiDBTransactionManager multiDBTransactionManager;
|
protected MultiDBTransactionManager multiDBTransactionManager;
|
||||||
protected List<AnomalieDTO> anomalie = new ArrayList<AnomalieDTO>();
|
protected List<AnomalieDTO> anomalie = new ArrayList<AnomalieDTO>();
|
||||||
|
|
||||||
@@ -77,6 +79,12 @@ public abstract class BaseEntityImporter<T> implements IEntityImporter<T> {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IEntityImporter<T> setRequestDataDTO(RequestDataDTO requestDataDTO) {
|
||||||
|
this.requestDataDTO = requestDataDTO;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public List<AnomalieDTO> getAnomalie() {
|
public List<AnomalieDTO> getAnomalie() {
|
||||||
return anomalie;
|
return anomalie;
|
||||||
}
|
}
|
||||||
@@ -100,4 +108,6 @@ public abstract class BaseEntityImporter<T> implements IEntityImporter<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package it.integry.ems.Import.base;
|
|||||||
|
|
||||||
import it.integry.ems.Import.dto.AnomalieDTO;
|
import it.integry.ems.Import.dto.AnomalieDTO;
|
||||||
import it.integry.ems.Import.dto.ImportRequestDTO;
|
import it.integry.ems.Import.dto.ImportRequestDTO;
|
||||||
|
import it.integry.ems.javabeans.RequestDataDTO;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
import it.integry.ems_model.base.EntityBase;
|
import it.integry.ems_model.base.EntityBase;
|
||||||
import it.integry.ems_model.service.SetupGest;
|
import it.integry.ems_model.service.SetupGest;
|
||||||
@@ -26,10 +27,14 @@ public interface IEntityImporter<T> {
|
|||||||
|
|
||||||
IEntityImporter<T> setRequestDTO(ImportRequestDTO requestDto);
|
IEntityImporter<T> setRequestDTO(ImportRequestDTO requestDto);
|
||||||
|
|
||||||
|
IEntityImporter<T> setRequestDataDTO(RequestDataDTO requestDataDTO);
|
||||||
|
|
||||||
List<AnomalieDTO> getAnomalie();
|
List<AnomalieDTO> getAnomalie();
|
||||||
|
|
||||||
T doImport() throws Exception;
|
T doImport() throws Exception;
|
||||||
|
|
||||||
String renameFile(String orginalFileName, List<EntityBase> entities) throws Exception;
|
String renameFile(String orginalFileName, List<EntityBase> entities) throws Exception;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ public enum EntityImportType {
|
|||||||
MOVIMENTI_CONTABILI("MOVIMENTI CONTABILI"),
|
MOVIMENTI_CONTABILI("MOVIMENTI CONTABILI"),
|
||||||
GRIGLIA_VENDITA("GRIGLIA VENDITA"),
|
GRIGLIA_VENDITA("GRIGLIA VENDITA"),
|
||||||
GRIGLIA_ACQUISTO("GRIGLIA ACQUISTO"),
|
GRIGLIA_ACQUISTO("GRIGLIA ACQUISTO"),
|
||||||
SCADENZE("SCADENZE");
|
SCADENZE("SCADENZE"),
|
||||||
|
BILANCE("BILANCE"),
|
||||||
|
BANCA("BANCA");
|
||||||
|
|
||||||
private String text;
|
private String text;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package it.integry.ems._context;
|
|||||||
import it.integry.annotations.PostContextConstruct;
|
import it.integry.annotations.PostContextConstruct;
|
||||||
import it.integry.common.var.EmsDBConst;
|
import it.integry.common.var.EmsDBConst;
|
||||||
import it.integry.ems.expansion.RunnableArgsThrowable;
|
import it.integry.ems.expansion.RunnableArgsThrowable;
|
||||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
import it.integry.ems.settings.Model.AvailableConnectionModel;
|
||||||
import it.integry.ems.settings.Model.SettingsModel;
|
import it.integry.ems.settings.Model.SettingsModel;
|
||||||
import it.integry.ems.settings.SettingsController;
|
import it.integry.ems.settings.SettingsController;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.BasicConnectionPool;
|
import it.integry.ems.sync.MultiDBTransaction.BasicConnectionPool;
|
||||||
@@ -13,7 +13,6 @@ import it.integry.ems.task.TaskExecutorService;
|
|||||||
import it.integry.ems.user.service.UserCacheService;
|
import it.integry.ems.user.service.UserCacheService;
|
||||||
import it.integry.ems_model.entity.Azienda;
|
import it.integry.ems_model.entity.Azienda;
|
||||||
import it.integry.ems_model.service.SetupGest;
|
import it.integry.ems_model.service.SetupGest;
|
||||||
import it.integry.ems_model.utility.UtilityDB;
|
|
||||||
import it.integry.ems_model.utility.UtilityString;
|
import it.integry.ems_model.utility.UtilityString;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
@@ -56,6 +55,8 @@ public class EmsCoreDBLoader {
|
|||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
this.settingsController.addOnConfigUpdated(() -> {
|
this.settingsController.addOnConfigUpdated(() -> {
|
||||||
try {
|
try {
|
||||||
|
connectionPool.destroy();
|
||||||
|
connectionPool.init();
|
||||||
load(null);
|
load(null);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
@@ -64,8 +65,6 @@ public class EmsCoreDBLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void load(final RunnableArgsThrowable<MultiDBTransactionManager> onComplete) throws Exception {
|
public void load(final RunnableArgsThrowable<MultiDBTransactionManager> onComplete) throws Exception {
|
||||||
connectionPool.init();
|
|
||||||
|
|
||||||
taskExecutorService.executeTask(() -> {
|
taskExecutorService.executeTask(() -> {
|
||||||
try (MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(connectionPool)){
|
try (MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(connectionPool)){
|
||||||
discoverAllConnections(multiDBTransactionManager);
|
discoverAllConnections(multiDBTransactionManager);
|
||||||
@@ -84,18 +83,13 @@ public class EmsCoreDBLoader {
|
|||||||
private void discoverAllConnections(MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
private void discoverAllConnections(MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||||
|
|
||||||
ArrayList<Callable<Void>> futureTasks = new ArrayList<>();
|
ArrayList<Callable<Void>> futureTasks = new ArrayList<>();
|
||||||
for (AvailableConnectionsModel model : settingsModel.getAvailableConnectionsWithoutDuplicatedProfiles(true)) {
|
for (AvailableConnectionModel model : settingsModel.getAvailableConnectionsWithoutDuplicatedProfiles(true)) {
|
||||||
|
|
||||||
AtomicReference<AvailableConnectionsModel> modelAtomicReference = new AtomicReference<>(model);
|
AtomicReference<AvailableConnectionModel> modelAtomicReference = new AtomicReference<>(model);
|
||||||
|
|
||||||
futureTasks.add(() -> {
|
futureTasks.add(() -> {
|
||||||
try {
|
try {
|
||||||
Connection connection = connectionPool.getConnection(modelAtomicReference.get().getProfileName());
|
multiDBTransactionManager.addConnection(modelAtomicReference.get());
|
||||||
String sql = "SELECT db_distributore FROM azienda";
|
|
||||||
String dbDistributore = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
|
|
||||||
|
|
||||||
multiDBTransactionManager.addConnection(connection, modelAtomicReference.get().getDbName().equalsIgnoreCase(dbDistributore));
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
throw new Exception("[" + modelAtomicReference.get().getProfileName() + "] " + ex.getMessage(), ex.getCause());
|
throw new Exception("[" + modelAtomicReference.get().getProfileName() + "] " + ex.getMessage(), ex.getCause());
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package it.integry.ems.adapter;
|
||||||
|
|
||||||
|
import it.integry.ems_model.utility.UtilityString;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.adapters.XmlAdapter;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
public class XmlLocalDateAdapter extends XmlAdapter<String, LocalDate> {
|
||||||
|
|
||||||
|
private DateTimeFormatter sdf;
|
||||||
|
|
||||||
|
public XmlLocalDateAdapter() {
|
||||||
|
sdf = DateTimeFormatter.ofPattern("dd-MM-yyyy");
|
||||||
|
}
|
||||||
|
|
||||||
|
public XmlLocalDateAdapter(String format) {
|
||||||
|
sdf = DateTimeFormatter.ofPattern(format);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String marshal(LocalDate arg0) throws Exception {
|
||||||
|
return arg0.format(sdf);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LocalDate unmarshal(String arg0) throws Exception {
|
||||||
|
String format = UtilityString.determineDateFormat(arg0);
|
||||||
|
if (format != null && !"dd-MM-yyyy".equals(format))
|
||||||
|
sdf = DateTimeFormatter.ofPattern(format);
|
||||||
|
return LocalDate.parse(arg0,sdf);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package it.integry.ems.adapter;
|
||||||
|
|
||||||
|
import it.integry.ems_model.utility.UtilityString;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.adapters.XmlAdapter;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
public class XmlLocalDateTimeAdapter extends XmlAdapter<String, LocalDateTime> {
|
||||||
|
|
||||||
|
private DateTimeFormatter sdf;
|
||||||
|
|
||||||
|
public XmlLocalDateTimeAdapter() {
|
||||||
|
sdf = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
|
||||||
|
}
|
||||||
|
|
||||||
|
public XmlLocalDateTimeAdapter(String format) {
|
||||||
|
sdf = DateTimeFormatter.ofPattern(format);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String marshal(LocalDateTime arg0) throws Exception {
|
||||||
|
return arg0.format(sdf);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LocalDateTime unmarshal(String arg0) throws Exception {
|
||||||
|
String format = UtilityString.determineDateFormat(arg0);
|
||||||
|
if (format != null && !"dd-MM-yyyy HH:mm:ss".equals(format))
|
||||||
|
sdf = DateTimeFormatter.ofPattern(format);
|
||||||
|
return LocalDateTime.parse(arg0,sdf);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
@@ -0,0 +1,170 @@
|
|||||||
|
package it.integry.ems.configuration;
|
||||||
|
|
||||||
|
import it.integry.annotations.CustomerComponent;
|
||||||
|
import it.integry.annotations.CustomerService;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import it.integry.ems.settings.Model.SettingsModel;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.config.BeanDefinition;
|
||||||
|
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||||
|
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.context.ApplicationListener;
|
||||||
|
import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.event.ContextRefreshedEvent;
|
||||||
|
import org.springframework.core.type.filter.AnnotationTypeFilter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configurazione per registrare gli scope personalizzati per customer specifici
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class CustomerServicesConfig implements ApplicationListener<ContextRefreshedEvent> {
|
||||||
|
|
||||||
|
private final Logger logger = LogManager.getLogger();
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SettingsModel settingsModel;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApplicationContext applicationContext;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onApplicationEvent(ContextRefreshedEvent event) {
|
||||||
|
// Assicuriamoci che sia il context principale e non un sub-context
|
||||||
|
if (event.getApplicationContext() == applicationContext) {
|
||||||
|
registerCustomerBeans();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerCustomerBeans() {
|
||||||
|
ClassPathScanningCandidateComponentProvider scanner =
|
||||||
|
new ClassPathScanningCandidateComponentProvider(false);
|
||||||
|
|
||||||
|
// Aggiungo filtri per le annotazioni custom
|
||||||
|
scanner.addIncludeFilter(new AnnotationTypeFilter(CustomerService.class));
|
||||||
|
scanner.addIncludeFilter(new AnnotationTypeFilter(CustomerComponent.class));
|
||||||
|
|
||||||
|
BeanDefinitionRegistry registry = (BeanDefinitionRegistry) applicationContext.getAutowireCapableBeanFactory();
|
||||||
|
|
||||||
|
// Scansiono tutti i package del progetto
|
||||||
|
for (BeanDefinition bd : scanner.findCandidateComponents("it.integry")) {
|
||||||
|
try {
|
||||||
|
Class<?> clazz = Class.forName(bd.getBeanClassName());
|
||||||
|
String beanName = generateBeanName(clazz);
|
||||||
|
|
||||||
|
IntegryCustomer customer = extractCustomer(clazz);
|
||||||
|
|
||||||
|
// Ora SettingsModel è completamente inizializzato con @PostConstruct chiamato
|
||||||
|
if (!settingsModel.getDefaultProfile().equalsIgnoreCase(customer.toString())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Evito duplicati controllando se il bean esiste già
|
||||||
|
if (!registry.containsBeanDefinition(beanName)) {
|
||||||
|
logger.trace("Registering custom bean for customer: " + customer + " - Class: " + clazz.getSimpleName());
|
||||||
|
|
||||||
|
// Creo la definizione del bean
|
||||||
|
BeanDefinitionBuilder builder = BeanDefinitionBuilder
|
||||||
|
.genericBeanDefinition(clazz);
|
||||||
|
|
||||||
|
// Registro il bean nel registry di Spring
|
||||||
|
registry.registerBeanDefinition(beanName, builder.getBeanDefinition());
|
||||||
|
|
||||||
|
// Determino lo scope del bean per decidere se istanziarlo immediatamente
|
||||||
|
String beanScope = determineBeanScope(clazz);
|
||||||
|
|
||||||
|
if (shouldInstantiateImmediately(beanScope)) {
|
||||||
|
// Forzo l'istanziazione immediata solo per bean con scope appropriati
|
||||||
|
try {
|
||||||
|
Object beanInstance = applicationContext.getBean(beanName);
|
||||||
|
logger.info("Bean customer {} istanziato con successo: {} (scope: {})",
|
||||||
|
customer, beanInstance.getClass().getSimpleName(), beanScope);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("Errore durante l'istanziazione del bean {} (scope: {}): {}",
|
||||||
|
beanName, beanScope, e.getMessage());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.info("Bean customer {} registrato ma non istanziato (scope: {}). " +
|
||||||
|
"Verrà istanziato quando richiesto", customer, beanScope);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
logger.error("Impossibile caricare la classe: " + bd.getBeanClassName(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Genera il nome del bean basato sul nome della classe
|
||||||
|
*/
|
||||||
|
private String generateBeanName(Class<?> clazz) {
|
||||||
|
String simpleName = clazz.getSimpleName();
|
||||||
|
return Character.toLowerCase(simpleName.charAt(0)) + simpleName.substring(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private IntegryCustomer extractCustomer(Class<?> clazz) {
|
||||||
|
if (clazz.isAnnotationPresent(CustomerService.class)) {
|
||||||
|
CustomerService cs = clazz.getAnnotation(CustomerService.class);
|
||||||
|
return cs.value();
|
||||||
|
} else if (clazz.isAnnotationPresent(CustomerComponent.class)) {
|
||||||
|
CustomerComponent cc = clazz.getAnnotation(CustomerComponent.class);
|
||||||
|
return cc.value();
|
||||||
|
}
|
||||||
|
return IntegryCustomer.Integry; // Valore di default
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determina lo scope del bean analizzando le annotazioni della classe
|
||||||
|
*/
|
||||||
|
private String determineBeanScope(Class<?> clazz) {
|
||||||
|
// Controllo per @Scope
|
||||||
|
if (clazz.isAnnotationPresent(org.springframework.context.annotation.Scope.class)) {
|
||||||
|
org.springframework.context.annotation.Scope scopeAnnotation =
|
||||||
|
clazz.getAnnotation(org.springframework.context.annotation.Scope.class);
|
||||||
|
return scopeAnnotation.value();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Controllo per @RequestScope
|
||||||
|
if (clazz.isAnnotationPresent(org.springframework.web.context.annotation.RequestScope.class)) {
|
||||||
|
return "request";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Controllo per @SessionScope
|
||||||
|
if (clazz.isAnnotationPresent(org.springframework.web.context.annotation.SessionScope.class)) {
|
||||||
|
return "session";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Controllo per @ApplicationScope
|
||||||
|
if (clazz.isAnnotationPresent(org.springframework.web.context.annotation.ApplicationScope.class)) {
|
||||||
|
return "application";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Default è singleton
|
||||||
|
return "singleton";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determina se il bean può essere istanziato immediatamente in base al suo scope
|
||||||
|
*/
|
||||||
|
private boolean shouldInstantiateImmediately(String scope) {
|
||||||
|
switch (scope.toLowerCase()) {
|
||||||
|
case "request":
|
||||||
|
case "session":
|
||||||
|
// I bean con scope request/session non possono essere istanziati
|
||||||
|
// al di fuori del contesto web
|
||||||
|
return false;
|
||||||
|
case "prototype":
|
||||||
|
// I bean prototype non vengono istanziati automaticamente
|
||||||
|
return false;
|
||||||
|
case "singleton":
|
||||||
|
case "application":
|
||||||
|
default:
|
||||||
|
// Singleton e application possono essere istanziati immediatamente
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package it.integry.ems.configuration;
|
||||||
|
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableScheduling // Equivale a <task:annotation-driven/>
|
||||||
|
public class SchedulerConfig {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ThreadPoolTaskScheduler taskScheduler() {
|
||||||
|
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
|
||||||
|
scheduler.setPoolSize(5); // Equivale a pool-size="5"
|
||||||
|
scheduler.setThreadNamePrefix("taskScheduler-");
|
||||||
|
scheduler.initialize();
|
||||||
|
return scheduler;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -39,7 +39,6 @@ import it.integry.ems_model.entity.*;
|
|||||||
import it.integry.ems_model.types.OperationType;
|
import it.integry.ems_model.types.OperationType;
|
||||||
import it.integry.ems_model.utility.Base64Utility;
|
import it.integry.ems_model.utility.Base64Utility;
|
||||||
import it.integry.ems_model.utility.UtilityDB;
|
import it.integry.ems_model.utility.UtilityDB;
|
||||||
import it.integry.ems_model.utility.UtilityDate;
|
|
||||||
import it.integry.ems_model.utility.UtilityString;
|
import it.integry.ems_model.utility.UtilityString;
|
||||||
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.codec.binary.Base64;
|
||||||
import org.apache.commons.text.StringEscapeUtils;
|
import org.apache.commons.text.StringEscapeUtils;
|
||||||
@@ -69,6 +68,7 @@ import java.lang.reflect.ParameterizedType;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -552,7 +552,7 @@ public class EmsController {
|
|||||||
@RequestParam(required = false, defaultValue = "true") boolean headless,
|
@RequestParam(required = false, defaultValue = "true") boolean headless,
|
||||||
@RequestBody(required = false) JsonNode body) throws Exception {
|
@RequestBody(required = false) JsonNode body) throws Exception {
|
||||||
|
|
||||||
EntityExportResponse<?> entityExportResponse = emsServices.export(typeExport, formatExport, body, headless);
|
EntityExportResponse<?> entityExportResponse = emsServices.export(multiDBTransactionManager, requestDataDTO, typeExport, formatExport, body, headless);
|
||||||
List<AnomalieDTO> anomalie = new ArrayList<>();
|
List<AnomalieDTO> anomalie = new ArrayList<>();
|
||||||
|
|
||||||
if (entityExportResponse != null && entityExportResponse.getAnomalie() != null && !entityExportResponse.getAnomalie().isEmpty())
|
if (entityExportResponse != null && entityExportResponse.getAnomalie() != null && !entityExportResponse.getAnomalie().isEmpty())
|
||||||
@@ -608,7 +608,7 @@ public class EmsController {
|
|||||||
@RequestParam(required = false, defaultValue = "true") boolean headless,
|
@RequestParam(required = false, defaultValue = "true") boolean headless,
|
||||||
@RequestBody(required = false) ImportRequestDTO requestBody) throws Exception {
|
@RequestBody(required = false) ImportRequestDTO requestBody) throws Exception {
|
||||||
|
|
||||||
EntityImportResponse<List<EntityBase>> importResponse = emsServices.importEntity(importType, importFormat, requestBody, headless);
|
EntityImportResponse<List<EntityBase>> importResponse = emsServices.importEntity(multiDBTransactionManager, requestDataDTO, importType, importFormat, requestBody, headless);
|
||||||
List<EntityBase> entities = importResponse.getResponse();
|
List<EntityBase> entities = importResponse.getResponse();
|
||||||
|
|
||||||
|
|
||||||
@@ -700,16 +700,6 @@ public class EmsController {
|
|||||||
logger.error(request.getRequestURI(), e);
|
logger.error(request.getRequestURI(), e);
|
||||||
ServiceRestResponse response = new ServiceRestResponse(EsitoType.KO, configuration, e);
|
ServiceRestResponse response = new ServiceRestResponse(EsitoType.KO, configuration, e);
|
||||||
responseList.add(response);
|
responseList.add(response);
|
||||||
} finally {
|
|
||||||
if (multiDBTransactionManager != null) {
|
|
||||||
try {
|
|
||||||
multiDBTransactionManager.close();
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error(request.getRequestURI(), e);
|
|
||||||
ServiceRestResponse response = new ServiceRestResponse(EsitoType.KO, configuration, e);
|
|
||||||
responseList.add(response);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return responseList;
|
return responseList;
|
||||||
@@ -743,7 +733,7 @@ public class EmsController {
|
|||||||
@PathVariable String filename,
|
@PathVariable String filename,
|
||||||
@RequestParam(name = "contentDisposition", defaultValue = "attachment") String contentDispositionType,
|
@RequestParam(name = "contentDisposition", defaultValue = "attachment") String contentDispositionType,
|
||||||
@RequestParam(defaultValue = "false") boolean requestThumbnail) throws Exception {
|
@RequestParam(defaultValue = "false") boolean requestThumbnail) throws Exception {
|
||||||
AttachmentDTO attachmentDTO = emsServices.downloadStbFileAttachment(idAttach, requestThumbnail);
|
AttachmentDTO attachmentDTO = emsServices.downloadStbFileAttachment(multiDBTransactionManager, idAttach, requestThumbnail);
|
||||||
|
|
||||||
if (attachmentDTO != null) {
|
if (attachmentDTO != null) {
|
||||||
return ResponseEntity.ok()
|
return ResponseEntity.ok()
|
||||||
@@ -760,13 +750,31 @@ public class EmsController {
|
|||||||
return ResponseEntity.notFound().build();
|
return ResponseEntity.notFound().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "downloadFileFromRefUuid")
|
||||||
|
public ResponseEntity<byte[]> downloadFileFromRefUuid(@RequestParam(CommonConstants.PROFILE_DB) String config,
|
||||||
|
@RequestParam() String refUuid,
|
||||||
|
@RequestParam() String fileName) throws Exception {
|
||||||
|
AttachmentDTO attached = emsServices.downloadFileFromRefUuid(multiDBTransactionManager, refUuid, fileName);
|
||||||
|
|
||||||
|
if (attached == null) return ResponseEntity.notFound().build();
|
||||||
|
|
||||||
|
return ResponseEntity.ok()
|
||||||
|
.contentType(MediaType.parseMediaType(attached.getMimeType()))
|
||||||
|
.contentLength(attached.getFileSize())
|
||||||
|
.header(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition
|
||||||
|
.attachment()
|
||||||
|
.filename(attached.getFileName())
|
||||||
|
.build()
|
||||||
|
.toString())
|
||||||
|
.body(attached.getFileContent());
|
||||||
|
}
|
||||||
|
|
||||||
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_STB_FILE_ATTACHMENT, method = RequestMethod.GET)
|
@RequestMapping(value = EmsRestConstants.PATH_DOWNLOAD_STB_FILE_ATTACHMENT, method = RequestMethod.GET)
|
||||||
public ResponseEntity<byte[]> downloadStbFileAttachmentPath(
|
public ResponseEntity<byte[]> downloadStbFileAttachmentPath(
|
||||||
@RequestParam(CommonConstants.PROFILE_DB) String config,
|
@RequestParam(CommonConstants.PROFILE_DB) String config,
|
||||||
@RequestParam String idAttach,
|
@RequestParam String idAttach,
|
||||||
@RequestParam(defaultValue = "false") boolean requestThumbnail) throws Exception {
|
@RequestParam(defaultValue = "false") boolean requestThumbnail) throws Exception {
|
||||||
AttachmentDTO attachmentDTO = emsServices.downloadStbFileAttachment(idAttach, requestThumbnail);
|
AttachmentDTO attachmentDTO = emsServices.downloadStbFileAttachment(multiDBTransactionManager, idAttach, requestThumbnail);
|
||||||
|
|
||||||
if (attachmentDTO != null) {
|
if (attachmentDTO != null) {
|
||||||
return ResponseEntity.ok()
|
return ResponseEntity.ok()
|
||||||
@@ -832,7 +840,7 @@ public class EmsController {
|
|||||||
@RequestParam Integer versione) throws Exception {
|
@RequestParam Integer versione) throws Exception {
|
||||||
|
|
||||||
DtbDocPdf dtbDocPdf = new DtbDocPdf();
|
DtbDocPdf dtbDocPdf = new DtbDocPdf();
|
||||||
dtbDocPdf.setDataDoc(UtilityDate.RecognizeDate(dataDoc));
|
dtbDocPdf.setDataDoc(UtilityString.parseLocalDate(dataDoc));
|
||||||
dtbDocPdf.setSerDoc(serDoc);
|
dtbDocPdf.setSerDoc(serDoc);
|
||||||
dtbDocPdf.setNumDoc(numDoc);
|
dtbDocPdf.setNumDoc(numDoc);
|
||||||
dtbDocPdf.setCodAnag(codAnag);
|
dtbDocPdf.setCodAnag(codAnag);
|
||||||
@@ -884,7 +892,7 @@ public class EmsController {
|
|||||||
@RequestParam Integer versione) throws Exception {
|
@RequestParam Integer versione) throws Exception {
|
||||||
DtbOrdPdf dtbOrdPdf = new DtbOrdPdf();
|
DtbOrdPdf dtbOrdPdf = new DtbOrdPdf();
|
||||||
dtbOrdPdf.setGestione(gestione);
|
dtbOrdPdf.setGestione(gestione);
|
||||||
dtbOrdPdf.setDataOrd(UtilityDate.RecognizeDate(dataOrd));
|
dtbOrdPdf.setDataOrd(UtilityString.parseLocalDate(dataOrd));
|
||||||
dtbOrdPdf.setNumOrd(numOrd);
|
dtbOrdPdf.setNumOrd(numOrd);
|
||||||
dtbOrdPdf.setVersione(versione);
|
dtbOrdPdf.setVersione(versione);
|
||||||
dtbOrdPdf.setOperation(OperationType.SELECT_OBJECT);
|
dtbOrdPdf.setOperation(OperationType.SELECT_OBJECT);
|
||||||
@@ -919,7 +927,7 @@ public class EmsController {
|
|||||||
throw new Exception("Sono stati inviati più file del previsto");
|
throw new Exception("Sono stati inviati più file del previsto");
|
||||||
}
|
}
|
||||||
|
|
||||||
StbFilesAttached stbFilesAttached = emsServices.uploadStbFilesAttached(idAttach,
|
StbFilesAttached stbFilesAttached = emsServices.uploadStbFilesAttached(multiDBTransactionManager, idAttach,
|
||||||
files[0].getOriginalFilename(),
|
files[0].getOriginalFilename(),
|
||||||
files[0].getBytes(),
|
files[0].getBytes(),
|
||||||
descrizione,
|
descrizione,
|
||||||
@@ -1035,7 +1043,7 @@ public class EmsController {
|
|||||||
byte[] content = files[0].getBytes();
|
byte[] content = files[0].getBytes();
|
||||||
// content = UtilityZip.zlib_compress(content);
|
// content = UtilityZip.zlib_compress(content);
|
||||||
|
|
||||||
Date dataDoc = UtilityDate.RecognizeDate(dataDocStr);
|
LocalDate dataDoc = UtilityString.parseLocalDate(dataDocStr);
|
||||||
|
|
||||||
DtbDocPdf dtbDocPdf = new DtbDocPdf();
|
DtbDocPdf dtbDocPdf = new DtbDocPdf();
|
||||||
dtbDocPdf.setDataDoc(dataDoc);
|
dtbDocPdf.setDataDoc(dataDoc);
|
||||||
@@ -1087,7 +1095,7 @@ public class EmsController {
|
|||||||
|
|
||||||
String idAttach = null;
|
String idAttach = null;
|
||||||
StbFilesAttached.TypeAttach typeAttach = null;
|
StbFilesAttached.TypeAttach typeAttach = null;
|
||||||
Date dataDoc = UtilityDate.RecognizeDate(dataDocStr);
|
LocalDate dataDoc = UtilityString.parseLocalDate(dataDocStr);
|
||||||
|
|
||||||
DrlDocAttached drlDocAttached =
|
DrlDocAttached drlDocAttached =
|
||||||
new DrlDocAttached()
|
new DrlDocAttached()
|
||||||
@@ -1098,7 +1106,7 @@ public class EmsController {
|
|||||||
.setCodDtip(codDtip);
|
.setCodDtip(codDtip);
|
||||||
drlDocAttached.setOperation(OperationType.INSERT);
|
drlDocAttached.setOperation(OperationType.INSERT);
|
||||||
|
|
||||||
StbFilesAttached stbFilesAttached = emsServices.uploadStbFilesAttached(idAttach,
|
StbFilesAttached stbFilesAttached = emsServices.uploadStbFilesAttached(multiDBTransactionManager, idAttach,
|
||||||
files[0].getOriginalFilename(),
|
files[0].getOriginalFilename(),
|
||||||
files[0].getBytes(),
|
files[0].getBytes(),
|
||||||
descrizione,
|
descrizione,
|
||||||
@@ -1117,7 +1125,7 @@ public class EmsController {
|
|||||||
@RequestMapping(value = "createZipFromFiles", method = RequestMethod.POST)
|
@RequestMapping(value = "createZipFromFiles", method = RequestMethod.POST)
|
||||||
public @ResponseBody
|
public @ResponseBody
|
||||||
ServiceRestResponse createZipFromFiles(@RequestBody CreateZipDTO createZipDTO) throws Exception {
|
ServiceRestResponse createZipFromFiles(@RequestBody CreateZipDTO createZipDTO) throws Exception {
|
||||||
return ServiceRestResponse.createPositiveResponse(emsServices.createZipFromFiles(createZipDTO));
|
return ServiceRestResponse.createPositiveResponse(emsServices.createZipFromFiles(multiDBTransactionManager, createZipDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
// @RequestMapping(value = EmsRestConstants.PATH_UPLOAD_STB_EMAIL_CONTENT, method = RequestMethod.POST)
|
// @RequestMapping(value = EmsRestConstants.PATH_UPLOAD_STB_EMAIL_CONTENT, method = RequestMethod.POST)
|
||||||
@@ -1163,22 +1171,10 @@ public class EmsController {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
@RequestMapping(value = EmsRestConstants.PATH_CLEAN_DIRECTORIES, method = RequestMethod.POST)
|
|
||||||
public @ResponseBody
|
|
||||||
ServiceRestResponse cleanDirectories(@RequestParam(CommonConstants.PROFILE_DB) String config) throws Exception {
|
|
||||||
try {
|
|
||||||
emsServices.cleanDirectories();
|
|
||||||
return ServiceRestResponse.createPositiveResponse();
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error(e.getMessage(), e);
|
|
||||||
return new ServiceRestResponse(EsitoType.KO, multiDBTransactionManager.getPrimaryConnection().getProfileName(), e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(value = EmsRestConstants.PATH_EXPORT_SERVER_INFO_ISCC, method = RequestMethod.POST)
|
@RequestMapping(value = EmsRestConstants.PATH_EXPORT_SERVER_INFO_ISCC, method = RequestMethod.POST)
|
||||||
public @ResponseBody
|
public @ResponseBody
|
||||||
ServiceRestResponse exportServerInfoISCC(@RequestParam(CommonConstants.PROFILE_DB) String config) throws Exception {
|
ServiceRestResponse exportServerInfoISCC(@RequestParam(CommonConstants.PROFILE_DB) String config) throws Exception {
|
||||||
emsServices.checkServerVariables();
|
emsServices.checkServerVariables(multiDBTransactionManager);
|
||||||
return ServiceRestResponse.createPositiveResponse();
|
return ServiceRestResponse.createPositiveResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,112 +1,154 @@
|
|||||||
package it.integry.ems.datasource;
|
package it.integry.ems.datasource;
|
||||||
|
|
||||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
import it.integry.ems.settings.Model.AvailableConnectionModel;
|
||||||
import it.integry.ems.settings.Model.SettingsModel;
|
import it.integry.ems.settings.Model.SettingsModel;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||||
import it.integry.ems.utility.UtilityDebug;
|
import it.integry.ems_model.config.EmsRestConstants;
|
||||||
import it.integry.ems_model.config.EmsRestConstants;
|
import it.integry.ems_model.utility.UtilityDB;
|
||||||
import it.integry.ems_model.utility.UtilityDB;
|
import it.integry.ems_model.utility.UtilityHashMap;
|
||||||
import it.integry.ems_model.utility.UtilityHashMap;
|
import org.apache.commons.dbcp2.BasicDataSource;
|
||||||
import it.integry.ems_model.utility.UtilityString;
|
|
||||||
import org.apache.commons.dbcp2.BasicDataSource;
|
import java.sql.SQLException;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.HashMap;
|
public class DataSource extends BasicDataSource {
|
||||||
import java.util.List;
|
|
||||||
|
private AvailableConnectionModel connectionModel;
|
||||||
public class DataSource extends BasicDataSource {
|
|
||||||
|
/**
|
||||||
private AvailableConnectionsModel connectionModel;
|
* Instanzia un nuovo datasource.
|
||||||
|
*
|
||||||
/**
|
* @deprecated Il datasource non deve essere istanziato direttamente ma bisogna utilizzare il metodo
|
||||||
* Instanzia un nuovo datasource.
|
* {@link it.integry.ems.sync.MultiDBTransaction.BasicConnectionPool#getConnection(AvailableConnectionModel)} per ottenere una connessione.
|
||||||
* @deprecated
|
*/
|
||||||
* Il datasource non deve essere istanziato direttamente ma bisogna utilizzare il metodo {@link it.integry.ems.sync.MultiDBTransaction.BasicConnectionPool#getConnection(String)} per ottenere una connessione.
|
@Deprecated
|
||||||
*/
|
public DataSource() {
|
||||||
@Deprecated
|
super();
|
||||||
public DataSource() {
|
}
|
||||||
super();
|
|
||||||
}
|
public EmsRestConstants.DB_TYPE getTypeDB() {
|
||||||
|
return connectionModel.getConnectionType();
|
||||||
public EmsRestConstants.DB_TYPE getTypeDB() {
|
}
|
||||||
return connectionModel.getConnectionType();
|
|
||||||
}
|
/**
|
||||||
|
* Ottiene una connessione dal pool. La connessione è wrappata in it.integry.ems.sync.MultiDBTransaction.Connection.
|
||||||
/**
|
* È responsabilità del chiamante chiudere la connessione per restituirla al pool.
|
||||||
* Ottiene una connessione dal pool. La connessione è wrappata in it.integry.ems.sync.MultiDBTransaction.Connection.
|
*
|
||||||
* È responsabilità del chiamante chiudere la connessione per restituirla al pool.
|
* @return una connessione dal pool
|
||||||
*
|
* @throws SQLException se si verifica un errore di accesso al database
|
||||||
* @return una connessione dal pool
|
*/
|
||||||
* @throws SQLException se si verifica un errore di accesso al database
|
|
||||||
*/
|
public Connection getConnection() throws SQLException {
|
||||||
|
// Restituisce una nuova connessione dal pool di BasicDataSource, wrappata nel nostro tipo Connection
|
||||||
public Connection getConnection() throws SQLException {
|
final Connection connection = Connection.fromConnection(super.getConnection());
|
||||||
// Restituisce una nuova connessione dal pool di BasicDataSource, wrappata nel nostro tipo Connection
|
// Prova a ottenere una connessione per verificare la configurazione e ottenere il sessionID
|
||||||
final Connection connection = Connection.fromConnection(super.getConnection());
|
|
||||||
// Prova a ottenere una connessione per verificare la configurazione e ottenere il sessionID
|
if (connectionModel.getConnectionType() == EmsRestConstants.DB_TYPE.MSSQL) {
|
||||||
|
HashMap<String, Object> resultSessionData = UtilityDB.executeSimpleQueryOnlyFirstRow(connection, "select CAST(@@spid AS BIGINT) AS session_id," +
|
||||||
if (connectionModel.getConnectionType() == EmsRestConstants.DB_TYPE.MSSQL) {
|
" user_name() AS [user_name]," +
|
||||||
HashMap<String, Object> resultSessionData = UtilityDB.executeSimpleQueryOnlyFirstRow(connection, "select CAST(@@spid AS BIGINT) AS session_id," +
|
" suser_name() AS [suser_name]," +
|
||||||
" user_name() AS [user_name]," +
|
" current_user AS [current_user]," +
|
||||||
" suser_name() AS [suser_name]," +
|
" system_user AS [system_user]," +
|
||||||
" current_user AS [current_user]," +
|
" session_user AS [session_user]," +
|
||||||
" system_user AS [system_user]," +
|
" user AS [user]");
|
||||||
" session_user AS [session_user]," +
|
|
||||||
" user AS [user]");
|
connection.setSessionId(UtilityHashMap.getValueIfExists(resultSessionData, "session_id"));
|
||||||
|
}
|
||||||
connection.setSessionId(UtilityHashMap.getValueIfExists(resultSessionData, "session_id"));
|
|
||||||
}
|
connection.setProfileName(connectionModel.getProfileName())
|
||||||
|
.setInternalDb(connectionModel.getInternalDb());
|
||||||
connection.setProfileName(connectionModel.getProfileName())
|
|
||||||
.setInternalDb(connectionModel.getInternalDb());
|
return connection;
|
||||||
|
}
|
||||||
return connection;
|
|
||||||
}
|
public synchronized void initialize(String profileDB) throws Exception {
|
||||||
|
AvailableConnectionModel connectionsModel = SettingsModel.getInstance().findConnectionModel(profileDB);
|
||||||
public synchronized void initialize(AvailableConnectionsModel connectionModel) throws Exception {
|
|
||||||
this.connectionModel = connectionModel;
|
initialize(connectionsModel);
|
||||||
|
}
|
||||||
this.setUrl(connectionModel.getDbConnectionString("EMS Connection"));
|
|
||||||
this.setUsername(connectionModel.getUsername());
|
public synchronized void initialize(AvailableConnectionModel connectionModel) throws Exception {
|
||||||
this.setPassword(connectionModel.getPasswordDecrypted());
|
if (connectionModel == null) {
|
||||||
|
throw new Exception("Configurazione DB non trovata");
|
||||||
if (!connectionModel.getInternalDb() ||
|
}
|
||||||
UtilityDebug.isDebugExecution() ||
|
|
||||||
UtilityDebug.isIntegryServerDev() ||
|
this.connectionModel = connectionModel;
|
||||||
!SettingsModel.getInstance().isPrimaryInstance())
|
|
||||||
this.setMaxIdle(0);
|
this.setDriverClassName(connectionModel.getDriverClassName());
|
||||||
|
|
||||||
this.setDefaultTransactionIsolation(java.sql.Connection.TRANSACTION_READ_UNCOMMITTED);
|
this.setUrl(connectionModel.getDbConnectionString("EMS Connection"));
|
||||||
this.setDefaultAutoCommit(false);
|
this.setUsername(connectionModel.getUsername());
|
||||||
|
this.setPassword(connectionModel.getPasswordDecrypted());
|
||||||
// if (connectionModel.getConnectionType() == EmsRestConstants.DB_TYPE.MSSQL) {
|
this.setDefaultCatalog(connectionModel.getDbName());
|
||||||
// this.setConnectionInitSqls(Collections.singletonList("SET NOCOUNT ON"));
|
|
||||||
// }
|
this.setDefaultTransactionIsolation(java.sql.Connection.TRANSACTION_READ_UNCOMMITTED);
|
||||||
}
|
this.setDefaultAutoCommit(false);
|
||||||
|
|
||||||
public synchronized void initialize(String profileDB, String connectionName) throws Exception {
|
// ===== OTTIMIZZAZIONI CRITICHE =====
|
||||||
if (UtilityString.isNullOrEmpty(profileDB)) {
|
|
||||||
throw new Exception("Profile DB non valorizzato - controllare la chiamata del servizio");
|
// Pool sizing ottimizzato per READ_UNCOMMITTED (meno locking = più connessioni possibili)
|
||||||
}
|
this.setInitialSize(5); // Inizia con più connessioni
|
||||||
|
this.setMaxTotal(-1); // Aumentato il massimo
|
||||||
AvailableConnectionsModel connectionModel = null;
|
this.setMinIdle(5); // Non scendere sotto 5
|
||||||
List<AvailableConnectionsModel> availableConnectionsModels = SettingsModel.getInstance().getAvailableConnectionsWithoutDuplicatedProfiles(false);
|
this.setMaxIdle(-1); // Mantieni più connessioni idle
|
||||||
|
|
||||||
for (AvailableConnectionsModel connectionsModel : availableConnectionsModels) {
|
// Timeout ottimizzati per performance massime
|
||||||
if (connectionsModel.getProfileName().equalsIgnoreCase(profileDB)) {
|
// this.setMaxWaitMillis(-1L); // Infinito (DEFAULT)
|
||||||
connectionModel = connectionsModel;
|
|
||||||
}
|
// Validazione veloce ed efficiente
|
||||||
}
|
this.setValidationQuery("SELECT 1");
|
||||||
|
// this.setValidationQueryTimeout(60); // Ridotto a 1 secondo
|
||||||
if (connectionModel == null) {
|
// this.setTestWhileIdle(true); // Testa connessioni idle
|
||||||
throw new Exception(String.format("Configurazione DB non trovata o dati mancanti (%s)", profileDB));
|
|
||||||
}
|
// Eviction ottimizzata per READ_UNCOMMITTED
|
||||||
|
// this.setTimeBetweenEvictionRunsMillis(1 * 1000); // Ogni 30 secondi
|
||||||
initialize(connectionModel);
|
// this.setMinEvictableIdleTimeMillis(1 * 60 * 1000); // 3 minuti (ridotto da 5)
|
||||||
}
|
// this.setNumTestsPerEvictionRun(5); // Testa più connessioni per volta
|
||||||
|
|
||||||
public synchronized void initialize(String profileDB) throws Exception {
|
// Connection leak protection
|
||||||
initialize(profileDB, "EMS Connection");
|
this.setRemoveAbandonedOnBorrow(true);
|
||||||
}
|
this.setRemoveAbandonedOnMaintenance(true);
|
||||||
|
this.setRemoveAbandonedTimeout(3 * 60 * 10); // 3 minuti
|
||||||
|
this.setLogAbandoned(true); // Disabilita in produzione per performance
|
||||||
|
|
||||||
|
// Performance boosts massimi
|
||||||
|
// this.setPoolPreparedStatements(true);
|
||||||
|
// this.setMaxOpenPreparedStatements(200);
|
||||||
|
// this.setCacheState(true);
|
||||||
|
this.setFastFailValidation(true);
|
||||||
|
|
||||||
|
// Ottimizzazioni specifiche per SQL Server con READ_UNCOMMITTED
|
||||||
|
if (connectionModel.getConnectionType() == EmsRestConstants.DB_TYPE.MSSQL) {
|
||||||
|
// Impostazioni connection specifiche per SQL Server
|
||||||
|
//this.setConnectionInitSqls(java.util.Arrays.asList(
|
||||||
|
//"SET NOCOUNT ON",
|
||||||
|
//"SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED",
|
||||||
|
//"SET ARITHABORT ON"
|
||||||
|
//));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Logging ottimizzato (disabilita in produzione)
|
||||||
|
this.setLogExpiredConnections(true);
|
||||||
|
|
||||||
|
// ==================== ULTERIORI OTTIMIZZAZIONI ====================
|
||||||
|
|
||||||
|
// Connection properties specifiche per performance
|
||||||
|
this.setDefaultReadOnly(false);
|
||||||
|
|
||||||
|
// Ottimizzazioni DBCP2 avanzate
|
||||||
|
// this.setLifo(false); // FIFO per distribuzione equa delle connessioni
|
||||||
|
// this.setSoftMinEvictableIdleTimeMillis(120000); // 2 minuti soft eviction
|
||||||
|
|
||||||
|
|
||||||
|
// if (!connectionModel.getInternalDb() ||
|
||||||
|
// UtilityDebug.isDebugExecution() ||
|
||||||
|
// UtilityDebug.isIntegryServerDev() ||
|
||||||
|
// !SettingsModel.getInstance().isPrimaryInstance()) {
|
||||||
|
// this.setInitialSize(0);
|
||||||
|
//// this.setMaxTotal(5);
|
||||||
|
// this.setMinIdle(0);
|
||||||
|
// this.setMaxIdle(1);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -2,15 +2,16 @@ package it.integry.ems.directory;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||||
import it.integry.common.var.CommonConstants;
|
import it.integry.common.var.CommonConstants;
|
||||||
import it.integry.ems.datasource.DataSource;
|
|
||||||
import it.integry.ems.json.ResponseJSONObjectMapper;
|
import it.integry.ems.json.ResponseJSONObjectMapper;
|
||||||
import it.integry.ems.properties.EmsProperties;
|
import it.integry.ems.properties.EmsProperties;
|
||||||
import it.integry.ems.response.EsitoType;
|
import it.integry.ems.response.EsitoType;
|
||||||
import it.integry.ems.response.FileItem;
|
import it.integry.ems.response.FileItem;
|
||||||
import it.integry.ems.response.ServiceRestResponse;
|
import it.integry.ems.response.ServiceRestResponse;
|
||||||
|
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
import it.integry.ems_model.config.EmsRestConstants;
|
import it.integry.ems_model.config.EmsRestConstants;
|
||||||
import it.integry.ems_model.service.SetupGest;
|
import it.integry.ems_model.service.SetupGest;
|
||||||
|
import it.integry.ems_model.utility.UtilityHashMap;
|
||||||
import it.integry.ems_model.utility.UtilityString;
|
import it.integry.ems_model.utility.UtilityString;
|
||||||
import it.integry.security.utility.RestUtil;
|
import it.integry.security.utility.RestUtil;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
@@ -30,6 +31,7 @@ import java.sql.PreparedStatement;
|
|||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
|
||||||
@@ -53,42 +55,44 @@ public class EmailWatcherListener extends TimerTask {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void run() {
|
public synchronized void run() {
|
||||||
try {
|
try (MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(emailListenerInfo.getDatabase())) {
|
||||||
|
Connection conn = multiDBTransactionManager.getPrimaryConnection();
|
||||||
|
|
||||||
String flagAttivo = null, username = null, password = null,
|
String flagAttivo = null, username = null, password = null,
|
||||||
imap = null, pop3 = null, pop3Port = null, imapPort = null;
|
imap = null, pop3 = null, pop3Port = null, imapPort = null;
|
||||||
|
|
||||||
DataSource ds = new DataSource();
|
|
||||||
ds.initialize(emailListenerInfo.getDatabase());
|
|
||||||
|
|
||||||
String[] params = emailListenerInfo.getSetupGestBranch().split("\\|");
|
String[] params = emailListenerInfo.getSetupGestBranch().split("\\|");
|
||||||
|
|
||||||
if (params.length >= 2) {
|
if (params.length >= 2) {
|
||||||
flagAttivo = setupGest.getSetup(ds.getConnection(), params[0], params[1], "ATTIVO");
|
final HashMap<String, String> setupData = setupGest.getSetupSection(conn, params[0], params[1]);
|
||||||
username = setupGest.getSetup(ds.getConnection(), params[0], params[1], "USERNAME");
|
|
||||||
|
flagAttivo = UtilityHashMap.getValueIfExists(setupData, "ATTIVO");
|
||||||
|
username = UtilityHashMap.getValueIfExists(setupData, "USERNAME");
|
||||||
if (UtilityString.isNullOrEmpty(username))
|
if (UtilityString.isNullOrEmpty(username))
|
||||||
throw new Exception(params[0] + "/" + params[1] + "/USERNAME non configurato correttamente");
|
throw new Exception(params[0] + "/" + params[1] + "/USERNAME non configurato correttamente");
|
||||||
|
|
||||||
password = setupGest.getSetup(ds.getConnection(), params[0], params[1], "PASSWORD");
|
password = UtilityHashMap.getValueIfExists(setupData, "PASSWORD");
|
||||||
if (UtilityString.isNullOrEmpty(password))
|
if (UtilityString.isNullOrEmpty(password))
|
||||||
throw new Exception(params[0] + "/" + params[1] + "/PASSWORD non configurato correttamente");
|
throw new Exception(params[0] + "/" + params[1] + "/PASSWORD non configurato correttamente");
|
||||||
|
|
||||||
pop3 = setupGest.getSetup(ds.getConnection(), params[0], params[1], "POP3");
|
pop3 = UtilityHashMap.getValueIfExists(setupData, "POP3");
|
||||||
if (UtilityString.isNullOrEmpty(pop3))
|
if (UtilityString.isNullOrEmpty(pop3))
|
||||||
throw new Exception(params[0] + "/" + params[1] + "/POP3 non configurato correttamente");
|
throw new Exception(params[0] + "/" + params[1] + "/POP3 non configurato correttamente");
|
||||||
|
|
||||||
pop3Port = setupGest.getSetup(ds.getConnection(), params[0], params[1], "POP3_PORT");
|
pop3Port = UtilityHashMap.getValueIfExists(setupData, "POP3_PORT");
|
||||||
if (UtilityString.isNullOrEmpty(pop3Port))
|
if (UtilityString.isNullOrEmpty(pop3Port))
|
||||||
throw new Exception(params[0] + "/" + params[1] + "/POP3_PORT non configurato correttamente");
|
throw new Exception(params[0] + "/" + params[1] + "/POP3_PORT non configurato correttamente");
|
||||||
|
|
||||||
imap = setupGest.getSetup(ds.getConnection(), params[0], params[1], "IMAP");
|
imap = UtilityHashMap.getValueIfExists(setupData, "IMAP");
|
||||||
if (UtilityString.isNullOrEmpty(imap))
|
if (UtilityString.isNullOrEmpty(imap))
|
||||||
throw new Exception(params[0] + "/" + params[1] + "/IMAP non configurato correttamente");
|
throw new Exception(params[0] + "/" + params[1] + "/IMAP non configurato correttamente");
|
||||||
|
|
||||||
imapPort = setupGest.getSetup(ds.getConnection(), params[0], params[1], "IMAP_PORT");
|
imapPort = UtilityHashMap.getValueIfExists(setupData, "IMAP_PORT");
|
||||||
if (UtilityString.isNullOrEmpty(imapPort))
|
if (UtilityString.isNullOrEmpty(imapPort))
|
||||||
throw new Exception(params[0] + "/" + params[1] + "/IMAP_PORT non configurato correttamente");
|
throw new Exception(params[0] + "/" + params[1] + "/IMAP_PORT non configurato correttamente");
|
||||||
}
|
}
|
||||||
ds.close();
|
|
||||||
if (!UtilityString.isNullOrEmpty(flagAttivo) && "S".equals(flagAttivo)) {
|
if (!UtilityString.isNullOrEmpty(flagAttivo) && "S".equals(flagAttivo)) {
|
||||||
Properties sysProperties = System.getProperties();
|
Properties sysProperties = System.getProperties();
|
||||||
Session session = Session.getDefaultInstance(sysProperties);
|
Session session = Session.getDefaultInstance(sysProperties);
|
||||||
@@ -160,7 +164,7 @@ public class EmailWatcherListener extends TimerTask {
|
|||||||
|
|
||||||
String value = response.readEntity(String.class);
|
String value = response.readEntity(String.class);
|
||||||
|
|
||||||
String emailDbg = setupGest.getSetup(ds.getConnection(), params[0], params[1], "EMAIL_DBG");
|
String emailDbg = setupGest.getSetup(conn, params[0], params[1], "EMAIL_DBG");
|
||||||
if (value.charAt(0) == '{') {
|
if (value.charAt(0) == '{') {
|
||||||
ServiceRestResponse respWra = jsonObjectMapper.readValue(value, ServiceRestResponse.class);
|
ServiceRestResponse respWra = jsonObjectMapper.readValue(value, ServiceRestResponse.class);
|
||||||
if (respWra.getEsito() == EsitoType.KO) {
|
if (respWra.getEsito() == EsitoType.KO) {
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import it.integry.ems.utility.UtilityFile;
|
|||||||
import it.integry.ems_model.entity.StbFilesAttached;
|
import it.integry.ems_model.entity.StbFilesAttached;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -16,7 +15,6 @@ import java.io.IOException;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class DownloadFileHandlerService {
|
public class DownloadFileHandlerService {
|
||||||
@@ -26,12 +24,6 @@ public class DownloadFileHandlerService {
|
|||||||
|
|
||||||
private final HashMap<String, CachedFileDto> mFileMap = new HashMap<>();
|
private final HashMap<String, CachedFileDto> mFileMap = new HashMap<>();
|
||||||
|
|
||||||
@Scheduled(fixedDelay = 1, timeUnit = TimeUnit.HOURS, zone = "Europe/Rome")
|
|
||||||
public void clean() {
|
|
||||||
UtilityFile.cleanDirectory(getTempPath(), 1, "");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public DownloadFileDto generateDownloadItem(File file) throws IOException {
|
public DownloadFileDto generateDownloadItem(File file) throws IOException {
|
||||||
return generateDownloadItem(file.getName(), FileUtils.readFileToByteArray(file), false);
|
return generateDownloadItem(file.getName(), FileUtils.readFileToByteArray(file), false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package it.integry.ems.dto;
|
package it.integry.ems.dto;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
public class ExtendedStbActivity {
|
public class ExtendedStbActivity {
|
||||||
@@ -14,11 +15,9 @@ public class ExtendedStbActivity {
|
|||||||
private String userCreator;
|
private String userCreator;
|
||||||
private String note;
|
private String note;
|
||||||
private String activityDescription;
|
private String activityDescription;
|
||||||
private Date dataInsAct;
|
|
||||||
private int priorita;
|
private int priorita;
|
||||||
private Date alarmDate;
|
private LocalDateTime alarmTime;
|
||||||
private Date alarmTime;
|
private LocalDateTime oraInsAct;
|
||||||
private Date oraInsAct;
|
|
||||||
private String activityTypeId;
|
private String activityTypeId;
|
||||||
private String parentActivityId;
|
private String parentActivityId;
|
||||||
private StbActivityEmailObject emailObject;
|
private StbActivityEmailObject emailObject;
|
||||||
@@ -116,15 +115,6 @@ public class ExtendedStbActivity {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getDataInsAct() {
|
|
||||||
return dataInsAct;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExtendedStbActivity setDataInsAct(Date dataInsAct) {
|
|
||||||
this.dataInsAct = dataInsAct;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getPriorita() {
|
public int getPriorita() {
|
||||||
return priorita;
|
return priorita;
|
||||||
}
|
}
|
||||||
@@ -134,29 +124,20 @@ public class ExtendedStbActivity {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getAlarmDate() {
|
public LocalDateTime getAlarmTime() {
|
||||||
return alarmDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExtendedStbActivity setAlarmDate(Date alarmDate) {
|
|
||||||
this.alarmDate = alarmDate;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getAlarmTime() {
|
|
||||||
return alarmTime;
|
return alarmTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExtendedStbActivity setAlarmTime(Date alarmTime) {
|
public ExtendedStbActivity setAlarmTime(LocalDateTime alarmTime) {
|
||||||
this.alarmTime = alarmTime;
|
this.alarmTime = alarmTime;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getOraInsAct() {
|
public LocalDateTime getOraInsAct() {
|
||||||
return oraInsAct;
|
return oraInsAct;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExtendedStbActivity setOraInsAct(Date oraInsAct) {
|
public ExtendedStbActivity setOraInsAct(LocalDateTime oraInsAct) {
|
||||||
this.oraInsAct = oraInsAct;
|
this.oraInsAct = oraInsAct;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package it.integry.ems.dynamic_cache;
|
|||||||
import it.integry.ems.expansion.RunnableArgsWithReturn;
|
import it.integry.ems.expansion.RunnableArgsWithReturn;
|
||||||
import it.integry.ems.expansion.RunnableWithReturn;
|
import it.integry.ems.expansion.RunnableWithReturn;
|
||||||
import it.integry.ems.looper.service.LooperService;
|
import it.integry.ems.looper.service.LooperService;
|
||||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
import it.integry.ems.settings.Model.AvailableConnectionModel;
|
||||||
import it.integry.ems.settings.Model.SettingsModel;
|
import it.integry.ems.settings.Model.SettingsModel;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
@@ -51,11 +51,11 @@ public class DynamicCacheService {
|
|||||||
List<String> finalDbNames = dbNames.stream().map(String::toLowerCase).collect(Collectors.toList());
|
List<String> finalDbNames = dbNames.stream().map(String::toLowerCase).collect(Collectors.toList());
|
||||||
RunnableWithReturn<Object> internalRefreshAction = () -> {
|
RunnableWithReturn<Object> internalRefreshAction = () -> {
|
||||||
|
|
||||||
Map<String, List<AvailableConnectionsModel>> databases = settingsModel.getAvailableConnections()
|
Map<String, List<AvailableConnectionModel>> databases = settingsModel.getAvailableConnections()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(AvailableConnectionsModel::getInternalDb)
|
.filter(AvailableConnectionModel::getInternalDb)
|
||||||
.filter(x -> finalDbNames.contains(x.getDbName().toLowerCase()))
|
.filter(x -> finalDbNames.contains(x.getDbName().toLowerCase()))
|
||||||
.collect(Collectors.groupingBy(AvailableConnectionsModel::getDbName));
|
.collect(Collectors.groupingBy(AvailableConnectionModel::getDbName));
|
||||||
|
|
||||||
final HashMap<String, T> cachedDataByDB = new HashMap<>();
|
final HashMap<String, T> cachedDataByDB = new HashMap<>();
|
||||||
|
|
||||||
@@ -83,11 +83,11 @@ public class DynamicCacheService {
|
|||||||
|
|
||||||
RunnableWithReturn<Object> refreshAction = () -> {
|
RunnableWithReturn<Object> refreshAction = () -> {
|
||||||
|
|
||||||
Map<String, List<AvailableConnectionsModel>> databases = settingsModel.getAvailableConnections()
|
Map<String, List<AvailableConnectionModel>> databases = settingsModel.getAvailableConnections()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(AvailableConnectionsModel::getInternalDb)
|
.filter(AvailableConnectionModel::getInternalDb)
|
||||||
.filter(x -> finalDbNames.contains(x.getDbName().toLowerCase()))
|
.filter(x -> finalDbNames.contains(x.getDbName().toLowerCase()))
|
||||||
.collect(Collectors.groupingBy(AvailableConnectionsModel::getDbName));
|
.collect(Collectors.groupingBy(AvailableConnectionModel::getDbName));
|
||||||
|
|
||||||
final HashMap<String, List<? extends EntityBase>> cachedEntitiesByDB = new HashMap<>();
|
final HashMap<String, List<? extends EntityBase>> cachedEntitiesByDB = new HashMap<>();
|
||||||
|
|
||||||
@@ -138,11 +138,11 @@ public class DynamicCacheService {
|
|||||||
|
|
||||||
RunnableWithReturn<Object> refreshAction = () -> {
|
RunnableWithReturn<Object> refreshAction = () -> {
|
||||||
|
|
||||||
Map<String, List<AvailableConnectionsModel>> databases = settingsModel.getAvailableConnections()
|
Map<String, List<AvailableConnectionModel>> databases = settingsModel.getAvailableConnections()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(AvailableConnectionsModel::getInternalDb)
|
.filter(AvailableConnectionModel::getInternalDb)
|
||||||
.filter(x -> finalDbNames.contains(x.getDbName().toLowerCase()))
|
.filter(x -> finalDbNames.contains(x.getDbName().toLowerCase()))
|
||||||
.collect(Collectors.groupingBy(AvailableConnectionsModel::getDbName));
|
.collect(Collectors.groupingBy(AvailableConnectionModel::getDbName));
|
||||||
|
|
||||||
final HashMap<String, List<?>> cacheQueryByDB = new HashMap<>();
|
final HashMap<String, List<?>> cacheQueryByDB = new HashMap<>();
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import it.integry.annotations.PostContextConstruct;
|
|||||||
import it.integry.ems.entity_logger.db_schema_manager.component.SQLServerDBSchemaManager;
|
import it.integry.ems.entity_logger.db_schema_manager.component.SQLServerDBSchemaManager;
|
||||||
import it.integry.ems.entity_logger.db_schema_manager.dto.*;
|
import it.integry.ems.entity_logger.db_schema_manager.dto.*;
|
||||||
import it.integry.ems.looper.service.LooperService;
|
import it.integry.ems.looper.service.LooperService;
|
||||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
import it.integry.ems.settings.Model.AvailableConnectionModel;
|
||||||
import it.integry.ems.settings.Model.SettingsModel;
|
import it.integry.ems.settings.Model.SettingsModel;
|
||||||
import it.integry.ems.settings.SettingsController;
|
import it.integry.ems.settings.SettingsController;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
@@ -57,7 +57,7 @@ public class EntityLoggerComponent {
|
|||||||
|
|
||||||
private void syncDBScheme() throws Exception {
|
private void syncDBScheme() throws Exception {
|
||||||
|
|
||||||
AvailableConnectionsModel connectionsModel = settingsModel.getDefaultConnectionModel();
|
AvailableConnectionModel connectionsModel = settingsModel.getDefaultConnectionModel();
|
||||||
|
|
||||||
if (connectionsModel == null) {
|
if (connectionsModel == null) {
|
||||||
throw new Exception("Impossibile ricavare la default connection");
|
throw new Exception("Impossibile ricavare la default connection");
|
||||||
@@ -107,7 +107,7 @@ public class EntityLoggerComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (settingsModel.getAvailableConnections().stream().noneMatch(x -> x.getDbName().equalsIgnoreCase(destDBName))) {
|
if (settingsModel.getAvailableConnections().stream().noneMatch(x -> x.getDbName().equalsIgnoreCase(destDBName))) {
|
||||||
settingsModel.addAvailableConnection(new AvailableConnectionsModel()
|
settingsModel.addAvailableConnection(new AvailableConnectionModel()
|
||||||
.setInternalDb(false)
|
.setInternalDb(false)
|
||||||
.setHost(dbHost)
|
.setHost(dbHost)
|
||||||
.setUsername(dbUsername)
|
.setUsername(dbUsername)
|
||||||
@@ -210,12 +210,12 @@ public class EntityLoggerComponent {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
List<AvailableConnectionsModel> connectionsModels = settingsModel.getAvailableConnectionsWithoutDuplicatedProfiles(true);
|
List<AvailableConnectionModel> connectionsModels = settingsModel.getAvailableConnectionsWithoutDuplicatedProfiles(true);
|
||||||
String historyProfileDB = settingsController.getHistoryProfileDb();
|
String historyProfileDB = settingsController.getHistoryProfileDb();
|
||||||
|
|
||||||
try (MultiDBTransactionManager historyMultiDB = new MultiDBTransactionManager(historyProfileDB)) {
|
try (MultiDBTransactionManager historyMultiDB = new MultiDBTransactionManager(historyProfileDB)) {
|
||||||
|
|
||||||
for (AvailableConnectionsModel sourceConnectionModel : connectionsModels) {
|
for (AvailableConnectionModel sourceConnectionModel : connectionsModels) {
|
||||||
String sql = "SELECT * FROM stb_log_entity_setup" +
|
String sql = "SELECT * FROM stb_log_entity_setup" +
|
||||||
" WHERE entity_name <> " + UtilityDB.valueToString(StbLogEntitySetup.ENTITY);
|
" WHERE entity_name <> " + UtilityDB.valueToString(StbLogEntitySetup.ENTITY);
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package it.integry.ems.exception;
|
||||||
|
|
||||||
|
public class DistributoreDatabaseNotPresentException extends Exception {
|
||||||
|
|
||||||
|
public DistributoreDatabaseNotPresentException() {
|
||||||
|
super("Distributore database not present yet");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
package it.integry.ems.expansion;
|
package it.integry.ems.expansion;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Observable;
|
|
||||||
import java.util.Observer;
|
|
||||||
|
|
||||||
public class ObservableArrayList<T> extends Observable {
|
public class ObservableArrayList<T> extends Observable {
|
||||||
|
|
||||||
@@ -122,4 +119,16 @@ public class ObservableArrayList<T> extends Observable {
|
|||||||
notifyObservers();
|
notifyObservers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (!(o instanceof ObservableArrayList)) return false;
|
||||||
|
ObservableArrayList<?> that = (ObservableArrayList<?>) o;
|
||||||
|
return Objects.equals(value, that.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hashCode(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package it.integry.ems.expansion;
|
package it.integry.ems.expansion;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Observable;
|
import java.util.Observable;
|
||||||
|
|
||||||
public class ObservableField<T> extends Observable {
|
public class ObservableField<T> extends Observable {
|
||||||
@@ -34,4 +35,16 @@ public class ObservableField<T> extends Observable {
|
|||||||
|
|
||||||
super.addObserver((o, arg) -> observerCallback.run());
|
super.addObserver((o, arg) -> observerCallback.run());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (!(o instanceof ObservableField)) return false;
|
||||||
|
ObservableField<?> that = (ObservableField<?>) o;
|
||||||
|
return Objects.equals(value, that.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hashCode(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -369,7 +369,7 @@ public abstract class BaseEntityExporter implements IEntityExporter {
|
|||||||
entityExportResponse.setMessageContent("Messaggio creato automaticamente: " + "INVIO " + type + " formato " + format);
|
entityExportResponse.setMessageContent("Messaggio creato automaticamente: " + "INVIO " + type + " formato " + format);
|
||||||
}
|
}
|
||||||
|
|
||||||
fileSharerSettings = MailService.readParameter(multiDBTransactionManager, null);
|
fileSharerSettings = MailService.readParameter(multiDBTransactionManager.getPrimaryConnection(), null);
|
||||||
((EmailFileSharerSettings) fileSharerSettings)
|
((EmailFileSharerSettings) fileSharerSettings)
|
||||||
.withSubject(entityExportResponse.getMessageSubject())
|
.withSubject(entityExportResponse.getMessageSubject())
|
||||||
.withTextMessage(entityExportResponse.getMessageContent())
|
.withTextMessage(entityExportResponse.getMessageContent())
|
||||||
@@ -426,7 +426,7 @@ public abstract class BaseEntityExporter implements IEntityExporter {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
MailService mailService = ContextLoader.getCurrentWebApplicationContext().getBean(MailService.class);
|
MailService mailService = ContextLoader.getCurrentWebApplicationContext().getBean(MailService.class);
|
||||||
mailService.sendInfoMail(multiDBTransactionManager, notificationEmail,
|
mailService.sendInfoMail(multiDBTransactionManager.getPrimaryConnection(), notificationEmail,
|
||||||
String.format("Esportazione di %s - %s", getType(), getFormat()),
|
String.format("Esportazione di %s - %s", getType(), getFormat()),
|
||||||
String.format("come da accordi, l'esportazione %s - %s è stata completata.", getType(), getFormat()));
|
String.format("come da accordi, l'esportazione %s - %s è stata completata.", getType(), getFormat()));
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import it.integry.ems.response.FileItem;
|
|||||||
import it.integry.ems.service.EntityProcessor;
|
import it.integry.ems.service.EntityProcessor;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
import it.integry.ems_model.entity.WtbUsersInfo;
|
import it.integry.ems_model.entity.WtbUsersInfo;
|
||||||
|
import it.integry.ems_model.service.SetupGest;
|
||||||
import it.integry.ems_model.types.OperationType;
|
import it.integry.ems_model.types.OperationType;
|
||||||
import it.integry.ems_model.utility.UtilityDB;
|
import it.integry.ems_model.utility.UtilityDB;
|
||||||
import it.integry.ems_model.utility.UtilityResultSet;
|
import it.integry.ems_model.utility.UtilityResultSet;
|
||||||
@@ -27,8 +28,13 @@ public class ExportFromQuery {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private EntityProcessor entityProcessor;
|
private EntityProcessor entityProcessor;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SetupGest setupGest;
|
||||||
|
|
||||||
public EntityExportResponse export (String userName, String type, String format, String whereCond) throws Exception {
|
public EntityExportResponse export (String userName, String type, String format, String whereCond) throws Exception {
|
||||||
|
|
||||||
|
String query = setupGest.getExportSetup(multiDBTransactionManager.getPrimaryConnection(), type, format, "QUERY");
|
||||||
|
|
||||||
WtbUsersInfo wtbUsersInfo =
|
WtbUsersInfo wtbUsersInfo =
|
||||||
new WtbUsersInfo()
|
new WtbUsersInfo()
|
||||||
.setUserName(userName)
|
.setUserName(userName)
|
||||||
@@ -38,18 +44,20 @@ public class ExportFromQuery {
|
|||||||
|
|
||||||
entityProcessor.processEntity(wtbUsersInfo, multiDBTransactionManager);
|
entityProcessor.processEntity(wtbUsersInfo, multiDBTransactionManager);
|
||||||
|
|
||||||
String queryCustom = wtbUsersInfo.getQueryCustom();
|
if (UtilityString.isNullOrEmpty(wtbUsersInfo.getQueryCustom()) && UtilityString.isNullOrEmpty(query))
|
||||||
|
|
||||||
if (UtilityString.isNullOrEmpty(queryCustom))
|
|
||||||
throw new Exception(
|
throw new Exception(
|
||||||
String.format(
|
String.format(
|
||||||
"Query non configurata per l'utente %s tipo %s formato %s",
|
"Query non configurata per l'utente %s tipo %s formato %s o per il formato.",
|
||||||
userName, type, format));
|
userName, type, format));
|
||||||
|
|
||||||
queryCustom = UtilityDB.addwhereCond(queryCustom, whereCond, true);
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(wtbUsersInfo.getQueryCustom())) {
|
||||||
|
query = wtbUsersInfo.getQueryCustom();
|
||||||
|
}
|
||||||
|
query = UtilityDB.addwhereCond(query, whereCond, true);
|
||||||
PreparedStatement stm = multiDBTransactionManager
|
PreparedStatement stm = multiDBTransactionManager
|
||||||
.getPrimaryConnection()
|
.getPrimaryConnection()
|
||||||
.prepareStatement(queryCustom,
|
.prepareStatement(query,
|
||||||
ResultSet.TYPE_SCROLL_INSENSITIVE,
|
ResultSet.TYPE_SCROLL_INSENSITIVE,
|
||||||
ResultSet.CONCUR_READ_ONLY);
|
ResultSet.CONCUR_READ_ONLY);
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
|||||||
import com.fasterxml.jackson.core.JsonGenerator;
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
|
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
|
||||||
import com.fasterxml.jackson.dataformat.csv.CsvSchema.Column;
|
import com.fasterxml.jackson.dataformat.csv.CsvSchema.Column;
|
||||||
import it.integry.common.var.CommonConstants;
|
|
||||||
import it.integry.ems_model.ImportExport.Interfaces.IExportFormat;
|
import it.integry.ems_model.ImportExport.Interfaces.IExportFormat;
|
||||||
import it.integry.ems_model.ImportExport.Interfaces.IImportFormat;
|
import it.integry.ems_model.ImportExport.Interfaces.IImportFormat;
|
||||||
import it.integry.ems_model.annotation.DtoField;
|
import it.integry.ems_model.annotation.DtoField;
|
||||||
@@ -64,7 +63,7 @@ public class CsvMapper<T> {
|
|||||||
builder.addColumn(new Column(i, columns[i]));
|
builder.addColumn(new Column(i, columns[i]));
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.setLineSeparator(System.getProperty("line.separator"));
|
builder.setLineSeparator(System.lineSeparator());
|
||||||
CsvSchema schema = builder.build().withoutQuoteChar();
|
CsvSchema schema = builder.build().withoutQuoteChar();
|
||||||
|
|
||||||
mapper.configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true);
|
mapper.configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true);
|
||||||
|
|||||||
@@ -42,14 +42,14 @@ public class RequestDataDTO {
|
|||||||
private String password;
|
private String password;
|
||||||
private boolean includeNulls = false;
|
private boolean includeNulls = false;
|
||||||
|
|
||||||
private IntegryApplicationEnum integryApplication = IntegryApplicationEnum.PVM;
|
private IntegryApplicationEnum integryApplication;
|
||||||
|
|
||||||
private UserDTO userDTO;
|
private UserDTO userDTO;
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() throws IOException, InterruptedException {
|
public void init() throws IOException, InterruptedException {
|
||||||
|
|
||||||
if (request != null && request.getQueryString() != null && request.getQueryString().contains(CommonConstants.PROFILE_DB)) {
|
if (request != null && request.getParameter(CommonConstants.PROFILE_DB) != null) {
|
||||||
profileDB = request.getParameter(CommonConstants.PROFILE_DB);
|
profileDB = request.getParameter(CommonConstants.PROFILE_DB);
|
||||||
} else if (request != null && request.getHeader(CommonConstants.PROFILE_DB) != null) {
|
} else if (request != null && request.getHeader(CommonConstants.PROFILE_DB) != null) {
|
||||||
profileDB = request.getHeader(CommonConstants.PROFILE_DB);
|
profileDB = request.getHeader(CommonConstants.PROFILE_DB);
|
||||||
@@ -98,6 +98,12 @@ public class RequestDataDTO {
|
|||||||
.setPassword("sql");
|
.setPassword("sql");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static RequestDataDTO scheduledOperationsMockupData() {
|
||||||
|
return new RequestDataDTO()
|
||||||
|
.setUsername("INTEGRY")
|
||||||
|
.setPassword("INTEGRY");
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isValidProfileDB() {
|
public boolean isValidProfileDB() {
|
||||||
return !UtilityString.isNullOrEmpty(profileDB);
|
return !UtilityString.isNullOrEmpty(profileDB);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
package it.integry.ems.license;
|
package it.integry.ems.license;
|
||||||
|
|
||||||
import it.integry.common.var.CommonConstants;
|
import it.integry.ems.javabeans.RequestDataDTO;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.context.ContextLoader;
|
||||||
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@@ -11,7 +12,6 @@ import java.util.Random;
|
|||||||
|
|
||||||
public class LicenseCheckInterceptor extends HandlerInterceptorAdapter {
|
public class LicenseCheckInterceptor extends HandlerInterceptorAdapter {
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private LicenseComponent licenseComponent;
|
private LicenseComponent licenseComponent;
|
||||||
|
|
||||||
@@ -19,13 +19,9 @@ public class LicenseCheckInterceptor extends HandlerInterceptorAdapter {
|
|||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
HttpServletResponse response, Object handler) {
|
HttpServletResponse response, Object handler) {
|
||||||
|
|
||||||
|
RequestDataDTO requestData = ContextLoader.getCurrentWebApplicationContext().getBean(RequestDataDTO.class);
|
||||||
|
|
||||||
String profileDB = null;
|
String profileDB = requestData.getProfileDB();
|
||||||
if (request != null && request.getQueryString() != null && request.getQueryString().contains(CommonConstants.PROFILE_DB)) {
|
|
||||||
profileDB = request.getParameter(CommonConstants.PROFILE_DB);
|
|
||||||
} else if (request != null && request.getHeader(CommonConstants.PROFILE_DB) != null) {
|
|
||||||
profileDB = request.getHeader(CommonConstants.PROFILE_DB);
|
|
||||||
}
|
|
||||||
|
|
||||||
LicenseStatusDTO licenseStatusDTO = null;
|
LicenseStatusDTO licenseStatusDTO = null;
|
||||||
if (profileDB != null) licenseStatusDTO = licenseComponent.getLicenseStatus(profileDB);
|
if (profileDB != null) licenseStatusDTO = licenseComponent.getLicenseStatus(profileDB);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import it.integry.ems.json.ResponseJSONObjectMapper;
|
|||||||
import it.integry.ems.response.EsitoType;
|
import it.integry.ems.response.EsitoType;
|
||||||
import it.integry.ems.response.ServiceRestResponse;
|
import it.integry.ems.response.ServiceRestResponse;
|
||||||
import it.integry.ems.service.HttpRestWrapper;
|
import it.integry.ems.service.HttpRestWrapper;
|
||||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
import it.integry.ems.settings.Model.AvailableConnectionModel;
|
||||||
import it.integry.ems.settings.Model.SettingsModel;
|
import it.integry.ems.settings.Model.SettingsModel;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
@@ -25,6 +25,7 @@ import org.springframework.stereotype.Component;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@@ -59,11 +60,11 @@ public class LicenseComponent {
|
|||||||
if (!canStart)
|
if (!canStart)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
List<AvailableConnectionsModel> availableConnectionsModels = settingsModel.getAvailableConnections(true);
|
List<AvailableConnectionModel> availableConnectionModels = settingsModel.getAvailableConnections(true);
|
||||||
|
|
||||||
try (MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager()) {
|
try (MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager()) {
|
||||||
|
|
||||||
for (AvailableConnectionsModel model : availableConnectionsModels) {
|
for (AvailableConnectionModel model : availableConnectionModels) {
|
||||||
multiDBTransactionManager.addConnection(model);
|
multiDBTransactionManager.addConnection(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,14 +106,19 @@ public class LicenseComponent {
|
|||||||
} else {
|
} else {
|
||||||
List<LicenseStatusDTO> licenses = response.getDTO(new TypeReference<List<LicenseStatusDTO>>() {
|
List<LicenseStatusDTO> licenses = response.getDTO(new TypeReference<List<LicenseStatusDTO>>() {
|
||||||
});
|
});
|
||||||
if (licenses == null) return;
|
if (licenses == null || licenses.isEmpty()) return;
|
||||||
|
|
||||||
listAziende.forEach((key, value) -> {
|
listAziende.forEach((key, value) -> {
|
||||||
cachedLicenseStatus.remove(key);
|
cachedLicenseStatus.remove(key);
|
||||||
|
|
||||||
licenses.stream().filter(x -> x.getPartIva().equalsIgnoreCase(value))
|
final Optional<LicenseStatusDTO> licenseSearch = licenses.stream().filter(x -> x.getPartIva().equalsIgnoreCase(value))
|
||||||
.findFirst()
|
.findFirst();
|
||||||
.ifPresent(license -> cachedLicenseStatus.put(key, license));
|
|
||||||
|
if (licenseSearch.isPresent()) {
|
||||||
|
cachedLicenseStatus.put(key, licenseSearch.get());
|
||||||
|
} else {
|
||||||
|
cachedLicenseStatus.put(key, licenses.get(0));
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,13 @@ import java.util.Date;
|
|||||||
public class LicenseStatusDTO {
|
public class LicenseStatusDTO {
|
||||||
@SqlField("part_iva")
|
@SqlField("part_iva")
|
||||||
private String partIva;
|
private String partIva;
|
||||||
|
|
||||||
@SqlField("classe_merito")
|
@SqlField("classe_merito")
|
||||||
private Quality quality;
|
private Quality quality;
|
||||||
|
|
||||||
@SqlField
|
@SqlField
|
||||||
private Status status;
|
private Status status;
|
||||||
|
|
||||||
@SqlField("data_scad_license")
|
@SqlField("data_scad_license")
|
||||||
private Date expiringDate;
|
private Date expiringDate;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package it.integry.ems.menu.service;
|
package it.integry.ems.menu.service;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.microsoft.sqlserver.jdbc.SQLServerConnection;
|
||||||
import com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement;
|
import com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement;
|
||||||
import it.integry.annotations.PostContextAutowired;
|
import it.integry.annotations.PostContextAutowired;
|
||||||
import it.integry.annotations.PostContextConstruct;
|
import it.integry.annotations.PostContextConstruct;
|
||||||
@@ -100,6 +101,7 @@ public class MenuConfigurationService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void internalRefresh(Connection connection, MenuConfigDTO menuConfig, boolean forceRefresh) throws Exception {
|
private void internalRefresh(Connection connection, MenuConfigDTO menuConfig, boolean forceRefresh) throws Exception {
|
||||||
|
SQLServerConnection sqlServerConnection = connection.unwrap(SQLServerConnection.class);
|
||||||
final Azienda azienda = Azienda.getDefaultAzienda(connection);
|
final Azienda azienda = Azienda.getDefaultAzienda(connection);
|
||||||
|
|
||||||
if (azienda.getTipoAzienda() == null)
|
if (azienda.getTipoAzienda() == null)
|
||||||
@@ -120,7 +122,7 @@ public class MenuConfigurationService {
|
|||||||
"descrizione, gest_name, entity_name, picture_menu, picture_select, object_type, flag_printer_setup, parameter, note, open_type, is_deprecated)" +
|
"descrizione, gest_name, entity_name, picture_menu, picture_select, object_type, flag_printer_setup, parameter, note, open_type, is_deprecated)" +
|
||||||
" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||||
|
|
||||||
try (SQLServerPreparedStatement insertBulkPs = (SQLServerPreparedStatement) connection.prepareStatement(insertStbMenuOpzSQL)) {
|
try (SQLServerPreparedStatement insertBulkPs = (SQLServerPreparedStatement) sqlServerConnection.prepareStatement(insertStbMenuOpzSQL)) {
|
||||||
for (StbMenuOpzDTO stbMenuOpzDto : menuConfig.getStbMenuOpz()) {
|
for (StbMenuOpzDTO stbMenuOpzDto : menuConfig.getStbMenuOpz()) {
|
||||||
|
|
||||||
insertBulkPs.setString(1, stbMenuOpzDto.getCodOpz());
|
insertBulkPs.setString(1, stbMenuOpzDto.getCodOpz());
|
||||||
@@ -168,7 +170,7 @@ public class MenuConfigurationService {
|
|||||||
"pos_tipo_azienda, pos_cliente, descrizione_estesa) " +
|
"pos_tipo_azienda, pos_cliente, descrizione_estesa) " +
|
||||||
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||||
|
|
||||||
try (SQLServerPreparedStatement insertBulkPs = (SQLServerPreparedStatement) connection.prepareStatement(insertStbMenuSql)) {
|
try (SQLServerPreparedStatement insertBulkPs = (SQLServerPreparedStatement) sqlServerConnection.prepareStatement(insertStbMenuSql)) {
|
||||||
for (StbMenuDTO stbMenuDto : stbMenus) {
|
for (StbMenuDTO stbMenuDto : stbMenus) {
|
||||||
|
|
||||||
insertBulkPs.setString(1, stbMenuDto.getCodOpz());
|
insertBulkPs.setString(1, stbMenuDto.getCodOpz());
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import it.integry.ems_model.exception.DataConverterNotFoundException;
|
|||||||
import it.integry.ems_model.rulescompleting.DroolsDataCompleting;
|
import it.integry.ems_model.rulescompleting.DroolsDataCompleting;
|
||||||
import it.integry.ems_model.types.ApplicationName;
|
import it.integry.ems_model.types.ApplicationName;
|
||||||
import it.integry.ems_model.types.OperationType;
|
import it.integry.ems_model.types.OperationType;
|
||||||
|
import it.integry.ems_model.types.TypeDbObject;
|
||||||
import it.integry.ems_model.utility.Query;
|
import it.integry.ems_model.utility.Query;
|
||||||
import it.integry.ems_model.utility.UtilityDB;
|
import it.integry.ems_model.utility.UtilityDB;
|
||||||
import it.integry.ems_model.utility.UtilityString;
|
import it.integry.ems_model.utility.UtilityString;
|
||||||
@@ -154,6 +155,11 @@ public abstract class BaseMigration implements MigrationModelInterface {
|
|||||||
UtilityDB.createIndex(connection, indexTableDTO);
|
UtilityDB.createIndex(connection, indexTableDTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void cloneTable(String sourceTable, String newTable,boolean fillNewTable, boolean dropOldTable, boolean renameNewTable) throws Exception {
|
||||||
|
UtilityDB.cloneTable(connection, sourceTable, newTable, fillNewTable, dropOldTable, renameNewTable);
|
||||||
|
}
|
||||||
|
|
||||||
protected void dropIndex(String tableName, String indexName) throws Exception {
|
protected void dropIndex(String tableName, String indexName) throws Exception {
|
||||||
UtilityDB.dropIndex(connection, tableName, indexName);
|
UtilityDB.dropIndex(connection, tableName, indexName);
|
||||||
}
|
}
|
||||||
@@ -594,4 +600,38 @@ public abstract class BaseMigration implements MigrationModelInterface {
|
|||||||
protected boolean isSqlServer2022() throws Exception {
|
protected boolean isSqlServer2022() throws Exception {
|
||||||
return getSqlCompatibilityLevel() == DatabaseVersionEnum.SQLServer2022;
|
return getSqlCompatibilityLevel() == DatabaseVersionEnum.SQLServer2022;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void addDescriptionTable(String tableName, String description) throws SQLException {
|
||||||
|
if (existsTable(tableName)) {
|
||||||
|
addDescriptionObject(tableName, TypeDbObject.TABLE, description);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void addDescriptionView(String viewName, String description) throws SQLException {
|
||||||
|
if (existsView(viewName)) {
|
||||||
|
addDescriptionObject(viewName, TypeDbObject.VIEW, description);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addDescriptionObject(String objectName, TypeDbObject type, String description) throws SQLException {
|
||||||
|
String typeString = "TABLE";
|
||||||
|
|
||||||
|
if (type == TypeDbObject.VIEW) {
|
||||||
|
typeString = "VIEW";
|
||||||
|
}
|
||||||
|
executeStatement(
|
||||||
|
Query.format("EXEC sp_addextendedproperty " +
|
||||||
|
"@name = N'MS_Description', " +
|
||||||
|
"@value = %s, " +
|
||||||
|
"@level0type = N'SCHEMA', @level0name = 'dbo', " +
|
||||||
|
"@level1type = %s, @level1name = %s;", description, typeString, objectName));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addDescriptionColumn(String tableName, String columnName, String description) throws SQLException {
|
||||||
|
executeStatement(Query.format("EXEC sp_addextendedproperty 'MS_Description', %s, 'SCHEMA', 'dbo', 'TABLE',%s, 'COLUMN', %s)",
|
||||||
|
description, tableName, columnName));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ public enum IntegryCustomer {
|
|||||||
Biolevante(IntegryCustomerDB.Biolevante_Biolevante,
|
Biolevante(IntegryCustomerDB.Biolevante_Biolevante,
|
||||||
IntegryCustomerDB.Biolevante_BiolevanteStorico,
|
IntegryCustomerDB.Biolevante_BiolevanteStorico,
|
||||||
IntegryCustomerDB.Biolevante_TenutaSanMartino),
|
IntegryCustomerDB.Biolevante_TenutaSanMartino),
|
||||||
|
CapelliMonelli(IntegryCustomerDB.CapelliMonelli_CapelliMonelli),
|
||||||
Carelli(IntegryCustomerDB.Carelli_Carelli,
|
Carelli(IntegryCustomerDB.Carelli_Carelli,
|
||||||
IntegryCustomerDB.Carelli_GestFood,
|
IntegryCustomerDB.Carelli_GestFood,
|
||||||
IntegryCustomerDB.Carelli_Chiuso,
|
IntegryCustomerDB.Carelli_Chiuso,
|
||||||
|
|||||||
@@ -20,10 +20,11 @@ public enum IntegryCustomerDB {
|
|||||||
Auricchio_AuricchioSons("auricchiosons"),
|
Auricchio_AuricchioSons("auricchiosons"),
|
||||||
|
|
||||||
|
|
||||||
Biolevante_Biolevante("biolevante_peppe"),
|
Biolevante_Biolevante("biolevante"),
|
||||||
Biolevante_BiolevanteStorico("biolevante_storico"),
|
Biolevante_BiolevanteStorico("biolevante_storico"),
|
||||||
Biolevante_TenutaSanMartino("tenutasanmartino"),
|
Biolevante_TenutaSanMartino("tenutasanmartino"),
|
||||||
|
|
||||||
|
CapelliMonelli_CapelliMonelli("capelli_monelli"),
|
||||||
|
|
||||||
Carelli_Carelli("carelli"),
|
Carelli_Carelli("carelli"),
|
||||||
Carelli_GestFood("gestfood"),
|
Carelli_GestFood("gestfood"),
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package it.integry.ems.migration.model;
|
|||||||
|
|
||||||
import it.integry.ems.migration._base.BaseMigration;
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
import it.integry.ems.settings.Model.AvailableConnectionModel;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||||
import it.integry.ems_model.utility.UtilityDB;
|
import it.integry.ems_model.utility.UtilityDB;
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ public class Migration_20210721093948 extends BaseMigration implements Migration
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void up() throws Exception {
|
public void up() throws Exception {
|
||||||
AvailableConnectionsModel historyDBModel = settingsController.getHistoryDbConnectionModel();
|
AvailableConnectionModel historyDBModel = settingsController.getHistoryDbConnectionModel();
|
||||||
|
|
||||||
if (!settingsModel.getDefaultProfile().equalsIgnoreCase(connection.getProfileName()))
|
if (!settingsModel.getDefaultProfile().equalsIgnoreCase(connection.getProfileName()))
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package it.integry.ems.migration.model;
|
|||||||
|
|
||||||
import it.integry.ems.migration._base.BaseMigration;
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
import it.integry.ems.settings.Model.AvailableConnectionModel;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||||
import it.integry.ems_model.utility.UtilityDB;
|
import it.integry.ems_model.utility.UtilityDB;
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ public class Migration_20210924152555 extends BaseMigration implements Migration
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void up() throws Exception {
|
public void up() throws Exception {
|
||||||
AvailableConnectionsModel historyDBModel = settingsController.getHistoryDbConnectionModel();
|
AvailableConnectionModel historyDBModel = settingsController.getHistoryDbConnectionModel();
|
||||||
|
|
||||||
if (!settingsModel.getDefaultProfile().equalsIgnoreCase(connection.getProfileName()))
|
if (!settingsModel.getDefaultProfile().equalsIgnoreCase(connection.getProfileName()))
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -63,8 +63,7 @@ public class Migration_20220413102657 extends BaseMigration implements Migration
|
|||||||
.setCreationDatetime(wtbUser.getCreationDatetime())
|
.setCreationDatetime(wtbUser.getCreationDatetime())
|
||||||
.setPasswordExpiresDays(wtbUser.getPasswordExpiresDays())
|
.setPasswordExpiresDays(wtbUser.getPasswordExpiresDays())
|
||||||
.setLastPasswords(wtbUser.getLastPasswords())
|
.setLastPasswords(wtbUser.getLastPasswords())
|
||||||
.setFlagPasswordExpiring(wtbUser.getFlagPasswordExpiring())
|
.setFlagPasswordExpiring(wtbUser.getFlagPasswordExpiring());
|
||||||
.setDestructionDatetime(wtbUser.getDestructionDatetime());;
|
|
||||||
|
|
||||||
stbUser.setOperation(OperationType.INSERT);
|
stbUser.setOperation(OperationType.INSERT);
|
||||||
stbUser.manageWithParentConnection(connection, droolsDataCompleting);
|
stbUser.manageWithParentConnection(connection, droolsDataCompleting);
|
||||||
|
|||||||
@@ -19,14 +19,11 @@ public class Migration_20250403174531 extends BaseMigration implements Migration
|
|||||||
if (isHistoryDB())
|
if (isHistoryDB())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!isCustomer(IntegryCustomer.Gramm) &&
|
if (!isCustomer(IntegryCustomer.RossoGargano))
|
||||||
!isCustomer(IntegryCustomer.RossoGargano))
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (isCustomer(IntegryCustomer.RossoGargano)) {
|
//Rigenero barcodeUl testate con barcode duplicato
|
||||||
//Rigenero barcodeUl testate con barcode duplicato
|
regenerateDuplicatedBarcodeUlTestate();
|
||||||
regenerateDuplicatedBarcodeUlTestate();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Aggiorno la view mvw_mtb_colr_with_giacenza
|
//Aggiorno la view mvw_mtb_colr_with_giacenza
|
||||||
MigrationMvwSitArtUdcDetInventarioDTO.apply(connection);
|
MigrationMvwSitArtUdcDetInventarioDTO.apply(connection);
|
||||||
@@ -59,6 +56,7 @@ public class Migration_20250403174531 extends BaseMigration implements Migration
|
|||||||
colt.getDataCollo(),
|
colt.getDataCollo(),
|
||||||
colt.getSerCollo(),
|
colt.getSerCollo(),
|
||||||
colt.getNumCollo(),
|
colt.getNumCollo(),
|
||||||
|
null,
|
||||||
null);
|
null);
|
||||||
|
|
||||||
colt.setBarcodeUl(newBarcodeUl);
|
colt.setBarcodeUl(newBarcodeUl);
|
||||||
|
|||||||
@@ -16,8 +16,9 @@ public class Migration_20250417110238 extends BaseMigration implements Migration
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (!isCustomer(IntegryCustomer.Maggio) &&
|
if (!isCustomer(IntegryCustomer.Maggio) &&
|
||||||
!isCustomerDb(IntegryCustomerDB.Biolevante_Biolevante) &&
|
!isCustomer(IntegryCustomer.Biolevante) &&
|
||||||
!isCustomerDb(IntegryCustomerDB.Ime_ImeTe))
|
!isCustomer(IntegryCustomer.Ime) &&
|
||||||
|
!isCustomerDb(IntegryCustomerDB.Gramm_Gramm))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//Aggiorno la view mvw_mtb_colr_with_giacenza
|
//Aggiorno la view mvw_mtb_colr_with_giacenza
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250805155057 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("EXPORT_ORDINI VENDITA", "EXCEL_IMMAGINI", "QUERY", null,
|
||||||
|
"inserire la query base per tutte le esportazioni", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
|
||||||
|
if (isCustomer(IntegryCustomer.FolliesGroup)) {
|
||||||
|
updateSetupValue("EXPORT_ORDINI VENDITA", "EXCEL_IMMAGINI",
|
||||||
|
"QUERY", "\n" +
|
||||||
|
"SELECT mtb_aart.cod_mart,\n" +
|
||||||
|
" mtb_aart.descrizione,\n" +
|
||||||
|
" dtb_ordr.cod_col,\n" +
|
||||||
|
" dtb_ordr.cod_tagl,\n" +
|
||||||
|
" ttb_bar_code.cod_barre,\n" +
|
||||||
|
" dtb_ordr.qta_ord,\n" +
|
||||||
|
" dtb_ordr.val_unt,\n" +
|
||||||
|
" CEILING((dtb_ordr.val_unt + (ttb_style.val_scatto * ttb_style_taglie.num_scatto)) *\n" +
|
||||||
|
" (ttb_style.prz_retail_vend_iva / ttb_style.prezzo_base) / 0.10) * 0.10 AS przvendretail,\n" +
|
||||||
|
" ttb_style.des_comp,\n" +
|
||||||
|
" ttb_style_dazi_usa.cod_dazio,\n" +
|
||||||
|
" ttb_style.cod_nazi\n" +
|
||||||
|
"FROM dtb_ordt\n" +
|
||||||
|
" INNER JOIN dtb_ordr\n" +
|
||||||
|
" ON dtb_ordt.gestione = dtb_ordr.gestione\n" +
|
||||||
|
" AND dtb_ordt.data_ord = dtb_ordr.data_ord\n" +
|
||||||
|
" AND dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||||
|
" INNER JOIN mtb_aart\n" +
|
||||||
|
" ON dtb_ordr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" INNER JOIN ttb_style\n" +
|
||||||
|
" ON dtb_ordr.cod_mart = ttb_style.cod_style\n" +
|
||||||
|
" LEFT OUTER JOIN ttb_comp ON ttb_style.cod_comp = ttb_comp.cod_comp\n" +
|
||||||
|
" LEFT OUTER JOIN ttb_style_taglie\n" +
|
||||||
|
" ON dtb_ordr.cod_mart = ttb_style_taglie.cod_style\n" +
|
||||||
|
" AND dtb_ordr.cod_tagl = ttb_style_taglie.cod_tagl\n" +
|
||||||
|
" LEFT OUTER JOIN ttb_style_dazi_usa ON ttb_style_taglie.cod_style = ttb_style_dazi_usa.cod_style AND\n" +
|
||||||
|
" ttb_style_taglie.babynobaby = ttb_style_dazi_usa.babynobaby\n" +
|
||||||
|
" LEFT OUTER JOIN ttb_bar_code\n" +
|
||||||
|
" ON dtb_ordr.cod_mart = ttb_bar_code.cod_style\n" +
|
||||||
|
" AND dtb_ordr.cod_col = ttb_bar_code.cod_col\n" +
|
||||||
|
" AND dtb_ordr.cod_tagl = ttb_bar_code.cod_tagl\n" +
|
||||||
|
"WHERE dtb_ordr.gestione = 'V'\n" +
|
||||||
|
" AND dtb_ordr.flag_evaso <> 'A'\n" +
|
||||||
|
"ORDER BY mtb_aart.cod_mart,\n" +
|
||||||
|
" mtb_aart.descrizione,\n" +
|
||||||
|
" dtb_ordr.cod_col,\n" +
|
||||||
|
" ttb_style_taglie.pos");
|
||||||
|
|
||||||
|
executeStatement("update wtb_users_info SET query_custom = null\n" +
|
||||||
|
"where export_type = 'ORDINI VENDITA' AND \n" +
|
||||||
|
"format_file = 'EXCEL_IMMAGINI'");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250805173242 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetupQuery("SI_NO", "SI_NO", "SELECT 'S' UNION ALL SELECT 'N'");
|
||||||
|
createSetup("PVM", "MONITORAGGIO_LINEE_V2", "PROPONI_ULTIMO_VALORE_UDC", "S",
|
||||||
|
"Proponi l'ultimo valore inserito in creazione udc.", false, "SI_NO", false, false,
|
||||||
|
false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250806103557 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("w_ddocu_ord_rc", "SETUP", "VISUALIZZA_TUTTI_ALLEGATI", "S",
|
||||||
|
"se impostata ad S permette di visualizzare tutte le versioni delle stampe, ad N solo l'ultima", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
|
||||||
|
if (isCustomerDb(IntegryCustomerDB.Cosmapack_Cosmint)){
|
||||||
|
updateSetupValue("w_ddocu_ord_rc","SETUP","VISUALIZZA_TUTTI_ALLEGATI","N");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250806105411 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!isCustomerDb(IntegryCustomerDB.Vinella_Vinella))
|
||||||
|
return;
|
||||||
|
|
||||||
|
updateSetupValue("w_jriep_presenze_dip_disp", "DATAWINDOW", "D_JRIEP_PRESENZE_DIP_COMM_REP", "D_JRIEP_PRESENZE_DIP_ORE_VINELLA_REP",
|
||||||
|
null, false, null, false, false, false,
|
||||||
|
false, false, null, false, null);
|
||||||
|
|
||||||
|
executeStatement("DELETE\n" +
|
||||||
|
"FROM stb_gest_setup_depo\n" +
|
||||||
|
"WHERE gest_name = 'w_jriep_presenze_dip_disp'\n" +
|
||||||
|
" AND section = 'DATAWINDOW'\n" +
|
||||||
|
" AND key_section = 'D_JRIEP_PRESENZE_DIP_COMM_REP'"
|
||||||
|
);
|
||||||
|
|
||||||
|
executeStatement("DELETE\n" +
|
||||||
|
"FROM wtb_gest_setup_user\n" +
|
||||||
|
"WHERE gest_name = 'w_jriep_presenze_dip_disp'\n" +
|
||||||
|
" AND section = 'DATAWINDOW'\n" +
|
||||||
|
" AND key_section = 'D_JRIEP_PRESENZE_DIP_COMM_REP'"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250806163114 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateProcedure("UpdProgOrdini", "CREATE PROCEDURE [dbo].[UpdProgOrdini](\n" +
|
||||||
|
" @codAnag varchar(5),\n" +
|
||||||
|
" @codDtip varchar(5),\n" +
|
||||||
|
" @dataDoc dateTime,\n" +
|
||||||
|
" @serDoc varchar(2),\n" +
|
||||||
|
" @numDoc integer,\n" +
|
||||||
|
" @segno integer,\n" +
|
||||||
|
" @Operation varchar(1))\n" +
|
||||||
|
" /***DESCRIZIONE: Questa storedProcedure aggiorna la quantitàevasa degli ordini e anche il \n" +
|
||||||
|
" numero di pezzi, non contiene una serie di logiche particolarti tipo la \n" +
|
||||||
|
" sostuzione dell'articolo nell'ordine\n" +
|
||||||
|
" \n" +
|
||||||
|
" */\n" +
|
||||||
|
"AS\n" +
|
||||||
|
"BEGIN\n" +
|
||||||
|
" SET NOCOUNT ON;\n" +
|
||||||
|
" \n" +
|
||||||
|
"\n" +
|
||||||
|
" UPDATE dtb_ordr\n" +
|
||||||
|
" SET dtb_ordr.qta_evasa = CASE WHEN (SELECT application_name from azienda ) = 'WINGEST' THEN dtb_ordr.qta_evasa + CASE dtb_ordr.unt_ord\n" +
|
||||||
|
" when doc.unt_doc then doc.qta_doc\n" +
|
||||||
|
" when doc.unt_doc2 then doc.qta_doc2\n" +
|
||||||
|
" when doc.unt_doc3 then doc.qta_doc3\n" +
|
||||||
|
" else \n" +
|
||||||
|
"Round((@segno * (doc.qta_doc_no_um / dtb_ordr.rap_conv)),mtb_unt_mis.cifre_dec) end \n" +
|
||||||
|
" ELSE dtb_ordr.qta_evasa END, \n" +
|
||||||
|
" dtb_ordr.num_cnf_evasa = dtb_ordr.num_cnf_evasa + (@segno * doc.num_cnf),\n" +
|
||||||
|
" dtb_ordr.flag_evaso_forzato = CASE WHEN @Operation = 'D' THEN 'N' ELSE doc.flag_evaso_forzato END,\n" +
|
||||||
|
" dtb_ordr.flag_evaso = CASE WHEN @Operation = 'D' THEN 'I'\n" +
|
||||||
|
" WHEN doc.flag_evaso_forzato = 'S' THEN 'E' ELSE dtb_ordr.flag_evaso END \n" +
|
||||||
|
" FROM dtb_ordr INNER JOIN mtb_unt_mis ON dtb_ordr.unt_ord = mtb_unt_mis.unt_mis\n" +
|
||||||
|
" INNER JOIN \n" +
|
||||||
|
" (SELECT dtb_doct.gestione,\n" +
|
||||||
|
" dtb_docr.data_ord,\n" +
|
||||||
|
" dtb_docr.num_ord,\n" +
|
||||||
|
" dtb_docr.riga_ord,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc * dtb_docr.rap_conv) as qta_doc_no_um,\n" +
|
||||||
|
" \n" +
|
||||||
|
" dtb_docr.unt_doc,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc) as qta_doc,\n" +
|
||||||
|
" \n" +
|
||||||
|
" dtb_docr.unt_doc2,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc2) as qta_doc2,\n" +
|
||||||
|
" \n" +
|
||||||
|
" dtb_docr.unt_doc3,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc3) as qta_doc3,\n" +
|
||||||
|
" sum(dtb_docr.num_cnf) as num_cnf,\n" +
|
||||||
|
" max(dtb_docr.flag_evaso_forzato) as flag_evaso_forzato\n" +
|
||||||
|
" FROM dtb_doct inner join dtb_tipi on dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||||
|
" inner join dtb_docr on dtb_doct.cod_dtip = dtb_docr.cod_dtip and\n" +
|
||||||
|
" dtb_doct.cod_anag = dtb_docr.cod_anag and\n" +
|
||||||
|
" dtb_doct.data_doc = dtb_docr.data_doc and\n" +
|
||||||
|
" dtb_doct.ser_doc = dtb_docr.ser_doc and\n" +
|
||||||
|
" dtb_doct.num_doc = dtb_docr.num_doc \n" +
|
||||||
|
" WHERE dtb_doct.cod_dtip = @codDtip AND\n" +
|
||||||
|
" dtb_doct.cod_anag = @codAnag AND\n" +
|
||||||
|
" dtb_doct.data_doc = @dataDoc AND\n" +
|
||||||
|
" dtb_doct.ser_doc = @serDoc AND\n" +
|
||||||
|
" dtb_doct.num_doc = @numDoc AND\n" +
|
||||||
|
" dtb_docr.data_ord is not null AND\n" +
|
||||||
|
" ( dtb_doct.gestione <> 'L' AND (dtb_tipi.segno_qta_car = 1 OR dtb_tipi.segno_qta_scar = 1 ) OR \n" +
|
||||||
|
" ( dtb_doct.gestione = 'L' AND dtb_tipi.segno_qta_scar = 1 ))\n" +
|
||||||
|
" GROUP BY dtb_doct.gestione,\n" +
|
||||||
|
" dtb_docr.data_ord,\n" +
|
||||||
|
" dtb_docr.num_ord,\n" +
|
||||||
|
" dtb_docr.riga_ord, \n" +
|
||||||
|
" dtb_docr.unt_doc, \n" +
|
||||||
|
" dtb_docr.unt_doc2, \n" +
|
||||||
|
" dtb_docr.unt_doc3 \n" +
|
||||||
|
" UNION ALL\n" +
|
||||||
|
" SELECT dtb_ordt.gestione_rif,\n" +
|
||||||
|
" dtb_ordt.data_ord_rif, \n" +
|
||||||
|
" dtb_ordt.num_ord_rif, \n" +
|
||||||
|
" dtb_ordt.riga_ord_rif,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc * dtb_docr.rap_conv) as qta_doc_no_um,\n" +
|
||||||
|
" \n" +
|
||||||
|
" dtb_docr.unt_doc,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc) as qta_doc,\n" +
|
||||||
|
" \n" +
|
||||||
|
" dtb_docr.unt_doc2,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc2) as qta_doc2,\n" +
|
||||||
|
" \n" +
|
||||||
|
" dtb_docr.unt_doc3,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc3) as qta_doc3,\n" +
|
||||||
|
" sum(dtb_docr.num_cnf) as num_cnf,\n" +
|
||||||
|
" max(dtb_docr.flag_evaso_forzato) as flag_evaso_forzato\n" +
|
||||||
|
" FROM dtb_doct inner join dtb_tipi on dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||||
|
" inner join dtb_docr on dtb_doct.cod_dtip = dtb_docr.cod_dtip and\n" +
|
||||||
|
" dtb_doct.cod_anag = dtb_docr.cod_anag and\n" +
|
||||||
|
" dtb_doct.data_doc = dtb_docr.data_doc and\n" +
|
||||||
|
" dtb_doct.ser_doc = dtb_docr.ser_doc and\n" +
|
||||||
|
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
|
||||||
|
" left outer join dtb_ordt ON dtb_tipi.gestione = dtb_ordt.gestione and\n" +
|
||||||
|
" dtb_docr.data_ord = dtb_ordt.data_ord and\n" +
|
||||||
|
" dtb_docr.num_ord = dtb_ordt.num_ord\n" +
|
||||||
|
" WHERE dtb_doct.cod_dtip = @codDtip AND\n" +
|
||||||
|
" dtb_doct.cod_anag = @codAnag AND\n" +
|
||||||
|
" dtb_doct.data_doc = @dataDoc AND\n" +
|
||||||
|
" dtb_doct.ser_doc = @serDoc AND\n" +
|
||||||
|
" dtb_doct.num_doc = @numDoc AND\n" +
|
||||||
|
" dtb_docr.data_ord is not null AND\n" +
|
||||||
|
" dtb_doct.gestione = 'L' AND dtb_tipi.segno_qta_car = 1 AND\n" +
|
||||||
|
" (SELECT application_name from azienda ) = 'WINGEST'\n" +
|
||||||
|
" GROUP BY dtb_ordt.gestione_rif,\n" +
|
||||||
|
" dtb_ordt.data_ord_rif,\n" +
|
||||||
|
" dtb_ordt.num_ord_rif,\n" +
|
||||||
|
" dtb_ordt.riga_ord_rif, \n" +
|
||||||
|
" dtb_docr.unt_doc, \n" +
|
||||||
|
" dtb_docr.unt_doc2, \n" +
|
||||||
|
" dtb_docr.unt_doc3 ) doc ON\n" +
|
||||||
|
" dtb_ordr.gestione = doc.gestione AND\n" +
|
||||||
|
" dtb_ordr.data_ord = doc.data_ord AND\n" +
|
||||||
|
" dtb_ordr.num_ord = doc.num_ord AND\n" +
|
||||||
|
" dtb_ordr.riga_ord = doc.riga_ord;\n" +
|
||||||
|
" \n" +
|
||||||
|
" \n" +
|
||||||
|
"END");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250807105039 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView(
|
||||||
|
"wtb_users",
|
||||||
|
"CREATE VIEW [dbo].[Wtb_users] AS\n" +
|
||||||
|
" SELECT [User_name],\n" +
|
||||||
|
" [Full_name],\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN stb_user.key_group = 1 OR stb_user.flag_dba = 'S' THEN NULL\n" +
|
||||||
|
" ELSE dbo.sys_dcd_pss([Password]) END AS [Password],\n" +
|
||||||
|
" [key_group],\n" +
|
||||||
|
" [User_code],\n" +
|
||||||
|
" [Details],\n" +
|
||||||
|
" [Last_access_datetime],\n" +
|
||||||
|
" [flag_attivo] AS ctrl_state,\n" +
|
||||||
|
" [password_endtime],\n" +
|
||||||
|
" [url_css],\n" +
|
||||||
|
" [cod_lang],\n" +
|
||||||
|
" [creation_datetime],\n" +
|
||||||
|
" [e_mail],\n" +
|
||||||
|
" [password_expires_days],\n" +
|
||||||
|
" [last_passwords],\n" +
|
||||||
|
" [flag_password_expiring],\n" +
|
||||||
|
" password_endtime AS [destruction_datetime]\n" +
|
||||||
|
" FROM [dbo].stb_user\n" +
|
||||||
|
" WHERE flag_extra_user = 'S'\n"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250807112659 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
dropColumn("stb_user", "destruction_datetime");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250807114849 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("IMPORT_BILANCE", "DIGI", "ATTIVO", "N",
|
||||||
|
"Inserire S/N per attivare/disattivare il tipo di importazione", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BILANCE", "DIGI", "EMAIL_FOR_LOG", null,
|
||||||
|
"Inserire il file l'indirizzo email per inviare il log dell'importazione", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BILANCE", "DIGI", "FILE_FILTER", null,
|
||||||
|
"Inserire il criterio di filtro dei file o il nome del file specifio (seguire la sintassi di java)", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BILANCE", "DIGI", "GG_CANC_FILE", null,
|
||||||
|
"Giorni per la cancellazione dei file dalla cartella di appoggio", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BILANCE", "DIGI", "IMPORT_REST", "S",
|
||||||
|
"Inserire S/N per attivare/disattivare il salvataggio con i servizi REST", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BILANCE", "DIGI", "LISTENING", "N",
|
||||||
|
"Se LISTENIG = 'N' la procedura di importazione non si potrà mai mettere in ascolto sulla directory perchè nella procedura vengono prese in considerazione più file.", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BILANCE", "DIGI", "PATH_FILE", null,
|
||||||
|
"Directory contente i file da importare.", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BILANCE", "DIGI", "PATH_FILE_IMPORTED", null,
|
||||||
|
"Directory dove vengono spostati i file dopo l'importazione.", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250807114902 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
executeStatement("CREATE TABLE ntb_pesate\n" +
|
||||||
|
"(\n" +
|
||||||
|
" id BIGINT IDENTITY PRIMARY KEY,\n" +
|
||||||
|
" cod_mdep VARCHAR(5) NOT NULL,\n" +
|
||||||
|
" data_pesate DATETIME NOT NULL,\n" +
|
||||||
|
" cod_mart VARCHAR(15) NOT NULL,\n" +
|
||||||
|
" qta_pesata NUMERIC(10, 5) NOT NULL DEFAULT 0,\n" +
|
||||||
|
" prz_vend NUMERIC(20, 5) NOT NULL DEFAULT 0,\n" +
|
||||||
|
"\n" +
|
||||||
|
" CONSTRAINT fk_ntb_pesate_mtb_depo\n" +
|
||||||
|
" FOREIGN KEY (cod_mdep) REFERENCES mtb_depo (cod_mdep),\n" +
|
||||||
|
" CONSTRAINT fk_ntb_pesate_mtb_aart\n" +
|
||||||
|
" FOREIGN KEY (cod_mart) REFERENCES mtb_aart (cod_mart)\n" +
|
||||||
|
");");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
import it.integry.ems_model.entity.StbGestSetupDet;
|
||||||
|
import it.integry.ems_model.types.OperationType;
|
||||||
|
|
||||||
|
public class Migration_20250807165031 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
deleteSetup("PVM", "CHIUSURA_TAGLI_PREZZO", "COD_MGRP");
|
||||||
|
|
||||||
|
createSetup("PVM", "CHIUSURA_TAGLI_PREZZO", "COD_MGRP", null,
|
||||||
|
"Setup per filtrare i gruppi disponibili per gruppo utente.", false, "COD_MGRP", false, false,
|
||||||
|
false, false, false, "Wtb_user_groups", true);
|
||||||
|
|
||||||
|
if (isCustomerDb(IntegryCustomerDB.Carelli_Carelli)) {
|
||||||
|
StbGestSetupDet stbGestSetupDet = new StbGestSetupDet()
|
||||||
|
.setGestName("PVM")
|
||||||
|
.setSection("CHIUSURA_TAGLI_PREZZO")
|
||||||
|
.setKeySection("COD_MGRP")
|
||||||
|
.setTipoSetup("Wtb_user_groups")
|
||||||
|
.setValColRif("10")
|
||||||
|
.setValue("02");
|
||||||
|
|
||||||
|
stbGestSetupDet.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
|
stbGestSetupDet.manageWithParentConnection(connection);
|
||||||
|
}
|
||||||
|
|
||||||
|
createSetupQuery("COD_PROMO", "COD_PROMO", "SELECT cod_promo FROM vtb_promo");
|
||||||
|
createSetup("PVM", "CHIUSURA_TAGLI_PREZZO", "COD_PROMO", null,
|
||||||
|
"Setup per filtrare le promo disponibili per gruppo utente.", false, "COD_PROMO", false, false,
|
||||||
|
false, false, false, "Wtb_user_groups", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250807171229 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
executeStatement("ALTER TABLE dtb_tipi add cod_paga varchar(5), \n" +
|
||||||
|
"\tFOREIGN KEY (cod_paga) REFERENCES gtb_paga(cod_paga);");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250808161600 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("IMPORT_BANCA", "TASSI_DI_CAMBIO", "ATTIVO", "N",
|
||||||
|
"Inserire S/N per attivare/disattivare il tipo di importazione", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BANCA", "TASSI_DI_CAMBIO", "EMAIL_FOR_LOG", null,
|
||||||
|
"Inserire il file l'indirizzo email per inviare il log dell'importazione", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BANCA", "TASSI_DI_CAMBIO", "FILE_FILTER", null,
|
||||||
|
"Inserire il criterio di filtro dei file o il nome del file specifio (seguire la sintassi di java)", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BANCA", "TASSI_DI_CAMBIO", "GG_CANC_FILE", null,
|
||||||
|
"Giorni per la cancellazione dei file dalla cartella di appoggio", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BANCA", "TASSI_DI_CAMBIO", "IMPORT_REST", "S",
|
||||||
|
"Inserire S/N per attivare/disattivare il salvataggio con i servizi REST", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BANCA", "TASSI_DI_CAMBIO", "LISTENING", "N",
|
||||||
|
"Se LISTENIG = 'N' la procedura di importazione non si potrà mai mettere in ascolto sulla directory perchè nella procedura vengono prese in considerazione più file.", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BANCA", "TASSI_DI_CAMBIO", "PATH_FILE", null,
|
||||||
|
"Directory contente i file da importare.", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_BANCA", "TASSI_DI_CAMBIO", "PATH_FILE_IMPORTED", null,
|
||||||
|
"Directory dove vengono spostati i file dopo l'importazione.", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250811101036 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
executeStatement("drop table drl_tipi_mod_stampa");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250811102732 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
executeStatement(" CREATE TABLE drl_tipi_report (id bigint identity not null, cod_dtip varchar(5) not null, report_id bigint not null, \n" +
|
||||||
|
" \tsort_id TinyInt not null default 0, report_type tinyInt, is_required bit default 0,\n" +
|
||||||
|
" CONSTRAINT PK_drl_tipi_report PRIMARY KEY (id),\n" +
|
||||||
|
" CONSTRAINT FK_drl_tipi_report_cod_dtip FOREIGN KEY (cod_dtip) REFERENCES dtb_tipi(cod_dtip),\n" +
|
||||||
|
" CONSTRAINT FK_drl_tipi_report_report_id FOREIGN KEY (report_id) REFERENCES wtb_jrept(id))",
|
||||||
|
" CREATE UNIQUE INDEX idx_cod_dtip_sort_id ON drl_tipi_report (cod_dtip, sort_id)");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250812171739 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("IMPORT_COLLI", "SONOCO", "ATTIVO", "N",
|
||||||
|
"Inserire S/N per attivare/disattivare il tipo di importazione", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_COLLI", "SONOCO", "COD_ANAG", null,
|
||||||
|
"Codice fornitore", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_COLLI", "SONOCO", "EMAIL_FOR_LOG", null,
|
||||||
|
"Inserire il file l'indirizzo email per inviare il log dell'importazione", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_COLLI", "SONOCO", "FILE_FILTER", null,
|
||||||
|
"Inserire il criterio di filtro dei file o il nome del file specifio (seguire la sintassi di java)", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_COLLI", "SONOCO", "GG_CANC_FILE", null,
|
||||||
|
"Giorni per la cancellazione dei file dalla cartella di appoggio", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_COLLI", "SONOCO", "IMPORT_REST", "S",
|
||||||
|
"Inserire S/N per attivare/disattivare il salvataggio con i servizi REST", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_COLLI", "SONOCO", "LISTENING", "N",
|
||||||
|
"Se LISTENIG = 'N' la procedura di importazione non si potrà mai mettere in ascolto sulla directory perchè nella procedura vengono prese in considerazione più file.", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_COLLI", "SONOCO", "PATH_FILE", null,
|
||||||
|
"Directory contente i file da importare.", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
createSetup("IMPORT_COLLI", "SONOCO", "PATH_FILE_IMPORTED", null,
|
||||||
|
"Directory dove vengono spostati i file dopo l'importazione.", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
import it.integry.ems_model.entity.JtbFasi;
|
||||||
|
import it.integry.ems_model.entity.StbGestSetup;
|
||||||
|
import it.integry.ems_model.entity.StbGestSetupDet;
|
||||||
|
import it.integry.ems_model.types.OperationType;
|
||||||
|
import it.integry.ems_model.utility.UtilityDB;
|
||||||
|
import it.integry.ems_model.utility.UtilityList;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Migration_20250818162653 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
StbGestSetup setup = new StbGestSetup()
|
||||||
|
.setGestName("PVM")
|
||||||
|
.setSection("MONITORAGGIO_LINEE_V2")
|
||||||
|
.setKeySection("REPORT_NAME_ORDINE")
|
||||||
|
.setTipoSetup(JtbFasi.ENTITY);
|
||||||
|
setup.setOperation(OperationType.UPDATE);
|
||||||
|
|
||||||
|
if (isCustomer(IntegryCustomer.RossoGargano)){
|
||||||
|
|
||||||
|
String sql = "SELECT cod_jfas,cod_jfas_parent from jtb_fasi where cod_jfas_parent in ('CONF','PROD') and um_prod is not null";
|
||||||
|
List<JtbFasi> listFasi = UtilityDB.executeSimpleQueryDTO(connection, sql, JtbFasi.class);
|
||||||
|
if (!UtilityList.isNullOrEmpty(listFasi)){
|
||||||
|
for (JtbFasi jtbFasi: listFasi){
|
||||||
|
StbGestSetupDet setupDet = new StbGestSetupDet()
|
||||||
|
.setValColRif(jtbFasi.getCodJfas())
|
||||||
|
.setGestName(setup.getGestName())
|
||||||
|
.setSection(setup.getSection())
|
||||||
|
.setKeySection(setup.getKeySection())
|
||||||
|
.setTipoSetup(setup.getTipoSetup())
|
||||||
|
.setValue("CONF".equalsIgnoreCase(jtbFasi.getCodJfasParent()) ? "StampaOrdineDiEtichettatura" : "StampaOrdineDiLavorazione");
|
||||||
|
|
||||||
|
setupDet.setOperation(OperationType.INSERT);
|
||||||
|
setup.getStbGestSetupDet().add(setupDet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setup.manageWithParentConnection(connection);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,433 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250825162112 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
if (!isCustomer(IntegryCustomer.Smetar)) return;
|
||||||
|
|
||||||
|
createOrUpdateView("vsvw_vendite", "CREATE view [dbo].[vsvw_vendite] as \n" +
|
||||||
|
"SELECT DISTINCT dtb_doct_b.cod_dtip_val AS cod_dtip,\n" +
|
||||||
|
" dtb_doct_b.data_doc_val AS data_doc,\n" +
|
||||||
|
" dtb_doct_b.ser_doc_val AS ser_doc,\n" +
|
||||||
|
" dtb_doct_b.num_doc_val AS num_doc,\n" +
|
||||||
|
" dtb_docr.cod_dtip_comp,\n" +
|
||||||
|
" dtb_docr.data_doc_comp,\n" +
|
||||||
|
" dtb_docr.ser_doc_comp,\n" +
|
||||||
|
" dtb_docr.num_doc_comp,\n" +
|
||||||
|
" dtb_doct_a.cod_vage,\n" +
|
||||||
|
" ISNULL(vtb_clie.cod_anag_stat, dtb_doct_b.cod_anag) AS cod_anag,\n" +
|
||||||
|
" dtb_doct_b.cod_vdes,\n" +
|
||||||
|
" dtb_doct_b.cod_vzon,\n" +
|
||||||
|
" vtb_clie.cod_vtip,\n" +
|
||||||
|
" dtb_doct_b.cod_dtip AS cod_dtip_bolla,\n" +
|
||||||
|
" dtb_doct_b.data_doc AS data_doc_bolla,\n" +
|
||||||
|
" dtb_doct_b.ser_doc AS ser_doc_bolla,\n" +
|
||||||
|
" dtb_doct_b.num_doc AS num_doc_bolla,\n" +
|
||||||
|
" dtb_doct_b.cod_mdep,\n" +
|
||||||
|
" ISNULL(mtb_aart.cod_mart_stat, dtb_docr.cod_mart) AS cod_mart,\n" +
|
||||||
|
" mtb_aart.cod_mgrp,\n" +
|
||||||
|
" mtb_aart.cod_msgr,\n" +
|
||||||
|
" mtb_aart.cod_mtip,\n" +
|
||||||
|
" mtb_aart.cod_mstp,\n" +
|
||||||
|
" ISNULL(mtb_aart.descrizione_stat, dtb_docr.descrizione) AS descrizione,\n" +
|
||||||
|
" dtb_docr.unt_doc,\n" +
|
||||||
|
" (segno_val_scar - segno_val_car) * dtb_doct_a.tot_imponib /\n" +
|
||||||
|
" dtb_doct_a.cambio AS tot_imponib,\n" +
|
||||||
|
" (segno_val_scar - segno_val_car) * dtb_doct_a.tot_iva /\n" +
|
||||||
|
" dtb_doct_a.cambio AS tot_iva,\n" +
|
||||||
|
" dtb_doct_b.tot_imponib / dtb_doct_b.cambio AS tot_imponib_bolla,\n" +
|
||||||
|
" dtb_doct_b.tot_iva / dtb_doct_b.cambio AS tot_iva_bolla,\n" +
|
||||||
|
" (segno_val_scar - segno_val_car) * dtb_docr.importo_riga /\n" +
|
||||||
|
" dtb_doct_b.cambio AS importo_riga,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN sconto5 <> 100 AND sconto6 <> 100 AND sconto7 <> 100 AND sconto8 <> 100\n" +
|
||||||
|
" THEN (segno_qta_scar - segno_qta_car) * qta_doc\n" +
|
||||||
|
" ELSE 0 END AS qta_vend,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN mtb_aart.peso_kg <> 0 AND mtb_aart.peso_kg IS NOT NULL THEN (CASE\n" +
|
||||||
|
" WHEN sconto5 <> 100 AND sconto6 <> 100 AND sconto7 <> 100 AND sconto8 <> 100\n" +
|
||||||
|
" THEN\n" +
|
||||||
|
" (segno_qta_scar - segno_qta_car) *\n" +
|
||||||
|
" qta_doc *\n" +
|
||||||
|
" dtb_docr.rap_conv *\n" +
|
||||||
|
" mtb_aart.peso_kg\n" +
|
||||||
|
" ELSE 0 END)\n" +
|
||||||
|
" ELSE 0 END AS qta_vend_kg,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN sconto5 <> 100 AND sconto6 <> 100 AND sconto7 <> 100 AND sconto8 <> 100 THEN\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto5 / 100) * (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto8 / 100)) / dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_vend,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN sconto5 = 100 OR sconto6 = 100 OR sconto7 = 100 THEN (segno_qta_scar - segno_qta_car) * qta_doc\n" +
|
||||||
|
" ELSE 0 END AS qta_omg,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN mtb_aart.peso_kg <> 0 AND mtb_aart.peso_kg IS NOT NULL THEN (CASE\n" +
|
||||||
|
" WHEN sconto5 = 100 OR sconto6 = 100 OR sconto7 = 100\n" +
|
||||||
|
" THEN\n" +
|
||||||
|
" (segno_qta_scar - segno_qta_car) *\n" +
|
||||||
|
" qta_doc *\n" +
|
||||||
|
" dtb_docr.rap_conv *\n" +
|
||||||
|
" mtb_aart.peso_kg\n" +
|
||||||
|
" ELSE 0 END)\n" +
|
||||||
|
" ELSE 0 END AS qta_omg_kg,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN sconto5 = 100 OR sconto6 = 100 OR sconto7 = 100 THEN\n" +
|
||||||
|
" ((segno_qta_scar - segno_qta_car) * qta_doc * val_unt) / dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_omg,\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100) *\n" +
|
||||||
|
" (dtb_docr.perc_prov / 100) + (segno_val_scar - segno_val_car) * qta_doc * val_prov) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS importo_prov,\n" +
|
||||||
|
" dtb_docr.id_riga,\n" +
|
||||||
|
" gtb_divi.cod_divi,\n" +
|
||||||
|
" dtb_doct_a.listino AS cod_vlis,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN sconto5 <> 100 AND sconto6 <> 100 AND sconto7 <> 100 AND sconto8 <> 100\n" +
|
||||||
|
" THEN (segno_qta_scar - segno_qta_car) * qta_doc * costo_unt / dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_costo,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN sconto5 = 100 OR sconto6 = 100 OR sconto7 = 100 THEN\n" +
|
||||||
|
" ((segno_qta_scar - segno_qta_car) * qta_doc * costo_unt) / dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_omg_costo,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN sconto8 = 100 THEN ((segno_qta_scar - segno_qta_car) * qta_doc * costo_unt) / dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_scarti_prod,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN flag_tipo_reso = 'R' THEN\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto5 / 100) * (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto8 / 100)) / dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_resi_rivendibili,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN flag_tipo_reso = 'S' THEN\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto5 / 100) * (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto8 / 100)) / dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_resi_non_rivendibili,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN flag_tipo_reso = 'P' THEN\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto5 / 100) * (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto8 / 100)) / dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_resi_rettifica_prezzo,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN flag_tipo_reso IS NOT NULL THEN (segno_qta_scar - segno_qta_car) * qta_doc\n" +
|
||||||
|
" ELSE 0 END AS qta_resi_rivendibili,\n" +
|
||||||
|
" dtb_docr.rap_conv,\n" +
|
||||||
|
" qta_doc * dtb_docr.rap_conv * peso_kg * (segno_qta_scar - segno_qta_car) AS pesokg,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN dtb_docr.qta_cnf * (segno_qta_scar - segno_qta_car) = 0 THEN 0\n" +
|
||||||
|
" ELSE qta_doc * dtb_docr.rap_conv / dtb_docr.qta_cnf *\n" +
|
||||||
|
" (segno_qta_scar - segno_qta_car) END AS confezioni,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (dtb_doct_b.sconto1 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto1,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (dtb_doct_b.sconto2 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto2,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (dtb_doct_b.sconto3 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto3,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100) *\n" +
|
||||||
|
" (dtb_doct_b.sconto4 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto4,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (dtb_docr.sconto5 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto5,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (dtb_docr.sconto6 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto6,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (dtb_docr.sconto7 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto7,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (dtb_docr.sconto8 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto8,\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS fatturato_lordo,\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_doct_b.sconto4 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto5 / 100) * (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto8 / 100) * (dtb_docr.perc_gest / 100) +\n" +
|
||||||
|
" (segno_val_scar - segno_val_car) * qta_doc * val_gest) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS importo_gest,\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100) *\n" +
|
||||||
|
" (dtb_docr.perc_ispe / 100) + (segno_val_scar - segno_val_car) * qta_doc * val_ispe) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS importo_prov_ispe,\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100) *\n" +
|
||||||
|
" (dtb_docr.perc_promo / 100) + (segno_val_scar - segno_val_car) * qta_doc * val_promo) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS importo_promo,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100) *\n" +
|
||||||
|
" (dtb_docr.perc_oneri / 100) + (segno_val_scar - segno_val_car) * qta_doc * val_oneri) /\n" +
|
||||||
|
" dtb_doct_b.cambio) + ISNULL(\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto5 / 100) * (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto8 / 100) * (venditeoneri.perc_oneri_art / 100) +\n" +
|
||||||
|
" (segno_val_scar - segno_val_car) * qta_doc * venditeoneri.val_oneri_art) / dtb_doct_b.cambio),\n" +
|
||||||
|
" 0) AS importo_oneri,\n" +
|
||||||
|
" dtb_docr.cod_promo,\n" +
|
||||||
|
" vtb_clie.cod_vass,\n" +
|
||||||
|
" vtb_clie.cod_vgrp_acq,\n" +
|
||||||
|
" mtb_aart.peso_kg,\n" +
|
||||||
|
" mtb_aart.qta_cnf,\n" +
|
||||||
|
" CONVERT(INT, CASE WHEN dtb_doct_b.cod_forn_td IS NULL THEN 0 ELSE 1 END) AS flag_doc_td,\n" +
|
||||||
|
" dtb_docr.cod_jcom\n" +
|
||||||
|
"FROM dtb_docr\n" +
|
||||||
|
" LEFT OUTER JOIN dbo.getviewvenditeoneri() venditeoneri ON dtb_docr.cod_anag = venditeoneri.cod_anag_comp AND\n" +
|
||||||
|
" dtb_docr.cod_dtip = venditeoneri.cod_dtip_comp AND\n" +
|
||||||
|
" dtb_docr.data_doc = venditeoneri.data_doc_comp AND\n" +
|
||||||
|
" dtb_docr.num_doc = venditeoneri.num_doc_comp AND\n" +
|
||||||
|
" dtb_docr.ser_doc = venditeoneri.ser_doc_comp AND\n" +
|
||||||
|
" dtb_docr.cod_mart = venditeoneri.cod_mart,\n" +
|
||||||
|
" dtb_doct AS dtb_doct_a,\n" +
|
||||||
|
" dtb_doct AS dtb_doct_b,\n" +
|
||||||
|
" dtb_tipi,\n" +
|
||||||
|
" gtb_divi,\n" +
|
||||||
|
" azienda,\n" +
|
||||||
|
" mtb_aart,\n" +
|
||||||
|
" mtb_sgrp,\n" +
|
||||||
|
" vtb_clie\n" +
|
||||||
|
"WHERE (dtb_doct_b.cod_anag = dtb_docr.cod_anag)\n" +
|
||||||
|
" AND (dtb_doct_b.cod_dtip = dtb_docr.cod_dtip)\n" +
|
||||||
|
" AND (dtb_doct_b.data_doc = dtb_docr.data_doc)\n" +
|
||||||
|
" AND (dtb_doct_b.ser_doc = dtb_docr.ser_doc)\n" +
|
||||||
|
" AND (dtb_doct_b.num_doc = dtb_docr.num_doc)\n" +
|
||||||
|
" AND (dtb_doct_b.cod_anag = dtb_doct_a.cod_anag)\n" +
|
||||||
|
" AND (dtb_doct_b.cod_dtip_val = dtb_doct_a.cod_dtip)\n" +
|
||||||
|
" AND (dtb_doct_b.data_doc_val = dtb_doct_a.data_doc)\n" +
|
||||||
|
" AND (dtb_doct_b.ser_doc_val = dtb_doct_a.ser_doc)\n" +
|
||||||
|
" AND (dtb_doct_b.num_doc_val = dtb_doct_a.num_doc)\n" +
|
||||||
|
" AND (dtb_doct_b.cod_anag = vtb_clie.cod_anag)\n" +
|
||||||
|
" AND (dtb_tipi.cod_dtip = dtb_doct_b.cod_dtip)\n" +
|
||||||
|
" AND (azienda.cod_divi_contab = gtb_divi.cod_divi)\n" +
|
||||||
|
" AND (dtb_docr.cod_mart = mtb_aart.cod_mart)\n" +
|
||||||
|
" AND (mtb_aart.cod_mgrp = mtb_sgrp.cod_mgrp)\n" +
|
||||||
|
" AND (mtb_aart.cod_msgr = mtb_sgrp.cod_msgr)\n" +
|
||||||
|
" AND (mtb_sgrp.incl_in_stat = 'S')\n" +
|
||||||
|
" AND ((dtb_doct_b.gestione = 'V') AND (dtb_tipi.tipo_emissione = 'DIRETTA') AND (dtb_docr.cod_mart IS NOT NULL))\n" +
|
||||||
|
" AND (dtb_tipi.flag_incl_stat = 'S')\n" +
|
||||||
|
" AND not Exists ( select * from mtb_aart inner join ctb_cont on mtb_aart.cod_ccon_ricavi = ctb_cont.cod_ccon\n" +
|
||||||
|
" inner join ctb_grup on ctb_cont.cod_cgrp = ctb_grup.cod_cgrp\n" +
|
||||||
|
"where ctb_grup.sezione = 1 and mtb_aart.cod_mart = dtb_docr.cod_mart) \n" +
|
||||||
|
"UNION ALL\n" +
|
||||||
|
"SELECT dtb_doct_b.cod_dtip_val,\n" +
|
||||||
|
" dtb_doct_b.data_doc_val,\n" +
|
||||||
|
" dtb_doct_b.ser_doc_val,\n" +
|
||||||
|
" dtb_doct_b.num_doc_val,\n" +
|
||||||
|
" dtb_docr.cod_dtip_comp,\n" +
|
||||||
|
" dtb_docr.data_doc_comp,\n" +
|
||||||
|
" dtb_docr.ser_doc_comp,\n" +
|
||||||
|
" dtb_docr.num_doc_comp,\n" +
|
||||||
|
" dtb_doct_a.cod_vage,\n" +
|
||||||
|
" ISNULL(vtb_clie.cod_anag_stat, dtb_doct_b.cod_anag) AS cod_anag,\n" +
|
||||||
|
" dtb_doct_b.cod_vdes,\n" +
|
||||||
|
" dtb_doct_b.cod_vzon,\n" +
|
||||||
|
" vtb_clie.cod_vtip,\n" +
|
||||||
|
" dtb_doct_b.cod_dtip,\n" +
|
||||||
|
" dtb_doct_b.data_doc,\n" +
|
||||||
|
" dtb_doct_b.ser_doc,\n" +
|
||||||
|
" dtb_doct_b.num_doc,\n" +
|
||||||
|
" dtb_doct_b.cod_mdep,\n" +
|
||||||
|
" dtb_docr.cod_mart,\n" +
|
||||||
|
" NULL,\n" +
|
||||||
|
" NULL,\n" +
|
||||||
|
" NULL,\n" +
|
||||||
|
" NULL,\n" +
|
||||||
|
" dtb_docr.descrizione,\n" +
|
||||||
|
" dtb_docr.unt_doc,\n" +
|
||||||
|
" (segno_val_scar - segno_val_car) * dtb_doct_a.tot_imponib /\n" +
|
||||||
|
" dtb_doct_a.cambio AS tot_imponib,\n" +
|
||||||
|
" (segno_val_scar - segno_val_car) * dtb_doct_a.tot_iva /\n" +
|
||||||
|
" dtb_doct_a.cambio AS tot_iva,\n" +
|
||||||
|
" dtb_doct_b.tot_imponib / dtb_doct_b.cambio AS tot_imponib_bolla,\n" +
|
||||||
|
" dtb_doct_b.tot_iva / dtb_doct_b.cambio AS tot_iva_bolla,\n" +
|
||||||
|
" (segno_val_scar - segno_val_car) * dtb_docr.importo_riga /\n" +
|
||||||
|
" dtb_doct_b.cambio AS importo_riga,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN sconto5 <> 100 AND sconto6 <> 100 AND sconto7 <> 100 AND sconto8 <> 100\n" +
|
||||||
|
" THEN (segno_qta_scar - segno_qta_car) * qta_doc\n" +
|
||||||
|
" ELSE 0 END AS qta_vend,\n" +
|
||||||
|
" CONVERT(NUMERIC(15, 5), 0) AS qta_vend_kg,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN sconto5 <> 100 AND sconto6 <> 100 AND sconto7 <> 100 AND sconto8 <> 100 THEN\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100)) /\n" +
|
||||||
|
" dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_vend,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN sconto5 = 100 OR sconto6 = 100 OR sconto7 = 100 THEN (segno_qta_scar - segno_qta_car) * qta_doc\n" +
|
||||||
|
" ELSE 0 END AS qta_omg,\n" +
|
||||||
|
" CONVERT(NUMERIC(15, 5), 0) AS qta_omg_kg,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN sconto5 = 100 OR sconto6 = 100 OR sconto7 = 100 THEN\n" +
|
||||||
|
" ((segno_qta_scar - segno_qta_car) * qta_doc * val_unt) / dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_omg,\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100) *\n" +
|
||||||
|
" (dtb_docr.perc_prov / 100) + (segno_val_scar - segno_val_car) * qta_doc * val_prov) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS importo_prov,\n" +
|
||||||
|
" dtb_docr.id_riga,\n" +
|
||||||
|
" gtb_divi.cod_divi,\n" +
|
||||||
|
" dtb_doct_a.listino AS cod_vlis,\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0) AS val_costo,\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0) AS val_omg_costo,\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0) AS val_scarti_prod,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN flag_tipo_reso = 'R' THEN\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100)) /\n" +
|
||||||
|
" dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_resi_rivendibili,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN flag_tipo_reso = 'S' THEN\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100)) /\n" +
|
||||||
|
" dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_resi_non_rivendibili,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN flag_tipo_reso = 'P' THEN\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100)) /\n" +
|
||||||
|
" dtb_doct_b.cambio\n" +
|
||||||
|
" ELSE 0 END AS val_resi_rettifica_prezzo,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN flag_tipo_reso IS NOT NULL THEN (segno_qta_scar - segno_qta_car) * qta_doc\n" +
|
||||||
|
" ELSE 0 END AS qta_resi_rivendibili,\n" +
|
||||||
|
" dtb_docr.rap_conv,\n" +
|
||||||
|
" 0 AS pesokg,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN dtb_docr.qta_cnf * (segno_qta_scar - segno_qta_car) = 0 THEN 0\n" +
|
||||||
|
" ELSE qta_doc * dtb_docr.rap_conv / dtb_docr.qta_cnf *\n" +
|
||||||
|
" (segno_qta_scar - segno_qta_car) END AS confezioni,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (dtb_doct_b.sconto1 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto1,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (dtb_doct_b.sconto2 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto2,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (dtb_doct_b.sconto3 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto3,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100) *\n" +
|
||||||
|
" (dtb_doct_b.sconto4 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto4,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (dtb_docr.sconto5 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto5,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (dtb_docr.sconto6 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto6,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (dtb_docr.sconto7 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto7,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (dtb_docr.sconto8 / 100))) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS val_sconto8,\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS fatturato_lordo,\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_doct_b.sconto4 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto5 / 100) * (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto8 / 100) * (dtb_docr.perc_gest / 100) +\n" +
|
||||||
|
" (segno_val_scar - segno_val_car) * qta_doc * val_gest) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS importo_gest,\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100) *\n" +
|
||||||
|
" (dtb_docr.perc_ispe / 100) + (segno_val_scar - segno_val_car) * qta_doc * val_ispe) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS importo_prov_ispe,\n" +
|
||||||
|
" ((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100) *\n" +
|
||||||
|
" (dtb_docr.perc_promo / 100) + (segno_val_scar - segno_val_car) * qta_doc * val_promo) /\n" +
|
||||||
|
" dtb_doct_b.cambio AS importo_promo,\n" +
|
||||||
|
" (((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100) *\n" +
|
||||||
|
" (dtb_docr.perc_oneri / 100) + (segno_val_scar - segno_val_car) * qta_doc * val_oneri) / dtb_doct_b.cambio) +\n" +
|
||||||
|
" ISNULL((((segno_val_scar - segno_val_car) * qta_doc * val_unt * (1 - dtb_doct_b.sconto1 / 100) *\n" +
|
||||||
|
" (1 - dtb_doct_b.sconto2 / 100) * (1 - dtb_doct_b.sconto3 / 100) * (1 - dtb_docr.sconto5 / 100) *\n" +
|
||||||
|
" (1 - dtb_docr.sconto6 / 100) * (1 - dtb_docr.sconto7 / 100) * (1 - dtb_docr.sconto8 / 100) *\n" +
|
||||||
|
" (venditeoneri.perc_oneri_art / 100) +\n" +
|
||||||
|
" (segno_val_scar - segno_val_car) * qta_doc * venditeoneri.val_oneri_art) / dtb_doct_b.cambio),\n" +
|
||||||
|
" 0) AS importo_oneri,\n" +
|
||||||
|
" dtb_docr.cod_promo,\n" +
|
||||||
|
" vtb_clie.cod_vass,\n" +
|
||||||
|
" vtb_clie.cod_vgrp_acq,\n" +
|
||||||
|
" NULL,\n" +
|
||||||
|
" NULL,\n" +
|
||||||
|
" CONVERT(INT, CASE WHEN dtb_doct_b.cod_forn_td IS NULL THEN 0 ELSE 1 END) AS flag_doc_td,\n" +
|
||||||
|
" dtb_docr.cod_jcom\n" +
|
||||||
|
"FROM dtb_docr\n" +
|
||||||
|
" LEFT OUTER JOIN dbo.getviewvenditeoneri() venditeoneri ON dtb_docr.cod_anag = venditeoneri.cod_anag_comp AND\n" +
|
||||||
|
" dtb_docr.cod_dtip = venditeoneri.cod_dtip_comp AND\n" +
|
||||||
|
" dtb_docr.data_doc = venditeoneri.data_doc_comp AND\n" +
|
||||||
|
" dtb_docr.num_doc = venditeoneri.num_doc_comp AND\n" +
|
||||||
|
" dtb_docr.ser_doc = venditeoneri.ser_doc_comp AND\n" +
|
||||||
|
" dtb_docr.cod_mart = venditeoneri.cod_mart,\n" +
|
||||||
|
" dtb_doct AS dtb_doct_b,\n" +
|
||||||
|
" dtb_doct AS dtb_doct_a,\n" +
|
||||||
|
" dtb_tipi,\n" +
|
||||||
|
" gtb_divi,\n" +
|
||||||
|
" azienda,\n" +
|
||||||
|
" vtb_clie\n" +
|
||||||
|
"WHERE (dtb_doct_b.cod_anag = dtb_docr.cod_anag)\n" +
|
||||||
|
" AND (dtb_doct_b.cod_dtip = dtb_docr.cod_dtip)\n" +
|
||||||
|
" AND (dtb_doct_b.data_doc = dtb_docr.data_doc)\n" +
|
||||||
|
" AND (dtb_doct_b.ser_doc = dtb_docr.ser_doc)\n" +
|
||||||
|
" AND (dtb_doct_b.num_doc = dtb_docr.num_doc)\n" +
|
||||||
|
" AND (dtb_doct_b.cod_anag = dtb_doct_a.cod_anag)\n" +
|
||||||
|
" AND (dtb_doct_b.cod_dtip_val = dtb_doct_a.cod_dtip)\n" +
|
||||||
|
" AND (dtb_doct_b.data_doc_val = dtb_doct_a.data_doc)\n" +
|
||||||
|
" AND (dtb_doct_b.ser_doc_val = dtb_doct_a.ser_doc)\n" +
|
||||||
|
" AND (dtb_doct_b.num_doc_val = dtb_doct_a.num_doc)\n" +
|
||||||
|
" AND (dtb_doct_b.cod_anag = vtb_clie.cod_anag)\n" +
|
||||||
|
" AND (dtb_tipi.cod_dtip = dtb_doct_b.cod_dtip)\n" +
|
||||||
|
" AND (azienda.cod_divi_contab = gtb_divi.cod_divi)\n" +
|
||||||
|
" AND ((dtb_doct_b.gestione = 'V') AND (dtb_tipi.tipo_emissione = 'DIRETTA') AND (dtb_docr.cod_mart IS NULL) AND\n" +
|
||||||
|
" (dtb_docr.qta_doc <> 0))\n" +
|
||||||
|
" AND (dtb_tipi.flag_incl_stat = 'S')");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250825165957 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("W_CSITUAZ_CNTECONCOMM_DISP", "SETUP", "REPARTI_DA_ESCLUDERE", null,
|
||||||
|
"inseire l'elenco dei reparti da escludere dai rapportini di lavoro ( separati con |)", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
|
||||||
|
if (isCustomer(IntegryCustomer.Smetar)) {
|
||||||
|
updateSetupValue("W_CSITUAZ_CNTECONCOMM_DISP", "SETUP", "REPARTI_DA_ESCLUDERE", "FALE|2-LAV");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250825170241 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("W_CSITUAZ_CNTECONCOMM_DISP", "DATAWINDOW", "D_CSIT_CNTECONCOMM_DETTAGLIATO_REP", null,
|
||||||
|
null, false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
|
||||||
|
String dwName = "";
|
||||||
|
if (isCustomer(IntegryCustomer.Smetar)) {
|
||||||
|
dwName = "D_CSIT_CNTECONCOMM_DETTAGLIATO_SMETAR_REP";
|
||||||
|
} else if (isCustomer(IntegryCustomer.Cosmapack)) {
|
||||||
|
dwName = "d_csit_cnteconcomm_dett_cosm_rep";
|
||||||
|
} else if (isCustomer(IntegryCustomer.Vinella)) {
|
||||||
|
dwName = "d_csit_cnteconcomm_dett_vin_rep";
|
||||||
|
} else if (isCustomer(IntegryCustomer.Agricoper)) {
|
||||||
|
dwName = "d_csit_cnteconcomm_dett_agric_rep";
|
||||||
|
}
|
||||||
|
if (!dwName.equalsIgnoreCase("")) {
|
||||||
|
updateSetupValue("W_CSITUAZ_CNTECONCOMM_DISP", "DATAWINDOW", "D_CSIT_CNTECONCOMM_DETTAGLIATO_REP", dwName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,191 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250826122255 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if ( isTextiles()) {
|
||||||
|
executeStatement("UPDATE stb_gest_setup SET flag_setup_depo = 'S'\n" +
|
||||||
|
"WHERE stb_gest_setup.gest_name = 'DATI_AZIENDA' AND stb_gest_setup.SECTION = 'CALCOLO_DISPONIBILITA' AND stb_gest_setup.key_section = 'INCLUDI_QTA_ORD_FOR'");
|
||||||
|
|
||||||
|
if ( isCustomer(IntegryCustomer.FolliesGroup)) {
|
||||||
|
updateSetupValue("DATI_AZIENDA","CALCOLO_DISPONIBILITA","INCLUDI_QTA_ORD_FOR", "S");
|
||||||
|
}
|
||||||
|
|
||||||
|
createOrUpdateFunction("ftx_getDisponibilitaArticoli", "CREATE FUNCTION [dbo].[ftx_getDisponibilitaArticoli](@datavalidita DATETIME,\n" +
|
||||||
|
" @codmdep VARCHAR(8000),\n" +
|
||||||
|
" @annostag VARCHAR(10),\n" +
|
||||||
|
" @codmart VARCHAR(15),\n" +
|
||||||
|
" @codtagl VARCHAR(15),\n" +
|
||||||
|
" @codcol VARCHAR(15),\n" +
|
||||||
|
" @barcode VARCHAR(15))\n" +
|
||||||
|
" RETURNS TABLE AS\n" +
|
||||||
|
" RETURN\n" +
|
||||||
|
" WITH setup AS (SELECT mtb_depo.cod_mdep,\n" +
|
||||||
|
" MAX(IIF(stb_gest_setup.key_section = 'INCLUDI_QTA_ORD_FOR',\n" +
|
||||||
|
" ISNULL(stb_gest_setup_depo.value, stb_gest_setup.value),\n" +
|
||||||
|
" NULL)) AS includi_qta_ord_for,\n" +
|
||||||
|
" MAX(IIF(stb_gest_setup.key_section = 'ESCLUDI_QTA_COLLI',\n" +
|
||||||
|
" ISNULL(stb_gest_setup_depo.value, 'N'), NULL)) AS escludi_qta_colli\n" +
|
||||||
|
" FROM mtb_depo\n" +
|
||||||
|
" CROSS APPLY stb_gest_setup\n" +
|
||||||
|
" LEFT OUTER JOIN stb_gest_setup_depo\n" +
|
||||||
|
" ON mtb_depo.cod_mdep = stb_gest_setup_depo.cod_mdep AND\n" +
|
||||||
|
" stb_gest_setup.gest_name = stb_gest_setup_depo.gest_name AND\n" +
|
||||||
|
" stb_gest_setup.section = stb_gest_setup_depo.section AND\n" +
|
||||||
|
" stb_gest_setup.key_section = stb_gest_setup_depo.key_section\n" +
|
||||||
|
" WHERE stb_gest_setup.gest_name = 'DATI_AZIENDA'\n" +
|
||||||
|
" AND stb_gest_setup.section = 'CALCOLO_DISPONIBILITA'\n" +
|
||||||
|
" AND stb_gest_setup.key_section IN ('INCLUDI_QTA_ORD_FOR', 'ESCLUDI_QTA_COLLI')\n" +
|
||||||
|
" GROUP BY mtb_depo.cod_mdep),\n" +
|
||||||
|
" articoli AS (SELECT ttb_style.anno_stag,\n" +
|
||||||
|
" ttb_style.cod_style,\n" +
|
||||||
|
" ttb_style_colori.cod_col,\n" +
|
||||||
|
" ttb_style_taglie.cod_tagl,\n" +
|
||||||
|
" mtb_part_dt.qta_ord_for,\n" +
|
||||||
|
" mtb_part_dt.cod_mdep\n" +
|
||||||
|
" FROM ttb_style,\n" +
|
||||||
|
" ttb_style_colori,\n" +
|
||||||
|
" ttb_style_taglie,\n" +
|
||||||
|
" mtb_part_dt\n" +
|
||||||
|
" WHERE (@codmdep IS NULL OR mtb_part_dt.cod_mdep IN (SELECT value_string AS cod_mdep\n" +
|
||||||
|
" FROM parsestringintoarray(@codmdep, ',')))\n" +
|
||||||
|
" AND (@codmart IS NULL OR ttb_style.cod_style = @codmart)\n" +
|
||||||
|
" AND (@codcol IS NULL OR ttb_style_colori.cod_col = @codcol)\n" +
|
||||||
|
" AND (@codtagl IS NULL OR ttb_style_taglie.cod_tagl = @codtagl)\n" +
|
||||||
|
" AND (@annostag IS NULL OR ttb_style.anno_stag = @annostag)\n" +
|
||||||
|
" AND ttb_style.cod_style = mtb_part_dt.cod_mart\n" +
|
||||||
|
" AND ttb_style_colori.cod_col = mtb_part_dt.cod_col\n" +
|
||||||
|
" AND ttb_style_taglie.cod_tagl = mtb_part_dt.cod_tagl\n" +
|
||||||
|
" AND ttb_style.cod_style = ttb_style_colori.cod_style\n" +
|
||||||
|
" AND ttb_style.cod_style = ttb_style_taglie.cod_style),\n" +
|
||||||
|
" colli AS (SELECT mtb_colr.cod_mart,\n" +
|
||||||
|
" mtb_colr.cod_col,\n" +
|
||||||
|
" mtb_colr.cod_tagl,\n" +
|
||||||
|
" SUM(mtb_colr.qta_col) AS qta,\n" +
|
||||||
|
" mtb_colt.cod_mdep\n" +
|
||||||
|
" FROM mtb_colt\n" +
|
||||||
|
" LEFT OUTER JOIN dtb_tipi ON mtb_colt.cod_dtip = dtb_tipi.cod_dtip,\n" +
|
||||||
|
" mtb_colr\n" +
|
||||||
|
" WHERE mtb_colt.gestione = mtb_colr.gestione\n" +
|
||||||
|
" AND mtb_colt.data_collo = mtb_colr.data_collo\n" +
|
||||||
|
" AND mtb_colt.ser_collo = mtb_colr.ser_collo\n" +
|
||||||
|
" AND mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" AND mtb_colt.gestione = 'V'\n" +
|
||||||
|
" AND (@codmdep IS NULL OR mtb_colt.cod_mdep IN (SELECT value_string AS cod_mdep\n" +
|
||||||
|
" FROM parsestringintoarray(@codmdep, ',')))\n" +
|
||||||
|
" AND (mtb_colt.cod_dtip IS NULL OR (dtb_tipi.segno_qta_car = 0 AND dtb_tipi.segno_qta_scar = 0))\n" +
|
||||||
|
" AND (@codmart IS NULL OR mtb_colr.cod_mart = @codmart)\n" +
|
||||||
|
" AND (@codcol IS NULL OR mtb_colr.cod_col = @codcol)\n" +
|
||||||
|
" AND (@codtagl IS NULL OR mtb_colr.cod_tagl = @codtagl)\n" +
|
||||||
|
" GROUP BY mtb_colr.cod_mart,\n" +
|
||||||
|
" mtb_colr.cod_col,\n" +
|
||||||
|
" mtb_colr.cod_tagl,\n" +
|
||||||
|
" mtb_colt.cod_mdep),\n" +
|
||||||
|
" prenotazione AS (SELECT wdtb_ordr.cod_mart,\n" +
|
||||||
|
" wdtb_ordr.cod_col,\n" +
|
||||||
|
" wdtb_ordr.cod_tagl,\n" +
|
||||||
|
" SUM(wdtb_ordr.qta_ord) AS qta,\n" +
|
||||||
|
" wdtb_ordt.cod_mdep\n" +
|
||||||
|
" FROM wdtb_ordt,\n" +
|
||||||
|
" wdtb_ordr\n" +
|
||||||
|
" WHERE wdtb_ordt.gestione = wdtb_ordr.gestione\n" +
|
||||||
|
" AND wdtb_ordt.data_ord = wdtb_ordr.data_ord\n" +
|
||||||
|
" AND wdtb_ordt.num_ord = wdtb_ordr.num_ord\n" +
|
||||||
|
" AND wdtb_ordt.gestione = 'V'\n" +
|
||||||
|
" AND (@codmdep IS NULL OR wdtb_ordt.cod_mdep IN (SELECT value_string AS cod_mdep\n" +
|
||||||
|
" FROM parsestringintoarray(@codmdep, ',')))\n" +
|
||||||
|
" AND wdtb_ordt.flag_elaborato = 'N'\n" +
|
||||||
|
" AND (@codmart IS NULL OR wdtb_ordr.cod_mart = @codmart)\n" +
|
||||||
|
" AND (@codcol IS NULL OR wdtb_ordr.cod_col = @codcol)\n" +
|
||||||
|
" AND (@codtagl IS NULL OR wdtb_ordr.cod_tagl = @codtagl)\n" +
|
||||||
|
" GROUP BY wdtb_ordr.cod_mart,\n" +
|
||||||
|
" wdtb_ordr.cod_col,\n" +
|
||||||
|
" wdtb_ordr.cod_tagl,\n" +
|
||||||
|
" wdtb_ordt.cod_mdep),\n" +
|
||||||
|
" ordine AS (SELECT dtb_ordr.cod_mart,\n" +
|
||||||
|
" dtb_ordr.cod_col,\n" +
|
||||||
|
" dtb_ordr.cod_tagl,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN SUM(CASE\n" +
|
||||||
|
" WHEN dtb_ordr.flag_evaso = 'I' OR\n" +
|
||||||
|
" (dtb_ordr.flag_evaso = 'A' AND dtb_ordr.qta_acc > 0)\n" +
|
||||||
|
" THEN dtb_ordr.qta_ord - dtb_ordr.qta_evasa - dtb_ordr.qta_col\n" +
|
||||||
|
" ELSE 0 END) > 0 THEN\n" +
|
||||||
|
" SUM(CASE\n" +
|
||||||
|
" WHEN dtb_ordr.flag_evaso = 'I' OR\n" +
|
||||||
|
" (dtb_ordr.flag_evaso = 'A' AND dtb_ordr.qta_acc > 0)\n" +
|
||||||
|
" THEN dtb_ordr.qta_ord - dtb_ordr.qta_evasa - dtb_ordr.qta_col\n" +
|
||||||
|
" ELSE 0 END)\n" +
|
||||||
|
" ELSE 0 END AS qta,\n" +
|
||||||
|
" SUM(dtb_ordr.qta_acc) AS qta_acc,\n" +
|
||||||
|
" /*sum(dtb_ordr.qta_acc - dtb_ordr.qta_col) as qta_acc,*/\n" +
|
||||||
|
" dtb_ordt.cod_mdep\n" +
|
||||||
|
" FROM dtb_ordt,\n" +
|
||||||
|
" dtb_ordr\n" +
|
||||||
|
" WHERE dtb_ordt.gestione = dtb_ordr.gestione\n" +
|
||||||
|
" AND dtb_ordt.data_ord = dtb_ordr.data_ord\n" +
|
||||||
|
" AND dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||||
|
" AND dtb_ordt.gestione = 'V'\n" +
|
||||||
|
" AND (@codmdep IS NULL OR dtb_ordt.cod_mdep IN (SELECT value_string AS cod_mdep\n" +
|
||||||
|
" FROM parsestringintoarray(@codmdep, ',')))\n" +
|
||||||
|
" /* AND dtb_ordr.flag_evaso = 'I'*/\n" +
|
||||||
|
" AND dtb_ordt.flag_annulla = 'N'\n" +
|
||||||
|
" AND (@codmart IS NULL OR dtb_ordr.cod_mart = @codmart)\n" +
|
||||||
|
" AND (@codcol IS NULL OR dtb_ordr.cod_col = @codcol)\n" +
|
||||||
|
" AND (@codtagl IS NULL OR dtb_ordr.cod_tagl = @codtagl)\n" +
|
||||||
|
" GROUP BY dtb_ordr.cod_mart,\n" +
|
||||||
|
" dtb_ordr.cod_col,\n" +
|
||||||
|
" dtb_ordr.cod_tagl,\n" +
|
||||||
|
" dtb_ordt.cod_mdep)\n" +
|
||||||
|
"\n" +
|
||||||
|
" SELECT articoli.anno_stag,\n" +
|
||||||
|
" articoli.cod_style,\n" +
|
||||||
|
" articoli.cod_col,\n" +
|
||||||
|
" articoli.cod_tagl,\n" +
|
||||||
|
" ttb_bar_code.cod_barre,\n" +
|
||||||
|
" articoli.cod_mdep,\n" +
|
||||||
|
" ISNULL(giacenza.qta_fine, 0) AS giacenza,\n" +
|
||||||
|
" ISNULL(articoli.qta_ord_for, 0) AS ord_forn,\n" +
|
||||||
|
" ISNULL(ordine.qta, 0) AS ordini,\n" +
|
||||||
|
" ISNULL(prenotazione.qta, 0) AS ordini_web,\n" +
|
||||||
|
" ISNULL(ordine.qta_acc, 0) AS accant_su_ordine,\n" +
|
||||||
|
" ISNULL(colli.qta, 0) AS colli,\n" +
|
||||||
|
" ISNULL(giacenza.qta_fine, 0) - ISNULL(ordine.qta, 0) - ISNULL(prenotazione.qta, 0) +\n" +
|
||||||
|
" IIF(setup.includi_qta_ord_for = 'S', ISNULL(articoli.qta_ord_for, 0), 0) -\n" +
|
||||||
|
" IIF(setup.escludi_qta_colli = 'S', ISNULL(colli.qta, 0), 0) AS qta_disp,\n" +
|
||||||
|
" ISNULL(giacenza.qta_fine, 0) - ISNULL(ordine.qta_acc, 0) - ISNULL(colli.qta, 0) AS qta_distrib_su_ordini\n" +
|
||||||
|
" FROM articoli\n" +
|
||||||
|
" LEFT OUTER JOIN ttb_bar_code ON articoli.cod_style = ttb_bar_code.cod_style AND\n" +
|
||||||
|
" articoli.cod_col = ttb_bar_code.cod_col AND\n" +
|
||||||
|
" articoli.cod_tagl = ttb_bar_code.cod_tagl\n" +
|
||||||
|
" LEFT OUTER JOIN getsitartadatadett(@datavalidita, @codmdep) giacenza\n" +
|
||||||
|
" ON articoli.cod_style = giacenza.cod_mart AND articoli.cod_col = giacenza.cod_col AND\n" +
|
||||||
|
" articoli.cod_tagl = giacenza.cod_tagl AND articoli.cod_mdep = giacenza.cod_mdep\n" +
|
||||||
|
" LEFT OUTER JOIN ordine\n" +
|
||||||
|
" ON articoli.cod_style = ordine.cod_mart AND articoli.cod_col = ordine.cod_col AND\n" +
|
||||||
|
" articoli.cod_tagl = ordine.cod_tagl AND articoli.cod_mdep = ordine.cod_mdep\n" +
|
||||||
|
" LEFT OUTER JOIN prenotazione ON articoli.cod_style = prenotazione.cod_mart AND\n" +
|
||||||
|
" articoli.cod_col = prenotazione.cod_col AND\n" +
|
||||||
|
" articoli.cod_tagl = prenotazione.cod_tagl AND\n" +
|
||||||
|
" articoli.cod_mdep = prenotazione.cod_mdep\n" +
|
||||||
|
" LEFT OUTER JOIN colli ON articoli.cod_style = colli.cod_mart AND articoli.cod_col = colli.cod_col AND\n" +
|
||||||
|
" articoli.cod_tagl = colli.cod_tagl AND articoli.cod_mdep = colli.cod_mdep,\n" +
|
||||||
|
" setup\n" +
|
||||||
|
" WHERE (@barcode IS NULL OR ttb_bar_code.cod_barre = @barcode)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250827114912 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isCustomerDb(IntegryCustomerDB.Ime_ImeTe) || isCustomerDb(IntegryCustomerDB.Materica_ImeBa)) {
|
||||||
|
updateSetupValue("W_PORDI_RC", "SETUP", "CHECK_DEP_TERZISTA", "S");
|
||||||
|
updateSetupValue("DTB_ORDT", "SETUP", "DISABLE_TRIGGER_ORDL", "S");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250827151739 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (existsColumn("dtb_ord_log_import", "id")) return;
|
||||||
|
|
||||||
|
executeStatement(
|
||||||
|
"exec dropPrimaryKey 'dtb_ord_log_import'",
|
||||||
|
"alter table dtb_ord_log_import add id bigint identity",
|
||||||
|
"alter table dtb_ord_log_import add constraint pk_dtb_ord_log_import primary key (id)");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250828100041 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
executeStatement(
|
||||||
|
"alter table ntb_docr add val_sco_art numeric(20,5);",
|
||||||
|
"alter table mtb_depo_casse add last_idx int;",
|
||||||
|
"Create table ntb_docs ( " +
|
||||||
|
" id bigint identity not null, " +
|
||||||
|
" cod_mdep varchar(5) not null, " +
|
||||||
|
" cod_cassa varchar(5) not null, " +
|
||||||
|
" data_doc datetime not null, " +
|
||||||
|
" id_riga int not null, " +
|
||||||
|
" promozione varchar(40) not null , " +
|
||||||
|
" val_sco numeric(20,5) not null default 0); ",
|
||||||
|
"alter table ntb_docs add constraint pk_ntb_docs primary key (id)",
|
||||||
|
"alter table ntb_docs add constraint fk_ntb_docs_ntb_docr foreign key (cod_mdep, cod_cassa, data_doc, id_riga) references ntb_docr (cod_mdep, cod_cassa, data_doc, id_riga);"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250828145642 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("IMPORT_SCONTRINI", "MMPOS_SERVICES", "PROFILE_DB", null,
|
||||||
|
"Inserire il profile del db a cui collegarsi", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
|
||||||
|
if (isCustomerDb(IntegryCustomerDB.Carelli_Carelli) && isCustomerDb(IntegryCustomerDB.Carelli_GestFood) ) {
|
||||||
|
updateSetupValue("IMPORT_SCONTRINI", "MMPOS_SERVICES", "PROFILE_DB", "MMPOS");
|
||||||
|
}else if (isCustomerDb(IntegryCustomerDB.Carelli_Murgia) && isCustomerDb(IntegryCustomerDB.Carelli_GestFood) ) {
|
||||||
|
updateSetupValue("IMPORT_SCONTRINI", "MMPOS_SERVICES", "PROFILE_DB", "MMPOS_FORNO");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250901181016 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateFunction("pvm_getassortimentoCliente", "CREATE FUNCTION [dbo].[pvm_getassortimentoCliente](\n" +
|
||||||
|
" @codAnag VARCHAR(5), @codVlis VARCHAR(5), @codVdes VARCHAR(5), @dataValidita DATETIME, @viewPromo BIT\n" +
|
||||||
|
")\n" +
|
||||||
|
" RETURNS TABLE AS\n" +
|
||||||
|
" RETURN(SELECT *\n" +
|
||||||
|
" FROM [dbo].pvm_getassortimentoClientePedane(\n" +
|
||||||
|
" @codAnag, @codVlis, @codVdes, @dataValidita, @viewPromo,\n" +
|
||||||
|
" DEFAULT))");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250902171721 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isCustomerDb(IntegryCustomerDB.RossoGargano_RossoGargano)){
|
||||||
|
updateSetupValue("W_VDOCU_ALL_DISP", "DATAWINDOW", "D_VDOCU_ALL_REP", "d_vdocu_all_rossogargano_rep");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250903095834 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("EXPORT_SCONTRINI", "ZUCCHETTI", "RIEPILOGO_GIORNALIERO", null,
|
||||||
|
"indicare per ogni reparto se le vendite devono essere inviate per fascia oraria o per giorno", false, null, false, false,
|
||||||
|
false, false, false, "mtb_grup", false, null);
|
||||||
|
|
||||||
|
if (isCustomerDb(IntegryCustomerDB.Carelli_Carelli) && isCustomerDb(IntegryCustomerDB.Carelli_GestFood)) {
|
||||||
|
|
||||||
|
executeStatement("insert into stb_gest_setup_det\n" +
|
||||||
|
"select stb_gest_setup.gest_name,\n" +
|
||||||
|
"stb_gest_setup.section,\n" +
|
||||||
|
"stb_gest_setup.key_section,\n" +
|
||||||
|
"'mtb_grup',\n" +
|
||||||
|
"mtb_grup.cod_mgrp,\n" +
|
||||||
|
"IIF(mtb_grup.cod_mgrp in ('03','02','05'), 'S','N')\n" +
|
||||||
|
"from stb_gest_setup,\n" +
|
||||||
|
"mtb_grup\n" +
|
||||||
|
"where stb_gest_setup.section = 'zucchetti'\n" +
|
||||||
|
"and stb_gest_setup.key_section = 'RIEPILOGO_GIORNALIERO'\n" +
|
||||||
|
"and mtb_grup.cod_mgrp between '01' and '08'\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250903120642 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("vw_tracciabUDCVend", "CREATE VIEW vw_tracciabUDCVend AS\n" +
|
||||||
|
"select mtb_colt.cod_anag, gtb_anag.rag_soc, isNull(vtb_dest.destinatario,'') as destinazione,\n" +
|
||||||
|
" ISNULL(vtb_dest.citta, gtb_anag.citta) as citta,\n" +
|
||||||
|
" ISNULL(vtb_dest.prov, gtb_anag.prov) as provincia,\n" +
|
||||||
|
" ISNULL(vtb_dest.nazione, gtb_anag.nazione) as nazione,\n" +
|
||||||
|
" mtb_colt.cod_dtip, mtb_colt.data_doc, mtb_colt.ser_doc, mtb_colt.num_doc,\n" +
|
||||||
|
" mtb_colr.cod_mart, mtb_aart.descrizione_estesa, Isnull(mtb_partita_mag.partita_mag_prod, mtb_colr.partita_mag) as lotto, \n" +
|
||||||
|
" mtb_partita_mag.data_prod as data_lotto,\n" +
|
||||||
|
" IIF(dtb_tipi.segno_qta_scar = -1, mtb_colr.barcode_ul_in, mtb_colr.barcode_ul_out) as UDCVenduta,\n" +
|
||||||
|
" UDC.data_vers as dataOraProd,\n" +
|
||||||
|
" UDC.cod_jfas as LineaProd,\n" +
|
||||||
|
" UDC.num_ord as numOrdProd,\n" +
|
||||||
|
" UDC.data_ord as DataOrdProd,\n" +
|
||||||
|
" mtb_aart.unt_mis,\n" +
|
||||||
|
" sum(mtb_colr.qta_col) as qta_venduta,\n" +
|
||||||
|
" SUM(mtb_colr.num_collo) as colli_venduti\n" +
|
||||||
|
"from\n" +
|
||||||
|
" mtb_colt inner join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and\n" +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo and\n" +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo and\n" +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" inner join dtb_tipi on mtb_colt.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||||
|
" inner join gtb_anag on mtb_colt.cod_anag = gtb_anag.cod_anag\n" +
|
||||||
|
" left outer join vtb_dest on mtb_colt.cod_anag = vtb_dest.cod_anag and\n" +
|
||||||
|
" mtb_colt.cod_vdes = vtb_dest.cod_vdes\n" +
|
||||||
|
" inner join mtb_aart on mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" inner join mtb_partita_mag on mtb_colr.cod_mart = mtb_partita_mag.cod_mart and mtb_colr.partita_mag = mtb_partita_mag.partita_mag\n" +
|
||||||
|
" inner join mtb_colt UDC on IIF(dtb_tipi.segno_qta_scar = -1, mtb_colr.barcode_ul_in, mtb_colr.barcode_ul_out) = UDC.barcode_ul\n" +
|
||||||
|
"where mtb_colt.gestione = 'V' and dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
||||||
|
"group by mtb_colt.cod_anag, gtb_anag.rag_soc, isNull(vtb_dest.destinatario,''),\n" +
|
||||||
|
" ISNULL(vtb_dest.citta, gtb_anag.citta),\n" +
|
||||||
|
" ISNULL(vtb_dest.prov, gtb_anag.prov),\n" +
|
||||||
|
" ISNULL(vtb_dest.nazione, gtb_anag.nazione),\n" +
|
||||||
|
" mtb_colt.cod_dtip, mtb_colt.data_doc, mtb_colt.ser_doc, mtb_colt.num_doc,\n" +
|
||||||
|
" mtb_colr.cod_mart, mtb_aart.descrizione_estesa, \n" +
|
||||||
|
" Isnull(mtb_partita_mag.partita_mag_prod, mtb_colr.partita_mag), \n" +
|
||||||
|
" mtb_partita_mag.data_prod,\n" +
|
||||||
|
" mtb_aart.unt_mis,\n" +
|
||||||
|
" IIF(dtb_tipi.segno_qta_scar = -1, mtb_colr.barcode_ul_in, mtb_colr.barcode_ul_out),\n" +
|
||||||
|
" UDC.data_vers,\n" +
|
||||||
|
" UDC.cod_jfas,\n" +
|
||||||
|
" UDC.data_ord,\n" +
|
||||||
|
" UDC.num_ord");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250903120821 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("vw_tracciabUDCProd", "CREATE VIEW vw_tracciabUDCProd AS\n" +
|
||||||
|
"select mtb_colr.data_ord as DataOrdProd,\n" +
|
||||||
|
" mtb_colr.num_ord as numOrdProd,\n" +
|
||||||
|
" mtb_colt.cod_anag,\n" +
|
||||||
|
" gtb_anag.rag_soc as Produttore,\n" +
|
||||||
|
" mtb_colt.cod_jfas as linea,\n" +
|
||||||
|
" mtb_colr.datetime_row as dataOraProd,\n" +
|
||||||
|
" mtb_colt.cod_dtip,\n" +
|
||||||
|
" mtb_colt.data_doc,\n" +
|
||||||
|
" mtb_colt.ser_doc,\n" +
|
||||||
|
" mtb_colt.num_doc,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.cod_mart, '') as codProd, \n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_aart.descrizione_estesa,'') as DescrizioneProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.partita_mag,'') as lottoProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.barcode_ul_in,'') as UDCProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.qta_col, 0) as qtaProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.cod_mart, '') as codMP, \n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_aart.descrizione_estesa,'') as DescrizioneMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.partita_mag,'') as lottoMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.barcode_ul_in,'') as UDCMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.qta_col, 0) as qtaScar\n" +
|
||||||
|
"\n" +
|
||||||
|
"from\n" +
|
||||||
|
" mtb_colt inner join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and\n" +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo and\n" +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo and\n" +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" inner join mtb_aart on mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" inner join gtb_anag on mtb_colt.cod_anag = gtb_anag.cod_anag\n" +
|
||||||
|
"Where mtb_colt.gestione = 'L' and mtb_colr.data_ord is not null");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250903121033 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("vw_tracciabUDCACQ", "CREATE VIEW vw_tracciabUDCACQ AS\n" +
|
||||||
|
"Select doct.cod_anag, gtb_anag.rag_soc,\n" +
|
||||||
|
" doct.data_doc, doct.ser_doc, doct.num_doc, doct.cod_dtip,\n" +
|
||||||
|
" doct.num_doc_forn,\n" +
|
||||||
|
" mtb_grup.tipo_mgrp,\n" +
|
||||||
|
" docr.cod_mart, docr.descrizione, docr.partita_mag, docr.unt_doc, docr.qta_doc,\n" +
|
||||||
|
" UDCAcq.UDC, UDCAcq.qtaUDC\n" +
|
||||||
|
" from dtb_doct doct inner join dtb_docr docr on doct.cod_anag = docr.cod_anag and \n" +
|
||||||
|
" doct.cod_dtip = docr.cod_dtip and\n" +
|
||||||
|
" doct.data_doc = docr.data_doc and \n" +
|
||||||
|
" doct.ser_doc = docr.ser_doc and\n" +
|
||||||
|
" doct.num_doc = docr.num_doc\n" +
|
||||||
|
" inner join dtb_tipi on doct.cod_dtip = dtb_tipi.cod_Dtip\n" +
|
||||||
|
" inner join gtb_anag on doct.cod_anag = gtb_anag.cod_anag\n" +
|
||||||
|
" inner join mtb_aart on docr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" inner join mtb_grup on mtb_aart.cod_mgrp = mtb_grup.cod_mgrp\n" +
|
||||||
|
" left outer join\n" +
|
||||||
|
" (select mtb_colt.barcode_ul as UDC, mtb_colt.cod_anag, mtb_colt.cod_dtip, mtb_colt.data_doc, mtb_colt.ser_doc, mtb_colt.num_doc,\n" +
|
||||||
|
" mtb_colr.cod_mart, mtb_colr.partita_mag, mtb_colr.qta_col as qtaUDC\n" +
|
||||||
|
" from\n" +
|
||||||
|
" mtb_colt inner join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and\n" +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo and\n" +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo and\n" +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" Where mtb_colt.gestione = 'A' and mtb_colt.segno = 1\n" +
|
||||||
|
" )UDCAcq on doct.cod_anag = UDCAcq.cod_anag and \n" +
|
||||||
|
" doct.cod_dtip = UDCAcq.cod_dtip and \n" +
|
||||||
|
" doct.data_doc = UDCAcq.data_doc and \n" +
|
||||||
|
" doct.ser_doc = UDCAcq.ser_doc and \n" +
|
||||||
|
" doct.num_doc = UDCAcq.num_doc and\n" +
|
||||||
|
" docr.cod_mart = UDCAcq.cod_mart and\n" +
|
||||||
|
" docr.partita_mag = UDCAcq.partita_mag\n" +
|
||||||
|
" Where doct.gestione = 'A' and dtb_tipi.segno_qta_car = 1 and docr.partita_mag is not null");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250903122606 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("[vw_tracciabUDCVend]", "CREATE VIEW [dbo].[vw_tracciabUDCVend] AS\n" +
|
||||||
|
"select mtb_colt.cod_anag as codAnag,\n" +
|
||||||
|
" gtb_anag.rag_soc as ragSoc, \n" +
|
||||||
|
" isNull(vtb_dest.destinatario,'') as destinazione,\n" +
|
||||||
|
" ISNULL(vtb_dest.citta, gtb_anag.citta) as citta,\n" +
|
||||||
|
" ISNULL(vtb_dest.prov, gtb_anag.prov) as provincia,\n" +
|
||||||
|
" ISNULL(vtb_dest.nazione, gtb_anag.nazione) as nazione,\n" +
|
||||||
|
" mtb_colt.cod_dtip as codDtip,\n" +
|
||||||
|
" mtb_colt.data_doc as dataDoc,\n" +
|
||||||
|
" mtb_colt.ser_doc as serDoc,\n" +
|
||||||
|
" mtb_colt.num_doc as numDoc,\n" +
|
||||||
|
" mtb_colr.cod_mart as codMart, \n" +
|
||||||
|
" mtb_aart.descrizione_estesa as descrizioneEstesa,\n" +
|
||||||
|
" Isnull(mtb_partita_mag.partita_mag_prod, mtb_colr.partita_mag) as lotto, \n" +
|
||||||
|
" mtb_partita_mag.data_prod as dataLotto,\n" +
|
||||||
|
" IIF(dtb_tipi.segno_qta_scar = -1, mtb_colr.barcode_ul_in, mtb_colr.barcode_ul_out) as UDCVenduta,\n" +
|
||||||
|
" UDC.data_vers as dataOraProd,\n" +
|
||||||
|
" UDC.cod_jfas as LineaProd,\n" +
|
||||||
|
" UDC.num_ord as numOrdProd,\n" +
|
||||||
|
" UDC.data_ord as DataOrdProd,\n" +
|
||||||
|
" mtb_aart.unt_mis as untMis,\n" +
|
||||||
|
" sum(mtb_colr.qta_col) as qtaVenduta,\n" +
|
||||||
|
" SUM(mtb_colr.num_collo) as colliVenduti\n" +
|
||||||
|
"from\n" +
|
||||||
|
" mtb_colt inner join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and\n" +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo and\n" +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo and\n" +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" inner join dtb_tipi on mtb_colt.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||||
|
" inner join gtb_anag on mtb_colt.cod_anag = gtb_anag.cod_anag\n" +
|
||||||
|
" left outer join vtb_dest on mtb_colt.cod_anag = vtb_dest.cod_anag and\n" +
|
||||||
|
" mtb_colt.cod_vdes = vtb_dest.cod_vdes\n" +
|
||||||
|
" inner join mtb_aart on mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" inner join mtb_partita_mag on mtb_colr.cod_mart = mtb_partita_mag.cod_mart and mtb_colr.partita_mag = mtb_partita_mag.partita_mag\n" +
|
||||||
|
" inner join mtb_colt UDC on IIF(dtb_tipi.segno_qta_scar = -1, mtb_colr.barcode_ul_in, mtb_colr.barcode_ul_out) = UDC.barcode_ul\n" +
|
||||||
|
"where mtb_colt.gestione = 'V' and dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
||||||
|
"group by mtb_colt.cod_anag, gtb_anag.rag_soc, isNull(vtb_dest.destinatario,''),\n" +
|
||||||
|
" ISNULL(vtb_dest.citta, gtb_anag.citta),\n" +
|
||||||
|
" ISNULL(vtb_dest.prov, gtb_anag.prov),\n" +
|
||||||
|
" ISNULL(vtb_dest.nazione, gtb_anag.nazione),\n" +
|
||||||
|
" mtb_colt.cod_dtip, mtb_colt.data_doc, mtb_colt.ser_doc, mtb_colt.num_doc,\n" +
|
||||||
|
" mtb_colr.cod_mart, mtb_aart.descrizione_estesa, \n" +
|
||||||
|
" Isnull(mtb_partita_mag.partita_mag_prod, mtb_colr.partita_mag), \n" +
|
||||||
|
" mtb_partita_mag.data_prod,\n" +
|
||||||
|
" mtb_aart.unt_mis,\n" +
|
||||||
|
" IIF(dtb_tipi.segno_qta_scar = -1, mtb_colr.barcode_ul_in, mtb_colr.barcode_ul_out),\n" +
|
||||||
|
" UDC.data_vers,\n" +
|
||||||
|
" UDC.cod_jfas,\n" +
|
||||||
|
" UDC.data_ord,\n" +
|
||||||
|
" UDC.num_ord");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250903122928 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("[vw_tracciabUDCProd]", "CREATE VIEW [dbo].[vw_tracciabUDCProd] AS\n" +
|
||||||
|
"select mtb_colr.data_ord as dataOrdProd,\n" +
|
||||||
|
" mtb_colr.num_ord as numOrdProd,\n" +
|
||||||
|
" mtb_colt.cod_anag as codAnag,\n" +
|
||||||
|
" gtb_anag.rag_soc as produttore,\n" +
|
||||||
|
" mtb_colt.cod_jfas as linea,\n" +
|
||||||
|
" mtb_colr.datetime_row as dataOraProd,\n" +
|
||||||
|
" mtb_colt.cod_dtip as codDtip,\n" +
|
||||||
|
" mtb_colt.data_doc as dataDoc,\n" +
|
||||||
|
" mtb_colt.ser_doc as serDoc,\n" +
|
||||||
|
" mtb_colt.num_doc as numDoc,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.cod_mart, '') as codProd, \n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_aart.descrizione_estesa,'') as DescrizioneProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.partita_mag,'') as lottoProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.barcode_ul_in,'') as UDCProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.qta_col, 0) as qtaProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.cod_mart, '') as codMP, \n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_aart.descrizione_estesa,'') as DescrizioneMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.partita_mag,'') as lottoMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.barcode_ul_in,'') as UDCMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.qta_col, 0) as qtaScar\n" +
|
||||||
|
"from\n" +
|
||||||
|
" mtb_colt inner join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and\n" +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo and\n" +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo and\n" +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" inner join mtb_aart on mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" inner join gtb_anag on mtb_colt.cod_anag = gtb_anag.cod_anag\n" +
|
||||||
|
"Where mtb_colt.gestione = 'L' and mtb_colr.data_ord is not null");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250903123308 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("[vw_tracciabUDCACQ]", "CREATE VIEW [dbo].[vw_tracciabUDCACQ] AS\n" +
|
||||||
|
"Select doct.cod_anag as codAnag, \n" +
|
||||||
|
" gtb_anag.rag_soc as ragSoc,\n" +
|
||||||
|
" doct.data_doc as dataDoc, \n" +
|
||||||
|
" doct.ser_doc as serDoc, \n" +
|
||||||
|
" doct.num_doc as numDoc, \n" +
|
||||||
|
" doct.cod_dtip as codDtip,\n" +
|
||||||
|
" doct.num_doc_forn as numDocForn,\n" +
|
||||||
|
" mtb_grup.tipo_mgrp as tipoMgrp,\n" +
|
||||||
|
" docr.cod_mart as codMart, \n" +
|
||||||
|
" docr.descrizione, \n" +
|
||||||
|
" docr.partita_mag as partitaMag, \n" +
|
||||||
|
" docr.unt_doc as untDoc, \n" +
|
||||||
|
" docr.qta_doc as qtaDoc,\n" +
|
||||||
|
" UDCAcq.UDC, \n" +
|
||||||
|
" UDCAcq.qtaUDC\n" +
|
||||||
|
" from dtb_doct doct inner join dtb_docr docr on doct.cod_anag = docr.cod_anag and \n" +
|
||||||
|
" doct.cod_dtip = docr.cod_dtip and\n" +
|
||||||
|
" doct.data_doc = docr.data_doc and \n" +
|
||||||
|
" doct.ser_doc = docr.ser_doc and\n" +
|
||||||
|
" doct.num_doc = docr.num_doc\n" +
|
||||||
|
" inner join dtb_tipi on doct.cod_dtip = dtb_tipi.cod_Dtip\n" +
|
||||||
|
" inner join gtb_anag on doct.cod_anag = gtb_anag.cod_anag\n" +
|
||||||
|
" inner join mtb_aart on docr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" inner join mtb_grup on mtb_aart.cod_mgrp = mtb_grup.cod_mgrp\n" +
|
||||||
|
" left outer join\n" +
|
||||||
|
" (select mtb_colt.barcode_ul as UDC, mtb_colt.cod_anag, mtb_colt.cod_dtip, mtb_colt.data_doc, mtb_colt.ser_doc, mtb_colt.num_doc,\n" +
|
||||||
|
" mtb_colr.cod_mart, mtb_colr.partita_mag, mtb_colr.qta_col as qtaUDC\n" +
|
||||||
|
" from\n" +
|
||||||
|
" mtb_colt inner join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and\n" +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo and\n" +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo and\n" +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" Where mtb_colt.gestione = 'A' and mtb_colt.segno = 1\n" +
|
||||||
|
" )UDCAcq on doct.cod_anag = UDCAcq.cod_anag and \n" +
|
||||||
|
" doct.cod_dtip = UDCAcq.cod_dtip and \n" +
|
||||||
|
" doct.data_doc = UDCAcq.data_doc and \n" +
|
||||||
|
" doct.ser_doc = UDCAcq.ser_doc and \n" +
|
||||||
|
" doct.num_doc = UDCAcq.num_doc and\n" +
|
||||||
|
" docr.cod_mart = UDCAcq.cod_mart and\n" +
|
||||||
|
" docr.partita_mag = UDCAcq.partita_mag\n" +
|
||||||
|
" Where doct.gestione = 'A' and dtb_tipi.segno_qta_car = 1 and docr.partita_mag is not null");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250903174910 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
executeStatement("alter table vtb_offt add condizioni_commerciali nvarchar(max)\n",
|
||||||
|
"alter table vtb_offt add incoterms varchar(20)\n",
|
||||||
|
"alter table vtb_offt add descrizione_paga varchar(1024)\n",
|
||||||
|
"alter table vtb_offt add data_rif_scad datetime\n",
|
||||||
|
"alter table vtb_offt add perc_prov numeric(5,2) default 0");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250903182440 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
executeStatement("alter table vtb_offt add note_incoterms varchar(40)\n",
|
||||||
|
"alter table vtb_offt add note_carico varchar(255)\n",
|
||||||
|
"alter table vtb_offt add term_cons varchar(1024)",
|
||||||
|
"alter table gtb_anag_note add note_carico bit not null default 0");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250904125022 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("[vw_tracciabUDCProd]", "CREATE VIEW [dbo].[vw_tracciabUDCProd] AS\n" +
|
||||||
|
"select mtb_colr.data_ord as dataOrdProd,\n" +
|
||||||
|
" mtb_colr.num_ord as numOrdProd,\n" +
|
||||||
|
" mtb_colt.cod_anag as codAnag,\n" +
|
||||||
|
" gtb_anag.rag_soc as produttore,\n" +
|
||||||
|
" mtb_colt.cod_jfas as linea,\n" +
|
||||||
|
" mtb_colr.datetime_row as dataOraProd,\n" +
|
||||||
|
" mtb_colt.cod_dtip as codDtip,\n" +
|
||||||
|
" mtb_colt.data_doc as dataDoc,\n" +
|
||||||
|
" mtb_colt.ser_doc as serDoc,\n" +
|
||||||
|
" mtb_colt.num_doc as numDoc,\n" +
|
||||||
|
" mtb_colt.segno,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.cod_mart, '') as codProd, \n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_aart.descrizione_estesa,'') as DescrizioneProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.partita_mag,'') as lottoProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.barcode_ul_in,'') as UDCProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_aart.unt_mis,'') as untMisProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.qta_col, 0) as qtaProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.num_cnf, 0) as colliProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.cod_mart, '') as codMP, \n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_aart.descrizione_estesa,'') as DescrizioneMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.partita_mag,'') as lottoMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.barcode_ul_out,'') as UDCMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_aart.unt_mis,'') as untMisMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.qta_col, 0) as qtaScar\n" +
|
||||||
|
"from\n" +
|
||||||
|
" mtb_colt inner join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and\n" +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo and\n" +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo and\n" +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" inner join mtb_aart on mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" inner join gtb_anag on mtb_colt.cod_anag = gtb_anag.cod_anag\n" +
|
||||||
|
"Where mtb_colt.gestione = 'L' and mtb_colr.data_ord is not null");
|
||||||
|
createOrUpdateView("[vw_tracciabUDCVend]", "CREATE VIEW [dbo].[vw_tracciabUDCVend] AS\n" +
|
||||||
|
"select mtb_colt.cod_anag as codAnag,\n" +
|
||||||
|
" gtb_anag.rag_soc as ragSoc, \n" +
|
||||||
|
" isNull(vtb_dest.destinatario,'') as destinazione,\n" +
|
||||||
|
" ISNULL(vtb_dest.citta, gtb_anag.citta) as citta,\n" +
|
||||||
|
" ISNULL(vtb_dest.prov, gtb_anag.prov) as provincia,\n" +
|
||||||
|
" ISNULL(vtb_dest.nazione, gtb_anag.nazione) as nazione,\n" +
|
||||||
|
" mtb_colt.cod_dtip as codDtip,\n" +
|
||||||
|
" mtb_colt.data_doc as dataDoc,\n" +
|
||||||
|
" mtb_colt.ser_doc as serDoc,\n" +
|
||||||
|
" mtb_colt.num_doc as numDoc,\n" +
|
||||||
|
" mtb_colr.cod_mart as codMart, \n" +
|
||||||
|
" mtb_aart.descrizione_estesa as descrizioneEstesa,\n" +
|
||||||
|
" Isnull(mtb_partita_mag.partita_mag_prod, mtb_colr.partita_mag) as lotto, \n" +
|
||||||
|
" mtb_partita_mag.data_prod as dataLotto,\n" +
|
||||||
|
" IIF(dtb_tipi.segno_qta_scar = -1, mtb_colr.barcode_ul_in, mtb_colr.barcode_ul_out) as UDCVenduta,\n" +
|
||||||
|
" UDC.data_vers as dataOraProd,\n" +
|
||||||
|
" UDC.cod_jfas as LineaProd,\n" +
|
||||||
|
" UDC.num_ord as numOrdProd,\n" +
|
||||||
|
" UDC.data_ord as DataOrdProd,\n" +
|
||||||
|
" mtb_aart.unt_mis as untMis,\n" +
|
||||||
|
" sum(mtb_colr.qta_col) as qtaVenduta,\n" +
|
||||||
|
" SUM(mtb_colr.num_cnf) as colliVenduti\n" +
|
||||||
|
"from\n" +
|
||||||
|
" mtb_colt inner join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and\n" +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo and\n" +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo and\n" +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" inner join dtb_tipi on mtb_colt.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||||
|
" inner join gtb_anag on mtb_colt.cod_anag = gtb_anag.cod_anag\n" +
|
||||||
|
" left outer join vtb_dest on mtb_colt.cod_anag = vtb_dest.cod_anag and\n" +
|
||||||
|
" mtb_colt.cod_vdes = vtb_dest.cod_vdes\n" +
|
||||||
|
" inner join mtb_aart on mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" inner join mtb_partita_mag on mtb_colr.cod_mart = mtb_partita_mag.cod_mart and mtb_colr.partita_mag = mtb_partita_mag.partita_mag\n" +
|
||||||
|
" inner join mtb_colt UDC on IIF(dtb_tipi.segno_qta_scar = -1, mtb_colr.barcode_ul_in, mtb_colr.barcode_ul_out) = UDC.barcode_ul\n" +
|
||||||
|
"where mtb_colt.gestione = 'V' and dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
||||||
|
"group by mtb_colt.cod_anag, gtb_anag.rag_soc, isNull(vtb_dest.destinatario,''),\n" +
|
||||||
|
" ISNULL(vtb_dest.citta, gtb_anag.citta),\n" +
|
||||||
|
" ISNULL(vtb_dest.prov, gtb_anag.prov),\n" +
|
||||||
|
" ISNULL(vtb_dest.nazione, gtb_anag.nazione),\n" +
|
||||||
|
" mtb_colt.cod_dtip, mtb_colt.data_doc, mtb_colt.ser_doc, mtb_colt.num_doc,\n" +
|
||||||
|
" mtb_colr.cod_mart, mtb_aart.descrizione_estesa, \n" +
|
||||||
|
" Isnull(mtb_partita_mag.partita_mag_prod, mtb_colr.partita_mag), \n" +
|
||||||
|
" mtb_partita_mag.data_prod,\n" +
|
||||||
|
" mtb_aart.unt_mis,\n" +
|
||||||
|
" IIF(dtb_tipi.segno_qta_scar = -1, mtb_colr.barcode_ul_in, mtb_colr.barcode_ul_out),\n" +
|
||||||
|
" UDC.data_vers,\n" +
|
||||||
|
" UDC.cod_jfas,\n" +
|
||||||
|
" UDC.data_ord,\n" +
|
||||||
|
" UDC.num_ord");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,145 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250904132643 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateProcedure("updprogordini", "CREATE PROCEDURE [dbo].[UpdProgOrdini](\n" +
|
||||||
|
" @codAnag varchar(5),\n" +
|
||||||
|
" @codDtip varchar(5),\n" +
|
||||||
|
" @dataDoc dateTime,\n" +
|
||||||
|
" @serDoc varchar(2),\n" +
|
||||||
|
" @numDoc integer,\n" +
|
||||||
|
" @segno integer,\n" +
|
||||||
|
" @Operation varchar(1))\n" +
|
||||||
|
" /***DESCRIZIONE: Questa storedProcedure aggiorna la quantitàevasa degli ordini e anche il \n" +
|
||||||
|
" numero di pezzi, non contiene una serie di logiche particolarti tipo la \n" +
|
||||||
|
" sostuzione dell'articolo nell'ordine\n" +
|
||||||
|
" \n" +
|
||||||
|
" */\n" +
|
||||||
|
"AS\n" +
|
||||||
|
"BEGIN\n" +
|
||||||
|
" SET NOCOUNT ON;\n" +
|
||||||
|
" \n" +
|
||||||
|
"\n" +
|
||||||
|
" UPDATE dtb_ordr\n" +
|
||||||
|
" SET dtb_ordr.qta_evasa = \n" +
|
||||||
|
" CASE WHEN (SELECT application_name from azienda ) = 'WINGEST' THEN \n" +
|
||||||
|
" dtb_ordr.qta_evasa + \n" +
|
||||||
|
" (@segno * (CASE dtb_ordr.unt_ord\n" +
|
||||||
|
" when doc.unt_doc then doc.qta_doc\n" +
|
||||||
|
" when doc.unt_doc2 then doc.qta_doc2\n" +
|
||||||
|
" when doc.unt_doc3 then doc.qta_doc3\n" +
|
||||||
|
" else \n" +
|
||||||
|
" Round(((doc.qta_doc_no_um / dtb_ordr.rap_conv)),mtb_unt_mis.cifre_dec) \n" +
|
||||||
|
" end ))\n" +
|
||||||
|
" ELSE \n" +
|
||||||
|
" dtb_ordr.qta_evasa \n" +
|
||||||
|
" END, \n" +
|
||||||
|
" dtb_ordr.num_cnf_evasa = dtb_ordr.num_cnf_evasa + (@segno * doc.num_cnf),\n" +
|
||||||
|
" dtb_ordr.flag_evaso_forzato = CASE WHEN @Operation = 'D' THEN 'N' ELSE doc.flag_evaso_forzato END,\n" +
|
||||||
|
" dtb_ordr.flag_evaso = CASE WHEN @Operation = 'D' THEN 'I'\n" +
|
||||||
|
" WHEN doc.flag_evaso_forzato = 'S' THEN 'E' ELSE dtb_ordr.flag_evaso END \n" +
|
||||||
|
" FROM dtb_ordr INNER JOIN mtb_unt_mis ON dtb_ordr.unt_ord = mtb_unt_mis.unt_mis\n" +
|
||||||
|
" INNER JOIN \n" +
|
||||||
|
" (SELECT dtb_doct.gestione,\n" +
|
||||||
|
" dtb_docr.data_ord,\n" +
|
||||||
|
" dtb_docr.num_ord,\n" +
|
||||||
|
" dtb_docr.riga_ord,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc * dtb_docr.rap_conv) as qta_doc_no_um,\n" +
|
||||||
|
" \n" +
|
||||||
|
" dtb_docr.unt_doc,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc) as qta_doc,\n" +
|
||||||
|
" \n" +
|
||||||
|
" dtb_docr.unt_doc2,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc2) as qta_doc2,\n" +
|
||||||
|
" \n" +
|
||||||
|
" dtb_docr.unt_doc3,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc3) as qta_doc3,\n" +
|
||||||
|
" sum(dtb_docr.num_cnf) as num_cnf,\n" +
|
||||||
|
" max(dtb_docr.flag_evaso_forzato) as flag_evaso_forzato\n" +
|
||||||
|
" FROM dtb_doct inner join dtb_tipi on dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||||
|
" inner join dtb_docr on dtb_doct.cod_dtip = dtb_docr.cod_dtip and\n" +
|
||||||
|
" dtb_doct.cod_anag = dtb_docr.cod_anag and\n" +
|
||||||
|
" dtb_doct.data_doc = dtb_docr.data_doc and\n" +
|
||||||
|
" dtb_doct.ser_doc = dtb_docr.ser_doc and\n" +
|
||||||
|
" dtb_doct.num_doc = dtb_docr.num_doc \n" +
|
||||||
|
" WHERE dtb_doct.cod_dtip = @codDtip AND\n" +
|
||||||
|
" dtb_doct.cod_anag = @codAnag AND\n" +
|
||||||
|
" dtb_doct.data_doc = @dataDoc AND\n" +
|
||||||
|
" dtb_doct.ser_doc = @serDoc AND\n" +
|
||||||
|
" dtb_doct.num_doc = @numDoc AND\n" +
|
||||||
|
" dtb_docr.data_ord is not null AND\n" +
|
||||||
|
" ( dtb_doct.gestione <> 'L' AND (dtb_tipi.segno_qta_car = 1 OR dtb_tipi.segno_qta_scar = 1 ) OR \n" +
|
||||||
|
" ( dtb_doct.gestione = 'L' AND dtb_tipi.segno_qta_scar = 1 ))\n" +
|
||||||
|
" GROUP BY dtb_doct.gestione,\n" +
|
||||||
|
" dtb_docr.data_ord,\n" +
|
||||||
|
" dtb_docr.num_ord,\n" +
|
||||||
|
" dtb_docr.riga_ord, \n" +
|
||||||
|
" dtb_docr.unt_doc, \n" +
|
||||||
|
" dtb_docr.unt_doc2, \n" +
|
||||||
|
" dtb_docr.unt_doc3 \n" +
|
||||||
|
" UNION ALL\n" +
|
||||||
|
" SELECT dtb_ordt.gestione_rif,\n" +
|
||||||
|
" dtb_ordt.data_ord_rif, \n" +
|
||||||
|
" dtb_ordt.num_ord_rif, \n" +
|
||||||
|
" dtb_ordt.riga_ord_rif,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc * dtb_docr.rap_conv) as qta_doc_no_um,\n" +
|
||||||
|
" \n" +
|
||||||
|
" dtb_docr.unt_doc,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc) as qta_doc,\n" +
|
||||||
|
" \n" +
|
||||||
|
" dtb_docr.unt_doc2,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc2) as qta_doc2,\n" +
|
||||||
|
" \n" +
|
||||||
|
" dtb_docr.unt_doc3,\n" +
|
||||||
|
" sum(dtb_docr.qta_doc3) as qta_doc3,\n" +
|
||||||
|
" sum(dtb_docr.num_cnf) as num_cnf,\n" +
|
||||||
|
" max(dtb_docr.flag_evaso_forzato) as flag_evaso_forzato\n" +
|
||||||
|
" FROM dtb_doct inner join dtb_tipi on dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||||
|
" inner join dtb_docr on dtb_doct.cod_dtip = dtb_docr.cod_dtip and\n" +
|
||||||
|
" dtb_doct.cod_anag = dtb_docr.cod_anag and\n" +
|
||||||
|
" dtb_doct.data_doc = dtb_docr.data_doc and\n" +
|
||||||
|
" dtb_doct.ser_doc = dtb_docr.ser_doc and\n" +
|
||||||
|
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
|
||||||
|
" left outer join dtb_ordt ON dtb_tipi.gestione = dtb_ordt.gestione and\n" +
|
||||||
|
" dtb_docr.data_ord = dtb_ordt.data_ord and\n" +
|
||||||
|
" dtb_docr.num_ord = dtb_ordt.num_ord\n" +
|
||||||
|
" WHERE dtb_doct.cod_dtip = @codDtip AND\n" +
|
||||||
|
" dtb_doct.cod_anag = @codAnag AND\n" +
|
||||||
|
" dtb_doct.data_doc = @dataDoc AND\n" +
|
||||||
|
" dtb_doct.ser_doc = @serDoc AND\n" +
|
||||||
|
" dtb_doct.num_doc = @numDoc AND\n" +
|
||||||
|
" dtb_docr.data_ord is not null AND\n" +
|
||||||
|
" dtb_doct.gestione = 'L' AND dtb_tipi.segno_qta_car = 1 AND\n" +
|
||||||
|
" (SELECT application_name from azienda ) = 'WINGEST'\n" +
|
||||||
|
" GROUP BY dtb_ordt.gestione_rif,\n" +
|
||||||
|
" dtb_ordt.data_ord_rif,\n" +
|
||||||
|
" dtb_ordt.num_ord_rif,\n" +
|
||||||
|
" dtb_ordt.riga_ord_rif, \n" +
|
||||||
|
" dtb_docr.unt_doc, \n" +
|
||||||
|
" dtb_docr.unt_doc2, \n" +
|
||||||
|
" dtb_docr.unt_doc3 ) doc ON\n" +
|
||||||
|
" dtb_ordr.gestione = doc.gestione AND\n" +
|
||||||
|
" dtb_ordr.data_ord = doc.data_ord AND\n" +
|
||||||
|
" dtb_ordr.num_ord = doc.num_ord AND\n" +
|
||||||
|
" dtb_ordr.riga_ord = doc.riga_ord;\n" +
|
||||||
|
" \n" +
|
||||||
|
" \n" +
|
||||||
|
"END");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250904142821 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("[vw_tracciabUDCProd]", "CREATE VIEW [dbo].[vw_tracciabUDCProd] AS\n" +
|
||||||
|
"select mtb_colr.data_ord as dataOrdProd,\n" +
|
||||||
|
" mtb_colr.num_ord as numOrdProd,\n" +
|
||||||
|
" mtb_colt.cod_anag as codAnag,\n" +
|
||||||
|
" gtb_anag.rag_soc as produttore,\n" +
|
||||||
|
" mtb_colt.cod_jfas as linea,\n" +
|
||||||
|
" mtb_colr.datetime_row as dataOraProd,\n" +
|
||||||
|
" mtb_colt.cod_dtip as codDtip,\n" +
|
||||||
|
" mtb_colt.data_doc as dataDoc,\n" +
|
||||||
|
" mtb_colt.ser_doc as serDoc,\n" +
|
||||||
|
" mtb_colt.num_doc as numDoc,\n" +
|
||||||
|
" mtb_colt.segno,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.cod_mart, '') as codProd, \n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_aart.descrizione_estesa,'') as DescrizioneProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.partita_mag,'') as lottoProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colt.progressivo_ul,'') as numUDCProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.barcode_ul_in,'') as UDCProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_aart.unt_mis,'') as untMisProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.qta_col, 0) as qtaProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.num_cnf, 0) as colliProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.cod_mart, '') as codMP, \n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_aart.descrizione_estesa,'') as DescrizioneMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.partita_mag,'') as lottoMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.barcode_ul_out,'') as UDCMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_aart.unt_mis,'') as untMisMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.qta_col, 0) as qtaScar\n" +
|
||||||
|
"from\n" +
|
||||||
|
" mtb_colt inner join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and\n" +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo and\n" +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo and\n" +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" inner join mtb_aart on mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" inner join gtb_anag on mtb_colt.cod_anag = gtb_anag.cod_anag\n" +
|
||||||
|
"Where mtb_colt.gestione = 'L' and mtb_colr.data_ord is not null");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250904153339 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("[vw_tracciabUDCProd]", "CREATE VIEW [dbo].[vw_tracciabUDCProd] AS\n" +
|
||||||
|
"select mtb_colr.data_ord as dataOrdProd,\n" +
|
||||||
|
" mtb_colr.num_ord as numOrdProd,\n" +
|
||||||
|
" mtb_colt.cod_anag as codAnag,\n" +
|
||||||
|
" gtb_anag.rag_soc as produttore,\n" +
|
||||||
|
" mtb_colt.cod_jfas as linea,\n" +
|
||||||
|
" mtb_colr.datetime_row as dataOraProd,\n" +
|
||||||
|
" mtb_colt.cod_dtip as codDtip,\n" +
|
||||||
|
" mtb_colt.data_doc as dataDoc,\n" +
|
||||||
|
" mtb_colt.ser_doc as serDoc,\n" +
|
||||||
|
" mtb_colt.num_doc as numDoc,\n" +
|
||||||
|
" mtb_colt.segno,\n" +
|
||||||
|
" dtb_ordt.cod_prod as codProd, \n" +
|
||||||
|
" dtb_ordt.descrizione_prod as DescrizioneProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.partita_mag,'') as lottoProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colt.progressivo_ul,'') as numUDCProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.barcode_ul_in,'') as UDCProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_aart.unt_mis,'') as untMisProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.qta_col, 0) as qtaProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.num_cnf, 0) as colliProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.cod_mart, '') as codMP, \n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_aart.descrizione_estesa,'') as DescrizioneMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.partita_mag,'') as lottoMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.barcode_ul_out,'') as UDCMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_aart.unt_mis,'') as untMisMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.qta_col, 0) as qtaScar\n" +
|
||||||
|
"from\n" +
|
||||||
|
" mtb_colt inner join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and\n" +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo and\n" +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo and\n" +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" inner join mtb_aart on mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" inner join gtb_anag on mtb_colt.cod_anag = gtb_anag.cod_anag\n" +
|
||||||
|
" left outer join dtb_ordt on mtb_colt.gestione = dtb_ordt.gestione and" +
|
||||||
|
" mtb_colt.data_ord = dtb_ordt.data_ord and " +
|
||||||
|
" mtb_colt.num_ord = dtb_ordt.num_ord\n" +
|
||||||
|
"Where mtb_colt.gestione = 'L' and mtb_colr.data_ord is not null");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250904154412 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
executeStatement(
|
||||||
|
"alter table dbo.ctb_amac add cod_mdep varchar(5)",
|
||||||
|
"alter table dbo.ctb_amac add posizione varchar(40)",
|
||||||
|
"alter table dbo.ctb_amac\n" +
|
||||||
|
" add constraint FK_ctb_amac_mtb_depo_posizioni\n" +
|
||||||
|
" foreign key (cod_mdep, posizione) references dbo.mtb_depo_posizioni",
|
||||||
|
"create table dbo.ctb_amac_carat\n" +
|
||||||
|
"(\n" +
|
||||||
|
" id bigint identity\n" +
|
||||||
|
" constraint pk_ctb_amac_carat\n" +
|
||||||
|
" primary key,\n" +
|
||||||
|
" cod_cmac varchar(20) not null\n" +
|
||||||
|
" constraint fk_ctb_amac_carat_ctb_amac_cod_cmac\n" +
|
||||||
|
" references dbo.ctb_amac,\n" +
|
||||||
|
" nome_carat varchar(100) not null,\n" +
|
||||||
|
" val_carat nvarchar(4000),\n" +
|
||||||
|
" indice_ordinamento int default 0 not null,\n" +
|
||||||
|
" field_bg varchar(15)\n" +
|
||||||
|
")"
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250905092735 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("[vw_tracciabUDCProd]", "CREATE VIEW [dbo].[vw_tracciabUDCProd] AS\n" +
|
||||||
|
"select mtb_colr.data_ord as dataOrdProd,\n" +
|
||||||
|
" mtb_colr.num_ord as numOrdProd,\n" +
|
||||||
|
" mtb_colt.cod_anag as codAnag,\n" +
|
||||||
|
" gtb_anag.rag_soc as produttore,\n" +
|
||||||
|
" mtb_colt.cod_jfas as linea,\n" +
|
||||||
|
" mtb_colr.datetime_row as dataOraProd,\n" +
|
||||||
|
" mtb_colt.cod_dtip as codDtip,\n" +
|
||||||
|
" mtb_colt.data_doc as dataDoc,\n" +
|
||||||
|
" mtb_colt.ser_doc as serDoc,\n" +
|
||||||
|
" mtb_colt.num_doc as numDoc,\n" +
|
||||||
|
" mtb_colt.segno,\n" +
|
||||||
|
" dtb_ordt.cod_prod as codProd, \n" +
|
||||||
|
" dtb_ordt.descrizione_prod as DescrizioneProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.partita_mag,'') as lottoProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colt.progressivo_ul,'') as numUDCProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.barcode_ul_in,'') as UDCProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_aart.unt_mis,'') as untMisProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.qta_col, 0) as qtaProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = 1, mtb_colr.num_cnf, 0) as colliProd,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.cod_mart, '') as codMP, \n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_aart.descrizione_estesa,'') as DescrizioneMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.partita_mag,'') as lottoMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.barcode_ul_out,'') as UDCMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_aart.unt_mis,'') as untMisMP,\n" +
|
||||||
|
" IIF(mtb_colt.segno = -1, mtb_colr.qta_col, 0) as qtaScar,\n" +
|
||||||
|
" UDCOrigine.cod_jfas as LineaOrig,\n" +
|
||||||
|
" UDCOrigine.data_vers as DataOraOrig,\n" +
|
||||||
|
" UDCOrigine.data_ord as DataOrdOrig,\n" +
|
||||||
|
" UDCOrigine.num_ord as NumOrdOrig\n" +
|
||||||
|
"from\n" +
|
||||||
|
" mtb_colt inner join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and\n" +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo and\n" +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo and\n" +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" inner join mtb_aart on mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||||
|
" inner join gtb_anag on mtb_colt.cod_anag = gtb_anag.cod_anag\n" +
|
||||||
|
" left outer join dtb_ordt on mtb_colt.gestione = dtb_ordt.gestione and mtb_colt.data_ord = dtb_ordt.data_ord and mtb_colt.num_ord = dtb_ordt.num_ord\n" +
|
||||||
|
" left outer join mtb_colt UDCOrigine on mtb_colr.barcode_ul_out = UDCOrigine.barcode_ul\n" +
|
||||||
|
"Where mtb_colt.gestione = 'L' and mtb_colr.data_ord is not null");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250905094412 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
updateSetupValue("W_CSCADFOR_DISP", "DATAWINDOW", "D_CSCADFOR_NOBANCA_REP", "d_cscadfor_nobanca_gramm_rep");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,183 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250905175347 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
if (!isTextiles())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createOrUpdateFunction("ftx_getDisponibilitaArticoli", "CREATE FUNCTION [dbo].[ftx_getDisponibilitaArticoli](@datavalidita DATETIME,\n" +
|
||||||
|
" @codmdep VARCHAR(8000),\n" +
|
||||||
|
" @annostag VARCHAR(10),\n" +
|
||||||
|
" @codmart VARCHAR(15),\n" +
|
||||||
|
" @codtagl VARCHAR(15),\n" +
|
||||||
|
" @codcol VARCHAR(15),\n" +
|
||||||
|
" @barcode VARCHAR(15))\n" +
|
||||||
|
" RETURNS TABLE AS\n" +
|
||||||
|
" RETURN\n" +
|
||||||
|
" WITH setup AS (SELECT mtb_depo.cod_mdep,\n" +
|
||||||
|
" MAX(IIF(stb_gest_setup.key_section = 'INCLUDI_QTA_ORD_FOR',\n" +
|
||||||
|
" ISNULL(stb_gest_setup_depo.value, stb_gest_setup.value),\n" +
|
||||||
|
" NULL)) AS includi_qta_ord_for,\n" +
|
||||||
|
" MAX(IIF(stb_gest_setup.key_section = 'ESCLUDI_QTA_COLLI',\n" +
|
||||||
|
" ISNULL(stb_gest_setup_depo.value, 'N'), NULL)) AS escludi_qta_colli\n" +
|
||||||
|
" FROM mtb_depo\n" +
|
||||||
|
" CROSS APPLY stb_gest_setup\n" +
|
||||||
|
" LEFT OUTER JOIN stb_gest_setup_depo\n" +
|
||||||
|
" ON mtb_depo.cod_mdep = stb_gest_setup_depo.cod_mdep AND\n" +
|
||||||
|
" stb_gest_setup.gest_name = stb_gest_setup_depo.gest_name AND\n" +
|
||||||
|
" stb_gest_setup.section = stb_gest_setup_depo.section AND\n" +
|
||||||
|
" stb_gest_setup.key_section = stb_gest_setup_depo.key_section\n" +
|
||||||
|
" WHERE stb_gest_setup.gest_name = 'DATI_AZIENDA'\n" +
|
||||||
|
" AND stb_gest_setup.section = 'CALCOLO_DISPONIBILITA'\n" +
|
||||||
|
" AND stb_gest_setup.key_section IN ('INCLUDI_QTA_ORD_FOR', 'ESCLUDI_QTA_COLLI')\n" +
|
||||||
|
" GROUP BY mtb_depo.cod_mdep),\n" +
|
||||||
|
" articoli AS (SELECT ttb_style.anno_stag,\n" +
|
||||||
|
" ttb_style.cod_style,\n" +
|
||||||
|
" ttb_style_colori.cod_col,\n" +
|
||||||
|
" ttb_style_taglie.cod_tagl,\n" +
|
||||||
|
" mtb_part_dt.qta_ord_for,\n" +
|
||||||
|
" mtb_part_dt.cod_mdep\n" +
|
||||||
|
" FROM ttb_style,\n" +
|
||||||
|
" ttb_style_colori,\n" +
|
||||||
|
" ttb_style_taglie,\n" +
|
||||||
|
" mtb_part_dt\n" +
|
||||||
|
" WHERE (@codmdep IS NULL OR mtb_part_dt.cod_mdep IN (SELECT value_string AS cod_mdep\n" +
|
||||||
|
" FROM parsestringintoarray(@codmdep, ',')))\n" +
|
||||||
|
" AND (@codmart IS NULL OR ttb_style.cod_style = @codmart)\n" +
|
||||||
|
" AND (@codcol IS NULL OR ttb_style_colori.cod_col = @codcol)\n" +
|
||||||
|
" AND (@codtagl IS NULL OR ttb_style_taglie.cod_tagl = @codtagl)\n" +
|
||||||
|
" AND (@annostag IS NULL OR ttb_style.anno_stag = @annostag)\n" +
|
||||||
|
" AND ttb_style.cod_style = mtb_part_dt.cod_mart\n" +
|
||||||
|
" AND ttb_style_colori.cod_col = mtb_part_dt.cod_col\n" +
|
||||||
|
" AND ttb_style_taglie.cod_tagl = mtb_part_dt.cod_tagl\n" +
|
||||||
|
" AND ttb_style.cod_style = ttb_style_colori.cod_style\n" +
|
||||||
|
" AND ttb_style.cod_style = ttb_style_taglie.cod_style),\n" +
|
||||||
|
" colli AS (SELECT mtb_colr.cod_mart,\n" +
|
||||||
|
" mtb_colr.cod_col,\n" +
|
||||||
|
" mtb_colr.cod_tagl,\n" +
|
||||||
|
" SUM(mtb_colr.qta_col) AS qta,\n" +
|
||||||
|
" mtb_colt.cod_mdep\n" +
|
||||||
|
" FROM mtb_colt\n" +
|
||||||
|
" LEFT OUTER JOIN dtb_tipi ON mtb_colt.cod_dtip = dtb_tipi.cod_dtip,\n" +
|
||||||
|
" mtb_colr\n" +
|
||||||
|
" WHERE mtb_colt.gestione = mtb_colr.gestione\n" +
|
||||||
|
" AND mtb_colt.data_collo = mtb_colr.data_collo\n" +
|
||||||
|
" AND mtb_colt.ser_collo = mtb_colr.ser_collo\n" +
|
||||||
|
" AND mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||||
|
" AND mtb_colt.gestione = 'V'\n" +
|
||||||
|
" AND (@codmdep IS NULL OR mtb_colt.cod_mdep IN (SELECT value_string AS cod_mdep\n" +
|
||||||
|
" FROM parsestringintoarray(@codmdep, ',')))\n" +
|
||||||
|
" AND (mtb_colt.cod_dtip IS NULL OR (dtb_tipi.segno_qta_car = 0 AND dtb_tipi.segno_qta_scar = 0))\n" +
|
||||||
|
" AND (@codmart IS NULL OR mtb_colr.cod_mart = @codmart)\n" +
|
||||||
|
" AND (@codcol IS NULL OR mtb_colr.cod_col = @codcol)\n" +
|
||||||
|
" AND (@codtagl IS NULL OR mtb_colr.cod_tagl = @codtagl)\n" +
|
||||||
|
" GROUP BY mtb_colr.cod_mart,\n" +
|
||||||
|
" mtb_colr.cod_col,\n" +
|
||||||
|
" mtb_colr.cod_tagl,\n" +
|
||||||
|
" mtb_colt.cod_mdep),\n" +
|
||||||
|
" prenotazione AS (SELECT wdtb_ordr.cod_mart,\n" +
|
||||||
|
" wdtb_ordr.cod_col,\n" +
|
||||||
|
" wdtb_ordr.cod_tagl,\n" +
|
||||||
|
" SUM(wdtb_ordr.qta_ord) AS qta,\n" +
|
||||||
|
" wdtb_ordt.cod_mdep\n" +
|
||||||
|
" FROM wdtb_ordt,\n" +
|
||||||
|
" wdtb_ordr\n" +
|
||||||
|
" WHERE wdtb_ordt.gestione = wdtb_ordr.gestione\n" +
|
||||||
|
" AND wdtb_ordt.data_ord = wdtb_ordr.data_ord\n" +
|
||||||
|
" AND wdtb_ordt.num_ord = wdtb_ordr.num_ord\n" +
|
||||||
|
" AND wdtb_ordt.gestione = 'V'\n" +
|
||||||
|
" AND (@codmdep IS NULL OR wdtb_ordt.cod_mdep IN (SELECT value_string AS cod_mdep\n" +
|
||||||
|
" FROM parsestringintoarray(@codmdep, ',')))\n" +
|
||||||
|
" AND wdtb_ordt.flag_elaborato = 'N'\n" +
|
||||||
|
" AND (@codmart IS NULL OR wdtb_ordr.cod_mart = @codmart)\n" +
|
||||||
|
" AND (@codcol IS NULL OR wdtb_ordr.cod_col = @codcol)\n" +
|
||||||
|
" AND (@codtagl IS NULL OR wdtb_ordr.cod_tagl = @codtagl)\n" +
|
||||||
|
" GROUP BY wdtb_ordr.cod_mart,\n" +
|
||||||
|
" wdtb_ordr.cod_col,\n" +
|
||||||
|
" wdtb_ordr.cod_tagl,\n" +
|
||||||
|
" wdtb_ordt.cod_mdep),\n" +
|
||||||
|
" ordine AS (SELECT dtb_ordr.cod_mart,\n" +
|
||||||
|
" dtb_ordr.cod_col,\n" +
|
||||||
|
" dtb_ordr.cod_tagl,\n" +
|
||||||
|
" CASE\n" +
|
||||||
|
" WHEN SUM(CASE\n" +
|
||||||
|
" WHEN dtb_ordr.flag_evaso = 'I' OR\n" +
|
||||||
|
" (dtb_ordr.flag_evaso = 'A' AND dtb_ordr.qta_acc > 0)\n" +
|
||||||
|
" THEN dtb_ordr.qta_ord - dtb_ordr.qta_evasa - dtb_ordr.qta_col\n" +
|
||||||
|
" ELSE 0 END) > 0 THEN\n" +
|
||||||
|
" SUM(CASE\n" +
|
||||||
|
" WHEN dtb_ordr.flag_evaso = 'I' OR\n" +
|
||||||
|
" (dtb_ordr.flag_evaso = 'A' AND dtb_ordr.qta_acc > 0)\n" +
|
||||||
|
" THEN dtb_ordr.qta_ord - dtb_ordr.qta_evasa - dtb_ordr.qta_col\n" +
|
||||||
|
" ELSE 0 END)\n" +
|
||||||
|
" ELSE 0 END AS qta,\n" +
|
||||||
|
" SUM(dtb_ordr.qta_acc) AS qta_acc,\n" +
|
||||||
|
" /*sum(dtb_ordr.qta_acc - dtb_ordr.qta_col) as qta_acc,*/\n" +
|
||||||
|
" dtb_ordt.cod_mdep\n" +
|
||||||
|
" FROM dtb_ordt,\n" +
|
||||||
|
" dtb_ordr\n" +
|
||||||
|
" WHERE dtb_ordt.gestione = dtb_ordr.gestione\n" +
|
||||||
|
" AND dtb_ordt.data_ord = dtb_ordr.data_ord\n" +
|
||||||
|
" AND dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||||
|
" AND dtb_ordt.gestione = 'V'\n" +
|
||||||
|
" AND (@codmdep IS NULL OR dtb_ordt.cod_mdep IN (SELECT value_string AS cod_mdep\n" +
|
||||||
|
" FROM parsestringintoarray(@codmdep, ',')))\n" +
|
||||||
|
" /* AND dtb_ordr.flag_evaso = 'I'*/\n" +
|
||||||
|
" AND dtb_ordt.flag_annulla = 'N'\n" +
|
||||||
|
" AND (@codmart IS NULL OR dtb_ordr.cod_mart = @codmart)\n" +
|
||||||
|
" AND (@codcol IS NULL OR dtb_ordr.cod_col = @codcol)\n" +
|
||||||
|
" AND (@codtagl IS NULL OR dtb_ordr.cod_tagl = @codtagl)\n" +
|
||||||
|
" GROUP BY dtb_ordr.cod_mart,\n" +
|
||||||
|
" dtb_ordr.cod_col,\n" +
|
||||||
|
" dtb_ordr.cod_tagl,\n" +
|
||||||
|
" dtb_ordt.cod_mdep)\n" +
|
||||||
|
"\n" +
|
||||||
|
" SELECT articoli.anno_stag,\n" +
|
||||||
|
" articoli.cod_style,\n" +
|
||||||
|
" articoli.cod_col,\n" +
|
||||||
|
" articoli.cod_tagl,\n" +
|
||||||
|
" ttb_bar_code.cod_barre,\n" +
|
||||||
|
" articoli.cod_mdep,\n" +
|
||||||
|
" ISNULL(giacenza.qta_fine, 0) AS giacenza,\n" +
|
||||||
|
" ISNULL(articoli.qta_ord_for, 0) AS ord_forn,\n" +
|
||||||
|
" ISNULL(ordine.qta, 0) AS ordini,\n" +
|
||||||
|
" ISNULL(prenotazione.qta, 0) AS ordini_web,\n" +
|
||||||
|
" ISNULL(ordine.qta_acc, 0) AS accant_su_ordine,\n" +
|
||||||
|
" ISNULL(colli.qta, 0) AS colli,\n" +
|
||||||
|
" ISNULL(giacenza.qta_fine, 0) - ISNULL(ordine.qta, 0) - ISNULL(prenotazione.qta, 0) +\n" +
|
||||||
|
" IIF(setup.includi_qta_ord_for = 'S', ISNULL(articoli.qta_ord_for, 0), 0) -\n" +
|
||||||
|
" IIF(setup.escludi_qta_colli = 'S', ISNULL(colli.qta, 0), 0) AS qta_disp,\n" +
|
||||||
|
" ISNULL(giacenza.qta_fine, 0) - ISNULL(ordine.qta_acc, 0) - ISNULL(colli.qta, 0) AS qta_distrib_su_ordini\n" +
|
||||||
|
" FROM articoli\n" +
|
||||||
|
" LEFT OUTER JOIN ttb_bar_code ON articoli.cod_style = ttb_bar_code.cod_style AND\n" +
|
||||||
|
" articoli.cod_col = ttb_bar_code.cod_col AND\n" +
|
||||||
|
" articoli.cod_tagl = ttb_bar_code.cod_tagl\n" +
|
||||||
|
" LEFT OUTER JOIN getsitartadatadett(@datavalidita, @codmdep) giacenza\n" +
|
||||||
|
" ON articoli.cod_style = giacenza.cod_mart AND articoli.cod_col = giacenza.cod_col AND\n" +
|
||||||
|
" articoli.cod_tagl = giacenza.cod_tagl AND articoli.cod_mdep = giacenza.cod_mdep\n" +
|
||||||
|
" LEFT OUTER JOIN ordine\n" +
|
||||||
|
" ON articoli.cod_style = ordine.cod_mart AND articoli.cod_col = ordine.cod_col AND\n" +
|
||||||
|
" articoli.cod_tagl = ordine.cod_tagl AND articoli.cod_mdep = ordine.cod_mdep\n" +
|
||||||
|
" LEFT OUTER JOIN prenotazione ON articoli.cod_style = prenotazione.cod_mart AND\n" +
|
||||||
|
" articoli.cod_col = prenotazione.cod_col AND\n" +
|
||||||
|
" articoli.cod_tagl = prenotazione.cod_tagl AND\n" +
|
||||||
|
" articoli.cod_mdep = prenotazione.cod_mdep\n" +
|
||||||
|
" LEFT OUTER JOIN colli ON articoli.cod_style = colli.cod_mart AND articoli.cod_col = colli.cod_col AND\n" +
|
||||||
|
" articoli.cod_tagl = colli.cod_tagl AND articoli.cod_mdep = colli.cod_mdep\n" +
|
||||||
|
" left outer join setup on setup.cod_mdep = articoli.cod_mdep\n" +
|
||||||
|
" WHERE (@barcode IS NULL OR ttb_bar_code.cod_barre = @barcode)");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250908150244 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
executeStatement("ALTER TABLE azienda ADD cod_sdi_ditta VARCHAR(7)");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,151 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250908160026 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isDMS()) return;
|
||||||
|
|
||||||
|
createOrUpdateView("cvw_marg_contr_com", "CREATE VIEW [dbo].[cvw_marg_contr_com] (cod_jcom,descrizione,costo_lavorazione,costo_materiali,costo_servizi,altri_costi,ricavi,ore_lavorazione, data) AS \n" +
|
||||||
|
"SELECT jtb_rlavr.cod_jcom AS cod_jcom,\n" +
|
||||||
|
" jtb_comt.descrizione,\n" +
|
||||||
|
" Sum(jtb_rlavr.ore * jtb_rlavr.costo_ora / jtb_rlavr.cambio_divi_cont) AS costo_lavorazione,\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0) AS costo_materiali,\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0) AS costo_servizi,\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0) AS altri_costi,\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0) AS ricavi,\n" +
|
||||||
|
" Sum(jtb_rlavr.ore) AS ore_lavorazione,\n" +
|
||||||
|
" jtb_rlavr.data_lav AS data\n" +
|
||||||
|
"FROM jtb_rlavr,\n" +
|
||||||
|
" jtb_comt\n" +
|
||||||
|
"WHERE jtb_rlavr.cod_jcom = jtb_comt.cod_jcom\n" +
|
||||||
|
"GROUP BY jtb_rlavr.cod_jcom,\n" +
|
||||||
|
" jtb_comt.descrizione,\n" +
|
||||||
|
" jtb_rlavr.data_lav\n" +
|
||||||
|
"UNION\n" +
|
||||||
|
"SELECT dtb_docr.cod_jcom AS cod_jcom,\n" +
|
||||||
|
" jtb_comt.descrizione,\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" Sum(dtb_docr.qta_doc * dtb_docr.costo_unt * (\n" +
|
||||||
|
" dtb_tipi.segno_val_car - dtb_tipi.segno_val_scar ) * (\n" +
|
||||||
|
" CASE dtb_tipi.gestione\n" +
|
||||||
|
" WHEN 'A' THEN 1\n" +
|
||||||
|
" ELSE-1\n" +
|
||||||
|
" END ) / dtb_doct.cambio),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" dtb_doct.data_reg\n" +
|
||||||
|
"FROM dtb_docr,\n" +
|
||||||
|
" jtb_comt,\n" +
|
||||||
|
" dtb_doct,\n" +
|
||||||
|
" dtb_tipi\n" +
|
||||||
|
"WHERE ( dtb_doct.cod_anag = dtb_docr.cod_anag )\n" +
|
||||||
|
" AND ( dtb_doct.cod_dtip = dtb_docr.cod_dtip )\n" +
|
||||||
|
" AND ( dtb_doct.data_doc = dtb_docr.data_doc )\n" +
|
||||||
|
" AND ( dtb_doct.ser_doc = dtb_docr.ser_doc )\n" +
|
||||||
|
" AND ( dtb_doct.num_doc = dtb_docr.num_doc )\n" +
|
||||||
|
" AND ( dtb_docr.cod_dtip = dtb_tipi.cod_dtip )\n" +
|
||||||
|
" AND ( dtb_docr.cod_jcom = jtb_comt.cod_jcom )\n" +
|
||||||
|
" AND ( dtb_tipi.flag_analisi_costi_com = 'S' )\n" +
|
||||||
|
" AND ( dtb_tipi.tipo_emissione = 'DIRETTA' )\n" +
|
||||||
|
"GROUP BY dtb_docr.cod_jcom,\n" +
|
||||||
|
" jtb_comt.descrizione,\n" +
|
||||||
|
" dtb_doct.data_reg\n" +
|
||||||
|
"UNION\n" +
|
||||||
|
"SELECT dtb_docs.cod_jcom,\n" +
|
||||||
|
" jtb_comt.descrizione,\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" Sum(( dtb_docs.importo / dtb_doct.cambio )),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" dtb_doct.data_reg\n" +
|
||||||
|
"FROM dtb_docs,\n" +
|
||||||
|
" jtb_comt,\n" +
|
||||||
|
" dtb_doct,\n" +
|
||||||
|
" dtb_tipi\n" +
|
||||||
|
"WHERE ( dtb_doct.cod_anag = dtb_docs.cod_anag )\n" +
|
||||||
|
" AND ( dtb_doct.cod_dtip = dtb_docs.cod_dtip )\n" +
|
||||||
|
" AND ( dtb_doct.data_doc = dtb_docs.data_doc )\n" +
|
||||||
|
" AND ( dtb_doct.ser_doc = dtb_docs.ser_doc )\n" +
|
||||||
|
" AND ( dtb_doct.num_doc = dtb_docs.num_doc )\n" +
|
||||||
|
" AND ( dtb_doct.cod_dtip = dtb_tipi.cod_dtip )\n" +
|
||||||
|
" AND ( dtb_docs.cod_jcom = jtb_comt.cod_jcom )\n" +
|
||||||
|
" AND ( dtb_tipi.flag_analisi_costi_com = 'S' )\n" +
|
||||||
|
" AND ( dtb_tipi.tipo_emissione = 'DIFFERITA' )\n" +
|
||||||
|
" AND ( dtb_tipi.gestione = 'L' )\n" +
|
||||||
|
" AND ( dtb_tipi.segno_val_car = 1 )\n" +
|
||||||
|
"GROUP BY dtb_docs.cod_jcom,\n" +
|
||||||
|
" jtb_comt.descrizione,\n" +
|
||||||
|
" dtb_doct.data_reg\n" +
|
||||||
|
"UNION\n" +
|
||||||
|
"SELECT ctb_movr_coan.cod_jcom,\n" +
|
||||||
|
" jtb_comt.descrizione,\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" Sum(( ctb_movr_coan.imp_dare - ctb_movr_coan.imp_avere ) /\n" +
|
||||||
|
" ctb_movr_coan.cambio_divi_cont),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" ctb_movt.data_cmov\n" +
|
||||||
|
"FROM ctb_movr_coan,\n" +
|
||||||
|
" jtb_comt,\n" +
|
||||||
|
" ctb_grup,\n" +
|
||||||
|
" ctb_cont,\n" +
|
||||||
|
" ctb_movr,\n" +
|
||||||
|
" ctb_movt\n" +
|
||||||
|
"WHERE ( ctb_movt.num_cmov = ctb_movr_coan.num_cmov )\n" +
|
||||||
|
" AND ( ctb_movr_coan.cod_jcom = jtb_comt.cod_jcom )\n" +
|
||||||
|
" AND ( ctb_grup.cod_cgrp = ctb_cont.cod_cgrp )\n" +
|
||||||
|
" AND ( ctb_movr.cod_ccon = ctb_cont.cod_ccon )\n" +
|
||||||
|
" AND ( ctb_movr.num_cmov = ctb_movr_coan.num_cmov )\n" +
|
||||||
|
" AND ( ctb_movr_coan.id_riga = ctb_movr.id_riga )\n" +
|
||||||
|
" AND ( ctb_grup.tipo = '4' )\n" +
|
||||||
|
"GROUP BY ctb_movr_coan.cod_jcom,\n" +
|
||||||
|
" jtb_comt.descrizione,\n" +
|
||||||
|
" ctb_movt.data_cmov\n" +
|
||||||
|
"UNION\n" +
|
||||||
|
"SELECT ctb_movr_coan.cod_jcom,\n" +
|
||||||
|
" jtb_comt.descrizione,\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" Sum(( ctb_movr_coan.imp_avere - ctb_movr_coan.imp_dare ) /\n" +
|
||||||
|
" ctb_movr_coan.cambio_divi_cont),\n" +
|
||||||
|
" CONVERT(NUMERIC(20, 5), 0),\n" +
|
||||||
|
" ctb_movt.data_cmov\n" +
|
||||||
|
"FROM ctb_movr_coan,\n" +
|
||||||
|
" jtb_comt,\n" +
|
||||||
|
" ctb_cont,\n" +
|
||||||
|
" ctb_grup,\n" +
|
||||||
|
" ctb_movr,\n" +
|
||||||
|
" ctb_movt\n" +
|
||||||
|
"WHERE ( ctb_movt.num_cmov = ctb_movr_coan.num_cmov )\n" +
|
||||||
|
" AND ( ctb_movr_coan.cod_jcom = jtb_comt.cod_jcom )\n" +
|
||||||
|
" AND ( ctb_grup.cod_cgrp = ctb_cont.cod_cgrp )\n" +
|
||||||
|
" AND ( ctb_movr.cod_ccon = ctb_cont.cod_ccon )\n" +
|
||||||
|
" AND ( ctb_movr.num_cmov = ctb_movr_coan.num_cmov )\n" +
|
||||||
|
" AND ( ctb_movr_coan.id_riga = ctb_movr.id_riga )\n" +
|
||||||
|
" AND ( ctb_grup.tipo = '5' )\n" +
|
||||||
|
"GROUP BY ctb_movr_coan.cod_jcom,\n" +
|
||||||
|
" jtb_comt.descrizione,\n" +
|
||||||
|
" ctb_movt.data_cmov");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250908171146 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("W_MSCHMOVART_PART_DISP", "DATAWINDOW", "D_MSCHMOVART_PART_DEP_REP", null,
|
||||||
|
null, false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
|
||||||
|
|
||||||
|
if(isCustomer(IntegryCustomer.RossoGargano)) {
|
||||||
|
updateSetupValue("W_MSCHMOVART_PART_DISP", "DATAWINDOW", "D_MSCHMOVART_PART_DEP_REP", "d_mschmovart_part_dep_rossogargano_rep");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250909104539 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
executeStatement("update ctb_amac\n" +
|
||||||
|
"set ctb_amac.cod_mdep = jtb_fasi.cod_mdep_lav\n" +
|
||||||
|
"from ctb_amac\n" +
|
||||||
|
" left join jtb_fasi on ctb_amac.cod_jfas = jtb_fasi.cod_jfas");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250909112137 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "ATTIVO", null, "Flag che abilita l'utilizzo delle API di UVE2K", "SI_NO");
|
||||||
|
createSetup("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "UVE2K_JWT_ACCESS_TOKEN", null, "Access token utile per autenticarsi sulle API di UVE2K", null);
|
||||||
|
createSetup("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "UVE2K_URL_BASE_PATH", null, "URL base delle API di UVE2K", null);
|
||||||
|
createSetup("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "UVE2K_COMPANY_ID", null, "Company ID di UVE2K", null);
|
||||||
|
createSetup("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "UVE2K_APP_CLIENT_ID", null, "App Client ID di UVE2K", null);
|
||||||
|
createSetup("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "UVE2K_USERNAME", null, "Username di accesso a UVE2K", null);
|
||||||
|
createSetup("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "UVE2K_PASSWORD", null, "Password di accesso a UVE2K", null);
|
||||||
|
|
||||||
|
|
||||||
|
if (isCustomerDb(IntegryCustomerDB.Lamonarca_Lamonarca)) {
|
||||||
|
updateSetupValue("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "ATTIVO", "S");
|
||||||
|
updateSetupValue("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "UVE2K_URL_BASE_PATH", "https://bluetech02.maxidata.net/uve2k.blue.srv1/");
|
||||||
|
updateSetupValue("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "UVE2K_COMPANY_ID", "MAXI.MAXI.LAMON.00001");
|
||||||
|
updateSetupValue("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "UVE2K_APP_CLIENT_ID", "uve2k.Blue");
|
||||||
|
updateSetupValue("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "UVE2K_USERNAME", "Integry.Lamonarca");
|
||||||
|
updateSetupValue("IMPORT_ORDINI LAVORAZIONE", "MAXIDATA", "UVE2K_PASSWORD", "Bt02Mes#2025");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250909125147 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetupQuery("SI_NO", "SI_NO", "SELECT 'S' UNION ALL SELECT 'N'");
|
||||||
|
createSetup("DATI_AZIENDA", "INVIO_EMAIL", "NEW", "[_azienda.ini|TEST_MAIL|NEW|N]",
|
||||||
|
"Apre la mail in outlook con i nuovi oggetti", false, "SI_NO", false, false,
|
||||||
|
false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'");
|
||||||
|
|
||||||
|
if (isCustomer(IntegryCustomer.RossoGargano))
|
||||||
|
updateSetupValue("DATI_AZIENDA", "INVIO_EMAIL", "NEW", "S");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250909131006 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
deleteSetup("DATI_AZIENDA", "INVIO_EMAIL", "NEW");
|
||||||
|
createSetupQuery("SI_NO", "SI_NO", "SELECT 'S' UNION ALL SELECT 'N'");
|
||||||
|
createSetup("DATI_AZIENDA", "SETUP", "INVIO_EMAIL_NEW", "[_azienda.ini|TEST_MAIL|NEW|N]",
|
||||||
|
"Apre la mail in outlook con i nuovi oggetti", false, "SI_NO", false, false,
|
||||||
|
false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'");
|
||||||
|
|
||||||
|
if (isCustomer(IntegryCustomer.RossoGargano))
|
||||||
|
updateSetupValue("DATI_AZIENDA", "SETUP", "INVIO_EMAIL_NEW", "S");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
import it.integry.ems_model.utility.dto.IndexTableDTO;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
|
||||||
|
public class Migration_20250909145813 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
IndexTableDTO indexTableDTO =
|
||||||
|
new IndexTableDTO()
|
||||||
|
.setTableName("ctb_amac_history")
|
||||||
|
.setIndexName("ctb_amac_history_cod_cmac_index")
|
||||||
|
.setColumnsIndex(Collections.singletonList(
|
||||||
|
new IndexTableDTO.ColumnIndex("cod_cmac")
|
||||||
|
))
|
||||||
|
.setOverride(false);
|
||||||
|
createIndex(indexTableDTO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,190 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20250909162127 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!isCustomerDb(IntegryCustomerDB.Biolevante_Biolevante))
|
||||||
|
return;
|
||||||
|
|
||||||
|
executeStatement(
|
||||||
|
"UPDATE ctb_amac SET posizione = N'0T' WHERE cod_cmac = N'TANK00T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'1' WHERE cod_cmac = N'TANK01';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'1T' WHERE cod_cmac = N'TANK01T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'2' WHERE cod_cmac = N'TANK02';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'2T' WHERE cod_cmac = N'TANK02T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'3' WHERE cod_cmac = N'TANK03';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'3T' WHERE cod_cmac = N'TANK03T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'4' WHERE cod_cmac = N'TANK04';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'4T' WHERE cod_cmac = N'TANK04T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'5' WHERE cod_cmac = N'TANK05';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'5T' WHERE cod_cmac = N'TANK05T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'6' WHERE cod_cmac = N'TANK06';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'6T' WHERE cod_cmac = N'TANK06T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'7' WHERE cod_cmac = N'TANK07';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'7T' WHERE cod_cmac = N'TANK07T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'8T' WHERE cod_cmac = N'TANK08T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'9T' WHERE cod_cmac = N'TANK09T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'10T' WHERE cod_cmac = N'TANK10T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'11T' WHERE cod_cmac = N'TANK11T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'12T' WHERE cod_cmac = N'TANK12T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'13T' WHERE cod_cmac = N'TANK13T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'14T' WHERE cod_cmac = N'TANK14T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'15T' WHERE cod_cmac = N'TANK15T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'16T' WHERE cod_cmac = N'TANK16T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'17T' WHERE cod_cmac = N'TANK17T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'18T' WHERE cod_cmac = N'TANK18T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'19T' WHERE cod_cmac = N'TANK19T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'20T' WHERE cod_cmac = N'TANK20T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'22T' WHERE cod_cmac = N'TANK22T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'23T' WHERE cod_cmac = N'TANK23T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'24T' WHERE cod_cmac = N'TANK24T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'25T' WHERE cod_cmac = N'TANK25T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'26T' WHERE cod_cmac = N'TANK26T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'27T' WHERE cod_cmac = N'TANK27T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'28T' WHERE cod_cmac = N'TANK28T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'29T' WHERE cod_cmac = N'TANK29T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'30T' WHERE cod_cmac = N'TANK30T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'31T' WHERE cod_cmac = N'TANK31T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'32T' WHERE cod_cmac = N'TANK32T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'33T' WHERE cod_cmac = N'TANK33T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'34T' WHERE cod_cmac = N'TANK34T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'35T' WHERE cod_cmac = N'TANK35T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'36T' WHERE cod_cmac = N'TANK36T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'37T' WHERE cod_cmac = N'TANK37T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'38T' WHERE cod_cmac = N'TANK38T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'39T' WHERE cod_cmac = N'TANK39T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'40T' WHERE cod_cmac = N'TANK40T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'41T' WHERE cod_cmac = N'TANK41T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'42T' WHERE cod_cmac = N'TANK42T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'43T' WHERE cod_cmac = N'TANK43T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V1' WHERE cod_cmac = N'TANKV01';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V1T' WHERE cod_cmac = N'TANKV01T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V2' WHERE cod_cmac = N'TANKV02';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V2T' WHERE cod_cmac = N'TANKV02T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V3' WHERE cod_cmac = N'TANKV03';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V3T' WHERE cod_cmac = N'TANKV03T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V4' WHERE cod_cmac = N'TANKV04';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V4T' WHERE cod_cmac = N'TANKV04T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V5' WHERE cod_cmac = N'TANKV05';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V5T' WHERE cod_cmac = N'TANKV05T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V6' WHERE cod_cmac = N'TANKV06';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V6T' WHERE cod_cmac = N'TANKV06T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V7' WHERE cod_cmac = N'TANKV07';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V7T' WHERE cod_cmac = N'TANKV07T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V8' WHERE cod_cmac = N'TANKV08';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V8T' WHERE cod_cmac = N'TANKV08T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V9' WHERE cod_cmac = N'TANKV09';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V9T' WHERE cod_cmac = N'TANKV09T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V10' WHERE cod_cmac = N'TANKV10';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V0T' WHERE cod_cmac = N'TANKV10T';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V11' WHERE cod_cmac = N'TANKV11';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V12' WHERE cod_cmac = N'TANKV12';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V13' WHERE cod_cmac = N'TANKV13';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V14' WHERE cod_cmac = N'TANKV14';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V15' WHERE cod_cmac = N'TANKV15';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V16' WHERE cod_cmac = N'TANKV16';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V17' WHERE cod_cmac = N'TANKV17';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V18' WHERE cod_cmac = N'TANKV18';",
|
||||||
|
"UPDATE ctb_amac SET posizione = N'V19' WHERE cod_cmac = N'TANKV19';",
|
||||||
|
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q4' WHERE cod_mdep = N'01' AND posizione = N'V6T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q4' WHERE cod_mdep = N'01' AND posizione = N'V0T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q4' WHERE cod_mdep = N'01' AND posizione = N'V1T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q4' WHERE cod_mdep = N'01' AND posizione = N'V8T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q4' WHERE cod_mdep = N'01' AND posizione = N'V7T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q4' WHERE cod_mdep = N'01' AND posizione = N'V3T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q4' WHERE cod_mdep = N'01' AND posizione = N'V4T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q4' WHERE cod_mdep = N'01' AND posizione = N'V5T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q4' WHERE cod_mdep = N'01' AND posizione = N'V9T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q4' WHERE cod_mdep = N'01' AND posizione = N'V2T'",
|
||||||
|
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'32T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'8T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'17T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'4T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'19T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'30T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'43T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'34T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'13T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'28T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'15T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'25T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'2T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'45T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'9T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'38T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'44T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'41T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'12T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'40T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'37T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'20T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'33T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'0T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'23T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'14T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'27T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'24T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'22T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'35T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'31T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'3T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'18T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'16T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'7T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'21T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'5T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'39T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'1T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'11T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'10T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'26T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'6T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'42T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'36T'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'F' WHERE cod_mdep = N'01' AND posizione = N'29T'",
|
||||||
|
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V18'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V16'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V14'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V9'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V7'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V1'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V17'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V19'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V13'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V8'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V6'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V5'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V3'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V2'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V4'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V10'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V15'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V11'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q6' WHERE cod_mdep = N'01' AND posizione = N'V12'",
|
||||||
|
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q5' WHERE cod_mdep = N'01' AND posizione = N'6'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q5' WHERE cod_mdep = N'01' AND posizione = N'5'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q5' WHERE cod_mdep = N'01' AND posizione = N'7'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q5' WHERE cod_mdep = N'01' AND posizione = N'4'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q5' WHERE cod_mdep = N'01' AND posizione = N'1'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q5' WHERE cod_mdep = N'01' AND posizione = N'3'",
|
||||||
|
"UPDATE mtb_depo_posizioni SET cod_area = N'Q5' WHERE cod_mdep = N'01' AND posizione = N'2'"
|
||||||
|
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user