Compare commits
958 Commits
v_1.2.2008.355
...
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 | |||
| cd114c3ad4 | |||
| 7e128321e0 | |||
| 3cda51cf45 | |||
| 60acca9deb | |||
| 4be9f5a460 | |||
| 2fc720be92 | |||
| 8dfcc2fb4e | |||
| 50b2b64404 | |||
| ad25324923 | |||
| 8934ee9939 | |||
| 6f082e6d0f | |||
| 775ff293fc | |||
| 30d6209eb3 | |||
| f56562e8a4 | |||
| 571ab6b981 | |||
| 1c6ea398bb | |||
| 0bd2e74cfd | |||
| 872e016964 | |||
| a60bb7a4af | |||
| fa3ff2568e | |||
| 2af230739d | |||
| 5b8f45b90a | |||
| 25765d1b23 | |||
| c51fe13e26 | |||
| da3e029b7d | |||
| 07f3951ede | |||
| 49246f83e2 | |||
| 328b96be25 | |||
| 6e44549824 | |||
| 90ae8883c0 | |||
| 4053cd2c15 | |||
| 59b319418d | |||
| 50eba64f09 | |||
| 7a75cdd883 | |||
| a2f6105cdc | |||
| ac78a4acf5 | |||
| 885f9de44b | |||
| 4a32f314e6 | |||
| 9bc11c2556 | |||
| f6096923f1 | |||
| abe888c431 | |||
| 3b0a7e118e | |||
| 0859970734 | |||
| 3cb52b38ca | |||
| b9a32fc47b | |||
| 7a1472cdaf | |||
| 7f053cc93d | |||
| 6e8c361d2a | |||
| cf2260bbd6 | |||
| 27f0077450 | |||
| 4cc1653937 | |||
| 71d8c42dc7 | |||
| 1404ff566a | |||
| 8adf1ec666 | |||
| 083ff41426 | |||
| 31eb23ed97 | |||
| 770e77469a | |||
| 516baaa1a8 | |||
| cbc617b9bf | |||
| 990f83d47a | |||
| 4e628c1783 | |||
| 1bf47bc3f5 | |||
| 8bf71c5fdb | |||
| b18d766f6c | |||
| 342908cd2d | |||
| 6d24d86563 | |||
| 3347c026f7 | |||
| 05ee608063 | |||
| 07da1b4403 | |||
| f883fb3171 | |||
| 61d5c6c136 | |||
| 32ac36e92d | |||
| b8a84f57f4 | |||
| 72405fbd04 | |||
| c472f532d9 | |||
| c783d163d0 |
@@ -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
-1725
File diff suppressed because it is too large
Load Diff
Generated
+15773
-4851
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,13 @@
|
||||
|
||||
partial class DS_App
|
||||
{
|
||||
partial class OffOrd2ItemDataTable
|
||||
{
|
||||
}
|
||||
|
||||
partial class SheetsPreviewDataTable
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2199
-725
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="292" ViewPortY="-47" 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="15" X="291" Y="375" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:StackList" ZOrder="14" X="584" Y="890" Height="381" Width="268" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:SheetList" ZOrder="20" 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="23" 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="3" 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="6" 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="17" 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="19" X="-2" Y="1233" Height="172" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:PartValidPareto" ZOrder="18" X="324" Y="1235" Height="153" Width="236" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:UnloadStats" ZOrder="16" 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="22" X="1259" Y="925" Height="324" Width="202" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:PackList" ZOrder="10" X="1256" Y="1251" Height="362" Width="297" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
|
||||
<Shape ID="DesignTable:OtherItem" ZOrder="21" X="644" Y="1754" Height="210" Width="204" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
|
||||
<Shape ID="DesignTable:ItemSearchDetail" ZOrder="2" X="1476" Y="37" Height="343" Width="244" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:PackListDet" ZOrder="13" X="939" Y="1452" Height="343" Width="229" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:PackLog" ZOrder="12" X="1232" Y="1683" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
|
||||
<Shape ID="DesignTable:PackCheck" ZOrder="11" X="644" Y="1492" Height="229" Width="206" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
|
||||
<Shape ID="DesignTable:OKIB" ZOrder="9" X="41" Y="1425" Height="324" Width="220" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:OKIB_Sum" ZOrder="8" X="50" Y="1823" Height="362" Width="220" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:OKOI" ZOrder="5" X="342" Y="1417" Height="324" Width="246" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:OKOI_sum" ZOrder="4" X="338" Y="1822" Height="362" Width="246" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:Pack2Cart" ZOrder="7" X="919" Y="1805" Height="248" Width="203" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
|
||||
<Shape ID="DesignTable:CartIRK" ZOrder="1" X="648" Y="1996" Height="248" Width="188" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
|
||||
<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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,33 +10,4 @@
|
||||
<FullDisplayName>SQL2016PROD.Sauder_NKC_Prod (sa)</FullDisplayName>
|
||||
</ConnectionProperties2>
|
||||
<SessionSettings>Default</SessionSettings>
|
||||
<DeselectedTable>[dbo].[PackListDet]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[Kit2OtherItem]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[OffOrd2Item]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[ErrorsLog]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[OrderList]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[BatchList]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[Pack2Kit]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[OfflineOrderList]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[ItemValidation]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[PrintJobQueue]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[BinList]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[Stacklist]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[UTENTE]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[PackLog]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[Counters]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[Nesting]</DeselectedTable>
|
||||
<DeselectedTable>[ext].[BatchKitting]</DeselectedTable>
|
||||
<DeselectedTable>[ext].[BatchOrder]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[Import_Log]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[Remnants]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[KitList]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[Utenti]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[Carts]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[OtherItemList]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[ItemEvents]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[Bins]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[SheetList]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[ItemList]</DeselectedTable>
|
||||
<DeselectedTable>[dbo].[PackList]</DeselectedTable>
|
||||
</DataComparison>
|
||||
@@ -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</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=WIN2016-SQL\PROD;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=WIN2016-SQL\PROD;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,36 +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.SqlProcedure, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<Name>prt</Name>
|
||||
<Name>stp_prt_ItemLabel_OLD</Name>
|
||||
<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.SqlProcedure, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<Name>prt</Name>
|
||||
<Name>stp_prt_StackLabel_OLD</Name>
|
||||
</SelectedItem>
|
||||
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlProcedure, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<Name>prt</Name>
|
||||
<Name>stp_prt_StackLabelBunk_OLD</Name>
|
||||
<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>AnagItemStatus_OLD</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>AnagItemStatus_OLD</Name>
|
||||
<Name>ItemStatus</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_AnagItemStatus</Name>
|
||||
</SelectedItem>
|
||||
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlDefaultConstraint, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<Name>dbo</Name>
|
||||
<Name>DF_AnagItemStatus_ItemStatus</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=355']) {
|
||||
// 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
-310
@@ -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,171 +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
|
||||
|
||||
#if false
|
||||
#region metodi per BUNK
|
||||
|
||||
/// <summary>
|
||||
/// Recupera il PRIMO BUNK
|
||||
/// - effettua chiamata tramite REST API HTTP
|
||||
/// - il risutlato viene deserializzato nell'oggetto richiesto
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public ProdBunk getFirstBunk()
|
||||
{
|
||||
ProdBunk answ = null;
|
||||
string rawdata = "";
|
||||
// chiamo metodo x recupero WBunk...
|
||||
try
|
||||
{
|
||||
rawdata = callUrl(urlCurrBunk);
|
||||
answ = JsonConvert.DeserializeObject<ProdBunk>(rawdata);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione durante getFirstBunk, ricevuto {rawdata}{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
#endregion Public Methods
|
||||
}
|
||||
/// <summary>
|
||||
/// Recupera il BUNK SUCCESSIVO
|
||||
/// - effettua chaimata tramite REST API HTTP
|
||||
/// - il risutlato viene deserializzato nell'oggetto richiesto
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public ProdBunk getNextBunk(int currBunkId)
|
||||
{
|
||||
ProdBunk answ = null;
|
||||
string rawdata = "";
|
||||
// chiamo metodo x recupero WBunk...
|
||||
try
|
||||
{
|
||||
rawdata = callUrl(urlNextBunk(currBunkId));
|
||||
answ = JsonConvert.DeserializeObject<ProdBunk>(rawdata);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione durante getNextBunk, ricevuto {rawdata}{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Recupera UN BUNK esatto
|
||||
/// - effettua chaimata tramite REST API HTTP
|
||||
/// - il risutlato viene deserializzato nell'oggetto richiesto
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public ProdBunk getBunk(int currBunkId)
|
||||
{
|
||||
ProdBunk answ = null;
|
||||
string rawdata = "";
|
||||
// chiamo metodo x recupero WBunk...
|
||||
try
|
||||
{
|
||||
rawdata = callUrl(urlGetBunk(currBunkId));
|
||||
answ = JsonConvert.DeserializeObject<ProdBunk>(rawdata);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione durante getBunk, ricevuto {rawdata}{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Effettua salvataggio del BUNK corrente su NKC
|
||||
/// </summary>
|
||||
/// <param name="currBunk"></param>
|
||||
public bool saveBunk(ProdBunk currBunk)
|
||||
{
|
||||
bool answ = false;
|
||||
string rawdata = "";
|
||||
try
|
||||
{
|
||||
// serializzo oggetto
|
||||
rawdata = JsonConvert.SerializeObject(currBunk);
|
||||
// invio con metodo put!
|
||||
putData(urlPutBunk(currBunk.BunkId), rawdata);
|
||||
answ = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione durante saveBunk, ricevuto {rawdata}{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Oggetto che contiene il BUNK corrente LOCALMENTE
|
||||
/// </summary>
|
||||
public ProdBunk persistedBunk
|
||||
{
|
||||
get
|
||||
{
|
||||
ProdBunk answ = new ProdBunk();
|
||||
try
|
||||
{
|
||||
string rawdata = File.ReadAllText(persistFileName);
|
||||
answ = JsonConvert.DeserializeObject<ProdBunk>(rawdata);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Instance.Error($"Eccezione durante recupero locale del bunk{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 del BUNK{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
+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
-460
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+48
-68
@@ -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,76 +56,21 @@ namespace NKC_WF
|
||||
{
|
||||
return user_std.UtSn.Traduci(lemma);
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log INFO
|
||||
/// Membro gestione accessi al datalayer (istanza x ogni classe controllo)
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public void lgInfo(string message)
|
||||
{
|
||||
logger.lg.scriviLog(message, tipoLog.INFO);
|
||||
}
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper scrittura log ERROR
|
||||
/// Codice macchina (da v2)
|
||||
/// </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);
|
||||
}
|
||||
|
||||
#region gestione compressione viewstate
|
||||
|
||||
/*--------------------------------------------------------------
|
||||
* Compressione viewstate
|
||||
*
|
||||
* vedere https://www.codeproject.com/Articles/14733/ViewState-Compression
|
||||
*
|
||||
* da valutare anche
|
||||
* https://www.karpach.com/viewstateexception-invalid-viewstate.htm
|
||||
* https://www.karpach.com/ASP-NET-Global-asax-error-logger.htm
|
||||
*
|
||||
*--------------------------------------------------------------*/
|
||||
|
||||
|
||||
#if false
|
||||
protected override object LoadPageStateFromPersistenceMedium()
|
||||
{
|
||||
string viewState = Request.Form["__VSTATE"];
|
||||
byte[] bytes = Convert.FromBase64String(viewState);
|
||||
bytes = Compressor.Decompress(bytes);
|
||||
LosFormatter formatter = new LosFormatter();
|
||||
return formatter.Deserialize(Convert.ToBase64String(bytes));
|
||||
}
|
||||
|
||||
protected override void SavePageStateToPersistenceMedium(object viewState)
|
||||
{
|
||||
LosFormatter formatter = new LosFormatter();
|
||||
StringWriter writer = new StringWriter();
|
||||
formatter.Serialize(writer, viewState);
|
||||
string viewStateString = writer.ToString();
|
||||
byte[] bytes = Convert.FromBase64String(viewStateString);
|
||||
bytes = Compressor.Compress(bytes);
|
||||
ClientScript.RegisterHiddenField("__VSTATE", Convert.ToBase64String(bytes));
|
||||
}
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
protected string PlaceCod = "WRK001";
|
||||
|
||||
#endregion Protected Fields
|
||||
}
|
||||
}
|
||||
+225
-132
@@ -1,25 +1,222 @@
|
||||
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>
|
||||
/// Membro gestione accessi al datalayer (istanza x ogni classe controllo)
|
||||
/// Codice macchina (da v2)
|
||||
/// </summary>
|
||||
protected DataLayer DLMan = new DataLayer();
|
||||
public string PlaceCod = "VIRTNE";
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Events
|
||||
|
||||
/// <summary>
|
||||
/// Generico evento di richiesta refresh a aprent
|
||||
/// 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>
|
||||
public bool checkProd
|
||||
{
|
||||
get
|
||||
{
|
||||
return memLayer.ML.CRS("environment") == "PROD";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera IP utente
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string currIpAddress
|
||||
{
|
||||
get
|
||||
{
|
||||
string userip = Request.UserHostAddress;
|
||||
return userip;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// pagina corrente...
|
||||
/// </summary>
|
||||
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>
|
||||
/// 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>
|
||||
/// 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>
|
||||
@@ -31,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>
|
||||
@@ -49,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
|
||||
@@ -76,7 +294,7 @@ namespace NKC_WF
|
||||
{
|
||||
answ.Add(item.MatID, item.MatDesc);
|
||||
}
|
||||
// salvo in redis
|
||||
// salvo in redis
|
||||
anagMateriali = answ;
|
||||
}
|
||||
// restituisco
|
||||
@@ -84,131 +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>
|
||||
/// 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);
|
||||
|
||||
+68
-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,6 +72,35 @@ 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;
|
||||
@@ -109,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;
|
||||
@@ -174,7 +223,6 @@ body {
|
||||
|
||||
@blSCut: 1rem;
|
||||
|
||||
|
||||
.shortcuts {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -183,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;
|
||||
@@ -236,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 {
|
||||
@@ -278,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;}}.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);
|
||||
// deserializzo
|
||||
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
|
||||
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.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user