Compare commits
882 Commits
v_1.2.2009.369
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 1661671cc4 | |||
| 6bdfb70448 | |||
| 4185bd1dad | |||
| 1a704be449 | |||
| ba8eef2aeb | |||
| 01551f6b20 | |||
| c6e909e6f2 | |||
| 566dcf3812 | |||
| be059c483d | |||
| b503cd9527 | |||
| 5207c591eb | |||
| 3f3a1c3d0b | |||
| b9df0cb31a | |||
| bb2c2680ac | |||
| 1926d39386 | |||
| c80551797f | |||
| e7c526c6c9 | |||
| b9e3fafd89 | |||
| 1d778e2f1f | |||
| 515441e4e3 | |||
| f859432067 | |||
| 25885bbf4c | |||
| e16d3001e2 | |||
| 8c4b81f7f1 | |||
| 3da5992cbb | |||
| ad0879a295 | |||
| 1ea789e99a | |||
| 638c981d6d | |||
| ceffa2e175 | |||
| 0935eda0f9 | |||
| 77ddf796d4 | |||
| 8cfabbd046 | |||
| b074758755 | |||
| b434d7fb4f | |||
| f653721db0 | |||
| da5f9a2a68 | |||
| 16667a70b6 | |||
| 463a32f024 | |||
| 2226388f92 | |||
| 47392fa3ba | |||
| 82ce925634 | |||
| 7d2d503301 | |||
| 1eaa91d2bb | |||
| 897465b282 | |||
| c545d19a85 | |||
| 3c45e71312 | |||
| a0400d99bd | |||
| b55136d302 | |||
| 346f50694a | |||
| acea59ec47 | |||
| c5eddb3d61 | |||
| b3721b5f2f | |||
| 47855a6f27 | |||
| cc5c6e55f6 | |||
| 4d833794af | |||
| 1f120161ac | |||
| 1dc78d4b3d | |||
| 5254bd8429 | |||
| 794a6641ec | |||
| a667f8e22f | |||
| af21406d87 | |||
| 0e0c1d8a94 | |||
| 59bb86e17d | |||
| 60f9d783db | |||
| b1f02e969f | |||
| f8eb636133 | |||
| bc78540bcd | |||
| 950c31c1b2 | |||
| bd2ea7dab0 | |||
| 53c8620be0 | |||
| 834f4517e3 | |||
| 601b3937f9 | |||
| 721ddaae22 | |||
| 7f81b29afc | |||
| 5570712970 | |||
| 602b271d6b | |||
| 07b3473341 | |||
| cb75d386d2 | |||
| b741ab3231 | |||
| c3fefe2abc | |||
| 03c7470057 | |||
| f2e03b6702 | |||
| 99d615aee7 | |||
| 005ae3a51e | |||
| 8c0a550465 | |||
| 6448210ab0 | |||
| acd603ba23 | |||
| ac28d5fd62 | |||
| bad086334e | |||
| 010a05377e | |||
| 7539c6f985 | |||
| 2d7cbf7d60 | |||
| 1d3ef90402 | |||
| c7463e4358 | |||
| a85ec6aefb | |||
| 768bcd91e7 | |||
| 86024d8dbc | |||
| 0c17ea9f9b | |||
| ba8bb7d085 | |||
| 07bae712b8 | |||
| df7fa95a62 | |||
| 405e55b2c7 | |||
| f60c91bca5 | |||
| 1977490dc0 | |||
| d653d614a3 | |||
| bb0b6fce9b | |||
| 910d305f60 | |||
| d75af60266 | |||
| a33175a92a | |||
| ca39a70197 | |||
| 81aa06961d | |||
| ff73f8d804 | |||
| 5840e770f8 | |||
| 84e7adce70 | |||
| e664a30d3d | |||
| 0df7a2cd81 | |||
| 378a465b59 | |||
| 8c45274b09 | |||
| 5f37dd0cd3 | |||
| 087782cd7c | |||
| 5cfc78c991 | |||
| 52c95334ce | |||
| 2c564d1973 | |||
| 548f847cc9 | |||
| 32248abb56 | |||
| c569c85596 | |||
| 3080536577 | |||
| 6356abb519 | |||
| a4400bfb77 | |||
| 6ed30bbaa7 | |||
| 07d52cbff8 | |||
| 9fd6e0054a | |||
| b68997b7f2 | |||
| 41d3eee204 | |||
| 712bc6e734 | |||
| 05c5d68cee | |||
| 4d65af1ec8 | |||
| bfa6295798 | |||
| 02894f326f | |||
| ec6422d280 | |||
| 8d526a5760 | |||
| 5b4d354dfe | |||
| b7841a4a47 | |||
| f43ab6493e | |||
| 8c30699efa | |||
| 846db7e4e4 | |||
| 935a0cef0c | |||
| 535d65e7fc | |||
| cca431d9f9 | |||
| ca867b172f | |||
| a6b7235aeb | |||
| c122b688a8 | |||
| 1ad3ee2fc4 | |||
| 1417b18bb9 | |||
| 61c1f3511f | |||
| 0361e5abb5 | |||
| 0e6dc318a3 | |||
| 5c0197f863 | |||
| 3b02e5c33f | |||
| f861fca046 | |||
| 94fb21901d | |||
| 73db07587d | |||
| b800fb9866 | |||
| e67e6994ea | |||
| 8c692045a4 | |||
| feaaded2ee | |||
| 29490b3aa0 | |||
| c899b39d3d | |||
| f7394292b5 | |||
| 0d2b95ebcd | |||
| a70aeb39d9 | |||
| 7966f9c403 | |||
| cc4338e5ae | |||
| 066282208d | |||
| 7d6fade7a4 | |||
| aa85e8ef2e | |||
| 11e2b7f80a | |||
| f9a2c9921d | |||
| f9d6f4846d | |||
| de47035a55 | |||
| 06f672a2c7 | |||
| ad768e36eb | |||
| 39bf8650cc | |||
| 80985fa9b9 | |||
| 4bb73f4da8 | |||
| 6177aaf236 | |||
| 37d83f4545 | |||
| d85120b58a | |||
| ac10dbf2c4 | |||
| b9b04c4aa6 | |||
| a76c45a3d0 | |||
| a4d4405b22 | |||
| 0375a1c181 | |||
| 0fd6e6d55d | |||
| 2f29e966d5 | |||
| be37b61b53 | |||
| db92f2681a | |||
| 9aac1ec792 | |||
| 5cd1a753c7 | |||
| 1e93e7470c | |||
| c6c5d83e99 | |||
| 81ca443003 | |||
| 2838b96f62 | |||
| 54f9413165 | |||
| e15fe62fc4 | |||
| ca80f29278 | |||
| cf0590103a | |||
| 8b0d3d8d8e | |||
| d7de8c1e19 | |||
| 8cb2087c2e | |||
| 809296759d | |||
| d088346519 | |||
| 65dcd8d859 | |||
| facc6f0c0d | |||
| 53f29f7e61 | |||
| 8cddc5ae26 | |||
| 182492b273 | |||
| 188e1a6ff4 | |||
| d6a9962004 | |||
| d4b119faf8 | |||
| 12df9d8f55 | |||
| debd9be877 | |||
| 4d247b0904 | |||
| d1986eec80 | |||
| 0558a85bb4 | |||
| 456d7ec7a7 | |||
| 5533ad6b93 | |||
| 8a89dbaec0 | |||
| 39c77a0f88 | |||
| d689c3c619 | |||
| 13619851bb | |||
| 43b5611d85 | |||
| a48e4dc8f2 | |||
| 9cc93b8d75 | |||
| f1c6246c91 | |||
| 71c9260115 | |||
| c3d49dff05 | |||
| 513fa79e82 | |||
| aa122d625b | |||
| 87b528f565 | |||
| 8a943ce376 | |||
| 45309f07d6 | |||
| af75bea003 | |||
| 352bb3bc53 | |||
| 849d1fbccd | |||
| de1425bbde | |||
| 080b3fed43 | |||
| 85ab836515 | |||
| 17be6e963c | |||
| ab7841fd4e | |||
| e61139479f | |||
| 1cc652c7a2 | |||
| 15b8ffa415 | |||
| e0193b0761 | |||
| 331ea6a4d0 | |||
| ee2a7eb666 | |||
| edf94195a7 | |||
| 692f61215f | |||
| 70dae35204 | |||
| 310b849331 | |||
| b9d7b307aa | |||
| e5c688c4d1 | |||
| 4495e6808a | |||
| 1186464054 | |||
| 41a1822454 | |||
| e22f2c30e7 | |||
| fbd4605013 | |||
| b4aa19c721 | |||
| 12bcfdff31 | |||
| 2a4fb904f1 | |||
| 1f0e297ade | |||
| cefe6ce462 | |||
| 6812b1b16b | |||
| f22094cb09 | |||
| 03696d28d6 | |||
| ac2674997a | |||
| 2a4a847074 | |||
| 62ee3bfdbb | |||
| 2bbf9144bc | |||
| cf3c660a09 | |||
| d731091076 | |||
| cc6529a017 | |||
| 4c126045fc | |||
| 045b5636de | |||
| 1147ee30ac | |||
| 3a18558a60 | |||
| 505f65f497 | |||
| 41cda66cf0 | |||
| ff51b81ef6 | |||
| 6756e30a92 | |||
| 3953b55e7f | |||
| bd628f3d8d | |||
| 8cd2529b48 | |||
| 941e6f5e11 | |||
| 990d0866da | |||
| e523ad63d5 | |||
| 377658e66a | |||
| 832d1c0d5a | |||
| 0191a977ea | |||
| 327dd1920e | |||
| 7ba4892718 | |||
| 7794e1298f | |||
| 53eb43005a | |||
| c1b11d2140 | |||
| b3931bdf4e | |||
| bdccd9966a | |||
| 3f5dc8281c | |||
| bbaff65fb6 | |||
| fa3e514fa9 | |||
| efc22ee82f | |||
| 3a3f4492f0 | |||
| 661cf17724 | |||
| 75b62da5a6 | |||
| 4821808c0d | |||
| 63206edc15 | |||
| 49508fb037 | |||
| be3dea5eed | |||
| fb530ebacb | |||
| 97775bd242 | |||
| a6813e3150 | |||
| f8c623f5da | |||
| 6b37941263 | |||
| 44bf039bda | |||
| 1676cceb37 | |||
| b1e0e9bdb7 | |||
| 20e51e25f3 | |||
| ceb4862ace | |||
| bd9f5dcba8 | |||
| 16724e1ee4 | |||
| 959cc3198c | |||
| e9887caadc | |||
| 8baa2392b0 | |||
| 7bec14d9a7 | |||
| 04a51988a3 | |||
| 9b9b6c92d9 | |||
| 34bed895a5 | |||
| 5468632650 | |||
| f80a0390b9 | |||
| 484faa53a1 | |||
| 20432974f2 | |||
| 8de54f0ad5 | |||
| b63363b7f4 | |||
| 4dd0f37e3d | |||
| b4be07e07b | |||
| f5622c9fd6 | |||
| d132e9d440 | |||
| b505845ff8 | |||
| 59d8809d84 | |||
| 071287f0d0 | |||
| c9d3e371ae | |||
| c9ee17ab86 | |||
| 6c6d286024 | |||
| e2e0e0a251 | |||
| df4db07437 | |||
| ce5ed76112 | |||
| 696d7bb421 | |||
| e71bba2d9c | |||
| 343b0ee352 | |||
| 14ee3cf7af | |||
| f551174e7f | |||
| bd77540aad | |||
| 4cb0d9d4f5 | |||
| 20f1facbfd | |||
| 8ef58e82bb | |||
| 4a2aad3779 | |||
| 3102ecaed7 | |||
| 5aaf139a55 | |||
| a8b1c7a3c9 | |||
| 61ac5da227 | |||
| 68c9c1c555 | |||
| 5474ebcf3d | |||
| 875d01c823 | |||
| c7a52ea942 | |||
| 046161e0ce | |||
| 1af238b30a | |||
| a173fe8f5e | |||
| 278470356a | |||
| 26335a70e7 | |||
| ceb448bd4e | |||
| 04c5fc27b7 | |||
| 90b26cbb40 | |||
| c5fd9d08c9 | |||
| 86ce970e72 | |||
| c2c3b88f2d | |||
| 728a985ec5 | |||
| fe9b7eb730 | |||
| bf6d0f3159 | |||
| 38be0c67ac | |||
| 7f3b0a3adf | |||
| cae78daefd | |||
| 693b5d0eba | |||
| 1eceb82bc8 | |||
| dc75fd81c2 | |||
| d2ca541109 | |||
| 3b4eb2fce4 | |||
| d0ffd6ae90 | |||
| 59239b70ae | |||
| 2499ff1250 | |||
| 73f3c0bc71 | |||
| 4a26aa1955 | |||
| 6adbfe6375 | |||
| 124a9ef75d | |||
| adec730a94 | |||
| 85789538fd | |||
| fbcfb86d1f | |||
| d7ffdc7852 | |||
| cb31f6a242 | |||
| 2eb218a3c0 | |||
| a1a233b1f6 | |||
| 101fe9e208 | |||
| 2883e85aa4 | |||
| 8032103960 | |||
| 4ee3670183 | |||
| d8b95d322e | |||
| b86041d1bf | |||
| eb7e5c8502 | |||
| 8a49e2d523 | |||
| e6a8a0a042 | |||
| 98b00efdf1 | |||
| 845dc7151d | |||
| 1b284c1c7d | |||
| 4617e6f3ee | |||
| 6492618ff5 | |||
| 33bf62821e | |||
| 26789d4066 | |||
| 8df36b2480 | |||
| da1e3549f0 | |||
| 07620c27a6 | |||
| 343ba058f3 | |||
| 9a8257d567 | |||
| 022acce553 | |||
| cad34c5610 | |||
| f79170e72e | |||
| 2e7e070c2a | |||
| b2677219d5 | |||
| c9cd2b2df1 | |||
| dcedf03d2c | |||
| d1b59b5038 | |||
| b8373245ce | |||
| 806cdab55a | |||
| 40bdce1141 | |||
| e28515776e | |||
| c7dc020a93 | |||
| 8ed5f088c2 | |||
| 20d89e4c79 | |||
| a7782d9018 | |||
| 4e72c80350 | |||
| be9bf008e5 | |||
| 3aed8b7b39 | |||
| 8a9e87703d | |||
| 06b8edc0b2 | |||
| 5864eb448a | |||
| 62dc3033f1 | |||
| d0d918ffde | |||
| 1af003f2ce | |||
| e939a4b5bf | |||
| 30034aea7c | |||
| 17528bec75 | |||
| 4d95a45279 | |||
| 5ac1925d1c | |||
| 418d1bdc6b | |||
| 25225d4fd5 | |||
| ba6da1514a | |||
| dc8a47b8d7 | |||
| d6c6558ba9 | |||
| cea025da3b | |||
| bbfab5ea52 | |||
| 8264498f15 | |||
| c1c014b7c0 | |||
| e76320bf99 | |||
| 05fd8b3701 | |||
| 56fdee795d | |||
| 7b8389e575 | |||
| 2a35aa08ec | |||
| 54969b3b27 | |||
| 0be32f457d | |||
| 06a4df8b50 | |||
| 53f30037aa | |||
| 846c195019 | |||
| 7850d8222d | |||
| 7acf336639 | |||
| 3a1604112e | |||
| 30478f5272 | |||
| a0922ee29f | |||
| b7ba6fffeb | |||
| f08f3c3c87 | |||
| 4fcc8a1998 | |||
| b353a49cc1 | |||
| 1dfc180cbf | |||
| 9aa4f0c60c | |||
| 32c5e0fd6c | |||
| 9cc60e93de | |||
| 3b5157b4a1 | |||
| ae6ff18385 | |||
| e7355bea00 | |||
| 8e98ae2f0a | |||
| 53990745c6 | |||
| 617574a3bd | |||
| 52a5631675 | |||
| b401be828f | |||
| ef0afc508e | |||
| 426307f19c | |||
| 1f103cd87f | |||
| 800ccf7eaa | |||
| 4ce2e41d75 | |||
| 3b980d1602 | |||
| 03a15c34bf | |||
| 9a4204a24c | |||
| ddc88286ab | |||
| 98625451e2 | |||
| 268c6c073f | |||
| e48ab33b50 | |||
| 813b7d79ee | |||
| 06f9e23a5e | |||
| 37857e2c77 | |||
| f162f4a367 | |||
| 289fa0ffd8 | |||
| 3a55c155e9 | |||
| 9f4f96e15d | |||
| b83b29f798 | |||
| 62cc21f43d | |||
| 8ec6ce6390 | |||
| 72398af0d5 | |||
| d143857cf8 | |||
| d2daf33f14 | |||
| 0a36cf3de8 | |||
| b178add115 | |||
| a7fcfe0eca | |||
| 5aac6657e8 | |||
| f9281ece74 | |||
| 4cc1bfbd8f | |||
| 8bb4580ba2 | |||
| a474c243f6 | |||
| 91b36dbf5f | |||
| 8ed38c3976 | |||
| 2697a3ae09 | |||
| 83f44c6d36 | |||
| 07e4fbe5e8 | |||
| 252387f6ca | |||
| 8ccddec3bd | |||
| 06a2dc0200 | |||
| 0d6244365d | |||
| 4e25b172c8 | |||
| 07ff67b1c8 | |||
| 7205e0a5ab | |||
| d618963565 | |||
| 8379252c12 | |||
| 17f32f80d7 | |||
| c7fd3961af | |||
| fc0dfd9d2e | |||
| 9c536f41e1 | |||
| a5ba2a0eaf | |||
| 836c3515da | |||
| 66f4ddc340 | |||
| f5dec22e60 | |||
| 57aa6c9af9 | |||
| 763caff2e4 | |||
| 0d74d84fd6 | |||
| 221c9d9a3e | |||
| ca6f82f118 | |||
| 2e7b8f11aa | |||
| f1bb875ecc | |||
| 7825f8e9aa | |||
| 9a8272f021 | |||
| 385936a167 | |||
| 8e6a086e18 | |||
| f5fefb8070 | |||
| 807a6d5e45 | |||
| 97984ce39c | |||
| babd52629a | |||
| 1b71f76d14 | |||
| e1d84b29f4 | |||
| 99b2983962 | |||
| 8a7b4dd8a0 | |||
| 553f488fdf | |||
| fed4789534 | |||
| 5bbeb6817b | |||
| 15df69f9fd | |||
| ae70999f78 | |||
| 1b484df0b9 | |||
| cc00dc0804 | |||
| 719968ee2b | |||
| 78482b4833 | |||
| da292cae17 | |||
| 73cabee7ee | |||
| 18992da8bf | |||
| d4eabe8edd | |||
| ba88680aa1 | |||
| dff09fc549 | |||
| 2e24c01bd9 | |||
| f60f5868ca | |||
| 0c7841e8d8 | |||
| 7571b732eb | |||
| fb610a6738 | |||
| 1a28398470 | |||
| affaccc1e5 | |||
| fb780c3328 | |||
| 3ce630a683 | |||
| 2f1e11072c | |||
| 6ac8959b37 | |||
| 963aa925bd | |||
| cfd7788f71 | |||
| 2865795574 | |||
| 66d16ed021 | |||
| 66fc9b47a2 | |||
| d480797945 | |||
| 7bd6cc5621 | |||
| 5964fcd3d6 | |||
| c34e919570 | |||
| a5ac0782fe | |||
| 3979d88a04 | |||
| 09711e9d1f | |||
| 8583246fd8 | |||
| ee0c85f485 | |||
| 9987a9b532 | |||
| 27d1ad1d40 | |||
| d8905257b0 | |||
| d92cb4cb96 | |||
| f9d923b1bd | |||
| 8da509214e | |||
| 33bc68d712 | |||
| b3184badac | |||
| c74c83a372 | |||
| e365778d3c | |||
| 219a6691da | |||
| a4a8b57163 | |||
| a86beaa333 | |||
| 0b4c1dd974 | |||
| 50ea17c0e3 | |||
| 8f0ee0933d | |||
| 17dd24abea | |||
| 04946d6173 | |||
| ec6b801b9f | |||
| 3490c08a69 | |||
| 508dbbf55f | |||
| fc4b36ad66 | |||
| b47c391c63 | |||
| 46c9dec2a9 | |||
| 3cfc4f8275 | |||
| 385bf15d22 | |||
| 6f8dc47293 | |||
| 432e53cd24 | |||
| dafad94464 | |||
| 9082df9146 | |||
| d783f65c20 | |||
| 15f30baf83 | |||
| 0c481e5169 | |||
| 0175841f22 | |||
| b22579ca6e | |||
| 691ae3f123 | |||
| 47b85f98b3 | |||
| 26234bce04 | |||
| e7eb09e44a | |||
| 669f5d8478 | |||
| ae1fd38bbb | |||
| 00cb127ac4 | |||
| c34b0d6768 | |||
| ac50e00c85 | |||
| c6bf8db9ef | |||
| 3e65a59ae6 | |||
| e32c950df3 | |||
| 239ff07970 | |||
| daff88cfd6 | |||
| 8a52abdeb8 | |||
| a8f2a91b6b | |||
| 85474b9546 | |||
| 2f1d54df60 | |||
| c0fe219361 | |||
| 4bf90f0527 | |||
| 7e1db3f257 | |||
| 40baf2b3c0 | |||
| a6663ec4f2 | |||
| 6961350038 | |||
| 8d77cce905 | |||
| 480571721a | |||
| e852bc9233 | |||
| a6f329c244 | |||
| 19d41ef464 | |||
| ebd8e1daad | |||
| ceddd0bbfe | |||
| b158a9a02d | |||
| 73f2288b6a | |||
| c9a91e294d | |||
| 49ebc94313 | |||
| cad134fc84 | |||
| cdc7e5be93 | |||
| c7152d2af9 | |||
| 8fcfc092dd | |||
| 7b54b4bbdc | |||
| c9cea2edce | |||
| 2926f70bae | |||
| a9ecb260fb | |||
| c82236f133 | |||
| f29c419b9d | |||
| dc5b3bf565 | |||
| ca61af9eb6 | |||
| f47f10f2ba | |||
| 2c02f6a309 | |||
| 5273f6d63a | |||
| 27ec011a00 | |||
| 58820465b4 | |||
| 53fd77bb8d | |||
| c9128811be | |||
| 9e7833b06f | |||
| aaad4e9f3a | |||
| 3bd0c3e8b9 | |||
| aaa278f363 | |||
| c1f5ce18ed | |||
| 38e553a5bd | |||
| 6eae5e2e23 | |||
| d365f90072 | |||
| d80691ac0c | |||
| 07cbd9f029 | |||
| d09668270d | |||
| 70e2c06ae5 | |||
| 0e2646c739 | |||
| 31fb3c5669 | |||
| 73eb726f73 | |||
| 5de2c6576b | |||
| 75860a164a | |||
| 5e9c678a02 | |||
| 72ff8ebe74 | |||
| 00bf555add | |||
| 0841aa5584 | |||
| a575a20126 | |||
| 0622e8a869 | |||
| 38a4a7285d | |||
| 40b6d19c79 | |||
| 3f399a670a | |||
| ca0e20abe6 | |||
| 27b6cebf74 | |||
| db1ed098c1 | |||
| f904431560 | |||
| d00d963ab9 | |||
| 3fc4fe6f52 | |||
| cac7d73f2d | |||
| f56661a4d6 | |||
| d848f7ef6c | |||
| 5b1e49e4b6 | |||
| 2bb26258c4 | |||
| bc81c1f557 | |||
| 79a2d249f8 | |||
| c716f73a91 | |||
| 2879db799b | |||
| e727be5dbd | |||
| 6011861b24 | |||
| d03bda211b | |||
| b0fe09ca05 | |||
| 29a47944bf | |||
| 59e0f85529 | |||
| 503de9b769 | |||
| ce8a0fa27b | |||
| 07e7e4de09 | |||
| c8ff3df97b | |||
| f5c7843b92 | |||
| 5317d41dfa | |||
| 710f7d5e35 | |||
| c957b10658 | |||
| aa93b5883f | |||
| 2b95fb8d88 | |||
| ecc7f71d10 | |||
| e17be03685 | |||
| eb91b21076 | |||
| 099eaebaa8 | |||
| 769a2d8f4c | |||
| 9cfe9fcafd | |||
| 68fd166aea | |||
| ed57cfb4c8 | |||
| f588cc9c92 | |||
| d31290a4f3 | |||
| e3817cfe41 | |||
| 23b2e5fcbe | |||
| 79047b4587 | |||
| c936cbd882 | |||
| 0783f9b463 | |||
| 29709c0da2 | |||
| ee40921196 | |||
| 42a0728e4d | |||
| 13a4b4478e | |||
| 4e47b89baf | |||
| 93aa27e460 | |||
| 82e7d4d900 | |||
| a030bd1952 | |||
| 5a570d6ad0 | |||
| dc4601ff7e | |||
| ce3d27bbda | |||
| 3464a50138 | |||
| 53d2096adc | |||
| db42222472 | |||
| 4046eb92f5 | |||
| a31dfe70b0 | |||
| 082a80bd3e | |||
| f0ef08a41b | |||
| 5a9f3f7696 | |||
| 935a633275 | |||
| 6ff139a9f3 | |||
| 4f8ad736e0 | |||
| d9722e0da5 | |||
| 380108f911 | |||
| 3d84ddab24 | |||
| 341c49a2a4 | |||
| 3c41209baa | |||
| b0c02c1ecc | |||
| d8c2492077 | |||
| c359e05831 | |||
| 74d6656eb9 | |||
| 55c9252e49 | |||
| 43abc4ab25 | |||
| f9c4d80cde | |||
| 8aec006422 | |||
| 3066432c94 | |||
| f5d2a9ca75 | |||
| 517826de77 | |||
| 5aee27b18a | |||
| 7980ed777d | |||
| b0ee9fd4d6 | |||
| 18140239d5 | |||
| 90b28bca07 | |||
| 55a9178cfc | |||
| eefae8438c | |||
| 2634d30f03 | |||
| 72a7d3dd81 | |||
| e82e7658f1 | |||
| bc2e9f236c | |||
| f54b160964 | |||
| fd1b543a85 | |||
| 94da67d890 | |||
| a36ab75169 | |||
| 6f31c0f3d2 | |||
| f391968e21 | |||
| 7fe834f83e | |||
| 9932206f9f | |||
| 38e4d7e94a | |||
| 7f929676b6 | |||
| 603cf097c9 | |||
| 0b05415b47 | |||
| 115aa90029 | |||
| 2560400d66 | |||
| 0af4a73faa | |||
| 32aeb0350f | |||
| b7a92f464a | |||
| 2ca07f1882 | |||
| bf856bcf05 | |||
| 752ef12bcf | |||
| b064d587cf | |||
| 760b1bc764 | |||
| f2949a0b34 | |||
| 58b20d2e6e | |||
| c98e2ee71f | |||
| e73bfdf618 | |||
| e72bfbabad | |||
| 0fd505519f | |||
| b4ebc1b680 | |||
| 6f3e43bb77 | |||
| e1a05e7718 | |||
| 65ae8fc4cd | |||
| 6c928ac03c | |||
| 8b53913c8c | |||
| 820c000fea | |||
| d92de63c21 | |||
| 83df86549b | |||
| 8dc507640f | |||
| bfedc667e1 | |||
| 8cdba96849 | |||
| c0212af5de | |||
| 632a1b4460 | |||
| 3b15a769b1 | |||
| 51cbacf58f | |||
| 6e712433b6 | |||
| 374be6825b | |||
| 7943022f74 | |||
| a417d5d677 | |||
| b3a82b9ab5 | |||
| 95cf098861 | |||
| 1dc9734921 | |||
| 8f65b48be4 | |||
| d5ab99423a | |||
| 3cc0b2a91f | |||
| fa18af3d45 | |||
| bbbea41118 | |||
| 88f62a7f86 | |||
| 230dad401f |
@@ -41,3 +41,6 @@ dotnet_diagnostic.CA1716.severity = none
|
||||
|
||||
# CA2227: Le proprietà delle raccolte devono essere di sola lettura
|
||||
dotnet_diagnostic.CA2227.severity = none
|
||||
|
||||
# CA1805: Do not initialize unnecessarily
|
||||
dotnet_diagnostic.CA1805.severity = none
|
||||
|
||||
+216
@@ -0,0 +1,216 @@
|
||||
variables:
|
||||
NUGET_PATH: 'C:\Tools\nuget.exe'
|
||||
MSBUILD_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe'
|
||||
ASPNET_MERGE_PATH: 'C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools'
|
||||
EXE_RELEASE_FOLDER: 'c:\Projetcs\Compiled\NKC\Release'
|
||||
DEPLOY_FOLDER: 'c:\Projects\Deploy\NKC\Builds'
|
||||
VERS_MAIN: '2.5'
|
||||
NEW_REL: ''
|
||||
NEXUS_PATH: 'NKC'
|
||||
PROJ_NAME: 'NKC_WF'
|
||||
APP_NAME: 'NKC'
|
||||
|
||||
|
||||
# helper x fix pacchetti nuget da repo locale nexus.steamware.net
|
||||
.nuget-fix: &nuget-fix
|
||||
- |
|
||||
$hasSource = C:\Tools\nuget.exe sources list | find "`"Steamware Nexus`"" /C
|
||||
if ($hasSource -eq 0) {
|
||||
C:\Tools\nuget.exe sources Add -Name "`"Steamware Nexus`"" -Source https://nexus.steamware.net/repository/nuget-group -username "`"nugetUser`"" -password "`"viaDante16`""
|
||||
} else {
|
||||
C:\Tools\nuget.exe sources Update -Name "`"Steamware Nexus`"" -Source https://nexus.steamware.net/repository/nuget-group -username "`"nugetUser`"" -password "`"viaDante16`""
|
||||
}
|
||||
echo $hasSource
|
||||
|
||||
# helper x fix version number
|
||||
.version-fix: &version-fix
|
||||
- |
|
||||
$env:NEW_REL = $env:VERS_MAIN+"."+(get-date -format yyMM)+"."+(get-date -format ddHH)
|
||||
echo "Set vers: $env:NEW_REL"
|
||||
$contenuto = Get-Content -path 'VersGen\VersGen.cs' -Raw
|
||||
$newContenuto = $contenuto -replace '0.0.0.0', $env:NEW_REL
|
||||
$newContenuto | Set-Content -path 'VersGen\VersGen.cs'
|
||||
|
||||
# helper x fix manifest xml
|
||||
.manifest-fix: &manifest-fix
|
||||
- |
|
||||
echo "Set manifest.xml for branch: $CI_COMMIT_BRANCH"
|
||||
$contenuto = Get-Content -path $env:PROJ_NAME'\Resources\manifest.xml' -Raw
|
||||
$newContenuto = $contenuto -replace '{{BRANCHNAME}}', $CI_COMMIT_BRANCH
|
||||
$newContenuto = $newContenuto -replace '0.0.0.0', $env:NEW_REL
|
||||
$newContenuto | Set-Content -path $env:PROJ_NAME'\Resources\manifest.xml'
|
||||
|
||||
# helper creazione hash files
|
||||
.hashBuild: &hashBuild
|
||||
- |
|
||||
$Target = $env:PROJ_NAME + "\Release\" + $env:APP_NAME + ".zip"
|
||||
$MD5 = Get-FileHash $Target -Algorithm MD5
|
||||
$SHA1 = Get-FileHash $Target -Algorithm SHA1
|
||||
New-Item $Target".md5"
|
||||
New-Item $Target".sha1"
|
||||
$MD5.Hash | Set-Content -path $Target".md5"
|
||||
$SHA1.Hash | Set-Content -path $Target".sha1"
|
||||
|
||||
echo "Created HASH files for $Target"
|
||||
|
||||
# helper x send su NEXUS
|
||||
# $VersNumb = $Get-Content "Resources\VersNum.txt"
|
||||
.nexusUpload: &nexusUpload
|
||||
- |
|
||||
Set-Alias mCurl C:\Windows\system32\curl.exe
|
||||
$currentDate = get-date -format yyMM;
|
||||
$currentTime = get-date -format ddHH;
|
||||
$VersNumb = $env:NEW_REL
|
||||
echo "Curr Version: $VersNumb"
|
||||
if($CI_COMMIT_BRANCH -eq "master")
|
||||
{
|
||||
$version = "stable"
|
||||
}
|
||||
else
|
||||
{
|
||||
$version = "unstable"
|
||||
}
|
||||
$File2Send = Get-ChildItem($env:PROJ_NAME + "\Release\*")
|
||||
ForEach ($File in $File2Send) {
|
||||
$FileName = Split-path $File -leaf
|
||||
mCurl -v -u GitLab:$NEXUS_PASSWD --upload-file $File https://nexus.steamware.net/repository/SWS/$env:NEXUS_PATH/$CI_COMMIT_BRANCH/LAST/$FileName
|
||||
mCurl -v -u GitLab:$NEXUS_PASSWD --upload-file $File https://nexus.steamware.net/repository/SWS/$env:NEXUS_PATH/$CI_COMMIT_BRANCH/ARCHIVE/$VersNumb/$FileName
|
||||
}
|
||||
mCurl -v -u GitLab:$NEXUS_PASSWD --upload-file "$env:PROJ_NAME\Resources\manifest.xml" https://nexus.steamware.net/repository/SWS/$env:NEXUS_PATH/$CI_COMMIT_BRANCH/LAST/manifest.xml
|
||||
mCurl -v -u GitLab:$NEXUS_PASSWD --upload-file "$env:PROJ_NAME\Resources\ChangeLog.html" https://nexus.steamware.net/repository/SWS/$env:NEXUS_PATH/$CI_COMMIT_BRANCH/LAST/ChangeLog.html
|
||||
|
||||
stages:
|
||||
- build
|
||||
- deploy
|
||||
- installer
|
||||
|
||||
|
||||
Net:build:
|
||||
stage: build
|
||||
tags:
|
||||
- win
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore NKC_WF.sln -Verbosity quiet'
|
||||
- *version-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" NKC_WF/NKC_WF.csproj -target:Build /p:Configuration=Release /p:Platform="Any CPU" /p:OutputPath=bin/ /verbosity:minimal /m'
|
||||
|
||||
Core:build:
|
||||
stage: build
|
||||
tags:
|
||||
- win
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- dotnet restore REMAN.sln
|
||||
script:
|
||||
- dotnet build REMAN/REMAN.csproj
|
||||
|
||||
Net:IIS01:deploy:
|
||||
stage: deploy
|
||||
tags:
|
||||
- win
|
||||
only:
|
||||
- develop
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore NKC_WF.sln -Verbosity quiet'
|
||||
- *version-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" /p:m=8 /p:AspnetMergePath=$env:ASPNET_MERGE_PATH /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS01.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS01 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ /verbosity:minimal NKC_WF/NKC_WF.csproj'
|
||||
needs: ["Net:build"]
|
||||
|
||||
Net:IIS02:deploy:
|
||||
stage: deploy
|
||||
tags:
|
||||
- win
|
||||
only:
|
||||
- master
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore NKC_WF.sln -Verbosity quiet'
|
||||
- *version-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" /p:m=8 /p:AspnetMergePath=$env:ASPNET_MERGE_PATH /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS02.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS02 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ /verbosity:minimal NKC_WF/NKC_WF.csproj'
|
||||
needs: ["Net:build"]
|
||||
|
||||
Core:IIS01:deploy:
|
||||
stage: deploy
|
||||
tags:
|
||||
- win
|
||||
only:
|
||||
- develop
|
||||
needs: ["Core:build"]
|
||||
script:
|
||||
- dotnet publish -p:PublishProfile=IIS01.pubxml -p:RunCodeAnalysis=false -p:Configuration=Release -p:username=jenkins -p:Password=viadante16 -p:AllowUntrustedCertificate=true REMAN/REMAN.csproj
|
||||
|
||||
Core:IIS02:deploy:
|
||||
stage: deploy
|
||||
tags:
|
||||
- win
|
||||
only:
|
||||
- master
|
||||
needs: ["Core:build"]
|
||||
script:
|
||||
- dotnet publish -p:PublishProfile=IIS02.pubxml -p:RunCodeAnalysis=false -p:Configuration=Release -p:username=jenkins -p:Password=viadante16 -p:AllowUntrustedCertificate=true REMAN/REMAN.csproj
|
||||
- dotnet publish -p:PublishProfile=IIS04.pubxml -p:RunCodeAnalysis=false -p:Configuration=Release -p:username=jenkins -p:Password=viadante16 -p:AllowUntrustedCertificate=true REMAN/REMAN.csproj
|
||||
|
||||
|
||||
|
||||
Net:install:
|
||||
stage: installer
|
||||
tags:
|
||||
- win
|
||||
only:
|
||||
- develop
|
||||
- master
|
||||
variables:
|
||||
APP_NAME: NKC
|
||||
PROJ_NAME: NKC_WF
|
||||
NEXUS_PATH: NKC
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore NKC_WF.sln -Verbosity quiet'
|
||||
- *version-fix
|
||||
- *manifest-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" /p:m=8 /p:AspnetMergePath=$env:ASPNET_MERGE_PATH /T:Package /P:Configuration=Release /p:PublishProfile=master.pubxml /p:RunCodeAnalysis=false /p:PackageLocation=Release/$env:APP_NAME.zip /p:DeployIisAppPath="Default Web Site/NKC" /p:PackageAsSingleFile=True /verbosity:minimal /p:OutputPath=bin/ NKC_WF/NKC_WF.csproj'
|
||||
# qui il deploy su nexus...
|
||||
- *hashBuild
|
||||
- *nexusUpload
|
||||
needs: ["Net:build"]
|
||||
|
||||
Core:install:
|
||||
stage: installer
|
||||
tags:
|
||||
- win
|
||||
only:
|
||||
- develop
|
||||
- master
|
||||
needs: ["Core:build"]
|
||||
variables:
|
||||
APP_NAME: REMAN
|
||||
PROJ_NAME: REMAN
|
||||
NEXUS_PATH: REMAN
|
||||
before_script:
|
||||
# - *nuget-fix
|
||||
- dotnet restore REMAN.sln
|
||||
- *version-fix
|
||||
- *manifest-fix
|
||||
script:
|
||||
- dotnet publish -p:PublishProfile=IISProfile.pubxml -p:RunCodeAnalysis=false -p:Configuration=Release REMAN/REMAN.csproj -o:publish
|
||||
# qui il deploy su nexus...
|
||||
- *hashBuild
|
||||
- *nexusUpload
|
||||
|
||||
# VARIABILI
|
||||
# Tema numero versione: si potrebbe usare la variabile CI_COMMIT_TAG con $env:CI_COMMIT_TAG, in questo caso SOLO SE c'è un tag sistema versione...
|
||||
# Tema compilazione x branch: $CI_COMMIT_BRANCH == "my-branch" potrebbe essere condizione if x fare alcuni sscript...
|
||||
# rif: https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
|
||||
|
||||
# Da approfondire:
|
||||
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/dotNET.gitlab-ci.yml
|
||||
# https://www.google.com/search?q=gitlab+variable+year+month&rlz=1C1GCEA_enIT945IT945&oq=gitlab+variable+year+month&aqs=chrome..69i57j69i64.5262j0j7&sourceid=chrome&ie=UTF-8
|
||||
# https://docs.gitlab.com/ee/ci/examples/README.html
|
||||
# https://docs.gitlab.com/ee/ci/quick_start/index.html
|
||||
# https://docs.gitlab.com/ee/ci/yaml/
|
||||
+127
-49
@@ -41,21 +41,49 @@
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug-Prod|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\Debug-Prod\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="AegisImplicitMail, Version=1.0.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AIM.1.0.3\lib\AegisImplicitMail.dll</HintPath>
|
||||
<Reference Include="AegisImplicitMail, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AIM.1.1.0\lib\netstandard2.0\AegisImplicitMail.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AjaxControlToolkit, Version=19.1.0.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AjaxControlToolkit.19.1.0\lib\net40\AjaxControlToolkit.dll</HintPath>
|
||||
<Reference Include="AjaxControlToolkit, Version=20.1.0.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AjaxControlToolkit.20.1.0\lib\net40\AjaxControlToolkit.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Crc32C.NET, Version=1.0.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Crc32C.NET.1.0.5.0\lib\net20\Crc32C.NET.dll</HintPath>
|
||||
<Reference Include="AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AWSSDK.Core.3.7.304.8\lib\net45\AWSSDK.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DnsClient, Version=1.2.0.0, Culture=neutral, PublicKeyToken=4574bb5573c51424, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\DnsClient.1.2.0\lib\net45\DnsClient.dll</HintPath>
|
||||
<Reference Include="AWSSDK.SecurityToken, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AWSSDK.SecurityToken.3.7.300.99\lib\net45\AWSSDK.SecurityToken.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=1.2.0.246, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SharpZipLib.1.2.0\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
<Reference Include="Crc32.NET, Version=1.0.0.0, Culture=neutral, PublicKeyToken=dc0b95cf99bf4e99, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Crc32.NET.1.2.0\lib\net20\Crc32.NET.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DnsClient, Version=1.7.0.0, Culture=neutral, PublicKeyToken=4574bb5573c51424, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\DnsClient.1.7.0\lib\net45\DnsClient.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=1.4.0.12, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SharpZipLib.1.4.0\lib\netstandard2.0\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="IronSnappy, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b1d4b1dc83bdcf31, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\IronSnappy.1.3.1\lib\netstandard2.0\IronSnappy.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.1, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.8.0.1\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.1, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.8.0.1\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.ReportViewer.Common, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.ReportViewer.Runtime.Common.12.0.2402.15\lib\Microsoft.ReportViewer.Common.dll</HintPath>
|
||||
@@ -69,23 +97,23 @@
|
||||
<Reference Include="Microsoft.ReportViewer.WinForms, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.ReportViewer.Runtime.WinForms.12.0.2402.15\lib\Microsoft.ReportViewer.WinForms.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MongoDB.Bson, Version=2.10.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MongoDB.Bson.2.10.2\lib\net452\MongoDB.Bson.dll</HintPath>
|
||||
<Reference Include="MongoDB.Bson, Version=2.25.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MongoDB.Bson.2.25.0\lib\netstandard2.0\MongoDB.Bson.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MongoDB.Driver, Version=2.10.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MongoDB.Driver.2.10.2\lib\net452\MongoDB.Driver.dll</HintPath>
|
||||
<Reference Include="MongoDB.Driver, Version=2.25.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MongoDB.Driver.2.25.0\lib\netstandard2.0\MongoDB.Driver.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MongoDB.Driver.Core, Version=2.10.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MongoDB.Driver.Core.2.10.2\lib\net452\MongoDB.Driver.Core.dll</HintPath>
|
||||
<Reference Include="MongoDB.Driver.Core, Version=2.25.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MongoDB.Driver.Core.2.25.0\lib\netstandard2.0\MongoDB.Driver.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MongoDB.Libmongocrypt, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MongoDB.Libmongocrypt.1.0.0\lib\net452\MongoDB.Libmongocrypt.dll</HintPath>
|
||||
<Reference Include="MongoDB.Libmongocrypt, Version=1.9.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MongoDB.Libmongocrypt.1.9.0\lib\netstandard2.0\MongoDB.Libmongocrypt.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.4.6.8\lib\net45\NLog.dll</HintPath>
|
||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.5.3.2\lib\net46\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PdfSharp, Version=1.50.5147.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp.dll</HintPath>
|
||||
@@ -94,43 +122,58 @@
|
||||
<HintPath>..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp.Charting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Pipelines.Sockets.Unofficial, Version=1.0.0.0, Culture=neutral, PublicKeyToken=42ea0a778e13fbe2, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Pipelines.Sockets.Unofficial.2.1.1\lib\net461\Pipelines.Sockets.Unofficial.dll</HintPath>
|
||||
<HintPath>..\packages\Pipelines.Sockets.Unofficial.2.2.8\lib\net461\Pipelines.Sockets.Unofficial.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SharpCompress, Version=0.24.0.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SharpCompress.0.24.0\lib\net45\SharpCompress.dll</HintPath>
|
||||
<Reference Include="SharpCompress, Version=0.32.2.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SharpCompress.0.32.2\lib\net461\SharpCompress.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Snappy.NET, Version=1.1.1.8, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Snappy.NET.1.1.1.8\lib\net45\Snappy.NET.dll</HintPath>
|
||||
<Reference Include="Snappier, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a1b25124e6e13a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Snappier.1.0.0\lib\netstandard2.0\Snappier.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\StackExchange.Redis.2.0.601\lib\net461\StackExchange.Redis.dll</HintPath>
|
||||
<HintPath>..\packages\StackExchange.Redis.2.7.33\lib\net461\StackExchange.Redis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SteamWare, Version=3.5.2001.709, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SteamWare.3.5.2001.709\lib\net462\SteamWare.dll</HintPath>
|
||||
<Reference Include="SteamWare, Version=5.3.2311.2908, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SteamWare.5.3.2311.2908\lib\net462\SteamWare.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SteamWare.Logger, Version=5.3.2311.2908, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SteamWare.Logger.5.3.2311.2908\lib\net462\SteamWare.Logger.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System">
|
||||
<HintPath>..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\System.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Diagnostics.PerformanceCounter, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.4.7.0\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath>
|
||||
<Reference Include="System.Diagnostics.PerformanceCounter, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.8.0.0\lib\net462\System.Diagnostics.PerformanceCounter.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
|
||||
<Reference Include="System.IO.Pipelines, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.4.7.0\lib\netstandard2.0\System.IO.Pipelines.dll</HintPath>
|
||||
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll</HintPath>
|
||||
<Reference Include="System.IO.Pipelines, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.8.0.0\lib\net462\System.IO.Pipelines.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
||||
@@ -138,22 +181,50 @@
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.Security" />
|
||||
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.Pkcs, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Pkcs.8.0.0\lib\net462\System.Security.Cryptography.Pkcs.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.Threading.Channels, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Channels.4.7.0\lib\netstandard2.0\System.Threading.Channels.dll</HintPath>
|
||||
<Reference Include="System.Text.Encoding.CodePages, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encoding.CodePages.8.0.0\lib\net462\System.Text.Encoding.CodePages.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Channels, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Channels.8.0.0\lib\net462\System.Threading.Channels.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.3\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="ZstdSharp, Version=0.7.3.0, Culture=neutral, PublicKeyToken=8d151af33a4ad5cf, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ZstdSharp.Port.0.7.3\lib\net461\ZstdSharp.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\VersGen\VersGen.cs">
|
||||
@@ -174,7 +245,11 @@
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>DS_Report.xsd</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DTO\BatchYeldStatDTO.cs" />
|
||||
<Compile Include="DTO\MaterialYeldStatsDTO.cs" />
|
||||
<Compile Include="DTO\SheetYeldStatDTO.cs" />
|
||||
<Compile Include="Enum.cs" />
|
||||
<Compile Include="Objects.cs" />
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
@@ -198,7 +273,7 @@
|
||||
<None Include="DS_App.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSDataSetGenerator</Generator>
|
||||
<LastGenOutput>DS_App.Designer.cs</LastGenOutput>
|
||||
<LastGenOutput>DS_App2.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="DS_App.xss">
|
||||
<DependentUpon>DS_App.xsd</DependentUpon>
|
||||
@@ -230,16 +305,19 @@
|
||||
<Content Include="App_Readme\README_SteamWare.txt" />
|
||||
<Content Include="App_Readme\SteamWare_demo\example-config-table.txt" />
|
||||
<Content Include="App_Readme\SteamWare_demo\example-favicon.ico" />
|
||||
<Content Include="mongocrypt.dll" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Analyzer Include="..\packages\AWSSDK.SecurityToken.3.7.300.99\analyzers\dotnet\cs\AWSSDK.SecurityToken.CodeAnalysis.dll" />
|
||||
<Analyzer Include="..\packages\AWSSDK.SecurityToken.3.7.300.99\analyzers\dotnet\cs\SharedAnalysisCode.dll" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="..\packages\MongoDB.Libmongocrypt.1.0.0\build\MongoDB.Libmongocrypt.targets" Condition="Exists('..\packages\MongoDB.Libmongocrypt.1.0.0\build\MongoDB.Libmongocrypt.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>Questo progetto fa riferimento a uno o più pacchetti NuGet che non sono presenti in questo computer. Usare lo strumento di ripristino dei pacchetti NuGet per scaricarli. Per altre informazioni, vedere http://go.microsoft.com/fwlink/?LinkID=322105. Il file mancante è {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\MongoDB.Libmongocrypt.1.0.0\build\MongoDB.Libmongocrypt.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MongoDB.Libmongocrypt.1.0.0\build\MongoDB.Libmongocrypt.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\MongoDB.Libmongocrypt.1.9.0\build\MongoDB.Libmongocrypt.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MongoDB.Libmongocrypt.1.9.0\build\MongoDB.Libmongocrypt.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
|
||||
<Import Project="..\packages\MongoDB.Libmongocrypt.1.9.0\build\MongoDB.Libmongocrypt.targets" Condition="Exists('..\packages\MongoDB.Libmongocrypt.1.9.0\build\MongoDB.Libmongocrypt.targets')" />
|
||||
</Project>
|
||||
@@ -1,5 +1,5 @@
|
||||
---------------------------------------------------------------
|
||||
------- SteamWareLib SDK -------
|
||||
------- SteamWare SDK -------
|
||||
---------------------------------------------------------------
|
||||
|
||||
Libreria di utility base di SteamWare.
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
|
||||
<targets async="true">
|
||||
<target xsi:type="File"
|
||||
name="SteamWareLib"
|
||||
name="SteamWare"
|
||||
fileName="${basedir}/logs/${shortdate}-SteamWare.log"
|
||||
layout="${longdate} ${uppercase:${level}} ${message}"
|
||||
/>
|
||||
</targets>
|
||||
|
||||
<rules>
|
||||
<logger name="SteamWare.*" minlevel="Debug" writeTo="SteamWareLib" />
|
||||
<logger name="SteamWare.*" minlevel="Debug" writeTo="SteamWare" />
|
||||
</rules>
|
||||
</nlog>
|
||||
@@ -2,8 +2,10 @@
|
||||
_adminEmail samuele@steamware.net,info@steamware.net samuele@steamware.net,info@steamware.net info@steamware.net
|
||||
_allowForceUser true true abilita login forzato
|
||||
_commonPages menu menu pagina comune
|
||||
_emailPwd drmfsls16 drmfsls16 drmfsls16
|
||||
_emailUser steamwarebot@gmail.com steamwarebot@gmail.com steamwarebot@gmail.com
|
||||
_emailPwd siamoInViaNazionale93 siamoInViaNazionale93 siamoInViaNazionale93
|
||||
_emailUser steamwarebot@outlook.it steamwarebot@outlook.it steamwarebot@outlook.it
|
||||
_smtpCli smtp-mail.outlook.com smtp-mail.outlook.com smtp-mail.outlook.com
|
||||
_fromEmail steamwarebot@outlook.it steamwarebot@outlook.it steamwarebot@outlook.it
|
||||
_enableSSL true true true
|
||||
_fromEmail webmaster@admodelling.org webmaster@admodelling.org email mittente eventuali msg
|
||||
_righeDataGrid 30 30 Num righe datagrid std
|
||||
|
||||
+3082
-1681
File diff suppressed because it is too large
Load Diff
Generated
+15124
-4700
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,13 @@
|
||||
|
||||
partial class DS_App
|
||||
{
|
||||
partial class OffOrd2ItemDataTable
|
||||
{
|
||||
}
|
||||
|
||||
partial class SheetsPreviewDataTable
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2087
-732
File diff suppressed because it is too large
Load Diff
+113
-97
@@ -4,187 +4,203 @@
|
||||
Changes to this file may cause incorrect behavior and will be lost if
|
||||
the code is regenerated.
|
||||
</autogenerated>-->
|
||||
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="435" ViewPortY="308" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
|
||||
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="36" ViewPortY="2195" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
|
||||
<Shapes>
|
||||
<Shape ID="DesignTable:BatchList" ZOrder="16" X="291" Y="375" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:StackList" ZOrder="15" X="584" Y="890" Height="381" Width="268" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:SheetList" ZOrder="21" X="254" Y="840" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:OrderList" ZOrder="39" X="352" Y="29" Height="343" Width="198" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:BatchReqList" ZOrder="48" X="101" Y="100" Height="115" Width="220" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
|
||||
<Shape ID="DesignTable:ItemList" ZOrder="31" X="861" Y="19" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:Materials" ZOrder="46" X="1197" Y="37" Height="248" Width="198" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
|
||||
<Shape ID="DesignTable:Bins" ZOrder="1" X="1265" Y="529" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:Carts" ZOrder="25" X="600" Y="340" Height="286" Width="204" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:OfflineOrderList" ZOrder="4" X="929" Y="866" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:OffOrd2Item" ZOrder="44" X="1031" Y="660" Height="134" Width="219" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
|
||||
<Shape ID="DesignTable:KitList" ZOrder="42" X="612" Y="30" Height="248" Width="194" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
|
||||
<Shape ID="DesignTable:Nesting" ZOrder="33" X="871" Y="458" Height="153" Width="228" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
|
||||
<Shape ID="DesignTable:ImportLog" ZOrder="7" X="601" Y="633" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:BinList" ZOrder="36" X="1264" Y="323" Height="134" Width="216" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
|
||||
<Shape ID="DesignTable:FinalKit" ZOrder="18" X="23" Y="457" Height="172" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:Order2FinalKit" ZOrder="30" X="13" Y="240" Height="134" Width="234" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
|
||||
<Shape ID="DesignTable:Counters" ZOrder="27" X="16" Y="706" Height="172" Width="196" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:ErrorsLog" ZOrder="26" X="-6" Y="928" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
|
||||
<Shape ID="DesignTable:ItemValidation" ZOrder="20" X="-2" Y="1233" Height="172" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:PartValidPareto" ZOrder="19" X="324" Y="1235" Height="153" Width="236" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:UnloadStats" ZOrder="17" X="637" Y="1294" Height="172" Width="215" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
|
||||
<Shape ID="DesignTable:Remnants" ZOrder="24" X="912" Y="1188" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:CartOnKit" ZOrder="23" X="1259" Y="925" Height="324" Width="202" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:PackList" ZOrder="11" X="1256" Y="1251" Height="362" Width="297" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
|
||||
<Shape ID="DesignTable:OtherItem" ZOrder="22" X="644" Y="1754" Height="210" Width="204" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
|
||||
<Shape ID="DesignTable:ItemSearchDetail" ZOrder="3" X="1476" Y="37" Height="381" Width="244" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:PackListDet" ZOrder="14" X="939" Y="1452" Height="343" Width="229" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:PackLog" ZOrder="13" X="1232" Y="1683" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
|
||||
<Shape ID="DesignTable:PackCheck" ZOrder="12" X="644" Y="1492" Height="229" Width="206" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
|
||||
<Shape ID="DesignTable:OKIB" ZOrder="10" X="41" Y="1425" Height="324" Width="220" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:OKIB_Sum" ZOrder="9" X="50" Y="1823" Height="362" Width="220" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:OKOI" ZOrder="6" X="342" Y="1417" Height="324" Width="246" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:OKOI_sum" ZOrder="5" X="338" Y="1822" Height="362" Width="246" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:Pack2Cart" ZOrder="8" X="919" Y="1805" Height="286" Width="203" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
|
||||
<Shape ID="DesignTable:CartIRK" ZOrder="2" X="648" Y="1996" Height="305" Width="188" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
|
||||
<Shape ID="DesignTable:BatchList" ZOrder="15" X="325" Y="437" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:StackList" ZOrder="16" X="618" Y="961" Height="381" Width="267" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:SheetList" ZOrder="13" X="300" Y="824" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:OrderList" ZOrder="25" X="284" Y="61" Height="343" Width="198" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:ItemList" ZOrder="49" X="853" Y="87" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:Materials" ZOrder="7" X="1227" Y="25" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
|
||||
<Shape ID="DesignTable:Bins" ZOrder="24" X="1257" Y="597" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:Carts" ZOrder="48" X="592" Y="408" Height="286" Width="203" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:OfflineOrderList" ZOrder="47" X="921" Y="934" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:OffOrd2Item" ZOrder="46" X="1023" Y="728" Height="134" Width="219" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
|
||||
<Shape ID="DesignTable:KitList" ZOrder="8" X="634" Y="129" Height="248" Width="193" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
|
||||
<Shape ID="DesignTable:Nesting" ZOrder="45" X="863" Y="526" Height="153" Width="228" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
|
||||
<Shape ID="DesignTable:ImportLog" ZOrder="3" X="593" Y="701" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:BinList" ZOrder="44" X="1256" Y="391" Height="134" Width="216" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
|
||||
<Shape ID="DesignTable:FinalKit" ZOrder="43" X="15" Y="525" Height="172" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:Order2FinalKit" ZOrder="42" X="5" Y="308" Height="134" Width="234" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
|
||||
<Shape ID="DesignTable:Counters" ZOrder="41" X="-12" Y="716" Height="172" Width="196" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:ErrorsLog" ZOrder="40" X="-14" Y="996" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
|
||||
<Shape ID="DesignTable:ItemValidation" ZOrder="39" X="-10" Y="1301" Height="172" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:PartValidPareto" ZOrder="38" X="316" Y="1303" Height="153" Width="236" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:UnloadStats" ZOrder="37" X="629" Y="1362" Height="172" Width="215" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
|
||||
<Shape ID="DesignTable:Remnants" ZOrder="36" X="904" Y="1256" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:CartOnKit" ZOrder="6" X="1311" Y="988" Height="343" Width="202" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:PackList" ZOrder="5" X="1246" Y="1358" Height="362" Width="297" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
|
||||
<Shape ID="DesignTable:OtherItem" ZOrder="35" X="636" Y="1822" Height="210" Width="204" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
|
||||
<Shape ID="DesignTable:ItemSearchDetail" ZOrder="4" X="1513" Y="102" Height="381" Width="244" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:PackListDet" ZOrder="34" X="931" Y="1520" Height="343" Width="227" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:PackLog" ZOrder="33" X="1224" Y="1751" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
|
||||
<Shape ID="DesignTable:PackCheck" ZOrder="32" X="636" Y="1560" Height="229" Width="206" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
|
||||
<Shape ID="DesignTable:OKIB" ZOrder="31" X="33" Y="1493" Height="324" Width="218" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:OKIB_Sum" ZOrder="30" X="42" Y="1891" Height="362" Width="218" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:OKOI" ZOrder="29" X="334" Y="1485" Height="324" Width="244" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:OKOI_sum" ZOrder="28" X="330" Y="1890" Height="362" Width="244" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:Pack2Cart" ZOrder="19" X="911" Y="1873" Height="286" Width="203" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
|
||||
<Shape ID="DesignTable:CartIRK" ZOrder="27" X="640" Y="2064" Height="305" Width="188" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
|
||||
<Shape ID="DesignTable:FileValidation" ZOrder="23" X="488" Y="-38" Height="191" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
|
||||
<Shape ID="DesignTable:SheetsPreview" ZOrder="26" X="65" Y="839" Height="210" Width="228" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:OrderListTree" ZOrder="22" X="3" Y="-43" Height="343" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
|
||||
<Shape ID="DesignTable:Places" ZOrder="17" X="862" Y="2175" Height="172" Width="180" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:StatusLog" ZOrder="20" X="1116" Y="2180" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:StatusDecode" ZOrder="18" X="849" Y="2353" Height="172" Width="224" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:UpdMan" ZOrder="14" X="636" Y="2374" Height="191" Width="195" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
|
||||
<Shape ID="DesignTable:SheetStats" ZOrder="12" X="20" Y="2307" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:BatchStats" ZOrder="11" X="369" Y="2276" Height="305" Width="206" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
|
||||
<Shape ID="DesignTable:ProductionStatsDay" ZOrder="2" X="946" Y="2546" Height="210" Width="204" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:PlantList" ZOrder="9" X="25" Y="2608" Height="172" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
|
||||
<Shape ID="DesignTable:SpecialParts" ZOrder="10" X="370" Y="2611" Height="210" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:OrderSearch" ZOrder="1" X="702" Y="2608" Height="172" Width="205" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
|
||||
</Shapes>
|
||||
<Connectors>
|
||||
<Connector ID="DesignRelation:FK_BatchReqList_OrderList" ZOrder="47" LineWidth="11">
|
||||
<Connector ID="DesignRelation:FK_ItemList_Materials1" ZOrder="60" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>352</X>
|
||||
<Y>144</Y>
|
||||
<X>1227</X>
|
||||
<Y>202</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>321</X>
|
||||
<Y>144</Y>
|
||||
<X>1153</X>
|
||||
<Y>202</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:FK_ItemList_Materials1" ZOrder="45" LineWidth="11">
|
||||
<Connector ID="DesignRelation:FK_OffOrd2Item_OfflineOrderList" ZOrder="59" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>1197</X>
|
||||
<Y>146</Y>
|
||||
<X>1028</X>
|
||||
<Y>934</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>1161</X>
|
||||
<Y>146</Y>
|
||||
<X>1028</X>
|
||||
<Y>862</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:FK_OffOrd2Item_OfflineOrderList" ZOrder="43" LineWidth="11">
|
||||
<Connector ID="DesignRelation:FK_ItemList_KitList" ZOrder="58" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>1044</X>
|
||||
<Y>866</Y>
|
||||
<X>827</X>
|
||||
<Y>235</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>1044</X>
|
||||
<Y>794</Y>
|
||||
<X>853</X>
|
||||
<Y>235</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:FK_ItemList_KitList" ZOrder="41" LineWidth="11">
|
||||
<Connector ID="DesignRelation:FK_Nesting_ItemList" ZOrder="57" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>806</X>
|
||||
<Y>68</Y>
|
||||
<X>1116</X>
|
||||
<Y>468</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>861</X>
|
||||
<Y>68</Y>
|
||||
<X>1116</X>
|
||||
<Y>553</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>1091</X>
|
||||
<Y>553</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:FK_Nesting_ItemList" ZOrder="40" LineWidth="11">
|
||||
<Connector ID="DesignRelation:FK_KitList_Carts" ZOrder="55" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>986</X>
|
||||
<Y>400</Y>
|
||||
<X>721</X>
|
||||
<Y>408</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>986</X>
|
||||
<Y>458</Y>
|
||||
<X>721</X>
|
||||
<Y>377</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:FK_KitList_Carts" ZOrder="37" LineWidth="11">
|
||||
<Connector ID="DesignRelation:FK_KitList_OrderList" ZOrder="56" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>707</X>
|
||||
<Y>340</Y>
|
||||
<X>482</X>
|
||||
<Y>355</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>707</X>
|
||||
<Y>278</Y>
|
||||
<X>634</X>
|
||||
<Y>355</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:FK_KitList_OrderList" ZOrder="38" LineWidth="11">
|
||||
<Connector ID="DesignRelation:FK_OffOrd2Item_ItemList" ZOrder="52" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>550</X>
|
||||
<Y>97</Y>
|
||||
<X>1113</X>
|
||||
<Y>468</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>612</X>
|
||||
<Y>97</Y>
|
||||
<X>1113</X>
|
||||
<Y>728</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:FK_OffOrd2Item_ItemList" ZOrder="32" LineWidth="11">
|
||||
<Connector ID="DesignRelation:FK_BinList_Bins" ZOrder="54" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>1129</X>
|
||||
<Y>400</Y>
|
||||
<X>1364</X>
|
||||
<Y>597</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>1129</X>
|
||||
<Y>660</Y>
|
||||
<X>1364</X>
|
||||
<Y>525</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:FK_BinList_Bins" ZOrder="35" LineWidth="11">
|
||||
<Connector ID="DesignRelation:FK_BinList_ItemList" ZOrder="53" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>1380</X>
|
||||
<Y>529</Y>
|
||||
<X>1153</X>
|
||||
<Y>429</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>1380</X>
|
||||
<Y>457</Y>
|
||||
<X>1256</X>
|
||||
<Y>429</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:FK_BinList_ItemList" ZOrder="34" LineWidth="11">
|
||||
<Connector ID="DesignRelation:FK_Order2FinalKit_FinalKit" ZOrder="51" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>1161</X>
|
||||
<Y>361</Y>
|
||||
<X>115</X>
|
||||
<Y>525</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>1264</X>
|
||||
<Y>361</Y>
|
||||
<X>115</X>
|
||||
<Y>442</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:FK_Order2FinalKit_FinalKit" ZOrder="29" LineWidth="11">
|
||||
<Connector ID="DesignRelation:FK_Order2FinalKit_OrderList" ZOrder="50" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>131</X>
|
||||
<Y>457</Y>
|
||||
<X>284</X>
|
||||
<Y>393</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>131</X>
|
||||
<Y>374</Y>
|
||||
<X>239</X>
|
||||
<Y>393</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:FK_Order2FinalKit_OrderList" ZOrder="28" LineWidth="11">
|
||||
<Connector ID="DesignRelation:FK_StatusLog_Places" ZOrder="21" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>352</X>
|
||||
<Y>293</Y>
|
||||
<X>1042</X>
|
||||
<Y>2251</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>247</X>
|
||||
<Y>293</Y>
|
||||
<X>1116</X>
|
||||
<Y>2251</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
|
||||
Generated
+2571
-822
File diff suppressed because it is too large
Load Diff
+282
-99
@@ -149,8 +149,8 @@ SELECT IdxPrintJob, TipoReport, KeyParam, prtName, dtStart, dtEnd, stato, dtLast
|
||||
</DbSource>
|
||||
<DbSource ConnectionRef="Sauder_NKCConnectionString (Settings)" DbObjectName="Sauder_NKC.dbo.stp_PJQ_getFirtsByUdc" DbObjectType="StoredProcedure" GenerateMethods="Get" GenerateShortCommands="true" GeneratorGetMethodName="getFirstByParam" GetMethodModifier="Public" GetMethodName="getFirstByParam" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="getFirstByParam" UserSourceName="getFirstByParam">
|
||||
<SelectCommand>
|
||||
<DbCommand CommandType="StoredProcedure" ModifiedByUser="false">
|
||||
<CommandText>dbo.stp_PJQ_getFirtsByUdc</CommandText>
|
||||
<DbCommand CommandType="StoredProcedure" ModifiedByUser="true">
|
||||
<CommandText>dbo.stp_PJQ_getFirtsByParam</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="varchar" DbType="AnsiString" Direction="Input" ParameterName="@keyParam" Precision="0" ProviderType="VarChar" Scale="0" Size="50" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
@@ -367,6 +367,8 @@ SELECT codPostazione, stampante, note FROM ElencoPostazioni WHERE (codPostazione
|
||||
<Mapping SourceColumn="TotKit" DataSetColumn="TotKit" />
|
||||
<Mapping SourceColumn="QRCodeBaseUrl" DataSetColumn="QRCodeBaseUrl" />
|
||||
<Mapping SourceColumn="DueDate" DataSetColumn="DueDate" />
|
||||
<Mapping SourceColumn="OrdParent" DataSetColumn="OrdParent" />
|
||||
<Mapping SourceColumn="AtoReqDate" DataSetColumn="AtoReqDate" />
|
||||
</Mappings>
|
||||
<Sources />
|
||||
</TableAdapter>
|
||||
@@ -487,37 +489,93 @@ SELECT codPostazione, stampante, note FROM ElencoPostazioni WHERE (codPostazione
|
||||
</Mappings>
|
||||
<Sources />
|
||||
</TableAdapter>
|
||||
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="stp_prt_RemnantTableAdapter" GeneratorDataComponentClassName="stp_prt_RemnantTableAdapter" Name="stp_prt_Remnant" UserDataComponentName="stp_prt_RemnantTableAdapter">
|
||||
<MainSource>
|
||||
<DbSource ConnectionRef="Sauder_NKCConnectionString (Settings)" DbObjectName="Sauder_NKC.prt.stp_prt_Remnant" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
|
||||
<SelectCommand>
|
||||
<DbCommand CommandType="StoredProcedure" ModifiedByUser="false">
|
||||
<CommandText>prt.stp_prt_Remnant</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@ItemID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="nvarchar" DbType="String" Direction="Input" ParameterName="@QRCodeBaseUrl" Precision="0" ProviderType="NVarChar" Scale="0" Size="400" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</SelectCommand>
|
||||
</DbSource>
|
||||
</MainSource>
|
||||
<Mappings>
|
||||
<Mapping SourceColumn="QRCodeBaseUrl" DataSetColumn="QRCodeBaseUrl" />
|
||||
<Mapping SourceColumn="CodRemnant" DataSetColumn="CodRemnant" />
|
||||
<Mapping SourceColumn="DescRemnant01" DataSetColumn="DescRemnant01" />
|
||||
<Mapping SourceColumn="DescRemnant02" DataSetColumn="DescRemnant02" />
|
||||
</Mappings>
|
||||
<Sources />
|
||||
</TableAdapter>
|
||||
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="stp_prt_SpecialPartTableAdapter" GeneratorDataComponentClassName="stp_prt_SpecialPartTableAdapter" Name="stp_prt_SpecialPart" UserDataComponentName="stp_prt_SpecialPartTableAdapter">
|
||||
<MainSource>
|
||||
<DbSource ConnectionRef="Sauder_NKCConnectionString (Settings)" DbObjectName="Sauder_NKC.prt.stp_prt_SpecialPart" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
|
||||
<SelectCommand>
|
||||
<DbCommand CommandType="StoredProcedure" ModifiedByUser="false">
|
||||
<CommandText>prt.stp_prt_SpecialPart</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@CartID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="nvarchar" DbType="String" Direction="Input" ParameterName="@PathImage" Precision="0" ProviderType="NVarChar" Scale="0" Size="4000" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="nvarchar" DbType="String" Direction="Input" ParameterName="@QRCodeBaseUrl" Precision="0" ProviderType="NVarChar" Scale="0" Size="400" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</SelectCommand>
|
||||
</DbSource>
|
||||
</MainSource>
|
||||
<Mappings>
|
||||
<Mapping SourceColumn="DocID" DataSetColumn="DocID" />
|
||||
<Mapping SourceColumn="DocDtmx" DataSetColumn="DocDtmx" />
|
||||
<Mapping SourceColumn="ItemExtCode" DataSetColumn="ItemExtCode" />
|
||||
<Mapping SourceColumn="ItemDesc" DataSetColumn="ItemDesc" />
|
||||
<Mapping SourceColumn="DueDate" DataSetColumn="DueDate" />
|
||||
<Mapping SourceColumn="TotItem" DataSetColumn="TotItem" />
|
||||
<Mapping SourceColumn="PathImageFull" DataSetColumn="PathImageFull" />
|
||||
<Mapping SourceColumn="QRCodeBaseUrl" DataSetColumn="QRCodeBaseUrl" />
|
||||
<Mapping SourceColumn="OrdParent" DataSetColumn="OrdParent" />
|
||||
<Mapping SourceColumn="ReqDate" DataSetColumn="ReqDate" />
|
||||
<Mapping SourceColumn="CartDtmx" DataSetColumn="CartDtmx" />
|
||||
<Mapping SourceColumn="ModelCod" DataSetColumn="ModelCod" />
|
||||
<Mapping SourceColumn="DestPlant" DataSetColumn="DestPlant" />
|
||||
</Mappings>
|
||||
<Sources />
|
||||
</TableAdapter>
|
||||
</Tables>
|
||||
<Sources />
|
||||
</DataSource>
|
||||
</xs:appinfo>
|
||||
</xs:annotation>
|
||||
<xs:element name="DS_Report" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DS_Report" msprop:Generator_UserDSName="DS_Report">
|
||||
<xs:element name="DS_Report" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:Generator_UserDSName="DS_Report" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DS_Report">
|
||||
<xs:complexType>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="stp_prt_BunkList" msprop:Generator_TableClassName="stp_prt_BunkListDataTable" msprop:Generator_TableVarName="tablestp_prt_BunkList" msprop:Generator_TablePropName="stp_prt_BunkList" msprop:Generator_RowDeletingName="stp_prt_BunkListRowDeleting" msprop:Generator_RowChangingName="stp_prt_BunkListRowChanging" msprop:Generator_RowEvHandlerName="stp_prt_BunkListRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_BunkListRowDeleted" msprop:Generator_UserTableName="stp_prt_BunkList" msprop:Generator_RowChangedName="stp_prt_BunkListRowChanged" msprop:Generator_RowEvArgName="stp_prt_BunkListRowChangeEvent" msprop:Generator_RowClassName="stp_prt_BunkListRow">
|
||||
<xs:element name="stp_prt_BunkList" msprop:Generator_RowEvHandlerName="stp_prt_BunkListRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_BunkListRowDeleted" msprop:Generator_RowDeletingName="stp_prt_BunkListRowDeleting" msprop:Generator_RowEvArgName="stp_prt_BunkListRowChangeEvent" msprop:Generator_TablePropName="stp_prt_BunkList" msprop:Generator_RowChangedName="stp_prt_BunkListRowChanged" msprop:Generator_UserTableName="stp_prt_BunkList" msprop:Generator_RowChangingName="stp_prt_BunkListRowChanging" msprop:Generator_RowClassName="stp_prt_BunkListRow" msprop:Generator_TableClassName="stp_prt_BunkListDataTable" msprop:Generator_TableVarName="tablestp_prt_BunkList">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="StackIndex" msprop:Generator_ColumnVarNameInTable="columnStackIndex" msprop:Generator_ColumnPropNameInRow="StackIndex" msprop:Generator_ColumnPropNameInTable="StackIndexColumn" msprop:Generator_UserColumnName="StackIndex" type="xs:int" />
|
||||
<xs:element name="StackDtmx" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnStackDtmx" msprop:Generator_ColumnPropNameInRow="StackDtmx" msprop:Generator_ColumnPropNameInTable="StackDtmxColumn" msprop:Generator_UserColumnName="StackDtmx" minOccurs="0">
|
||||
<xs:element name="StackIndex" msprop:Generator_ColumnPropNameInTable="StackIndexColumn" msprop:Generator_ColumnPropNameInRow="StackIndex" msprop:Generator_UserColumnName="StackIndex" msprop:Generator_ColumnVarNameInTable="columnStackIndex" type="xs:int" />
|
||||
<xs:element name="StackDtmx" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="StackDtmxColumn" msprop:Generator_ColumnPropNameInRow="StackDtmx" msprop:Generator_UserColumnName="StackDtmx" msprop:Generator_ColumnVarNameInTable="columnStackDtmx" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="Prepared" msprop:Generator_ColumnVarNameInTable="columnPrepared" msprop:Generator_ColumnPropNameInRow="Prepared" msprop:Generator_ColumnPropNameInTable="PreparedColumn" msprop:Generator_UserColumnName="Prepared" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="DueDate" msprop:Generator_ColumnVarNameInTable="columnDueDate" msprop:Generator_ColumnPropNameInRow="DueDate" msprop:Generator_ColumnPropNameInTable="DueDateColumn" msprop:Generator_UserColumnName="DueDate" type="xs:dateTime" />
|
||||
<xs:element name="SheetSequ" msprop:Generator_ColumnVarNameInTable="columnSheetSequ" msprop:Generator_ColumnPropNameInRow="SheetSequ" msprop:Generator_ColumnPropNameInTable="SheetSequColumn" msprop:Generator_UserColumnName="SheetSequ" type="xs:int" />
|
||||
<xs:element name="MatExtCode" msprop:Generator_ColumnVarNameInTable="columnMatExtCode" msprop:Generator_ColumnPropNameInRow="MatExtCode" msprop:Generator_ColumnPropNameInTable="MatExtCodeColumn" msprop:Generator_UserColumnName="MatExtCode" type="xs:int" />
|
||||
<xs:element name="MatDesc" msprop:Generator_ColumnVarNameInTable="columnMatDesc" msprop:Generator_ColumnPropNameInRow="MatDesc" msprop:Generator_ColumnPropNameInTable="MatDescColumn" msprop:Generator_UserColumnName="MatDesc">
|
||||
<xs:element name="Prepared" msprop:Generator_ColumnPropNameInTable="PreparedColumn" msprop:Generator_ColumnPropNameInRow="Prepared" msprop:Generator_UserColumnName="Prepared" msprop:Generator_ColumnVarNameInTable="columnPrepared" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="DueDate" msprop:Generator_ColumnPropNameInTable="DueDateColumn" msprop:Generator_ColumnPropNameInRow="DueDate" msprop:Generator_UserColumnName="DueDate" msprop:Generator_ColumnVarNameInTable="columnDueDate" type="xs:dateTime" />
|
||||
<xs:element name="SheetSequ" msprop:Generator_ColumnPropNameInTable="SheetSequColumn" msprop:Generator_ColumnPropNameInRow="SheetSequ" msprop:Generator_UserColumnName="SheetSequ" msprop:Generator_ColumnVarNameInTable="columnSheetSequ" type="xs:int" />
|
||||
<xs:element name="MatExtCode" msprop:Generator_ColumnPropNameInTable="MatExtCodeColumn" msprop:Generator_ColumnPropNameInRow="MatExtCode" msprop:Generator_UserColumnName="MatExtCode" msprop:Generator_ColumnVarNameInTable="columnMatExtCode" type="xs:int" />
|
||||
<xs:element name="MatDesc" msprop:Generator_ColumnPropNameInTable="MatDescColumn" msprop:Generator_ColumnPropNameInRow="MatDesc" msprop:Generator_UserColumnName="MatDesc" msprop:Generator_ColumnVarNameInTable="columnMatDesc">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_UserColumnName="QRCodeBaseUrl" minOccurs="0">
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_UserColumnName="QRCodeBaseUrl" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="400" />
|
||||
@@ -527,56 +585,56 @@ SELECT codPostazione, stampante, note FROM ElencoPostazioni WHERE (codPostazione
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="PrintJobQueue" msprop:Generator_TableClassName="PrintJobQueueDataTable" msprop:Generator_TableVarName="tablePrintJobQueue" msprop:Generator_RowChangedName="PrintJobQueueRowChanged" msprop:Generator_TablePropName="PrintJobQueue" msprop:Generator_RowDeletingName="PrintJobQueueRowDeleting" msprop:Generator_RowChangingName="PrintJobQueueRowChanging" msprop:Generator_RowEvHandlerName="PrintJobQueueRowChangeEventHandler" msprop:Generator_RowDeletedName="PrintJobQueueRowDeleted" msprop:Generator_RowClassName="PrintJobQueueRow" msprop:Generator_UserTableName="PrintJobQueue" msprop:Generator_RowEvArgName="PrintJobQueueRowChangeEvent">
|
||||
<xs:element name="PrintJobQueue" msprop:Generator_RowEvHandlerName="PrintJobQueueRowChangeEventHandler" msprop:Generator_RowDeletedName="PrintJobQueueRowDeleted" msprop:Generator_RowDeletingName="PrintJobQueueRowDeleting" msprop:Generator_RowEvArgName="PrintJobQueueRowChangeEvent" msprop:Generator_TablePropName="PrintJobQueue" msprop:Generator_RowChangedName="PrintJobQueueRowChanged" msprop:Generator_UserTableName="PrintJobQueue" msprop:Generator_RowChangingName="PrintJobQueueRowChanging" msprop:Generator_RowClassName="PrintJobQueueRow" msprop:Generator_TableClassName="PrintJobQueueDataTable" msprop:Generator_TableVarName="tablePrintJobQueue">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="IdxPrintJob" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnIdxPrintJob" msprop:Generator_ColumnPropNameInRow="IdxPrintJob" msprop:Generator_ColumnPropNameInTable="IdxPrintJobColumn" msprop:Generator_UserColumnName="IdxPrintJob" type="xs:int" />
|
||||
<xs:element name="TipoReport" msprop:Generator_ColumnVarNameInTable="columnTipoReport" msprop:Generator_ColumnPropNameInRow="TipoReport" msprop:Generator_ColumnPropNameInTable="TipoReportColumn" msprop:Generator_UserColumnName="TipoReport">
|
||||
<xs:element name="IdxPrintJob" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInTable="IdxPrintJobColumn" msprop:Generator_ColumnPropNameInRow="IdxPrintJob" msprop:Generator_UserColumnName="IdxPrintJob" msprop:Generator_ColumnVarNameInTable="columnIdxPrintJob" type="xs:int" />
|
||||
<xs:element name="TipoReport" msprop:Generator_ColumnPropNameInTable="TipoReportColumn" msprop:Generator_ColumnPropNameInRow="TipoReport" msprop:Generator_UserColumnName="TipoReport" msprop:Generator_ColumnVarNameInTable="columnTipoReport">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="KeyParam" msprop:Generator_ColumnVarNameInTable="columnKeyParam" msprop:Generator_ColumnPropNameInRow="KeyParam" msprop:Generator_ColumnPropNameInTable="KeyParamColumn" msprop:Generator_UserColumnName="KeyParam">
|
||||
<xs:element name="KeyParam" msprop:Generator_ColumnPropNameInTable="KeyParamColumn" msprop:Generator_ColumnPropNameInRow="KeyParam" msprop:Generator_UserColumnName="KeyParam" msprop:Generator_ColumnVarNameInTable="columnKeyParam">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="prtName" msprop:Generator_ColumnVarNameInTable="columnprtName" msprop:Generator_ColumnPropNameInRow="prtName" msprop:Generator_ColumnPropNameInTable="prtNameColumn" msprop:Generator_UserColumnName="prtName">
|
||||
<xs:element name="prtName" msprop:Generator_ColumnPropNameInTable="prtNameColumn" msprop:Generator_ColumnPropNameInRow="prtName" msprop:Generator_UserColumnName="prtName" msprop:Generator_ColumnVarNameInTable="columnprtName">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="dtStart" msprop:Generator_ColumnVarNameInTable="columndtStart" msprop:Generator_ColumnPropNameInRow="dtStart" msprop:Generator_ColumnPropNameInTable="dtStartColumn" msprop:Generator_UserColumnName="dtStart" type="xs:dateTime" />
|
||||
<xs:element name="dtEnd" msprop:Generator_ColumnVarNameInTable="columndtEnd" msprop:Generator_ColumnPropNameInRow="dtEnd" msprop:Generator_ColumnPropNameInTable="dtEndColumn" msprop:Generator_UserColumnName="dtEnd" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="stato" msprop:Generator_ColumnVarNameInTable="columnstato" msprop:Generator_ColumnPropNameInRow="stato" msprop:Generator_ColumnPropNameInTable="statoColumn" msprop:Generator_UserColumnName="stato" type="xs:int" />
|
||||
<xs:element name="dtLastTry" msprop:Generator_ColumnVarNameInTable="columndtLastTry" msprop:Generator_ColumnPropNameInRow="dtLastTry" msprop:Generator_ColumnPropNameInTable="dtLastTryColumn" msprop:Generator_UserColumnName="dtLastTry" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="dtStart" msprop:Generator_ColumnPropNameInTable="dtStartColumn" msprop:Generator_ColumnPropNameInRow="dtStart" msprop:Generator_UserColumnName="dtStart" msprop:Generator_ColumnVarNameInTable="columndtStart" type="xs:dateTime" />
|
||||
<xs:element name="dtEnd" msprop:Generator_ColumnPropNameInTable="dtEndColumn" msprop:Generator_ColumnPropNameInRow="dtEnd" msprop:Generator_UserColumnName="dtEnd" msprop:Generator_ColumnVarNameInTable="columndtEnd" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="stato" msprop:Generator_ColumnPropNameInTable="statoColumn" msprop:Generator_ColumnPropNameInRow="stato" msprop:Generator_UserColumnName="stato" msprop:Generator_ColumnVarNameInTable="columnstato" type="xs:int" />
|
||||
<xs:element name="dtLastTry" msprop:Generator_ColumnPropNameInTable="dtLastTryColumn" msprop:Generator_ColumnPropNameInRow="dtLastTry" msprop:Generator_UserColumnName="dtLastTry" msprop:Generator_ColumnVarNameInTable="columndtLastTry" type="xs:dateTime" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="ElencoPostazioni" msprop:Generator_TableClassName="ElencoPostazioniDataTable" msprop:Generator_TableVarName="tableElencoPostazioni" msprop:Generator_RowChangedName="ElencoPostazioniRowChanged" msprop:Generator_TablePropName="ElencoPostazioni" msprop:Generator_RowDeletingName="ElencoPostazioniRowDeleting" msprop:Generator_RowChangingName="ElencoPostazioniRowChanging" msprop:Generator_RowEvHandlerName="ElencoPostazioniRowChangeEventHandler" msprop:Generator_RowDeletedName="ElencoPostazioniRowDeleted" msprop:Generator_RowClassName="ElencoPostazioniRow" msprop:Generator_UserTableName="ElencoPostazioni" msprop:Generator_RowEvArgName="ElencoPostazioniRowChangeEvent">
|
||||
<xs:element name="ElencoPostazioni" msprop:Generator_RowEvHandlerName="ElencoPostazioniRowChangeEventHandler" msprop:Generator_RowDeletedName="ElencoPostazioniRowDeleted" msprop:Generator_RowDeletingName="ElencoPostazioniRowDeleting" msprop:Generator_RowEvArgName="ElencoPostazioniRowChangeEvent" msprop:Generator_TablePropName="ElencoPostazioni" msprop:Generator_RowChangedName="ElencoPostazioniRowChanged" msprop:Generator_UserTableName="ElencoPostazioni" msprop:Generator_RowChangingName="ElencoPostazioniRowChanging" msprop:Generator_RowClassName="ElencoPostazioniRow" msprop:Generator_TableClassName="ElencoPostazioniDataTable" msprop:Generator_TableVarName="tableElencoPostazioni">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="codPostazione" msprop:Generator_ColumnVarNameInTable="columncodPostazione" msprop:Generator_ColumnPropNameInRow="codPostazione" msprop:Generator_ColumnPropNameInTable="codPostazioneColumn" msprop:Generator_UserColumnName="codPostazione">
|
||||
<xs:element name="codPostazione" msprop:Generator_ColumnPropNameInTable="codPostazioneColumn" msprop:Generator_ColumnPropNameInRow="codPostazione" msprop:Generator_UserColumnName="codPostazione" msprop:Generator_ColumnVarNameInTable="columncodPostazione">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="stampante" msprop:Generator_ColumnVarNameInTable="columnstampante" msprop:Generator_ColumnPropNameInRow="stampante" msprop:Generator_ColumnPropNameInTable="stampanteColumn" msprop:Generator_UserColumnName="stampante" minOccurs="0">
|
||||
<xs:element name="stampante" msprop:Generator_ColumnPropNameInTable="stampanteColumn" msprop:Generator_ColumnPropNameInRow="stampante" msprop:Generator_UserColumnName="stampante" msprop:Generator_ColumnVarNameInTable="columnstampante" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="note" msprop:Generator_ColumnVarNameInTable="columnnote" msprop:Generator_ColumnPropNameInRow="note" msprop:Generator_ColumnPropNameInTable="noteColumn" msprop:Generator_UserColumnName="note" minOccurs="0">
|
||||
<xs:element name="note" msprop:Generator_ColumnPropNameInTable="noteColumn" msprop:Generator_ColumnPropNameInRow="note" msprop:Generator_UserColumnName="note" msprop:Generator_ColumnVarNameInTable="columnnote" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
@@ -586,92 +644,92 @@ SELECT codPostazione, stampante, note FROM ElencoPostazioni WHERE (codPostazione
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="stp_prt_Bin" msprop:Generator_TableClassName="stp_prt_BinDataTable" msprop:Generator_TableVarName="tablestp_prt_Bin" msprop:Generator_TablePropName="stp_prt_Bin" msprop:Generator_RowDeletingName="stp_prt_BinRowDeleting" msprop:Generator_RowChangingName="stp_prt_BinRowChanging" msprop:Generator_RowEvHandlerName="stp_prt_BinRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_BinRowDeleted" msprop:Generator_UserTableName="stp_prt_Bin" msprop:Generator_RowChangedName="stp_prt_BinRowChanged" msprop:Generator_RowEvArgName="stp_prt_BinRowChangeEvent" msprop:Generator_RowClassName="stp_prt_BinRow">
|
||||
<xs:element name="stp_prt_Bin" msprop:Generator_RowEvHandlerName="stp_prt_BinRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_BinRowDeleted" msprop:Generator_RowDeletingName="stp_prt_BinRowDeleting" msprop:Generator_RowEvArgName="stp_prt_BinRowChangeEvent" msprop:Generator_TablePropName="stp_prt_Bin" msprop:Generator_RowChangedName="stp_prt_BinRowChanged" msprop:Generator_UserTableName="stp_prt_Bin" msprop:Generator_RowChangingName="stp_prt_BinRowChanging" msprop:Generator_RowClassName="stp_prt_BinRow" msprop:Generator_TableClassName="stp_prt_BinDataTable" msprop:Generator_TableVarName="tablestp_prt_Bin">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="BinID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnBinID" msprop:Generator_ColumnPropNameInRow="BinID" msprop:Generator_ColumnPropNameInTable="BinIDColumn" msprop:Generator_UserColumnName="BinID" type="xs:int" />
|
||||
<xs:element name="flgPreOrPost" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnflgPreOrPost" msprop:Generator_ColumnPropNameInRow="flgPreOrPost" msprop:Generator_ColumnPropNameInTable="flgPreOrPostColumn" msprop:Generator_UserColumnName="flgPreOrPost" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="BinIndex" msprop:Generator_ColumnVarNameInTable="columnBinIndex" msprop:Generator_ColumnPropNameInRow="BinIndex" msprop:Generator_ColumnPropNameInTable="BinIndexColumn" msprop:Generator_UserColumnName="BinIndex" type="xs:int" />
|
||||
<xs:element name="BinIndexChar" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnBinIndexChar" msprop:Generator_ColumnPropNameInRow="BinIndexChar" msprop:Generator_ColumnPropNameInTable="BinIndexCharColumn" msprop:Generator_UserColumnName="BinIndexChar" minOccurs="0">
|
||||
<xs:element name="BinID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInTable="BinIDColumn" msprop:Generator_ColumnPropNameInRow="BinID" msprop:Generator_UserColumnName="BinID" msprop:Generator_ColumnVarNameInTable="columnBinID" type="xs:int" />
|
||||
<xs:element name="flgPreOrPost" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="flgPreOrPostColumn" msprop:Generator_ColumnPropNameInRow="flgPreOrPost" msprop:Generator_UserColumnName="flgPreOrPost" msprop:Generator_ColumnVarNameInTable="columnflgPreOrPost" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="BinIndex" msprop:Generator_ColumnPropNameInTable="BinIndexColumn" msprop:Generator_ColumnPropNameInRow="BinIndex" msprop:Generator_UserColumnName="BinIndex" msprop:Generator_ColumnVarNameInTable="columnBinIndex" type="xs:int" />
|
||||
<xs:element name="BinIndexChar" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="BinIndexCharColumn" msprop:Generator_ColumnPropNameInRow="BinIndexChar" msprop:Generator_UserColumnName="BinIndexChar" msprop:Generator_ColumnVarNameInTable="columnBinIndexChar" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="51" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ItemExtCode" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnItemExtCode" msprop:Generator_ColumnPropNameInRow="ItemExtCode" msprop:Generator_ColumnPropNameInTable="ItemExtCodeColumn" msprop:Generator_UserColumnName="ItemExtCode" minOccurs="0">
|
||||
<xs:element name="ItemExtCode" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="ItemExtCodeColumn" msprop:Generator_ColumnPropNameInRow="ItemExtCode" msprop:Generator_UserColumnName="ItemExtCode" msprop:Generator_ColumnVarNameInTable="columnItemExtCode" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ItemDesc" msprop:Generator_ColumnVarNameInTable="columnItemDesc" msprop:Generator_ColumnPropNameInRow="ItemDesc" msprop:Generator_ColumnPropNameInTable="ItemDescColumn" msprop:Generator_UserColumnName="ItemDesc" minOccurs="0">
|
||||
<xs:element name="ItemDesc" msprop:Generator_ColumnPropNameInTable="ItemDescColumn" msprop:Generator_ColumnPropNameInRow="ItemDesc" msprop:Generator_UserColumnName="ItemDesc" msprop:Generator_ColumnVarNameInTable="columnItemDesc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="BinDtmxRich" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnBinDtmxRich" msprop:Generator_ColumnPropNameInRow="BinDtmxRich" msprop:Generator_ColumnPropNameInTable="BinDtmxRichColumn" msprop:Generator_UserColumnName="BinDtmxRich" minOccurs="0">
|
||||
<xs:element name="BinDtmxRich" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="BinDtmxRichColumn" msprop:Generator_ColumnPropNameInRow="BinDtmxRich" msprop:Generator_UserColumnName="BinDtmxRich" msprop:Generator_ColumnVarNameInTable="columnBinDtmxRich" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="BinDtmx" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnBinDtmx" msprop:Generator_ColumnPropNameInRow="BinDtmx" msprop:Generator_ColumnPropNameInTable="BinDtmxColumn" msprop:Generator_UserColumnName="BinDtmx" minOccurs="0">
|
||||
<xs:element name="BinDtmx" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="BinDtmxColumn" msprop:Generator_ColumnPropNameInRow="BinDtmx" msprop:Generator_UserColumnName="BinDtmx" msprop:Generator_ColumnVarNameInTable="columnBinDtmx" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="BinDtmxProc" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnBinDtmxProc" msprop:Generator_ColumnPropNameInRow="BinDtmxProc" msprop:Generator_ColumnPropNameInTable="BinDtmxProcColumn" msprop:Generator_UserColumnName="BinDtmxProc" minOccurs="0">
|
||||
<xs:element name="BinDtmxProc" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="BinDtmxProcColumn" msprop:Generator_ColumnPropNameInRow="BinDtmxProc" msprop:Generator_UserColumnName="BinDtmxProc" msprop:Generator_ColumnVarNameInTable="columnBinDtmxProc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="TotItem" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnTotItem" msprop:Generator_ColumnPropNameInRow="TotItem" msprop:Generator_ColumnPropNameInTable="TotItemColumn" msprop:Generator_UserColumnName="TotItem" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="PathImageFull" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnPathImageFull" msprop:Generator_ColumnPropNameInRow="PathImageFull" msprop:Generator_ColumnPropNameInTable="PathImageFullColumn" msprop:Generator_UserColumnName="PathImageFull" minOccurs="0">
|
||||
<xs:element name="TotItem" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="TotItemColumn" msprop:Generator_ColumnPropNameInRow="TotItem" msprop:Generator_UserColumnName="TotItem" msprop:Generator_ColumnVarNameInTable="columnTotItem" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="PathImageFull" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="PathImageFullColumn" msprop:Generator_ColumnPropNameInRow="PathImageFull" msprop:Generator_UserColumnName="PathImageFull" msprop:Generator_ColumnVarNameInTable="columnPathImageFull" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="4000" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_UserColumnName="QRCodeBaseUrl" minOccurs="0">
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_UserColumnName="QRCodeBaseUrl" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="400" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="DueDate" msprop:Generator_ColumnVarNameInTable="columnDueDate" msprop:Generator_ColumnPropNameInRow="DueDate" msprop:Generator_ColumnPropNameInTable="DueDateColumn" msprop:Generator_UserColumnName="DueDate" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="DueDate" msprop:Generator_ColumnPropNameInTable="DueDateColumn" msprop:Generator_ColumnPropNameInRow="DueDate" msprop:Generator_UserColumnName="DueDate" msprop:Generator_ColumnVarNameInTable="columnDueDate" type="xs:dateTime" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="stp_prt_Part" msprop:Generator_TableClassName="stp_prt_PartDataTable" msprop:Generator_TableVarName="tablestp_prt_Part" msprop:Generator_TablePropName="stp_prt_Part" msprop:Generator_RowDeletingName="stp_prt_PartRowDeleting" msprop:Generator_RowChangingName="stp_prt_PartRowChanging" msprop:Generator_RowEvHandlerName="stp_prt_PartRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_PartRowDeleted" msprop:Generator_UserTableName="stp_prt_Part" msprop:Generator_RowChangedName="stp_prt_PartRowChanged" msprop:Generator_RowEvArgName="stp_prt_PartRowChangeEvent" msprop:Generator_RowClassName="stp_prt_PartRow">
|
||||
<xs:element name="stp_prt_Part" msprop:Generator_RowEvHandlerName="stp_prt_PartRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_PartRowDeleted" msprop:Generator_RowDeletingName="stp_prt_PartRowDeleting" msprop:Generator_RowEvArgName="stp_prt_PartRowChangeEvent" msprop:Generator_TablePropName="stp_prt_Part" msprop:Generator_RowChangedName="stp_prt_PartRowChanged" msprop:Generator_UserTableName="stp_prt_Part" msprop:Generator_RowChangingName="stp_prt_PartRowChanging" msprop:Generator_RowClassName="stp_prt_PartRow" msprop:Generator_TableClassName="stp_prt_PartDataTable" msprop:Generator_TableVarName="tablestp_prt_Part">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="ItemID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnItemID" msprop:Generator_ColumnPropNameInRow="ItemID" msprop:Generator_ColumnPropNameInTable="ItemIDColumn" msprop:Generator_UserColumnName="ItemID" type="xs:int" />
|
||||
<xs:element name="ItemDtmx" msprop:Generator_ColumnVarNameInTable="columnItemDtmx" msprop:Generator_ColumnPropNameInRow="ItemDtmx" msprop:Generator_ColumnPropNameInTable="ItemDtmxColumn" msprop:Generator_UserColumnName="ItemDtmx" minOccurs="0">
|
||||
<xs:element name="ItemID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInTable="ItemIDColumn" msprop:Generator_ColumnPropNameInRow="ItemID" msprop:Generator_UserColumnName="ItemID" msprop:Generator_ColumnVarNameInTable="columnItemID" type="xs:int" />
|
||||
<xs:element name="ItemDtmx" msprop:Generator_ColumnPropNameInTable="ItemDtmxColumn" msprop:Generator_ColumnPropNameInRow="ItemDtmx" msprop:Generator_UserColumnName="ItemDtmx" msprop:Generator_ColumnVarNameInTable="columnItemDtmx" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="Destination" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnDestination" msprop:Generator_ColumnPropNameInRow="Destination" msprop:Generator_ColumnPropNameInTable="DestinationColumn" msprop:Generator_UserColumnName="Destination" minOccurs="0">
|
||||
<xs:element name="Destination" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="DestinationColumn" msprop:Generator_ColumnPropNameInRow="Destination" msprop:Generator_UserColumnName="Destination" msprop:Generator_ColumnVarNameInTable="columnDestination" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_UserColumnName="QRCodeBaseUrl" minOccurs="0">
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_UserColumnName="QRCodeBaseUrl" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="400" />
|
||||
@@ -681,82 +739,90 @@ SELECT codPostazione, stampante, note FROM ElencoPostazioni WHERE (codPostazione
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="stp_prt_Cart" msprop:Generator_TableClassName="stp_prt_CartDataTable" msprop:Generator_TableVarName="tablestp_prt_Cart" msprop:Generator_TablePropName="stp_prt_Cart" msprop:Generator_RowDeletingName="stp_prt_CartRowDeleting" msprop:Generator_RowChangingName="stp_prt_CartRowChanging" msprop:Generator_RowEvHandlerName="stp_prt_CartRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_CartRowDeleted" msprop:Generator_UserTableName="stp_prt_Cart" msprop:Generator_RowChangedName="stp_prt_CartRowChanged" msprop:Generator_RowEvArgName="stp_prt_CartRowChangeEvent" msprop:Generator_RowClassName="stp_prt_CartRow">
|
||||
<xs:element name="stp_prt_Cart" msprop:Generator_RowEvHandlerName="stp_prt_CartRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_CartRowDeleted" msprop:Generator_RowDeletingName="stp_prt_CartRowDeleting" msprop:Generator_RowEvArgName="stp_prt_CartRowChangeEvent" msprop:Generator_TablePropName="stp_prt_Cart" msprop:Generator_RowChangedName="stp_prt_CartRowChanged" msprop:Generator_UserTableName="stp_prt_Cart" msprop:Generator_RowChangingName="stp_prt_CartRowChanging" msprop:Generator_RowClassName="stp_prt_CartRow" msprop:Generator_TableClassName="stp_prt_CartDataTable" msprop:Generator_TableVarName="tablestp_prt_Cart">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="BatchID" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnBatchID" msprop:Generator_ColumnPropNameInRow="BatchID" msprop:Generator_ColumnPropNameInTable="BatchIDColumn" msprop:Generator_UserColumnName="BatchID" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="CartID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnCartID" msprop:Generator_ColumnPropNameInRow="CartID" msprop:Generator_ColumnPropNameInTable="CartIDColumn" msprop:Generator_UserColumnName="CartID" type="xs:int" />
|
||||
<xs:element name="CartIndex" msprop:Generator_ColumnVarNameInTable="columnCartIndex" msprop:Generator_ColumnPropNameInRow="CartIndex" msprop:Generator_ColumnPropNameInTable="CartIndexColumn" msprop:Generator_UserColumnName="CartIndex" type="xs:int" />
|
||||
<xs:element name="CartDtmx" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnCartDtmx" msprop:Generator_ColumnPropNameInRow="CartDtmx" msprop:Generator_ColumnPropNameInTable="CartDtmxColumn" msprop:Generator_UserColumnName="CartDtmx" minOccurs="0">
|
||||
<xs:element name="BatchID" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="BatchIDColumn" msprop:Generator_ColumnPropNameInRow="BatchID" msprop:Generator_UserColumnName="BatchID" msprop:Generator_ColumnVarNameInTable="columnBatchID" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="CartID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInTable="CartIDColumn" msprop:Generator_ColumnPropNameInRow="CartID" msprop:Generator_UserColumnName="CartID" msprop:Generator_ColumnVarNameInTable="columnCartID" type="xs:int" />
|
||||
<xs:element name="CartIndex" msprop:Generator_ColumnPropNameInTable="CartIndexColumn" msprop:Generator_ColumnPropNameInRow="CartIndex" msprop:Generator_UserColumnName="CartIndex" msprop:Generator_ColumnVarNameInTable="columnCartIndex" type="xs:int" />
|
||||
<xs:element name="CartDtmx" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="CartDtmxColumn" msprop:Generator_ColumnPropNameInRow="CartDtmx" msprop:Generator_UserColumnName="CartDtmx" msprop:Generator_ColumnVarNameInTable="columnCartDtmx" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="OrderExtCode" msprop:Generator_ColumnVarNameInTable="columnOrderExtCode" msprop:Generator_ColumnPropNameInRow="OrderExtCode" msprop:Generator_ColumnPropNameInTable="OrderExtCodeColumn" msprop:Generator_UserColumnName="OrderExtCode" minOccurs="0">
|
||||
<xs:element name="OrderExtCode" msprop:Generator_ColumnPropNameInTable="OrderExtCodeColumn" msprop:Generator_ColumnPropNameInRow="OrderExtCode" msprop:Generator_UserColumnName="OrderExtCode" msprop:Generator_ColumnVarNameInTable="columnOrderExtCode" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="FamilyCode" msprop:Generator_ColumnVarNameInTable="columnFamilyCode" msprop:Generator_ColumnPropNameInRow="FamilyCode" msprop:Generator_ColumnPropNameInTable="FamilyCodeColumn" msprop:Generator_UserColumnName="FamilyCode" minOccurs="0">
|
||||
<xs:element name="FamilyCode" msprop:Generator_ColumnPropNameInTable="FamilyCodeColumn" msprop:Generator_ColumnPropNameInRow="FamilyCode" msprop:Generator_UserColumnName="FamilyCode" msprop:Generator_ColumnVarNameInTable="columnFamilyCode" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="TotKit" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnTotKit" msprop:Generator_ColumnPropNameInRow="TotKit" msprop:Generator_ColumnPropNameInTable="TotKitColumn" msprop:Generator_UserColumnName="TotKit" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_UserColumnName="QRCodeBaseUrl" minOccurs="0">
|
||||
<xs:element name="TotKit" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="TotKitColumn" msprop:Generator_ColumnPropNameInRow="TotKit" msprop:Generator_UserColumnName="TotKit" msprop:Generator_ColumnVarNameInTable="columnTotKit" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_UserColumnName="QRCodeBaseUrl" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="400" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="DueDate" msprop:Generator_ColumnVarNameInTable="columnDueDate" msprop:Generator_ColumnPropNameInRow="DueDate" msprop:Generator_ColumnPropNameInTable="DueDateColumn" msprop:Generator_UserColumnName="DueDate" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="DueDate" msprop:Generator_ColumnPropNameInTable="DueDateColumn" msprop:Generator_ColumnPropNameInRow="DueDate" msprop:Generator_UserColumnName="DueDate" msprop:Generator_ColumnVarNameInTable="columnDueDate" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="OrdParent" msprop:Generator_ColumnPropNameInTable="OrdParentColumn" msprop:Generator_ColumnPropNameInRow="OrdParent" msprop:Generator_UserColumnName="OrdParent" msprop:Generator_ColumnVarNameInTable="columnOrdParent" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="AtoReqDate" msprop:Generator_ColumnPropNameInTable="AtoReqDateColumn" msprop:Generator_ColumnPropNameInRow="AtoReqDate" msprop:Generator_UserColumnName="AtoReqDate" msprop:Generator_ColumnVarNameInTable="columnAtoReqDate" type="xs:dateTime" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="stp_prt_BunkGroup" msprop:Generator_TableClassName="stp_prt_BunkGroupDataTable" msprop:Generator_TableVarName="tablestp_prt_BunkGroup" msprop:Generator_TablePropName="stp_prt_BunkGroup" msprop:Generator_RowDeletingName="stp_prt_BunkGroupRowDeleting" msprop:Generator_RowChangingName="stp_prt_BunkGroupRowChanging" msprop:Generator_RowEvHandlerName="stp_prt_BunkGroupRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_BunkGroupRowDeleted" msprop:Generator_UserTableName="stp_prt_BunkGroup" msprop:Generator_RowChangedName="stp_prt_BunkGroupRowChanged" msprop:Generator_RowEvArgName="stp_prt_BunkGroupRowChangeEvent" msprop:Generator_RowClassName="stp_prt_BunkGroupRow">
|
||||
<xs:element name="stp_prt_BunkGroup" msprop:Generator_RowEvHandlerName="stp_prt_BunkGroupRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_BunkGroupRowDeleted" msprop:Generator_RowDeletingName="stp_prt_BunkGroupRowDeleting" msprop:Generator_RowEvArgName="stp_prt_BunkGroupRowChangeEvent" msprop:Generator_TablePropName="stp_prt_BunkGroup" msprop:Generator_RowChangedName="stp_prt_BunkGroupRowChanged" msprop:Generator_UserTableName="stp_prt_BunkGroup" msprop:Generator_RowChangingName="stp_prt_BunkGroupRowChanging" msprop:Generator_RowClassName="stp_prt_BunkGroupRow" msprop:Generator_TableClassName="stp_prt_BunkGroupDataTable" msprop:Generator_TableVarName="tablestp_prt_BunkGroup">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="StackIndex" msprop:Generator_ColumnVarNameInTable="columnStackIndex" msprop:Generator_ColumnPropNameInRow="StackIndex" msprop:Generator_ColumnPropNameInTable="StackIndexColumn" msprop:Generator_UserColumnName="StackIndex" type="xs:int" />
|
||||
<xs:element name="StackDtmx" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnStackDtmx" msprop:Generator_ColumnPropNameInRow="StackDtmx" msprop:Generator_ColumnPropNameInTable="StackDtmxColumn" msprop:Generator_UserColumnName="StackDtmx" minOccurs="0">
|
||||
<xs:element name="StackIndex" msprop:Generator_ColumnPropNameInTable="StackIndexColumn" msprop:Generator_ColumnPropNameInRow="StackIndex" msprop:Generator_UserColumnName="StackIndex" msprop:Generator_ColumnVarNameInTable="columnStackIndex" type="xs:int" />
|
||||
<xs:element name="StackDtmx" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="StackDtmxColumn" msprop:Generator_ColumnPropNameInRow="StackDtmx" msprop:Generator_UserColumnName="StackDtmx" msprop:Generator_ColumnVarNameInTable="columnStackDtmx" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="Prepared" msprop:Generator_ColumnVarNameInTable="columnPrepared" msprop:Generator_ColumnPropNameInRow="Prepared" msprop:Generator_ColumnPropNameInTable="PreparedColumn" msprop:Generator_UserColumnName="Prepared" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="DueDate" msprop:Generator_ColumnVarNameInTable="columnDueDate" msprop:Generator_ColumnPropNameInRow="DueDate" msprop:Generator_ColumnPropNameInTable="DueDateColumn" msprop:Generator_UserColumnName="DueDate" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="MatExtCode" msprop:Generator_ColumnVarNameInTable="columnMatExtCode" msprop:Generator_ColumnPropNameInRow="MatExtCode" msprop:Generator_ColumnPropNameInTable="MatExtCodeColumn" msprop:Generator_UserColumnName="MatExtCode" type="xs:int" />
|
||||
<xs:element name="MatDesc" msprop:Generator_ColumnVarNameInTable="columnMatDesc" msprop:Generator_ColumnPropNameInRow="MatDesc" msprop:Generator_ColumnPropNameInTable="MatDescColumn" msprop:Generator_UserColumnName="MatDesc">
|
||||
<xs:element name="Prepared" msprop:Generator_ColumnPropNameInTable="PreparedColumn" msprop:Generator_ColumnPropNameInRow="Prepared" msprop:Generator_UserColumnName="Prepared" msprop:Generator_ColumnVarNameInTable="columnPrepared" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="DueDate" msprop:Generator_ColumnPropNameInTable="DueDateColumn" msprop:Generator_ColumnPropNameInRow="DueDate" msprop:Generator_UserColumnName="DueDate" msprop:Generator_ColumnVarNameInTable="columnDueDate" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="MatExtCode" msprop:Generator_ColumnPropNameInTable="MatExtCodeColumn" msprop:Generator_ColumnPropNameInRow="MatExtCode" msprop:Generator_UserColumnName="MatExtCode" msprop:Generator_ColumnVarNameInTable="columnMatExtCode" type="xs:int" />
|
||||
<xs:element name="MatDesc" msprop:Generator_ColumnPropNameInTable="MatDescColumn" msprop:Generator_ColumnPropNameInRow="MatDesc" msprop:Generator_UserColumnName="MatDesc" msprop:Generator_ColumnVarNameInTable="columnMatDesc">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="SheetIndexMax" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnSheetIndexMax" msprop:Generator_ColumnPropNameInRow="SheetIndexMax" msprop:Generator_ColumnPropNameInTable="SheetIndexMaxColumn" msprop:Generator_UserColumnName="SheetIndexMax" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="SheetSequ" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnSheetSequ" msprop:Generator_ColumnPropNameInRow="SheetSequ" msprop:Generator_ColumnPropNameInTable="SheetSequColumn" msprop:Generator_UserColumnName="SheetSequ" minOccurs="0">
|
||||
<xs:element name="SheetIndexMax" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="SheetIndexMaxColumn" msprop:Generator_ColumnPropNameInRow="SheetIndexMax" msprop:Generator_UserColumnName="SheetIndexMax" msprop:Generator_ColumnVarNameInTable="columnSheetIndexMax" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="SheetSequ" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="SheetSequColumn" msprop:Generator_ColumnPropNameInRow="SheetSequ" msprop:Generator_UserColumnName="SheetSequ" msprop:Generator_ColumnVarNameInTable="columnSheetSequ" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="9" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="SheetTot" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnSheetTot" msprop:Generator_ColumnPropNameInRow="SheetTot" msprop:Generator_ColumnPropNameInTable="SheetTotColumn" msprop:Generator_UserColumnName="SheetTot" minOccurs="0">
|
||||
<xs:element name="SheetTot" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="SheetTotColumn" msprop:Generator_ColumnPropNameInRow="SheetTot" msprop:Generator_UserColumnName="SheetTot" msprop:Generator_ColumnVarNameInTable="columnSheetTot" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="5" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_UserColumnName="QRCodeBaseUrl" minOccurs="0">
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_UserColumnName="QRCodeBaseUrl" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="400" />
|
||||
@@ -766,46 +832,46 @@ SELECT codPostazione, stampante, note FROM ElencoPostazioni WHERE (codPostazione
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="stp_prt_OtherPart" msprop:Generator_TableClassName="stp_prt_OtherPartDataTable" msprop:Generator_TableVarName="tablestp_prt_OtherPart" msprop:Generator_RowChangedName="stp_prt_OtherPartRowChanged" msprop:Generator_TablePropName="stp_prt_OtherPart" msprop:Generator_RowDeletingName="stp_prt_OtherPartRowDeleting" msprop:Generator_RowChangingName="stp_prt_OtherPartRowChanging" msprop:Generator_RowEvHandlerName="stp_prt_OtherPartRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_OtherPartRowDeleted" msprop:Generator_RowClassName="stp_prt_OtherPartRow" msprop:Generator_UserTableName="stp_prt_OtherPart" msprop:Generator_RowEvArgName="stp_prt_OtherPartRowChangeEvent">
|
||||
<xs:element name="stp_prt_OtherPart" msprop:Generator_RowEvHandlerName="stp_prt_OtherPartRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_OtherPartRowDeleted" msprop:Generator_RowDeletingName="stp_prt_OtherPartRowDeleting" msprop:Generator_RowEvArgName="stp_prt_OtherPartRowChangeEvent" msprop:Generator_TablePropName="stp_prt_OtherPart" msprop:Generator_RowChangedName="stp_prt_OtherPartRowChanged" msprop:Generator_UserTableName="stp_prt_OtherPart" msprop:Generator_RowChangingName="stp_prt_OtherPartRowChanging" msprop:Generator_RowClassName="stp_prt_OtherPartRow" msprop:Generator_TableClassName="stp_prt_OtherPartDataTable" msprop:Generator_TableVarName="tablestp_prt_OtherPart">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="OtherItemID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnOtherItemID" msprop:Generator_ColumnPropNameInRow="OtherItemID" msprop:Generator_ColumnPropNameInTable="OtherItemIDColumn" msprop:Generator_UserColumnName="OtherItemID" type="xs:int" />
|
||||
<xs:element name="OtherItemExtCode" msprop:Generator_ColumnVarNameInTable="columnOtherItemExtCode" msprop:Generator_ColumnPropNameInRow="OtherItemExtCode" msprop:Generator_ColumnPropNameInTable="OtherItemExtCodeColumn" msprop:Generator_UserColumnName="OtherItemExtCode">
|
||||
<xs:element name="OtherItemID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInTable="OtherItemIDColumn" msprop:Generator_ColumnPropNameInRow="OtherItemID" msprop:Generator_UserColumnName="OtherItemID" msprop:Generator_ColumnVarNameInTable="columnOtherItemID" type="xs:int" />
|
||||
<xs:element name="OtherItemExtCode" msprop:Generator_ColumnPropNameInTable="OtherItemExtCodeColumn" msprop:Generator_ColumnPropNameInRow="OtherItemExtCode" msprop:Generator_UserColumnName="OtherItemExtCode" msprop:Generator_ColumnVarNameInTable="columnOtherItemExtCode">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="OtherItemDesc" msprop:Generator_ColumnVarNameInTable="columnOtherItemDesc" msprop:Generator_ColumnPropNameInRow="OtherItemDesc" msprop:Generator_ColumnPropNameInTable="OtherItemDescColumn" msprop:Generator_UserColumnName="OtherItemDesc">
|
||||
<xs:element name="OtherItemDesc" msprop:Generator_ColumnPropNameInTable="OtherItemDescColumn" msprop:Generator_ColumnPropNameInRow="OtherItemDesc" msprop:Generator_UserColumnName="OtherItemDesc" msprop:Generator_ColumnVarNameInTable="columnOtherItemDesc">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="OtherItemDtmx" msprop:Generator_ColumnVarNameInTable="columnOtherItemDtmx" msprop:Generator_ColumnPropNameInRow="OtherItemDtmx" msprop:Generator_ColumnPropNameInTable="OtherItemDtmxColumn" msprop:Generator_UserColumnName="OtherItemDtmx" minOccurs="0">
|
||||
<xs:element name="OtherItemDtmx" msprop:Generator_ColumnPropNameInTable="OtherItemDtmxColumn" msprop:Generator_ColumnPropNameInRow="OtherItemDtmx" msprop:Generator_UserColumnName="OtherItemDtmx" msprop:Generator_ColumnVarNameInTable="columnOtherItemDtmx" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="OtherItemType" msprop:Generator_ColumnVarNameInTable="columnOtherItemType" msprop:Generator_ColumnPropNameInRow="OtherItemType" msprop:Generator_ColumnPropNameInTable="OtherItemTypeColumn" msprop:Generator_UserColumnName="OtherItemType">
|
||||
<xs:element name="OtherItemType" msprop:Generator_ColumnPropNameInTable="OtherItemTypeColumn" msprop:Generator_ColumnPropNameInRow="OtherItemType" msprop:Generator_UserColumnName="OtherItemType" msprop:Generator_ColumnVarNameInTable="columnOtherItemType">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="OtherItemNote" msprop:Generator_ColumnVarNameInTable="columnOtherItemNote" msprop:Generator_ColumnPropNameInRow="OtherItemNote" msprop:Generator_ColumnPropNameInTable="OtherItemNoteColumn" msprop:Generator_UserColumnName="OtherItemNote">
|
||||
<xs:element name="OtherItemNote" msprop:Generator_ColumnPropNameInTable="OtherItemNoteColumn" msprop:Generator_ColumnPropNameInRow="OtherItemNote" msprop:Generator_UserColumnName="OtherItemNote" msprop:Generator_ColumnVarNameInTable="columnOtherItemNote">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_UserColumnName="QRCodeBaseUrl" minOccurs="0">
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_UserColumnName="QRCodeBaseUrl" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="400" />
|
||||
@@ -815,77 +881,77 @@ SELECT codPostazione, stampante, note FROM ElencoPostazioni WHERE (codPostazione
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="stp_prt_IRK" msprop:Generator_TableClassName="stp_prt_IRKDataTable" msprop:Generator_TableVarName="tablestp_prt_IRK" msprop:Generator_RowChangedName="stp_prt_IRKRowChanged" msprop:Generator_TablePropName="stp_prt_IRK" msprop:Generator_RowDeletingName="stp_prt_IRKRowDeleting" msprop:Generator_RowChangingName="stp_prt_IRKRowChanging" msprop:Generator_RowEvHandlerName="stp_prt_IRKRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_IRKRowDeleted" msprop:Generator_RowClassName="stp_prt_IRKRow" msprop:Generator_UserTableName="stp_prt_IRK" msprop:Generator_RowEvArgName="stp_prt_IRKRowChangeEvent">
|
||||
<xs:element name="stp_prt_IRK" msprop:Generator_RowEvHandlerName="stp_prt_IRKRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_IRKRowDeleted" msprop:Generator_RowDeletingName="stp_prt_IRKRowDeleting" msprop:Generator_RowEvArgName="stp_prt_IRKRowChangeEvent" msprop:Generator_TablePropName="stp_prt_IRK" msprop:Generator_RowChangedName="stp_prt_IRKRowChanged" msprop:Generator_UserTableName="stp_prt_IRK" msprop:Generator_RowChangingName="stp_prt_IRKRowChanging" msprop:Generator_RowClassName="stp_prt_IRKRow" msprop:Generator_TableClassName="stp_prt_IRKDataTable" msprop:Generator_TableVarName="tablestp_prt_IRK">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="OrderExtCode" msprop:Generator_ColumnVarNameInTable="columnOrderExtCode" msprop:Generator_ColumnPropNameInRow="OrderExtCode" msprop:Generator_ColumnPropNameInTable="OrderExtCodeColumn" msprop:Generator_UserColumnName="OrderExtCode">
|
||||
<xs:element name="OrderExtCode" msprop:Generator_ColumnPropNameInTable="OrderExtCodeColumn" msprop:Generator_ColumnPropNameInRow="OrderExtCode" msprop:Generator_UserColumnName="OrderExtCode" msprop:Generator_ColumnVarNameInTable="columnOrderExtCode">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="CartDtmx" msprop:Generator_ColumnVarNameInTable="columnCartDtmx" msprop:Generator_ColumnPropNameInRow="CartDtmx" msprop:Generator_ColumnPropNameInTable="CartDtmxColumn" msprop:Generator_UserColumnName="CartDtmx">
|
||||
<xs:element name="CartDtmx" msprop:Generator_ColumnPropNameInTable="CartDtmxColumn" msprop:Generator_ColumnPropNameInRow="CartDtmx" msprop:Generator_UserColumnName="CartDtmx" msprop:Generator_ColumnVarNameInTable="columnCartDtmx">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="KitExtCode" msprop:Generator_ColumnVarNameInTable="columnKitExtCode" msprop:Generator_ColumnPropNameInRow="KitExtCode" msprop:Generator_ColumnPropNameInTable="KitExtCodeColumn" msprop:Generator_UserColumnName="KitExtCode" minOccurs="0">
|
||||
<xs:element name="KitExtCode" msprop:Generator_ColumnPropNameInTable="KitExtCodeColumn" msprop:Generator_ColumnPropNameInRow="KitExtCode" msprop:Generator_UserColumnName="KitExtCode" msprop:Generator_ColumnVarNameInTable="columnKitExtCode" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="StatusDesc" msprop:Generator_ColumnVarNameInTable="columnStatusDesc" msprop:Generator_ColumnPropNameInRow="StatusDesc" msprop:Generator_ColumnPropNameInTable="StatusDescColumn" msprop:Generator_UserColumnName="StatusDesc">
|
||||
<xs:element name="StatusDesc" msprop:Generator_ColumnPropNameInTable="StatusDescColumn" msprop:Generator_ColumnPropNameInRow="StatusDesc" msprop:Generator_UserColumnName="StatusDesc" msprop:Generator_ColumnVarNameInTable="columnStatusDesc">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ItemDtmx" msprop:Generator_ColumnVarNameInTable="columnItemDtmx" msprop:Generator_ColumnPropNameInRow="ItemDtmx" msprop:Generator_ColumnPropNameInTable="ItemDtmxColumn" msprop:Generator_UserColumnName="ItemDtmx">
|
||||
<xs:element name="ItemDtmx" msprop:Generator_ColumnPropNameInTable="ItemDtmxColumn" msprop:Generator_ColumnPropNameInRow="ItemDtmx" msprop:Generator_UserColumnName="ItemDtmx" msprop:Generator_ColumnVarNameInTable="columnItemDtmx">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ItemExtCode" msprop:Generator_ColumnVarNameInTable="columnItemExtCode" msprop:Generator_ColumnPropNameInRow="ItemExtCode" msprop:Generator_ColumnPropNameInTable="ItemExtCodeColumn" msprop:Generator_UserColumnName="ItemExtCode">
|
||||
<xs:element name="ItemExtCode" msprop:Generator_ColumnPropNameInTable="ItemExtCodeColumn" msprop:Generator_ColumnPropNameInRow="ItemExtCode" msprop:Generator_UserColumnName="ItemExtCode" msprop:Generator_ColumnVarNameInTable="columnItemExtCode">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ItemDesc" msprop:Generator_ColumnVarNameInTable="columnItemDesc" msprop:Generator_ColumnPropNameInRow="ItemDesc" msprop:Generator_ColumnPropNameInTable="ItemDescColumn" msprop:Generator_UserColumnName="ItemDesc">
|
||||
<xs:element name="ItemDesc" msprop:Generator_ColumnPropNameInTable="ItemDescColumn" msprop:Generator_ColumnPropNameInRow="ItemDesc" msprop:Generator_UserColumnName="ItemDesc" msprop:Generator_ColumnVarNameInTable="columnItemDesc">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ItemNote" msprop:Generator_ColumnVarNameInTable="columnItemNote" msprop:Generator_ColumnPropNameInRow="ItemNote" msprop:Generator_ColumnPropNameInTable="ItemNoteColumn" msprop:Generator_UserColumnName="ItemNote">
|
||||
<xs:element name="ItemNote" msprop:Generator_ColumnPropNameInTable="ItemNoteColumn" msprop:Generator_ColumnPropNameInRow="ItemNote" msprop:Generator_UserColumnName="ItemNote" msprop:Generator_ColumnVarNameInTable="columnItemNote">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="QtyReq" msprop:Generator_ColumnVarNameInTable="columnQtyReq" msprop:Generator_ColumnPropNameInRow="QtyReq" msprop:Generator_ColumnPropNameInTable="QtyReqColumn" msprop:Generator_UserColumnName="QtyReq" type="xs:int" />
|
||||
<xs:element name="QtyCur" msprop:Generator_ColumnVarNameInTable="columnQtyCur" msprop:Generator_ColumnPropNameInRow="QtyCur" msprop:Generator_ColumnPropNameInTable="QtyCurColumn" msprop:Generator_UserColumnName="QtyCur" type="xs:int" />
|
||||
<xs:element name="MatExtCode" msprop:Generator_ColumnVarNameInTable="columnMatExtCode" msprop:Generator_ColumnPropNameInRow="MatExtCode" msprop:Generator_ColumnPropNameInTable="MatExtCodeColumn" msprop:Generator_UserColumnName="MatExtCode" type="xs:int" />
|
||||
<xs:element name="MatDesc" msprop:Generator_ColumnVarNameInTable="columnMatDesc" msprop:Generator_ColumnPropNameInRow="MatDesc" msprop:Generator_ColumnPropNameInTable="MatDescColumn" msprop:Generator_UserColumnName="MatDesc">
|
||||
<xs:element name="QtyReq" msprop:Generator_ColumnPropNameInTable="QtyReqColumn" msprop:Generator_ColumnPropNameInRow="QtyReq" msprop:Generator_UserColumnName="QtyReq" msprop:Generator_ColumnVarNameInTable="columnQtyReq" type="xs:int" />
|
||||
<xs:element name="QtyCur" msprop:Generator_ColumnPropNameInTable="QtyCurColumn" msprop:Generator_ColumnPropNameInRow="QtyCur" msprop:Generator_UserColumnName="QtyCur" msprop:Generator_ColumnVarNameInTable="columnQtyCur" type="xs:int" />
|
||||
<xs:element name="MatExtCode" msprop:Generator_ColumnPropNameInTable="MatExtCodeColumn" msprop:Generator_ColumnPropNameInRow="MatExtCode" msprop:Generator_UserColumnName="MatExtCode" msprop:Generator_ColumnVarNameInTable="columnMatExtCode" type="xs:int" />
|
||||
<xs:element name="MatDesc" msprop:Generator_ColumnPropNameInTable="MatDescColumn" msprop:Generator_ColumnPropNameInRow="MatDesc" msprop:Generator_UserColumnName="MatDesc" msprop:Generator_ColumnVarNameInTable="columnMatDesc">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="OnCartDate" msprop:Generator_ColumnVarNameInTable="columnOnCartDate" msprop:Generator_ColumnPropNameInRow="OnCartDate" msprop:Generator_ColumnPropNameInTable="OnCartDateColumn" msprop:Generator_UserColumnName="OnCartDate" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_UserColumnName="QRCodeBaseUrl" minOccurs="0">
|
||||
<xs:element name="OnCartDate" msprop:Generator_ColumnPropNameInTable="OnCartDateColumn" msprop:Generator_ColumnPropNameInRow="OnCartDate" msprop:Generator_UserColumnName="OnCartDate" msprop:Generator_ColumnVarNameInTable="columnOnCartDate" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_UserColumnName="QRCodeBaseUrl" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="400" />
|
||||
@@ -895,55 +961,55 @@ SELECT codPostazione, stampante, note FROM ElencoPostazioni WHERE (codPostazione
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="stp_prt_IRK_Sum" msprop:Generator_TableClassName="stp_prt_IRK_SumDataTable" msprop:Generator_TableVarName="tablestp_prt_IRK_Sum" msprop:Generator_RowChangedName="stp_prt_IRK_SumRowChanged" msprop:Generator_TablePropName="stp_prt_IRK_Sum" msprop:Generator_RowDeletingName="stp_prt_IRK_SumRowDeleting" msprop:Generator_RowChangingName="stp_prt_IRK_SumRowChanging" msprop:Generator_RowEvHandlerName="stp_prt_IRK_SumRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_IRK_SumRowDeleted" msprop:Generator_RowClassName="stp_prt_IRK_SumRow" msprop:Generator_UserTableName="stp_prt_IRK_Sum" msprop:Generator_RowEvArgName="stp_prt_IRK_SumRowChangeEvent">
|
||||
<xs:element name="stp_prt_IRK_Sum" msprop:Generator_RowEvHandlerName="stp_prt_IRK_SumRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_IRK_SumRowDeleted" msprop:Generator_RowDeletingName="stp_prt_IRK_SumRowDeleting" msprop:Generator_RowEvArgName="stp_prt_IRK_SumRowChangeEvent" msprop:Generator_TablePropName="stp_prt_IRK_Sum" msprop:Generator_RowChangedName="stp_prt_IRK_SumRowChanged" msprop:Generator_UserTableName="stp_prt_IRK_Sum" msprop:Generator_RowChangingName="stp_prt_IRK_SumRowChanging" msprop:Generator_RowClassName="stp_prt_IRK_SumRow" msprop:Generator_TableClassName="stp_prt_IRK_SumDataTable" msprop:Generator_TableVarName="tablestp_prt_IRK_Sum">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="OrderExtCode" msprop:Generator_ColumnVarNameInTable="columnOrderExtCode" msprop:Generator_ColumnPropNameInRow="OrderExtCode" msprop:Generator_ColumnPropNameInTable="OrderExtCodeColumn" msprop:Generator_UserColumnName="OrderExtCode">
|
||||
<xs:element name="OrderExtCode" msprop:Generator_ColumnPropNameInTable="OrderExtCodeColumn" msprop:Generator_ColumnPropNameInRow="OrderExtCode" msprop:Generator_UserColumnName="OrderExtCode" msprop:Generator_ColumnVarNameInTable="columnOrderExtCode">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="CartDtmx" msprop:Generator_ColumnVarNameInTable="columnCartDtmx" msprop:Generator_ColumnPropNameInRow="CartDtmx" msprop:Generator_ColumnPropNameInTable="CartDtmxColumn" msprop:Generator_UserColumnName="CartDtmx" minOccurs="0">
|
||||
<xs:element name="CartDtmx" msprop:Generator_ColumnPropNameInTable="CartDtmxColumn" msprop:Generator_ColumnPropNameInRow="CartDtmx" msprop:Generator_UserColumnName="CartDtmx" msprop:Generator_ColumnVarNameInTable="columnCartDtmx" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ItemExtCode" msprop:Generator_ColumnVarNameInTable="columnItemExtCode" msprop:Generator_ColumnPropNameInRow="ItemExtCode" msprop:Generator_ColumnPropNameInTable="ItemExtCodeColumn" msprop:Generator_UserColumnName="ItemExtCode">
|
||||
<xs:element name="ItemExtCode" msprop:Generator_ColumnPropNameInTable="ItemExtCodeColumn" msprop:Generator_ColumnPropNameInRow="ItemExtCode" msprop:Generator_UserColumnName="ItemExtCode" msprop:Generator_ColumnVarNameInTable="columnItemExtCode">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ItemDesc" msprop:Generator_ColumnVarNameInTable="columnItemDesc" msprop:Generator_ColumnPropNameInRow="ItemDesc" msprop:Generator_ColumnPropNameInTable="ItemDescColumn" msprop:Generator_UserColumnName="ItemDesc">
|
||||
<xs:element name="ItemDesc" msprop:Generator_ColumnPropNameInTable="ItemDescColumn" msprop:Generator_ColumnPropNameInRow="ItemDesc" msprop:Generator_UserColumnName="ItemDesc" msprop:Generator_ColumnVarNameInTable="columnItemDesc">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ItemNote" msprop:Generator_ColumnVarNameInTable="columnItemNote" msprop:Generator_ColumnPropNameInRow="ItemNote" msprop:Generator_ColumnPropNameInTable="ItemNoteColumn" msprop:Generator_UserColumnName="ItemNote">
|
||||
<xs:element name="ItemNote" msprop:Generator_ColumnPropNameInTable="ItemNoteColumn" msprop:Generator_ColumnPropNameInRow="ItemNote" msprop:Generator_UserColumnName="ItemNote" msprop:Generator_ColumnVarNameInTable="columnItemNote">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="TotReq" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnTotReq" msprop:Generator_ColumnPropNameInRow="TotReq" msprop:Generator_ColumnPropNameInTable="TotReqColumn" msprop:Generator_UserColumnName="TotReq" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="TotCur" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnTotCur" msprop:Generator_ColumnPropNameInRow="TotCur" msprop:Generator_ColumnPropNameInTable="TotCurColumn" msprop:Generator_UserColumnName="TotCur" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="MatExtCode" msprop:Generator_ColumnVarNameInTable="columnMatExtCode" msprop:Generator_ColumnPropNameInRow="MatExtCode" msprop:Generator_ColumnPropNameInTable="MatExtCodeColumn" msprop:Generator_UserColumnName="MatExtCode" type="xs:int" />
|
||||
<xs:element name="MatDesc" msprop:Generator_ColumnVarNameInTable="columnMatDesc" msprop:Generator_ColumnPropNameInRow="MatDesc" msprop:Generator_ColumnPropNameInTable="MatDescColumn" msprop:Generator_UserColumnName="MatDesc">
|
||||
<xs:element name="TotReq" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="TotReqColumn" msprop:Generator_ColumnPropNameInRow="TotReq" msprop:Generator_UserColumnName="TotReq" msprop:Generator_ColumnVarNameInTable="columnTotReq" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="TotCur" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="TotCurColumn" msprop:Generator_ColumnPropNameInRow="TotCur" msprop:Generator_UserColumnName="TotCur" msprop:Generator_ColumnVarNameInTable="columnTotCur" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="MatExtCode" msprop:Generator_ColumnPropNameInTable="MatExtCodeColumn" msprop:Generator_ColumnPropNameInRow="MatExtCode" msprop:Generator_UserColumnName="MatExtCode" msprop:Generator_ColumnVarNameInTable="columnMatExtCode" type="xs:int" />
|
||||
<xs:element name="MatDesc" msprop:Generator_ColumnPropNameInTable="MatDescColumn" msprop:Generator_ColumnPropNameInRow="MatDesc" msprop:Generator_UserColumnName="MatDesc" msprop:Generator_ColumnVarNameInTable="columnMatDesc">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_UserColumnName="QRCodeBaseUrl" minOccurs="0">
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_UserColumnName="QRCodeBaseUrl" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="400" />
|
||||
@@ -953,6 +1019,119 @@ SELECT codPostazione, stampante, note FROM ElencoPostazioni WHERE (codPostazione
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="stp_prt_Remnant" msprop:Generator_RowEvHandlerName="stp_prt_RemnantRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_RemnantRowDeleted" msprop:Generator_RowDeletingName="stp_prt_RemnantRowDeleting" msprop:Generator_RowEvArgName="stp_prt_RemnantRowChangeEvent" msprop:Generator_TablePropName="stp_prt_Remnant" msprop:Generator_RowChangedName="stp_prt_RemnantRowChanged" msprop:Generator_UserTableName="stp_prt_Remnant" msprop:Generator_RowChangingName="stp_prt_RemnantRowChanging" msprop:Generator_RowClassName="stp_prt_RemnantRow" msprop:Generator_TableClassName="stp_prt_RemnantDataTable" msprop:Generator_TableVarName="tablestp_prt_Remnant">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_UserColumnName="QRCodeBaseUrl" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="400" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="CodRemnant" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="CodRemnantColumn" msprop:Generator_ColumnPropNameInRow="CodRemnant" msprop:Generator_UserColumnName="CodRemnant" msprop:Generator_ColumnVarNameInTable="columnCodRemnant" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="522" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="DescRemnant01" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="DescRemnant01Column" msprop:Generator_ColumnPropNameInRow="DescRemnant01" msprop:Generator_UserColumnName="DescRemnant01" msprop:Generator_ColumnVarNameInTable="columnDescRemnant01" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="551" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="DescRemnant02" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="DescRemnant02Column" msprop:Generator_ColumnPropNameInRow="DescRemnant02" msprop:Generator_UserColumnName="DescRemnant02" msprop:Generator_ColumnVarNameInTable="columnDescRemnant02" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="152" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="stp_prt_SpecialPart" msprop:Generator_RowEvHandlerName="stp_prt_SpecialPartRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_SpecialPartRowDeleted" msprop:Generator_RowDeletingName="stp_prt_SpecialPartRowDeleting" msprop:Generator_RowEvArgName="stp_prt_SpecialPartRowChangeEvent" msprop:Generator_TablePropName="stp_prt_SpecialPart" msprop:Generator_RowChangedName="stp_prt_SpecialPartRowChanged" msprop:Generator_UserTableName="stp_prt_SpecialPart" msprop:Generator_RowChangingName="stp_prt_SpecialPartRowChanging" msprop:Generator_RowClassName="stp_prt_SpecialPartRow" msprop:Generator_TableClassName="stp_prt_SpecialPartDataTable" msprop:Generator_TableVarName="tablestp_prt_SpecialPart">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="DocID" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="DocIDColumn" msprop:Generator_ColumnPropNameInRow="DocID" msprop:Generator_UserColumnName="DocID" msprop:Generator_ColumnVarNameInTable="columnDocID" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="5" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="DocDtmx" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="DocDtmxColumn" msprop:Generator_ColumnPropNameInRow="DocDtmx" msprop:Generator_UserColumnName="DocDtmx" msprop:Generator_ColumnVarNameInTable="columnDocDtmx" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="1340" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ItemExtCode" msprop:Generator_ColumnPropNameInTable="ItemExtCodeColumn" msprop:Generator_ColumnPropNameInRow="ItemExtCode" msprop:Generator_UserColumnName="ItemExtCode" msprop:Generator_ColumnVarNameInTable="columnItemExtCode">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="250" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ItemDesc" msprop:Generator_ColumnPropNameInTable="ItemDescColumn" msprop:Generator_ColumnPropNameInRow="ItemDesc" msprop:Generator_UserColumnName="ItemDesc" msprop:Generator_ColumnVarNameInTable="columnItemDesc">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="DueDate" msprop:Generator_ColumnPropNameInTable="DueDateColumn" msprop:Generator_ColumnPropNameInRow="DueDate" msprop:Generator_UserColumnName="DueDate" msprop:Generator_ColumnVarNameInTable="columnDueDate" type="xs:dateTime" />
|
||||
<xs:element name="TotItem" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="TotItemColumn" msprop:Generator_ColumnPropNameInRow="TotItem" msprop:Generator_UserColumnName="TotItem" msprop:Generator_ColumnVarNameInTable="columnTotItem" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="PathImageFull" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="PathImageFullColumn" msprop:Generator_ColumnPropNameInRow="PathImageFull" msprop:Generator_UserColumnName="PathImageFull" msprop:Generator_ColumnVarNameInTable="columnPathImageFull" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="4000" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="QRCodeBaseUrl" msdata:ReadOnly="true" msprop:Generator_ColumnPropNameInTable="QRCodeBaseUrlColumn" msprop:Generator_ColumnPropNameInRow="QRCodeBaseUrl" msprop:Generator_UserColumnName="QRCodeBaseUrl" msprop:Generator_ColumnVarNameInTable="columnQRCodeBaseUrl" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="400" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="OrdParent" msprop:Generator_UserColumnName="OrdParent" msprop:Generator_ColumnPropNameInTable="OrdParentColumn" msprop:Generator_ColumnPropNameInRow="OrdParent" msprop:Generator_ColumnVarNameInTable="columnOrdParent">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ReqDate" msprop:Generator_UserColumnName="ReqDate" msprop:Generator_ColumnPropNameInTable="ReqDateColumn" msprop:Generator_ColumnPropNameInRow="ReqDate" msprop:Generator_ColumnVarNameInTable="columnReqDate" type="xs:dateTime" />
|
||||
<xs:element name="CartDtmx" msprop:Generator_ColumnPropNameInRow="CartDtmx" msprop:Generator_ColumnPropNameInTable="CartDtmxColumn" msprop:Generator_ColumnVarNameInTable="columnCartDtmx" msprop:Generator_UserColumnName="CartDtmx" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ModelCod" msprop:Generator_ColumnPropNameInRow="ModelCod" msprop:Generator_ColumnPropNameInTable="ModelCodColumn" msprop:Generator_ColumnVarNameInTable="columnModelCod" msprop:Generator_UserColumnName="ModelCod">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="DestPlant" msprop:Generator_ColumnPropNameInRow="DestPlant" msprop:Generator_ColumnPropNameInTable="DestPlantColumn" msprop:Generator_ColumnVarNameInTable="columnDestPlant" msprop:Generator_UserColumnName="DestPlant">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
|
||||
@@ -979,5 +1158,9 @@ SELECT codPostazione, stampante, note FROM ElencoPostazioni WHERE (codPostazione
|
||||
<xs:selector xpath=".//mstns:stp_prt_OtherPart" />
|
||||
<xs:field xpath="mstns:OtherItemID" />
|
||||
</xs:unique>
|
||||
<xs:unique name="stp_prt_SpecialPart_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
|
||||
<xs:selector xpath=".//mstns:stp_prt_SpecialPart" />
|
||||
<xs:field xpath="mstns:DocID" />
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
+13
-11
@@ -4,18 +4,20 @@
|
||||
Changes to this file may cause incorrect behavior and will be lost if
|
||||
the code is regenerated.
|
||||
</autogenerated>-->
|
||||
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="65" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
|
||||
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="-6" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
|
||||
<Shapes>
|
||||
<Shape ID="DesignTable:stp_prt_BunkList" ZOrder="5" X="279" Y="642" Height="229" Width="249" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
|
||||
<Shape ID="DesignTable:PrintJobQueue" ZOrder="10" X="432" Y="94" Height="400" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
|
||||
<Shape ID="DesignTable:ElencoPostazioni" ZOrder="9" X="861" Y="123" Height="153" Width="242" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
|
||||
<Shape ID="DesignTable:stp_prt_Bin" ZOrder="4" X="826" Y="646" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:stp_prt_Part" ZOrder="8" X="49" Y="75" Height="155" Width="245" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="104" />
|
||||
<Shape ID="DesignTable:stp_prt_Cart" ZOrder="7" X="552" Y="645" Height="248" Width="243" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
|
||||
<Shape ID="DesignTable:stp_prt_BunkGroup" ZOrder="6" X="23" Y="641" Height="267" Width="247" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
|
||||
<Shape ID="DesignTable:stp_prt_OtherPart" ZOrder="3" X="83" Y="334" Height="210" Width="275" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:stp_prt_IRK" ZOrder="2" X="280" Y="903" Height="305" Width="243" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:stp_prt_IRK_Sum" ZOrder="1" X="551" Y="918" Height="267" Width="243" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
|
||||
<Shape ID="DesignTable:stp_prt_BunkList" ZOrder="7" X="279" Y="642" Height="229" Width="249" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
|
||||
<Shape ID="DesignTable:PrintJobQueue" ZOrder="12" X="432" Y="94" Height="400" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
|
||||
<Shape ID="DesignTable:ElencoPostazioni" ZOrder="11" X="861" Y="123" Height="153" Width="242" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
|
||||
<Shape ID="DesignTable:stp_prt_Bin" ZOrder="1" X="827" Y="534" Height="326" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="275" />
|
||||
<Shape ID="DesignTable:stp_prt_Part" ZOrder="10" X="49" Y="75" Height="155" Width="245" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="104" />
|
||||
<Shape ID="DesignTable:stp_prt_Cart" ZOrder="9" X="552" Y="645" Height="286" Width="243" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
|
||||
<Shape ID="DesignTable:stp_prt_BunkGroup" ZOrder="8" X="23" Y="641" Height="267" Width="247" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
|
||||
<Shape ID="DesignTable:stp_prt_OtherPart" ZOrder="6" X="83" Y="334" Height="210" Width="275" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
|
||||
<Shape ID="DesignTable:stp_prt_IRK" ZOrder="5" X="280" Y="903" Height="305" Width="243" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:stp_prt_IRK_Sum" ZOrder="4" X="551" Y="918" Height="267" Width="243" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
|
||||
<Shape ID="DesignTable:stp_prt_Remnant" ZOrder="3" X="869" Y="312" Height="153" Width="245" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:stp_prt_SpecialPart" ZOrder="2" X="828" Y="876" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="273" />
|
||||
</Shapes>
|
||||
<Connectors />
|
||||
</DiagramLayout>
|
||||
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AppData.DTO
|
||||
{
|
||||
/// <summary>
|
||||
/// Statistiche in termini di Yeld e quantità produzioni relative ad un singolo batch
|
||||
/// </summary>
|
||||
public class BatchYeldStatDTO
|
||||
{
|
||||
/// <summary>
|
||||
/// Statistiche YELD aggregate per Material
|
||||
/// </summary>
|
||||
public List<MaterialYeldStatsDTO> ListByMaterial { get; set; } = new List<MaterialYeldStatsDTO>();
|
||||
|
||||
/// <summary>
|
||||
/// Statistiche YELD aggregate per Sheet
|
||||
/// </summary>
|
||||
public List<SheetYeldStatDTO> ListBySheet { get; set; } = new List<SheetYeldStatDTO>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AppData.DTO
|
||||
{
|
||||
/// <summary>
|
||||
/// Statistiche resa materiali
|
||||
/// </summary>
|
||||
public class MaterialYeldStatsDTO
|
||||
{
|
||||
public int MatId { get; set; } = 0;
|
||||
public int MatCode { get; set; } = 0;
|
||||
public string MatDescript { get; set; } = "";
|
||||
|
||||
public int TotSheets { get; set; } = 0;
|
||||
public int TotParts { get; set; } = 0;
|
||||
|
||||
public double YeldMin { get; set; } = 0;
|
||||
public double YeldAvg { get; set; } = 0;
|
||||
public double YeldMax { get; set; } = 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AppData.DTO
|
||||
{
|
||||
public class SheetYeldStatDTO
|
||||
{
|
||||
public int SheetId { get; set; } = 0;
|
||||
public int MatId { get; set; } = 0;
|
||||
public int MatCode { get; set; } = 0;
|
||||
public string MatDescript { get; set; } = "";
|
||||
public int BunkIdx { get; set; } = 0;
|
||||
public int SheetIdx { get; set; } = 0;
|
||||
|
||||
public int NumParts { get; set; } = 0;
|
||||
|
||||
public double Yeld { get; set; } = 0;
|
||||
}
|
||||
}
|
||||
+555
-124
@@ -1,20 +1,30 @@
|
||||
using NKC_SDK;
|
||||
using AppData.DTO;
|
||||
using Newtonsoft.Json;
|
||||
using NKC_SDK;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
|
||||
namespace AppData
|
||||
{
|
||||
public class DataLayer
|
||||
{
|
||||
#region oggetti public
|
||||
#region Public Fields
|
||||
|
||||
public DS_AppTableAdapters.BatchListTableAdapter taBL;
|
||||
public DS_AppTableAdapters.BinsTableAdapter taBN;
|
||||
public DS_AppTableAdapters.BinListTableAdapter taBNLS;
|
||||
public DS_AppTableAdapters.BatchStatsTableAdapter taBStats;
|
||||
public DS_AppTableAdapters.CartsTableAdapter taCL;
|
||||
public DS_AppTableAdapters.CartOnKitTableAdapter taCOK;
|
||||
public DS_AppTableAdapters.CountersTableAdapter taCount;
|
||||
public DS_AppTableAdapters.CartsTableAdapter taCR;
|
||||
public DS_AppTableAdapters.ProductionStatsDayTableAdapter taDayStats;
|
||||
public DS_AppTableAdapters.ErrorsLogTableAdapter taEL;
|
||||
public DS_ReportTableAdapters.ElencoPostazioniTableAdapter taElPos;
|
||||
public DS_AppTableAdapters.FileValidationTableAdapter taFV;
|
||||
public DS_AppTableAdapters.ItemListTableAdapter taIL;
|
||||
public DS_AppTableAdapters.ImportLogTableAdapter taImpLog;
|
||||
public DS_AppTableAdapters.ItemSearchDetailTableAdapter taISD;
|
||||
@@ -23,131 +33,57 @@ namespace AppData
|
||||
public DS_AppTableAdapters.MaterialsTableAdapter taMat;
|
||||
public DS_AppTableAdapters.NestingTableAdapter taNest;
|
||||
public DS_AppTableAdapters.OfflineOrderListTableAdapter taOffOL;
|
||||
public DS_AppTableAdapters.OffOrd2ItemTableAdapter taOO2I;
|
||||
public DS_AppTableAdapters.OKIBTableAdapter taOKIB;
|
||||
public DS_AppTableAdapters.OKIB_SumTableAdapter taOKIB_Sum;
|
||||
public DS_AppTableAdapters.OKOITableAdapter taOKOI;
|
||||
public DS_AppTableAdapters.OKOI_sumTableAdapter taOKOI_Sum;
|
||||
public DS_AppTableAdapters.OrderListTableAdapter taOL;
|
||||
public DS_AppTableAdapters.OrderListTreeTableAdapter taOLT;
|
||||
public DS_AppTableAdapters.OffOrd2ItemTableAdapter taOO2I;
|
||||
public DS_AppTableAdapters.OtherItemTableAdapter taOtItem;
|
||||
public DS_ReportTableAdapters.PrintJobQueueTableAdapter taPJQ;
|
||||
public DS_AppTableAdapters.PackListTableAdapter taPL;
|
||||
public DS_AppTableAdapters.PlacesTableAdapter taPlac;
|
||||
public DS_AppTableAdapters.PlantListTableAdapter taPlant;
|
||||
public DS_AppTableAdapters.PackCheckTableAdapter taPLC;
|
||||
public DS_AppTableAdapters.PackListDetTableAdapter taPLD;
|
||||
public DS_AppTableAdapters.PackLogTableAdapter taPLog;
|
||||
public DS_AppTableAdapters.PartValidParetoTableAdapter taPVP;
|
||||
public DS_AppTableAdapters.RemnantsTableAdapter taRem;
|
||||
public DS_AppTableAdapters.StackListTableAdapter taSTL;
|
||||
public DS_AppTableAdapters.SheetListTableAdapter taSHL;
|
||||
// reports
|
||||
public DS_ReportTableAdapters.ElencoPostazioniTableAdapter taElPos;
|
||||
public DS_ReportTableAdapters.PrintJobQueueTableAdapter taPJQ;
|
||||
public DS_ReportTableAdapters.stp_prt_BinTableAdapter taRepBin;
|
||||
public DS_ReportTableAdapters.stp_prt_BunkGroupTableAdapter taRepBunkGroup;
|
||||
public DS_ReportTableAdapters.stp_prt_BunkListTableAdapter taRepBunkList;
|
||||
public DS_ReportTableAdapters.stp_prt_CartTableAdapter taRepCart;
|
||||
public DS_ReportTableAdapters.stp_prt_PartTableAdapter taRepPart;
|
||||
public DS_ReportTableAdapters.stp_prt_OtherPartTableAdapter taRepOtherPart;
|
||||
public DS_ReportTableAdapters.stp_prt_IRKTableAdapter taRepIRK;
|
||||
public DS_ReportTableAdapters.stp_prt_IRK_SumTableAdapter taRepIRKSum;
|
||||
public DS_ReportTableAdapters.stp_prt_OtherPartTableAdapter taRepOtherPart;
|
||||
public DS_ReportTableAdapters.stp_prt_PartTableAdapter taRepPart;
|
||||
public DS_ReportTableAdapters.stp_prt_SpecialPartTableAdapter taRepSpecPart;
|
||||
public DS_AppTableAdapters.SheetListTableAdapter taSHL;
|
||||
public DS_AppTableAdapters.SheetStatsTableAdapter taShStats;
|
||||
public DS_AppTableAdapters.SheetsPreviewTableAdapter taSP;
|
||||
public DS_AppTableAdapters.SpecialPartsTableAdapter taSpecialPart;
|
||||
public DS_AppTableAdapters.StatusDecodeTableAdapter taStatDec;
|
||||
public DS_AppTableAdapters.StatusLogTableAdapter taStatLog;
|
||||
public DS_AppTableAdapters.StackListTableAdapter taSTL;
|
||||
public DS_AppTableAdapters.UpdManTableAdapter taUpdMan;
|
||||
public DS_AppTableAdapters.UnloadStatsTableAdapter taUStat;
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
public DataLayer()
|
||||
{
|
||||
// inizializzaizone classe
|
||||
initTA();
|
||||
setupConnString();
|
||||
cacheDataTTL = memLayer.ML.CRI("cacheDataTTL");
|
||||
}
|
||||
|
||||
private void setupConnString()
|
||||
{
|
||||
string connString = memLayer.ML.CRS("NKC_WFConnectionString");
|
||||
taBL.Connection.ConnectionString = connString;
|
||||
taBN.Connection.ConnectionString = connString;
|
||||
taBNLS.Connection.ConnectionString = connString;
|
||||
taCOK.Connection.ConnectionString = connString;
|
||||
taCount.Connection.ConnectionString = connString;
|
||||
taCR.Connection.ConnectionString = connString;
|
||||
taEL.Connection.ConnectionString = connString;
|
||||
taIL.Connection.ConnectionString = connString;
|
||||
taImpLog.Connection.ConnectionString = connString;
|
||||
taISD.Connection.ConnectionString = connString;
|
||||
taIV.Connection.ConnectionString = connString;
|
||||
taKL.Connection.ConnectionString = connString;
|
||||
taMat.Connection.ConnectionString = connString;
|
||||
taNest.Connection.ConnectionString = connString;
|
||||
taOffOL.Connection.ConnectionString = connString;
|
||||
taOO2I.Connection.ConnectionString = connString;
|
||||
taOKIB.Connection.ConnectionString = connString;
|
||||
taOKIB_Sum.Connection.ConnectionString = connString;
|
||||
taOKOI.Connection.ConnectionString = connString;
|
||||
taOKOI_Sum.Connection.ConnectionString = connString;
|
||||
taOL.Connection.ConnectionString = connString;
|
||||
taOtItem.Connection.ConnectionString = connString;
|
||||
taPL.Connection.ConnectionString = connString;
|
||||
taPLC.Connection.ConnectionString = connString;
|
||||
taPLD.Connection.ConnectionString = connString;
|
||||
taPLog.Connection.ConnectionString = connString;
|
||||
taPVP.Connection.ConnectionString = connString;
|
||||
taRem.Connection.ConnectionString = connString;
|
||||
taSTL.Connection.ConnectionString = connString;
|
||||
taSHL.Connection.ConnectionString = connString;
|
||||
// reports
|
||||
taElPos.Connection.ConnectionString = connString;
|
||||
taPJQ.Connection.ConnectionString = connString;
|
||||
taRepBin.Connection.ConnectionString = connString;
|
||||
taRepBunkGroup.Connection.ConnectionString = connString;
|
||||
taRepBunkList.Connection.ConnectionString = connString;
|
||||
taRepCart.Connection.ConnectionString = connString;
|
||||
taRepPart.Connection.ConnectionString = connString;
|
||||
taRepOtherPart.Connection.ConnectionString = connString;
|
||||
taRepIRK.Connection.ConnectionString = connString;
|
||||
taRepIRKSum.Connection.ConnectionString = connString;
|
||||
}
|
||||
private void initTA()
|
||||
{
|
||||
taBL = new DS_AppTableAdapters.BatchListTableAdapter();
|
||||
taBN = new DS_AppTableAdapters.BinsTableAdapter();
|
||||
taBNLS = new DS_AppTableAdapters.BinListTableAdapter();
|
||||
taCOK= new DS_AppTableAdapters.CartOnKitTableAdapter ();
|
||||
taCount = new DS_AppTableAdapters.CountersTableAdapter();
|
||||
taCR = new DS_AppTableAdapters.CartsTableAdapter();
|
||||
taEL = new DS_AppTableAdapters.ErrorsLogTableAdapter();
|
||||
taIL = new DS_AppTableAdapters.ItemListTableAdapter();
|
||||
taImpLog = new DS_AppTableAdapters.ImportLogTableAdapter();
|
||||
taISD = new DS_AppTableAdapters.ItemSearchDetailTableAdapter();
|
||||
taIV = new DS_AppTableAdapters.ItemValidationTableAdapter();
|
||||
taKL = new DS_AppTableAdapters.KitListTableAdapter();
|
||||
taMat = new DS_AppTableAdapters.MaterialsTableAdapter();
|
||||
taNest = new DS_AppTableAdapters.NestingTableAdapter();
|
||||
taOffOL = new DS_AppTableAdapters.OfflineOrderListTableAdapter();
|
||||
taOO2I = new DS_AppTableAdapters.OffOrd2ItemTableAdapter();
|
||||
taOKIB = new DS_AppTableAdapters.OKIBTableAdapter();
|
||||
taOKIB_Sum = new DS_AppTableAdapters.OKIB_SumTableAdapter();
|
||||
taOKOI = new DS_AppTableAdapters.OKOITableAdapter();
|
||||
taOKOI_Sum = new DS_AppTableAdapters.OKOI_sumTableAdapter();
|
||||
taOL = new DS_AppTableAdapters.OrderListTableAdapter();
|
||||
taOtItem = new DS_AppTableAdapters.OtherItemTableAdapter();
|
||||
taPL = new DS_AppTableAdapters.PackListTableAdapter();
|
||||
taPLC = new DS_AppTableAdapters.PackCheckTableAdapter();
|
||||
taPLD = new DS_AppTableAdapters.PackListDetTableAdapter();
|
||||
taPLog = new DS_AppTableAdapters.PackLogTableAdapter();
|
||||
taPVP = new DS_AppTableAdapters.PartValidParetoTableAdapter();
|
||||
taRem = new DS_AppTableAdapters.RemnantsTableAdapter();
|
||||
taSTL = new DS_AppTableAdapters.StackListTableAdapter();
|
||||
taSHL = new DS_AppTableAdapters.SheetListTableAdapter();
|
||||
// reports
|
||||
taElPos = new DS_ReportTableAdapters.ElencoPostazioniTableAdapter();
|
||||
taPJQ = new DS_ReportTableAdapters.PrintJobQueueTableAdapter();
|
||||
taRepBin = new DS_ReportTableAdapters.stp_prt_BinTableAdapter();
|
||||
taRepBunkGroup = new DS_ReportTableAdapters.stp_prt_BunkGroupTableAdapter();
|
||||
taRepBunkList = new DS_ReportTableAdapters.stp_prt_BunkListTableAdapter();
|
||||
taRepCart = new DS_ReportTableAdapters.stp_prt_CartTableAdapter();
|
||||
taRepPart = new DS_ReportTableAdapters.stp_prt_PartTableAdapter();
|
||||
taRepOtherPart = new DS_ReportTableAdapters.stp_prt_OtherPartTableAdapter();
|
||||
taRepIRK = new DS_ReportTableAdapters.stp_prt_IRKTableAdapter();
|
||||
taRepIRKSum = new DS_ReportTableAdapters.stp_prt_IRK_SumTableAdapter();
|
||||
}
|
||||
#endregion Public Constructors
|
||||
|
||||
#endregion
|
||||
#region Public Properties
|
||||
|
||||
public string CodSoggCurrUser
|
||||
{
|
||||
@@ -156,6 +92,7 @@ namespace AppData
|
||||
return "O000123456";
|
||||
}
|
||||
}
|
||||
|
||||
public string CognNomeCurrUser
|
||||
{
|
||||
get
|
||||
@@ -163,6 +100,11 @@ namespace AppData
|
||||
return "Mario Rossi";
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Main BCode decoding function
|
||||
/// </summary>
|
||||
@@ -253,9 +195,376 @@ namespace AppData
|
||||
answ.codeInt = codeInt;
|
||||
answ.description = $"{ComLib.traduci("BinPaint")}: {answ.code}";
|
||||
}
|
||||
else if (bcValue.StartsWith("MSEL"))
|
||||
{
|
||||
answ.codeType = codeType.MachSelection;
|
||||
answ.code = bcValue.Replace("MSEL", "");
|
||||
int codeInt = 0;
|
||||
answ.codeInt = codeInt;
|
||||
answ.description = $"{ComLib.traduci("BinPaint")}: {answ.code}";
|
||||
}
|
||||
// gestione specialParts
|
||||
else
|
||||
{
|
||||
var tabSpecParts = getSpecialPart();
|
||||
foreach (var item in tabSpecParts)
|
||||
{
|
||||
if (bcValue.StartsWith(item.CartCode))
|
||||
{
|
||||
answ.codeType = codeType.SpecialPart;
|
||||
// tengo tutto perché contiene un array di valori...
|
||||
answ.code = bcValue;
|
||||
answ.codeInt = 0;
|
||||
string[] decodedVals = bcValue.Split(';');
|
||||
string code = "cod";
|
||||
if (decodedVals.Length > 5)
|
||||
{
|
||||
code = decodedVals[3];
|
||||
}
|
||||
// scrivo part + descrizione
|
||||
answ.description = $"{ComLib.traduci("SpecialPart")}: {code}";
|
||||
}
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
|
||||
public DS_App.BinsDataTable getBinByBatch(int BatchID)
|
||||
{
|
||||
DS_App.BinsDataTable answ = new DS_App.BinsDataTable();
|
||||
// controllo cache
|
||||
bool trovato = false;
|
||||
string redKey = memLayer.ML.redHash($"BinByBatch:{BatchID}");
|
||||
string rawData = "";
|
||||
rawData = memLayer.ML.getRSV(redKey);
|
||||
if (!string.IsNullOrEmpty(rawData))
|
||||
{
|
||||
try
|
||||
{
|
||||
answ = JsonConvert.DeserializeObject<DS_App.BinsDataTable>(rawData);
|
||||
trovato = true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
if (!trovato)
|
||||
{
|
||||
// se non trovo leggo
|
||||
answ = taBN.getByBatch(BatchID);
|
||||
rawData = JsonConvert.SerializeObject(answ);
|
||||
// salvo in redis
|
||||
memLayer.ML.setRSV(redKey, rawData, cacheDataTTL);
|
||||
}
|
||||
|
||||
//restituisco valore..
|
||||
return answ;
|
||||
}
|
||||
|
||||
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
|
||||
public DS_App.CartsDataTable getCartByBatch(int BatchID)
|
||||
{
|
||||
DS_App.CartsDataTable answ = new DS_App.CartsDataTable();
|
||||
// controllo cache
|
||||
bool trovato = false;
|
||||
string redKey = memLayer.ML.redHash($"CartByBatch:{BatchID}");
|
||||
string rawData = "";
|
||||
rawData = memLayer.ML.getRSV(redKey);
|
||||
if (!string.IsNullOrEmpty(rawData))
|
||||
{
|
||||
try
|
||||
{
|
||||
answ = JsonConvert.DeserializeObject<DS_App.CartsDataTable>(rawData);
|
||||
trovato = true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
if (!trovato)
|
||||
{
|
||||
// se non trovo leggo
|
||||
answ = taCL.getByBatch(BatchID);
|
||||
rawData = JsonConvert.SerializeObject(answ);
|
||||
// salvo in redis
|
||||
memLayer.ML.setRSV(redKey, rawData, cacheDataTTL);
|
||||
}
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce tabella dati CKD dato CartID
|
||||
/// </summary>
|
||||
/// <param name="CartID"></param>
|
||||
/// <returns></returns>
|
||||
public DS_App.CartOnKitDataTable getCKD(int CartID)
|
||||
{
|
||||
DS_App.CartOnKitDataTable answ = new DS_App.CartOnKitDataTable();
|
||||
// controllo cache
|
||||
bool trovato = false;
|
||||
string redKey = memLayer.ML.redHash($"CKDByCartId:{CartID}");
|
||||
string rawData = "";
|
||||
rawData = memLayer.ML.getRSV(redKey);
|
||||
if (!string.IsNullOrEmpty(rawData))
|
||||
{
|
||||
try
|
||||
{
|
||||
answ = JsonConvert.DeserializeObject<DS_App.CartOnKitDataTable>(rawData);
|
||||
trovato = true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
if (!trovato)
|
||||
{
|
||||
// se non trovo leggo
|
||||
answ = taCOK.getByKey(CartID);
|
||||
rawData = JsonConvert.SerializeObject(answ);
|
||||
// salvo in redis
|
||||
memLayer.ML.setRSV(redKey, rawData, cacheDataTTL);
|
||||
}
|
||||
|
||||
//restituisco valore..
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera printer dato codPostazione
|
||||
/// </summary>
|
||||
/// <param name="codPost"></param>
|
||||
/// <returns></returns>
|
||||
public string getPrinter(string codPost)
|
||||
{
|
||||
string printer = "";
|
||||
// cerco su redis...
|
||||
string redKey = memLayer.ML.redHash($"PrinterByPost:{codPost}");
|
||||
printer = memLayer.ML.getRSV(redKey);
|
||||
// ...altrimenti recupero da DB...
|
||||
if (string.IsNullOrEmpty(printer))
|
||||
{
|
||||
try
|
||||
{
|
||||
DataLayer DLMan = new DataLayer();
|
||||
var tabPost = DLMan.taElPos.getByKey(codPost);
|
||||
if (tabPost.Count == 1)
|
||||
{
|
||||
printer = tabPost[0].stampante;
|
||||
}
|
||||
else
|
||||
{
|
||||
printer = "queueND";
|
||||
}
|
||||
// salvo in redis x 10 min
|
||||
memLayer.ML.setRSV(redKey, printer, 10 * 60);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione in getPrinter | codPost: {codPost}{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return printer;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce tabella dati SpecialPart (con cache lungo periodo)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public DS_App.SpecialPartsDataTable getSpecialPart()
|
||||
{
|
||||
DS_App.SpecialPartsDataTable answ = new DS_App.SpecialPartsDataTable();
|
||||
// controllo cache
|
||||
bool trovato = false;
|
||||
string redKey = memLayer.ML.redHash($"SpecialPartsTable");
|
||||
string rawData = "";
|
||||
rawData = memLayer.ML.getRSV(redKey);
|
||||
if (!string.IsNullOrEmpty(rawData))
|
||||
{
|
||||
try
|
||||
{
|
||||
answ = JsonConvert.DeserializeObject<DS_App.SpecialPartsDataTable>(rawData);
|
||||
trovato = true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
if (!trovato)
|
||||
{
|
||||
// se non trovo leggo
|
||||
answ = taSpecialPart.GetData();
|
||||
rawData = JsonConvert.SerializeObject(answ);
|
||||
// salvo in redis x periodo LUNGO
|
||||
memLayer.ML.setRSV(redKey, rawData, cacheDataTTL * 60);
|
||||
}
|
||||
|
||||
//restituisco valore..
|
||||
return answ;
|
||||
}
|
||||
|
||||
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
|
||||
public DS_App.UnloadStatsDataTable getUnloadStatsByBatch(int BatchID, int StatLevel)
|
||||
{
|
||||
DS_App.UnloadStatsDataTable answ = new DS_App.UnloadStatsDataTable();
|
||||
// controllo cache
|
||||
bool trovato = false;
|
||||
string redKey = memLayer.ML.redHash($"UnloadStatsByBatch:{BatchID}:{StatLevel}");
|
||||
string rawData = "";
|
||||
rawData = memLayer.ML.getRSV(redKey);
|
||||
if (!string.IsNullOrEmpty(rawData))
|
||||
{
|
||||
try
|
||||
{
|
||||
answ = JsonConvert.DeserializeObject<DS_App.UnloadStatsDataTable>(rawData);
|
||||
trovato = true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
if (!trovato)
|
||||
{
|
||||
// se non trovo leggo
|
||||
answ = taUStat.GetData(BatchID, StatLevel);
|
||||
rawData = JsonConvert.SerializeObject(answ);
|
||||
// salvo in redis
|
||||
memLayer.ML.setRSV(redKey, rawData, cacheDataTTL);
|
||||
}
|
||||
|
||||
//restituisco valore..
|
||||
return answ;
|
||||
}
|
||||
|
||||
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
|
||||
public BatchYeldStatDTO getYeldStatsByBatch(int BatchID)
|
||||
{
|
||||
BatchYeldStatDTO answ = new BatchYeldStatDTO();
|
||||
// controllo cache
|
||||
bool trovato = false;
|
||||
string redKey = memLayer.ML.redHash($"YeldStatByBatch:{BatchID}");
|
||||
string rawData = "";
|
||||
rawData = memLayer.ML.getRSV(redKey);
|
||||
if (!string.IsNullOrEmpty(rawData) && rawData.Count() > 2)
|
||||
{
|
||||
try
|
||||
{
|
||||
answ = JsonConvert.DeserializeObject<BatchYeldStatDTO>(rawData);
|
||||
trovato = true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
if (!trovato)
|
||||
{
|
||||
// se non trovo leggo
|
||||
answ = GetYeldStatsFromMongoData(BatchID);
|
||||
rawData = JsonConvert.SerializeObject(answ);
|
||||
// salvo in redis con cache lunga (2 volte la minima...)
|
||||
memLayer.ML.setRSV(redKey, rawData, cacheDataTTL * 2);
|
||||
}
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera da MongoDB le risposte dal supervisor e calcola statistiche Batch
|
||||
/// NB. statistiche per singolo Sheet ed aggregate x materiale
|
||||
/// </summary>
|
||||
/// <param name="BatchId">ID del Batch di cui recuperare le info</param>
|
||||
public BatchYeldStatDTO GetYeldStatsFromMongoData(int BatchId)
|
||||
{
|
||||
BatchYeldStatDTO answ = new BatchYeldStatDTO();
|
||||
if (memLayer.ML.CRB("enableMongo"))
|
||||
{
|
||||
List<MaterialYeldStatsDTO> ListByMaterialTemp = new List<MaterialYeldStatsDTO>();
|
||||
List<SheetYeldStatDTO> ListBySheetTemp = new List<SheetYeldStatDTO>();
|
||||
// cerco da lista salvataggi Nest...
|
||||
var nestAnsw = ComLib.man.getNestAnsw(BatchId);
|
||||
// recupero bunk da DB
|
||||
DataLayer dlMan = new DataLayer();
|
||||
var bunkList = taSTL.getByBatch(BatchId);
|
||||
var listSheets = taSHL.getByBatch(BatchId, "ND");
|
||||
var matList = taMat.GetData();
|
||||
// elenchi x ricerca duplicati
|
||||
List<int> partListNest = new List<int>();
|
||||
List<int> partListNestDupl = new List<int>();
|
||||
|
||||
if (nestAnsw != null)
|
||||
{
|
||||
double num = 0;
|
||||
double den = 1;
|
||||
double currRatio = 0;
|
||||
try
|
||||
{
|
||||
if (nestAnsw.BunkList != null)
|
||||
{
|
||||
foreach (var bunk in nestAnsw.BunkList)
|
||||
{
|
||||
// procedo SOLO per il bunk corrente...
|
||||
foreach (var sheet in bunk.SheetList)
|
||||
{
|
||||
num = sheet.SurfaceWork > 0 ? sheet.SurfaceWork : 0;
|
||||
den = sheet.SurfaceTotal > 0 ? sheet.SurfaceTotal : 1;
|
||||
currRatio = ComLib.ratioProt(num, den);
|
||||
// recupero sheet dettaglio x materiale ed idx vari...
|
||||
var rSheet = listSheets
|
||||
.Where(x => x.SheetIndex == sheet.SheetIndex && x.StackIndex == bunk.BunkIndex)
|
||||
.FirstOrDefault();
|
||||
if (rSheet != null)
|
||||
{
|
||||
var rMat = matList
|
||||
.Where(x => x.MatID == rSheet.MatID)
|
||||
.FirstOrDefault();
|
||||
var rSStat = ListBySheetTemp
|
||||
.Where(x => x.SheetIdx == sheet.SheetIndex && x.BunkIdx == bunk.BunkIndex)
|
||||
.FirstOrDefault();
|
||||
if (rSStat != null)
|
||||
{
|
||||
rSStat.Yeld = currRatio;
|
||||
rSStat.NumParts = sheet.PartList.Count;
|
||||
}
|
||||
else
|
||||
{
|
||||
// recupero la riga x indicare il materiale...
|
||||
|
||||
rSStat = new SheetYeldStatDTO()
|
||||
{
|
||||
SheetId = rSheet.SheetID,
|
||||
MatId = rSheet.MatID,
|
||||
MatCode = rMat.MatExtCode,
|
||||
MatDescript = rMat.MatDesc,
|
||||
BunkIdx = bunk.BunkIndex,
|
||||
SheetIdx = sheet.SheetIndex,
|
||||
NumParts = sheet.PartList.Count,
|
||||
Yeld = currRatio
|
||||
};
|
||||
ListBySheetTemp.Add(rSStat);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// ciclo nuovamente per i dati recuperati x aggregare x materiale...
|
||||
ListByMaterialTemp = ListBySheetTemp
|
||||
.GroupBy(x => x.MatId)
|
||||
.Select(x => new MaterialYeldStatsDTO()
|
||||
{
|
||||
MatId = x.Key,
|
||||
MatCode = x.FirstOrDefault().MatCode,
|
||||
MatDescript = x.FirstOrDefault().MatDescript,
|
||||
TotParts = x.Sum(p => p.NumParts),
|
||||
TotSheets = x.Count(),
|
||||
YeldAvg = x.Average(p => p.Yeld),
|
||||
YeldMin = x.Min(p => p.Yeld),
|
||||
YeldMax = x.Max(p => p.Yeld)
|
||||
}).ToList();
|
||||
}
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
// salvo nell'oggetto
|
||||
answ.ListBySheet = ListBySheetTemp;
|
||||
answ.ListByMaterial = ListByMaterialTemp;
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// effettua la stampa di un documento
|
||||
@@ -277,19 +586,30 @@ namespace AppData
|
||||
memLayer.ML.redFlushKey(ComLib.redQueueCountSet);
|
||||
if (answ)
|
||||
{
|
||||
logger.lg.scriviLog(string.Format(" | {0} | stampato UDC {1} | stampante {2} | tipo {3}", clientIp, keyParam, printer, tipoDoc), tipoLog.INFO);
|
||||
Log.Instance.Info(string.Format(" | {0} | stampato UDC {1} | stampante {2} | tipo {3}", clientIp, keyParam, printer, tipoDoc), tipoLog.INFO);
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.lg.scriviLog(string.Format("ERRORE | {0} | stampato UDC {1} | stampante {2} | tipo {3}", clientIp, keyParam, printer, tipoDoc), tipoLog.ERROR);
|
||||
Log.Instance.Error(string.Format("ERRORE | {0} | stampato UDC {1} | stampante {2} | tipo {3}", clientIp, keyParam, printer, tipoDoc), tipoLog.ERROR);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.lg.scriviLog(string.Format(" | {0} | Richiesta stampa per DOC tipo {1} | stampante {2} | key {3}", clientIp, tipoDoc, printer, keyParam), tipoLog.ERROR);
|
||||
Log.Instance.Info(string.Format(" | {0} | Richiesta stampa per DOC tipo {1} | stampante {2} | key {3}", clientIp, tipoDoc, printer, keyParam), tipoLog.ERROR);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
protected int cacheDataTTL { get; set; } = 2;
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// verifica esistenza record da tipo doc + chiave...
|
||||
/// </summary>
|
||||
@@ -308,6 +628,7 @@ namespace AppData
|
||||
var tabBinPre = taBN.getByKey(intIdx);
|
||||
answ = tabBinPre.Count > 0;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docCart:
|
||||
case tipoDocumento.docCartIRK:
|
||||
case tipoDocumento.docCartIRKSum:
|
||||
@@ -315,49 +636,159 @@ namespace AppData
|
||||
var tabCarts = taCR.getByKey(intIdx);
|
||||
answ = tabCarts.Count > 0;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docPart:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
var tabPart = taIL.getByKey(intIdx);
|
||||
answ = tabPart.Count > 0;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docOtherPart:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
var tabOtherPart = taOtItem.getByKey(intIdx);
|
||||
answ = tabOtherPart.Count > 0;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docStack:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
var tabStack = taSTL.getByKey(intIdx);
|
||||
answ = tabStack.Count > 0;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docCartSpecialPart:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
var tabSpecPart = taRepSpecPart.GetData(intIdx, "", "");
|
||||
answ = tabSpecPart.Count > 0;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docND:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Recupera printer dato codPostazione
|
||||
/// </summary>
|
||||
/// <param name="codPost"></param>
|
||||
/// <returns></returns>
|
||||
public string getPrinter(string codPost)
|
||||
|
||||
private void initTA()
|
||||
{
|
||||
string printer = "";
|
||||
// recupero da DB...
|
||||
try
|
||||
{
|
||||
DataLayer DLMan = new DataLayer();
|
||||
var tabPost = DLMan.taElPos.getByKey(codPost);
|
||||
if (tabPost.Count == 1)
|
||||
{
|
||||
printer = tabPost[0].stampante;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return printer;
|
||||
taBL = new DS_AppTableAdapters.BatchListTableAdapter();
|
||||
taBN = new DS_AppTableAdapters.BinsTableAdapter();
|
||||
taBNLS = new DS_AppTableAdapters.BinListTableAdapter();
|
||||
taBStats = new DS_AppTableAdapters.BatchStatsTableAdapter();
|
||||
taCL = new DS_AppTableAdapters.CartsTableAdapter();
|
||||
taCOK = new DS_AppTableAdapters.CartOnKitTableAdapter();
|
||||
taCount = new DS_AppTableAdapters.CountersTableAdapter();
|
||||
taCR = new DS_AppTableAdapters.CartsTableAdapter();
|
||||
taDayStats = new DS_AppTableAdapters.ProductionStatsDayTableAdapter();
|
||||
taEL = new DS_AppTableAdapters.ErrorsLogTableAdapter();
|
||||
taFV = new DS_AppTableAdapters.FileValidationTableAdapter();
|
||||
taIL = new DS_AppTableAdapters.ItemListTableAdapter();
|
||||
taImpLog = new DS_AppTableAdapters.ImportLogTableAdapter();
|
||||
taISD = new DS_AppTableAdapters.ItemSearchDetailTableAdapter();
|
||||
taIV = new DS_AppTableAdapters.ItemValidationTableAdapter();
|
||||
taKL = new DS_AppTableAdapters.KitListTableAdapter();
|
||||
taMat = new DS_AppTableAdapters.MaterialsTableAdapter();
|
||||
taNest = new DS_AppTableAdapters.NestingTableAdapter();
|
||||
taOffOL = new DS_AppTableAdapters.OfflineOrderListTableAdapter();
|
||||
taOO2I = new DS_AppTableAdapters.OffOrd2ItemTableAdapter();
|
||||
taOKIB = new DS_AppTableAdapters.OKIBTableAdapter();
|
||||
taOKIB_Sum = new DS_AppTableAdapters.OKIB_SumTableAdapter();
|
||||
taOKOI = new DS_AppTableAdapters.OKOITableAdapter();
|
||||
taOKOI_Sum = new DS_AppTableAdapters.OKOI_sumTableAdapter();
|
||||
taOL = new DS_AppTableAdapters.OrderListTableAdapter();
|
||||
taOLT = new DS_AppTableAdapters.OrderListTreeTableAdapter();
|
||||
taOtItem = new DS_AppTableAdapters.OtherItemTableAdapter();
|
||||
taPL = new DS_AppTableAdapters.PackListTableAdapter();
|
||||
taPlac = new DS_AppTableAdapters.PlacesTableAdapter();
|
||||
taPlant = new DS_AppTableAdapters.PlantListTableAdapter();
|
||||
taPLC = new DS_AppTableAdapters.PackCheckTableAdapter();
|
||||
taPLD = new DS_AppTableAdapters.PackListDetTableAdapter();
|
||||
taPLog = new DS_AppTableAdapters.PackLogTableAdapter();
|
||||
taPVP = new DS_AppTableAdapters.PartValidParetoTableAdapter();
|
||||
taRem = new DS_AppTableAdapters.RemnantsTableAdapter();
|
||||
taStatDec = new DS_AppTableAdapters.StatusDecodeTableAdapter();
|
||||
taStatLog = new DS_AppTableAdapters.StatusLogTableAdapter();
|
||||
taSTL = new DS_AppTableAdapters.StackListTableAdapter();
|
||||
taSHL = new DS_AppTableAdapters.SheetListTableAdapter();
|
||||
taSP = new DS_AppTableAdapters.SheetsPreviewTableAdapter();
|
||||
taSpecialPart = new DS_AppTableAdapters.SpecialPartsTableAdapter();
|
||||
taElPos = new DS_ReportTableAdapters.ElencoPostazioniTableAdapter();
|
||||
taPJQ = new DS_ReportTableAdapters.PrintJobQueueTableAdapter();
|
||||
taRepBin = new DS_ReportTableAdapters.stp_prt_BinTableAdapter();
|
||||
taRepBunkGroup = new DS_ReportTableAdapters.stp_prt_BunkGroupTableAdapter();
|
||||
taRepBunkList = new DS_ReportTableAdapters.stp_prt_BunkListTableAdapter();
|
||||
taRepCart = new DS_ReportTableAdapters.stp_prt_CartTableAdapter();
|
||||
taRepPart = new DS_ReportTableAdapters.stp_prt_PartTableAdapter();
|
||||
taRepSpecPart = new DS_ReportTableAdapters.stp_prt_SpecialPartTableAdapter();
|
||||
taRepOtherPart = new DS_ReportTableAdapters.stp_prt_OtherPartTableAdapter();
|
||||
taRepIRK = new DS_ReportTableAdapters.stp_prt_IRKTableAdapter();
|
||||
taRepIRKSum = new DS_ReportTableAdapters.stp_prt_IRK_SumTableAdapter();
|
||||
taShStats = new DS_AppTableAdapters.SheetStatsTableAdapter();
|
||||
taUpdMan = new DS_AppTableAdapters.UpdManTableAdapter();
|
||||
taUStat = new DS_AppTableAdapters.UnloadStatsTableAdapter();
|
||||
}
|
||||
|
||||
private void setupConnString()
|
||||
{
|
||||
string connString = memLayer.ML.confReadString("NKC_WFConnectionString");
|
||||
taBL.Connection.ConnectionString = connString;
|
||||
taBN.Connection.ConnectionString = connString;
|
||||
taBNLS.Connection.ConnectionString = connString;
|
||||
taBStats.Connection.ConnectionString = connString;
|
||||
taCL.Connection.ConnectionString = connString;
|
||||
taCOK.Connection.ConnectionString = connString;
|
||||
taCount.Connection.ConnectionString = connString;
|
||||
taCR.Connection.ConnectionString = connString;
|
||||
taDayStats.Connection.ConnectionString = connString;
|
||||
taEL.Connection.ConnectionString = connString;
|
||||
taFV.Connection.ConnectionString = connString;
|
||||
taIL.Connection.ConnectionString = connString;
|
||||
taImpLog.Connection.ConnectionString = connString;
|
||||
taISD.Connection.ConnectionString = connString;
|
||||
taIV.Connection.ConnectionString = connString;
|
||||
taKL.Connection.ConnectionString = connString;
|
||||
taMat.Connection.ConnectionString = connString;
|
||||
taNest.Connection.ConnectionString = connString;
|
||||
taOffOL.Connection.ConnectionString = connString;
|
||||
taOO2I.Connection.ConnectionString = connString;
|
||||
taOKIB.Connection.ConnectionString = connString;
|
||||
taOKIB_Sum.Connection.ConnectionString = connString;
|
||||
taOKOI.Connection.ConnectionString = connString;
|
||||
taOKOI_Sum.Connection.ConnectionString = connString;
|
||||
taOL.Connection.ConnectionString = connString;
|
||||
taOLT.Connection.ConnectionString = connString;
|
||||
taOtItem.Connection.ConnectionString = connString;
|
||||
taPL.Connection.ConnectionString = connString;
|
||||
taPlac.Connection.ConnectionString = connString;
|
||||
taPlant.Connection.ConnectionString = connString;
|
||||
taPLC.Connection.ConnectionString = connString;
|
||||
taPLD.Connection.ConnectionString = connString;
|
||||
taPLog.Connection.ConnectionString = connString;
|
||||
taPVP.Connection.ConnectionString = connString;
|
||||
taRem.Connection.ConnectionString = connString;
|
||||
taStatDec.Connection.ConnectionString = connString;
|
||||
taStatLog.Connection.ConnectionString = connString;
|
||||
taSTL.Connection.ConnectionString = connString;
|
||||
taSHL.Connection.ConnectionString = connString;
|
||||
taSP.Connection.ConnectionString = connString;
|
||||
taSpecialPart.Connection.ConnectionString = connString;
|
||||
taElPos.Connection.ConnectionString = connString;
|
||||
taPJQ.Connection.ConnectionString = connString;
|
||||
taRepBin.Connection.ConnectionString = connString;
|
||||
taRepBunkGroup.Connection.ConnectionString = connString;
|
||||
taRepBunkList.Connection.ConnectionString = connString;
|
||||
taRepCart.Connection.ConnectionString = connString;
|
||||
taRepPart.Connection.ConnectionString = connString;
|
||||
taRepSpecPart.Connection.ConnectionString = connString;
|
||||
taRepOtherPart.Connection.ConnectionString = connString;
|
||||
taRepIRK.Connection.ConnectionString = connString;
|
||||
taRepIRKSum.Connection.ConnectionString = connString;
|
||||
taShStats.Connection.ConnectionString = connString;
|
||||
taUStat.Connection.ConnectionString = connString;
|
||||
taUpdMan.Connection.ConnectionString = connString;
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
}
|
||||
+40
-9
@@ -6,14 +6,6 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace AppData
|
||||
{
|
||||
public enum StatType
|
||||
{
|
||||
BATCH = 1,
|
||||
BUNK,
|
||||
SHEET,
|
||||
CART,
|
||||
BIN
|
||||
}
|
||||
public enum cssClass
|
||||
{
|
||||
ND,
|
||||
@@ -25,4 +17,43 @@ namespace AppData
|
||||
danger
|
||||
}
|
||||
|
||||
}
|
||||
public enum ReportType
|
||||
{
|
||||
/// <summary>
|
||||
/// Non definito
|
||||
/// </summary>
|
||||
ND = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Statistiche Batch (PRE)
|
||||
/// </summary>
|
||||
BatchStats,
|
||||
|
||||
/// <summary>
|
||||
/// Report previsione scarico batch (num pezzi/sheet)
|
||||
/// </summary>
|
||||
BatchUnloadPreview,
|
||||
|
||||
/// <summary>
|
||||
/// Report produttività giornaliera (POST)
|
||||
/// </summary>
|
||||
DailyReport
|
||||
}
|
||||
|
||||
public enum Stations
|
||||
{
|
||||
LINE = 0,
|
||||
PRINTER,
|
||||
NC_MACHINE,
|
||||
UNLOADER
|
||||
}
|
||||
|
||||
public enum StatType
|
||||
{
|
||||
BATCH = 1,
|
||||
BUNK,
|
||||
SHEET,
|
||||
CART,
|
||||
BIN
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AppData
|
||||
{
|
||||
public class chartJsTSerie
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
public string label { get; set; } = "";
|
||||
public DateTime x { get; set; }
|
||||
public decimal y { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
public class chartJsTVal
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
public string x { get; set; }
|
||||
public decimal y { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
public class chartJsXY
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
public decimal x { get; set; }
|
||||
public decimal y { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
// <Auto-Generated>
|
||||
// This is here so CodeMaid doesn't reorganize this document
|
||||
// </Auto-Generated>
|
||||
|
||||
public class FileBatchStats
|
||||
{
|
||||
public string FileCsv { get; set; } = "";
|
||||
public double Yeld { get; set; } = 0;
|
||||
public int NumMaterials { get; set; } = 0;
|
||||
public int NumSheets { get; set; } = 0;
|
||||
public int NumModels { get; set; } = 0;
|
||||
public int NumKit { get; set; } = 0;
|
||||
public int NumParts { get; set; } = 0;
|
||||
public int NumPainted { get; set; } = 0;
|
||||
}
|
||||
|
||||
// <Auto-Generated>
|
||||
// This is here so CodeMaid doesn't reorganize this document
|
||||
// </Auto-Generated>
|
||||
|
||||
public class DayStats
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
public DateTime DTime { get; set; }
|
||||
|
||||
public string Machine { get; set; } = "";
|
||||
|
||||
public double OEE
|
||||
{
|
||||
get
|
||||
{
|
||||
var denom = AvailTime > 0 ? AvailTime : 1;
|
||||
return RunTime / denom;
|
||||
}
|
||||
}
|
||||
|
||||
public double AvgPartHour
|
||||
{
|
||||
get
|
||||
{
|
||||
var denom = RunTime > 0 ? RunTime : 1;
|
||||
return PartProd / denom;
|
||||
}
|
||||
}
|
||||
|
||||
public double RunTime { get; set; } = 0;
|
||||
|
||||
public double AvailTime { get; set; } = 0;
|
||||
|
||||
|
||||
public int PartProd { get; set; } = 0;
|
||||
|
||||
public int PartScrap { get; set; } = 0;
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Generated
+7
-7
@@ -1,10 +1,10 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Il codice è stato generato da uno strumento.
|
||||
// Versione runtime:4.0.30319.42000
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se
|
||||
// il codice viene rigenerato.
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace AppData.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.2.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.13.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
@@ -26,8 +26,8 @@ namespace AppData.Properties {
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Data Source=10.74.82.14;Initial Catalog=Sauder_NKC;Persist Security Info=True;Use" +
|
||||
"r ID=conn_NKC;Password=pwd_NKC")]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Data Source=SQL2016DEV;Initial Catalog=Sauder_NKC;Persist Security Info=True;User" +
|
||||
" ID=sa;Password=keyhammer16;TrustServerCertificate=True;")]
|
||||
public string Sauder_NKCConnectionString {
|
||||
get {
|
||||
return ((string)(this["Sauder_NKCConnectionString"]));
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
<Settings>
|
||||
<Setting Name="Sauder_NKCConnectionString" Type="(Connection string)" Scope="Application">
|
||||
<DesignTimeValue Profile="(Default)"><?xml version="1.0" encoding="utf-16"?>
|
||||
<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<ConnectionString>Data Source=10.74.82.14;Initial Catalog=Sauder_NKC;Persist Security Info=True;User ID=conn_NKC;Password=pwd_NKC</ConnectionString>
|
||||
<SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<ConnectionString>Data Source=SQL2016DEV;Initial Catalog=Sauder_NKC;Persist Security Info=True;User ID=sa;Password=keyhammer16;TrustServerCertificate=True;</ConnectionString>
|
||||
<ProviderName>System.Data.SqlClient</ProviderName>
|
||||
</SerializableConnectionString></DesignTimeValue>
|
||||
<Value Profile="(Default)">Data Source=10.74.82.14;Initial Catalog=Sauder_NKC;Persist Security Info=True;User ID=conn_NKC;Password=pwd_NKC</Value>
|
||||
<Value Profile="(Default)">Data Source=SQL2016DEV;Initial Catalog=Sauder_NKC;Persist Security Info=True;User ID=sa;Password=keyhammer16;TrustServerCertificate=True;</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
+42
-24
@@ -1,31 +1,49 @@
|
||||
using SteamWare;
|
||||
using NKC_SDK;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
|
||||
namespace AppData
|
||||
{
|
||||
public class utils
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="filePath"></param>
|
||||
/// <returns></returns>
|
||||
public static string getPath(string filePath)
|
||||
public class utils
|
||||
{
|
||||
string answ = "";
|
||||
try
|
||||
{
|
||||
answ = HttpContext.Current.Server.MapPath(filePath);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"{ComLib.traduci("UtilsErrorMapPath")}:{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
|
||||
}
|
||||
return answ;
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="filePath"></param>
|
||||
/// <returns></returns>
|
||||
public static string getPath(string filePath)
|
||||
{
|
||||
string answ = "";
|
||||
try
|
||||
{
|
||||
answ = HttpContext.Current.Server.MapPath(filePath);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"{ComLib.traduci("UtilsErrorMapPath")}:{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
public static void SaveToCsv<T>(List<T> reportData, string path)
|
||||
{
|
||||
var lines = new List<string>();
|
||||
IEnumerable<PropertyDescriptor> props = TypeDescriptor.GetProperties(typeof(T)).OfType<PropertyDescriptor>();
|
||||
var header = string.Join(";", props.ToList().Select(x => x.Name));
|
||||
lines.Add(header);
|
||||
var valueLines = reportData.Select(row => string.Join(";", header.Split(';').Select(a => row.GetType().GetProperty(a).GetValue(row, null))));
|
||||
lines.AddRange(valueLines);
|
||||
File.WriteAllLines(path, lines.ToArray());
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+77
-45
@@ -1,48 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
</configSections>
|
||||
<connectionStrings>
|
||||
<add name="AppData.Properties.Settings.Sauder_NKCConnectionString" connectionString="Data Source=SQL2016DEV;Initial Catalog=Sauder_NKC;Persist Security Info=True;User ID=conn_NKC;Password=pwd_NKC" providerName="System.Data.SqlClient" />
|
||||
</connectionStrings>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="SharpCompress" publicKeyToken="afb0a02973931d96" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-0.24.0.0" newVersion="0.24.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<configSections>
|
||||
</configSections>
|
||||
<connectionStrings>
|
||||
<add name="AppData.Properties.Settings.Sauder_NKCConnectionString" connectionString="Data Source=SQL2016DEV;Initial Catalog=Sauder_NKC;Persist Security Info=True;User ID=sa;Password=keyhammer16;TrustServerCertificate=True;" providerName="System.Data.SqlClient" />
|
||||
</connectionStrings>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="SharpCompress" publicKeyToken="afb0a02973931d96" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-0.32.2.0" newVersion="0.32.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="DnsClient" publicKeyToken="4574bb5573c51424" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.7.0.0" newVersion="1.7.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Security.Cryptography.Pkcs" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.4.0.12" newVersion="1.4.0.12" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.0.1" newVersion="8.0.0.1" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
Binary file not shown.
+41
-24
@@ -1,33 +1,50 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AIM" version="1.0.3" targetFramework="net462" />
|
||||
<package id="AjaxControlToolkit" version="19.1.0" targetFramework="net462" />
|
||||
<package id="Crc32C.NET" version="1.0.5.0" targetFramework="net462" />
|
||||
<package id="DnsClient" version="1.2.0" targetFramework="net462" />
|
||||
<package id="Microsoft.NETCore.Platforms" version="3.1.0" targetFramework="net462" />
|
||||
<package id="AIM" version="1.1.0" targetFramework="net462" />
|
||||
<package id="AjaxControlToolkit" version="20.1.0" targetFramework="net462" />
|
||||
<package id="AWSSDK.Core" version="3.7.304.8" targetFramework="net462" />
|
||||
<package id="AWSSDK.SecurityToken" version="3.7.300.99" targetFramework="net462" />
|
||||
<package id="Crc32.NET" version="1.2.0" targetFramework="net462" />
|
||||
<package id="DnsClient" version="1.7.0" targetFramework="net462" />
|
||||
<package id="IronSnappy" version="1.3.1" targetFramework="net462" />
|
||||
<package id="Microsoft.Bcl.AsyncInterfaces" version="8.0.0" targetFramework="net462" />
|
||||
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="8.0.1" targetFramework="net462" />
|
||||
<package id="Microsoft.Extensions.Logging.Abstractions" version="8.0.1" targetFramework="net462" />
|
||||
<package id="Microsoft.NETCore.Platforms" version="7.0.4" targetFramework="net462" />
|
||||
<package id="Microsoft.ReportViewer.Runtime.Common" version="12.0.2402.15" targetFramework="net462" />
|
||||
<package id="Microsoft.ReportViewer.Runtime.WinForms" version="12.0.2402.15" targetFramework="net462" />
|
||||
<package id="MongoDB.Bson" version="2.10.2" targetFramework="net462" />
|
||||
<package id="MongoDB.Driver" version="2.10.2" targetFramework="net462" />
|
||||
<package id="MongoDB.Driver.Core" version="2.10.2" targetFramework="net462" />
|
||||
<package id="MongoDB.Libmongocrypt" version="1.0.0" targetFramework="net462" />
|
||||
<package id="MongoDB.Bson" version="2.25.0" targetFramework="net462" />
|
||||
<package id="MongoDB.Driver" version="2.25.0" targetFramework="net462" />
|
||||
<package id="MongoDB.Driver.Core" version="2.25.0" targetFramework="net462" />
|
||||
<package id="MongoDB.Libmongocrypt" version="1.9.0" targetFramework="net462" />
|
||||
<package id="NETStandard.Library" version="2.0.3" targetFramework="net462" />
|
||||
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net462" />
|
||||
<package id="NLog" version="4.6.8" targetFramework="net462" />
|
||||
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net462" />
|
||||
<package id="NLog" version="5.3.2" targetFramework="net462" />
|
||||
<package id="PDFsharp" version="1.50.5147" targetFramework="net462" />
|
||||
<package id="Pipelines.Sockets.Unofficial" version="2.1.1" targetFramework="net462" />
|
||||
<package id="SharpCompress" version="0.24.0" targetFramework="net462" />
|
||||
<package id="SharpZipLib" version="1.2.0" targetFramework="net462" />
|
||||
<package id="Snappy.NET" version="1.1.1.8" targetFramework="net462" />
|
||||
<package id="StackExchange.Redis" version="2.0.601" targetFramework="net462" />
|
||||
<package id="SteamWare" version="3.5.2001.709" targetFramework="net462" />
|
||||
<package id="System.Buffers" version="4.5.0" targetFramework="net462" />
|
||||
<package id="System.Diagnostics.PerformanceCounter" version="4.7.0" targetFramework="net462" />
|
||||
<package id="System.IO.Pipelines" version="4.7.0" targetFramework="net462" />
|
||||
<package id="System.Memory" version="4.5.3" targetFramework="net462" />
|
||||
<package id="Pipelines.Sockets.Unofficial" version="2.2.8" targetFramework="net462" />
|
||||
<package id="SharpCompress" version="0.32.2" targetFramework="net462" />
|
||||
<package id="SharpZipLib" version="1.4.0" targetFramework="net462" />
|
||||
<package id="Snappier" version="1.0.0" targetFramework="net462" />
|
||||
<package id="StackExchange.Redis" version="2.7.33" targetFramework="net462" />
|
||||
<package id="SteamWare" version="5.3.2311.2908" targetFramework="net462" />
|
||||
<package id="SteamWare.Logger" version="5.3.2311.2908" targetFramework="net462" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
|
||||
<package id="System.Diagnostics.PerformanceCounter" version="8.0.0" targetFramework="net462" />
|
||||
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.IO.Pipelines" version="8.0.0" targetFramework="net462" />
|
||||
<package id="System.Memory" version="4.5.5" targetFramework="net462" />
|
||||
<package id="System.Net.Http" version="4.3.4" targetFramework="net462" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.7.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.Threading.Channels" version="4.7.0" targetFramework="net462" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.3" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.Pkcs" version="8.0.0" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net462" />
|
||||
<package id="System.Text.Encoding.CodePages" version="8.0.0" targetFramework="net462" />
|
||||
<package id="System.Threading.Channels" version="8.0.0" targetFramework="net462" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net462" />
|
||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net462" />
|
||||
<package id="ZstdSharp.Port" version="0.7.3" targetFramework="net462" />
|
||||
</packages>
|
||||
+274
-202
@@ -16,127 +16,53 @@ namespace AppData
|
||||
/// </summary>
|
||||
public class reportPrinter
|
||||
{
|
||||
#region area codice da non modificare
|
||||
#region Private Fields
|
||||
|
||||
private int m_currentPageIndex;
|
||||
|
||||
/// <summary>
|
||||
/// stream del report...
|
||||
/// </summary>
|
||||
private IList<Stream> m_streams;
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// oggetto static/singleton per fare chiamate sul datalayer
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
|
||||
private int m_currentPageIndex;
|
||||
protected int logLevel = 0;
|
||||
protected bool doPdfCopy = false;
|
||||
protected int logLevel = 0;
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Public Fields
|
||||
|
||||
/// <summary>
|
||||
/// stream del report...
|
||||
/// singleton pubblico
|
||||
/// </summary>
|
||||
private IList<Stream> m_streams;
|
||||
public static reportPrinter obj = new reportPrinter();
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Protected Constructors
|
||||
|
||||
/// <summary>
|
||||
/// ciclo da fornire al renderizzatore dei report, per salvare 1 immagine da ogni pagina del report
|
||||
/// oggetto protected
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="fileNameExtension"></param>
|
||||
/// <param name="encoding"></param>
|
||||
/// <param name="mimeType"></param>
|
||||
/// <param name="willSeek"></param>
|
||||
/// <returns></returns>
|
||||
private Stream CreateStream(string name, string fileNameExtension, Encoding encoding, string mimeType, bool willSeek)
|
||||
/// <param name="args"></param>
|
||||
protected reportPrinter()
|
||||
{
|
||||
// creo files con nomi univoci...
|
||||
string filePathName = string.Format(@"~\temp\{0}_{1:HHmmss}_{1:ffff}.{2}", name, DateTime.Now, fileNameExtension);
|
||||
Stream stream = new FileStream(SteamWare.SteamwareStrings.getFilePath(filePathName), FileMode.Create);
|
||||
//Stream stream = new FileStream(SteamWare.SteamwareStrings.getFilePath(@"~\temp\" + name + "." + fileNameExtension), FileMode.Create);
|
||||
m_streams.Add(stream);
|
||||
return stream;
|
||||
}
|
||||
/// <summary>
|
||||
/// ciclo da fornire al renderizzatore dei report, per salvare 1 pdf da ogni pagina del report
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="fileNameExtension"></param>
|
||||
/// <param name="encoding"></param>
|
||||
/// <param name="mimeType"></param>
|
||||
/// <param name="willSeek"></param>
|
||||
/// <returns></returns>
|
||||
private Stream CreateStreamPdf(string name, string fileNameExtension, Encoding encoding, string mimeType, bool willSeek)
|
||||
{
|
||||
// creo Directory se non c'è
|
||||
SteamWare.fileMover fm = new fileMover(string.Format(@"{0}\{1:yyyy}\{1:MM}\{1:dd}\", memLayer.ML.confReadString("PdfFolder"), DateTime.Now), "");
|
||||
fm.checkDir();
|
||||
string pdfPathName = string.Format(@"{0}\{1:yyyy}\{1:MM}\{1:dd}\{2}_{1:HHmmss}_{1:ffff}.{3}", memLayer.ML.confReadString("PdfFolder"), DateTime.Now, name, fileNameExtension);
|
||||
//Stream stream = new FileStream(SteamWare.SteamwareStrings.getFilePath(@"~\temp\" + name + "." + fileNameExtension), FileMode.Create);
|
||||
Stream stream = new FileStream(SteamWare.SteamwareStrings.getFilePath(pdfPathName), FileMode.Create);
|
||||
m_streams.Add(stream);
|
||||
return stream;
|
||||
}
|
||||
/// <summary>
|
||||
/// Handler per PrintPageEvents
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="ev"></param>
|
||||
private void PrintPage(object sender, PrintPageEventArgs ev)
|
||||
{
|
||||
Metafile pageImage = new Metafile(m_streams[m_currentPageIndex]);
|
||||
ev.Graphics.DrawImage(pageImage, ev.PageBounds);
|
||||
m_currentPageIndex++;
|
||||
ev.HasMorePages = (m_currentPageIndex < m_streams.Count);
|
||||
}
|
||||
/// <summary>
|
||||
/// funzione di stampa...
|
||||
/// </summary>
|
||||
private void Print(string printerName)
|
||||
{
|
||||
//const string printerName = "Microsoft Office Document Image Writer";
|
||||
//const string printerName = "Brother HL-2170W series";
|
||||
if (m_streams == null || m_streams.Count == 0)
|
||||
return;
|
||||
PrintDocument printDoc = new PrintDocument();
|
||||
printDoc.PrinterSettings.PrinterName = printerName;
|
||||
if (!printDoc.PrinterSettings.IsValid)
|
||||
{
|
||||
logger.lg.scriviLog(String.Format("Impostazioni non valide per la stampante \"{0}\".", printerName), tipoLog.ERROR);
|
||||
return;
|
||||
}
|
||||
printDoc.PrintPage += new PrintPageEventHandler(PrintPage);
|
||||
printDoc.Print();
|
||||
}
|
||||
/// <summary>
|
||||
/// Export del report come EMF (Enhanced Metafile) file.
|
||||
/// </summary>
|
||||
/// <param name="report"></param>
|
||||
private void Export(LocalReport report, string deviceInfo)
|
||||
{
|
||||
Warning[] warnings;
|
||||
m_streams = new List<Stream>();
|
||||
report.Render("Image", deviceInfo, CreateStream, out warnings);
|
||||
foreach (Stream stream in m_streams) stream.Position = 0;
|
||||
}
|
||||
/// <summary>
|
||||
/// Export del report come PDF file.
|
||||
/// </summary>
|
||||
/// <param name="report"></param>
|
||||
private void ExportPDF(LocalReport report, string deviceInfo)
|
||||
{
|
||||
Warning[] warnings;
|
||||
m_streams = new List<Stream>();
|
||||
report.Render("PDF", deviceInfo, CreateStreamPdf, out warnings);
|
||||
foreach (Stream stream in m_streams) stream.Position = 0;
|
||||
}
|
||||
/// <summary>
|
||||
/// dispone l'applicazione e rilascia le risorse
|
||||
/// </summary>
|
||||
public void Dispose()
|
||||
{
|
||||
if (m_streams != null)
|
||||
{
|
||||
foreach (Stream stream in m_streams)
|
||||
stream.Close();
|
||||
m_streams = null;
|
||||
}
|
||||
logLevel = memLayer.ML.CRI("_logLevel");
|
||||
doPdfCopy = memLayer.ML.CRB("doPdfCopy");
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion Protected Constructors
|
||||
|
||||
#region area codice da modificare
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// carica i dati richiesti dal report dalla StoredProcedure (filtrando quindi...)
|
||||
@@ -157,43 +83,228 @@ namespace AppData
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
tab = (DataTable)DLMan.taRepBin.GetData(intIdx, true, imagePath, qrCodeBaseUrl);
|
||||
break;
|
||||
|
||||
case reportRichiesto.binPre:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
tab = (DataTable)DLMan.taRepBin.GetData(intIdx, false, imagePath, qrCodeBaseUrl);
|
||||
break;
|
||||
|
||||
case reportRichiesto.bunkGroup:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
tab = (DataTable)DLMan.taRepBunkGroup.GetData(intIdx, qrCodeBaseUrl);
|
||||
break;
|
||||
|
||||
case reportRichiesto.bunkList:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
tab = (DataTable)DLMan.taRepBunkList.GetData(intIdx, qrCodeBaseUrl);
|
||||
break;
|
||||
|
||||
case reportRichiesto.cart:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
tab = (DataTable)DLMan.taRepCart.GetData(intIdx, qrCodeBaseUrl);
|
||||
break;
|
||||
|
||||
case reportRichiesto.offline:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
tab = (DataTable)DLMan.taRepPart.GetData(intIdx, qrCodeBaseUrl);
|
||||
break;
|
||||
|
||||
case reportRichiesto.part:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
tab = (DataTable)DLMan.taRepPart.GetData(intIdx, qrCodeBaseUrl);
|
||||
break;
|
||||
|
||||
case reportRichiesto.cartIRKGroup:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
tab = (DataTable)DLMan.taRepIRKSum.GetData(intIdx, qrCodeBaseUrl);
|
||||
break;
|
||||
|
||||
case reportRichiesto.cartIRKList:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
tab = (DataTable)DLMan.taRepIRK.GetData(intIdx, qrCodeBaseUrl);
|
||||
break;
|
||||
|
||||
case reportRichiesto.cartSpecParts:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
tab = (DataTable)DLMan.taRepSpecPart.GetData(intIdx, imagePath, qrCodeBaseUrl);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return tab;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ciclo da fornire al renderizzatore dei report, per salvare 1 immagine da ogni pagina del report
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="fileNameExtension"></param>
|
||||
/// <param name="encoding"></param>
|
||||
/// <param name="mimeType"></param>
|
||||
/// <param name="willSeek"></param>
|
||||
/// <returns></returns>
|
||||
private Stream CreateStream(string name, string fileNameExtension, Encoding encoding, string mimeType, bool willSeek)
|
||||
{
|
||||
// creo files con nomi univoci...
|
||||
string filePathName = string.Format(@"~\temp\{0}_{1:HHmmss}_{1:ffff}.{2}", name, DateTime.Now, fileNameExtension);
|
||||
Stream stream = new FileStream(SteamWare.fileMover.getFilePath(filePathName), FileMode.Create);
|
||||
//Stream stream = new FileStream(SteamWare.SteamwareStrings.getFilePath(@"~\temp\" + name + "." + fileNameExtension), FileMode.Create);
|
||||
m_streams.Add(stream);
|
||||
return stream;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ciclo da fornire al renderizzatore dei report, per salvare 1 pdf da ogni pagina del report
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="fileNameExtension"></param>
|
||||
/// <param name="encoding"></param>
|
||||
/// <param name="mimeType"></param>
|
||||
/// <param name="willSeek"></param>
|
||||
/// <returns></returns>
|
||||
private Stream CreateStreamPdf(string name, string fileNameExtension, Encoding encoding, string mimeType, bool willSeek)
|
||||
{
|
||||
// creo Directory se non c'è
|
||||
SteamWare.fileMover fm = new fileMover(string.Format(@"{0}\{1:yyyy}\{1:MM}\{1:dd}\", memLayer.ML.confReadString("PdfFolder"), DateTime.Now), "");
|
||||
fm.checkDir();
|
||||
string pdfPathName = string.Format(@"{0}\{1:yyyy}\{1:MM}\{1:dd}\{2}_{1:HHmmss}_{1:ffff}.{3}", memLayer.ML.confReadString("PdfFolder"), DateTime.Now, name, fileNameExtension);
|
||||
//Stream stream = new FileStream(SteamWare.SteamwareStrings.getFilePath(@"~\temp\" + name + "." + fileNameExtension), FileMode.Create);
|
||||
Stream stream = new FileStream(SteamWare.fileMover.getFilePath(pdfPathName), FileMode.Create);
|
||||
m_streams.Add(stream);
|
||||
return stream;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// esegue print vero e proprio
|
||||
/// </summary>
|
||||
/// <param name="printerName"></param>
|
||||
/// <param name="report"></param>
|
||||
/// <param name="deviceInfo"></param>
|
||||
private void doEmfPrint(string printerName, LocalReport report, string deviceInfo)
|
||||
{
|
||||
// export in EMF
|
||||
Export(report, deviceInfo);
|
||||
m_currentPageIndex = 0;
|
||||
// stampo
|
||||
Print(printerName);
|
||||
// do dispose?
|
||||
Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// effettua stampa in PDF dei vari report in una cartella Anno/Mese/Giorno
|
||||
/// </summary>
|
||||
/// <param name="report"></param>
|
||||
/// <param name="deviceInfo"></param>
|
||||
private void doLocalPdfPrint(LocalReport report, string deviceInfo)
|
||||
{
|
||||
// export in PDF
|
||||
ExportPDF(report, deviceInfo);
|
||||
m_currentPageIndex = 0;
|
||||
// do dispose?
|
||||
Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export del report come EMF (Enhanced Metafile) file.
|
||||
/// </summary>
|
||||
/// <param name="report"></param>
|
||||
private void Export(LocalReport report, string deviceInfo)
|
||||
{
|
||||
Warning[] warnings;
|
||||
m_streams = new List<Stream>();
|
||||
report.Render("Image", deviceInfo, CreateStream, out warnings);
|
||||
foreach (Stream stream in m_streams) stream.Position = 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export del report come PDF file.
|
||||
/// </summary>
|
||||
/// <param name="report"></param>
|
||||
private void ExportPDF(LocalReport report, string deviceInfo)
|
||||
{
|
||||
Warning[] warnings;
|
||||
m_streams = new List<Stream>();
|
||||
report.Render("PDF", deviceInfo, CreateStreamPdf, out warnings);
|
||||
foreach (Stream stream in m_streams) stream.Position = 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// funzione di stampa...
|
||||
/// </summary>
|
||||
private void Print(string printerName)
|
||||
{
|
||||
//const string printerName = "Microsoft Office Document Image Writer";
|
||||
//const string printerName = "Brother HL-2170W series";
|
||||
if (m_streams == null || m_streams.Count == 0)
|
||||
return;
|
||||
PrintDocument printDoc = new PrintDocument();
|
||||
printDoc.PrinterSettings.PrinterName = printerName;
|
||||
if (!printDoc.PrinterSettings.IsValid)
|
||||
{
|
||||
Log.Instance.Error(String.Format("Impostazioni non valide per la stampante \"{0}\".", printerName));
|
||||
return;
|
||||
}
|
||||
printDoc.PrintPage += new PrintPageEventHandler(PrintPage);
|
||||
printDoc.Print();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// effettua la vera e propria fase di stampa
|
||||
/// </summary>
|
||||
/// <param name="keyParam"></param>
|
||||
/// <param name="printerName"></param>
|
||||
/// <param name="answ"></param>
|
||||
/// <param name="report"></param>
|
||||
/// <param name="deviceInfo"></param>
|
||||
/// <returns></returns>
|
||||
private bool printAndLog(string keyParam, string printerName, bool answ, reportRichiesto report, devInfoParam deviceInfo)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (logLevel > 5) Log.Instance.Info(String.Format("Sto per inviare un report alla stampante {0}", printerName));
|
||||
reportPrinter.obj.printReport(report, printerName, keyParam, deviceInfo);
|
||||
if (logLevel > 5) Log.Instance.Info(String.Format("inviato comando print alla stampante {0}", printerName));
|
||||
answ = true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Instance.Error(String.Format("Errore in fase di creazione e stampa report: stampante {0}, errore riscontrato {1}", printerName, e));
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handler per PrintPageEvents
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="ev"></param>
|
||||
private void PrintPage(object sender, PrintPageEventArgs ev)
|
||||
{
|
||||
Metafile pageImage = new Metafile(m_streams[m_currentPageIndex]);
|
||||
ev.Graphics.DrawImage(pageImage, ev.PageBounds);
|
||||
m_currentPageIndex++;
|
||||
ev.HasMorePages = (m_currentPageIndex < m_streams.Count);
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// dispone l'applicazione e rilascia le risorse
|
||||
/// </summary>
|
||||
public void Dispose()
|
||||
{
|
||||
if (m_streams != null)
|
||||
{
|
||||
foreach (Stream stream in m_streams)
|
||||
stream.Close();
|
||||
m_streams = null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Crea un report locale da file rdlc, carica i dati, esporta report come EMF file e quindi lo invia alla stampante
|
||||
/// </summary>
|
||||
@@ -215,39 +326,52 @@ namespace AppData
|
||||
report.ReportPath = string.Format(@"{0}\Bin.rdlc", repoBasePath);
|
||||
report.DataSources.Add(new ReportDataSource(memLayer.ML.cdv("ReportDS_DocBin"), caricaDati(tipoReport, keyParam)));
|
||||
break;
|
||||
|
||||
case reportRichiesto.binPre:
|
||||
report.ReportPath = string.Format(@"{0}\Bin.rdlc", repoBasePath);
|
||||
report.DataSources.Add(new ReportDataSource(memLayer.ML.cdv("ReportDS_DocBin"), caricaDati(tipoReport, keyParam)));
|
||||
break;
|
||||
|
||||
case reportRichiesto.bunkGroup:
|
||||
report.ReportPath = string.Format(@"{0}\BunkGroup.rdlc", repoBasePath);
|
||||
report.DataSources.Add(new ReportDataSource(memLayer.ML.cdv("ReportDS_DocBunkGroup"), caricaDati(tipoReport, keyParam)));
|
||||
break;
|
||||
|
||||
case reportRichiesto.bunkList:
|
||||
report.ReportPath = string.Format(@"{0}\BunkList.rdlc", repoBasePath);
|
||||
report.DataSources.Add(new ReportDataSource(memLayer.ML.cdv("ReportDS_DocBunkList"), caricaDati(tipoReport, keyParam)));
|
||||
break;
|
||||
|
||||
case reportRichiesto.cart:
|
||||
report.ReportPath = string.Format(@"{0}\Cart.rdlc", repoBasePath);
|
||||
report.DataSources.Add(new ReportDataSource(memLayer.ML.cdv("ReportDS_DocCart"), caricaDati(tipoReport, keyParam)));
|
||||
break;
|
||||
|
||||
case reportRichiesto.cartIRKGroup:
|
||||
report.ReportPath = string.Format(@"{0}\IRK_Kitting_Group.rdlc", repoBasePath);
|
||||
report.DataSources.Add(new ReportDataSource(memLayer.ML.cdv("ReportDS_DocIRKGroup"), caricaDati(tipoReport, keyParam)));
|
||||
break;
|
||||
|
||||
case reportRichiesto.cartIRKList:
|
||||
report.ReportPath = string.Format(@"{0}\IRK_Kitting_List.rdlc", repoBasePath);
|
||||
report.DataSources.Add(new ReportDataSource(memLayer.ML.cdv("ReportDS_DocIRKList"), caricaDati(tipoReport, keyParam)));
|
||||
break;
|
||||
|
||||
case reportRichiesto.offline:
|
||||
case reportRichiesto.part:
|
||||
report.ReportPath = string.Format(@"{0}\Part.rdlc", repoBasePath);
|
||||
report.DataSources.Add(new ReportDataSource(memLayer.ML.cdv("ReportDS_DocPart"), caricaDati(tipoReport, keyParam)));
|
||||
break;
|
||||
|
||||
case reportRichiesto.otherPart:
|
||||
report.ReportPath = string.Format(@"{0}\OtherPart.rdlc", repoBasePath);
|
||||
report.DataSources.Add(new ReportDataSource(memLayer.ML.cdv("ReportDS_DocOtherPart"), caricaDati(tipoReport, keyParam)));
|
||||
break;
|
||||
|
||||
case reportRichiesto.cartSpecParts:
|
||||
report.ReportPath = string.Format(@"{0}\SpecialParts.rdlc", repoBasePath);
|
||||
report.DataSources.Add(new ReportDataSource(memLayer.ML.cdv("ReportDS_DocCartSpecPart"), caricaDati(tipoReport, keyParam)));
|
||||
break;
|
||||
}
|
||||
deviceInfo = deviceInfoParam.xmlParam;
|
||||
doEmfPrint(printerName, report, deviceInfo);
|
||||
@@ -259,35 +383,38 @@ namespace AppData
|
||||
doLocalPdfPrint(report, deviceInfo);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// esegue print vero e proprio
|
||||
/// effettua pulizia della cartella temp x i files più vecchi di X ore (web.config)
|
||||
/// </summary>
|
||||
/// <param name="printerName"></param>
|
||||
/// <param name="report"></param>
|
||||
/// <param name="deviceInfo"></param>
|
||||
private void doEmfPrint(string printerName, LocalReport report, string deviceInfo)
|
||||
public void pulisciDir()
|
||||
{
|
||||
// export in EMF
|
||||
Export(report, deviceInfo);
|
||||
m_currentPageIndex = 0;
|
||||
// stampo
|
||||
Print(printerName);
|
||||
// do dispose?
|
||||
Dispose();
|
||||
}
|
||||
/// <summary>
|
||||
/// effettua stampa in PDF dei vari report in una cartella Anno/Mese/Giorno
|
||||
/// </summary>
|
||||
/// <param name="report"></param>
|
||||
/// <param name="deviceInfo"></param>
|
||||
private void doLocalPdfPrint(LocalReport report, string deviceInfo)
|
||||
{
|
||||
// export in PDF
|
||||
ExportPDF(report, deviceInfo);
|
||||
m_currentPageIndex = 0;
|
||||
// do dispose?
|
||||
Dispose();
|
||||
// num max ore di età x files "vecchi" da tenere in temp area...
|
||||
int maxOre = memLayer.ML.CRI("maxAgeTempAreaHours");
|
||||
int eliminati = 0;
|
||||
// ottengo elenco files *.emf
|
||||
fileMover.obj.setDirectory(@"~\temp\");
|
||||
FileInfo[] _fis = fileMover.obj.elencoFiles_FI("*.emf");
|
||||
bool fatto = false;
|
||||
foreach (FileInfo _file in _fis)
|
||||
{
|
||||
if (_file.CreationTime < DateTime.Now.AddHours(-maxOre)) // elimino files vecchi...
|
||||
{
|
||||
fatto = fileMover.obj.eliminaFile(_file);
|
||||
if (fatto)
|
||||
{
|
||||
Log.Instance.Info(String.Format("Eliminato file {0}", _file.Name));
|
||||
eliminati++;
|
||||
}
|
||||
}
|
||||
}
|
||||
// salvo il log degli update
|
||||
if (eliminati > 0)
|
||||
{
|
||||
Log.Instance.Info(String.Format("Eliminati {0} files temporanei da area temp", eliminati));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// effettua la stampa del cartellino indicato
|
||||
/// </summary>
|
||||
@@ -385,7 +512,7 @@ namespace AppData
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Errore in recupero IdxPrint Job:{exc}", tipoLog.EXCEPTION);
|
||||
Log.Instance.Error($"Errore in recupero IdxPrint Job:{exc}");
|
||||
}
|
||||
|
||||
// dimensioni pagina
|
||||
@@ -402,34 +529,47 @@ namespace AppData
|
||||
tipo = "docPaint";
|
||||
report = reportRichiesto.binPre;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docBinPost:
|
||||
tipo = "docPaintPost";
|
||||
report = reportRichiesto.binPost;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docCart:
|
||||
tipo = "docCart";
|
||||
report = reportRichiesto.cart;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docCartIRK:
|
||||
tipo = "docCartIRK";
|
||||
report = reportRichiesto.cartIRKList;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docCartIRKSum:
|
||||
tipo = "docCartIRKSum";
|
||||
report = reportRichiesto.cartIRKGroup;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docPart:
|
||||
tipo = "docPart";
|
||||
report = reportRichiesto.part;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docOtherPart:
|
||||
tipo = "docOtherPart";
|
||||
report = reportRichiesto.otherPart;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docCartSpecialPart:
|
||||
tipo = "docCartSpecialPart";
|
||||
report = reportRichiesto.cartSpecParts;
|
||||
break;
|
||||
|
||||
case tipoDocumento.docStack:
|
||||
tipo = "docStack";
|
||||
report = reportRichiesto.bunkGroup;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -468,79 +608,11 @@ namespace AppData
|
||||
{
|
||||
DLMan.taPJQ.updateStato(idxPrintJob, -1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// effettua la vera e propria fase di stampa
|
||||
/// </summary>
|
||||
/// <param name="keyParam"></param>
|
||||
/// <param name="printerName"></param>
|
||||
/// <param name="answ"></param>
|
||||
/// <param name="report"></param>
|
||||
/// <param name="deviceInfo"></param>
|
||||
/// <returns></returns>
|
||||
private bool printAndLog(string keyParam, string printerName, bool answ, reportRichiesto report, devInfoParam deviceInfo)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (logLevel > 5) logger.lg.scriviLog(String.Format("Sto per inviare un report alla stampante {0}", printerName), tipoLog.INFO);
|
||||
reportPrinter.obj.printReport(report, printerName, keyParam, deviceInfo);
|
||||
if (logLevel > 5) logger.lg.scriviLog(String.Format("inviato comando print alla stampante {0}", printerName), tipoLog.INFO);
|
||||
answ = true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
logger.lg.scriviLog(String.Format("Errore in fase di creazione e stampa report: stampante {0}, errore riscontrato {1}", printerName, e), tipoLog.EXCEPTION);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// oggetto protected
|
||||
/// </summary>
|
||||
/// <param name="args"></param>
|
||||
protected reportPrinter()
|
||||
{
|
||||
logLevel = memLayer.ML.CRI("_logLevel");
|
||||
doPdfCopy = memLayer.ML.CRB("doPdfCopy");
|
||||
}
|
||||
/// <summary>
|
||||
/// singleton pubblico
|
||||
/// </summary>
|
||||
public static reportPrinter obj = new reportPrinter();
|
||||
/// <summary>
|
||||
/// effettua pulizia della cartella temp x i files più vecchi di X ore (web.config)
|
||||
/// </summary>
|
||||
public void pulisciDir()
|
||||
{
|
||||
// num max ore di età x files "vecchi" da tenere in temp area...
|
||||
int maxOre = memLayer.ML.CRI("maxAgeTempAreaHours");
|
||||
int eliminati = 0;
|
||||
// ottengo elenco files *.emf
|
||||
fileMover.obj.setDirectory(@"~\temp\");
|
||||
FileInfo[] _fis = fileMover.obj.elencoFiles_FI("*.emf");
|
||||
bool fatto = false;
|
||||
foreach (FileInfo _file in _fis)
|
||||
{
|
||||
if (_file.CreationTime < DateTime.Now.AddHours(-maxOre)) // elimino files vecchi...
|
||||
{
|
||||
fatto = fileMover.obj.eliminaFile(_file);
|
||||
if (fatto)
|
||||
{
|
||||
logger.lg.scriviLog(String.Format("Eliminato file {0}", _file.Name), tipoLog.INFO);
|
||||
eliminati++;
|
||||
}
|
||||
}
|
||||
}
|
||||
// salvo il log degli update
|
||||
if (eliminati > 0)
|
||||
{
|
||||
logger.lg.scriviLog(String.Format("Eliminati {0} files temporanei da area temp", eliminati), tipoLog.INFO);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,12 @@
|
||||
<Version>10</Version>
|
||||
<SourceModelProvider>
|
||||
<ConnectionBasedModelProvider>
|
||||
<ConnectionString>Data Source=SQL2016DEV;Initial Catalog=Sauder_NKC;Persist Security Info=True;User ID=sa;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False</ConnectionString>
|
||||
<ConnectionString>Data Source=SQL2016DEV;Initial Catalog=Sauder_NKC;Integrated Security=True;Persist Security Info=False;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False</ConnectionString>
|
||||
</ConnectionBasedModelProvider>
|
||||
</SourceModelProvider>
|
||||
<TargetModelProvider>
|
||||
<ConnectionBasedModelProvider>
|
||||
<ConnectionString>Data Source=SQL2016PROD;Initial Catalog=Sauder_NKC_Prod;Persist Security Info=True;User ID=sa;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False</ConnectionString>
|
||||
<ConnectionString>Data Source=SQL2016PROD;Initial Catalog=Sauder_NKC2_Prod;Integrated Security=True;Persist Security Info=False;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False</ConnectionString>
|
||||
</ConnectionBasedModelProvider>
|
||||
</TargetModelProvider>
|
||||
<SchemaCompareSettingsService>
|
||||
@@ -35,6 +35,10 @@
|
||||
<Name>BackupDatabaseBeforeChanges</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>IgnoreIndexesStatisticsOnEnclaveEnabledColumns</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>BlockOnPossibleDataLoss</Name>
|
||||
<Value>True</Value>
|
||||
@@ -63,6 +67,10 @@
|
||||
<Name>DisableAndReenableDdlTriggers</Name>
|
||||
<Value>True</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>DisableIndexesForDataPhase</Name>
|
||||
<Value>True</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>DoNotAlterChangeDataCaptureObjects</Name>
|
||||
<Value>True</Value>
|
||||
@@ -107,6 +115,10 @@
|
||||
<Name>GenerateSmartDefaults</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>HashObjectNamesInLogs</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>IgnoreDdlTriggerOrder</Name>
|
||||
<Value>False</Value>
|
||||
@@ -267,10 +279,22 @@
|
||||
<Name>PopulateFilesOnFileGroups</Name>
|
||||
<Value>True</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>PreserveIdentityLastValues</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>RegisterDataTierApplication</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>RebuildIndexesOfflineForDataPhase</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>RestoreSequenceCurrentValue</Name>
|
||||
<Value>True</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>ScriptDatabaseCollation</Name>
|
||||
<Value>False</Value>
|
||||
@@ -301,11 +325,11 @@
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>TargetDatabaseName</Name>
|
||||
<Value>Sauder_NKC_Prod</Value>
|
||||
<Value>Sauder_NKC2_Prod</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>TargetConnectionString</Name>
|
||||
<Value>Data Source=SQL2016PROD;Initial Catalog=Sauder_NKC_Prod;Persist Security Info=True;User ID=sa;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False;Application Name="Microsoft SQL Server Data Tools, Schema Compare"</Value>
|
||||
<Value>Data Source=SQL2016PROD;Initial Catalog=Sauder_NKC2_Prod;Integrated Security=True;Persist Security Info=False;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False;Application Name="Microsoft SQL Server Data Tools, Schema Compare"</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>TreatVerificationErrorsAsWarnings</Name>
|
||||
@@ -331,6 +355,10 @@
|
||||
<Name>AllowDropBlockingAssemblies</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>DoNotEvaluateSqlCmdVariables</Name>
|
||||
<Value>True</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>DoNotDropAggregates</Name>
|
||||
<Value>False</Value>
|
||||
@@ -399,6 +427,22 @@
|
||||
<Name>DoNotDropDatabaseTriggers</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>IgnoreDatabaseWorkloadGroups</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>DoNotDropDatabaseWorkloadGroups</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>IgnoreWorkloadClassifiers</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>DoNotDropWorkloadClassifiers</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>DoNotDropDefaults</Name>
|
||||
<Value>False</Value>
|
||||
@@ -431,10 +475,18 @@
|
||||
<Name>DoNotDropExternalFileFormats</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>DoNotDropExternalStreamingJobs</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>DoNotDropExternalTables</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>DoNotDropExternalStreams</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>DoNotDropFilegroups</Name>
|
||||
<Value>False</Value>
|
||||
@@ -675,10 +727,18 @@
|
||||
<Name>ExcludeExternalFileFormats</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>ExcludeExternalStreamingJobs</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>ExcludeExternalTables</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>ExcludeExternalStreams</Name>
|
||||
<Value>False</Value>
|
||||
</PropertyElementName>
|
||||
<PropertyElementName>
|
||||
<Name>ExcludeEventSessions</Name>
|
||||
<Value>True</Value>
|
||||
@@ -943,5 +1003,30 @@
|
||||
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlUser, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<Name>conn_NKC</Name>
|
||||
</SelectedItem>
|
||||
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlTable, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<Name>dbo</Name>
|
||||
<Name>ControlloDefrag</Name>
|
||||
</SelectedItem>
|
||||
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlExtendedProperty, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<Name>SqlTableBase</Name>
|
||||
<Name>dbo</Name>
|
||||
<Name>ControlloDefrag</Name>
|
||||
<Name>Note</Name>
|
||||
</SelectedItem>
|
||||
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlTable, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<Name>dbo</Name>
|
||||
<Name>BatchReqList_OLD</Name>
|
||||
</SelectedItem>
|
||||
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlExtendedProperty, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<Name>SqlColumn</Name>
|
||||
<Name>dbo</Name>
|
||||
<Name>BatchReqList_OLD</Name>
|
||||
<Name>OrdID</Name>
|
||||
<Name>MS_Description</Name>
|
||||
</SelectedItem>
|
||||
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlPrimaryKeyConstraint, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<Name>dbo</Name>
|
||||
<Name>PK_BatchReqList</Name>
|
||||
</SelectedItem>
|
||||
</ExcludedTargetElements>
|
||||
</SchemaComparison>
|
||||
Vendored
-284
@@ -1,284 +0,0 @@
|
||||
pipeline {
|
||||
// Declarative Pipeline MODE con Scripted Pipeline Syntax entro le chiamate script { }
|
||||
agent none
|
||||
environment {
|
||||
enableIIS01 = 'Y'
|
||||
enableIIS02 = 'Y'
|
||||
}
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
agent any
|
||||
steps {
|
||||
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
|
||||
script {
|
||||
withEnv(['NEXT_BUILD_NUMBER=369']) {
|
||||
// env.versionNumber = VersionNumber(versionNumberString : '1.2.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true)
|
||||
env.versionNumber = VersionNumber(versionNumberString : '1.2.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
|
||||
env.versionNumberBeta = VersionNumber(versionNumberString : '1.2.${BUILD_DATE_FORMATTED, "yyMM"}-beta.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
|
||||
env.APP_NAME = 'NKC'
|
||||
}
|
||||
}
|
||||
script {
|
||||
currentBuild.displayName = "${env.versionNumber}"
|
||||
if (env.BRANCH_NAME == "develop" || env.BRANCH_NAME.contains("DEMO") || env.BRANCH_NAME.contains("report")) {
|
||||
currentBuild.description = "TEST ${env.versionNumber}"
|
||||
}
|
||||
else {
|
||||
currentBuild.description = "BUILD ${env.versionNumber}"
|
||||
}
|
||||
}
|
||||
// CAMBIO numero versione + checkout NuGet in file sorgente!!!
|
||||
bat "e:\\fart.exe VersGen\\VersGen.cs 0.0.0.0 ${env.versionNumber} || EXIT /B 0"
|
||||
fixNuget("${WORKSPACE}\\NKC_WF.sln")
|
||||
}
|
||||
}
|
||||
stage('Build') {
|
||||
agent any
|
||||
steps {
|
||||
script {
|
||||
properties([buildDiscarder(logRotator(artifactDaysToKeepStr: '180', artifactNumToKeepStr: '30', daysToKeepStr: '360', numToKeepStr: '30')), pipelineTriggers([])])
|
||||
// CAMBIO numero versione + checkout NuGet in file sorgente!!!
|
||||
bat "e:\\fart.exe VersGen\\VersGen.cs 0.0.0.0 ${env.versionNumber} || EXIT /B 0"
|
||||
fixNuget("${WORKSPACE}\\NKC_WF.sln")
|
||||
}
|
||||
script {
|
||||
/* compilo installers in base al BRANCH del cliente... */
|
||||
if (env.BRANCH_NAME == "develop") {
|
||||
parallel (
|
||||
NKC_SITE: {
|
||||
sleep 0
|
||||
bat "\"${tool 'MSBuild-16.0'}\" NKC_WF/NKC_WF.csproj -target:Build /p:Configuration=Release /p:Platform=\"Any CPU\" /p:OutputPath=bin/ /m"
|
||||
},
|
||||
failFast: false)
|
||||
}
|
||||
else {
|
||||
echo 'Niente x Build (limitata a develop)...'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Deploy') {
|
||||
agent any
|
||||
steps {
|
||||
script {
|
||||
// CAMBIO numero versione + checkout NuGet in file sorgente!!!
|
||||
bat "e:\\fart.exe VersGen\\VersGen.cs 0.0.0.0 ${env.versionNumber} || EXIT /B 0"
|
||||
fixNuget("${WORKSPACE}\\NKC_WF.sln")
|
||||
}
|
||||
script {
|
||||
/* DEPLOY condizionale: master (Ufficio Seriate) / demo_ovh (Demo Online) */
|
||||
if (env.BRANCH_NAME == "master") {
|
||||
parallel (
|
||||
SITE_IIS02: {
|
||||
if(env.enableIIS02 == "Y")
|
||||
{
|
||||
sleep 1
|
||||
// SITE
|
||||
bat "\"${tool 'MSBuild-16.0'}\" \"/p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS02.pubxml /p:VisualStudioVersion=16.0 /p:RunCodeAnalysis=false /p:Configuration=Release /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ NKC_WF/NKC_WF.csproj"
|
||||
sleep 3
|
||||
}
|
||||
},
|
||||
failFast: false)
|
||||
}
|
||||
else if (env.BRANCH_NAME == "develop") {
|
||||
parallel (
|
||||
SITE_IIS01: {
|
||||
if(env.enableIIS01 == "Y")
|
||||
{
|
||||
sleep 3
|
||||
// SITE
|
||||
bat "\"${tool 'MSBuild-16.0'}\" \"/p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS01.pubxml /p:VisualStudioVersion=16.0 /p:RunCodeAnalysis=false /p:Configuration=Release /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ NKC_WF/NKC_WF.csproj"
|
||||
sleep 1
|
||||
}
|
||||
},
|
||||
failFast: false)
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Questo BRANCH non necessita di deploy...'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Installers') {
|
||||
// da rivedere: creare branch = versioni LEGACY, STABLE (LTS), INSIDER (ULTIMATE), e NON pubblicare DOCS (ex branch Giancarlo)... impostare filtro?
|
||||
agent any
|
||||
steps {
|
||||
// in primis cambio versione e NuGet
|
||||
script {
|
||||
// CAMBIO numero versione + checkout NuGet in file sorgente!!!
|
||||
bat "e:\\fart.exe VersGen\\VersGen.cs 0.0.0.0 ${env.versionNumber} || EXIT /B 0"
|
||||
fixNuget("${WORKSPACE}\\NKC_WF.sln")
|
||||
}
|
||||
// ora mi occupo delle operazioni di compressione e copia...
|
||||
script {
|
||||
/* compilo installers SOLO stable / beta */
|
||||
if (env.BRANCH_NAME == "stable" || env.BRANCH_NAME.contains("beta") ) {
|
||||
// calcolo il config...
|
||||
if (env.BRANCH_NAME == "beta") {
|
||||
env.config = "Debug"
|
||||
env.classifier = "unstable"
|
||||
}
|
||||
else if (env.BRANCH_NAME == "stable") {
|
||||
env.config = "Release"
|
||||
env.classifier = ""
|
||||
}
|
||||
|
||||
parallel (
|
||||
SITE_NKC: {
|
||||
sleep 0
|
||||
// SITE
|
||||
bat "\"${tool 'MSBuild-16.0'}\" \"/p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /T:Package /P:Configuration=Prod /p:PublishProfile=${env.BRANCH_NAME}.pubxml /p:VisualStudioVersion=16.0 /p:RunCodeAnalysis=false /p:AutoParameterizationWebConfigConnectionStrings=False /p:PackageLocation=Releases/${env.BRANCH_NAME}/NKC.zip /p:DeployIisAppPath=\"Default Web Site/NKC\" /p:PackageAsSingleFile=True /p:OutputPath=bin/ NKC_WF/NKC_WF.csproj"
|
||||
// pubblico su server deploy!
|
||||
publishToDeployServer("NKC_WF\\", "c:\\inetpub\\wwwroot\\SWS\\", "NKC")
|
||||
nexusArtifactUploader (
|
||||
artifacts: [
|
||||
[
|
||||
artifactId: 'NKC',
|
||||
classifier: "${env.classifier}",
|
||||
file: "NKC_WF\\Releases\\${env.BRANCH_NAME}\\NKC.zip",
|
||||
type: 'zip'
|
||||
]
|
||||
],
|
||||
credentialsId: 'bc9d8e92-4302-3266-817f-7b58501d12d5',
|
||||
//groupId: 'MP',
|
||||
nexusUrl: 'nexus.steamware.net',
|
||||
nexusVersion: 'nexus3',
|
||||
protocol: 'http',
|
||||
repository: 'SWS',
|
||||
version: "${env.versionNumber}"
|
||||
)
|
||||
},
|
||||
failFast: false)
|
||||
}
|
||||
/* preparo nuget pkg dell'SDK ma solo x branch SDK / beta */
|
||||
else if (env.BRANCH_NAME == "SDK" || env.BRANCH_NAME.contains("beta") ) {
|
||||
// calcolo il config...
|
||||
if (env.BRANCH_NAME == "beta") {
|
||||
env.config = "Debug"
|
||||
env.packVers = env.versionNumberBeta
|
||||
}
|
||||
else if (env.BRANCH_NAME == "SDK") {
|
||||
env.config = "Release"
|
||||
env.packVers = env.versionNumber
|
||||
}
|
||||
// elimino vecchie build...
|
||||
bat "del /f /q *.nupkg"
|
||||
// BUILD!
|
||||
bat "\"${tool 'MSBuild-16.0'}\" NKC_SDK\\NKC_SDK.csproj -target:Build /p:Configuration=${env.config} /p:Platform=\"Any CPU\" /p:OutputPath=bin/${env.config} /m"
|
||||
// creo package NuGet... con version in modo da fare ANCHE le beta
|
||||
bat "e:\\nuget.exe pack ${WORKSPACE}\\NKC_SDK\\NKC_SDK.csproj -properties Configuration=${env.config} -Version ${env.packVers}"
|
||||
|
||||
// lancio upload con nuget!
|
||||
echo 'Start upload with nuget push'
|
||||
bat "e:\\nuget setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted"
|
||||
bat "e:\\nuget.exe push NKC_SDK.${env.packVers}.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted"
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Questo BRANCH non necessita di installer...'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
success {
|
||||
sendSlack("Successful", "good")
|
||||
updateGitlabCommitStatus(name: 'jenkins-build', state: 'success')
|
||||
}
|
||||
failure {
|
||||
sendSlack("Failed", "danger")
|
||||
updateGitlabCommitStatus(name: 'jenkins-build', state: 'failed')
|
||||
}
|
||||
unstable {
|
||||
sendSlack("Unstable", "warning")
|
||||
updateGitlabCommitStatus(name: 'jenkins-build', state: 'failed')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Funzione x pubblicazione su server IIS di deploy
|
||||
def publishToDeployServer(prjPath, iisPath, packName) {
|
||||
echo "Richiesto esecuzione publishToDeployServer con parametri: " + prjPath + " | " + iisPath + " | " + packName
|
||||
// inizio copiando files di base da area VersGen...
|
||||
bat "xcopy /y VersGen\\ChangeLog.html " + prjPath + "Resources\\ChangeLog.html "
|
||||
bat "xcopy /y VersGen\\logoSteamware.png " + prjPath + "Resources\\logoSteamware.png "
|
||||
bat "xcopy /y VersGen\\manifest.xml " + prjPath + "Resources\\manifest.xml "
|
||||
// manifest.xml: aggiorno versNumber ed URL del branch di update...
|
||||
bat "e:\\fart.exe " + prjPath + "Resources\\manifest.xml 0.0.0.0 ${env.versionNumber} || EXIT /B 0"
|
||||
bat "e:\\fart.exe " + prjPath + "Resources\\manifest.xml {{BRANCHNAME}} ${env.BRANCH_NAME} || EXIT /B 0"
|
||||
bat "e:\\fart.exe " + prjPath + "Resources\\manifest.xml {{PACKNAME}} " + packName + " || EXIT /B 0"
|
||||
bat "e:\\fart.exe " + prjPath + "Resources\\ChangeLog.html {{CURRENT-REL}} ${env.versionNumber} || EXIT /B 0"
|
||||
writeFile file: prjPath + 'changeLog.log', text: "${getChangeString()}"
|
||||
powershell '(Get-Content ' + prjPath + 'Resources\\ChangeLog.html) | ForEach-Object { $_ -replace \"{{LAST-CHANGES}}\", \"${getChangeString()}\" } | Set-Content ' + prjPath + 'Resources\\ChangeLog.html'
|
||||
// copio ed esporto in IIS02 i vari files .xml, .html, .zip
|
||||
bat "xcopy /y " + prjPath + "Resources\\manifest.xml " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
|
||||
bat "xcopy /y " + prjPath + "Resources\\ChangeLog.html " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
|
||||
bat "xcopy /y " + prjPath + "Resources\\logoSteamware.png " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
|
||||
// salvo copia della versione...
|
||||
bat "xcopy /y " + prjPath + "\\Releases\\${env.BRANCH_NAME}\\* E:\\Staging\\byProd\\MP\\${env.BRANCH_NAME}\\" + packName + "\\${env.versionNumber}\\ "
|
||||
// copio x AutoUpdate deploy
|
||||
bat "xcopy /y " + prjPath + "\\Releases\\${env.BRANCH_NAME}\\" + packName + ".zip " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
|
||||
}
|
||||
@NonCPS
|
||||
// Funzione x recupero changeLog
|
||||
def getChangeString() {
|
||||
MAX_MSG_LEN = 100
|
||||
def changeString = ""
|
||||
|
||||
echo "Gathering SCM changes"
|
||||
def changeLogSets = currentBuild.changeSets
|
||||
for (int i = 0; i < changeLogSets.size(); i++) {
|
||||
def entries = changeLogSets[i].items
|
||||
for (int j = 0; j < entries.length; j++) {
|
||||
def entry = entries[j]
|
||||
truncated_msg = entry.msg.take(MAX_MSG_LEN)
|
||||
changeString += " - ${truncated_msg} [${entry.author}]\n"
|
||||
}
|
||||
}
|
||||
|
||||
if (!changeString) {
|
||||
changeString = " - Nessuna Modifica"
|
||||
}
|
||||
return changeString
|
||||
}
|
||||
|
||||
// Funzione x invio slack
|
||||
def sendSlack(status, colorCode) {
|
||||
slackSend (
|
||||
color: colorCode,
|
||||
channel: "#sauder-nkc-dev",
|
||||
failOnError: false,
|
||||
message: "${env.JOB_NAME} ${env.versionNumber} | " + status + ": Build ${env.BUILD_NUMBER}\n\n" +
|
||||
"Modifiche:\n " + getChangeString() + "\n\n Verifica build: <${env.BUILD_URL}|Apri>" + "\n"
|
||||
)
|
||||
}
|
||||
|
||||
// // Funzione x invio slack
|
||||
// def sendGitlab(status) {
|
||||
// gitlabCommitStatus(
|
||||
// builds: status,
|
||||
// [[connection: gitLabConnection('Gitlab'),
|
||||
// projectId: '1',
|
||||
// revisionHash: '']]
|
||||
// ){
|
||||
// // some block
|
||||
// }
|
||||
// }
|
||||
|
||||
// funzione x fix pacchetti nuget da NOSTRO repo Nexus con proxy
|
||||
def fixNuget(solutionFile) {
|
||||
// bat "e:\\nuget setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-group"
|
||||
// solo la prima volta va aggiunta...
|
||||
hasSource = bat "e:\\nuget sources list | find \"Steamware\" /C"
|
||||
if (hasSource == "0")
|
||||
{
|
||||
bat "e:\\nuget sources Add -Name \"Steamware Nexus\" -Source http://nexus.steamware.net/repository/nuget-group -username \"nugetUser\" -password \"viaDante16\""
|
||||
}
|
||||
else
|
||||
{
|
||||
bat "e:\\nuget sources Update -Name \"Steamware Nexus\" -Source http://nexus.steamware.net/repository/nuget-group -username \"nugetUser\" -password \"viaDante16\""
|
||||
}
|
||||
bat "e:\\nuget.exe restore ${solutionFile}"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
1.1.
|
||||
@@ -0,0 +1,332 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using NKC.Data.DbModels;
|
||||
using NKC.Data.DTO;
|
||||
using NLog;
|
||||
|
||||
namespace NKC.Data.Controllers
|
||||
{
|
||||
public class NKCController : IDisposable
|
||||
{
|
||||
#region Private Fields
|
||||
|
||||
private static IConfiguration _configuration = null!;
|
||||
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
public NKCController(IConfiguration configuration)
|
||||
{
|
||||
_configuration = configuration;
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
public bool DbForceMigrate()
|
||||
{
|
||||
bool answ = false;
|
||||
using (NKCContext localDbCtx = new NKCContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
localDbCtx.DbForceMigrate();
|
||||
answ = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in DbForceMigrate{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Log.Info("Dispose di NKCController");
|
||||
}
|
||||
|
||||
public List<MaterialDTO> MaterialsGetAll()
|
||||
{
|
||||
List<MaterialDTO> dbResult = new List<MaterialDTO>();
|
||||
using (NKCContext localDbCtx = new NKCContext(_configuration))
|
||||
{
|
||||
dbResult = localDbCtx
|
||||
.DbSetMaterials
|
||||
.Where(x => x.MatID > 0)
|
||||
.Select(x => new MaterialDTO()
|
||||
{
|
||||
MatID = x.MatID,
|
||||
MatExtCode = x.MatExtCode,
|
||||
MatDesc = x.MatDesc,
|
||||
LMm = x.LMm,
|
||||
WMm = x.WMm,
|
||||
TMm = x.TMm,
|
||||
ApprovUser = x.ApprovUser,
|
||||
ApprovDate = x.ApprovDate,
|
||||
NumSize = x.RemnantNav == null ? 0 : x.RemnantNav.Count,
|
||||
TotQty = x.RemnantNav == null ? 0 : x.RemnantNav.Sum(r => r.QtyAvail)
|
||||
}
|
||||
)
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
public List<MovMagModel> MovMagGetFilt(int RemnId, int numShow)
|
||||
{
|
||||
List<MovMagModel> dbResult = new List<MovMagModel>();
|
||||
using (NKCContext localDbCtx = new NKCContext(_configuration))
|
||||
{
|
||||
dbResult = localDbCtx
|
||||
.DbSetMovMag
|
||||
.Where(x => x.RemnID == RemnId)
|
||||
.OrderByDescending(o => o.DtRec)
|
||||
//.Include(m => m.RemnantNav)
|
||||
.Take(numShow)
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
public bool AddPrintJob(string tipoReport, string keyParam, string prtName)
|
||||
{
|
||||
bool done = false;
|
||||
using (NKCContext localDbCtx = new NKCContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
DateTime adesso = DateTime.Now;
|
||||
PrintJobQueue newRec = new PrintJobQueue()
|
||||
{
|
||||
TipoReport = tipoReport,
|
||||
KeyParam = keyParam,
|
||||
PrtName = prtName,
|
||||
Stato = 0,
|
||||
DtStart = adesso,
|
||||
DtLastTry = adesso
|
||||
};
|
||||
|
||||
localDbCtx.DbSetPrintJobQueues.Add(newRec);
|
||||
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in AddPrintJob:{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return done;
|
||||
}
|
||||
|
||||
public List<RemnantsModel> RemnantsGetAll()
|
||||
{
|
||||
List<RemnantsModel> dbResult = new List<RemnantsModel>();
|
||||
using (NKCContext localDbCtx = new NKCContext(_configuration))
|
||||
{
|
||||
dbResult = localDbCtx
|
||||
.DbSetRemnants
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
public RemnantsModel RemnantGetByid(int RemnId)
|
||||
{
|
||||
RemnantsModel? dbResult = new RemnantsModel();
|
||||
using (NKCContext localDbCtx = new NKCContext(_configuration))
|
||||
{
|
||||
dbResult = localDbCtx
|
||||
.DbSetRemnants
|
||||
.Where(x => x.RemnID == RemnId)
|
||||
.Include(m => m.MaterialNav)
|
||||
.FirstOrDefault();
|
||||
}
|
||||
if (dbResult == null)
|
||||
{
|
||||
dbResult = new RemnantsModel();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
public List<RemnantsModel> RemnantsGetFilt(int matId, int minQty)
|
||||
{
|
||||
List<RemnantsModel> dbResult = new List<RemnantsModel>();
|
||||
using (NKCContext localDbCtx = new NKCContext(_configuration))
|
||||
{
|
||||
dbResult = localDbCtx
|
||||
.DbSetRemnants
|
||||
.Where(x => (x.MatID == matId || matId == 0) && (x.QtyAvail >= minQty || minQty == 0))
|
||||
//.OrderBy(o => o.Area)d6
|
||||
.Include(m => m.MaterialNav)
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
public RemnantsModel RemnantGetByQr(string QrCode)
|
||||
{
|
||||
RemnantsModel? dbResult = new RemnantsModel();
|
||||
using (NKCContext localDbCtx = new NKCContext(_configuration))
|
||||
{
|
||||
var rawList = localDbCtx
|
||||
.DbSetRemnants
|
||||
.Include(m => m.MaterialNav)
|
||||
.ToList();
|
||||
|
||||
dbResult = rawList
|
||||
.Where(x => x.RemDtmx == QrCode)
|
||||
.FirstOrDefault();
|
||||
if (dbResult == null && QrCode.Contains("-"))
|
||||
{
|
||||
// split materiale/dimensione
|
||||
var decodedData = QrCode.Split('-');
|
||||
if (decodedData != null && decodedData.Length > 1)
|
||||
{
|
||||
// calcolo il codice ext
|
||||
int MatExtCode = 0;
|
||||
_=int.TryParse(decodedData[0].Replace("MT",""), out MatExtCode);
|
||||
// cerco il materiale
|
||||
var matRow = localDbCtx
|
||||
.DbSetMaterials
|
||||
.Where(x => x.MatExtCode == MatExtCode)
|
||||
.FirstOrDefault();
|
||||
if (matRow != null)
|
||||
{
|
||||
// calcolo lunghezza...
|
||||
decimal actLmm = decimal.Parse(decodedData[1])/1000;
|
||||
|
||||
// creo il record...
|
||||
dbResult = new RemnantsModel()
|
||||
{
|
||||
DtMod = DateTime.Now,
|
||||
Location = "MAG",
|
||||
MatID = matRow.MatID,
|
||||
WMm = matRow.WMm,
|
||||
TMm = matRow.TMm,
|
||||
LMm = actLmm,
|
||||
QtyAvail = 0
|
||||
};
|
||||
|
||||
// salvo sul DB
|
||||
localDbCtx.DbSetRemnants.Add(dbResult);
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (dbResult == null)
|
||||
{
|
||||
dbResult = new RemnantsModel();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
public bool RemnantsUpsert(RemnantsModel updItem, string userId)
|
||||
{
|
||||
bool done = false;
|
||||
using (NKCContext localDbCtx = new NKCContext(_configuration))
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
RemnantsModel? currData = localDbCtx
|
||||
.DbSetRemnants
|
||||
.Where(x => x.RemnID == updItem.RemnID)
|
||||
.FirstOrDefault();
|
||||
if (currData != null)
|
||||
{
|
||||
// aggiungo record variazione quantità...
|
||||
int delta = updItem.QtyAvail - currData.QtyAvail;
|
||||
if (delta != 0)
|
||||
{
|
||||
MovMagModel recMovMag = new MovMagModel()
|
||||
{
|
||||
DtRec = DateTime.Now,
|
||||
RemnID = updItem.RemnID,
|
||||
QtyRec = delta,
|
||||
UserId = userId
|
||||
};
|
||||
localDbCtx.DbSetMovMag.Add(recMovMag);
|
||||
}
|
||||
|
||||
// aggiorno valori
|
||||
currData.MatID = updItem.MatID;
|
||||
currData.DtMod = updItem.DtMod;
|
||||
currData.Location = updItem.Location;
|
||||
currData.Note = updItem.Note;
|
||||
currData.QtyAvail = updItem.QtyAvail;
|
||||
currData.LMm = updItem.LMm;
|
||||
currData.WMm = updItem.WMm;
|
||||
currData.TMm = updItem.TMm;
|
||||
localDbCtx.Entry(currData).State = EntityState.Modified;
|
||||
}
|
||||
else
|
||||
{
|
||||
// aggiungo record variazione quantità...
|
||||
MovMagModel recMovMag = new MovMagModel()
|
||||
{
|
||||
DtRec = DateTime.Now,
|
||||
RemnID = updItem.RemnID,
|
||||
QtyRec = updItem.QtyAvail
|
||||
};
|
||||
localDbCtx.DbSetMovMag.Add(recMovMag);
|
||||
|
||||
// aggiungo record puntuale
|
||||
currData = new RemnantsModel()
|
||||
{
|
||||
MatID = updItem.MatID,
|
||||
DtMod = updItem.DtMod,
|
||||
Location = updItem.Location,
|
||||
Note = updItem.Note,
|
||||
QtyAvail = updItem.QtyAvail,
|
||||
LMm = updItem.LMm,
|
||||
WMm = updItem.WMm,
|
||||
TMm = updItem.TMm
|
||||
};
|
||||
localDbCtx
|
||||
.DbSetRemnants
|
||||
.Add(currData);
|
||||
}
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in PlantUpdate:{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return done;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Annulla modifiche su una specifica entity (cancel update)
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <returns></returns>
|
||||
public bool rollBackEntity(object item)
|
||||
{
|
||||
bool answ = false;
|
||||
using (NKCContext localDbCtx = new NKCContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
if (localDbCtx.Entry(item).State == EntityState.Deleted || localDbCtx.Entry(item).State == EntityState.Modified)
|
||||
{
|
||||
localDbCtx.Entry(item).Reload();
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in rollBackEntity{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NKC.Data.DTO
|
||||
{
|
||||
|
||||
// <Auto-Generated>
|
||||
// This is here so CodeMaid doesn't reorganize this document
|
||||
// </Auto-Generated>
|
||||
public class MaterialDTO
|
||||
|
||||
{
|
||||
public int MatID { get; set; }
|
||||
|
||||
public int MatExtCode { get; set; } = 0;
|
||||
public string MatDesc { get; set; } = "";
|
||||
public DateTime ApprovDate { get; set; } = DateTime.Now.AddYears(10);
|
||||
public string ApprovUser { get; set; } = "";
|
||||
public decimal LMm { get; set; } = 0;
|
||||
public decimal WMm { get; set; } = 0;
|
||||
public decimal TMm { get; set; } = 0;
|
||||
|
||||
public string MatDtmx
|
||||
{
|
||||
get => $"MT{MatExtCode:00000000}";
|
||||
}
|
||||
|
||||
public decimal LIn
|
||||
{
|
||||
get => Math.Round(LMm / (decimal)25.4, 3);
|
||||
}
|
||||
public decimal WIn
|
||||
{
|
||||
get => Math.Round(WMm / (decimal)25.4, 3);
|
||||
}
|
||||
public decimal TIn
|
||||
{
|
||||
get => Math.Round(TMm / (decimal)25.4, 3);
|
||||
}
|
||||
|
||||
public int NumSize { get; set; } = 0;
|
||||
public int TotQty { get; set; } = 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NKC.Data.DTO
|
||||
{
|
||||
public class RemnantDTO
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace NKC.Data.DbModels
|
||||
{
|
||||
// <Auto-Generated>
|
||||
// This is here so CodeMaid doesn't reorganize this document
|
||||
// </Auto-Generated>
|
||||
[Table("Materials")]
|
||||
public partial class MaterialModel
|
||||
{
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int MatID { get; set; }
|
||||
|
||||
public int MatExtCode { get; set; } = 0;
|
||||
public string MatDesc { get; set; } = "";
|
||||
public DateTime ApprovDate { get; set; } = DateTime.Now.AddYears(10);
|
||||
public string ApprovUser { get; set; } = "";
|
||||
public decimal LMm { get; set; } = 0;
|
||||
public decimal WMm { get; set; }=0;
|
||||
public decimal TMm { get; set; }=0;
|
||||
|
||||
[NotMapped]
|
||||
public string MatDtmx {
|
||||
get => $"MT{MatExtCode:00000000}";
|
||||
}
|
||||
|
||||
|
||||
public virtual ICollection<RemnantsModel>? RemnantNav { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace NKC.Data.DbModels
|
||||
{
|
||||
// <Auto-Generated>
|
||||
// This is here so CodeMaid doesn't reorganize this document
|
||||
// </Auto-Generated>
|
||||
//[Index(nameof(Installazione), nameof(Active), nameof(DiskStatus))]
|
||||
[Table("MovMag")]
|
||||
public partial class MovMagModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Primary Key AUTO
|
||||
/// </summary>
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int MovID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// DateTime record
|
||||
/// </summary>
|
||||
public DateTime DtRec { get; set; } = DateTime.Now;
|
||||
|
||||
/// <summary>
|
||||
/// Ext ref for Remnants
|
||||
/// </summary>
|
||||
public int RemnID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Qty recorded (delta +/-)
|
||||
/// </summary>
|
||||
public int QtyRec { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// User modificatore
|
||||
/// </summary>
|
||||
public string UserId { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Navigation property to Remnant
|
||||
/// </summary>
|
||||
[ForeignKey("RemnID")]
|
||||
public virtual RemnantsModel? RemnantNav { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace NKC.Data.DbModels
|
||||
{
|
||||
|
||||
// <Auto-Generated>
|
||||
// This is here so CodeMaid doesn't reorganize this document
|
||||
// </Auto-Generated>
|
||||
[Table("PrintJobQueue")]
|
||||
public partial class PrintJobQueue
|
||||
{
|
||||
public int IdxPrintJob { get; set; }
|
||||
public string TipoReport { get; set; } = null!;
|
||||
public string KeyParam { get; set; } = null!;
|
||||
public string PrtName { get; set; } = null!;
|
||||
public DateTime DtStart { get; set; }
|
||||
public DateTime? DtEnd { get; set; }
|
||||
public int Stato { get; set; }
|
||||
public DateTime? DtLastTry { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace NKC.Data.DbModels
|
||||
{
|
||||
// <Auto-Generated>
|
||||
// This is here so CodeMaid doesn't reorganize this document
|
||||
// </Auto-Generated>
|
||||
//[Index(nameof(Installazione), nameof(Active), nameof(DiskStatus))]
|
||||
[Table("RemnantsList")]
|
||||
public partial class RemnantsModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Primary Key AUTO
|
||||
/// </summary>
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int RemnID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ext ref for Material
|
||||
/// </summary>
|
||||
public int MatID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Location
|
||||
/// </summary>
|
||||
public string Location { get; set; } = "";
|
||||
/// <summary>
|
||||
/// Qty available on wharehouse
|
||||
/// </summary>
|
||||
public int QtyAvail { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// DateTime last modification
|
||||
/// </summary>
|
||||
public DateTime DtMod { get; set; } = DateTime.Now.AddYears(10);
|
||||
|
||||
/// <summary>
|
||||
/// Remnant's Lenght
|
||||
/// </summary>
|
||||
public decimal LMm { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Remnant's Width
|
||||
/// </summary>
|
||||
public decimal WMm { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Remnant's Thikness
|
||||
/// </summary>
|
||||
public decimal TMm { get; set; } = 0;
|
||||
|
||||
[NotMapped]
|
||||
public decimal LIn
|
||||
{
|
||||
get => Math.Round(LMm / (decimal)25.4, 3);
|
||||
}
|
||||
[NotMapped]
|
||||
public decimal WIn
|
||||
{
|
||||
get => Math.Round(WMm / (decimal)25.4, 3);
|
||||
}
|
||||
[NotMapped]
|
||||
public decimal TIn
|
||||
{
|
||||
get => Math.Round(TMm / (decimal)25.4, 3);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Note (optional)
|
||||
/// </summary>
|
||||
public string Note { get; set; } = "";
|
||||
|
||||
[NotMapped]
|
||||
public decimal Area
|
||||
{
|
||||
get => LMm * WMm;
|
||||
}
|
||||
|
||||
|
||||
[NotMapped]
|
||||
public string RemDtmx
|
||||
{
|
||||
get
|
||||
{
|
||||
string answ = $"MT99999999-{LMm * 1000:00000000}";
|
||||
if (MaterialNav != null)
|
||||
{
|
||||
answ = $"MT{MaterialNav.MatExtCode:00000000}-{LMm * 1000:00000000}";
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Navigation property to Material
|
||||
/// </summary>
|
||||
[ForeignKey("MatID")]
|
||||
public virtual MaterialModel MaterialNav { get; set; } = null!;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NKC.Data
|
||||
{
|
||||
public class Enum
|
||||
{
|
||||
#region Public Enums
|
||||
|
||||
public enum RemnState
|
||||
{
|
||||
/// <summary>
|
||||
/// Non definito
|
||||
/// </summary>
|
||||
ND = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Selezionato x operazioni (veto interfaccia ad altri usi)
|
||||
/// </summary>
|
||||
Selected
|
||||
}
|
||||
|
||||
#endregion Public Enums
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using NKC.Data;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace NKC.Data.Migrations
|
||||
{
|
||||
[DbContext(typeof(NKCContext))]
|
||||
[Migration("20211118172800_InitDb")]
|
||||
partial class InitDb
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "6.0.0")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128);
|
||||
|
||||
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
|
||||
{
|
||||
b.Property<int>("MatID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MatID"), 1L, 1);
|
||||
|
||||
b.Property<DateTime>("ApprovDate")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("datetime")
|
||||
.HasDefaultValueSql("(getdate())");
|
||||
|
||||
b.Property<string>("ApprovUser")
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)")
|
||||
.HasDefaultValueSql("('')");
|
||||
|
||||
b.Property<decimal>("LMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("L_mm");
|
||||
|
||||
b.Property<string>("MatDesc")
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("nvarchar(500)")
|
||||
.HasDefaultValueSql("('')")
|
||||
.HasComment("Description");
|
||||
|
||||
b.Property<int>("MatExtCode")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<decimal>("TMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("T_mm");
|
||||
|
||||
b.Property<decimal>("WMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("W_mm");
|
||||
|
||||
b.HasKey("MatID");
|
||||
|
||||
b.HasIndex(new[] { "MatExtCode" }, "Idx_Materials_MatExtCode_Unique")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Materials");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace NKC.Data.Migrations
|
||||
{
|
||||
public partial class InitDb : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Materials",
|
||||
columns: table => new
|
||||
{
|
||||
MatID = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
MatExtCode = table.Column<int>(type: "int", nullable: false),
|
||||
MatDesc = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: false, defaultValueSql: "('')", comment: "Description"),
|
||||
ApprovDate = table.Column<DateTime>(type: "datetime", nullable: false, defaultValueSql: "(getdate())"),
|
||||
ApprovUser = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false, defaultValueSql: "('')"),
|
||||
L_mm = table.Column<decimal>(type: "decimal(18,3)", nullable: false),
|
||||
W_mm = table.Column<decimal>(type: "decimal(18,3)", nullable: false),
|
||||
T_mm = table.Column<decimal>(type: "decimal(18,3)", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Materials", x => x.MatID);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "Idx_Materials_MatExtCode_Unique",
|
||||
table: "Materials",
|
||||
column: "MatExtCode",
|
||||
unique: true);
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "Materials");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using NKC.Data;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace NKC.Data.Migrations
|
||||
{
|
||||
[DbContext(typeof(NKCContext))]
|
||||
[Migration("20211118173720_AddRemnantsTable")]
|
||||
partial class AddRemnantsTable
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "6.0.0")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128);
|
||||
|
||||
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
|
||||
{
|
||||
b.Property<int>("MatID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MatID"), 1L, 1);
|
||||
|
||||
b.Property<DateTime>("ApprovDate")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("datetime")
|
||||
.HasDefaultValueSql("(getdate())");
|
||||
|
||||
b.Property<string>("ApprovUser")
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)")
|
||||
.HasDefaultValueSql("('')");
|
||||
|
||||
b.Property<decimal>("LMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("L_mm");
|
||||
|
||||
b.Property<string>("MatDesc")
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("nvarchar(500)")
|
||||
.HasDefaultValueSql("('')")
|
||||
.HasComment("Description");
|
||||
|
||||
b.Property<int>("MatExtCode")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<decimal>("TMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("T_mm");
|
||||
|
||||
b.Property<decimal>("WMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("W_mm");
|
||||
|
||||
b.HasKey("MatID");
|
||||
|
||||
b.HasIndex(new[] { "MatExtCode" }, "Idx_Materials_MatExtCode_Unique")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Materials");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
|
||||
{
|
||||
b.Property<int>("RemnID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("RemnID"), 1L, 1);
|
||||
|
||||
b.Property<DateTime>("DtMod")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<decimal>("LMm")
|
||||
.HasColumnType("decimal(18,3)");
|
||||
|
||||
b.Property<string>("Location")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<int>("MatID")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Note")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<int>("QtyAvail")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<decimal>("TMm")
|
||||
.HasColumnType("decimal(18,3)");
|
||||
|
||||
b.Property<decimal>("WMm")
|
||||
.HasColumnType("decimal(18,3)");
|
||||
|
||||
b.HasKey("RemnID");
|
||||
|
||||
b.HasIndex("MatID");
|
||||
|
||||
b.ToTable("RemnantsList");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
|
||||
{
|
||||
b.HasOne("NKC.Data.DbModels.MaterialModel", "MaterialNav")
|
||||
.WithMany()
|
||||
.HasForeignKey("MatID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("MaterialNav");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace NKC.Data.Migrations
|
||||
{
|
||||
public partial class AddRemnantsTable : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.CreateTable(
|
||||
name: "RemnantsList",
|
||||
columns: table => new
|
||||
{
|
||||
RemnID = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
MatID = table.Column<int>(type: "int", nullable: false),
|
||||
Location = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||
QtyAvail = table.Column<int>(type: "int", nullable: false),
|
||||
DtMod = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||
LMm = table.Column<decimal>(type: "decimal(18,3)", nullable: false),
|
||||
WMm = table.Column<decimal>(type: "decimal(18,3)", nullable: false),
|
||||
TMm = table.Column<decimal>(type: "decimal(18,3)", nullable: false),
|
||||
Note = table.Column<string>(type: "nvarchar(max)", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_RemnantsList", x => x.RemnID);
|
||||
table.ForeignKey(
|
||||
name: "FK_RemnantsList_Materials_MatID",
|
||||
column: x => x.MatID,
|
||||
principalTable: "Materials",
|
||||
principalColumn: "MatID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_RemnantsList_MatID",
|
||||
table: "RemnantsList",
|
||||
column: "MatID");
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "RemnantsList");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using NKC.Data;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace NKC.Data.Migrations
|
||||
{
|
||||
[DbContext(typeof(NKCContext))]
|
||||
[Migration("20211119182450_AddMovMagTable")]
|
||||
partial class AddMovMagTable
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "6.0.0")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128);
|
||||
|
||||
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
|
||||
{
|
||||
b.Property<int>("MatID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MatID"), 1L, 1);
|
||||
|
||||
b.Property<DateTime>("ApprovDate")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("datetime")
|
||||
.HasDefaultValueSql("(getdate())");
|
||||
|
||||
b.Property<string>("ApprovUser")
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)")
|
||||
.HasDefaultValueSql("('')");
|
||||
|
||||
b.Property<decimal>("LMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("L_mm");
|
||||
|
||||
b.Property<string>("MatDesc")
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("nvarchar(500)")
|
||||
.HasDefaultValueSql("('')")
|
||||
.HasComment("Description");
|
||||
|
||||
b.Property<int>("MatExtCode")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<decimal>("TMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("T_mm");
|
||||
|
||||
b.Property<decimal>("WMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("W_mm");
|
||||
|
||||
b.HasKey("MatID");
|
||||
|
||||
b.HasIndex(new[] { "MatExtCode" }, "Idx_Materials_MatExtCode_Unique")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Materials");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MovMagModel", b =>
|
||||
{
|
||||
b.Property<int>("MovID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MovID"), 1L, 1);
|
||||
|
||||
b.Property<DateTime>("DtRec")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<int>("QtyRec")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("RemnID")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("MovID");
|
||||
|
||||
b.HasIndex("RemnID");
|
||||
|
||||
b.ToTable("MovMag");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
|
||||
{
|
||||
b.Property<int>("RemnID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("RemnID"), 1L, 1);
|
||||
|
||||
b.Property<DateTime>("DtMod")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<decimal>("LMm")
|
||||
.HasColumnType("decimal(18,3)");
|
||||
|
||||
b.Property<string>("Location")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<int>("MatID")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Note")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<int>("QtyAvail")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<decimal>("TMm")
|
||||
.HasColumnType("decimal(18,3)");
|
||||
|
||||
b.Property<decimal>("WMm")
|
||||
.HasColumnType("decimal(18,3)");
|
||||
|
||||
b.HasKey("RemnID");
|
||||
|
||||
b.HasIndex("MatID");
|
||||
|
||||
b.ToTable("RemnantsList");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MovMagModel", b =>
|
||||
{
|
||||
b.HasOne("NKC.Data.DbModels.RemnantsModel", "RemnantNav")
|
||||
.WithMany()
|
||||
.HasForeignKey("RemnID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("RemnantNav");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
|
||||
{
|
||||
b.HasOne("NKC.Data.DbModels.MaterialModel", "MaterialNav")
|
||||
.WithMany("RemnantNav")
|
||||
.HasForeignKey("MatID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("MaterialNav");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
|
||||
{
|
||||
b.Navigation("RemnantNav");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace NKC.Data.Migrations
|
||||
{
|
||||
public partial class AddMovMagTable : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "MovMag",
|
||||
columns: table => new
|
||||
{
|
||||
MovID = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
DtRec = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||
RemnID = table.Column<int>(type: "int", nullable: false),
|
||||
QtyRec = table.Column<int>(type: "int", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_MovMag", x => x.MovID);
|
||||
table.ForeignKey(
|
||||
name: "FK_MovMag_RemnantsList_RemnID",
|
||||
column: x => x.RemnID,
|
||||
principalTable: "RemnantsList",
|
||||
principalColumn: "RemnID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_MovMag_RemnID",
|
||||
table: "MovMag",
|
||||
column: "RemnID");
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "MovMag");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using NKC.Data;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace NKC.Data.Migrations
|
||||
{
|
||||
[DbContext(typeof(NKCContext))]
|
||||
[Migration("20211120074650_MovMagAddUserId")]
|
||||
partial class MovMagAddUserId
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "6.0.0")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128);
|
||||
|
||||
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
|
||||
{
|
||||
b.Property<int>("MatID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MatID"), 1L, 1);
|
||||
|
||||
b.Property<DateTime>("ApprovDate")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("datetime")
|
||||
.HasDefaultValueSql("(getdate())");
|
||||
|
||||
b.Property<string>("ApprovUser")
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)")
|
||||
.HasDefaultValueSql("('')");
|
||||
|
||||
b.Property<decimal>("LMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("L_mm");
|
||||
|
||||
b.Property<string>("MatDesc")
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("nvarchar(500)")
|
||||
.HasDefaultValueSql("('')")
|
||||
.HasComment("Description");
|
||||
|
||||
b.Property<int>("MatExtCode")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<decimal>("TMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("T_mm");
|
||||
|
||||
b.Property<decimal>("WMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("W_mm");
|
||||
|
||||
b.HasKey("MatID");
|
||||
|
||||
b.HasIndex(new[] { "MatExtCode" }, "Idx_Materials_MatExtCode_Unique")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Materials");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MovMagModel", b =>
|
||||
{
|
||||
b.Property<int>("MovID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MovID"), 1L, 1);
|
||||
|
||||
b.Property<DateTime>("DtRec")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<int>("QtyRec")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("RemnID")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("UserId")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.HasKey("MovID");
|
||||
|
||||
b.HasIndex("RemnID");
|
||||
|
||||
b.ToTable("MovMag");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
|
||||
{
|
||||
b.Property<int>("RemnID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("RemnID"), 1L, 1);
|
||||
|
||||
b.Property<DateTime>("DtMod")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<decimal>("LMm")
|
||||
.HasColumnType("decimal(18,3)");
|
||||
|
||||
b.Property<string>("Location")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<int>("MatID")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Note")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<int>("QtyAvail")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<decimal>("TMm")
|
||||
.HasColumnType("decimal(18,3)");
|
||||
|
||||
b.Property<decimal>("WMm")
|
||||
.HasColumnType("decimal(18,3)");
|
||||
|
||||
b.HasKey("RemnID");
|
||||
|
||||
b.HasIndex("MatID");
|
||||
|
||||
b.ToTable("RemnantsList");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MovMagModel", b =>
|
||||
{
|
||||
b.HasOne("NKC.Data.DbModels.RemnantsModel", "RemnantNav")
|
||||
.WithMany()
|
||||
.HasForeignKey("RemnID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("RemnantNav");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
|
||||
{
|
||||
b.HasOne("NKC.Data.DbModels.MaterialModel", "MaterialNav")
|
||||
.WithMany("RemnantNav")
|
||||
.HasForeignKey("MatID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("MaterialNav");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
|
||||
{
|
||||
b.Navigation("RemnantNav");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace NKC.Data.Migrations
|
||||
{
|
||||
public partial class MovMagAddUserId : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
|
||||
|
||||
migrationBuilder.AddColumn<string>(
|
||||
name: "UserId",
|
||||
table: "MovMag",
|
||||
type: "nvarchar(max)",
|
||||
nullable: false,
|
||||
defaultValue: "");
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "UserId",
|
||||
table: "MovMag");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using NKC.Data;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace NKC.Data.Migrations
|
||||
{
|
||||
[DbContext(typeof(NKCContext))]
|
||||
partial class NKCContextModelSnapshot : ModelSnapshot
|
||||
{
|
||||
protected override void BuildModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "6.0.0")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128);
|
||||
|
||||
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
|
||||
{
|
||||
b.Property<int>("MatID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MatID"), 1L, 1);
|
||||
|
||||
b.Property<DateTime>("ApprovDate")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("datetime")
|
||||
.HasDefaultValueSql("(getdate())");
|
||||
|
||||
b.Property<string>("ApprovUser")
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)")
|
||||
.HasDefaultValueSql("('')");
|
||||
|
||||
b.Property<decimal>("LMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("L_mm");
|
||||
|
||||
b.Property<string>("MatDesc")
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("nvarchar(500)")
|
||||
.HasDefaultValueSql("('')")
|
||||
.HasComment("Description");
|
||||
|
||||
b.Property<int>("MatExtCode")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<decimal>("TMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("T_mm");
|
||||
|
||||
b.Property<decimal>("WMm")
|
||||
.HasColumnType("decimal(18,3)")
|
||||
.HasColumnName("W_mm");
|
||||
|
||||
b.HasKey("MatID");
|
||||
|
||||
b.HasIndex(new[] { "MatExtCode" }, "Idx_Materials_MatExtCode_Unique")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Materials");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MovMagModel", b =>
|
||||
{
|
||||
b.Property<int>("MovID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("MovID"), 1L, 1);
|
||||
|
||||
b.Property<DateTime>("DtRec")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<int>("QtyRec")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("RemnID")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("UserId")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.HasKey("MovID");
|
||||
|
||||
b.HasIndex("RemnID");
|
||||
|
||||
b.ToTable("MovMag");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
|
||||
{
|
||||
b.Property<int>("RemnID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("RemnID"), 1L, 1);
|
||||
|
||||
b.Property<DateTime>("DtMod")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<decimal>("LMm")
|
||||
.HasColumnType("decimal(18,3)");
|
||||
|
||||
b.Property<string>("Location")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<int>("MatID")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Note")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<int>("QtyAvail")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<decimal>("TMm")
|
||||
.HasColumnType("decimal(18,3)");
|
||||
|
||||
b.Property<decimal>("WMm")
|
||||
.HasColumnType("decimal(18,3)");
|
||||
|
||||
b.HasKey("RemnID");
|
||||
|
||||
b.HasIndex("MatID");
|
||||
|
||||
b.ToTable("RemnantsList");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MovMagModel", b =>
|
||||
{
|
||||
b.HasOne("NKC.Data.DbModels.RemnantsModel", "RemnantNav")
|
||||
.WithMany()
|
||||
.HasForeignKey("RemnID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("RemnantNav");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.RemnantsModel", b =>
|
||||
{
|
||||
b.HasOne("NKC.Data.DbModels.MaterialModel", "MaterialNav")
|
||||
.WithMany("RemnantNav")
|
||||
.HasForeignKey("MatID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("MaterialNav");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NKC.Data.DbModels.MaterialModel", b =>
|
||||
{
|
||||
b.Navigation("RemnantNav");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Migrations\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.1" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.1" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.1" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.1">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="NLog" Version="4.7.13" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,167 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using NKC.Data.DbModels;
|
||||
using NLog;
|
||||
|
||||
namespace NKC.Data
|
||||
{
|
||||
public partial class NKCContext : DbContext
|
||||
{
|
||||
#region Private Fields
|
||||
|
||||
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
private IConfiguration _configuration = null!;
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Indispensabile x prima generazione migrations EFCore
|
||||
/// </summary>
|
||||
[Obsolete("This constructor should never be used directly, and is only needed to generate entityframework stuff. Connection string can be adapted as pleased.")]
|
||||
public NKCContext()
|
||||
{
|
||||
}
|
||||
|
||||
public NKCContext(IConfiguration configuration)
|
||||
{
|
||||
_configuration = configuration;
|
||||
}
|
||||
|
||||
public NKCContext(DbContextOptions<NKCContext> options) : base(options)
|
||||
{
|
||||
try
|
||||
{
|
||||
// se non ci fosse... crea o migra!
|
||||
Database.Migrate();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error(exc, "Exception during context initialization 02");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Properties
|
||||
|
||||
public virtual DbSet<MaterialModel> DbSetMaterials { get; set; } = null!;
|
||||
public virtual DbSet<RemnantsModel> DbSetRemnants { get; set; } = null!;
|
||||
public virtual DbSet<MovMagModel> DbSetMovMag { get; set; } = null!;
|
||||
public virtual DbSet<PrintJobQueue> DbSetPrintJobQueues { get; set; } = null!;
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Private Methods
|
||||
|
||||
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
|
||||
|
||||
#endregion Private Methods
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
if (!optionsBuilder.IsConfigured)
|
||||
{
|
||||
string connString = _configuration.GetConnectionString("NKC.DB");
|
||||
if (!string.IsNullOrEmpty(connString))
|
||||
{
|
||||
optionsBuilder.UseSqlServer(connString);
|
||||
}
|
||||
else
|
||||
{
|
||||
optionsBuilder.UseSqlServer("Server=SQL2016DEV;Database=Sauder_NKC;Trusted_Connection=True;");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<MaterialModel>(entity =>
|
||||
{
|
||||
|
||||
entity.HasIndex(e => e.MatExtCode, "Idx_Materials_MatExtCode_Unique")
|
||||
.IsUnique();
|
||||
|
||||
entity.Property(e => e.ApprovDate)
|
||||
.HasColumnType("datetime")
|
||||
.HasDefaultValueSql("(getdate())");
|
||||
|
||||
entity.Property(e => e.ApprovUser)
|
||||
.HasMaxLength(50)
|
||||
.HasDefaultValueSql("('')");
|
||||
|
||||
entity.Property(e => e.LMm)
|
||||
.HasColumnType("decimal(18, 3)")
|
||||
.HasColumnName("L_mm");
|
||||
|
||||
entity.Property(e => e.MatDesc)
|
||||
.HasMaxLength(500)
|
||||
.HasDefaultValueSql("('')")
|
||||
.HasComment("Description");
|
||||
|
||||
entity.Property(e => e.TMm)
|
||||
.HasColumnType("decimal(18, 3)")
|
||||
.HasColumnName("T_mm");
|
||||
|
||||
entity.Property(e => e.WMm)
|
||||
.HasColumnType("decimal(18, 3)")
|
||||
.HasColumnName("W_mm");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<PrintJobQueue>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.IdxPrintJob);
|
||||
|
||||
entity.ToTable("PrintJobQueue");
|
||||
|
||||
entity.Property(e => e.DtEnd)
|
||||
.HasColumnType("datetime")
|
||||
.HasColumnName("dtEnd");
|
||||
|
||||
entity.Property(e => e.DtLastTry)
|
||||
.HasColumnType("datetime")
|
||||
.HasColumnName("dtLastTry");
|
||||
|
||||
entity.Property(e => e.DtStart)
|
||||
.HasColumnType("datetime")
|
||||
.HasColumnName("dtStart");
|
||||
|
||||
entity.Property(e => e.KeyParam).HasMaxLength(50);
|
||||
|
||||
entity.Property(e => e.PrtName)
|
||||
.HasMaxLength(500)
|
||||
.HasColumnName("prtName");
|
||||
|
||||
entity.Property(e => e.Stato).HasColumnName("stato");
|
||||
|
||||
entity.Property(e => e.TipoReport).HasMaxLength(250);
|
||||
});
|
||||
|
||||
OnModelCreatingPartial(modelBuilder);
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Public Methods
|
||||
|
||||
public void DbForceMigrate()
|
||||
{
|
||||
try
|
||||
{
|
||||
// se non ci fosse... crea o migra!
|
||||
Database.Migrate();
|
||||
Log.Info("DbForceMigrate: done!");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error(exc, "DbForceMigrate: Exception during context initialization 01");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
+299
-214
@@ -1,40 +1,5 @@
|
||||
namespace NKC_SDK
|
||||
{
|
||||
/// <summary>
|
||||
/// Stati degli oggetti TAKT e Stack
|
||||
/// </summary>
|
||||
public enum CStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// Programmato
|
||||
/// </summary>
|
||||
Programmed = 0,
|
||||
/// <summary>
|
||||
/// In corso
|
||||
/// </summary>
|
||||
Running,
|
||||
/// <summary>
|
||||
/// Completato
|
||||
/// </summary>
|
||||
Done
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tipologia di macchina
|
||||
/// </summary>
|
||||
public enum mType
|
||||
{
|
||||
Multiax = 0,
|
||||
Offline
|
||||
}
|
||||
/// <summary>
|
||||
/// Tipologia di ordine
|
||||
/// </summary>
|
||||
public enum oType
|
||||
{
|
||||
BatchRequest = 0,
|
||||
OfflineOrder
|
||||
}
|
||||
/// <summary>
|
||||
/// modalità funzionamento batch list
|
||||
/// </summary>
|
||||
@@ -44,61 +9,23 @@
|
||||
/// Modalità normale (stima/nesting)
|
||||
/// </summary>
|
||||
Standard,
|
||||
|
||||
/// <summary>
|
||||
/// MOdalità validazione aprticolari
|
||||
/// Modalità validazione particolari
|
||||
/// </summary>
|
||||
PartsEval
|
||||
}
|
||||
/// <summary>
|
||||
/// Stati degli oggetti Batch
|
||||
/// </summary>
|
||||
public enum BatchStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// CSV importato
|
||||
/// </summary>
|
||||
Imported = 0,
|
||||
/// <summary>
|
||||
/// Nesting richiesto (In corso)
|
||||
/// </summary>
|
||||
EstimationRequested,
|
||||
/// <summary>
|
||||
/// Nesting Completato
|
||||
/// </summary>
|
||||
EstimationDone,
|
||||
/// <summary>
|
||||
/// Nesting richiesto (In corso)
|
||||
/// </summary>
|
||||
NestRequested,
|
||||
/// <summary>
|
||||
/// Nesting Completato
|
||||
/// </summary>
|
||||
NestDone,
|
||||
/// <summary>
|
||||
/// Nesting approvato
|
||||
/// </summary>
|
||||
Approved,
|
||||
/// <summary>
|
||||
/// Nesting scartato
|
||||
/// </summary>
|
||||
Discarded,
|
||||
/// <summary>
|
||||
/// Errori in fase di import o calcolo
|
||||
/// </summary>
|
||||
Errors,
|
||||
/// <summary>
|
||||
/// Impiegato per effettuare un test di validazione di un SINGOLO ITEM/PART
|
||||
/// </summary>
|
||||
PartEval,
|
||||
/// <summary>
|
||||
/// Test di validazione KO per un SINGOLO ITEM/PART
|
||||
/// </summary>
|
||||
PartKo,
|
||||
/// <summary>
|
||||
/// Test di validazione OK per un SINGOLO ITEM/PART
|
||||
/// </summary>
|
||||
PartOk
|
||||
PartsEval,
|
||||
|
||||
/// <summary>
|
||||
/// Modalità validazione file (NON ancora particolari in ordini CSV)
|
||||
/// </summary>
|
||||
FileEval,
|
||||
|
||||
/// <summary>
|
||||
/// Modalità normale (stima/nesting)
|
||||
/// </summary>
|
||||
FullHistory
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Posizione / Activity degli oggetti Batch
|
||||
/// </summary>
|
||||
@@ -108,110 +35,106 @@
|
||||
/// Non iniziato
|
||||
/// </summary>
|
||||
NotStarted = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Stack In corso
|
||||
/// </summary>
|
||||
StackStarted,
|
||||
|
||||
/// <summary>
|
||||
/// Stack Completato
|
||||
/// </summary>
|
||||
StackDone,
|
||||
|
||||
/// <summary>
|
||||
/// Stack currently in LOAD
|
||||
/// </summary>
|
||||
Current,
|
||||
|
||||
/// <summary>
|
||||
/// Stack completed
|
||||
/// </summary>
|
||||
Completed
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stati degli oggetti Batch
|
||||
/// </summary>
|
||||
public enum BatchStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// CSV importato
|
||||
/// </summary>
|
||||
Imported = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Nesting richiesto (In corso)
|
||||
/// </summary>
|
||||
EstimationRequested,
|
||||
|
||||
/// <summary>
|
||||
/// Nesting Completato
|
||||
/// </summary>
|
||||
EstimationDone,
|
||||
|
||||
/// <summary>
|
||||
/// Nesting richiesto (In corso)
|
||||
/// </summary>
|
||||
NestRequested,
|
||||
|
||||
/// <summary>
|
||||
/// Nesting Completato
|
||||
/// </summary>
|
||||
NestDone,
|
||||
|
||||
/// <summary>
|
||||
/// Nesting approvato
|
||||
/// </summary>
|
||||
Approved,
|
||||
|
||||
/// <summary>
|
||||
/// Nesting scartato
|
||||
/// </summary>
|
||||
Discarded,
|
||||
|
||||
/// <summary>
|
||||
/// Errori in fase di import o calcolo
|
||||
/// </summary>
|
||||
Errors,
|
||||
|
||||
/// <summary>
|
||||
/// Impiegato per effettuare un test di validazione di un SINGOLO ITEM/PART
|
||||
/// </summary>
|
||||
PartEval,
|
||||
|
||||
/// <summary>
|
||||
/// Test di validazione KO per un SINGOLO ITEM/PART
|
||||
/// </summary>
|
||||
PartKo,
|
||||
|
||||
/// <summary>
|
||||
/// Test di validazione OK per un SINGOLO ITEM/PART
|
||||
/// </summary>
|
||||
PartOk,
|
||||
|
||||
/// <summary>
|
||||
/// Errori in fase di calcolo STIMA
|
||||
/// </summary>
|
||||
ErrorsOnEstim,
|
||||
/// <summary>
|
||||
/// Errori in fase di calcolo NESTING
|
||||
/// </summary>
|
||||
ErrorsOnNesting
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stati degli oggetti PANEL/SHEET
|
||||
/// Tipologia Batch
|
||||
/// </summary>
|
||||
public enum PStatus
|
||||
public enum BatchType
|
||||
{
|
||||
/// <summary>
|
||||
/// Programmato
|
||||
/// </summary>
|
||||
Programmed = 0,
|
||||
/// <summary>
|
||||
/// Stampa in corso
|
||||
/// </summary>
|
||||
Printing,
|
||||
/// <summary>
|
||||
/// Stampa completata
|
||||
/// </summary>
|
||||
Printed,
|
||||
/// <summary>
|
||||
/// Lavorazione in corso
|
||||
/// </summary>
|
||||
Machining,
|
||||
/// <summary>
|
||||
/// Lavorazione completata
|
||||
/// </summary>
|
||||
Machined,
|
||||
/// <summary>
|
||||
/// In fase di scaricamento
|
||||
/// </summary>
|
||||
Unloading,
|
||||
/// <summary>
|
||||
/// Completato / scaricato da macchina (anche su tavola di scarico)
|
||||
/// </summary>
|
||||
Unloaded,
|
||||
/// <summary>
|
||||
/// Presente / letto su PROD e pronto su scissor lift
|
||||
/// </summary>
|
||||
Present,
|
||||
/// <summary>
|
||||
/// Da rilavorare
|
||||
/// </summary>
|
||||
ToBeRedone
|
||||
}
|
||||
/// <summary>
|
||||
/// Destinazioni per ITEM post CNC WORK
|
||||
/// </summary>
|
||||
public enum ItemDest
|
||||
{
|
||||
/// <summary>
|
||||
/// Destinato a BIN (painting)
|
||||
/// </summary>
|
||||
Bin,
|
||||
/// <summary>
|
||||
/// Destinato a Cart (KIT)
|
||||
/// </summary>
|
||||
Cart,
|
||||
/// <summary>
|
||||
/// Indefinito
|
||||
/// </summary>
|
||||
Undef
|
||||
}
|
||||
/// <summary>
|
||||
/// Stati ammessi per ITEM
|
||||
/// </summary>
|
||||
public enum ItemStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// Programmato
|
||||
/// </summary>
|
||||
Programmed,
|
||||
/// <summary>
|
||||
/// Completato/Fatto/tagliato
|
||||
/// </summary>
|
||||
Made,
|
||||
/// <summary>
|
||||
/// Preso da operatore
|
||||
/// </summary>
|
||||
PickUp,
|
||||
/// <summary>
|
||||
/// Depositato su Bin/Cesta
|
||||
/// </summary>
|
||||
Removed,
|
||||
/// <summary>
|
||||
/// Indefinito
|
||||
/// </summary>
|
||||
Undef
|
||||
Original = 0
|
||||
, Ancestor = 1
|
||||
, Descendant = 2
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -230,72 +153,100 @@
|
||||
Cart,
|
||||
Bin,
|
||||
BinProcessed,
|
||||
SecScreen
|
||||
SecScreen,
|
||||
MachSelection,
|
||||
SpecialPart
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// tipologia di report (FILE rdlc) gestito in stampa...
|
||||
/// Stati degli oggetti TAKT e Stack
|
||||
/// </summary>
|
||||
public enum reportRichiesto
|
||||
{
|
||||
binPre,
|
||||
binPost,
|
||||
bunkGroup,
|
||||
bunkList,
|
||||
cart,
|
||||
offline,
|
||||
part,
|
||||
otherPart,
|
||||
cartIRKList,
|
||||
cartIRKGroup
|
||||
}
|
||||
/// <summary>
|
||||
/// tipologia di DOCUMENTO gestito in stampa...
|
||||
/// </summary>
|
||||
public enum tipoDocumento
|
||||
public enum CStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// Etichetta per un BIN (pre esecuzione compito, es verniciatura)
|
||||
/// Programmato
|
||||
/// </summary>
|
||||
docBinPre,
|
||||
Programmed = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Etichetta per un BIN (POST esecuzione compito, es verniciatura)
|
||||
/// In corso
|
||||
/// </summary>
|
||||
docBinPost,
|
||||
Running,
|
||||
|
||||
/// <summary>
|
||||
/// Etichetta per un CART
|
||||
/// Completato
|
||||
/// </summary>
|
||||
docCart,
|
||||
Done
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Destinazioni per ITEM post CNC WORK
|
||||
/// </summary>
|
||||
public enum ItemDest
|
||||
{
|
||||
/// <summary>
|
||||
/// Documento per singolo ITEM:
|
||||
/// - QR code
|
||||
/// - num cart/bin
|
||||
/// - T/P/* (se va fatto qualcosa di speciale)
|
||||
/// - codice dmtx leggibile (es IT000023) su NUOVA riga
|
||||
/// Destinato a BIN (painting)
|
||||
/// </summary>
|
||||
docPart,
|
||||
Bin,
|
||||
|
||||
/// <summary>
|
||||
/// Documento per singolo OtherItem:
|
||||
/// - QR code
|
||||
/// - cod originale
|
||||
/// - descrizione
|
||||
/// Destinato a Cart (KIT)
|
||||
/// </summary>
|
||||
docOtherPart,
|
||||
Cart,
|
||||
|
||||
/// <summary>
|
||||
/// doc per STACK
|
||||
/// Indefinito
|
||||
/// </summary>
|
||||
docStack,
|
||||
Undef
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stati ammessi per ITEM
|
||||
/// </summary>
|
||||
public enum ItemStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// NON DEFINITO
|
||||
/// Programmato
|
||||
/// </summary>
|
||||
docND,
|
||||
Programmed,
|
||||
|
||||
/// <summary>
|
||||
/// Dettaglio massimo CART --> Item Requested Kitting
|
||||
/// Completato/Fatto/tagliato
|
||||
/// </summary>
|
||||
docCartIRK,
|
||||
Made,
|
||||
|
||||
/// <summary>
|
||||
/// Dettaglio aggregato CART --> Item Requested Kitting
|
||||
/// Preso da operatore
|
||||
/// </summary>
|
||||
docCartIRKSum
|
||||
PickUp,
|
||||
|
||||
/// <summary>
|
||||
/// Depositato su Bin/Cesta
|
||||
/// </summary>
|
||||
Removed,
|
||||
|
||||
/// <summary>
|
||||
/// Indefinito
|
||||
/// </summary>
|
||||
Undef
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tipologia di macchina
|
||||
/// </summary>
|
||||
public enum mType
|
||||
{
|
||||
Multiax = 0,
|
||||
Offline
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tipologia di ordine
|
||||
/// </summary>
|
||||
public enum oType
|
||||
{
|
||||
BatchRequest = 0,
|
||||
OfflineOrder
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -311,4 +262,138 @@
|
||||
accepted,
|
||||
refused
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stati degli oggetti PANEL/SHEET
|
||||
/// </summary>
|
||||
public enum PStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// Programmato
|
||||
/// </summary>
|
||||
Programmed = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Stampa in corso
|
||||
/// </summary>
|
||||
Printing,
|
||||
|
||||
/// <summary>
|
||||
/// Stampa completata
|
||||
/// </summary>
|
||||
Printed,
|
||||
|
||||
/// <summary>
|
||||
/// Lavorazione in corso
|
||||
/// </summary>
|
||||
Machining,
|
||||
|
||||
/// <summary>
|
||||
/// Lavorazione completata
|
||||
/// </summary>
|
||||
Machined,
|
||||
|
||||
/// <summary>
|
||||
/// In fase di scaricamento
|
||||
/// </summary>
|
||||
Unloading,
|
||||
|
||||
/// <summary>
|
||||
/// Completato / scaricato da macchina (anche su tavola di scarico)
|
||||
/// </summary>
|
||||
Unloaded,
|
||||
|
||||
/// <summary>
|
||||
/// Presente / letto su PROD e pronto su scissor lift
|
||||
/// </summary>
|
||||
Present,
|
||||
|
||||
/// <summary>
|
||||
/// Da rilavorare
|
||||
/// </summary>
|
||||
ToBeRedone
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// tipologia di report (FILE rdlc) gestito in stampa...
|
||||
/// </summary>
|
||||
public enum reportRichiesto
|
||||
{
|
||||
binPre,
|
||||
binPost,
|
||||
bunkGroup,
|
||||
bunkList,
|
||||
cart,
|
||||
offline,
|
||||
part,
|
||||
otherPart,
|
||||
cartIRKList,
|
||||
cartIRKGroup,
|
||||
remnants,
|
||||
cartSpecParts
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// tipologia di DOCUMENTO gestito in stampa...
|
||||
/// </summary>
|
||||
public enum tipoDocumento
|
||||
{
|
||||
/// <summary>
|
||||
/// Etichetta per un BIN (pre esecuzione compito, es verniciatura)
|
||||
/// </summary>
|
||||
docBinPre,
|
||||
|
||||
/// <summary>
|
||||
/// Etichetta per un BIN (POST esecuzione compito, es verniciatura)
|
||||
/// </summary>
|
||||
docBinPost,
|
||||
|
||||
/// <summary>
|
||||
/// Etichetta per un CART
|
||||
/// </summary>
|
||||
docCart,
|
||||
|
||||
/// <summary>
|
||||
/// Documento per singolo ITEM:
|
||||
/// - QR code
|
||||
/// - num cart/bin
|
||||
/// - T/P/* (se va fatto qualcosa di speciale)
|
||||
/// - codice dmtx leggibile (es IT000023) su NUOVA riga
|
||||
/// </summary>
|
||||
docPart,
|
||||
|
||||
/// <summary>
|
||||
/// Documento per singolo OtherItem:
|
||||
/// - QR code
|
||||
/// - cod originale
|
||||
/// - descrizione
|
||||
/// </summary>
|
||||
docOtherPart,
|
||||
|
||||
/// <summary>
|
||||
/// doc per STACK
|
||||
/// </summary>
|
||||
docStack,
|
||||
|
||||
/// <summary>
|
||||
/// NON DEFINITO
|
||||
/// </summary>
|
||||
docND,
|
||||
|
||||
/// <summary>
|
||||
/// Dettaglio massimo CART --> Item Requested Kitting
|
||||
/// </summary>
|
||||
docCartIRK,
|
||||
|
||||
/// <summary>
|
||||
/// Dettaglio aggregato CART --> Item Requested Kitting
|
||||
/// </summary>
|
||||
docCartIRKSum,
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Dettaglio aggregato CART --> SpecialPart (come CANYON)
|
||||
/// </summary>
|
||||
docCartSpecialPart
|
||||
}
|
||||
}
|
||||
+255
-181
@@ -8,8 +8,225 @@ namespace NKC_SDK
|
||||
{
|
||||
public class NKC
|
||||
{
|
||||
#region utils comunicazione HTTP
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// file locale per persistenza BUNK
|
||||
/// </summary>
|
||||
protected string persistFileName = "data/persistFile.json";
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Classe per effettuare comunicazioni con NKC
|
||||
/// </summary>
|
||||
/// <param name="baseIp">IP di base x ping</param>
|
||||
/// <param name="baseUrl">URL di base x chiamate REST</param>
|
||||
/// <param name="codPost">Codice posstazione/macchina x cui si fa chiamata</param>
|
||||
public NKC(string baseIp, string baseUrl, string codPost)
|
||||
{
|
||||
_baseIp = baseIp;
|
||||
_baseUrl = baseUrl;
|
||||
_codPost = codPost;
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
/// <summary>
|
||||
/// DnsName/IP di base x chaimate
|
||||
/// </summary>
|
||||
protected string _baseIp { get; set; } = "seriate.steamware.net";
|
||||
|
||||
/// <summary>
|
||||
/// URL di base per la comunicazione
|
||||
///
|
||||
/// PROD: http://seriate.steamware.net:8083/NKC/
|
||||
/// DEV: https://localhost:44388/
|
||||
/// </summary>
|
||||
protected string _baseUrl { get; set; } = @"http://seriate.steamware.net:8083/NKC/";
|
||||
|
||||
/// <summary>
|
||||
/// COD macchina x cui si effettua chiamata
|
||||
/// </summary>
|
||||
protected string _codPost { get; set; } = "";
|
||||
|
||||
protected string urlAlive
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{_baseUrl}api/Alive";
|
||||
}
|
||||
}
|
||||
|
||||
protected string urlAliveClock
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{_baseUrl}api/Alive/1";
|
||||
}
|
||||
}
|
||||
|
||||
protected string urlCurrBunk
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{_baseUrl}api/Bunk";
|
||||
}
|
||||
}
|
||||
|
||||
protected string urlCurrSheet4Mac
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{_baseUrl}api/Sheet/{_codPost}";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// URL x salvataggio dati MachineStat
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected string urlPutMachStat
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{_baseUrl}api/MachineStat";
|
||||
//return $"{_baseUrl}api/MachineStat/{_machine}";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// URL x salvataggio dati SHEET
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected string urlPutSheetList
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{_baseUrl}api/Sheet/{_codPost}";
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Public Properties
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto che contiene l'oggetto SHEET WorkList corrente salvato LOCALMENTE
|
||||
/// </summary>
|
||||
public SheetWorkList persistedSheetList
|
||||
{
|
||||
get
|
||||
{
|
||||
SheetWorkList answ = new SheetWorkList();
|
||||
try
|
||||
{
|
||||
string rawdata = File.ReadAllText(persistFileName);
|
||||
answ = JsonConvert.DeserializeObject<SheetWorkList>(rawdata);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione durante recupero locale della SheetList{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
set
|
||||
{
|
||||
try
|
||||
{
|
||||
// serializzo oggetto
|
||||
string rawdata = JsonConvert.SerializeObject(value);
|
||||
// salvo in locale
|
||||
File.WriteAllText(persistFileName, rawdata);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione durante salvataggio locale della SheetList{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua test alive all'indirizzo del server
|
||||
/// </summary>
|
||||
public bool testAlive
|
||||
{
|
||||
get
|
||||
{
|
||||
bool answ = false;
|
||||
string returnData = callUrl(urlAlive);
|
||||
returnData = JsonConvert.DeserializeObject<string>(returnData);
|
||||
answ = returnData == "OK";
|
||||
// rendo!
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua test ping all'indirizzo del server
|
||||
/// </summary>
|
||||
public DateTime testClock
|
||||
{
|
||||
get
|
||||
{
|
||||
DateTime oggi = DateTime.Today;
|
||||
DateTime answ = oggi.AddYears(-oggi.Year + 1900).AddMonths(-oggi.Month).AddDays(-oggi.Day + 1);
|
||||
// recupero!
|
||||
string returnData = callUrl(urlAliveClock);
|
||||
try
|
||||
{
|
||||
DateTime.TryParse(JsonConvert.DeserializeObject<string>(returnData), out answ);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione durante testClock, ricevuto {returnData}{Environment.NewLine}{exc}");
|
||||
}
|
||||
// rendo!
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua test ping all'indirizzo del server
|
||||
/// </summary>
|
||||
public PingReply testPing
|
||||
{
|
||||
get
|
||||
{
|
||||
Ping myPing = new Ping();
|
||||
// timeout a 1 sec!
|
||||
PingReply answ = myPing.Send(_baseIp, 1000);
|
||||
// rendo!
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected string urlGetBunk(int currBunkId, string CodPost)
|
||||
{
|
||||
return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=false&machine={CodPost}";
|
||||
}
|
||||
|
||||
protected string urlNextBunk(int currBunkId, string CodPost)
|
||||
{
|
||||
return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=true&machine={CodPost}";
|
||||
}
|
||||
|
||||
protected string urlPutBunk(int currBunkId)
|
||||
{
|
||||
return $"{_baseUrl}api/Bunk/{currBunkId}";
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Effettua chiamata URL e restituisce risultato
|
||||
@@ -34,6 +251,7 @@ namespace NKC_SDK
|
||||
// restituisco valore!
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua chiamata URL e restituisce risultato
|
||||
/// </summary>
|
||||
@@ -86,151 +304,14 @@ namespace NKC_SDK
|
||||
return answ;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region URL di base
|
||||
|
||||
protected string urlAlive
|
||||
public static PingReply testPingDevice(string address)
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{_baseUrl}api/Alive";
|
||||
}
|
||||
Ping myPing = new Ping();
|
||||
// timeout a 1 sec!
|
||||
PingReply answ = myPing.Send(address, 2000);
|
||||
// rendo!
|
||||
return answ;
|
||||
}
|
||||
protected string urlAliveClock
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{_baseUrl}api/Alive/1";
|
||||
}
|
||||
}
|
||||
protected string urlCurrBunk
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{_baseUrl}api/Bunk";
|
||||
}
|
||||
}
|
||||
protected string urlCurrSheet4Mac
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{_baseUrl}api/Sheet/{_codPost}";
|
||||
}
|
||||
}
|
||||
protected string urlGetBunk(int currBunkId)
|
||||
{
|
||||
return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=false";
|
||||
}
|
||||
protected string urlNextBunk(int currBunkId)
|
||||
{
|
||||
return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=true";
|
||||
}
|
||||
protected string urlPutBunk(int currBunkId)
|
||||
{
|
||||
return $"{_baseUrl}api/Bunk/{currBunkId}";
|
||||
}
|
||||
/// <summary>
|
||||
/// URL x salvataggio dati SHEET
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected string urlPutSheetList
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{_baseUrl}api/Sheet/{_codPost}";
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// file locale per persistenza BUNK
|
||||
/// </summary>
|
||||
protected string persistFileName = "data/persistFile.json";
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// URL di base per la comunicazione
|
||||
///
|
||||
/// PROD: http://seriate.steamware.net:8083/NKC/
|
||||
/// DEV: https://localhost:44388/
|
||||
/// </summary>
|
||||
protected string _baseUrl { get; set; } = @"http://seriate.steamware.net:8083/NKC/";
|
||||
/// <summary>
|
||||
/// DnsName/IP di base x chaimate
|
||||
/// </summary>
|
||||
protected string _baseIp { get; set; } = "seriate.steamware.net";
|
||||
/// <summary>
|
||||
/// COD macchina x cui si effettua chiamata
|
||||
/// </summary>
|
||||
protected string _codPost { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Classe per effettuare comunicazioni con NKC
|
||||
/// </summary>
|
||||
/// <param name="baseIp">IP di base x ping</param>
|
||||
/// <param name="baseUrl">URL di abse x chiamate REST</param>
|
||||
/// <param name="codPost">Codice posstazione/macchina x cui si fa chiamata</param>
|
||||
public NKC(string baseIp, string baseUrl, string codPost)
|
||||
{
|
||||
_baseIp = baseIp;
|
||||
_baseUrl = baseUrl;
|
||||
_codPost = codPost;
|
||||
}
|
||||
/// <summary>
|
||||
/// Effettua test ping all'indirizzo del server
|
||||
/// </summary>
|
||||
public PingReply testPing
|
||||
{
|
||||
get
|
||||
{
|
||||
Ping myPing = new Ping();
|
||||
// timeout a 1 sec!
|
||||
PingReply answ = myPing.Send(_baseIp, 1000);
|
||||
// rendo!
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Effettua test alive all'indirizzo del server
|
||||
/// </summary>
|
||||
public bool testAlive
|
||||
{
|
||||
get
|
||||
{
|
||||
bool answ = false;
|
||||
string returnData = callUrl(urlAlive);
|
||||
returnData = JsonConvert.DeserializeObject<string>(returnData);
|
||||
answ = returnData == "OK";
|
||||
// rendo!
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Effettua test ping all'indirizzo del server
|
||||
/// </summary>
|
||||
public DateTime testClock
|
||||
{
|
||||
get
|
||||
{
|
||||
DateTime oggi = DateTime.Today;
|
||||
DateTime answ = oggi.AddYears(-oggi.Year + 1900).AddMonths(-oggi.Month).AddDays(-oggi.Day + 1);
|
||||
// recupero!
|
||||
string returnData = callUrl(urlAliveClock);
|
||||
try
|
||||
{
|
||||
DateTime.TryParse(JsonConvert.DeserializeObject<string>(returnData), out answ);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione durante testClock, ricevuto {returnData}{Environment.NewLine}{exc}");
|
||||
}
|
||||
// rendo!
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
|
||||
#region metodi per SheetWorklist
|
||||
|
||||
/// <summary>
|
||||
/// Recupera elenco dei fogli ATTIVI
|
||||
@@ -254,6 +335,32 @@ namespace NKC_SDK
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua salvataggio dell'elenco info stati/eventi su NKC
|
||||
/// </summary>
|
||||
/// <param name="updatedInfo"></param>
|
||||
public bool saveMachStatRecords(MachineStatData updatedInfo)
|
||||
{
|
||||
bool answ = false;
|
||||
string rawdata = "";
|
||||
try
|
||||
{
|
||||
// aggiungo macchina nel codice dei fogli...
|
||||
updatedInfo.Machine = _codPost;
|
||||
// serializzo oggetto
|
||||
rawdata = JsonConvert.SerializeObject(updatedInfo);
|
||||
// invio con metodo put!
|
||||
putData(urlPutMachStat, rawdata);
|
||||
answ = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione durante saveMachStatRecords, ricevuto {rawdata}{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua salvataggio dell'elenco dei fogli (1..n) su NKC
|
||||
/// </summary>
|
||||
@@ -264,6 +371,8 @@ namespace NKC_SDK
|
||||
string rawdata = "";
|
||||
try
|
||||
{
|
||||
// aggiungo macchina nel codice dei fogli...
|
||||
updatedSheetList.Machine = _codPost;
|
||||
// serializzo oggetto
|
||||
rawdata = JsonConvert.SerializeObject(updatedSheetList);
|
||||
// invio con metodo put!
|
||||
@@ -276,42 +385,7 @@ namespace NKC_SDK
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Oggetto che contiene l'oggetto SHEET WorkList corrente salvato LOCALMENTE
|
||||
/// </summary>
|
||||
public SheetWorkList persistedSheetList
|
||||
{
|
||||
get
|
||||
{
|
||||
SheetWorkList answ = new SheetWorkList();
|
||||
try
|
||||
{
|
||||
string rawdata = File.ReadAllText(persistFileName);
|
||||
answ = JsonConvert.DeserializeObject<SheetWorkList>(rawdata);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione durante recupero locale della SheetList{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
set
|
||||
{
|
||||
try
|
||||
{
|
||||
// serializzo oggetto
|
||||
string rawdata = JsonConvert.SerializeObject(value);
|
||||
// salvo in locale
|
||||
File.WriteAllText(persistFileName, rawdata);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione durante salvataggio locale della SheetList{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
}
|
||||
+18
-11
@@ -9,9 +9,10 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>NKC_SDK</RootNamespace>
|
||||
<AssemblyName>NKC_SDK</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -21,6 +22,7 @@
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -29,17 +31,28 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug-Prod|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\Debug-Prod\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.4.6.8\lib\net40-client\NLog.dll</HintPath>
|
||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.5.3.2\lib\net46\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.Transactions" />
|
||||
@@ -61,12 +74,6 @@
|
||||
<Compile Include="Utils.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="NLog.config">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<None Include="NLog.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
|
||||
autoReload="true"
|
||||
throwExceptions="false"
|
||||
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
|
||||
|
||||
<!-- optional, add some variables
|
||||
https://github.com/nlog/NLog/wiki/Configuration-file#variables
|
||||
-->
|
||||
<variable name="myvar" value="myvalue"/>
|
||||
|
||||
<!--
|
||||
See https://github.com/nlog/nlog/wiki/Configuration-file
|
||||
for information on customizing logging rules and outputs.
|
||||
-->
|
||||
<targets>
|
||||
|
||||
<!--
|
||||
add your targets here
|
||||
See https://github.com/nlog/NLog/wiki/Targets for possible targets.
|
||||
See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
|
||||
-->
|
||||
|
||||
<!-- Write events to a file with the date in the filename. -->
|
||||
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
|
||||
layout="${longdate} ${uppercase:${level}} ${message}" />
|
||||
</targets>
|
||||
|
||||
<rules>
|
||||
<logger name="*" minlevel="Debug" writeTo="f" />
|
||||
</rules>
|
||||
</nlog>
|
||||
-3556
File diff suppressed because it is too large
Load Diff
+875
-461
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
|
||||
<package id="NLog" version="4.6.8" targetFramework="net40" />
|
||||
<package id="NLog.Config" version="4.6.8" targetFramework="net40" />
|
||||
<package id="NLog.Schema" version="4.6.8" targetFramework="net40" />
|
||||
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net462" />
|
||||
<package id="NLog" version="5.3.2" targetFramework="net462" />
|
||||
</packages>
|
||||
+20
-2
@@ -1,7 +1,7 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.29102.190
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.5.33627.172
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NKC_WF", "NKC_WF\NKC_WF.csproj", "{6CEBB3D9-217D-42E2-8D26-2FB3A5DE2BF5}"
|
||||
EndProject
|
||||
@@ -23,6 +23,8 @@ Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug-LELE|Any CPU = Debug-LELE|Any CPU
|
||||
Debug-Prod|Any CPU = Debug-Prod|Any CPU
|
||||
IIS02|Any CPU = IIS02|Any CPU
|
||||
Prod|Any CPU = Prod|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
@@ -31,6 +33,10 @@ Global
|
||||
{6CEBB3D9-217D-42E2-8D26-2FB3A5DE2BF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{6CEBB3D9-217D-42E2-8D26-2FB3A5DE2BF5}.Debug-LELE|Any CPU.ActiveCfg = Debug-LELE|Any CPU
|
||||
{6CEBB3D9-217D-42E2-8D26-2FB3A5DE2BF5}.Debug-LELE|Any CPU.Build.0 = Debug-LELE|Any CPU
|
||||
{6CEBB3D9-217D-42E2-8D26-2FB3A5DE2BF5}.Debug-Prod|Any CPU.ActiveCfg = Debug-Prod|Any CPU
|
||||
{6CEBB3D9-217D-42E2-8D26-2FB3A5DE2BF5}.Debug-Prod|Any CPU.Build.0 = Debug-Prod|Any CPU
|
||||
{6CEBB3D9-217D-42E2-8D26-2FB3A5DE2BF5}.IIS02|Any CPU.ActiveCfg = IIS02|Any CPU
|
||||
{6CEBB3D9-217D-42E2-8D26-2FB3A5DE2BF5}.IIS02|Any CPU.Build.0 = IIS02|Any CPU
|
||||
{6CEBB3D9-217D-42E2-8D26-2FB3A5DE2BF5}.Prod|Any CPU.ActiveCfg = Prod|Any CPU
|
||||
{6CEBB3D9-217D-42E2-8D26-2FB3A5DE2BF5}.Prod|Any CPU.Build.0 = Prod|Any CPU
|
||||
{6CEBB3D9-217D-42E2-8D26-2FB3A5DE2BF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@@ -39,6 +45,10 @@ Global
|
||||
{4308EA22-4C18-4A77-84DF-C6BCDD7BD07C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4308EA22-4C18-4A77-84DF-C6BCDD7BD07C}.Debug-LELE|Any CPU.ActiveCfg = Debug-LELE|Any CPU
|
||||
{4308EA22-4C18-4A77-84DF-C6BCDD7BD07C}.Debug-LELE|Any CPU.Build.0 = Debug-LELE|Any CPU
|
||||
{4308EA22-4C18-4A77-84DF-C6BCDD7BD07C}.Debug-Prod|Any CPU.ActiveCfg = Debug-Prod|Any CPU
|
||||
{4308EA22-4C18-4A77-84DF-C6BCDD7BD07C}.Debug-Prod|Any CPU.Build.0 = Debug-Prod|Any CPU
|
||||
{4308EA22-4C18-4A77-84DF-C6BCDD7BD07C}.IIS02|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4308EA22-4C18-4A77-84DF-C6BCDD7BD07C}.IIS02|Any CPU.Build.0 = Release|Any CPU
|
||||
{4308EA22-4C18-4A77-84DF-C6BCDD7BD07C}.Prod|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4308EA22-4C18-4A77-84DF-C6BCDD7BD07C}.Prod|Any CPU.Build.0 = Release|Any CPU
|
||||
{4308EA22-4C18-4A77-84DF-C6BCDD7BD07C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@@ -47,6 +57,10 @@ Global
|
||||
{175AF851-9AED-4D5F-8571-9CEC8B2D2320}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{175AF851-9AED-4D5F-8571-9CEC8B2D2320}.Debug-LELE|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{175AF851-9AED-4D5F-8571-9CEC8B2D2320}.Debug-LELE|Any CPU.Build.0 = Debug|Any CPU
|
||||
{175AF851-9AED-4D5F-8571-9CEC8B2D2320}.Debug-Prod|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{175AF851-9AED-4D5F-8571-9CEC8B2D2320}.Debug-Prod|Any CPU.Build.0 = Debug|Any CPU
|
||||
{175AF851-9AED-4D5F-8571-9CEC8B2D2320}.IIS02|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{175AF851-9AED-4D5F-8571-9CEC8B2D2320}.IIS02|Any CPU.Build.0 = Release|Any CPU
|
||||
{175AF851-9AED-4D5F-8571-9CEC8B2D2320}.Prod|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{175AF851-9AED-4D5F-8571-9CEC8B2D2320}.Prod|Any CPU.Build.0 = Release|Any CPU
|
||||
{175AF851-9AED-4D5F-8571-9CEC8B2D2320}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@@ -55,6 +69,10 @@ Global
|
||||
{5A0B6E45-169B-44D4-9E24-13718B8EB7CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5A0B6E45-169B-44D4-9E24-13718B8EB7CC}.Debug-LELE|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5A0B6E45-169B-44D4-9E24-13718B8EB7CC}.Debug-LELE|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5A0B6E45-169B-44D4-9E24-13718B8EB7CC}.Debug-Prod|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5A0B6E45-169B-44D4-9E24-13718B8EB7CC}.Debug-Prod|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5A0B6E45-169B-44D4-9E24-13718B8EB7CC}.IIS02|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5A0B6E45-169B-44D4-9E24-13718B8EB7CC}.IIS02|Any CPU.Build.0 = Release|Any CPU
|
||||
{5A0B6E45-169B-44D4-9E24-13718B8EB7CC}.Prod|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5A0B6E45-169B-44D4-9E24-13718B8EB7CC}.Prod|Any CPU.Build.0 = Release|Any CPU
|
||||
{5A0B6E45-169B-44D4-9E24-13718B8EB7CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---------------------------------------------------------------
|
||||
------- SteamWareLib SDK -------
|
||||
------- SteamWare SDK -------
|
||||
---------------------------------------------------------------
|
||||
|
||||
Libreria di utility base di SteamWare.
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
Test gestione nuova conf redis con sentinel:
|
||||
|
||||
cambiato in web.config vari i parametri da sostituire con i nuovi tramite sentinel:
|
||||
|
||||
in particolare
|
||||
- niente pwd
|
||||
- tramite sentinel (su redis01 x ora)
|
||||
- su ambiente devel
|
||||
|
||||
quindi diventa
|
||||
* redis.ufficio:26379,serviceName=devel
|
||||
|
||||
oppure se non ci fosse sentinel tramite haproxy
|
||||
* redis01.ufficio:26379,serviceName=devel
|
||||
|
||||
|
||||
nuovi:
|
||||
<add key="RedisConn" value="redis.ufficio:26379,serviceName=devel,abortConnect=false,ssl=false" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
|
||||
<add key="RedisConnAdmin" value="redis.ufficio:26379,serviceName=devel,abortConnect=false,ssl=false,allowAdmin=true" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
|
||||
|
||||
vecchi:
|
||||
<add key="RedisConn" value="nkcredis.steamware.net,abortConnect=false,ssl=false,password=BtN9Py1wtLfLRvmzWnOPJ7RytDM+CLiVsJ/16zduNTlV8IOPGNrtzJSXPUnImA5PqmUMhKaUqo9NdHIG" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
|
||||
<add key="RedisConnAdmin" value="nkcredis.steamware.net,abortConnect=false,ssl=false,password=BtN9Py1wtLfLRvmzWnOPJ7RytDM+CLiVsJ/16zduNTlV8IOPGNrtzJSXPUnImA5PqmUMhKaUqo9NdHIG,allowAdmin=true" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
|
||||
|
||||
file interessati:
|
||||
- Web.Debug.config
|
||||
- Web.Debug-Lele.config
|
||||
- Web.Debug-Prod.config
|
||||
- Web.Release.config
|
||||
Binary file not shown.
@@ -19,13 +19,13 @@
|
||||
|
||||
<targets async="true">
|
||||
<target xsi:type="File"
|
||||
name="SteamWareLib"
|
||||
name="SteamWare"
|
||||
fileName="${basedir}/logs/${shortdate}-SteamWare.log"
|
||||
layout="${longdate} ${uppercase:${level}} ${message}"
|
||||
/>
|
||||
</targets>
|
||||
|
||||
<rules>
|
||||
<logger name="SteamWare.*" minlevel="Debug" writeTo="SteamWareLib" />
|
||||
<logger name="SteamWare.*" minlevel="Debug" writeTo="SteamWare" />
|
||||
</rules>
|
||||
</nlog>
|
||||
@@ -2,8 +2,10 @@
|
||||
_adminEmail samuele@steamware.net,info@steamware.net samuele@steamware.net,info@steamware.net info@steamware.net
|
||||
_allowForceUser true true abilita login forzato
|
||||
_commonPages menu menu pagina comune
|
||||
_emailPwd drmfsls16 drmfsls16 drmfsls16
|
||||
_emailUser steamwarebot@gmail.com steamwarebot@gmail.com steamwarebot@gmail.com
|
||||
_emailPwd siamoInViaNazionale93 siamoInViaNazionale93 siamoInViaNazionale93
|
||||
_emailUser steamwarebot@outlook.it steamwarebot@outlook.it steamwarebot@outlook.it
|
||||
_smtpCli smtp-mail.outlook.com smtp-mail.outlook.com smtp-mail.outlook.com
|
||||
_fromEmail steamwarebot@outlook.it steamwarebot@outlook.it steamwarebot@outlook.it
|
||||
_enableSSL true true true
|
||||
_fromEmail webmaster@admodelling.org webmaster@admodelling.org email mittente eventuali msg
|
||||
_righeDataGrid 30 30 Num righe datagrid std
|
||||
|
||||
@@ -4,6 +4,8 @@ namespace NKC_WF
|
||||
{
|
||||
public class BundleConfig
|
||||
{
|
||||
#region Public Methods
|
||||
|
||||
// Per altre informazioni sulla creazione di bundle, vedere https://go.microsoft.com/fwlink/?LinkID=303951
|
||||
public static void RegisterBundles(BundleCollection bundles)
|
||||
{
|
||||
@@ -29,9 +31,18 @@ namespace NKC_WF
|
||||
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
|
||||
"~/Scripts/modernizr-*"));
|
||||
|
||||
bundles.Add(new ScriptBundle("~/bundles/jsMoment").Include(
|
||||
"~/Scripts/moment.js"));
|
||||
bundles.Add(new ScriptBundle("~/bundles/jsChart").Include(
|
||||
"~/Scripts/Chart.js"
|
||||
//,"~/Scripts/hammerjs@2.0.8.js"
|
||||
//,"~/Scripts/chartjs-plugin-zoom@next.js"
|
||||
));
|
||||
|
||||
// abilito bundle "forzato"!
|
||||
BundleTable.EnableOptimizations = true;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using SteamWare;
|
||||
using NKC_SDK;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -10,16 +11,16 @@ namespace NKC_WF.App_Start
|
||||
{
|
||||
public static void Init()
|
||||
{
|
||||
logger.lg.scriviLog("Start NKC_Startup.init()", tipoLog.STARTUP);
|
||||
Log.Instance.Info("Start NKC_Startup.init()", tipoLog.STARTUP);
|
||||
try
|
||||
{
|
||||
// inizializzo appConf prima di tutto il resto...
|
||||
memLayer.ML.resetAppConf();
|
||||
logger.lg.scriviLog("Completed preliminary setup AppConf execution", tipoLog.STARTUP);
|
||||
Log.Instance.Info("Completed preliminary setup AppConf execution", tipoLog.STARTUP);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Exception during preliminary INIT app phase{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
|
||||
Log.Instance.Info($"Exception during preliminary INIT app phase{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+52
-34
@@ -1,4 +1,5 @@
|
||||
using AppData;
|
||||
using NKC_SDK;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.IO;
|
||||
@@ -8,10 +9,44 @@ namespace NKC_WF
|
||||
{
|
||||
public class BasePage : System.Web.UI.Page
|
||||
{
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Membro gestione accessi al datalayer (istanza x ogni classe controllo)
|
||||
/// Wrapper scrittura log ERROR
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
/// <param name="message"></param>
|
||||
public void lgError(string message)
|
||||
{
|
||||
Log.Instance.Error(message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log EXCEPTION
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgException(string message, Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"{message}{Environment.NewLine}{exc}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log FATAL
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgFatal(string message, Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"{message}{Environment.NewLine}{exc}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log INFO
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgInfo(string message)
|
||||
{
|
||||
Log.Instance.Info(message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper traduzione termini
|
||||
/// </summary>
|
||||
@@ -21,38 +56,21 @@ namespace NKC_WF
|
||||
{
|
||||
return user_std.UtSn.Traduci(lemma);
|
||||
}
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log INFO
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgInfo(string message)
|
||||
{
|
||||
logger.lg.scriviLog(message, tipoLog.INFO);
|
||||
}
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log ERROR
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgError(string message)
|
||||
{
|
||||
logger.lg.scriviLog(message, tipoLog.ERROR);
|
||||
}
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log EXCEPTION
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgException(string message, Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"{message}{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
|
||||
}
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log FATAL
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgFatal(string message, Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog(message, tipoLog.FATAL);
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// Membro gestione accessi al datalayer (istanza x ogni classe controllo)
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
|
||||
/// <summary>
|
||||
/// Codice macchina (da v2)
|
||||
/// </summary>
|
||||
protected string PlaceCod = "WRK001";
|
||||
|
||||
#endregion Protected Fields
|
||||
}
|
||||
}
|
||||
+216
-154
@@ -1,23 +1,40 @@
|
||||
using AppData;
|
||||
using Newtonsoft.Json;
|
||||
using NKC_SDK;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Web;
|
||||
|
||||
namespace NKC_WF
|
||||
{
|
||||
public class BaseUserControl : System.Web.UI.UserControl
|
||||
{
|
||||
#region Public Fields
|
||||
|
||||
/// <summary>
|
||||
/// Postazione attuale (per ora cablata)
|
||||
/// Codice macchina (da v2)
|
||||
/// </summary>
|
||||
protected string PlaceId
|
||||
{
|
||||
get
|
||||
{
|
||||
return "WRK001";
|
||||
}
|
||||
}
|
||||
public string PlaceCod = "VIRTNE";
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Events
|
||||
|
||||
/// <summary>
|
||||
/// Generico evento di richiesta refresh a parent
|
||||
/// </summary>
|
||||
public event EventHandler eh_doRefresh;
|
||||
|
||||
/// <summary>
|
||||
/// Generico evento di richiesta refresh a aprent
|
||||
/// </summary>
|
||||
public event EventHandler eh_doReset;
|
||||
|
||||
#endregion Public Events
|
||||
|
||||
#region Public Properties
|
||||
|
||||
/// <summary>
|
||||
/// verifica sia ambiente PROD (vs DEV)
|
||||
/// </summary>
|
||||
@@ -28,18 +45,178 @@ namespace NKC_WF
|
||||
return memLayer.ML.CRS("environment") == "PROD";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Membro gestione accessi al datalayer (istanza x ogni classe controllo)
|
||||
/// Recupera IP utente
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
/// <returns></returns>
|
||||
public string currIpAddress
|
||||
{
|
||||
get
|
||||
{
|
||||
string userip = Request.UserHostAddress;
|
||||
return userip;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generico evento di richiesta refresh a aprent
|
||||
/// pagina corrente...
|
||||
/// </summary>
|
||||
public event EventHandler eh_doRefresh;
|
||||
public string currPage
|
||||
{
|
||||
get
|
||||
{
|
||||
string url = HttpContext.Current.Request.Url.PathAndQuery;
|
||||
if (url.Contains("?"))
|
||||
{
|
||||
url = url.Substring(0, url.IndexOf("?"));
|
||||
}
|
||||
return url;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Generico evento di richiesta refresh a aprent
|
||||
/// determina CSS x colore testo da perc svuotamento...
|
||||
/// </summary>
|
||||
public event EventHandler eh_doReset;
|
||||
/// <param name="ratio"></param>
|
||||
/// <returns></returns>
|
||||
public string getCssByRatio(double ratio)
|
||||
{
|
||||
string answ = "text-dark";
|
||||
if (ratio == 0)
|
||||
{
|
||||
answ = "text-danger";
|
||||
}
|
||||
else if (ratio == 1)
|
||||
{
|
||||
answ = "text-success";
|
||||
}
|
||||
else
|
||||
{
|
||||
answ = "text-warning";
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce URL immagine QRCode
|
||||
/// </summary>
|
||||
/// <param name="QrValue">Parametro da renderizzare con QRCode</param>
|
||||
/// <returns></returns>
|
||||
public string getImgUrl(object QrValue)
|
||||
{
|
||||
string baseUrl = $"{memLayer.ML.CRS("matrixUrl")}/HOME/QR_site/JSON?val=";
|
||||
string payload = "{'baseUrl':'{0}','parameters':['" + $"{QrValue}" + "']}";
|
||||
string answ = $"{baseUrl}{payload}";
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera valore intero da OBJ
|
||||
/// </summary>
|
||||
/// <param name="_val"></param>
|
||||
/// <returns></returns>
|
||||
public double getInt(object _val)
|
||||
{
|
||||
int answ = -999999;
|
||||
int.TryParse(_val.ToString(), out answ);
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Calcola il rapporto tra 2 valori
|
||||
/// </summary>
|
||||
/// <param name="_dividendo"></param>
|
||||
/// <param name="_divisore"></param>
|
||||
/// <returns></returns>
|
||||
public double getRatio(object _dividendo, object _divisore)
|
||||
{
|
||||
double ratio = 0;
|
||||
double dividendo = 0;
|
||||
double divisore = 1;
|
||||
double.TryParse(_dividendo.ToString(), out dividendo);
|
||||
double.TryParse(_divisore.ToString(), out divisore);
|
||||
// se divisore 0 --> 1
|
||||
divisore = divisore == 0 ? 1 : divisore;
|
||||
ratio = dividendo / divisore;
|
||||
return ratio;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log DEBUG
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgDebug(string message)
|
||||
{
|
||||
Log.Instance.Debug(message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log ERROR
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgError(string message)
|
||||
{
|
||||
Log.Instance.Error(message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log EXCEPTION
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgException(string message, Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"{message}{Environment.NewLine}{exc}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log FATAL
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgFatal(string message, Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"{message}{Environment.NewLine}{exc}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log INFO
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgInfo(string message)
|
||||
{
|
||||
Log.Instance.Info(message);
|
||||
}
|
||||
|
||||
public string matByKey(object _matId)
|
||||
{
|
||||
string answ = "";
|
||||
int matId = 0;
|
||||
int.TryParse(_matId.ToString(), out matId);
|
||||
try
|
||||
{
|
||||
answ = anagMateriali[matId];
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converte obja intero
|
||||
/// </summary>
|
||||
/// <param name="valore"></param>
|
||||
/// <returns></returns>
|
||||
public int obj2int(object valore)
|
||||
{
|
||||
int answ = 0;
|
||||
int.TryParse(valore.ToString(), out answ);
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Chiamata evento
|
||||
/// </summary>
|
||||
@@ -51,17 +228,18 @@ namespace NKC_WF
|
||||
eh_doRefresh(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Chiamata evento
|
||||
/// </summary>
|
||||
public void raiseReset()
|
||||
{
|
||||
// se qualcuno ascolta sollevo evento nuovo valore...
|
||||
if (eh_doReset != null)
|
||||
{
|
||||
eh_doReset(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper traduzione termini
|
||||
/// </summary>
|
||||
@@ -69,9 +247,29 @@ namespace NKC_WF
|
||||
/// <returns></returns>
|
||||
public string traduci(string lemma)
|
||||
{
|
||||
return SteamWare.user_std.UtSn.Traduci(lemma);
|
||||
string answ = $"__{lemma}__";
|
||||
try
|
||||
{
|
||||
answ = SteamWare.user_std.UtSn.Traduci(lemma);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// Membro gestione accessi al datalayer (istanza x ogni classe controllo)
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
protected Dictionary<int, string> anagMateriali
|
||||
{
|
||||
set
|
||||
@@ -96,7 +294,7 @@ namespace NKC_WF
|
||||
{
|
||||
answ.Add(item.MatID, item.MatDesc);
|
||||
}
|
||||
// salvo in redis
|
||||
// salvo in redis
|
||||
anagMateriali = answ;
|
||||
}
|
||||
// restituisco
|
||||
@@ -104,142 +302,6 @@ namespace NKC_WF
|
||||
}
|
||||
}
|
||||
|
||||
public string matByKey(object _matId)
|
||||
{
|
||||
string answ = "";
|
||||
int matId = 0;
|
||||
int.TryParse(_matId.ToString(), out matId);
|
||||
try
|
||||
{
|
||||
answ = anagMateriali[matId];
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Recupera IP utente
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string currIpAddress
|
||||
{
|
||||
get
|
||||
{
|
||||
string userip = Request.UserHostAddress;
|
||||
return userip;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Restituisce URL immagine QRCode
|
||||
/// </summary>
|
||||
/// <param name="QrValue">Parametro da renderizzare con QRCode</param>
|
||||
/// <returns></returns>
|
||||
public string getImgUrl(object QrValue)
|
||||
{
|
||||
string baseUrl = $"{memLayer.ML.CRS("matrixUrl")}/HOME/QR_site/JSON?val=";
|
||||
string payload = "{'baseUrl':'{0}','parameters':['" + $"{QrValue}" + "']}";
|
||||
string answ = $"{baseUrl}{payload}";
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Recupera valore intero da OBJ
|
||||
/// </summary>
|
||||
/// <param name="_val"></param>
|
||||
/// <returns></returns>
|
||||
public double getInt(object _val)
|
||||
{
|
||||
int answ= -999999;
|
||||
int.TryParse(_val.ToString(), out answ);
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Calcola il rapporto tra 2 valori
|
||||
/// </summary>
|
||||
/// <param name="_dividendo"></param>
|
||||
/// <param name="_divisore"></param>
|
||||
/// <returns></returns>
|
||||
public double getRatio(object _dividendo, object _divisore)
|
||||
{
|
||||
double ratio = 0;
|
||||
double dividendo = 0;
|
||||
double divisore = 1;
|
||||
double.TryParse(_dividendo.ToString(), out dividendo);
|
||||
double.TryParse(_divisore.ToString(), out divisore);
|
||||
ratio = dividendo / divisore;
|
||||
return ratio;
|
||||
}
|
||||
/// <summary>
|
||||
/// determina CSS x colore testo da perc svuotamento...
|
||||
/// </summary>
|
||||
/// <param name="ratio"></param>
|
||||
/// <returns></returns>
|
||||
public string getCssByRatio(double ratio)
|
||||
{
|
||||
string answ = "text-dark";
|
||||
if (ratio == 0)
|
||||
{
|
||||
answ = "text-danger";
|
||||
}
|
||||
else if (ratio == 1)
|
||||
{
|
||||
answ = "text-success";
|
||||
}
|
||||
else
|
||||
{
|
||||
answ = "text-warning";
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Converte obja intero
|
||||
/// </summary>
|
||||
/// <param name="valore"></param>
|
||||
/// <returns></returns>
|
||||
public int obj2int(object valore)
|
||||
{
|
||||
int answ = 0;
|
||||
int.TryParse(valore.ToString(), out answ);
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log INFO
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgInfo(string message)
|
||||
{
|
||||
logger.lg.scriviLog(message, tipoLog.INFO);
|
||||
}
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log DEBUG
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgDebug(string message)
|
||||
{
|
||||
logger.lg.scriviLog(message, tipoLog.DEBUG);
|
||||
}
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log ERROR
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgError(string message)
|
||||
{
|
||||
logger.lg.scriviLog(message, tipoLog.ERROR);
|
||||
}
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log EXCEPTION
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgException(string message, Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"{message}{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
|
||||
}
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log FATAL
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgFatal(string message, Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog(message, tipoLog.FATAL);
|
||||
}
|
||||
#endregion Protected Properties
|
||||
}
|
||||
}
|
||||
+16
-9
@@ -5,6 +5,7 @@ namespace NKC_WF
|
||||
{
|
||||
public static class Compressor
|
||||
{
|
||||
#region Public Methods
|
||||
|
||||
public static byte[] Compress(byte[] data)
|
||||
{
|
||||
@@ -18,22 +19,28 @@ namespace NKC_WF
|
||||
|
||||
public static byte[] Decompress(byte[] data)
|
||||
{
|
||||
byte[] answ = new byte[1];
|
||||
MemoryStream input = new MemoryStream();
|
||||
input.Write(data, 0, data.Length);
|
||||
input.Position = 0;
|
||||
GZipStream gzip = new GZipStream(input,
|
||||
CompressionMode.Decompress, true);
|
||||
MemoryStream output = new MemoryStream();
|
||||
byte[] buff = new byte[64];
|
||||
int read = -1;
|
||||
read = gzip.Read(buff, 0, buff.Length);
|
||||
while (read > 0)
|
||||
using (MemoryStream output = new MemoryStream())
|
||||
{
|
||||
output.Write(buff, 0, read);
|
||||
byte[] buff = new byte[64];
|
||||
int read = -1;
|
||||
read = gzip.Read(buff, 0, buff.Length);
|
||||
while (read > 0)
|
||||
{
|
||||
output.Write(buff, 0, read);
|
||||
read = gzip.Read(buff, 0, buff.Length);
|
||||
}
|
||||
gzip.Close();
|
||||
answ = output.ToArray();
|
||||
}
|
||||
gzip.Close();
|
||||
return output.ToArray();
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* DOM element rendering detection
|
||||
* https://davidwalsh.name/detect-node-insertion
|
||||
*/
|
||||
@keyframes chartjs-render-animation {
|
||||
from { opacity: 0.99; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
|
||||
.chartjs-render-monitor {
|
||||
animation: chartjs-render-animation 0.001s;
|
||||
}
|
||||
|
||||
/*
|
||||
* DOM element resizing detection
|
||||
* https://github.com/marcj/css-element-queries
|
||||
*/
|
||||
.chartjs-size-monitor,
|
||||
.chartjs-size-monitor-expand,
|
||||
.chartjs-size-monitor-shrink {
|
||||
position: absolute;
|
||||
direction: ltr;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
overflow: hidden;
|
||||
pointer-events: none;
|
||||
visibility: hidden;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.chartjs-size-monitor-expand > div {
|
||||
position: absolute;
|
||||
width: 1000000px;
|
||||
height: 1000000px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.chartjs-size-monitor-shrink > div {
|
||||
position: absolute;
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}
|
||||
+63
-17
@@ -22,6 +22,25 @@ body {
|
||||
.textBig {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.fs-1 {
|
||||
font-size: 2em;
|
||||
}
|
||||
.fs-2 {
|
||||
font-size: 1.7em;
|
||||
}
|
||||
.fs-3 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.fs-4 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.fs-5 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
/* COmpresse gridview */
|
||||
.gridview-comp td {
|
||||
padding: 2px;
|
||||
}
|
||||
/* Responsive: Portrait tablets and up */
|
||||
@media screen and (min-width: 768px) {
|
||||
.jumbotron {
|
||||
@@ -42,6 +61,31 @@ body {
|
||||
font-family: 'Roboto Condensed', sans-serif;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.smallTable {
|
||||
font-size: 0.7rem;
|
||||
font-family: 'Open Sans Condensed', sans-serif;
|
||||
}
|
||||
}
|
||||
.GridPager a,
|
||||
.GridPager span {
|
||||
display: block;
|
||||
height: 1.5em;
|
||||
min-width: 1.1em;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
}
|
||||
.GridPager a {
|
||||
background-color: #f5f5f5;
|
||||
color: #969696;
|
||||
/*border-top: 1px solid #969696;
|
||||
border-bottom: 1px solid #969696;*/
|
||||
}
|
||||
.GridPager span {
|
||||
background-color: #A1DCF2;
|
||||
color: #000;
|
||||
/*border-top: 1px solid #3AC0F2;
|
||||
border-bottom: 1px solid #3AC0F2;*/
|
||||
font-weight: bold;
|
||||
}
|
||||
.border-thick {
|
||||
border-width: 3px !important;
|
||||
@@ -88,8 +132,8 @@ body {
|
||||
.smallText {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
/* Override the default bootstrap behavior where horizontal description lists
|
||||
will truncate terms that are too long to fit in the left column
|
||||
/* Override the default bootstrap behavior where horizontal description lists
|
||||
will truncate terms that are too long to fit in the left column
|
||||
*/
|
||||
.dl-horizontal dt {
|
||||
white-space: normal;
|
||||
@@ -157,13 +201,13 @@ body {
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
|
||||
border: 1px solid #ddd;
|
||||
box-sizing: border-box;
|
||||
border-radius: 0.5rem;
|
||||
border-radius: 1rem/2;
|
||||
}
|
||||
.shortcuts .shortcut-sm {
|
||||
min-width: 4.5rem;
|
||||
min-height: 3rem;
|
||||
display: inline-block;
|
||||
padding: 0.25rem 0;
|
||||
padding: 1rem/4 0;
|
||||
margin: 0 2px 1em;
|
||||
vertical-align: top;
|
||||
text-decoration: none;
|
||||
@@ -176,7 +220,7 @@ body {
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
|
||||
border: 1px solid #ddd;
|
||||
box-sizing: border-box;
|
||||
border-radius: 0.5rem;
|
||||
border-radius: 1rem/2;
|
||||
}
|
||||
.shortcuts .shortcut .shortcut-icon {
|
||||
width: 100%;
|
||||
@@ -193,22 +237,24 @@ body {
|
||||
color: #333;
|
||||
}
|
||||
.shortcuts .shortcut:hover {
|
||||
background: #E8E8E8;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
|
||||
background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
|
||||
background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
|
||||
background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
|
||||
color: #696969;
|
||||
background: #00ABDE;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#00DEEF), to(#00ABDE));
|
||||
background-image: -webkit-linear-gradient(top, #00DEEF, 0%, #00ABDE, 100%);
|
||||
background-image: -moz-linear-gradient(top, #00DEEF 0%, #00ABDE 100%);
|
||||
background-image: linear-gradient(to bottom, #00DEEF 0%, #00ABDE 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00DEEF', endColorstr='#00ABDE', GradientType=0);
|
||||
}
|
||||
.shortcuts .shortcut-sm:hover {
|
||||
background: #E8E8E8;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
|
||||
background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
|
||||
background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
|
||||
background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
|
||||
color: #696969;
|
||||
background: #00ABDE;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#00DEEF), to(#00ABDE));
|
||||
background-image: -webkit-linear-gradient(top, #00DEEF, 0%, #00ABDE, 100%);
|
||||
background-image: -moz-linear-gradient(top, #00DEEF 0%, #00ABDE 100%);
|
||||
background-image: linear-gradient(to bottom, #00DEEF 0%, #00ABDE 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00DEEF', endColorstr='#00ABDE', GradientType=0);
|
||||
}
|
||||
.shortcuts .shortcut:active {
|
||||
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
|
||||
+64
-19
@@ -13,7 +13,6 @@ body {
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
|
||||
.textCondens {
|
||||
/*font-family: 'Roboto Condensed', sans-serif;*/
|
||||
font-family: 'Open Sans Condensed', sans-serif;
|
||||
@@ -28,6 +27,27 @@ body {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.fs-1 {
|
||||
font-size: 2.0em;
|
||||
}
|
||||
.fs-2 {
|
||||
font-size: 1.7em;
|
||||
}
|
||||
.fs-3 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.fs-4 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.fs-5 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
/* COmpresse gridview */
|
||||
.gridview-comp td{
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
/* Responsive: Portrait tablets and up */
|
||||
@media screen and (min-width: 768px) {
|
||||
.jumbotron {
|
||||
@@ -52,12 +72,37 @@ body {
|
||||
font-family: 'Roboto Condensed', sans-serif;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.smallTable {
|
||||
font-size: 0.7rem;
|
||||
font-family: 'Open Sans Condensed', sans-serif;
|
||||
}
|
||||
}
|
||||
|
||||
.GridPager a,
|
||||
.GridPager span {
|
||||
display: block;
|
||||
height: 1.5em;
|
||||
min-width: 1.1em;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.GridPager a {
|
||||
background-color: #f5f5f5;
|
||||
color: #969696;
|
||||
/*border-top: 1px solid #969696;
|
||||
border-bottom: 1px solid #969696;*/
|
||||
}
|
||||
|
||||
.GridPager span {
|
||||
background-color: #A1DCF2;
|
||||
color: #000;
|
||||
/*border-top: 1px solid #3AC0F2;
|
||||
border-bottom: 1px solid #3AC0F2;*/
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@borderThick: 3px;
|
||||
|
||||
.border-thick {
|
||||
@@ -113,8 +158,8 @@ body {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
/* Override the default bootstrap behavior where horizontal description lists
|
||||
will truncate terms that are too long to fit in the left column
|
||||
/* Override the default bootstrap behavior where horizontal description lists
|
||||
will truncate terms that are too long to fit in the left column
|
||||
*/
|
||||
.dl-horizontal dt {
|
||||
white-space: normal;
|
||||
@@ -178,7 +223,6 @@ body {
|
||||
|
||||
@blSCut: 1rem;
|
||||
|
||||
|
||||
.shortcuts {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -187,7 +231,7 @@ body {
|
||||
min-width: @blSCut * 9;
|
||||
min-height: @blSCut * 5;
|
||||
display: inline-block;
|
||||
padding: @blSCut*2/3 0;
|
||||
padding: @blSCut*(2/3) 0;
|
||||
margin: 0 2px 1em;
|
||||
vertical-align: top;
|
||||
text-decoration: none;
|
||||
@@ -240,23 +284,25 @@ body {
|
||||
}
|
||||
|
||||
.shortcuts .shortcut:hover {
|
||||
background: #E8E8E8;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
|
||||
background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
|
||||
background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
|
||||
background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
|
||||
color: #696969;
|
||||
background: #00ABDE;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#00DEEF), to(#00ABDE));
|
||||
background-image: -webkit-linear-gradient(top, #00DEEF, 0%, #00ABDE, 100%);
|
||||
background-image: -moz-linear-gradient(top, #00DEEF 0%, #00ABDE 100%);
|
||||
background-image: linear-gradient(to bottom, #00DEEF 0%, #00ABDE 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00DEEF', endColorstr='#00ABDE', GradientType=0);
|
||||
}
|
||||
|
||||
.shortcuts .shortcut-sm:hover {
|
||||
background: #E8E8E8;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
|
||||
background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
|
||||
background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
|
||||
background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
|
||||
color: #696969;
|
||||
background: #00ABDE;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#00DEEF), to(#00ABDE));
|
||||
background-image: -webkit-linear-gradient(top, #00DEEF, 0%, #00ABDE, 100%);
|
||||
background-image: -moz-linear-gradient(top, #00DEEF 0%, #00ABDE 100%);
|
||||
background-image: linear-gradient(to bottom, #00DEEF 0%, #00ABDE 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00DEEF', endColorstr='#00ABDE', GradientType=0);
|
||||
}
|
||||
|
||||
.shortcuts .shortcut:active {
|
||||
@@ -282,10 +328,9 @@ body {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 992px) {
|
||||
.shortcuts .shortcut {
|
||||
min-width: @blSCut * 8;
|
||||
min-height: @blSCut * 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
body{font-family:'Roboto Condensed',sans-serif;padding-top:50px;padding-bottom:20px;}.body-content{padding-left:15px;padding-right:15px;}.textCondens{font-family:'Open Sans Condensed',sans-serif;}.textNormal{font-family:'Roboto',sans-serif;}.textBig{font-size:1.5em;}@media screen and (min-width:768px){.jumbotron{margin-top:20px;}.body-content{padding:0;}body{font-family:'Roboto',sans-serif;}}@media(max-width:992px){.container{width:100%;}body{font-family:'Roboto Condensed',sans-serif;font-size:.9rem;}.smallTable{font-size:.7rem;font-family:'Open Sans Condensed',sans-serif;}}.border-thick{border-width:3px !important;}.flashColor{border:3px solid #00f;-webkit-animation-name:blueFlash;-webkit-animation-duration:.5s;-webkit-animation-timing-function:linear;-webkit-animation-delay:0s;-webkit-animation-iteration-count:infinite;-webkit-animation-direction:alternate;animation-name:blueFlash;animation-duration:.5s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:infinite;animation-direction:alternate;}@-webkit-keyframes blueFlash{0%{border-color:#c4dbff;}25%{border-color:#9dc4ff;}50%{border-color:#5ca5ff;}75%{border-color:#1b82ff;}100%{border-color:#005ccc;}}.bigText{font-size:1.3em;}.smallText{font-size:.8em;}.dl-horizontal dt{white-space:normal;}.deleted{text-decoration:line-through;}.padZL{padding-left:.2em;}.padZR{padding-right:.2em;}.padZRL{padding-left:.2em;padding-right:.2em;}.colAlt{color:#c93;}.fontBig{font-size:2em;}.tNote{color:#8a8a8a;font-style:italic;}.tNoWrap{white-space:nowrap;}.navbar{min-height:0;color:#696969;}.pagination{margin:5px 0;}.pageSelDD{width:6em;}.zeroWidth{width:0;}.shortcuts{text-align:center;}.shortcuts .shortcut{min-width:9rem;min-height:5rem;display:inline-block;padding:.66666667rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:.5rem;}.shortcuts .shortcut-sm{min-width:4.5rem;min-height:3rem;display:inline-block;padding:.25rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:.5rem;}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut-sm .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut-sm:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut-sm:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut:hover .shortcut-icon{color:#c93;}.shortcuts .shortcut-sm:hover .shortcut-icon{color:#666;}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666;}@media(max-width:992px){.shortcuts .shortcut{min-width:8rem;min-height:4rem;}}
|
||||
body{font-family:'Roboto Condensed',sans-serif;padding-top:50px;padding-bottom:20px;}.body-content{padding-left:15px;padding-right:15px;}.textCondens{font-family:'Open Sans Condensed',sans-serif;}.textNormal{font-family:'Roboto',sans-serif;}.textBig{font-size:1.5em;}.fs-1{font-size:2em;}.fs-2{font-size:1.7em;}.fs-3{font-size:1.5em;}.fs-4{font-size:1.3em;}.fs-5{font-size:1.1em;}.gridview-comp td{padding:2px;}@media screen and (min-width:768px){.jumbotron{margin-top:20px;}.body-content{padding:0;}body{font-family:'Roboto',sans-serif;}}@media(max-width:992px){.container{width:100%;}body{font-family:'Roboto Condensed',sans-serif;font-size:.9rem;}.smallTable{font-size:.7rem;font-family:'Open Sans Condensed',sans-serif;}}.GridPager a,.GridPager span{display:block;height:1.5em;min-width:1.1em;text-align:center;text-decoration:none;}.GridPager a{background-color:#f5f5f5;color:#969696;}.GridPager span{background-color:#a1dcf2;color:#000;font-weight:bold;}.border-thick{border-width:3px!important;}.flashColor{border:3px solid #00f;-webkit-animation-name:blueFlash;-webkit-animation-duration:.5s;-webkit-animation-timing-function:linear;-webkit-animation-delay:0s;-webkit-animation-iteration-count:infinite;-webkit-animation-direction:alternate;animation-name:blueFlash;animation-duration:.5s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:infinite;animation-direction:alternate;}@-webkit-keyframes blueFlash{0%{border-color:#c4dbff;}25%{border-color:#9dc4ff;}50%{border-color:#5ca5ff;}75%{border-color:#1b82ff;}100%{border-color:#005ccc;}}.bigText{font-size:1.3em;}.smallText{font-size:.8em;}.dl-horizontal dt{white-space:normal;}.deleted{text-decoration:line-through;}.padZL{padding-left:.2em;}.padZR{padding-right:.2em;}.padZRL{padding-left:.2em;padding-right:.2em;}.colAlt{color:#c93;}.fontBig{font-size:2em;}.tNote{color:#8a8a8a;font-style:italic;}.tNoWrap{white-space:nowrap;}.navbar{min-height:0;color:#696969;}.pagination{margin:5px 0;}.pageSelDD{width:6em;}.zeroWidth{width:0;}.shortcuts{text-align:center;}.shortcuts .shortcut{min-width:9rem;min-height:5rem;display:inline-block;padding:.66666667rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:1rem/2;}.shortcuts .shortcut-sm{min-width:4.5rem;min-height:3rem;display:inline-block;padding:1rem/4 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:1rem/2;}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut-sm .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut:hover{color:#696969;background:#00abde;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#00deef),to(#00abde));background-image:-webkit-linear-gradient(top,#00deef,0%,#00abde,100%);background-image:-moz-linear-gradient(top,#00deef 0%,#00abde 100%);background-image:linear-gradient(to bottom,#00deef 0%,#00abde 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00DEEF',endColorstr='#00ABDE',GradientType=0);}.shortcuts .shortcut-sm:hover{color:#696969;background:#00abde;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#00deef),to(#00abde));background-image:-webkit-linear-gradient(top,#00deef,0%,#00abde,100%);background-image:-moz-linear-gradient(top,#00deef 0%,#00abde 100%);background-image:linear-gradient(to bottom,#00deef 0%,#00abde 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00DEEF',endColorstr='#00ABDE',GradientType=0);}.shortcuts .shortcut:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut-sm:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut:hover .shortcut-icon{color:#c93;}.shortcuts .shortcut-sm:hover .shortcut-icon{color:#666;}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666;}@media(max-width:992px){.shortcuts .shortcut{min-width:8rem;min-height:4rem;}}
|
||||
Vendored
+10
-37
@@ -1,8 +1,8 @@
|
||||
/*!
|
||||
* Bootstrap Grid v4.4.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors
|
||||
* Copyright 2011-2019 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Bootstrap Grid v4.6.0 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
*/
|
||||
html {
|
||||
box-sizing: border-box;
|
||||
@@ -15,39 +15,12 @@ html {
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 100%;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
@media (min-width: 576px) {
|
||||
.container {
|
||||
max-width: 540px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.container {
|
||||
max-width: 720px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.container {
|
||||
max-width: 960px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.container {
|
||||
max-width: 1140px;
|
||||
}
|
||||
}
|
||||
|
||||
.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {
|
||||
.container,
|
||||
.container-fluid,
|
||||
.container-sm,
|
||||
.container-md,
|
||||
.container-lg,
|
||||
.container-xl {
|
||||
width: 100%;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
|
||||
File diff suppressed because one or more lines are too long
+5
-5
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Vendored
+15
-17
@@ -1,8 +1,8 @@
|
||||
/*!
|
||||
* Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors
|
||||
* Copyright 2011-2019 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Bootstrap Reboot v4.6.0 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/
|
||||
*,
|
||||
@@ -24,7 +24,7 @@ article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
@@ -133,12 +133,12 @@ a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:not([href]) {
|
||||
a:not([href]):not([class]) {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:not([href]):hover {
|
||||
a:not([href]):not([class]):hover {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
@@ -155,6 +155,7 @@ pre {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
overflow: auto;
|
||||
-ms-overflow-style: scrollbar;
|
||||
}
|
||||
|
||||
figure {
|
||||
@@ -185,6 +186,7 @@ caption {
|
||||
|
||||
th {
|
||||
text-align: inherit;
|
||||
text-align: -webkit-match-parent;
|
||||
}
|
||||
|
||||
label {
|
||||
@@ -196,9 +198,8 @@ button {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
button:focus {
|
||||
outline: 1px dotted;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
button:focus:not(:focus-visible) {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
input,
|
||||
@@ -222,6 +223,10 @@ select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
[role="button"] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
select {
|
||||
word-wrap: normal;
|
||||
}
|
||||
@@ -254,13 +259,6 @@ input[type="checkbox"] {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
input[type="date"],
|
||||
input[type="time"],
|
||||
input[type="datetime-local"],
|
||||
input[type="month"] {
|
||||
-webkit-appearance: listbox;
|
||||
}
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
resize: vertical;
|
||||
|
||||
File diff suppressed because one or more lines are too long
+5
-5
@@ -1,8 +1,8 @@
|
||||
/*!
|
||||
* Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors
|
||||
* Copyright 2011-2019 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Bootstrap Reboot v4.6.0 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
||||
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
||||
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
||||
File diff suppressed because one or more lines are too long
Vendored
+230
-156
@@ -1,8 +1,8 @@
|
||||
/*!
|
||||
* Bootstrap v4.4.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors
|
||||
* Copyright 2011-2019 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Bootstrap v4.6.0 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
*/
|
||||
:root {
|
||||
--blue: #007bff;
|
||||
@@ -31,7 +31,7 @@
|
||||
--breakpoint-md: 768px;
|
||||
--breakpoint-lg: 992px;
|
||||
--breakpoint-xl: 1200px;
|
||||
--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
@@ -163,12 +163,12 @@ a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:not([href]) {
|
||||
a:not([href]):not([class]) {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:not([href]):hover {
|
||||
a:not([href]):not([class]):hover {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
@@ -185,6 +185,7 @@ pre {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
overflow: auto;
|
||||
-ms-overflow-style: scrollbar;
|
||||
}
|
||||
|
||||
figure {
|
||||
@@ -215,6 +216,7 @@ caption {
|
||||
|
||||
th {
|
||||
text-align: inherit;
|
||||
text-align: -webkit-match-parent;
|
||||
}
|
||||
|
||||
label {
|
||||
@@ -226,9 +228,8 @@ button {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
button:focus {
|
||||
outline: 1px dotted;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
button:focus:not(:focus-visible) {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
input,
|
||||
@@ -252,6 +253,10 @@ select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
[role="button"] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
select {
|
||||
word-wrap: normal;
|
||||
}
|
||||
@@ -284,13 +289,6 @@ input[type="checkbox"] {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
input[type="date"],
|
||||
input[type="time"],
|
||||
input[type="datetime-local"],
|
||||
input[type="month"] {
|
||||
-webkit-appearance: listbox;
|
||||
}
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
resize: vertical;
|
||||
@@ -541,39 +539,12 @@ pre code {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 100%;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
@media (min-width: 576px) {
|
||||
.container {
|
||||
max-width: 540px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.container {
|
||||
max-width: 720px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.container {
|
||||
max-width: 960px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.container {
|
||||
max-width: 1140px;
|
||||
}
|
||||
}
|
||||
|
||||
.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {
|
||||
.container,
|
||||
.container-fluid,
|
||||
.container-sm,
|
||||
.container-md,
|
||||
.container-lg,
|
||||
.container-xl {
|
||||
width: 100%;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
@@ -2100,6 +2071,15 @@ pre code {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
input[type="date"].form-control,
|
||||
input[type="time"].form-control,
|
||||
input[type="datetime-local"].form-control,
|
||||
input[type="month"].form-control {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
select.form-control:focus::-ms-value {
|
||||
color: #495057;
|
||||
background-color: #fff;
|
||||
@@ -2247,6 +2227,7 @@ textarea.form-control {
|
||||
.valid-tooltip {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
z-index: 5;
|
||||
display: none;
|
||||
max-width: 100%;
|
||||
@@ -2259,6 +2240,11 @@ textarea.form-control {
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.form-row > .col > .valid-tooltip,
|
||||
.form-row > [class*="col-"] > .valid-tooltip {
|
||||
left: 5px;
|
||||
}
|
||||
|
||||
.was-validated :valid ~ .valid-feedback,
|
||||
.was-validated :valid ~ .valid-tooltip,
|
||||
.is-valid ~ .valid-feedback,
|
||||
@@ -2288,7 +2274,7 @@ textarea.form-control {
|
||||
.was-validated .custom-select:valid, .custom-select.is-valid {
|
||||
border-color: #28a745;
|
||||
padding-right: calc(0.75em + 2.3125rem);
|
||||
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
|
||||
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;
|
||||
}
|
||||
|
||||
.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {
|
||||
@@ -2347,6 +2333,7 @@ textarea.form-control {
|
||||
.invalid-tooltip {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
z-index: 5;
|
||||
display: none;
|
||||
max-width: 100%;
|
||||
@@ -2359,6 +2346,11 @@ textarea.form-control {
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.form-row > .col > .invalid-tooltip,
|
||||
.form-row > [class*="col-"] > .invalid-tooltip {
|
||||
left: 5px;
|
||||
}
|
||||
|
||||
.was-validated :invalid ~ .invalid-feedback,
|
||||
.was-validated :invalid ~ .invalid-tooltip,
|
||||
.is-invalid ~ .invalid-feedback,
|
||||
@@ -2388,7 +2380,7 @@ textarea.form-control {
|
||||
.was-validated .custom-select:invalid, .custom-select.is-invalid {
|
||||
border-color: #dc3545;
|
||||
padding-right: calc(0.75em + 2.3125rem);
|
||||
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
|
||||
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;
|
||||
}
|
||||
|
||||
.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {
|
||||
@@ -2517,7 +2509,6 @@ textarea.form-control {
|
||||
color: #212529;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
@@ -2551,6 +2542,10 @@ textarea.form-control {
|
||||
opacity: 0.65;
|
||||
}
|
||||
|
||||
.btn:not(:disabled):not(.disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
a.btn.disabled,
|
||||
fieldset:disabled a.btn {
|
||||
pointer-events: none;
|
||||
@@ -3121,7 +3116,6 @@ fieldset:disabled a.btn {
|
||||
|
||||
.btn-link:focus, .btn-link.focus {
|
||||
text-decoration: underline;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.btn-link:disabled, .btn-link.disabled {
|
||||
@@ -3403,7 +3397,7 @@ input[type="button"].btn-block {
|
||||
.dropdown-item:hover, .dropdown-item:focus {
|
||||
color: #16181b;
|
||||
text-decoration: none;
|
||||
background-color: #f8f9fa;
|
||||
background-color: #e9ecef;
|
||||
}
|
||||
|
||||
.dropdown-item.active, .dropdown-item:active {
|
||||
@@ -3413,7 +3407,7 @@ input[type="button"].btn-block {
|
||||
}
|
||||
|
||||
.dropdown-item.disabled, .dropdown-item:disabled {
|
||||
color: #6c757d;
|
||||
color: #adb5bd;
|
||||
pointer-events: none;
|
||||
background-color: transparent;
|
||||
}
|
||||
@@ -3580,8 +3574,9 @@ input[type="button"].btn-block {
|
||||
.input-group > .custom-select,
|
||||
.input-group > .custom-file {
|
||||
position: relative;
|
||||
-ms-flex: 1 1 0%;
|
||||
flex: 1 1 0%;
|
||||
-ms-flex: 1 1 auto;
|
||||
flex: 1 1 auto;
|
||||
width: 1%;
|
||||
min-width: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
@@ -3611,12 +3606,6 @@ input[type="button"].btn-block {
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
.input-group > .form-control:not(:last-child),
|
||||
.input-group > .custom-select:not(:last-child) {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
.input-group > .form-control:not(:first-child),
|
||||
.input-group > .custom-select:not(:first-child) {
|
||||
border-top-left-radius: 0;
|
||||
@@ -3631,14 +3620,23 @@ input[type="button"].btn-block {
|
||||
}
|
||||
|
||||
.input-group > .custom-file:not(:last-child) .custom-file-label,
|
||||
.input-group > .custom-file:not(:last-child) .custom-file-label::after {
|
||||
.input-group > .custom-file:not(:first-child) .custom-file-label {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
.input-group:not(.has-validation) > .form-control:not(:last-child),
|
||||
.input-group:not(.has-validation) > .custom-select:not(:last-child),
|
||||
.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
.input-group > .custom-file:not(:first-child) .custom-file-label {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
.input-group.has-validation > .form-control:nth-last-child(n + 3),
|
||||
.input-group.has-validation > .custom-select:nth-last-child(n + 3),
|
||||
.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
.input-group-prepend,
|
||||
@@ -3741,8 +3739,10 @@ input[type="button"].btn-block {
|
||||
|
||||
.input-group > .input-group-prepend > .btn,
|
||||
.input-group > .input-group-prepend > .input-group-text,
|
||||
.input-group > .input-group-append:not(:last-child) > .btn,
|
||||
.input-group > .input-group-append:not(:last-child) > .input-group-text,
|
||||
.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,
|
||||
.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,
|
||||
.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,
|
||||
.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,
|
||||
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
|
||||
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
|
||||
border-top-right-radius: 0;
|
||||
@@ -3761,9 +3761,12 @@ input[type="button"].btn-block {
|
||||
|
||||
.custom-control {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: block;
|
||||
min-height: 1.5rem;
|
||||
padding-left: 1.5rem;
|
||||
-webkit-print-color-adjust: exact;
|
||||
color-adjust: exact;
|
||||
}
|
||||
|
||||
.custom-control-inline {
|
||||
@@ -3836,7 +3839,7 @@ input[type="button"].btn-block {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
content: "";
|
||||
background: no-repeat 50% / 50% 50%;
|
||||
background: 50% / 50% 50% no-repeat;
|
||||
}
|
||||
|
||||
.custom-checkbox .custom-control-label::before {
|
||||
@@ -3925,7 +3928,7 @@ input[type="button"].btn-block {
|
||||
line-height: 1.5;
|
||||
color: #495057;
|
||||
vertical-align: middle;
|
||||
background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px;
|
||||
background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat;
|
||||
border: 1px solid #ced4da;
|
||||
border-radius: 0.25rem;
|
||||
-webkit-appearance: none;
|
||||
@@ -3994,6 +3997,7 @@ input[type="button"].btn-block {
|
||||
width: 100%;
|
||||
height: calc(1.5em + 0.75rem + 2px);
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
@@ -4023,6 +4027,7 @@ input[type="button"].btn-block {
|
||||
z-index: 1;
|
||||
height: calc(1.5em + 0.75rem + 2px);
|
||||
padding: 0.375rem 0.75rem;
|
||||
overflow: hidden;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #495057;
|
||||
@@ -4059,7 +4064,7 @@ input[type="button"].btn-block {
|
||||
}
|
||||
|
||||
.custom-range:focus {
|
||||
outline: none;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.custom-range:focus::-webkit-slider-thumb {
|
||||
@@ -4254,11 +4259,8 @@ input[type="button"].btn-block {
|
||||
border-bottom: 1px solid #dee2e6;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-item {
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link {
|
||||
margin-bottom: -1px;
|
||||
border: 1px solid transparent;
|
||||
border-top-left-radius: 0.25rem;
|
||||
border-top-right-radius: 0.25rem;
|
||||
@@ -4297,12 +4299,14 @@ input[type="button"].btn-block {
|
||||
background-color: #007bff;
|
||||
}
|
||||
|
||||
.nav-fill > .nav-link,
|
||||
.nav-fill .nav-item {
|
||||
-ms-flex: 1 1 auto;
|
||||
flex: 1 1 auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.nav-justified > .nav-link,
|
||||
.nav-justified .nav-item {
|
||||
-ms-flex-preferred-size: 0;
|
||||
flex-basis: 0;
|
||||
@@ -4412,8 +4416,12 @@ input[type="button"].btn-block {
|
||||
height: 1.5em;
|
||||
vertical-align: middle;
|
||||
content: "";
|
||||
background: no-repeat center center;
|
||||
background-size: 100% 100%;
|
||||
background: 50% / 100% 100% no-repeat;
|
||||
}
|
||||
|
||||
.navbar-nav-scroll {
|
||||
max-height: 75vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
@media (max-width: 575.98px) {
|
||||
@@ -4447,6 +4455,9 @@ input[type="button"].btn-block {
|
||||
-ms-flex-wrap: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.navbar-expand-sm .navbar-nav-scroll {
|
||||
overflow: visible;
|
||||
}
|
||||
.navbar-expand-sm .navbar-collapse {
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
@@ -4489,6 +4500,9 @@ input[type="button"].btn-block {
|
||||
-ms-flex-wrap: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.navbar-expand-md .navbar-nav-scroll {
|
||||
overflow: visible;
|
||||
}
|
||||
.navbar-expand-md .navbar-collapse {
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
@@ -4531,6 +4545,9 @@ input[type="button"].btn-block {
|
||||
-ms-flex-wrap: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.navbar-expand-lg .navbar-nav-scroll {
|
||||
overflow: visible;
|
||||
}
|
||||
.navbar-expand-lg .navbar-collapse {
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
@@ -4573,6 +4590,9 @@ input[type="button"].btn-block {
|
||||
-ms-flex-wrap: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.navbar-expand-xl .navbar-nav-scroll {
|
||||
overflow: visible;
|
||||
}
|
||||
.navbar-expand-xl .navbar-collapse {
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
@@ -4617,6 +4637,10 @@ input[type="button"].btn-block {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.navbar-expand .navbar-nav-scroll {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.navbar-expand .navbar-collapse {
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
@@ -4661,7 +4685,7 @@ input[type="button"].btn-block {
|
||||
}
|
||||
|
||||
.navbar-light .navbar-toggler-icon {
|
||||
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
|
||||
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
|
||||
}
|
||||
|
||||
.navbar-light .navbar-text {
|
||||
@@ -4709,7 +4733,7 @@ input[type="button"].btn-block {
|
||||
}
|
||||
|
||||
.navbar-dark .navbar-toggler-icon {
|
||||
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
|
||||
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
|
||||
}
|
||||
|
||||
.navbar-dark .navbar-text {
|
||||
@@ -4743,14 +4767,26 @@ input[type="button"].btn-block {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.card > .list-group:first-child .list-group-item:first-child {
|
||||
border-top-left-radius: 0.25rem;
|
||||
border-top-right-radius: 0.25rem;
|
||||
.card > .list-group {
|
||||
border-top: inherit;
|
||||
border-bottom: inherit;
|
||||
}
|
||||
|
||||
.card > .list-group:last-child .list-group-item:last-child {
|
||||
border-bottom-right-radius: 0.25rem;
|
||||
border-bottom-left-radius: 0.25rem;
|
||||
.card > .list-group:first-child {
|
||||
border-top-width: 0;
|
||||
border-top-left-radius: calc(0.25rem - 1px);
|
||||
border-top-right-radius: calc(0.25rem - 1px);
|
||||
}
|
||||
|
||||
.card > .list-group:last-child {
|
||||
border-bottom-width: 0;
|
||||
border-bottom-right-radius: calc(0.25rem - 1px);
|
||||
border-bottom-left-radius: calc(0.25rem - 1px);
|
||||
}
|
||||
|
||||
.card > .card-header + .list-group,
|
||||
.card > .list-group + .card-footer {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.card-body {
|
||||
@@ -4792,10 +4828,6 @@ input[type="button"].btn-block {
|
||||
border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
|
||||
}
|
||||
|
||||
.card-header + .list-group .list-group-item:first-child {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.card-footer {
|
||||
padding: 0.75rem 1.25rem;
|
||||
background-color: rgba(0, 0, 0, 0.03);
|
||||
@@ -4825,6 +4857,7 @@ input[type="button"].btn-block {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
padding: 1.25rem;
|
||||
border-radius: calc(0.25rem - 1px);
|
||||
}
|
||||
|
||||
.card-img,
|
||||
@@ -4936,6 +4969,10 @@ input[type="button"].btn-block {
|
||||
}
|
||||
}
|
||||
|
||||
.accordion {
|
||||
overflow-anchor: none;
|
||||
}
|
||||
|
||||
.accordion > .card {
|
||||
overflow: hidden;
|
||||
}
|
||||
@@ -4973,7 +5010,7 @@ input[type="button"].btn-block {
|
||||
}
|
||||
|
||||
.breadcrumb-item + .breadcrumb-item::before {
|
||||
display: inline-block;
|
||||
float: left;
|
||||
padding-right: 0.5rem;
|
||||
color: #6c757d;
|
||||
content: "/";
|
||||
@@ -5283,6 +5320,7 @@ a.badge-dark:focus, a.badge-dark.focus {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
z-index: 2;
|
||||
padding: 0.75rem 1.25rem;
|
||||
color: inherit;
|
||||
}
|
||||
@@ -5422,6 +5460,7 @@ a.badge-dark:focus, a.badge-dark.focus {
|
||||
display: flex;
|
||||
height: 1rem;
|
||||
overflow: hidden;
|
||||
line-height: 0;
|
||||
font-size: 0.75rem;
|
||||
background-color: #e9ecef;
|
||||
border-radius: 0.25rem;
|
||||
@@ -5454,8 +5493,8 @@ a.badge-dark:focus, a.badge-dark.focus {
|
||||
}
|
||||
|
||||
.progress-bar-animated {
|
||||
-webkit-animation: progress-bar-stripes 1s linear infinite;
|
||||
animation: progress-bar-stripes 1s linear infinite;
|
||||
-webkit-animation: 1s linear infinite progress-bar-stripes;
|
||||
animation: 1s linear infinite progress-bar-stripes;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
@@ -5484,6 +5523,7 @@ a.badge-dark:focus, a.badge-dark.focus {
|
||||
flex-direction: column;
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.list-group-item-action {
|
||||
@@ -5513,13 +5553,13 @@ a.badge-dark:focus, a.badge-dark.focus {
|
||||
}
|
||||
|
||||
.list-group-item:first-child {
|
||||
border-top-left-radius: 0.25rem;
|
||||
border-top-right-radius: 0.25rem;
|
||||
border-top-left-radius: inherit;
|
||||
border-top-right-radius: inherit;
|
||||
}
|
||||
|
||||
.list-group-item:last-child {
|
||||
border-bottom-right-radius: 0.25rem;
|
||||
border-bottom-left-radius: 0.25rem;
|
||||
border-bottom-right-radius: inherit;
|
||||
border-bottom-left-radius: inherit;
|
||||
}
|
||||
|
||||
.list-group-item.disabled, .list-group-item:disabled {
|
||||
@@ -5549,26 +5589,26 @@ a.badge-dark:focus, a.badge-dark.focus {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.list-group-horizontal .list-group-item:first-child {
|
||||
.list-group-horizontal > .list-group-item:first-child {
|
||||
border-bottom-left-radius: 0.25rem;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
.list-group-horizontal .list-group-item:last-child {
|
||||
.list-group-horizontal > .list-group-item:last-child {
|
||||
border-top-right-radius: 0.25rem;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
.list-group-horizontal .list-group-item.active {
|
||||
.list-group-horizontal > .list-group-item.active {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.list-group-horizontal .list-group-item + .list-group-item {
|
||||
.list-group-horizontal > .list-group-item + .list-group-item {
|
||||
border-top-width: 1px;
|
||||
border-left-width: 0;
|
||||
}
|
||||
|
||||
.list-group-horizontal .list-group-item + .list-group-item.active {
|
||||
.list-group-horizontal > .list-group-item + .list-group-item.active {
|
||||
margin-left: -1px;
|
||||
border-left-width: 1px;
|
||||
}
|
||||
@@ -5578,22 +5618,22 @@ a.badge-dark:focus, a.badge-dark.focus {
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
}
|
||||
.list-group-horizontal-sm .list-group-item:first-child {
|
||||
.list-group-horizontal-sm > .list-group-item:first-child {
|
||||
border-bottom-left-radius: 0.25rem;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
.list-group-horizontal-sm .list-group-item:last-child {
|
||||
.list-group-horizontal-sm > .list-group-item:last-child {
|
||||
border-top-right-radius: 0.25rem;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.list-group-horizontal-sm .list-group-item.active {
|
||||
.list-group-horizontal-sm > .list-group-item.active {
|
||||
margin-top: 0;
|
||||
}
|
||||
.list-group-horizontal-sm .list-group-item + .list-group-item {
|
||||
.list-group-horizontal-sm > .list-group-item + .list-group-item {
|
||||
border-top-width: 1px;
|
||||
border-left-width: 0;
|
||||
}
|
||||
.list-group-horizontal-sm .list-group-item + .list-group-item.active {
|
||||
.list-group-horizontal-sm > .list-group-item + .list-group-item.active {
|
||||
margin-left: -1px;
|
||||
border-left-width: 1px;
|
||||
}
|
||||
@@ -5604,22 +5644,22 @@ a.badge-dark:focus, a.badge-dark.focus {
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
}
|
||||
.list-group-horizontal-md .list-group-item:first-child {
|
||||
.list-group-horizontal-md > .list-group-item:first-child {
|
||||
border-bottom-left-radius: 0.25rem;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
.list-group-horizontal-md .list-group-item:last-child {
|
||||
.list-group-horizontal-md > .list-group-item:last-child {
|
||||
border-top-right-radius: 0.25rem;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.list-group-horizontal-md .list-group-item.active {
|
||||
.list-group-horizontal-md > .list-group-item.active {
|
||||
margin-top: 0;
|
||||
}
|
||||
.list-group-horizontal-md .list-group-item + .list-group-item {
|
||||
.list-group-horizontal-md > .list-group-item + .list-group-item {
|
||||
border-top-width: 1px;
|
||||
border-left-width: 0;
|
||||
}
|
||||
.list-group-horizontal-md .list-group-item + .list-group-item.active {
|
||||
.list-group-horizontal-md > .list-group-item + .list-group-item.active {
|
||||
margin-left: -1px;
|
||||
border-left-width: 1px;
|
||||
}
|
||||
@@ -5630,22 +5670,22 @@ a.badge-dark:focus, a.badge-dark.focus {
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
}
|
||||
.list-group-horizontal-lg .list-group-item:first-child {
|
||||
.list-group-horizontal-lg > .list-group-item:first-child {
|
||||
border-bottom-left-radius: 0.25rem;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
.list-group-horizontal-lg .list-group-item:last-child {
|
||||
.list-group-horizontal-lg > .list-group-item:last-child {
|
||||
border-top-right-radius: 0.25rem;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.list-group-horizontal-lg .list-group-item.active {
|
||||
.list-group-horizontal-lg > .list-group-item.active {
|
||||
margin-top: 0;
|
||||
}
|
||||
.list-group-horizontal-lg .list-group-item + .list-group-item {
|
||||
.list-group-horizontal-lg > .list-group-item + .list-group-item {
|
||||
border-top-width: 1px;
|
||||
border-left-width: 0;
|
||||
}
|
||||
.list-group-horizontal-lg .list-group-item + .list-group-item.active {
|
||||
.list-group-horizontal-lg > .list-group-item + .list-group-item.active {
|
||||
margin-left: -1px;
|
||||
border-left-width: 1px;
|
||||
}
|
||||
@@ -5656,38 +5696,36 @@ a.badge-dark:focus, a.badge-dark.focus {
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
}
|
||||
.list-group-horizontal-xl .list-group-item:first-child {
|
||||
.list-group-horizontal-xl > .list-group-item:first-child {
|
||||
border-bottom-left-radius: 0.25rem;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
.list-group-horizontal-xl .list-group-item:last-child {
|
||||
.list-group-horizontal-xl > .list-group-item:last-child {
|
||||
border-top-right-radius: 0.25rem;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.list-group-horizontal-xl .list-group-item.active {
|
||||
.list-group-horizontal-xl > .list-group-item.active {
|
||||
margin-top: 0;
|
||||
}
|
||||
.list-group-horizontal-xl .list-group-item + .list-group-item {
|
||||
.list-group-horizontal-xl > .list-group-item + .list-group-item {
|
||||
border-top-width: 1px;
|
||||
border-left-width: 0;
|
||||
}
|
||||
.list-group-horizontal-xl .list-group-item + .list-group-item.active {
|
||||
.list-group-horizontal-xl > .list-group-item + .list-group-item.active {
|
||||
margin-left: -1px;
|
||||
border-left-width: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
.list-group-flush .list-group-item {
|
||||
border-right-width: 0;
|
||||
border-left-width: 0;
|
||||
.list-group-flush {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.list-group-flush .list-group-item:first-child {
|
||||
border-top-width: 0;
|
||||
.list-group-flush > .list-group-item {
|
||||
border-width: 0 0 1px;
|
||||
}
|
||||
|
||||
.list-group-flush:last-child .list-group-item:last-child {
|
||||
.list-group-flush > .list-group-item:last-child {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
@@ -5842,9 +5880,6 @@ button.close {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
a.close.disabled {
|
||||
@@ -5852,15 +5887,14 @@ a.close.disabled {
|
||||
}
|
||||
|
||||
.toast {
|
||||
-ms-flex-preferred-size: 350px;
|
||||
flex-basis: 350px;
|
||||
max-width: 350px;
|
||||
overflow: hidden;
|
||||
font-size: 0.875rem;
|
||||
background-color: rgba(255, 255, 255, 0.85);
|
||||
background-clip: padding-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
backdrop-filter: blur(10px);
|
||||
opacity: 0;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
@@ -5892,6 +5926,8 @@ a.close.disabled {
|
||||
background-color: rgba(255, 255, 255, 0.85);
|
||||
background-clip: padding-box;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
|
||||
border-top-left-radius: calc(0.25rem - 1px);
|
||||
border-top-right-radius: calc(0.25rem - 1px);
|
||||
}
|
||||
|
||||
.toast-body {
|
||||
@@ -5982,6 +6018,9 @@ a.close.disabled {
|
||||
.modal-dialog-centered::before {
|
||||
display: block;
|
||||
height: calc(100vh - 1rem);
|
||||
height: -webkit-min-content;
|
||||
height: -moz-min-content;
|
||||
height: min-content;
|
||||
content: "";
|
||||
}
|
||||
|
||||
@@ -6107,6 +6146,9 @@ a.close.disabled {
|
||||
}
|
||||
.modal-dialog-centered::before {
|
||||
height: calc(100vh - 3.5rem);
|
||||
height: -webkit-min-content;
|
||||
height: -moz-min-content;
|
||||
height: min-content;
|
||||
}
|
||||
.modal-sm {
|
||||
max-width: 300px;
|
||||
@@ -6131,7 +6173,7 @@ a.close.disabled {
|
||||
z-index: 1070;
|
||||
display: block;
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
@@ -6244,7 +6286,7 @@ a.close.disabled {
|
||||
z-index: 1060;
|
||||
display: block;
|
||||
max-width: 276px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
@@ -6532,7 +6574,7 @@ a.close.disabled {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background: no-repeat 50% / 100% 100%;
|
||||
background: 50% / 100% 100% no-repeat;
|
||||
}
|
||||
|
||||
.carousel-control-prev-icon {
|
||||
@@ -6621,8 +6663,8 @@ a.close.disabled {
|
||||
border: 0.25em solid currentColor;
|
||||
border-right-color: transparent;
|
||||
border-radius: 50%;
|
||||
-webkit-animation: spinner-border .75s linear infinite;
|
||||
animation: spinner-border .75s linear infinite;
|
||||
-webkit-animation: .75s linear infinite spinner-border;
|
||||
animation: .75s linear infinite spinner-border;
|
||||
}
|
||||
|
||||
.spinner-border-sm {
|
||||
@@ -6638,6 +6680,8 @@ a.close.disabled {
|
||||
}
|
||||
50% {
|
||||
opacity: 1;
|
||||
-webkit-transform: none;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6648,6 +6692,8 @@ a.close.disabled {
|
||||
}
|
||||
50% {
|
||||
opacity: 1;
|
||||
-webkit-transform: none;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6659,8 +6705,8 @@ a.close.disabled {
|
||||
background-color: currentColor;
|
||||
border-radius: 50%;
|
||||
opacity: 0;
|
||||
-webkit-animation: spinner-grow .75s linear infinite;
|
||||
animation: spinner-grow .75s linear infinite;
|
||||
-webkit-animation: .75s linear infinite spinner-grow;
|
||||
animation: .75s linear infinite spinner-grow;
|
||||
}
|
||||
|
||||
.spinner-grow-sm {
|
||||
@@ -6668,6 +6714,14 @@ a.close.disabled {
|
||||
height: 1rem;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.spinner-border,
|
||||
.spinner-grow {
|
||||
-webkit-animation-duration: 1.5s;
|
||||
animation-duration: 1.5s;
|
||||
}
|
||||
}
|
||||
|
||||
.align-baseline {
|
||||
vertical-align: baseline !important;
|
||||
}
|
||||
@@ -7933,6 +7987,26 @@ button.bg-dark:focus {
|
||||
}
|
||||
}
|
||||
|
||||
.user-select-all {
|
||||
-webkit-user-select: all !important;
|
||||
-moz-user-select: all !important;
|
||||
user-select: all !important;
|
||||
}
|
||||
|
||||
.user-select-auto {
|
||||
-webkit-user-select: auto !important;
|
||||
-moz-user-select: auto !important;
|
||||
-ms-user-select: auto !important;
|
||||
user-select: auto !important;
|
||||
}
|
||||
|
||||
.user-select-none {
|
||||
-webkit-user-select: none !important;
|
||||
-moz-user-select: none !important;
|
||||
-ms-user-select: none !important;
|
||||
user-select: none !important;
|
||||
}
|
||||
|
||||
.overflow-auto {
|
||||
overflow: auto !important;
|
||||
}
|
||||
@@ -8088,18 +8162,6 @@ button.bg-dark:focus {
|
||||
height: 100vh !important;
|
||||
}
|
||||
|
||||
.stretched-link::after {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
pointer-events: auto;
|
||||
content: "";
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.m-0 {
|
||||
margin: 0 !important;
|
||||
}
|
||||
@@ -9912,6 +9974,18 @@ button.bg-dark:focus {
|
||||
}
|
||||
}
|
||||
|
||||
.stretched-link::after {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
pointer-events: auto;
|
||||
content: "";
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.text-monospace {
|
||||
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
|
||||
}
|
||||
@@ -10128,7 +10202,7 @@ a.text-dark:hover, a.text-dark:focus {
|
||||
|
||||
.text-break {
|
||||
word-break: break-word !important;
|
||||
overflow-wrap: break-word !important;
|
||||
word-wrap: break-word !important;
|
||||
}
|
||||
|
||||
.text-reset {
|
||||
|
||||
File diff suppressed because one or more lines are too long
Vendored
+5
-5
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,6 @@
|
||||
using System;
|
||||
using AppData;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Web.Http;
|
||||
|
||||
namespace NKC_WF.Controllers
|
||||
@@ -8,6 +10,8 @@ namespace NKC_WF.Controllers
|
||||
/// </summary>
|
||||
public class AliveController : ApiController
|
||||
{
|
||||
#region Public Methods
|
||||
|
||||
// GET: api/Alive
|
||||
[HttpGet]
|
||||
public string Get()
|
||||
@@ -15,12 +19,33 @@ namespace NKC_WF.Controllers
|
||||
return "OK";
|
||||
}
|
||||
|
||||
// GET: api/Alive/Clock
|
||||
/// <summary>
|
||||
/// Effettua operazioni pulizia memoria dati su redis e MongoDB
|
||||
/// GET: api/Alive/MaxRec
|
||||
/// </summary>
|
||||
/// <param name="id">Rappresenta il num di record MAX da mantenere in memoria</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public string Get(int id)
|
||||
{
|
||||
return DateTime.Now.ToString($"yyyy-MM-dd HH:mm:ss.fff - ID: {id}");
|
||||
// check valore minimo ammesso parametro numero env da mantenere
|
||||
int n2k = 1500;
|
||||
id = id > n2k ? id : n2k;
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
// recupero contatore attuale
|
||||
var currCount = ComLib.GetCurrMCount();
|
||||
// calcolo ultimo ID da tenere
|
||||
var idxMin = currCount - id;
|
||||
// elimino da mongo DB i record registrati...
|
||||
int numDelMongo = ComLib.CleanupMongo(idxMin);
|
||||
// inizio processando 1:1 da MList ed elimino hash + relativa cache
|
||||
int numDelRedis = ComLib.CleanupRedis(idxMin);
|
||||
|
||||
sw.Stop();
|
||||
return $"Effettuata pulizia memoria Redis + MongoDB | idx min: {idxMin} | Redis del: {numDelRedis} | Mongo del: {numDelMongo} | {(double)sw.ElapsedMilliseconds / 1000:N2} sec";
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,10 @@
|
||||
using AppData;
|
||||
using Newtonsoft.Json;
|
||||
using NKC_SDK;
|
||||
using NLog;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Web.Http;
|
||||
|
||||
@@ -10,11 +12,7 @@ namespace NKC_WF.Controllers
|
||||
{
|
||||
public class BatchProcController : ApiController
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// oggetto static/singleton per fare chiamate sul datalayer
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce SE C'E' la richiesta di elaborazione BATCH corrente
|
||||
@@ -43,8 +41,10 @@ namespace NKC_WF.Controllers
|
||||
// aggiungo LA SUA ENV NUM!!!!
|
||||
answ.EnvNum = envNum;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"EXCEPTION api/BatchProc | get{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
// altrimenti NULL!
|
||||
else
|
||||
@@ -74,8 +74,10 @@ namespace NKC_WF.Controllers
|
||||
{
|
||||
answ = JsonConvert.DeserializeObject<batchRequest>(redVal);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"EXCEPTION api/BatchProc | get(id) {id}{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
@@ -90,7 +92,13 @@ namespace NKC_WF.Controllers
|
||||
[HttpPost]
|
||||
public string Post()
|
||||
{
|
||||
string logIdKey = "BatchProcController.Post()";
|
||||
string answ = "";
|
||||
bool resetOk = false;
|
||||
string envNum = "";
|
||||
bool isSplitReq = false;
|
||||
bool isValidation = false;
|
||||
bool isTesting = false;
|
||||
// questa classe è derivata da Controller.Response... x cui recupero lo stream in altro modo...
|
||||
string content = "";
|
||||
System.Web.HttpContext.Current.Request.InputStream.Position = 0;
|
||||
@@ -100,19 +108,32 @@ namespace NKC_WF.Controllers
|
||||
}
|
||||
//Rest
|
||||
System.Web.HttpContext.Current.Request.InputStream.Position = 0;
|
||||
baseNestAnsw batchProcAnsw = new baseNestAnsw();
|
||||
// procedo a deserializzare in blocco l'oggetto...
|
||||
try
|
||||
{
|
||||
// DEBUG: salvo su redis x fare DEBUG
|
||||
string redKey = $"{ComLib.redNestAnsw}:LAST_CALL";
|
||||
memLayer.ML.setRSV(redKey, content);
|
||||
Log.Instance.Info($"{logIdKey} | Post() data received | length: {content.Length}");
|
||||
|
||||
// deserializzo
|
||||
baseNestAnsw batchProcAnsw = JsonConvert.DeserializeObject<baseNestAnsw>(content);
|
||||
batchProcAnsw = JsonConvert.DeserializeObject<baseNestAnsw>(content);
|
||||
// per prima cosa salvo richiesta e la resetto se corrisponde...
|
||||
envNum = ComLib.currBatchReq;
|
||||
if (envNum == batchProcAnsw.EnvNum)
|
||||
{
|
||||
resetOk = ComLib.resetBatchReq();
|
||||
Log.Instance.Info($"{logIdKey} | resetBatchReq() DONE | envNum: {envNum}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Instance.Info($"{logIdKey} | resetBatchReq() NOT executed | envNum: {envNum} | batchProcAnsw.EnvNum: {batchProcAnsw.EnvNum}");
|
||||
}
|
||||
// procedura idempotente: elimino eventuali dati della "busta" precedente...
|
||||
DLMan.taEL.deteteByParent("", batchProcAnsw.EnvNum);
|
||||
// se ho errori inizio a salvarli...
|
||||
if (batchProcAnsw.ErrorList.Count > 0)
|
||||
if (batchProcAnsw.ErrorList != null && batchProcAnsw.ErrorList.Count > 0)
|
||||
{
|
||||
// ora insert
|
||||
foreach (var item in batchProcAnsw.ErrorList)
|
||||
@@ -124,162 +145,414 @@ namespace NKC_WF.Controllers
|
||||
// se non nullo...
|
||||
if (batchProcAnsw != null)
|
||||
{
|
||||
Log.Instance.Info($"{logIdKey} | OrderType: {batchProcAnsw.OrderType} | ProcType: {batchProcAnsw.ProcType}");
|
||||
/*************************************************
|
||||
* IN BASE al tipo di risposta saprò se
|
||||
* - è BatchReq / OfflineOrder
|
||||
* - è stima iniziale o NEST dettagliato
|
||||
* - si tratta di una stima di validazione ITEM ...
|
||||
*
|
||||
*
|
||||
* 2021.07.21: aggiunto controllo coerenza risposta: accetto solo se sono in stato di richiesta (se ho annullato in precedenza scarto la risposta)
|
||||
*
|
||||
*************************************************/
|
||||
if (batchProcAnsw.OrderType == oType.BatchRequest)
|
||||
{
|
||||
Log.Instance.Info($"{logIdKey} | Processing oType.BatchRequest");
|
||||
// stima "classica"
|
||||
if (batchProcAnsw.ProcType == 1)
|
||||
{
|
||||
int bStatus = 0;
|
||||
Log.Instance.Info($"{logIdKey} | Processing ProcType == 1");
|
||||
BatchStatus bStatus = BatchStatus.Imported;
|
||||
// deserializzo come BatchreqIniziale (stima)
|
||||
nestReplyBatchInitial rispStima = JsonConvert.DeserializeObject<nestReplyBatchInitial>(content);
|
||||
|
||||
// 2020.01.16 salvo su mongoDb la risposta...
|
||||
ComLib.man.saveEstAnsw(rispStima);
|
||||
|
||||
// recupero info sul batch / KIT specifico x capire se sia di tipo "validation"
|
||||
bool isValidation = false;
|
||||
var tabOrd = DLMan.taOL.getByBatch(rispStima.BatchID);
|
||||
if (tabOrd.Count > 0)
|
||||
// idempotenza: elimino errori costruiti con altri step...
|
||||
DLMan.taEL.deteteByParent("", $"B.{rispStima.BatchID}");
|
||||
// verifica preliminare che il batch possa accettare la risposta
|
||||
var currBatchStatus = ComLib.BStatus(rispStima.BatchID);
|
||||
if (currBatchStatus != BatchStatus.EstimationRequested)
|
||||
{
|
||||
isValidation = tabOrd[0].OrdType == "V";
|
||||
string message = $"E.BR.1 Impossibile processing della risposta da EgtNest | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispStima.BatchID} | stato da DB: {currBatchStatus} | stato richiesto: {BatchStatus.EstimationRequested}";
|
||||
Log.Instance.Error($"{logIdKey} | {message}");
|
||||
// registro KO
|
||||
answ = "KO";
|
||||
}
|
||||
// calcolo status del batch...
|
||||
switch (rispStima.ProcessStatus)
|
||||
else
|
||||
{
|
||||
case procStatus.waiting:
|
||||
case procStatus.running:
|
||||
bStatus = 1;
|
||||
break;
|
||||
case procStatus.completed:
|
||||
if (isValidation)
|
||||
{
|
||||
// verifico se il tempo di procesisng stimato sia > minimo...
|
||||
if (rispStima.EstimatedWorktime > memLayer.ML.CRI("minValidEstSec"))
|
||||
// 2020.01.16 salvo su mongoDb la risposta...
|
||||
ComLib.man.saveEstAnsw(rispStima);
|
||||
|
||||
// recupero info sul batch / KIT specifico x capire se sia di tipo "validation"
|
||||
var tabOrd = DLMan.taOL.getByBatch(rispStima.BatchID);
|
||||
if (tabOrd.Count > 0)
|
||||
{
|
||||
isValidation = tabOrd[0].OrdType == "V";
|
||||
isTesting = tabOrd[0].OrdType == "T";
|
||||
}
|
||||
// calcolo status del batch...
|
||||
switch (rispStima.ProcessStatus)
|
||||
{
|
||||
case procStatus.waiting:
|
||||
case procStatus.running:
|
||||
bStatus = BatchStatus.EstimationRequested;
|
||||
break;
|
||||
|
||||
case procStatus.completed:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 10;
|
||||
bool pdfOk = true;
|
||||
// se richiesto CheckPDF
|
||||
if (memLayer.ML.CRB("checkPdfPathTV"))
|
||||
{
|
||||
// verifico PDF, se NON OK --> errore
|
||||
string pdfPath = "";
|
||||
foreach (var item in rispStima.PartList)
|
||||
{
|
||||
pdfOk = pdfOk && ComLib.checkPdfExistAccessible(item, out pdfPath);
|
||||
if (!pdfOk)
|
||||
{
|
||||
// codice è B.xxx dove xxx = BatchID
|
||||
DLMan.taEL.insertQuery(DateTime.Now, "Check PDF path", $"B.{rispStima.BatchID}", $"{rispStima.BatchID}.{item.PartExtCode}", $"Error: PDF file not found: {pdfPath}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// se non OK --> registro errore...
|
||||
if (!pdfOk)
|
||||
{
|
||||
bStatus = BatchStatus.PartKo;
|
||||
}
|
||||
// verifico se il tempo di procesisng stimato sia > minimo...
|
||||
else if (rispStima.EstimatedWorktime > memLayer.ML.CRI("minValidEstSec"))
|
||||
{
|
||||
bStatus = BatchStatus.PartOk;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = BatchStatus.PartKo;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 9;
|
||||
bStatus = BatchStatus.EstimationDone;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.accepted:
|
||||
bStatus = BatchStatus.Approved;
|
||||
break;
|
||||
|
||||
case procStatus.refused:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = BatchStatus.PartKo;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = BatchStatus.Discarded;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.error:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = BatchStatus.PartKo;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = BatchStatus.ErrorsOnEstim;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.aborted:
|
||||
default:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = BatchStatus.PartKo;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = BatchStatus.Imported;
|
||||
}
|
||||
break;
|
||||
}
|
||||
Log.Instance.Info($"{logIdKey} | Batch Status calculated | BatchID: {rispStima.BatchID} | bStatus {bStatus}");
|
||||
// SALVO info riguardo al batch running
|
||||
DLMan.taBL.updateStatus(rispStima.BatchID, (int)bStatus, rispStima.EnvNum, (decimal)rispStima.EstimatedWorktime / 60);
|
||||
// salvo update elenco ITEMS
|
||||
ComLib.updatePartsFromNesting(rispStima.PartList);
|
||||
// aggiorno cadPath x items che non abbiano valorizzato...
|
||||
string dxfFolder = memLayer.ML.CRS("drawingFolder");
|
||||
if (isTesting)
|
||||
{
|
||||
dxfFolder = memLayer.ML.CRS("fileTestFolder");
|
||||
}
|
||||
string cadBasePath = $"{memLayer.ML.CRS("nestBasePath")}{dxfFolder}/";
|
||||
DLMan.taIL.updateCadPath(cadBasePath, rispStima.BatchID, false);
|
||||
// verifico IN CASO di validazione andata a buon fine --> valorizzo tabella!
|
||||
if (bStatus > BatchStatus.Errors)
|
||||
{
|
||||
if (isValidation)
|
||||
{
|
||||
// recupero ordine da batch
|
||||
if (tabOrd.Count > 0)
|
||||
{
|
||||
DLMan.taIV.upsertQuery(tabOrd[0].OrderExtCode, rispStima.BatchID, (int)bStatus, rispStima.EstimatedWorktime);
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (isTesting)
|
||||
{
|
||||
bStatus = 2;
|
||||
// recupero ordine da batch
|
||||
if (tabOrd.Count > 0)
|
||||
{
|
||||
DLMan.taFV.upsertQuery(tabOrd[0].OrderExtCode, rispStima.BatchID, (int)bStatus, rispStima.EstimatedWorktime);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case procStatus.accepted:
|
||||
bStatus = 5;
|
||||
break;
|
||||
case procStatus.refused:
|
||||
if (isValidation)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 6;
|
||||
}
|
||||
break;
|
||||
case procStatus.error:
|
||||
if (isValidation)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 7;
|
||||
}
|
||||
break;
|
||||
case procStatus.aborted:
|
||||
default:
|
||||
if (isValidation)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// registro OK
|
||||
answ = "OK";
|
||||
}
|
||||
// SALVO info riguardo al batch running
|
||||
DLMan.taBL.updateStatus(rispStima.BatchID, bStatus, rispStima.EnvNum, (decimal)rispStima.EstimatedWorktime / 60);
|
||||
// salvo udpate elenco ITEMS
|
||||
ComLib.updatePartsFromNesting(rispStima.PartList);
|
||||
// aggiorno cadPath x items che non abbiano valorizzato...
|
||||
string cadBasePath = $"{memLayer.ML.CRS("nestBasePath")}{memLayer.ML.CRS("drawingFolder")}/";
|
||||
DLMan.taIL.updateCadPath(cadBasePath, rispStima.BatchID, false);
|
||||
// verifico IN CASO di validazione andata a buon fine --> valorizzo tabella!
|
||||
if (bStatus > 7)
|
||||
}
|
||||
// stima "extended" x splitting
|
||||
else if (batchProcAnsw.ProcType == 3)
|
||||
{
|
||||
Log.Instance.Info($"{logIdKey} | Processing ProcType == 3");
|
||||
BatchStatus bStatus = BatchStatus.Imported;
|
||||
// deserializzo come BatchreqIniziale (stima)
|
||||
nestReplyBatchExtEst rispStima = JsonConvert.DeserializeObject<nestReplyBatchExtEst>(content);
|
||||
// verifica preliminare che il batch possa accettare la risposta
|
||||
var currBatchStatus = ComLib.BStatus(rispStima.BatchID);
|
||||
if (currBatchStatus != BatchStatus.EstimationRequested)
|
||||
{
|
||||
// recupero ordine da batch
|
||||
string message = $"E.BR.2 Impossibile processing della risposta da EgtNest | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispStima.BatchID} | stato da DB: {currBatchStatus} | stato richiesto: {BatchStatus.EstimationRequested}";
|
||||
Log.Instance.Error($"{logIdKey} | {message}");
|
||||
// registro KO
|
||||
answ = "KO";
|
||||
}
|
||||
else
|
||||
{
|
||||
// salvo su mongoDb la risposta...
|
||||
ComLib.man.saveExtEstAnsw(rispStima);
|
||||
|
||||
// recupero info sul batch / KIT specifico x capire se sia di tipo "validation"
|
||||
var tabOrd = DLMan.taOL.getByBatch(rispStima.BatchID);
|
||||
if (tabOrd.Count > 0)
|
||||
{
|
||||
DLMan.taIV.upsertQuery(tabOrd[0].OrderExtCode, rispStima.BatchID, bStatus, rispStima.EstimatedWorktime);
|
||||
isValidation = tabOrd[0].OrdType == "V";
|
||||
isTesting = tabOrd[0].OrdType == "T";
|
||||
}
|
||||
// calcolo status del batch...
|
||||
switch (rispStima.ProcessStatus)
|
||||
{
|
||||
case procStatus.waiting:
|
||||
case procStatus.running:
|
||||
bStatus = BatchStatus.EstimationRequested;
|
||||
break;
|
||||
|
||||
case procStatus.completed:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bool pdfOk = true;
|
||||
// se richiesto CheckPDF
|
||||
if (memLayer.ML.CRB("checkPdfPathTV"))
|
||||
{
|
||||
// verifico PDF, se NON OK --> errore
|
||||
string pdfPath = "";
|
||||
foreach (var item in rispStima.PartList)
|
||||
{
|
||||
pdfOk = pdfOk && ComLib.checkPdfExistAccessible(item, out pdfPath);
|
||||
if (!pdfOk)
|
||||
{
|
||||
// codice è B.xxx dove xxx = BatchID
|
||||
DLMan.taEL.insertQuery(DateTime.Now, "Check PDF path", $"B.{rispStima.BatchID}", $"{rispStima.BatchID}.{item.PartExtCode}", $"Error: PDF file not found: {pdfPath}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// se non OK --> registro errore...
|
||||
if (!pdfOk)
|
||||
{
|
||||
bStatus = BatchStatus.PartKo;
|
||||
}
|
||||
// verifico se il tempo di procesisng stimato sia > minimo...
|
||||
else if (rispStima.EstimatedWorktime > memLayer.ML.CRI("minValidEstSec"))
|
||||
{
|
||||
bStatus = BatchStatus.PartOk;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = BatchStatus.PartKo;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = BatchStatus.EstimationDone;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.accepted:
|
||||
bStatus = BatchStatus.Approved;
|
||||
break;
|
||||
|
||||
case procStatus.refused:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = BatchStatus.PartKo;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = BatchStatus.Discarded;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.error:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = BatchStatus.PartKo;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = BatchStatus.ErrorsOnEstim;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.aborted:
|
||||
default:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = BatchStatus.PartKo;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = BatchStatus.Imported;
|
||||
}
|
||||
break;
|
||||
}
|
||||
Log.Instance.Info($"{logIdKey} | Batch Status calculated | BatchID: {rispStima.BatchID} | bStatus {bStatus}");
|
||||
// SALVO info riguardo al batch running
|
||||
DLMan.taBL.updateStatus(rispStima.BatchID, (int)bStatus, rispStima.EnvNum, (decimal)rispStima.EstimatedWorktime / 60);
|
||||
// salvo update elenco ITEMS
|
||||
if (rispStima.PartList != null && rispStima.PartList.Count > 0)
|
||||
{
|
||||
ComLib.updatePartsFromNesting(rispStima.PartList);
|
||||
}
|
||||
|
||||
// aggiorno la risposta dei tempi di esecuzione (+ NUM cart/part)
|
||||
// degli ordini x permettere aggiustamenti
|
||||
if (rispStima.EstOrderList != null && rispStima.EstOrderList.Count > 0)
|
||||
{
|
||||
ComLib.updateExtEstimFromNesting(rispStima.BatchID, rispStima.EstOrderList);
|
||||
}
|
||||
|
||||
// aggiorno cadPath x items che non abbiano valorizzato...
|
||||
string dxfFolder = memLayer.ML.CRS("drawingFolder");
|
||||
if (isTesting)
|
||||
{
|
||||
dxfFolder = memLayer.ML.CRS("fileTestFolder");
|
||||
}
|
||||
string cadBasePath = $"{memLayer.ML.CRS("nestBasePath")}{dxfFolder}/";
|
||||
DLMan.taIL.updateCadPath(cadBasePath, rispStima.BatchID, false);
|
||||
// registro OK
|
||||
answ = "OK";
|
||||
}
|
||||
// registro OK
|
||||
answ = "OK";
|
||||
}
|
||||
else
|
||||
// nesting
|
||||
else if (batchProcAnsw.ProcType == 2)
|
||||
{
|
||||
Log.Instance.Info($"{logIdKey} | Processing ProcType == 2 | NESTING");
|
||||
// deserializzo come BatchreqFinale
|
||||
nestReplyBatchFinal rispNest = JsonConvert.DeserializeObject<nestReplyBatchFinal>(content);
|
||||
|
||||
// 2020.01.16 salvo su mongoDb la risposta...
|
||||
ComLib.man.saveNestAnsw(rispNest);
|
||||
// verifica preliminare che il batch possa accettare la risposta
|
||||
var currBatchStatus = ComLib.BStatus(rispNest.BatchID);
|
||||
//if (!(currBatchStatus == BatchStatus.NestRequested || currBatchStatus == BatchStatus.NestDone))
|
||||
if (currBatchStatus != BatchStatus.NestRequested)
|
||||
{
|
||||
string message = $"E.BR.3 Impossibile processing della risposta da EgtNest | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispNest.BatchID} | stato da DB: {currBatchStatus} | stato richiesto: {BatchStatus.NestRequested}";
|
||||
Log.Instance.Error($"{logIdKey} | {message}");
|
||||
// registro KO
|
||||
answ = "KO";
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Instance.Info($"{logIdKey} | Response status OK | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispNest.BatchID} | stato da DB: {currBatchStatus} | stato richiesto: {BatchStatus.NestRequested}");
|
||||
// 2020.01.16 salvo su mongoDb la risposta...
|
||||
ComLib.man.saveNestAnsw(rispNest);
|
||||
|
||||
// calcolo status del batch...
|
||||
int bStatus = 2;
|
||||
switch (rispNest.ProcessStatus)
|
||||
{
|
||||
case procStatus.waiting:
|
||||
case procStatus.running:
|
||||
bStatus = 3;
|
||||
break;
|
||||
case procStatus.completed:
|
||||
bStatus = 4;
|
||||
break;
|
||||
case procStatus.accepted:
|
||||
bStatus = 5;
|
||||
break;
|
||||
case procStatus.refused:
|
||||
bStatus = 6;
|
||||
break;
|
||||
case procStatus.error:
|
||||
bStatus = 7;
|
||||
break;
|
||||
case procStatus.aborted:
|
||||
default:
|
||||
bStatus = 2;
|
||||
break;
|
||||
// calcolo status del batch...
|
||||
BatchStatus bStatus = BatchStatus.EstimationDone;
|
||||
switch (rispNest.ProcessStatus)
|
||||
{
|
||||
case procStatus.waiting:
|
||||
case procStatus.running:
|
||||
bStatus = BatchStatus.NestRequested;
|
||||
break;
|
||||
|
||||
case procStatus.completed:
|
||||
bStatus = BatchStatus.NestDone;
|
||||
break;
|
||||
|
||||
case procStatus.accepted:
|
||||
bStatus = BatchStatus.Approved;
|
||||
break;
|
||||
|
||||
case procStatus.refused:
|
||||
bStatus = BatchStatus.Discarded;
|
||||
break;
|
||||
|
||||
case procStatus.error:
|
||||
bStatus = BatchStatus.ErrorsOnNesting;
|
||||
break;
|
||||
|
||||
case procStatus.aborted:
|
||||
default:
|
||||
bStatus = BatchStatus.EstimationDone;
|
||||
break;
|
||||
}
|
||||
Log.Instance.Info($"{logIdKey} | Batch Status calculated | BatchID: {rispNest.BatchID} | bStatus {bStatus} | stato da DB: {currBatchStatus} | rispNest.ProcessStatus: {rispNest.ProcessStatus}");
|
||||
// aggiorno il resto SOLO SE status == completo...
|
||||
if (rispNest.ProcessStatus == procStatus.completed || rispNest.ProcessStatus == procStatus.error)
|
||||
{
|
||||
// resetto le precedenti elaborazioni: elimino dati child MA NON il batch...
|
||||
DLMan.taBL.resetTree(rispNest.BatchID);
|
||||
// SALVO info riguardo al batch completato
|
||||
DLMan.taBL.updateStatus(rispNest.BatchID, (int)bStatus, rispNest.EnvNum, (decimal)rispNest.EstimatedWorktime / 60);
|
||||
|
||||
Log.Instance.Info($"{logIdKey} | BL.updateStatus | BatchID: {rispNest.BatchID} | bStatus: {bStatus} | EnvNum: {rispNest.EnvNum} | EstimatedWorktime: {rispNest.EstimatedWorktime}");
|
||||
|
||||
// salvo info riguardo ai vari Bunk / Sheets / Items...
|
||||
if (rispNest.BunkList != null && rispNest.BunkList.Count > 0)
|
||||
{
|
||||
ComLib.updateBunksFromNesting(rispNest.BatchID, rispNest.BunkList);
|
||||
}
|
||||
// salvo info x CART & BINS previsti
|
||||
if (rispNest.BinList != null && rispNest.BinList.Count > 0)
|
||||
{
|
||||
ComLib.updateBinsFromNesting(rispNest.BatchID, rispNest.BinList);
|
||||
}
|
||||
if (rispNest.CartList != null && rispNest.CartList.Count > 0)
|
||||
{
|
||||
ComLib.updateCartsFromNesting(rispNest.BatchID, rispNest.CartList);
|
||||
}
|
||||
//
|
||||
isSplitReq = ComLib.checkSendBatchSplit(rispNest.BatchID);
|
||||
|
||||
// effettuo calcolo statistiche
|
||||
Stopwatch stopWatchLap = new Stopwatch();
|
||||
stopWatchLap.Start();
|
||||
ComLib.man.updateSheetStatsByBatch(rispNest.BatchID);
|
||||
stopWatchLap.Stop();
|
||||
Log.Instance.Info($"{logIdKey} | Batch Stat Calculation after NEST answ | BatchID: {rispNest.BatchID} | elapsed {stopWatchLap.Elapsed.TotalMilliseconds} ms");
|
||||
}
|
||||
|
||||
// registro OK
|
||||
answ = "OK";
|
||||
}
|
||||
// aggiorno il resto SOLO SE status == completo...
|
||||
if (rispNest.ProcessStatus == procStatus.completed || rispNest.ProcessStatus == procStatus.error)
|
||||
{
|
||||
// resetto le precedenti elaborazioni: elimino dati child MA NON il batch...
|
||||
DLMan.taBL.resetTree(rispNest.BatchID);
|
||||
// SALVO info riguardo al batch completato
|
||||
DLMan.taBL.updateStatus(rispNest.BatchID, bStatus, rispNest.EnvNum, (decimal)rispNest.EstimatedWorktime / 60);
|
||||
// salvo info riguardo ai vari Bunk / Sheets / Items...
|
||||
ComLib.updateBunksFromNesting(rispNest.BatchID, rispNest.BunkList);
|
||||
// salvo info x CART & BINS previsti
|
||||
ComLib.updateBinsFromNesting(rispNest.BatchID, rispNest.BinList);
|
||||
ComLib.updateCartsFromNesting(rispNest.BatchID, rispNest.CartList);
|
||||
}
|
||||
// registro OK
|
||||
answ = "OK";
|
||||
}
|
||||
}
|
||||
else if (batchProcAnsw.OrderType == oType.OfflineOrder)
|
||||
{
|
||||
Log.Instance.Info($"{logIdKey} | Processing oType.OfflineOrder");
|
||||
// deserializzo come OfflineOrder
|
||||
nestReplyOffOrd rispOffOrd = JsonConvert.DeserializeObject<nestReplyOffOrd>(content);
|
||||
|
||||
@@ -314,7 +587,9 @@ namespace NKC_WF.Controllers
|
||||
string servBasePath = memLayer.ML.CRS("servBasePath").ToLower();
|
||||
string fixPathDraw = rispOffOrd.DrawingPath.ToLower().Replace(nestBasePath, servBasePath).Replace('/', '\\');
|
||||
string fixPathCnc = rispOffOrd.CncPath.ToLower().Replace(nestBasePath, servBasePath).Replace('/', '\\');
|
||||
// segno offline order come processato registrando il disegno e segno ogni PART come lavorata da OffOrd2Item (status 992)
|
||||
// segno offline order come processato registrando il
|
||||
// disegno e segno ogni PART come lavorata da OffOrd2Item
|
||||
// (status 992)
|
||||
DLMan.taOffOL.updateDrawing(Math.Abs(rispOffOrd.BatchID), fixPathDraw, fixPathCnc);
|
||||
}
|
||||
}
|
||||
@@ -327,26 +602,62 @@ namespace NKC_WF.Controllers
|
||||
else
|
||||
{
|
||||
answ = "WRONG DATA (expected baseNestAnsw object)";
|
||||
//Log.inf
|
||||
Log.Instance.Error($"{logIdKey} | {answ}");
|
||||
}
|
||||
}
|
||||
catch(Exception exc)
|
||||
catch (Exception exc)
|
||||
{
|
||||
answ = "NO";
|
||||
Log.Instance.Error($"{logIdKey} | EXCEPTION api/BatchProc{Environment.NewLine}{exc}");
|
||||
}
|
||||
// se tutto OK --> tolgo ultimo batch
|
||||
if (answ == "OK")
|
||||
{
|
||||
|
||||
// invio notifica che c'è una busta da processare
|
||||
bool resetOk = ComLib.resetBatchReq();
|
||||
// se tutto ok e ci sono da validare parts --> procedo!
|
||||
if (resetOk)
|
||||
Log.Instance.Info($"{logIdKey} | Close A.01 | batchProcAnsw.EnvNum {batchProcAnsw.EnvNum}");
|
||||
// se è una split req --> NON resetto...
|
||||
if (!isSplitReq)
|
||||
{
|
||||
bool nextValidSent = ComLib.sendFirstValidationBatch();
|
||||
Log.Instance.Info($"{logIdKey} | Close B.01");
|
||||
// reset
|
||||
resetOk = ComLib.resetBatchReq();
|
||||
Log.Instance.Info($"{logIdKey} | Effettuato reset resetBatchReq");
|
||||
// se tutto ok e ci sono da validare parts --> procedo!
|
||||
Log.Instance.Info($"{logIdKey} | Close B.02");
|
||||
if (resetOk)
|
||||
{
|
||||
Log.Instance.Info($"{logIdKey} | Close B.03");
|
||||
|
||||
bool PartValForCreatePng = memLayer.ML.cdvb("PartValidationForceCreatePng");
|
||||
bool DxfValForceCreatePng = memLayer.ML.cdvb("DxfValidationForceCreatePng");
|
||||
bool forceCreatePng = (isValidation || isTesting) && (PartValForCreatePng || DxfValForceCreatePng);
|
||||
bool nextValidSent = ComLib.sendFirstValidationBatch(forceCreatePng);
|
||||
Log.Instance.Info($"{logIdKey} | Close B.04");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
#if false
|
||||
//// rimetto in coda la richiesta SUCCESSIVA
|
||||
//ComLib.currBatchReq = envNum;
|
||||
#endif
|
||||
Log.Instance.Info($"{logIdKey} | Close C.01 - requeue DENIED for {envNum}");
|
||||
}
|
||||
}
|
||||
Log.Instance.Info($"{logIdKey} | Close D.01");
|
||||
// restituisco risposta
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// oggetto static/singleton per fare chiamate sul datalayer
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
|
||||
#endregion Protected Fields
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
using AppData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Http;
|
||||
|
||||
namespace NKC_WF.Controllers
|
||||
{
|
||||
public class BatchStatsController : ApiController
|
||||
{
|
||||
#region Protected Fields
|
||||
|
||||
protected string dateFormat = "yyyyMMdd";
|
||||
|
||||
/// <summary>
|
||||
/// oggetto static/singleton per fare chiamate sul datalayer
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// Metodo effettivo recupero dati
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
private List<chartJsTVal> getDataFilt(int id)
|
||||
{
|
||||
List<chartJsTVal> answ = new List<chartJsTVal>();
|
||||
var tabDati = DLMan.taBStats.getLast(id);
|
||||
// ciclo
|
||||
foreach (var item in tabDati.OrderBy(x => x.Takt))
|
||||
{
|
||||
// prendo valore default = NumParts
|
||||
answ.Add(new chartJsTVal() { x = item.Takt, y = item.NumParts });
|
||||
}
|
||||
// restituisco
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo effettivo recupero dati
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="maxHour"></param>
|
||||
/// <returns></returns>
|
||||
private List<chartJsTVal> getDataFilt(int id, string PlotType)
|
||||
{
|
||||
List<chartJsTVal> answ = new List<chartJsTVal>();
|
||||
var tabDati = DLMan.taBStats.getLast(id);
|
||||
DateTime startTime = DateTime.Now.AddYears(1);
|
||||
// ciclo
|
||||
foreach (var item in tabDati.OrderBy(x => x.Takt))
|
||||
{
|
||||
//// converto in data il valore takt... primi 8 char
|
||||
//DateTime dataRif = DateTime.Today;
|
||||
//DateTime.TryParseExact(item.Takt.Substring(0, 8), dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dataRif);
|
||||
decimal value = 0;
|
||||
switch (PlotType)
|
||||
{
|
||||
case "Yeld":
|
||||
value = item.AvgYeld * 100;
|
||||
break;
|
||||
|
||||
case "NumMat":
|
||||
value = item.NumMat;
|
||||
break;
|
||||
|
||||
case "NumSheets":
|
||||
value = item.NumSheets;
|
||||
break;
|
||||
|
||||
case "NumModel":
|
||||
value = item.NumModel;
|
||||
break;
|
||||
|
||||
case "NumKit":
|
||||
value = item.NumKit;
|
||||
break;
|
||||
|
||||
case "NumPainted":
|
||||
value = item.NumPainted;
|
||||
break;
|
||||
|
||||
case "NumParts":
|
||||
default:
|
||||
value = item.NumParts;
|
||||
break;
|
||||
}
|
||||
answ.Add(new chartJsTVal() { x = item.Takt, y = value });
|
||||
}
|
||||
// restituisco
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
|
||||
#region Public Methods
|
||||
|
||||
// GET api/TempRil
|
||||
public string Get()
|
||||
{
|
||||
return "NA";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero dati x ultimi batch stats
|
||||
/// GET api/BatchStats/5
|
||||
/// </summary>
|
||||
/// <param name="id">NUmLast</param>
|
||||
/// <returns></returns>
|
||||
public List<chartJsTVal> Get(int id)
|
||||
{
|
||||
DateTime dtRif = DateTime.Today;
|
||||
// restituisco oggetto!
|
||||
return getDataFilt(id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero dati x statistiche ultimi batch
|
||||
/// GET api/BatchStats/50
|
||||
/// </summary>
|
||||
/// <param name="id">Num record da recuperare DESC</param>
|
||||
/// <param name="PlotType">Tipo di grafico</param>
|
||||
/// <returns></returns>
|
||||
public List<chartJsTVal> Get(int id, string PlotType)
|
||||
{
|
||||
List<chartJsTVal> answ = new List<chartJsTVal>();
|
||||
answ = getDataFilt(id, PlotType);
|
||||
// restituisco oggetto!
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
using AppData;
|
||||
using Newtonsoft.Json;
|
||||
using NKC_SDK;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Web.Http;
|
||||
|
||||
@@ -8,14 +9,22 @@ namespace NKC_WF.Controllers
|
||||
{
|
||||
public class BunkController : ApiController
|
||||
{
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// COdice macchina (HARD CODED)
|
||||
/// </summary>
|
||||
protected string CodPost = "WRK001";
|
||||
|
||||
/// <summary>
|
||||
/// oggetto static/singleton per fare chiamate sul datalayer
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
/// <summary>
|
||||
/// COdice macchina (HARD CODED)
|
||||
/// </summary>
|
||||
protected string machine = "WRK001";
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce il FIRST BUNK da lavorare
|
||||
/// GET: api/Bunk
|
||||
@@ -27,10 +36,12 @@ namespace NKC_WF.Controllers
|
||||
ProdBunk answ = null;
|
||||
try
|
||||
{
|
||||
answ = ComLib.prodGetFirstBunk();
|
||||
answ = ComLib.prodGetFirstBunk(CodPost);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"EXCEPTION api/Bunk | get{Environment.NewLine}{exc}");
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
|
||||
@@ -42,30 +53,33 @@ namespace NKC_WF.Controllers
|
||||
/// <param name="showNext"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ProdBunk Get(int id, bool showNext)
|
||||
public ProdBunk Get(int id, bool showNext, string machine)
|
||||
{
|
||||
ProdBunk answ = null;
|
||||
CodPost = machine;
|
||||
try
|
||||
{
|
||||
if (showNext)
|
||||
{
|
||||
answ = ComLib.prodGetNextBunk(id);
|
||||
answ = ComLib.prodGetNextBunk(id, CodPost);
|
||||
}
|
||||
else
|
||||
{
|
||||
answ = ComLib.prodGetBunk(id);
|
||||
answ = ComLib.prodGetBunk(id, CodPost);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"EXCEPTION api/Bunk | get(int {id}, bool {showNext}, string {machine}) {Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/************************************
|
||||
* METODI PUT
|
||||
*
|
||||
*
|
||||
* per abilitare è necessario agire sulla conf di IIS:
|
||||
*
|
||||
*
|
||||
* - modificare il file applicationHost.config che si trova in C:\Windows\System32\inetsrv\config
|
||||
* - disinstallare webDav oppure commentare le righe
|
||||
* <!-- <add name="WebDAVModule" /> -->
|
||||
@@ -74,44 +88,9 @@ namespace NKC_WF.Controllers
|
||||
* - aggiungere PUT/DELETE a handler:
|
||||
* <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
|
||||
* <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
|
||||
*
|
||||
*
|
||||
**************************************/
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Effettua la chiamata di update
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="value"></param>
|
||||
// PUT: api/Bunk/5
|
||||
[HttpPut]
|
||||
public void Put(ProdBunk currBunk)
|
||||
{
|
||||
// NB. decodifico direttamente come oggetto, vedere qui:
|
||||
// https://weblog.west-wind.com/posts/2013/dec/13/accepting-raw-request-body-content-with-aspnet-web-api
|
||||
// https://weblog.west-wind.com/posts/2017/sep/14/accepting-raw-request-body-content-in-aspnet-core-api-controllers
|
||||
|
||||
// se non nullo...
|
||||
if (currBunk != null)
|
||||
{
|
||||
foreach (var item in currBunk.SheetList)
|
||||
{
|
||||
DLMan.taSHL.updateDate(item.SheetId, item.Printing.DtStart, item.Printing.DtEnd, item.Machining.DtStart, item.Machining.DtEnd, item.Unloading.DtStart, item.Unloading.DtEnd, (int)item.Status);
|
||||
// verifico SE SIA AVVENUTO CON SUCCESSO lo step di lavorazione...
|
||||
if (item.Machining.Success)
|
||||
{
|
||||
// SE machining completato --> status a LAVORATO!
|
||||
if (item.Machining.DtEnd != null)
|
||||
{
|
||||
DLMan.taIL.updateSheetStatus(item.SheetId, 1, "PROD");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// INVALIDO eventuale valore BUNK in REDIS...
|
||||
ComLib.resetRedisBunkData(machine);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Processa una chiamata POST per l'invio in blocco status BUNK
|
||||
/// POST: api/Bunk
|
||||
@@ -140,9 +119,6 @@ namespace NKC_WF.Controllers
|
||||
{
|
||||
foreach (var item in currBunk.SheetList)
|
||||
{
|
||||
// calcolo stsatus dalle date valide...
|
||||
|
||||
|
||||
DLMan.taSHL.updateDate(item.SheetId, item.Printing.DtStart, item.Printing.DtEnd, item.Machining.DtStart, item.Machining.DtEnd, item.Unloading.DtStart, item.Unloading.DtEnd, (int)item.Status);
|
||||
// SE machining completato --> status a LAVORATO!
|
||||
if (item.Machining.DtEnd != null)
|
||||
@@ -155,12 +131,44 @@ namespace NKC_WF.Controllers
|
||||
}
|
||||
answ = "OK";
|
||||
}
|
||||
catch
|
||||
catch(Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"EXCEPTION api/Bunk | Post(){Environment.NewLine}{exc}");
|
||||
answ = "NO";
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua la chiamata di update
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="value"></param>
|
||||
// PUT: api/Bunk/5
|
||||
[HttpPut]
|
||||
public void Put(ProdBunk currBunk)
|
||||
{
|
||||
// NB. decodifico direttamente come oggetto, vedere qui:
|
||||
// https://weblog.west-wind.com/posts/2013/dec/13/accepting-raw-request-body-content-with-aspnet-web-api
|
||||
// https://weblog.west-wind.com/posts/2017/sep/14/accepting-raw-request-body-content-in-aspnet-core-api-controllers
|
||||
|
||||
// se non nullo...
|
||||
if (currBunk != null)
|
||||
{
|
||||
foreach (var item in currBunk.SheetList)
|
||||
{
|
||||
DLMan.taSHL.updateDate(item.SheetId, item.Printing.DtStart, item.Printing.DtEnd, item.Machining.DtStart, item.Machining.DtEnd, item.Unloading.DtStart, item.Unloading.DtEnd, (int)item.Status);
|
||||
// SE machining completato --> status a LAVORATO!
|
||||
if (item.Machining.DtEnd != null)
|
||||
{
|
||||
DLMan.taIL.updateSheetStatus(item.SheetId, 1, "PROD");
|
||||
}
|
||||
}
|
||||
}
|
||||
// INVALIDO eventuale valore BUNK in REDIS...
|
||||
ComLib.resetRedisBunkData(CodPost);
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,164 @@
|
||||
using AppData;
|
||||
using NKC_SDK;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Http;
|
||||
|
||||
namespace NKC_WF.Controllers
|
||||
{
|
||||
public class DayStatsController : ApiController
|
||||
{
|
||||
#region Protected Fields
|
||||
|
||||
protected string dateFormat = "yyyy-MM-dd";
|
||||
|
||||
/// <summary>
|
||||
/// oggetto static/singleton per fare chiamate sul datalayer
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// Metodo effettivo recupero dati
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
private List<chartJsTSerie> getDataFilt(string id)
|
||||
{
|
||||
DateTime endDate = DateTime.Today.AddDays(1);
|
||||
DateTime startDate = endDate.AddDays(-10);
|
||||
List<chartJsTSerie> answ = new List<chartJsTSerie>();
|
||||
var tabDati = DLMan.taDayStats.getFilt(startDate, endDate, id);
|
||||
// ciclo
|
||||
decimal value = 0;
|
||||
foreach (var item in tabDati.OrderBy(x => x.DataOraRif))
|
||||
{
|
||||
decimal denom = item.MinDisp != 0 ? item.MinDisp : 1;
|
||||
value = item.MinRun / denom * 100;
|
||||
// prendo valore default = NumParts
|
||||
answ.Add(new chartJsTSerie() { x = item.DataOraRif, y = value });
|
||||
}
|
||||
// restituisco
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo effettivo recupero dati
|
||||
/// </summary>
|
||||
/// <param name="id">Macchina/PlaceCod</param>
|
||||
/// <param name="StartDate">Inizio Periodo</param>
|
||||
/// <param name="EndDate">Fine Periodo</param>
|
||||
/// <param name="PlotType">Tipo di grafico</param>
|
||||
/// <returns></returns>
|
||||
private List<chartJsTSerie> getDataFilt(string id, DateTime StartDate, DateTime EndDate, string PlotType)
|
||||
{
|
||||
// effettuo calcolo statistiche
|
||||
Stopwatch stopWatchLap = new Stopwatch();
|
||||
stopWatchLap.Start();
|
||||
List<chartJsTSerie> answ = new List<chartJsTSerie>();
|
||||
var tabDati = DLMan.taDayStats.getFilt(StartDate, EndDate, id);
|
||||
stopWatchLap.Stop();
|
||||
Log.Instance.Info($"DayStats DB retrieve | machine: {id} | start: {StartDate} | end: {EndDate} | elapsed: {stopWatchLap.Elapsed.TotalMilliseconds} ms");
|
||||
stopWatchLap.Restart();
|
||||
DateTime startTime = DateTime.Now.AddYears(1);
|
||||
// ciclo
|
||||
foreach (var item in tabDati.OrderBy(x => x.DataOraRif))
|
||||
{
|
||||
decimal value = 0;
|
||||
decimal denom = 1;
|
||||
switch (PlotType)
|
||||
{
|
||||
case "AvailTime":
|
||||
value = item.MinDisp;
|
||||
break;
|
||||
|
||||
case "NumPartsProd":
|
||||
value = item.ItmProd;
|
||||
break;
|
||||
|
||||
case "NumPartsScrap":
|
||||
value = item.ItmScrap;
|
||||
break;
|
||||
|
||||
case "RunTime":
|
||||
value = item.MinRun;
|
||||
break;
|
||||
|
||||
case "AvgPartsHour":
|
||||
denom = item.MinRun != 0 ? item.MinRun : 1;
|
||||
value = item.ItmProd / denom * 100;
|
||||
break;
|
||||
|
||||
default:
|
||||
case "OEE":
|
||||
denom = item.MinDisp != 0 ? item.MinDisp : 1;
|
||||
value = item.MinRun / denom * 100;
|
||||
break;
|
||||
}
|
||||
answ.Add(new chartJsTSerie() { x = item.DataOraRif, y = value, label = item.PlaceCod });
|
||||
}
|
||||
stopWatchLap.Stop();
|
||||
Log.Instance.Info($"DayStats data conversion | machine: {id} | start: {StartDate} | end: {EndDate} | elapsed: {stopWatchLap.Elapsed.TotalMilliseconds} ms");
|
||||
// restituisco
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
|
||||
#region Public Methods
|
||||
|
||||
// GET api/DayStats
|
||||
public string Get()
|
||||
{
|
||||
return "NA";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero dati x ultimi batch stats
|
||||
/// GET api/DayStats/5
|
||||
/// </summary>
|
||||
/// <param name="id">NUmLast</param>
|
||||
/// <returns></returns>
|
||||
public List<chartJsTSerie> Get(string id)
|
||||
{
|
||||
// bonifica ID: [ALL] --> *
|
||||
id = id == "[ALL]" ? "*" : id;
|
||||
// restituisco oggetto!
|
||||
return getDataFilt(id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero dati x statistiche ultimi batch
|
||||
/// GET api/DayStats/NE01
|
||||
/// </summary>
|
||||
/// <param name="id">Macchina/PlaceCod</param>
|
||||
/// <param name="StartDate">Inizio Periodo</param>
|
||||
/// <param name="EndDate">Fine Periodo</param>
|
||||
/// <param name="PlotType">Tipo di grafico</param>
|
||||
/// <returns></returns>
|
||||
public List<chartJsTSerie> Get(string id, string StartDate, string EndDate, string PlotType)
|
||||
{
|
||||
// bonifica ID: [ALL] --> *
|
||||
id = id == "[ALL]" ? "*" : id;
|
||||
DateTime dateEnd = DateTime.Today.AddDays(1);
|
||||
DateTime dateStart = dateEnd.AddDays(-10);
|
||||
DateTime.TryParseExact(StartDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateStart);
|
||||
DateTime.TryParseExact(EndDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateEnd);
|
||||
|
||||
List<chartJsTSerie> answ = new List<chartJsTSerie>();
|
||||
answ = getDataFilt(id, dateStart, dateEnd, PlotType);
|
||||
|
||||
// restituisco oggetto!
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
using AppData;
|
||||
using Newtonsoft.Json;
|
||||
using NKC_SDK;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Web.Http;
|
||||
|
||||
namespace NKC_WF.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Classe controller per gestione eventi stats
|
||||
/// Riceve una lista di 1..n eventi con
|
||||
/// * CodMacchina
|
||||
/// * DataOra
|
||||
/// * Codice (Evento/stato) - codice 00 = KeepAlive, imposto dataora/drift
|
||||
/// * Valore/Descrizione
|
||||
///
|
||||
/// e la salva su DB per successiva elaborazione
|
||||
/// </summary>
|
||||
public class MachineStatController : ApiController
|
||||
{
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// oggetto static/singleton per fare chiamate sul datalayer
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
|
||||
/// <summary>
|
||||
/// Codice macchina (HARD CODED)
|
||||
/// </summary>
|
||||
protected string machine = "WRK000";
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce un array di stati macchina correnti
|
||||
/// GET: api/MachineStat
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public MachineStatData Get()
|
||||
{
|
||||
MachineStatData answ = new MachineStatData();
|
||||
try
|
||||
{
|
||||
answ = ComLib.prodMachStateDataGet(machine);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"EXCEPTION api/MachineStat | get{Environment.NewLine}{exc}");
|
||||
}
|
||||
|
||||
// se vuoto metto 1 finto...
|
||||
if (answ == null)
|
||||
{
|
||||
answ = new MachineStatData() { Machine = machine };
|
||||
}
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fornisce il record dello stato macchina corrente
|
||||
/// GET: api/MachineStat/WRK001
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public MachineStatData Get(string id)
|
||||
{
|
||||
MachineStatData answ = new MachineStatData() { Machine = id };
|
||||
try
|
||||
{
|
||||
answ = ComLib.prodMachStateDataGet(id);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"EXCEPTION api/MachineStat | get({id}){Environment.NewLine}{exc}");
|
||||
}
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
/************************************
|
||||
* METODI PUT
|
||||
*
|
||||
* per abilitare è necessario agire sulla conf di IIS:
|
||||
*
|
||||
* - modificare il file applicationHost.config che si trova in C:\Windows\System32\inetsrv\config
|
||||
* - disinstallare webDav oppure commentare le righe
|
||||
* <!-- <add name="WebDAVModule" /> -->
|
||||
* <!-- <add name="WebDAVModule" image="%windir%\System32\inetsrv\webdav.dll" /> -->
|
||||
* <!-- <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> -->
|
||||
* - aggiungere PUT/DELETE a handler:
|
||||
* <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
|
||||
* <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
|
||||
*
|
||||
**************************************/
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Effettua la chiamata di update x un set di dati delle macchine
|
||||
/// </summary>
|
||||
/// <param name="updatedInfo">Oggetto con macchina + Elenco record da aggiornare</param>
|
||||
// PUT: api/Sheet
|
||||
[HttpPut]
|
||||
public void Put(MachineStatData updatedInfo)
|
||||
{
|
||||
// NB. decodifico direttamente come oggetto, vedere qui:
|
||||
// https://weblog.west-wind.com/posts/2013/dec/13/accepting-raw-request-body-content-with-aspnet-web-api
|
||||
// https://weblog.west-wind.com/posts/2017/sep/14/accepting-raw-request-body-content-in-aspnet-core-api-controllers
|
||||
|
||||
if (updatedInfo != null)
|
||||
{
|
||||
// mi limito a chiamnare procedura di update...
|
||||
ComLib.prodMachStateDataInsert(updatedInfo);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
using Newtonsoft.Json;
|
||||
using SteamWare;
|
||||
using SteamWare.Logger;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
@@ -10,6 +11,8 @@ namespace NKC_WF.Controllers
|
||||
{
|
||||
public class PrintQueueConfController : ApiController
|
||||
{
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce un array JSon x le conf delle code di stampa
|
||||
/// GET: api/PrintQueueConf
|
||||
@@ -32,7 +35,7 @@ namespace NKC_WF.Controllers
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error(exc, "Eccezione in decodifica file conf printQueue");
|
||||
Logging.Instance.Error(exc, "Eccezione in decodifica file conf printQueue");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -57,5 +60,6 @@ namespace NKC_WF.Controllers
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -117,6 +117,17 @@ namespace NKC_WF.Controllers
|
||||
tab = (DataTable)DLMan.taRepIRK.GetData(intIdx, qrCodeBaseUrl);
|
||||
answ.Add(memLayer.ML.cdv("ReportDS_DocIRKList"), tab);
|
||||
break;
|
||||
|
||||
case reportRichiesto.cartSpecParts:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
tab = (DataTable)DLMan.taRepSpecPart.GetData(intIdx, imagePath, qrCodeBaseUrl);
|
||||
answ.Add(memLayer.ML.cdv("ReportDS_DocCartSpecPart"), tab);
|
||||
break;
|
||||
case reportRichiesto.remnants:
|
||||
int.TryParse(keyParam, out intIdx);
|
||||
tab = (DataTable)DLMan.taRepIRK.GetData(intIdx, qrCodeBaseUrl);
|
||||
answ.Add(memLayer.ML.cdv("ReportDS_DocIRKList"), tab);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -169,6 +180,9 @@ namespace NKC_WF.Controllers
|
||||
case "docOffline":
|
||||
report = reportRichiesto.offline;
|
||||
break;
|
||||
case "docCartSpecialPart":
|
||||
report = reportRichiesto.cartSpecParts;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using static NKC_WF.WebUserControls.cmp_OOIL_drawings;
|
||||
using SteamWare;
|
||||
using SteamWare.Reports;
|
||||
using System.Web;
|
||||
using System.IO;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace NKC_WF.Controllers
|
||||
{
|
||||
public class ReportConfController : ApiController
|
||||
{
|
||||
/// <summary>
|
||||
/// Restituisce un array JSon x le conf dei report
|
||||
/// GET: api/PrintQueueConf
|
||||
/// </summary>
|
||||
/// <returns>lista oggetto Json in formato SteamwareSDK.queueConf</returns>
|
||||
public List<reportConf> Get()
|
||||
{
|
||||
List<reportConf> answ = reportConfJson;
|
||||
// se vuoto... creo!
|
||||
if (answ.Count == 0)
|
||||
{
|
||||
reportConf currConf = new reportConf()
|
||||
{
|
||||
name = "none",
|
||||
template = "none.rdlc"
|
||||
};
|
||||
answ.Add(currConf);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce un array JSon x le conf dei report/template di stampa leggendo dal file
|
||||
/// </summary>
|
||||
/// <returns>lista oggetto Json in formato SteamwareSDK.templateConf</returns>
|
||||
protected List<reportConf> reportConfJson
|
||||
{
|
||||
get
|
||||
{
|
||||
List<reportConf> answ = new List<reportConf>();
|
||||
string dirPath = HttpContext.Current.Server.MapPath("~/Reports/");
|
||||
string nomeFile = "reportConf.json";
|
||||
bool fileExist = fileMover.obj.fileExist(dirPath, nomeFile);
|
||||
if (fileExist)
|
||||
{
|
||||
string rawData = File.ReadAllText($"{dirPath}\\{nomeFile}");
|
||||
if (!string.IsNullOrEmpty(rawData))
|
||||
{
|
||||
try
|
||||
{
|
||||
answ = JsonConvert.DeserializeObject<List<reportConf>>(rawData);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SteamWare.Logger.Logging.Instance.Error(exc, "Eccezione in decodifica file conf reportConfJson");
|
||||
}
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using SteamWare;
|
||||
using NKC_SDK;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Web;
|
||||
@@ -43,7 +44,7 @@ namespace NKC_WF.Controllers
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Errore in get elenco reports{Environment.NewLine}{exc}");
|
||||
Log.Instance.Error($"Errore in get elenco reports{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
@@ -83,7 +84,7 @@ namespace NKC_WF.Controllers
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Errore in get singolo report{Environment.NewLine}{exc}");
|
||||
Log.Instance.Error($"Errore in get singolo report{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
using AppData;
|
||||
using Newtonsoft.Json;
|
||||
using NKC_SDK;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Web.Http;
|
||||
|
||||
@@ -8,15 +10,20 @@ namespace NKC_WF.Controllers
|
||||
{
|
||||
public class SheetController : ApiController
|
||||
{
|
||||
/// <summary>
|
||||
/// oggetto static/singleton per fare chiamate sul datalayer
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
#region Public Constructors
|
||||
|
||||
public SheetController()
|
||||
{
|
||||
dfWrkStart = memLayer.ML.CRB("dateFix_WrkStart");
|
||||
dfWrkEnd = memLayer.ML.CRB("dateFix_WrkEnd");
|
||||
dfUnlStart = memLayer.ML.CRB("dateFix_UnlStart");
|
||||
dfUnlEnd = memLayer.ML.CRB("dateFix_UnlEnd");
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// COdice macchina (HARD CODED)
|
||||
/// </summary>
|
||||
protected string machine = "WRK001";
|
||||
/// <summary>
|
||||
/// Restituisce un array di sheet da lavorare (quindi NON ancora scaricati, anche di + BUNK)
|
||||
/// GET: api/Sheet
|
||||
@@ -25,20 +32,23 @@ namespace NKC_WF.Controllers
|
||||
[HttpGet]
|
||||
public SheetWorkList Get()
|
||||
{
|
||||
// fisso su machcina 1
|
||||
string machineName = "WRK001";
|
||||
// fisso su macchina 0 (NON esistente)
|
||||
string machineName = "NE00";
|
||||
SheetWorkList answ = null;
|
||||
try
|
||||
{
|
||||
answ = ComLib.prodGetSheetWorkList(machineName);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"EXCEPTION api/Sheet | get{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ottengo elenco specifico dato cod MACCHINA
|
||||
/// GET: api/Sheet/WRK001
|
||||
/// Ottengo elenco specifico dato cod MACCHINA (es NE01)
|
||||
/// GET: api/Sheet/NE01
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
@@ -50,80 +60,12 @@ namespace NKC_WF.Controllers
|
||||
{
|
||||
answ = ComLib.prodGetSheetWorkList(id);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
|
||||
/************************************
|
||||
* METODI PUT
|
||||
*
|
||||
* per abilitare è necessario agire sulla conf di IIS:
|
||||
*
|
||||
* - modificare il file applicationHost.config che si trova in C:\Windows\System32\inetsrv\config
|
||||
* - disinstallare webDav oppure commentare le righe
|
||||
* <!-- <add name="WebDAVModule" /> -->
|
||||
* <!-- <add name="WebDAVModule" image="%windir%\System32\inetsrv\webdav.dll" /> -->
|
||||
* <!-- <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> -->
|
||||
* - aggiungere PUT/DELETE a handler:
|
||||
* <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
|
||||
* <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
|
||||
*
|
||||
**************************************/
|
||||
|
||||
/// <summary>
|
||||
/// Effettua la chiamata di update x SINGOLO foglio
|
||||
/// </summary>
|
||||
/// <param name="sheetUpdated">Oggetto con Elenco fogli da aggiornare</param>
|
||||
// PUT: api/Sheet/5
|
||||
[HttpPut]
|
||||
public void Put(SheetWorkList sheetUpdated)
|
||||
{
|
||||
// NB. decodifico direttamente come oggetto, vedere qui:
|
||||
// https://weblog.west-wind.com/posts/2013/dec/13/accepting-raw-request-body-content-with-aspnet-web-api
|
||||
// https://weblog.west-wind.com/posts/2017/sep/14/accepting-raw-request-body-content-in-aspnet-core-api-controllers
|
||||
int BunkId = 0;
|
||||
int BatchId = 0;
|
||||
if (sheetUpdated != null)
|
||||
catch (Exception exc)
|
||||
{
|
||||
// 2020.01.16 salvo su mongoDb la risposta...
|
||||
ComLib.man.saveProdAnsw(sheetUpdated);
|
||||
|
||||
if (sheetUpdated.SheetList != null)
|
||||
{
|
||||
foreach (var currSheet in sheetUpdated.SheetList)
|
||||
{
|
||||
// se non nullo...
|
||||
if (currSheet != null)
|
||||
{
|
||||
DLMan.taSHL.updateDate(currSheet.SheetId, currSheet.Printing.DtStart, currSheet.Printing.DtEnd, currSheet.Machining.DtStart, currSheet.Machining.DtEnd, currSheet.Unloading.DtStart, currSheet.Unloading.DtEnd, (int)currSheet.Status);
|
||||
// verifico SE SIA AVVENUTO CON SUCCESSO lo step di lavorazione...
|
||||
if (currSheet.Machining.Success)
|
||||
{
|
||||
// SE machining completato --> status a LAVORATO!
|
||||
if (currSheet.Machining.DtEnd != null)
|
||||
{
|
||||
// hard coded su multiax
|
||||
DLMan.taIL.updateSheetStatus(currSheet.SheetId, 1, machine);
|
||||
}
|
||||
}
|
||||
// segnalo avanzamento su redis x pagina unload
|
||||
ComLib.advaceSheetRevByBunk(currSheet.BunkId);
|
||||
// calcolo Batch
|
||||
BunkId = currSheet.BunkId;
|
||||
}
|
||||
}
|
||||
var tabBunks = DLMan.taSTL.getByKey(BunkId);
|
||||
if (tabBunks.Count > 0)
|
||||
{
|
||||
BatchId = tabBunks[0].BatchID;
|
||||
}
|
||||
}
|
||||
// ricalcolo stato BUNK
|
||||
ComLib.updateBatchPosition(BatchId);
|
||||
// INVALIDO eventuale valore BUNK in REDIS...
|
||||
ComLib.resetRedisBunkData(machine);
|
||||
Log.Instance.Error($"EXCEPTION api/Sheet | get({id}){Environment.NewLine}{exc}");
|
||||
}
|
||||
Log.Instance.Trace($"api/Sheet | get({id}) | answ: {answ}");
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -158,21 +100,25 @@ namespace NKC_WF.Controllers
|
||||
|
||||
if (sheetUpdated.SheetList != null)
|
||||
{
|
||||
// salvo macchina
|
||||
machine = sheetUpdated.Machine;
|
||||
foreach (var currSheet in sheetUpdated.SheetList)
|
||||
{
|
||||
// se non nullo...
|
||||
if (currSheet != null)
|
||||
{
|
||||
DLMan.taSHL.updateDate(currSheet.SheetId, currSheet.Printing.DtStart, currSheet.Printing.DtEnd, currSheet.Machining.DtStart, currSheet.Machining.DtEnd, currSheet.Unloading.DtStart, currSheet.Unloading.DtEnd, (int)currSheet.Status);
|
||||
// verifico il fixSheet
|
||||
ProdSheetExt fixSheet = checkFixSheet(currSheet);
|
||||
DLMan.taSHL.updateDate(fixSheet.SheetId, fixSheet.Printing.DtStart, fixSheet.Printing.DtEnd, fixSheet.Machining.DtStart, fixSheet.Machining.DtEnd, fixSheet.Unloading.DtStart, fixSheet.Unloading.DtEnd, (int)fixSheet.Status);
|
||||
// SE machining completato --> status a LAVORATO x item!
|
||||
if (currSheet.Machining.DtEnd != null)
|
||||
if (fixSheet.Machining.DtEnd != null)
|
||||
{
|
||||
// hard coded su multiax
|
||||
DLMan.taIL.updateSheetStatus(currSheet.SheetId, 1, "WRK001");
|
||||
DLMan.taIL.updateSheetStatus(fixSheet.SheetId, 1, sheetUpdated.Machine);
|
||||
}
|
||||
// segnalo avanzamento su redis x pagina unload
|
||||
ComLib.advaceSheetRevByBunk(currSheet.BunkId);
|
||||
BunkId = currSheet.BunkId;
|
||||
ComLib.advaceSheetRevByBunk(fixSheet.BunkId);
|
||||
BunkId = fixSheet.BunkId;
|
||||
answ = "OK";
|
||||
}
|
||||
}
|
||||
@@ -192,7 +138,207 @@ namespace NKC_WF.Controllers
|
||||
{
|
||||
answ = "NO";
|
||||
}
|
||||
Log.Instance.Trace($"api/Sheet | post() | machine: {machine} | BatchId: {BatchId} | answ: {answ}");
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary> Effettua la chiamata di update x SINGOLO foglio
|
||||
///
|
||||
///
|
||||
/// *********************************** METODI PUT
|
||||
///
|
||||
/// per abilitare è necessario agire sulla conf di IIS:
|
||||
///
|
||||
/// - modificare il file applicationHost.config che si trova in C:\Windows\System32\inetsrv\config
|
||||
/// - disinstallare webDav oppure commentare le righe <!-- <add name="WebDAVModule" /> -->
|
||||
/// <!-- <add name="WebDAVModule" image="%windir%\System32\inetsrv\webdav.dll" /> --> <!--
|
||||
/// <add name="WebDAV" path="*"
|
||||
/// verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule"
|
||||
/// /r esourceType="Unspecified"// requireAccess="None" /> -->
|
||||
/// - aggiungere PUT/DELETE a handler: <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit"
|
||||
/// path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" modules="IsapiModule"
|
||||
/// scriptProcessor="%w indir/%//\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
|
||||
/// preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> <add
|
||||
/// name="ExtensionlessUrlHandler-Integrated-4.0" path="*."
|
||||
/// verb="GET,HEAD,POST,DEBUG,PUT,DELETE" ///t
|
||||
/// ype="System.Web.Handlers.TransferRequestHandler"
|
||||
/// preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
|
||||
///
|
||||
/// *************************************/ </summary> <param name="sheetUpdated">Oggetto con
|
||||
/// Elenco fogli da aggiornare</param>
|
||||
/// PUT: api/Sheet/machine_ID
|
||||
[HttpPut]
|
||||
public void Put(SheetWorkList sheetUpdated)
|
||||
{
|
||||
// NB. decodifico direttamente come oggetto, vedere qui:
|
||||
// https://weblog.west-wind.com/posts/2013/dec/13/accepting-raw-request-body-content-with-aspnet-web-api https://weblog.west-wind.com/posts/2017/sep/14/accepting-raw-request-body-content-in-aspnet-core-api-controllers
|
||||
int BunkId = 0;
|
||||
int BatchId = 0;
|
||||
if (sheetUpdated != null)
|
||||
{
|
||||
// 2020.01.16 salvo su mongoDb la risposta...
|
||||
ComLib.man.saveProdAnsw(sheetUpdated);
|
||||
|
||||
if (sheetUpdated.SheetList != null)
|
||||
{
|
||||
foreach (var currSheet in sheetUpdated.SheetList)
|
||||
{
|
||||
// se non nullo...
|
||||
if (currSheet != null)
|
||||
{
|
||||
DLMan.taSHL.updateDate(currSheet.SheetId, currSheet.Printing.DtStart, currSheet.Printing.DtEnd, currSheet.Machining.DtStart, currSheet.Machining.DtEnd, currSheet.Unloading.DtStart, currSheet.Unloading.DtEnd, (int)currSheet.Status);
|
||||
// SE machining completato --> status a LAVORATO!
|
||||
if (currSheet.Machining.DtEnd != null)
|
||||
{
|
||||
// hard coded su multiax
|
||||
DLMan.taIL.updateSheetStatus(currSheet.SheetId, 1, sheetUpdated.Machine);
|
||||
}
|
||||
// segnalo avanzamento su redis x pagina unload
|
||||
ComLib.advaceSheetRevByBunk(currSheet.BunkId);
|
||||
// calcolo Batch
|
||||
BunkId = currSheet.BunkId;
|
||||
}
|
||||
}
|
||||
var tabBunks = DLMan.taSTL.getByKey(BunkId);
|
||||
if (tabBunks.Count > 0)
|
||||
{
|
||||
BatchId = tabBunks[0].BatchID;
|
||||
}
|
||||
}
|
||||
// ricalcolo stato BUNK
|
||||
ComLib.updateBatchPosition(BatchId);
|
||||
// INVALIDO eventuale valore BUNK in REDIS...
|
||||
ComLib.resetRedisBunkData(sheetUpdated.Machine);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// oggetto static/singleton per fare chiamate sul datalayer
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
|
||||
/// <summary>
|
||||
/// COdice macchina (HARD CODED)
|
||||
/// </summary>
|
||||
protected string machine = "WRK001";
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Private Fields
|
||||
|
||||
/// <summary>
|
||||
/// Forza fix date al momento ricezione UnlEnd valido
|
||||
/// </summary>
|
||||
private bool dfUnlEnd = false;
|
||||
|
||||
/// <summary>
|
||||
/// Forza fix date al momento ricezione UnlStart valido
|
||||
/// </summary>
|
||||
private bool dfUnlStart = false;
|
||||
|
||||
/// <summary>
|
||||
/// Forza fix date al momento ricezione WrkEnd valido
|
||||
/// </summary>
|
||||
private bool dfWrkEnd = false;
|
||||
|
||||
/// <summary>
|
||||
/// Forza fix date al momento ricezione WrkStart valido
|
||||
/// </summary>
|
||||
private bool dfWrkStart = false;
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// Verifica sheet loggando le eventuali anomalie sulle date e sistemando quelle mancanti in
|
||||
/// base a setup
|
||||
/// </summary>
|
||||
/// <param name="CurrSheet">Sheet da verificare ed eventualmente sistemare</param>
|
||||
/// <returns></returns>
|
||||
private ProdSheetExt checkFixSheet(ProdSheetExt CurrSheet)
|
||||
{
|
||||
var fixSheet = CurrSheet;
|
||||
// controllo SOLO SE se non sia ne in attesa ne completato...
|
||||
if (!fixSheet.Waiting || !fixSheet.Done)
|
||||
{
|
||||
// calcolo SE sia in errore secondo i 4 punti di controllo work/unload
|
||||
if (fixSheet.Unloading.OkE)
|
||||
{
|
||||
// loggo
|
||||
LogSheetError(fixSheet);
|
||||
|
||||
if (dfUnlEnd)
|
||||
{
|
||||
// sistemo...
|
||||
fixSheet.Unloading.DtStart = fixSheet.Unloading.OkS ? fixSheet.Unloading.DtStart : fixSheet.Unloading.DtEnd;
|
||||
fixSheet.Machining.DtEnd = fixSheet.Machining.OkE ? fixSheet.Machining.DtEnd : fixSheet.Unloading.DtEnd;
|
||||
fixSheet.Machining.DtStart = fixSheet.Machining.OkS ? fixSheet.Machining.DtStart : fixSheet.Unloading.DtEnd;
|
||||
fixSheet.Printing.DtEnd = fixSheet.Printing.OkE ? fixSheet.Printing.DtEnd : fixSheet.Unloading.DtEnd;
|
||||
fixSheet.Printing.DtStart = fixSheet.Printing.OkS ? fixSheet.Printing.DtStart : fixSheet.Unloading.DtEnd;
|
||||
}
|
||||
}
|
||||
else if (fixSheet.Unloading.OkS && (!fixSheet.Printing.Done || !fixSheet.Machining.Done))
|
||||
{
|
||||
// loggo
|
||||
LogSheetError(fixSheet);
|
||||
|
||||
if (dfUnlStart)
|
||||
{
|
||||
// sistemo...
|
||||
fixSheet.Machining.DtEnd = fixSheet.Machining.OkE ? fixSheet.Machining.DtEnd : fixSheet.Unloading.DtEnd;
|
||||
fixSheet.Machining.DtStart = fixSheet.Machining.OkS ? fixSheet.Machining.DtStart : fixSheet.Unloading.DtEnd;
|
||||
fixSheet.Printing.DtEnd = fixSheet.Printing.OkE ? fixSheet.Printing.DtEnd : fixSheet.Unloading.DtEnd;
|
||||
fixSheet.Printing.DtStart = fixSheet.Printing.OkS ? fixSheet.Printing.DtStart : fixSheet.Unloading.DtEnd;
|
||||
}
|
||||
}
|
||||
else if (fixSheet.Machining.OkE && (!fixSheet.Printing.Done || !fixSheet.Machining.Done))
|
||||
{
|
||||
// loggo
|
||||
LogSheetError(fixSheet);
|
||||
|
||||
if (dfWrkEnd)
|
||||
{
|
||||
// sistemo...
|
||||
fixSheet.Machining.DtStart = fixSheet.Machining.OkS ? fixSheet.Machining.DtStart : fixSheet.Unloading.DtEnd;
|
||||
fixSheet.Printing.DtEnd = fixSheet.Printing.OkE ? fixSheet.Printing.DtEnd : fixSheet.Unloading.DtEnd;
|
||||
fixSheet.Printing.DtStart = fixSheet.Printing.OkS ? fixSheet.Printing.DtStart : fixSheet.Unloading.DtEnd;
|
||||
}
|
||||
}
|
||||
else if (fixSheet.Machining.OkS && !fixSheet.Printing.Done)
|
||||
{
|
||||
// loggo
|
||||
LogSheetError(fixSheet);
|
||||
|
||||
if (dfWrkStart)
|
||||
{
|
||||
// sistemo...
|
||||
fixSheet.Printing.DtEnd = fixSheet.Printing.OkE ? fixSheet.Printing.DtEnd : fixSheet.Unloading.DtEnd;
|
||||
fixSheet.Printing.DtStart = fixSheet.Printing.OkS ? fixSheet.Printing.DtStart : fixSheet.Unloading.DtEnd;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return fixSheet;
|
||||
}
|
||||
|
||||
private void LogSheetError(ProdSheetExt cSheet)
|
||||
{
|
||||
// loggo
|
||||
Log.Instance.Error($"Sheet Date error | SheetId: {cSheet.SheetId} | Print: {prtDate(cSheet.Printing)} | Work: {prtDate(cSheet.Machining)} | Unload: {prtDate(cSheet.Unloading)}");
|
||||
}
|
||||
|
||||
private string prtDate(WorkData wrkRec)
|
||||
{
|
||||
string dtSta = wrkRec.DtStart == null ? "NULL" : $"{wrkRec.DtStart:yyyy.MM.dd HH:mm:ss}";
|
||||
string dtEnd = wrkRec.DtEnd == null ? "NULL" : $"{wrkRec.DtEnd:yyyy.MM.dd HH:mm:ss}";
|
||||
return $"{dtSta} ... {dtEnd}";
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
using AppData;
|
||||
using Newtonsoft.Json;
|
||||
using NKC_SDK;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Web.Http;
|
||||
|
||||
namespace NKC_WF.Controllers
|
||||
{
|
||||
public class SheetStatsController : ApiController
|
||||
{
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// oggetto static/singleton per fare chiamate sul datalayer
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// Metodo effettivo recupero dati
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
private List<chartJsTSerie> getDataFilt(int id)
|
||||
{
|
||||
List<chartJsTSerie> answ = new List<chartJsTSerie>();
|
||||
var tabDati = DLMan.taSP.GetData(id);
|
||||
DateTime startTime = DateTime.Now.AddYears(1);
|
||||
// ciclo
|
||||
foreach (var item in tabDati)
|
||||
{
|
||||
if (item.PrevTime < startTime)
|
||||
{
|
||||
startTime = item.PrevTime;
|
||||
}
|
||||
answ.Add(new chartJsTSerie() { x = item.PrevTime, y = item.NumParts });
|
||||
}
|
||||
// restituisco
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo effettivo recupero dati
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="maxHour"></param>
|
||||
/// <returns></returns>
|
||||
private List<chartJsTSerie> getDataFilt(int id, int maxHour)
|
||||
{
|
||||
List<chartJsTSerie> answ = new List<chartJsTSerie>();
|
||||
var tabDati = DLMan.taSP.GetData(id);
|
||||
DateTime startTime = DateTime.Now.AddYears(1);
|
||||
// ciclo
|
||||
foreach (var item in tabDati)
|
||||
{
|
||||
if (item.PrevTime < startTime)
|
||||
{
|
||||
startTime = item.PrevTime;
|
||||
}
|
||||
answ.Add(new chartJsTSerie() { x = item.PrevTime, y = item.NumParts });
|
||||
if (item.PrevTime > startTime.AddHours(maxHour))
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
// restituisco
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
|
||||
#region Public Methods
|
||||
|
||||
// GET api/TempRil
|
||||
public string Get()
|
||||
{
|
||||
return "NA";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero dati x batch selezionato
|
||||
/// GET api/SheetStats/5
|
||||
/// </summary>
|
||||
/// <param name="id">BatchID</param>
|
||||
/// <returns></returns>
|
||||
public List<chartJsTSerie> Get(int id)
|
||||
{
|
||||
DateTime dtRif = DateTime.Today;
|
||||
// restituisco oggetto!
|
||||
return getDataFilt(id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero dati x batch selezionato
|
||||
/// GET api/SheetStats/5
|
||||
/// </summary>
|
||||
/// <param name="id">BatchID</param>
|
||||
/// <param name="MaxHour">num max ore da mostrare</param>
|
||||
/// <returns></returns>
|
||||
public List<chartJsTSerie> Get(int id, int MaxHour)
|
||||
{
|
||||
List<chartJsTSerie> answ = new List<chartJsTSerie>();
|
||||
// se maxHour < 0 --> mostro tutto
|
||||
if (MaxHour < 0)
|
||||
{
|
||||
answ = getDataFilt(id);
|
||||
}
|
||||
else
|
||||
{
|
||||
answ = getDataFilt(id, MaxHour);
|
||||
}
|
||||
// restituisco oggetto!
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ namespace NKC_WF.Controllers
|
||||
// GET api/getMUCssController
|
||||
public HttpResponseMessage Get()
|
||||
{
|
||||
string answ = getCssByPost(0);
|
||||
string answ = $"{getCssByPost(0)}";
|
||||
return new HttpResponseMessage(HttpStatusCode.OK)
|
||||
{
|
||||
Content = new StringContent(answ, Encoding.UTF8, "text/css")
|
||||
@@ -22,7 +22,7 @@ namespace NKC_WF.Controllers
|
||||
// GET api/getMUCssController/5
|
||||
public HttpResponseMessage Get(int id)
|
||||
{
|
||||
string answ = getCssByPost(id);
|
||||
string answ = $"{getCssByPost(id)}";
|
||||
return new HttpResponseMessage(HttpStatusCode.OK)
|
||||
{
|
||||
Content = new StringContent(answ, Encoding.UTF8, "text/css")
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user