Compare commits

...

489 Commits

Author SHA1 Message Date
Giancarlo Rottoli 1af238b30a Update Repoprt Cart 1.3 e Remnant 2021-12-28 09:49:40 +01:00
Samuele Locatelli a173fe8f5e Merge tag 'FixCiCd' into develop
Fix CiCd x pubblicazione nexus
2021-11-25 11:52:24 +01:00
Samuele Locatelli 278470356a Merge branch 'release/FixCiCd' 2021-11-25 11:52:12 +01:00
Samuele Locatelli 26335a70e7 fix versioni CORE 2021-11-25 11:49:51 +01:00
Samuele Locatelli ceb448bd4e fix path x NKC_WF? 2021-11-25 11:44:57 +01:00
Samuele Locatelli 04c5fc27b7 Merge tag 'FixCiCdNkcReman' into develop
fixed deply CI/CD x NKC e REMAN
2021-11-25 11:39:56 +01:00
Samuele Locatelli 90b26cbb40 Merge branch 'release/FixCiCdNkcReman' 2021-11-25 11:39:43 +01:00
Samuele Locatelli c5fd9d08c9 test fix yaml 2021-11-25 11:27:47 +01:00
Samuele Locatelli 86ce970e72 Fix vers num locale 2021-11-25 11:18:55 +01:00
Samuele Locatelli c2c3b88f2d update postbuild x REMAN 2021-11-25 11:17:49 +01:00
Samuele Locatelli 728a985ec5 riaggiunta publish propfiles corretti 2021-11-25 10:09:54 +01:00
Samuele Locatelli fe9b7eb730 Fix reman solution in yaml 2021-11-25 09:58:25 +01:00
Samuele Locatelli bf6d0f3159 refresh 2021-11-25 09:56:25 +01:00
Samuele Locatelli 38be0c67ac Update solution REMAN 2021-11-25 09:56:19 +01:00
Samuele Locatelli 7f3b0a3adf Spostamento progetto REMAN 2021-11-25 09:56:11 +01:00
Samuele Locatelli cae78daefd Spostamento progetto NKC Data 2021-11-25 09:56:01 +01:00
Samuele Locatelli 693b5d0eba fix pub profiles xml 2021-11-25 09:55:49 +01:00
Samuele Locatelli 1eceb82bc8 Merge tag 'UpdNKC' into develop
fix installer x NKC vers 25 nov
2021-11-25 09:07:22 +01:00
Samuele Locatelli dc75fd81c2 Merge branch 'release/UpdNKC' 2021-11-25 09:07:13 +01:00
Samuele Locatelli d2ca541109 fix yaml x dotnet restore finale 2021-11-25 08:59:17 +01:00
Samuele Locatelli 3b4eb2fce4 fix indent yaml 2021-11-25 08:55:17 +01:00
Samuele Locatelli d0ffd6ae90 test CICD x nexus upload develop 2021-11-25 08:53:19 +01:00
Samuele Locatelli 59239b70ae Fix layout base top/bottom 2021-11-25 08:51:40 +01:00
Samuele Locatelli 2499ff1250 maybe fix publish profiles 2021-11-24 19:39:37 +01:00
Samuele Locatelli 73f3c0bc71 tolto step pubblicazione zip... 2021-11-24 19:30:30 +01:00
Samuele Locatelli 4a26aa1955 COmpleto fix nullable, test CI/CD 2021-11-24 19:24:02 +01:00
Samuele Locatelli 6adbfe6375 Fix altri casi null 2021-11-24 19:12:26 +01:00
Samuele Locatelli 124a9ef75d altri fix null & pulizia codice 2021-11-24 19:11:37 +01:00
Samuele Locatelli adec730a94 fix vari nullable x context 2021-11-24 19:10:41 +01:00
Samuele Locatelli 85789538fd fix null in modelli 2021-11-24 19:09:30 +01:00
Samuele Locatelli fbcfb86d1f fix vari warning null x controller 2021-11-24 19:09:08 +01:00
Samuele Locatelli d7ffdc7852 fix yaml 2021-11-24 18:34:39 +01:00
Samuele Locatelli cb31f6a242 update CI-CD 2021-11-24 18:26:48 +01:00
Samuele Locatelli 2eb218a3c0 aggiunta profilo x deploy zip install 2021-11-24 18:26:42 +01:00
Samuele Locatelli a1a233b1f6 Fix anonymous auth x NKC 2021-11-24 18:08:34 +01:00
Samuele Locatelli 101fe9e208 Merge tag 'FixRemanReturnNkc' into develop
fix ritorno a NKC da reman
2021-11-24 17:57:58 +01:00
Samuele Locatelli 2883e85aa4 Merge branch 'release/FixRemanReturnNkc' 2021-11-24 17:57:49 +01:00
Samuele Locatelli 8032103960 aggiunta pagina rimando a NKC x REMAN 2021-11-24 17:57:19 +01:00
Samuele Locatelli 4ee3670183 pulizia 2021-11-24 17:57:12 +01:00
Samuele Locatelli d8b95d322e Merge tag 'PackUpgrade' into develop
Completato upgrade packages nuget + test redirect + update manager x
nuova app
2021-11-24 16:46:24 +01:00
Samuele Locatelli b86041d1bf Merge branch 'release/PackUpgrade' 2021-11-24 16:46:00 +01:00
Samuele Locatelli eb7e5c8502 Aggiunta pagina redirect verso REMAN + check updater 2021-11-24 16:45:49 +01:00
Samuele Locatelli 8a49e2d523 Refresh pacchetti dll mongo 2021-11-24 15:20:49 +01:00
Samuele Locatelli e6a8a0a042 Remapping parametro delle tuple 2021-11-24 15:19:17 +01:00
Samuele Locatelli 98b00efdf1 Update Redis 2021-11-24 15:09:55 +01:00
Samuele Locatelli 845dc7151d Update pack compressione 2021-11-24 15:07:42 +01:00
Samuele Locatelli 1b284c1c7d Update SDK a 4.6.2!!! 2021-11-24 15:07:36 +01:00
Samuele Locatelli 4617e6f3ee update componenti MOngoDB 2021-11-24 15:06:20 +01:00
Samuele Locatelli 6492618ff5 Update steamwarelibs 2021-11-24 15:03:35 +01:00
Samuele Locatelli 33bf62821e Update NLog 2021-11-24 14:56:38 +01:00
Samuele Locatelli 26789d4066 Fix display inch/mm x materiali/remnants 2021-11-24 11:41:06 +01:00
Samuele Locatelli 8df36b2480 Modifica Remnant con QRCode solo x lenght + quote Inch 2021-11-24 11:28:45 +01:00
Samuele Locatelli da1e3549f0 Update profili pubblicazione 2021-11-24 11:28:31 +01:00
Samuele Locatelli 07620c27a6 Fix install redis 5.0.14 su IIS01/IIS02 + update publish profile 2021-11-23 19:11:59 +01:00
Samuele Locatelli 343ba058f3 Merge tag 'ReManFirstRelease' into develop
Versione iniziale REMAN fino ad integrazione PJQ
2021-11-23 12:37:10 +01:00
Samuele Locatelli 9a8257d567 Merge branch 'release/ReManFirstRelease' 2021-11-23 12:36:57 +01:00
Samuele Locatelli 022acce553 update NKC: report remnant + conf coda... 2021-11-23 12:36:32 +01:00
Samuele Locatelli cad34c5610 fix btn stampa (mette in coda DB) 2021-11-23 12:35:58 +01:00
Samuele Locatelli f79170e72e Aggiunto model x PJQ gestione stampe 2021-11-23 12:35:50 +01:00
Samuele Locatelli 2e7e070c2a Fix display naviazione dettaglio MovMag 2021-11-23 08:45:39 +01:00
Samuele Locatelli b2677219d5 Update filtro x ultimi movimenti 2021-11-22 20:34:49 +01:00
Samuele Locatelli c9cd2b2df1 OK deposito e pickup 2021-11-22 19:49:59 +01:00
Samuele Locatelli dcedf03d2c OK x focus pagina scanner 2021-11-22 18:31:06 +01:00
Samuele Locatelli d1b59b5038 OK Remnants pickup 2021-11-22 12:16:17 +01:00
Samuele Locatelli b8373245ce Agigunta procedura ricerca x Dtmx 2021-11-22 11:09:59 +01:00
Samuele Locatelli 806cdab55a aggiunta modelli movMag con user 2021-11-22 11:09:52 +01:00
Samuele Locatelli 40bdce1141 riorg codice controller DB 2021-11-19 19:40:13 +01:00
Samuele Locatelli e28515776e Bozza modifica x gestione user che effettua variazioni magazzino 2021-11-19 19:40:06 +01:00
Samuele Locatelli c7dc020a93 Add migrazione x MovMag 2021-11-19 19:26:07 +01:00
Samuele Locatelli 8ed5f088c2 Aggiunta classe movimenti magazzino 2021-11-19 19:23:04 +01:00
Samuele Locatelli 20d89e4c79 Update pag remnants 2021-11-19 19:14:46 +01:00
Samuele Locatelli a7782d9018 Fix filtro con salto pagina x materiali --> remn 2021-11-19 18:05:48 +01:00
Samuele Locatelli 4e72c80350 Fix datapager + link vari 2021-11-19 17:04:54 +01:00
Samuele Locatelli be9bf008e5 Bozza pagine pickup / depèosito e menu nav 2021-11-19 16:46:02 +01:00
Samuele Locatelli 3aed8b7b39 inizio modifica x gestione filtro remants 2021-11-19 13:03:46 +01:00
Samuele Locatelli 8a9e87703d Aggiunto controllo duplicati su remnant esistenti 2021-11-19 13:01:04 +01:00
Samuele Locatelli 06b8edc0b2 COmpletato add, edit, incr/decr x remnants 2021-11-19 12:20:10 +01:00
Samuele Locatelli 5864eb448a Modifica con filtro remnant e + solo se selezionato 2021-11-19 09:55:41 +01:00
Samuele Locatelli 62dc3033f1 Merge tag 'ReManProjInit' into develop
Bozza preliminare sito gestione remnants
2021-11-18 19:16:21 +01:00
Samuele Locatelli d0d918ffde Merge branch 'release/ReManProjInit' 2021-11-18 19:16:11 +01:00
Samuele Locatelli 1af003f2ce Ancora update pagina Remnants 2021-11-18 19:15:56 +01:00
Samuele Locatelli e939a4b5bf Aggiunta metodi recupero remnants 2021-11-18 18:48:18 +01:00
Samuele Locatelli 30034aea7c Fix lunghezza dati 18.2 -->18.3 x decimal 2021-11-18 18:43:00 +01:00
Samuele Locatelli 17528bec75 Aggiunta remnants su DB 2021-11-18 18:34:59 +01:00
Samuele Locatelli 4d95a45279 Add initDb migration 2021-11-18 18:34:54 +01:00
Samuele Locatelli 5ac1925d1c Update ancora x materiali 2021-11-18 18:24:09 +01:00
Samuele Locatelli 418d1bdc6b Rimozione demo page forecast 2021-11-18 18:24:03 +01:00
Samuele Locatelli 25225d4fd5 bozza pagina lista materiali 2021-11-18 17:53:33 +01:00
Samuele Locatelli ba6da1514a aggiunta componenti loader + pager 2021-11-18 17:53:24 +01:00
Samuele Locatelli dc8a47b8d7 refresh layout 2021-11-18 17:53:16 +01:00
Samuele Locatelli d6c6558ba9 Aggiunta librerie fontawesome + bootstrap 2021-11-18 17:53:01 +01:00
Samuele Locatelli cea025da3b Update DB x controller materiali 2021-11-18 17:52:49 +01:00
Samuele Locatelli bbfab5ea52 Fix grafico x area NAV sito REMAN 2021-11-18 16:28:46 +01:00
Samuele Locatelli 8264498f15 update note x scaffolding 2021-11-18 16:28:31 +01:00
Samuele Locatelli c1c014b7c0 Aggiunta preliminare sito REMAN x gestione remnants 2021-11-13 09:49:29 +01:00
Samuele Locatelli e76320bf99 Merge tag 'FixSheetsStatsIndexReset' into develop
Fix calcolo statistiche sheet/batch, era un idx che si resettava x ogni
bunk
2021-11-11 19:35:56 +01:00
Samuele Locatelli 05fd8b3701 Merge branch 'release/FixSheetsStatsIndexReset' 2021-11-11 19:34:52 +01:00
Samuele Locatelli 56fdee795d Eliminata trappola post fix calcolo statistiche BATCH 2021-11-11 19:34:22 +01:00
Samuele Locatelli 7b8389e575 messo trappola x caricare json da mongo a mano da file 2021-11-11 19:34:01 +01:00
Samuele Locatelli 2a35aa08ec Merge tag 'FixCsvExport' into develop
Aggiunto csv export
2021-10-18 11:27:24 +02:00
Samuele Locatelli 54969b3b27 Merge branch 'release/FixCsvExport' 2021-10-18 11:27:05 +02:00
Samuele Locatelli 0be32f457d Aggiunto export CSV + fix 25 righe visualizzazione 2021-10-18 11:26:42 +02:00
Samuele Locatelli 06a4df8b50 Merge tag 'AddDayExportCsv' into develop
Aggiunta export day stats
2021-10-18 09:47:29 +02:00
Samuele Locatelli 53f30037aa Merge branch 'release/AddDayExportCsv' 2021-10-18 09:47:10 +02:00
Samuele Locatelli 846c195019 Fix export statistiche 2021-10-18 09:46:23 +02:00
Samuele E. Locatelli 7850d8222d bozza export csv (NOT OK) 2021-10-17 07:06:19 +02:00
Samuele Locatelli 7acf336639 Merge tag 'LogRecaltStats' into develop
Aggiunta log tempi ricalcolo statistiche
2021-10-07 10:31:36 +02:00
Samuele Locatelli 3a1604112e Merge branch 'release/LogRecaltStats' 2021-10-07 10:31:24 +02:00
Samuele Locatelli 30478f5272 Update x log tempo ricalcolo statistiche daily 2021-10-07 10:31:02 +02:00
Samuele Locatelli a0922ee29f Merge tag 'FIlterDisplayReview' into develop
Fix display review
2021-10-06 16:34:05 +02:00
Samuele Locatelli b7ba6fffeb Merge branch 'release/FIlterDisplayReview' 2021-10-06 16:33:50 +02:00
Samuele Locatelli f08f3c3c87 Update grafico filtri 2021-10-06 16:33:20 +02:00
Samuele Locatelli 4fcc8a1998 UPdate componente paginazione 2021-10-06 16:33:13 +02:00
Samuele Locatelli b353a49cc1 Merge tag 'ReportPEzziOra' into develop
Fix display pezzi/ora
2021-10-06 13:56:58 +02:00
Samuele Locatelli 1dfc180cbf Merge branch 'release/ReportPEzziOra' 2021-10-06 13:56:48 +02:00
Samuele Locatelli 9aa4f0c60c Review display pezzi/ora 2021-10-06 13:29:47 +02:00
Samuele Locatelli 32c5e0fd6c Fix ricalcolo parametrico reports daily 2021-10-06 12:53:11 +02:00
Samuele Locatelli 9cc60e93de Fix selezione asse giorno x report Daily 2021-10-06 12:53:03 +02:00
Samuele Locatelli 3b5157b4a1 Merge tag 'ReportFix' into develop
Completamento reports daily
2021-10-06 12:12:05 +02:00
Samuele Locatelli ae6ff18385 Merge branch 'release/ReportFix' 2021-10-06 12:11:50 +02:00
Samuele Locatelli e7355bea00 Completato update report x 2 grafici 2021-10-06 12:11:25 +02:00
Samuele Locatelli 8e98ae2f0a Fix display MIA in UnloadPage 2021-10-06 10:15:28 +02:00
Samuele Locatelli 53990745c6 Merge tag 'ReportPost' into develop
Aggiunta report daily post
2021-10-05 19:17:48 +02:00
Samuele Locatelli 617574a3bd Merge branch 'release/ReportPost' 2021-10-05 19:17:39 +02:00
Samuele Locatelli 52a5631675 Ok grafici + log, updatepanel NON VA 2021-10-05 19:15:39 +02:00
Samuele Locatelli b401be828f Update gestioen grafici daily 2021-10-05 19:00:21 +02:00
Samuele Locatelli ef0afc508e Bozza grafici Daily 2021-10-05 18:18:16 +02:00
Samuele Locatelli 426307f19c integrazione modulo 2021-10-05 16:21:32 +02:00
Samuele Locatelli 1f103cd87f inizio modulo daily stats 2021-10-05 16:21:28 +02:00
Samuele Locatelli 800ccf7eaa Merge tag 'ReportPre' into develop
Aggiunto modulo statistiche PRE
2021-10-05 15:34:27 +02:00
Samuele Locatelli 4ce2e41d75 Merge branch 'release/ReportPre' 2021-10-05 15:34:14 +02:00
Samuele Locatelli 3b980d1602 COmpletate statistiche PRE 2021-10-05 15:33:38 +02:00
Samuele Locatelli 03a15c34bf Test x grafici dinamici 2021-10-05 14:19:41 +02:00
Samuele Locatelli 9a4204a24c COmpletata scheda stats PRE senza grafici 2021-10-05 11:24:24 +02:00
Samuele Locatelli ddc88286ab Update visualizzazione tabella stats Batch 2021-10-05 11:00:13 +02:00
Samuele Locatelli 98625451e2 Aggancio selezione report 2021-10-04 19:13:04 +02:00
Samuele Locatelli 268c6c073f Inizio modifica pagina report 2021-10-04 19:07:00 +02:00
Samuele Locatelli e48ab33b50 Aggiunta componente selettore report 2021-10-04 19:06:51 +02:00
Samuele Locatelli 813b7d79ee Merge tag 'FixDxf_ErrorTrap' into develop
Fix gestione DXF: reset e impedimento + di 1 file x volta, aggiunta
error trap con 2° tentativo reload
2021-09-24 10:38:49 +02:00
Samuele Locatelli 06f9e23a5e Merge branch 'release/FixDxf_ErrorTrap' 2021-09-24 10:38:21 +02:00
Samuele Locatelli 37857e2c77 Riportato error message full in locale 2021-09-24 10:37:45 +02:00
Samuele Locatelli f162f4a367 Trappola error pages in pista x tentare 2 volte prima di andare in home 2021-09-24 10:37:21 +02:00
Samuele Locatelli 289fa0ffd8 Fix gestione DXF: invalidati i running nest e impedisce caricamento + di 1 x volta 2021-09-24 10:05:21 +02:00
Samuele Locatelli 3a55c155e9 Merge tag 'UpdaterFix' into develop
Completato fix updater x Nexus
2021-09-17 16:46:58 +02:00
Samuele Locatelli 9f4f96e15d Merge branch 'release/UpdaterFix' 2021-09-17 16:46:48 +02:00
Samuele Locatelli b83b29f798 Fix conf https x NEXUS 2021-09-17 16:46:34 +02:00
Samuele Locatelli 62cc21f43d Eliminazioni warnings vari codice 2021-09-17 14:51:27 +02:00
Samuele Locatelli 8ec6ce6390 Update typescript a latest 2021-09-17 14:51:19 +02:00
Samuele Locatelli 72398af0d5 fix port 61257 2021-09-17 14:39:20 +02:00
Samuele Locatelli d143857cf8 Update nuget vari 2021-09-17 14:31:54 +02:00
Samuele Locatelli d2daf33f14 UPdate nuget steamwarelibs 2021-09-17 14:26:21 +02:00
Samuele Locatelli 0a36cf3de8 Merge tag 'FixNexus' into develop
Fix nexus path https
2021-09-16 16:21:13 +02:00
Samuele Locatelli b178add115 Merge branch 'release/FixNexus' 2021-09-16 16:21:05 +02:00
Samuele Locatelli a7fcfe0eca Update nexus yaml conf 2021-09-16 16:17:06 +02:00
Samuele Locatelli 5aac6657e8 Merge tag 'CheckFIleNameCNC' into develop
Fix controllo filename/takt in fase import se già approvato
2021-09-16 16:05:16 +02:00
Samuele Locatelli f9281ece74 Merge branch 'release/CheckFIleNameCNC' 2021-09-16 16:05:04 +02:00
Samuele Locatelli 4cc1bfbd8f Fix comportamento file upload x kit e test dxf 2021-09-16 16:03:05 +02:00
Samuele Locatelli 8bb4580ba2 Aggiunto verifica batch già approvati in import 2021-09-16 16:01:48 +02:00
Samuele Locatelli a474c243f6 Merge tag 'FixManifestVErs' into develop
Fix manifest version (era 0.0.0.0)
2021-09-02 16:39:43 +02:00
Samuele Locatelli 91b36dbf5f Merge branch 'release/FixManifestVErs' 2021-09-02 16:38:40 +02:00
Samuele Locatelli 8ed38c3976 fix vers number in manifest.xml 2021-09-02 16:38:07 +02:00
Samuele Locatelli 2697a3ae09 Merge tag 'FixManifestDeploy' into develop
Fix modalità update e url manifest.xml
2021-09-02 16:32:36 +02:00
Samuele Locatelli 83f44c6d36 Merge branch 'release/FixManifestDeploy' 2021-09-02 16:30:28 +02:00
Samuele Locatelli 07e4fbe5e8 Update pagina download NKC 2021-09-02 16:30:03 +02:00
Samuele Locatelli 252387f6ca Modifica ciclo update in deploy CI/CD 2021-09-02 16:24:54 +02:00
Samuele Locatelli 8ccddec3bd Merge tag 'Gitlab_CICD' into develop
Fix gitlab CI CD deploy
2021-09-02 15:57:44 +02:00
Samuele Locatelli 06a2dc0200 Merge branch 'release/Gitlab_CICD' 2021-09-02 15:57:32 +02:00
Samuele Locatelli 0d6244365d Merge branch 'feature/Jenkins2Gitlab' into develop 2021-09-02 15:56:17 +02:00
Samuele Locatelli 4e25b172c8 Merge branch 'develop' into feature/Jenkins2Gitlab 2021-09-02 15:56:02 +02:00
Samuele Locatelli 07ff67b1c8 Fix timing esecuzioen batch stat import 2021-09-02 15:55:01 +02:00
Samuele Emilio Locatelli 7205e0a5ab Merge branch 'feature/Jenkins2Gitlab' into 'develop'
Feature/jenkins2 gitlab

See merge request steamware/NKC!1
2021-09-02 13:52:42 +00:00
Samuele Emilio Locatelli d618963565 Feature/jenkins2 gitlab 2021-09-02 13:52:42 +00:00
Samuele Locatelli 8379252c12 riduzione verbosita e path manifest/changelog x upload 2021-09-02 15:45:13 +02:00
Samuele Locatelli 17f32f80d7 fix nexus upload (hope) 2021-09-02 15:29:30 +02:00
Samuele Locatelli c7fd3961af fix typo: releases --> release 2021-09-02 15:22:37 +02:00
Samuele Locatelli fc0dfd9d2e modifica yaml CiCd 2021-09-02 15:20:05 +02:00
Samuele Locatelli 9c536f41e1 fix path x recupero filkx e nexus 2021-09-02 15:07:35 +02:00
Samuele Locatelli a5ba2a0eaf fix develop install x IIS01 2021-09-02 15:02:35 +02:00
Samuele Locatelli 836c3515da ancora modifica yaml 2021-09-02 15:02:12 +02:00
Samuele Locatelli 66f4ddc340 ancora test yaml CiCd 2021-09-02 14:55:12 +02:00
Samuele Locatelli f5dec22e60 Ancora test yaml CiCd 2021-09-02 14:35:40 +02:00
Samuele Locatelli 57aa6c9af9 cambio modalità build 2021-09-02 14:23:33 +02:00
Samuele Locatelli 763caff2e4 update tag verbosity 2021-09-02 14:16:27 +02:00
Samuele Locatelli 0d74d84fd6 fix yaml syntax 2021-09-02 14:13:06 +02:00
Samuele Locatelli 221c9d9a3e Update yaml x build/install 2021-09-02 14:10:06 +02:00
Samuele Emilio Locatelli ca6f82f118 Update .gitlab-ci.yml file 2021-09-02 10:22:02 +00:00
Samuele Locatelli 2e7b8f11aa Add tag x win 2021-09-02 12:20:42 +02:00
Samuele Locatelli f1bb875ecc Versione iniziale gitlab conf 2021-09-02 12:09:39 +02:00
Samuele Locatelli 7825f8e9aa Merge branch 'feature/StatistichePre' into develop 2021-09-02 11:47:31 +02:00
Samuele Locatelli 9a8272f021 Aggiunto calcolo statistiche a fine batch 2021-09-02 11:47:22 +02:00
Samuele Locatelli 385936a167 Refresh grafico pagina dev tools 2021-09-02 11:42:13 +02:00
Samuele Locatelli 8e6a086e18 Display tempo calcolo a fine esecuzione 2021-09-02 11:18:09 +02:00
Samuele Locatelli f5fefb8070 Aggiunta button in devUtils x ricalcolo 2021-09-02 11:14:44 +02:00
Samuele Locatelli 807a6d5e45 Aggiunta metodi chiamate stored ricalcolo 2021-09-02 11:14:19 +02:00
Samuele Locatelli 97984ce39c Merge tag 'GestionePngConVersioni' into develop
Gestione stsampa BIN con immagini PNG generate con indice revisione
disegno
2021-08-20 16:15:39 +02:00
Samuele Locatelli babd52629a Merge branch 'release/GestionePngConVersioni' 2021-08-20 16:15:20 +02:00
Samuele Locatelli 1b71f76d14 update schemacompare DB 2021-08-20 16:13:13 +02:00
Samuele Locatelli e1d84b29f4 Aggiunta metodo update dati da BIN 2021-08-20 15:06:29 +02:00
Samuele Locatelli 99b2983962 refresh parziale classi x update ExtCode + Rev 2021-08-20 14:46:04 +02:00
Samuele Locatelli 8a7b4dd8a0 Merge tag 'fixEmptyRedix_NugetNLog' into develop
Fix regressione gestioen redis x valori vuoti
2021-08-19 12:12:41 +02:00
Samuele Locatelli 553f488fdf Merge branch 'release/fixEmptyRedix_NugetNLog' 2021-08-19 12:12:19 +02:00
Samuele Locatelli fed4789534 FIx-update SteamwareLibs x redis vuoto 2021-08-19 12:12:08 +02:00
Samuele Locatelli 5bbeb6817b Update NLog 2021-08-19 12:09:49 +02:00
Samuele Locatelli 15df69f9fd Merge branch 'develop' 2021-08-19 11:42:42 +02:00
Samuele Locatelli ae70999f78 Clean dll inutili 2021-08-19 11:42:30 +02:00
Samuele Locatelli 1b484df0b9 Merge tag 'updateNugetSteamWareLibs' into develop
Update librerie
2021-08-19 11:39:55 +02:00
Samuele Locatelli cc00dc0804 Merge branch 'release/updateNugetSteamWareLibs' 2021-08-19 11:39:49 +02:00
Samuele Locatelli 719968ee2b Nuget update x SteamwareLibs e setRSV 2021-08-19 11:39:01 +02:00
Samuele Locatelli 78482b4833 aggiunto cacheDataTTL in web.config 2021-08-11 16:53:21 +02:00
Samuele Locatelli da292cae17 Merge tag 'ReloadConfFix' into develop
Fix corretto lettura CRS --> ConfReadString
2021-08-11 16:01:28 +02:00
Samuele Locatelli 73cabee7ee Merge branch 'release/ReloadConfFix' 2021-08-11 16:01:18 +02:00
Samuele Locatelli 18992da8bf Fix problema lettura NKC_WFConnectionString 2021-08-11 16:00:48 +02:00
Samuele Locatelli d4eabe8edd Merge tag 'FixAppConf' into develop
Rilascio produzione (master)
2021-08-11 15:33:02 +02:00
Samuele Locatelli ba88680aa1 Merge branch 'release/FixAppConf' 2021-08-11 15:32:52 +02:00
Samuele Locatelli dff09fc549 Update x fix librerie steamwarelibs 2021-08-11 15:31:17 +02:00
Samuele Locatelli 2e24c01bd9 rimozione error page specifiche (usa Oops.. ) 2021-08-11 11:44:24 +02:00
Samuele Locatelli f60f5868ca Aumento stato sessione da 120 a 480 minuti (redis) 2021-08-11 11:43:25 +02:00
Samuele Locatelli 0c7841e8d8 Merge tag 'FixdllAndVocabolario' into develop
Fix minori vocabolario e dll inserite x errore
2021-08-11 09:09:47 +02:00
Samuele Locatelli 7571b732eb Merge branch 'release/FixdllAndVocabolario' 2021-08-11 09:09:30 +02:00
Samuele Locatelli fb610a6738 fix dll inserite in root x errore da nuget + fix vocabolario 2021-08-11 09:09:06 +02:00
Samuele Locatelli 1a28398470 review gitSpread (NON forza il master) 2021-08-11 08:58:30 +02:00
Samuele Locatelli affaccc1e5 Merge tag 'NugetUpdateSteamwareLibs' into develop
Upgrade pacchetti Nuget generico, ma in particolare le steamware libs x errore restart multiplo reload conf redis x app config
2021-08-11 08:57:27 +02:00
Samuele Locatelli fb780c3328 Merge branch 'release/NugetUpdateSteamwareLibs' 2021-08-11 08:56:47 +02:00
Samuele Locatelli 3ce630a683 refresh 2021-08-11 08:55:19 +02:00
Samuele Locatelli 2f1e11072c update nuget DNSClient 2021-08-11 08:55:14 +02:00
Samuele Locatelli 6ac8959b37 update nuget Mongo 2021-08-11 08:54:55 +02:00
Samuele Locatelli 963aa925bd refresh redis lib 2021-08-11 08:49:15 +02:00
Samuele Locatelli cfd7788f71 space refresh 2021-08-11 08:48:37 +02:00
Samuele Locatelli 2865795574 Update librerie steamware x reload conf redis 2021-08-11 08:47:51 +02:00
Samuele Locatelli 66d16ed021 piccolo check preliminare 2021-08-11 08:46:23 +02:00
Samuele Locatelli 66fc9b47a2 Merge branch 'develop' into SDK 2021-07-28 20:34:52 +02:00
Samuele Locatelli d480797945 Completato fix x reset errori stima/nesting 2021-07-28 20:34:46 +02:00
Samuele Locatelli 7bd6cc5621 Update prox risp nesting 2021-07-28 18:03:34 +02:00
Samuele Locatelli 5964fcd3d6 fix ripetizione stima post errore nesting 2021-07-28 17:27:00 +02:00
Samuele Locatelli c34e919570 Merge branch 'develop' into SDK 2021-07-28 15:53:30 +02:00
Samuele Locatelli a5ac0782fe fix x gestione PartRev 2021-07-28 15:53:22 +02:00
Samuele Locatelli 3979d88a04 Aggiunto PartRev nella risposta 2021-07-28 15:45:53 +02:00
Samuele Locatelli 09711e9d1f Merge branch 'develop' into SDK 2021-07-28 11:34:38 +02:00
Samuele Locatelli 8583246fd8 Update gestioen risposta con errori estim ext 2021-07-28 11:34:28 +02:00
Samuele Locatelli ee0c85f485 rimessa possibilità rimando stima 2021-07-28 11:33:54 +02:00
Samuele Locatelli 9987a9b532 Merge branch 'develop' into SDK 2021-07-27 16:47:21 +02:00
Samuele Locatelli 27d1ad1d40 pulizia codice 2021-07-27 16:47:16 +02:00
Samuele Locatelli d8905257b0 commentata aprte check success x processing stsatus 2021-07-27 15:19:30 +02:00
Samuele Locatelli d92cb4cb96 corretto registrazione macchina x update da PROD 2021-07-27 14:45:42 +02:00
Samuele Locatelli f9d923b1bd Redis: default DB a 2... 2021-07-27 11:45:49 +02:00
Samuele Locatelli 8da509214e Merge branch 'develop' into SDK 2021-07-27 11:00:04 +02:00
Samuele Locatelli 33bc68d712 Aggiunto refresh iniziale 2021-07-27 10:59:56 +02:00
Samuele Locatelli b3184badac Fix gestione status e semafori 2021-07-27 10:51:06 +02:00
Samuele Locatelli c74c83a372 bozza modifica status machine 2021-07-26 20:02:06 +02:00
Samuele Locatelli e365778d3c Fix gestione secscreen: aggiunto selezione impianto 2021-07-26 19:30:08 +02:00
Samuele Locatelli 219a6691da Merge branch 'develop' into SDK 2021-07-26 17:02:45 +02:00
Samuele Locatelli a4a8b57163 fix preview da order History 2021-07-26 16:44:10 +02:00
Samuele Locatelli a86beaa333 Fix procedura export xls elenco fogli 2021-07-26 16:43:59 +02:00
Samuele Locatelli 0b4c1dd974 update conf code come da setup Sauder 2021-07-23 19:20:27 +02:00
Samuele Locatelli 50ea17c0e3 fix gestione bunk x machine (non necessaria) 2021-07-23 19:09:17 +02:00
Samuele Locatelli 8f0ee0933d Fix stampa cart/bin da order scheduler 2021-07-23 15:10:00 +02:00
Samuele Locatelli 17dd24abea Fix selezione machine LOAD 2021-07-23 13:23:13 +02:00
Samuele Locatelli 04946d6173 Fix display in caso di errore del send estimation 2021-07-23 10:23:42 +02:00
Samuele Locatelli ec6b801b9f fix calcolo indice carrello 2021-07-22 12:50:03 +02:00
Samuele Locatelli 3490c08a69 FIx recupero sheetList x macchina + typo 2021-07-22 07:54:49 +02:00
Samuele Locatelli 508dbbf55f Merge branch 'develop' 2021-07-21 11:43:28 +02:00
Samuele Locatelli fc4b36ad66 Completata modifica DB x selezionare sempre la stampante corretta x CNC (print/work) 2021-07-21 11:42:25 +02:00
Samuele Locatelli b47c391c63 Aggiunto check x invio SOLOS E è stato splittato 2021-07-21 10:40:58 +02:00
Samuele Locatelli 46c9dec2a9 Merge remote-tracking branch 'gitlab.steamware/develop' into develop 2021-07-21 09:49:31 +02:00
Samuele Locatelli 3cfc4f8275 Verifica risposte nesting (scarto se incoerente) 2021-07-21 09:49:26 +02:00
Samuele E. Locatelli 385bf15d22 Aggiunta decodifica watchdog 2021-07-20 19:13:03 +02:00
Samuele E. Locatelli 6f8dc47293 inizio gestione info "live state" linea 2021-07-20 18:43:06 +02:00
Samuele E. Locatelli 432e53cd24 registro anche evento 01 alive... 2021-07-20 18:17:26 +02:00
Samuele Locatelli dafad94464 Merge branch 'develop' 2021-07-20 16:37:09 +02:00
Samuele Locatelli 9082df9146 Fix gestione stop nesting anche x child 2021-07-20 16:35:55 +02:00
Samuele Locatelli d783f65c20 TYPO + Fix salvataggio eventi (redis da svuotare) 2021-07-20 16:30:51 +02:00
Samuele Locatelli 15f30baf83 Merge branch 'develop' 2021-07-20 15:42:47 +02:00
Samuele Locatelli 0c481e5169 Update x calcolo con ordine singolo + fix cancellazione a cascata 2021-07-20 15:42:36 +02:00
Samuele Locatelli 0175841f22 Merge tag 'ManNumIndexCB' into develop
Sistemata prima versione gestione num index cart/bin
2021-07-20 08:51:09 +02:00
Samuele Locatelli b22579ca6e Merge branch 'release/ManNumIndexCB' 2021-07-20 08:50:52 +02:00
Samuele Locatelli 691ae3f123 Aggiunta gestione num indice carrello da impiegare 2021-07-20 08:48:46 +02:00
Samuele Locatelli 47b85f98b3 Fix upd messages 2021-07-20 08:11:53 +02:00
Samuele Locatelli 26234bce04 modifica gestione nesting con 2 macchine (TO TEST!!!) 2021-07-19 19:01:32 +02:00
Samuele Locatelli e7eb09e44a Merge tag 'RC_2.0' into develop
COmpletata prima RC x versione 2 con stampe differenziate
2021-07-17 11:46:01 +02:00
Samuele Locatelli 669f5d8478 Merge branch 'release/RC_2.0' 2021-07-17 11:45:46 +02:00
Samuele Locatelli ae1fd38bbb Merge branch 'feature/LabelPrintingDualMachine' into develop 2021-07-17 11:42:47 +02:00
Samuele Locatelli 00cb127ac4 Update x gestione stampe su code differenti NE01/NE02 2021-07-17 11:42:31 +02:00
Samuele Locatelli c34b0d6768 Inizio modifica pagina stampa labels 2021-07-16 19:22:09 +02:00
Samuele Locatelli ac50e00c85 Fix barra bilanciamento 2021-07-16 19:14:31 +02:00
Samuele Locatelli c6bf8db9ef Code cleanup 2021-07-16 18:56:48 +02:00
Samuele Locatelli 3e65a59ae6 Merge tag 'NewUpdMan' into develop
NUova gestione update manager
2021-07-16 18:48:45 +02:00
Samuele Locatelli e32c950df3 Merge branch 'release/NewUpdMan' 2021-07-16 18:48:32 +02:00
Samuele Locatelli 239ff07970 Update gestione UpdMan con nuova libreria e metodi 2021-07-16 18:47:50 +02:00
Samuele Locatelli daff88cfd6 Mopdifica area LAST 2021-07-16 15:14:25 +02:00
Samuele Locatelli 8a52abdeb8 Merge branch 'develop' 2021-07-16 15:12:39 +02:00
Samuele Locatelli a8f2a91b6b Inizio modifica update Man da DB 2021-07-16 15:12:29 +02:00
Samuele Locatelli 85474b9546 modifica x impiegare ultimo zip (senza LAST) 2021-07-16 12:41:17 +02:00
Samuele Locatelli 2f1d54df60 correzione gestione classifier --> BRANCH_NAME + pulizia 2021-07-16 12:24:55 +02:00
Samuele Locatelli c0fe219361 update changelog & manifest + new release set 2021-07-16 12:19:06 +02:00
Samuele Locatelli 4bf90f0527 ancora semplificazione conf 2021-07-16 12:04:28 +02:00
Samuele Locatelli 7e1db3f257 modo archive/last 2021-07-16 11:56:35 +02:00
Samuele Locatelli 40baf2b3c0 update conf nexus upload 2021-07-16 11:49:42 +02:00
Samuele Locatelli a6663ec4f2 riorganizzazione folder x versione 2021-07-16 11:43:16 +02:00
Samuele Locatelli 6961350038 cambio modalità upload 2021-07-16 11:35:32 +02:00
Samuele Locatelli 8d77cce905 ancora test deploy deveop 2021-07-16 11:30:09 +02:00
Samuele Locatelli 480571721a test altro deploy 2021-07-16 11:21:54 +02:00
Samuele Locatelli e852bc9233 update verbosity & wait parallel build 2021-07-16 10:59:12 +02:00
Samuele Locatelli a6f329c244 modifica x evitare interferenza accesso progetto SDK 2021-07-16 10:47:15 +02:00
Samuele Locatelli 19d41ef464 modifica ordine chiamate update resources 2021-07-16 10:36:35 +02:00
Samuele Locatelli ebd8e1daad branch operations stabel --> master 2021-07-16 10:01:44 +02:00
Samuele Locatelli ceddd0bbfe modifica gestione beta --> develop 2021-07-16 10:00:42 +02:00
Samuele Locatelli b158a9a02d test modifica pubblicazione NEXUS 2021-07-16 09:53:29 +02:00
Samuele Locatelli 73f2288b6a rel update 2021-07-15 15:23:05 +02:00
Samuele Locatelli c9a91e294d Refresh pagine unload e MIA post testing 2021-07-15 15:14:59 +02:00
Samuele Locatelli 49ebc94313 Fix pagina debug unload 2021-07-15 10:01:30 +02:00
Samuele Locatelli cad134fc84 Merge branch 'feature/DoppiaMacchina' into develop 2021-07-14 20:07:17 +02:00
Samuele Locatelli cdc7e5be93 Update gestione chiave PlaceCod 2021-07-14 20:07:04 +02:00
Samuele Locatelli c7152d2af9 Completamento gestione display BatchID corrente 2021-07-14 19:41:50 +02:00
Samuele Locatelli 8fcfc092dd Inizio aggiunta sel macchina in unload 2021-07-14 18:00:56 +02:00
Samuele Locatelli 7b54b4bbdc Gestione update PlaceCod 2021-07-14 13:29:32 +02:00
Samuele Locatelli c9cea2edce OK x unload con 2 macchine 2021-07-14 12:14:45 +02:00
Samuele Locatelli 2926f70bae Fix colore NE01/NE02 2021-07-14 11:34:02 +02:00
Samuele Locatelli a9ecb260fb FIx next bunk da posizione macchina! 2021-07-14 08:30:42 +02:00
Samuele Locatelli c82236f133 Fix in Load e LoadSmart x curr batch 2021-07-14 08:12:44 +02:00
Samuele Locatelli f29c419b9d Fix componente batch current 2021-07-14 07:41:30 +02:00
Samuele Locatelli dc5b3bf565 Inizio filtraggio stack da macchina 2021-07-13 18:52:53 +02:00
Samuele Locatelli ca61af9eb6 Update display orders running/scheduled 2021-07-13 18:18:16 +02:00
Samuele Locatelli f47f10f2ba new rel num 2021-07-13 17:38:29 +02:00
Samuele Locatelli 2c02f6a309 Modifica pagina load smart con amchine selection 2021-07-13 17:38:03 +02:00
Samuele Locatelli 5273f6d63a base decodifica barcode x Machine Selection 2021-07-13 17:37:53 +02:00
Samuele Locatelli 27ec011a00 update vers numb 2021-07-01 17:52:46 +02:00
Samuele Locatelli 58820465b4 Merge branch 'feature/Semafori' into develop 2021-07-01 17:51:07 +02:00
Samuele Locatelli 53fd77bb8d aggiunto try-catch x decifrare status 2021-07-01 17:50:58 +02:00
Samuele Locatelli c9128811be new rel 2021-07-01 17:07:31 +02:00
Samuele Locatelli 9e7833b06f Merge branch 'feature/ApiStats' into develop 2021-07-01 17:06:41 +02:00
Samuele Locatelli aaad4e9f3a fix comportamento semaforo 2021-07-01 17:01:11 +02:00
Samuele Locatelli 3bd0c3e8b9 ok gestione semaforo da dati REDIS 2021-07-01 16:43:53 +02:00
Samuele Locatelli aaa278f363 Merge branch 'feature/ApiStats' into develop 2021-07-01 15:35:25 +02:00
Samuele Locatelli c1f5ce18ed update simulatore x status macchine 2021-07-01 15:35:15 +02:00
Samuele Locatelli 38e553a5bd Aggiunta metodi x salvataggio statistiche su DB e redis (OK!!!) 2021-07-01 15:19:08 +02:00
Samuele Locatelli 6eae5e2e23 Merge branch 'feature/UpdateMethods' into develop 2021-06-30 18:07:02 +02:00
Samuele Locatelli d365f90072 Aggiunta scrittura su MONGO DB risposta stats di Carlo 2021-06-30 18:06:53 +02:00
Samuele Locatelli d80691ac0c visibilità da sel macchina x LOAD/UNLOAD 2021-06-30 13:04:25 +02:00
Samuele Locatelli 07cbd9f029 new rel 2021-06-30 12:41:24 +02:00
Samuele Locatelli d09668270d modifiche x gestione selezione macchina 1/2 2021-06-30 12:41:02 +02:00
Samuele Locatelli 70e2c06ae5 refresh oggetti vari 2021-06-30 12:40:51 +02:00
Samuele Locatelli 0e2646c739 Aggiunta metodi REST x update status 2021-06-30 12:40:41 +02:00
Samuele Locatelli 31fb3c5669 aggiornamento metodi bilanciamento 2021-06-30 12:40:25 +02:00
Samuele Locatelli 73eb726f73 Ok comportamento display colore button balance 2021-06-17 17:59:24 +02:00
Samuele Locatelli 5de2c6576b Merge branch 'feature/UpdateMethods' into develop 2021-06-16 15:28:48 +02:00
Samuele Locatelli 75860a164a update nuget non presenti 2021-06-16 15:28:41 +02:00
Samuele Locatelli 5e9c678a02 inizio new rel 2021-06-16 15:24:56 +02:00
Samuele Locatelli 72ff8ebe74 Merge branch 'feature/UpdateMethods' into develop 2021-06-16 15:24:33 +02:00
Samuele Locatelli 00bf555add fix procedura rebalance 2021-06-16 15:24:25 +02:00
Samuele Locatelli 0841aa5584 fix salvataggio stima ext iniziale 2021-06-16 15:24:20 +02:00
Samuele Locatelli a575a20126 Fix algoritmo ricerca step minimo 2021-06-16 15:19:46 +02:00
Samuele Locatelli 0622e8a869 NewRel 2021-06-16 13:26:09 +02:00
Samuele Locatelli 38a4a7285d Aggiunto paginazione ordini 2021-06-16 13:10:39 +02:00
Samuele Locatelli 40b6d19c79 fix check/uncheck show split 2021-06-16 13:01:35 +02:00
Samuele Locatelli 3f399a670a Fix check file path con log (maybe) 2021-06-16 13:01:20 +02:00
Samuele Locatelli ca0e20abe6 Merge branch 'feature/UpdateMethods' into develop 2021-06-16 12:19:37 +02:00
Samuele Locatelli 27b6cebf74 Update NetCore 2021-06-16 11:42:04 +02:00
Samuele Locatelli db1ed098c1 Update Json 2021-06-16 11:41:09 +02:00
Samuele Locatelli f904431560 Update bootstrap 2021-06-16 11:39:53 +02:00
Samuele Locatelli d00d963ab9 refresh 2021-06-16 11:38:13 +02:00
Samuele Locatelli 3fc4fe6f52 Update jQuery 2021-06-16 11:38:09 +02:00
Samuele Locatelli cac7d73f2d MongoDB update 2021-06-16 11:36:56 +02:00
Samuele Locatelli f56661a4d6 refresh 2021-06-16 11:35:18 +02:00
Samuele Locatelli d848f7ef6c Update compression libs 2021-06-16 11:35:13 +02:00
Samuele Locatelli 5b1e49e4b6 Update SteamWareLibs + dep 2021-06-16 11:34:25 +02:00
Samuele Locatelli 2bb26258c4 Update NLog 2021-06-16 11:32:01 +02:00
Samuele Locatelli bc81c1f557 bozza metodi udpate status macchina 2021-06-15 15:51:24 +02:00
Samuele Locatelli 79a2d249f8 new rel 2021-06-15 15:19:56 +02:00
Samuele Locatelli c716f73a91 Merge branch 'feature/NewOrderPage' into develop 2021-06-15 15:19:42 +02:00
Samuele Locatelli 2879db799b fix btn spostamento 2021-06-15 15:19:28 +02:00
Samuele Locatelli e727be5dbd fix caso 100% 2021-06-15 15:06:25 +02:00
Samuele Locatelli 6011861b24 gestione casi 0% / 100% 2021-06-15 14:52:52 +02:00
Samuele Locatelli d03bda211b fix detail split 2021-06-15 14:33:08 +02:00
Samuele Locatelli b0fe09ca05 Merge branch 'feature/NewOrderPage' into develop 2021-06-15 13:36:10 +02:00
Samuele Locatelli 29a47944bf update x visualizzaizone dettaglio 2021-06-15 13:36:01 +02:00
Samuele Locatelli 59e0f85529 new rel 2021-06-15 13:35:52 +02:00
Samuele Locatelli 503de9b769 Update pagine about/contact 2021-06-15 13:35:41 +02:00
Samuele Locatelli ce8a0fa27b Merge branch 'feature/NewOrderPage' into develop 2021-06-15 09:29:51 +02:00
Samuele Locatelli 07e7e4de09 COmpletato update btn approva/resety nesting ANC/DESC 2021-06-15 09:29:42 +02:00
Samuele Locatelli c8ff3df97b Abbozzata gestione reset nesting oltre approvazione 2021-06-14 19:39:34 +02:00
Samuele Locatelli f5c7843b92 inizio nuova release 2021-06-14 18:44:15 +02:00
Samuele Locatelli 5317d41dfa Merge branch 'feature/NewOrderPage' into develop 2021-06-14 18:43:44 +02:00
Samuele Locatelli 710f7d5e35 Completato giro update info batch detail split x ora 2021-06-14 18:43:36 +02:00
Samuele Locatelli c957b10658 Fix update status ancestor (stored) + fix display preview ancestor 2021-06-14 16:10:56 +02:00
Samuele Locatelli aa93b5883f start new rel 2021-06-14 12:58:56 +02:00
Samuele Locatelli 2b95fb8d88 Merge branch 'feature/NewOrderPage' into develop 2021-06-14 12:57:09 +02:00
Samuele Locatelli ecc7f71d10 fix condizione reset errato x split request 2021-06-14 12:56:59 +02:00
Samuele Locatelli e17be03685 new rel num 2021-06-14 12:25:09 +02:00
Samuele Locatelli eb91b21076 Merge branch 'feature/NewOrderPage' into develop 2021-06-14 12:24:50 +02:00
Samuele Locatelli 099eaebaa8 update x recupero altri BATCH splitted 2021-06-14 12:24:41 +02:00
Samuele Locatelli 769a2d8f4c start new release 2021-06-14 11:19:47 +02:00
Samuele Locatelli 9cfe9fcafd Merge branch 'feature/NewOrderPage' into develop 2021-06-14 11:19:27 +02:00
Samuele Locatelli 68fd166aea Fix assegnazione KIT a veri nuovi batch 2021-06-14 11:19:19 +02:00
Samuele Locatelli ed57cfb4c8 start new release 2021-06-14 10:03:12 +02:00
Samuele Locatelli f588cc9c92 Merge branch 'feature/NewOrderPage' into develop 2021-06-14 10:02:46 +02:00
Samuele Locatelli d31290a4f3 Aggiunto processing richieste descendant 2021-06-14 10:02:39 +02:00
Samuele Locatelli e3817cfe41 Fix display detail x casi type corretti 2021-06-14 09:04:52 +02:00
Samuele Locatelli 23b2e5fcbe Refresh visualizzazione e filtraggio 2021-06-11 19:06:53 +02:00
Samuele Locatelli 79047b4587 start new release 2021-06-11 18:24:15 +02:00
Samuele Locatelli c936cbd882 Merge branch 'feature/NewOrderPage' into develop 2021-06-11 18:22:53 +02:00
Samuele Locatelli 0783f9b463 COmpletata review grafica pagina ordini e stima/nesting 2021-06-11 18:22:44 +02:00
Samuele Locatelli 29709c0da2 Fix refresh rapido post spostamento barra 2021-06-11 17:52:00 +02:00
Samuele Locatelli ee40921196 Merge branch 'feature/NewOrderPage' into develop 2021-06-11 16:31:55 +02:00
Samuele Locatelli 42a0728e4d Update refresh 2021-06-11 16:31:45 +02:00
Samuele Locatelli 13a4b4478e Continuo pagina ordini: ok step spostamento e bilanciamento xoxo 2021-06-11 15:48:45 +02:00
Samuele Locatelli 4e47b89baf Update display da tabella (OK salvataggio e tab) 2021-06-11 14:55:29 +02:00
Samuele Locatelli 93aa27e460 new rel 2021-06-11 12:57:02 +02:00
Samuele Locatelli 82e7d4d900 Merge branch 'feature/NewOrderPage' into develop 2021-06-11 12:55:35 +02:00
Samuele Locatelli a030bd1952 update ritorno messaggio da stima... 2021-06-11 12:55:20 +02:00
Samuele Locatelli 5a570d6ad0 Algoritmo bilanciamento vers 0.3 2021-06-10 19:14:24 +02:00
Samuele Locatelli dc4601ff7e Continuo redistribuzione dati ordini 2021-06-09 19:30:55 +02:00
Samuele Locatelli ce3d27bbda Ancora update visualizzazione detail 2021-06-09 18:26:01 +02:00
Samuele Locatelli 3464a50138 fix creazione descendant su set BatchID 2021-06-09 17:53:34 +02:00
Samuele Locatelli 53d2096adc Completo aggiunta metodi comLib x descendants (cache) 2021-06-09 17:50:53 +02:00
Samuele Locatelli db42222472 Aggiunta procedura generazione descendants 2021-06-09 17:50:23 +02:00
Samuele Locatelli 4046eb92f5 Continuo costruzione split ratio 2021-06-09 15:39:47 +02:00
Samuele Locatelli a31dfe70b0 Ancora restyling grafico 2021-06-09 15:16:56 +02:00
Samuele Locatelli 082a80bd3e ancora fix gfrafici pagina batch 2021-06-09 12:01:12 +02:00
Samuele Locatelli f0ef08a41b Merge branch 'feature/NewOrderPage' into develop 2021-06-09 11:53:33 +02:00
Samuele Locatelli 5a9f3f7696 Update metodo scrittura batch 2021-06-09 11:53:16 +02:00
Samuele Locatelli 935a633275 Fix display batchlist 2021-06-09 11:03:55 +02:00
Samuele Locatelli 6ff139a9f3 Merge branch 'feature/ExtendedEstimResponse' into develop 2021-06-09 10:20:26 +02:00
Samuele Locatelli 4f8ad736e0 Aggiunte chiamate update x tempi processing 2021-06-09 10:17:33 +02:00
Samuele Locatelli d9722e0da5 Continuo update x nuova stima extended 2021-06-09 10:12:16 +02:00
Samuele Locatelli 380108f911 update vers number 2021-06-09 10:11:44 +02:00
Samuele Locatelli 3d84ddab24 Aggiunta parametro x indicare stima ext.. 2021-06-08 17:36:56 +02:00
Samuele Locatelli 341c49a2a4 Fix primo testing insomnia 2021-06-08 16:33:04 +02:00
Samuele Locatelli 3c41209baa Update insomnia 2021-06-08 16:25:57 +02:00
Samuele Locatelli b0c02c1ecc vers 392: link preview a 4h default 2021-04-21 14:07:02 +02:00
Samuele Locatelli d8c2492077 Update x gestione filtro periodo previsione produzione 2021-04-09 11:13:53 +02:00
Samuele Locatelli c359e05831 Merge branch 'develop' into SDK 2021-04-07 14:47:04 +02:00
Samuele Locatelli 74d6656eb9 aggiunta modulo gestione statistiche scarico previste 2021-04-07 14:46:54 +02:00
Samuele Locatelli 55c9252e49 add chartjs 2021-04-07 14:46:43 +02:00
Samuele Locatelli 43abc4ab25 start new release 2021-04-07 14:46:22 +02:00
Samuele E. Locatelli f9c4d80cde Merge branch 'develop' into SDK 2021-03-02 11:02:58 +01:00
Samuele E. Locatelli 8aec006422 new rel 2021-03-02 11:02:45 +01:00
Samuele E. Locatelli 3066432c94 fix controlllo path pdf x UNC + timeout ping 2021-03-02 11:02:37 +01:00
Samuele E. Locatelli f5d2a9ca75 Merge branch 'develop' into SDK 2021-03-01 19:48:52 +01:00
Samuele E. Locatelli 517826de77 new rel 2021-03-01 19:48:46 +01:00
Samuele E. Locatelli 5aee27b18a Modifica x gestione validazione PDF (2test!) 2021-03-01 19:48:42 +01:00
Samuele E. Locatelli 7980ed777d Merge branch 'develop' into SDK 2021-02-08 18:57:17 +01:00
Samuele E. Locatelli b0ee9fd4d6 ancora fix dll 2021-02-08 18:57:06 +01:00
Samuele E. Locatelli 18140239d5 fix dll dependency e git inclusion 2021-02-08 18:57:01 +01:00
Samuele E. Locatelli 90b28bca07 Merge branch 'develop' into SDK 2021-02-08 18:51:18 +01:00
Samuele E. Locatelli 55a9178cfc Completo update + consol nuget aggiornabili 2021-02-08 18:51:10 +01:00
Samuele E. Locatelli eefae8438c Ancora pacchetti nuget 2021-02-08 18:39:57 +01:00
Samuele E. Locatelli 2634d30f03 refresh libs nuget + fix nuove libs 2021-02-08 18:35:51 +01:00
Samuele E. Locatelli 72a7d3dd81 update steamware loggers 2021-02-08 18:30:14 +01:00
Samuele E. Locatelli e82e7658f1 update mongo nupkg + compress 2021-02-08 18:29:24 +01:00
Samuele E. Locatelli bc2e9f236c update bootstrap 4.5.3 2021-02-08 18:26:32 +01:00
Samuele E. Locatelli f54b160964 Update Nlog nuget 2021-02-08 18:25:34 +01:00
Samuele E. Locatelli fd1b543a85 update packages vari 2021-02-08 18:24:49 +01:00
Samuele E. Locatelli 94da67d890 update stored x report 2021-02-08 18:24:36 +01:00
Samuele E. Locatelli a36ab75169 refresh footer + home 2021-02-08 18:24:00 +01:00
Samuele E. Locatelli 6f31c0f3d2 new rel 2021-02-08 18:22:59 +01:00
Samuele E. Locatelli f391968e21 Merge branch 'develop' into SDK 2020-11-27 10:30:07 +01:00
Samuele E. Locatelli 7fe834f83e fix gitSpread 2020-11-27 10:29:54 +01:00
Samuele E. Locatelli 9932206f9f new rel 2020-11-27 10:29:13 +01:00
Samuele E. Locatelli 38e4d7e94a inserito parametro conf x tipo validazione e MaxTime 2020-11-27 10:27:48 +01:00
Samuele E. Locatelli 7f929676b6 fix x invio MaxTime a 1 x validazioni 2020-11-27 10:26:20 +01:00
Samuele E. Locatelli 603cf097c9 udpate vers gitSpread 2020-11-26 19:08:37 +01:00
Samuele E. Locatelli 0b05415b47 new rel 386 2020-11-26 19:07:55 +01:00
Samuele E. Locatelli 115aa90029 Merge branch 'SDK' into develop 2020-11-26 19:05:50 +01:00
Samuele E. Locatelli 2560400d66 Merge branch 'develop' into SDK 2020-11-26 19:05:40 +01:00
Samuele E. Locatelli 0af4a73faa aggiunto gitSpread 2020-11-26 19:05:36 +01:00
Samuele E. Locatelli 32aeb0350f Aggiunto history x tutti i batch di nesting (da testare) 2020-11-26 19:03:09 +01:00
Samuele E. Locatelli b7a92f464a Merge branch 'develop' into SDK 2020-11-26 18:08:16 +01:00
Samuele E. Locatelli 2ca07f1882 new rel 385 2020-11-26 18:08:09 +01:00
Samuele E. Locatelli bf856bcf05 fix gestione errori 2020-11-26 18:07:58 +01:00
Samuele E. Locatelli 752ef12bcf Fix display FILE valid 2020-11-26 17:13:17 +01:00
Samuele E. Locatelli b064d587cf Completamento giro di validazione TEST DXF 2020-11-26 16:12:41 +01:00
Samuele E. Locatelli 760b1bc764 fix upload file 2020-11-26 12:26:02 +01:00
Samuele E. Locatelli f2949a0b34 refresh 2020-11-26 12:08:37 +01:00
Samuele E. Locatelli 58b20d2e6e update proprietà x .csv 2020-11-26 12:08:33 +01:00
Samuele E. Locatelli c98e2ee71f modifiche fileUpload x gestione dxf oltre a csv 2020-11-26 12:08:19 +01:00
Samuele E. Locatelli e73bfdf618 add iniziale pagine nuove 2020-11-26 12:07:54 +01:00
Samuele E. Locatelli e72bfbabad inizio vers 1.3 2020-11-26 10:34:40 +01:00
Samuele E. Locatelli 0fd505519f fix config elmah x MP/IO 2020-11-18 14:50:04 +01:00
Samuele E. Locatelli b4ebc1b680 Merge branch 'develop' into SDK 2020-10-28 16:02:00 +01:00
Samuele E. Locatelli 6f3e43bb77 new rel 2020-10-28 16:01:50 +01:00
Samuele E. Locatelli e1a05e7718 Typo + minor fix on PartMIA setup 2020-10-28 16:01:37 +01:00
Samuele E. Locatelli 65ae8fc4cd Merge branch 'develop' into SDK 2020-10-22 17:20:28 +02:00
Samuele E. Locatelli 6c928ac03c Aggiunta conf specifica x IIS02 2020-10-22 17:20:19 +02:00
Samuele E. Locatelli 8b53913c8c new graph test fix 2020-10-22 17:12:40 +02:00
Samuele E. Locatelli 820c000fea Merge branch 'develop' into stable 2020-10-22 17:02:55 +02:00
Samuele E. Locatelli d92de63c21 New release 378 2020-10-22 17:02:49 +02:00
Samuele E. Locatelli 83df86549b Merge branch 'develop' 2020-10-22 16:59:09 +02:00
Samuele E. Locatelli 8dc507640f fix master 2020-10-22 16:58:59 +02:00
Samuele E. Locatelli bfedc667e1 Graph fix x KITTING 2020-10-22 16:58:15 +02:00
539 changed files with 153246 additions and 13625 deletions
+3
View File
@@ -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
View File
@@ -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.0'
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
rules:
- if: '$CI_COMMIT_BRANCH == "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
rules:
- if: '$CI_COMMIT_BRANCH == "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=W2019-IIS-Dev.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
# rules:
# - if: '$CI_COMMIT_BRANCH == "master"'
# when: manual
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/
+86 -41
View File
@@ -42,20 +42,23 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</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>
<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="DnsClient, Version=1.5.0.0, Culture=neutral, PublicKeyToken=4574bb5573c51424, processorArchitecture=MSIL">
<HintPath>..\packages\DnsClient.1.5.0\lib\net45\DnsClient.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="ICSharpCode.SharpZipLib, Version=1.3.3.11, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
<HintPath>..\packages\SharpZipLib.1.3.3\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.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 +72,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.13.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Bson.2.13.3\lib\net452\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.13.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Driver.2.13.3\lib\net452\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.13.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Driver.Core.2.13.3\lib\net452\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.3.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Libmongocrypt.1.3.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.1\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>
<HintPath>..\packages\NLog.4.7.12\lib\net45\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 +97,55 @@
<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.0\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.30.1.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL">
<HintPath>..\packages\SharpCompress.0.30.1\lib\net461\SharpCompress.dll</HintPath>
</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>
<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.2.88\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.1.2109.1716, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.5.1.2109.1716\lib\net462\SteamWare.dll</HintPath>
</Reference>
<Reference Include="SteamWare.Logger, Version=5.1.2109.1716, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.Logger.5.1.2109.1716\lib\net462\SteamWare.Logger.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=5.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.5.0.1\lib\net461\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.IO.Pipelines, Version=5.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll</HintPath>
</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>
<HintPath>..\packages\System.Memory.4.5.4\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=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\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,21 +153,46 @@
<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=5.0.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Pkcs.5.0.1\lib\net461\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=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Encoding.CodePages.5.0.0\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Channels, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Channels.5.0.0\lib\net461\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" />
</ItemGroup>
<ItemGroup>
@@ -175,6 +215,7 @@
<DependentUpon>DS_Report.xsd</DependentUpon>
</Compile>
<Compile Include="Enum.cs" />
<Compile Include="Objects.cs" />
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
@@ -230,16 +271,20 @@
<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" />
<Content Include="Core\Compression\Snappy\lib\win\snappy32.dll" />
<Content Include="Core\Compression\Snappy\lib\win\snappy64.dll" />
<Content Include="Core\Compression\Zstandard\lib\win\libzstd.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.3.0\build\MongoDB.Libmongocrypt.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MongoDB.Libmongocrypt.1.3.0\build\MongoDB.Libmongocrypt.targets'))" />
<Error Condition="!Exists('..\packages\MongoDB.Driver.Core.2.13.3\build\MongoDB.Driver.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MongoDB.Driver.Core.2.13.3\build\MongoDB.Driver.Core.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.3.0\build\MongoDB.Libmongocrypt.targets" Condition="Exists('..\packages\MongoDB.Libmongocrypt.1.3.0\build\MongoDB.Libmongocrypt.targets')" />
<Import Project="..\packages\MongoDB.Driver.Core.2.13.3\build\MongoDB.Driver.Core.targets" Condition="Exists('..\packages\MongoDB.Driver.Core.2.13.3\build\MongoDB.Driver.Core.targets')" />
</Project>
+2886 -1908
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
+9354 -1707
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -4,6 +4,9 @@
partial class DS_App
{
partial class SheetsPreviewDataTable
{
}
}
}
+1174 -162
View File
File diff suppressed because it is too large Load Diff
+110 -97
View File
@@ -4,187 +4,200 @@
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="435" ViewPortY="308" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="209" ViewPortY="1609" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:BatchList" ZOrder="16" X="291" Y="375" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:StackList" ZOrder="15" X="584" Y="890" Height="381" Width="268" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:SheetList" ZOrder="21" X="254" Y="840" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:OrderList" ZOrder="39" X="352" Y="29" Height="343" Width="198" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:BatchReqList" ZOrder="48" X="101" Y="100" Height="115" Width="220" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:ItemList" ZOrder="31" X="861" Y="19" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Materials" ZOrder="46" X="1197" Y="37" Height="248" Width="198" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:Bins" ZOrder="1" X="1265" Y="529" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Carts" ZOrder="25" X="600" Y="340" Height="286" Width="204" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:OfflineOrderList" ZOrder="4" X="929" Y="866" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:OffOrd2Item" ZOrder="44" X="1031" Y="660" Height="134" Width="219" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:KitList" ZOrder="42" X="612" Y="30" Height="248" Width="194" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:Nesting" ZOrder="33" X="871" Y="458" Height="153" Width="228" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:ImportLog" ZOrder="7" X="601" Y="633" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:BinList" ZOrder="36" X="1264" Y="323" Height="134" Width="216" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:FinalKit" ZOrder="18" X="23" Y="457" Height="172" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:Order2FinalKit" ZOrder="30" X="13" Y="240" Height="134" Width="234" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:Counters" ZOrder="27" X="16" Y="706" Height="172" Width="196" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:ErrorsLog" ZOrder="26" X="-6" Y="928" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:ItemValidation" ZOrder="20" X="-2" Y="1233" Height="172" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:PartValidPareto" ZOrder="19" X="324" Y="1235" Height="153" Width="236" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:UnloadStats" ZOrder="17" X="637" Y="1294" Height="172" Width="215" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:Remnants" ZOrder="24" X="912" Y="1188" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:CartOnKit" ZOrder="23" X="1259" Y="925" Height="324" Width="202" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:PackList" ZOrder="11" X="1256" Y="1251" Height="362" Width="297" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:OtherItem" ZOrder="22" X="644" Y="1754" Height="210" Width="204" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:ItemSearchDetail" ZOrder="3" X="1476" Y="37" Height="381" Width="244" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:PackListDet" ZOrder="14" X="939" Y="1452" Height="343" Width="229" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:PackLog" ZOrder="13" X="1232" Y="1683" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:PackCheck" ZOrder="12" X="644" Y="1492" Height="229" Width="206" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:OKIB" ZOrder="10" X="41" Y="1425" Height="324" Width="220" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:OKIB_Sum" ZOrder="9" X="50" Y="1823" Height="362" Width="220" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:OKOI" ZOrder="6" X="342" Y="1417" Height="324" Width="246" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:OKOI_sum" ZOrder="5" X="338" Y="1822" Height="362" Width="246" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Pack2Cart" ZOrder="8" X="919" Y="1805" Height="286" Width="203" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:CartIRK" ZOrder="2" X="648" Y="1996" Height="305" Width="188" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:BatchList" ZOrder="6" X="325" Y="437" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:StackList" ZOrder="7" X="618" Y="961" Height="381" Width="268" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:SheetList" ZOrder="4" X="300" Y="824" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:OrderList" ZOrder="17" X="284" Y="61" Height="343" Width="198" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:ItemList" ZOrder="46" X="853" Y="87" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Materials" ZOrder="45" X="1189" Y="105" Height="248" Width="198" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:Bins" ZOrder="15" X="1257" Y="597" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Carts" ZOrder="44" X="592" Y="408" Height="286" Width="204" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:OfflineOrderList" ZOrder="43" X="921" Y="934" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:OffOrd2Item" ZOrder="42" X="1023" Y="728" Height="134" Width="219" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:KitList" ZOrder="16" X="634" Y="129" Height="248" Width="194" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:Nesting" ZOrder="41" X="863" Y="526" Height="153" Width="228" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:ImportLog" ZOrder="40" X="593" Y="701" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:BinList" ZOrder="39" X="1256" Y="391" Height="134" Width="216" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:FinalKit" ZOrder="38" X="15" Y="525" Height="172" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:Order2FinalKit" ZOrder="37" X="5" Y="308" Height="134" Width="234" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:Counters" ZOrder="36" X="-12" Y="716" Height="172" Width="196" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:ErrorsLog" ZOrder="35" X="-14" Y="996" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:ItemValidation" ZOrder="34" X="-10" Y="1301" Height="172" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:PartValidPareto" ZOrder="33" X="316" Y="1303" Height="153" Width="236" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:UnloadStats" ZOrder="32" X="629" Y="1362" Height="172" Width="215" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:Remnants" ZOrder="31" X="904" Y="1256" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:CartOnKit" ZOrder="30" X="1251" Y="993" Height="324" Width="202" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:PackList" ZOrder="29" X="1248" Y="1319" Height="362" Width="297" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:OtherItem" ZOrder="28" X="636" Y="1822" Height="210" Width="204" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:ItemSearchDetail" ZOrder="27" X="1468" Y="105" Height="381" Width="244" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:PackListDet" ZOrder="26" X="931" Y="1520" Height="343" Width="229" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:PackLog" ZOrder="25" X="1224" Y="1751" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:PackCheck" ZOrder="24" X="636" Y="1560" Height="229" Width="206" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:OKIB" ZOrder="23" X="33" Y="1493" Height="324" Width="220" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:OKIB_Sum" ZOrder="22" X="42" Y="1891" Height="362" Width="220" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:OKOI" ZOrder="21" X="334" Y="1485" Height="324" Width="246" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:OKOI_sum" ZOrder="20" X="330" Y="1890" Height="362" Width="246" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Pack2Cart" ZOrder="10" X="911" Y="1873" Height="286" Width="203" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:CartIRK" ZOrder="19" X="640" Y="2064" Height="305" Width="188" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:FileValidation" ZOrder="14" X="499" Y="-21" Height="191" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:SheetsPreview" ZOrder="18" X="65" Y="839" Height="210" Width="228" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:OrderListTree" ZOrder="13" X="3" Y="-43" Height="343" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:Places" ZOrder="8" X="862" Y="2175" Height="172" Width="180" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:StatusLog" ZOrder="11" X="1116" Y="2180" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:StatusDecode" ZOrder="9" X="849" Y="2353" Height="172" Width="224" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:UpdMan" ZOrder="5" X="636" Y="2374" Height="191" Width="195" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:SheetStats" ZOrder="3" X="20" Y="2307" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:BatchStats" ZOrder="2" X="369" Y="2276" Height="305" Width="206" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:ProductionStatsDay" ZOrder="1" X="870" Y="2556" Height="267" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
</Shapes>
<Connectors>
<Connector ID="DesignRelation:FK_BatchReqList_OrderList" ZOrder="47" LineWidth="11">
<Connector ID="DesignRelation:FK_ItemList_Materials1" ZOrder="57" LineWidth="11">
<RoutePoints>
<Point>
<X>352</X>
<Y>144</Y>
<X>1189</X>
<Y>282</Y>
</Point>
<Point>
<X>321</X>
<Y>144</Y>
<X>1153</X>
<Y>282</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_ItemList_Materials1" ZOrder="45" LineWidth="11">
<Connector ID="DesignRelation:FK_OffOrd2Item_OfflineOrderList" ZOrder="56" 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="55" LineWidth="11">
<RoutePoints>
<Point>
<X>1044</X>
<Y>866</Y>
<X>828</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="54" 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="52" 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="53" 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="49" 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="51" 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="50" 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="48" 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="47" 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="12" 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>
+747 -64
View File
File diff suppressed because it is too large Load Diff
+59 -2
View File
@@ -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" />
@@ -487,6 +487,29 @@ 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>
</Tables>
<Sources />
</DataSource>
@@ -953,6 +976,40 @@ SELECT codPostazione, stampante, note FROM ElencoPostazioni WHERE (codPostazione
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="stp_prt_Remnant" msprop:Generator_TableClassName="stp_prt_RemnantDataTable" msprop:Generator_TableVarName="tablestp_prt_Remnant" msprop:Generator_TablePropName="stp_prt_Remnant" msprop:Generator_RowDeletingName="stp_prt_RemnantRowDeleting" msprop:Generator_RowChangingName="stp_prt_RemnantRowChanging" msprop:Generator_RowEvHandlerName="stp_prt_RemnantRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_prt_RemnantRowDeleted" msprop:Generator_UserTableName="stp_prt_Remnant" msprop:Generator_RowChangedName="stp_prt_RemnantRowChanged" msprop:Generator_RowEvArgName="stp_prt_RemnantRowChangeEvent" msprop:Generator_RowClassName="stp_prt_RemnantRow">
<xs:complexType>
<xs:sequence>
<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: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_ColumnVarNameInTable="columnCodRemnant" msprop:Generator_ColumnPropNameInRow="CodRemnant" msprop:Generator_ColumnPropNameInTable="CodRemnantColumn" msprop:Generator_UserColumnName="CodRemnant" 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_ColumnVarNameInTable="columnDescRemnant01" msprop:Generator_ColumnPropNameInRow="DescRemnant01" msprop:Generator_ColumnPropNameInTable="DescRemnant01Column" msprop:Generator_UserColumnName="DescRemnant01" 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_ColumnVarNameInTable="columnDescRemnant02" msprop:Generator_ColumnPropNameInRow="DescRemnant02" msprop:Generator_ColumnPropNameInTable="DescRemnant02Column" msprop:Generator_UserColumnName="DescRemnant02" 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:choice>
</xs:complexType>
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
+12 -11
View File
@@ -4,18 +4,19 @@
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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="-10" 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="6" X="279" Y="642" Height="229" Width="249" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:PrintJobQueue" ZOrder="11" X="432" Y="94" Height="400" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:ElencoPostazioni" ZOrder="10" 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="5" 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="9" 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="8" 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="7" 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="4" 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="3" 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="2" 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="1" X="869" Y="312" Height="153" Width="245" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
</Shapes>
<Connectors />
</DiagramLayout>
+43 -5
View File
@@ -12,12 +12,15 @@ namespace AppData
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;
@@ -31,10 +34,12 @@ namespace AppData
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.PackCheckTableAdapter taPLC;
public DS_AppTableAdapters.PackListDetTableAdapter taPLD;
public DS_AppTableAdapters.PackLogTableAdapter taPLog;
@@ -49,8 +54,13 @@ namespace AppData
public DS_ReportTableAdapters.stp_prt_OtherPartTableAdapter taRepOtherPart;
public DS_ReportTableAdapters.stp_prt_PartTableAdapter taRepPart;
public DS_AppTableAdapters.SheetListTableAdapter taSHL;
public DS_AppTableAdapters.SheetStatsTableAdapter taShStats;
public DS_AppTableAdapters.SheetsPreviewTableAdapter taSP;
public DS_AppTableAdapters.StatusDecodeTableAdapter taStatDec;
public DS_AppTableAdapters.StatusLogTableAdapter taStatLog;
public DS_AppTableAdapters.StackListTableAdapter taSTL;
public DS_AppTableAdapters.UnloadStatsTableAdapter taUS;
public DS_AppTableAdapters.UpdManTableAdapter taUpdMan;
public DS_AppTableAdapters.UnloadStatsTableAdapter taUStat;
#endregion Public Fields
@@ -153,11 +163,14 @@ namespace AppData
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();
@@ -172,15 +185,20 @@ namespace AppData
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();
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();
taElPos = new DS_ReportTableAdapters.ElencoPostazioniTableAdapter();
taPJQ = new DS_ReportTableAdapters.PrintJobQueueTableAdapter();
taRepBin = new DS_ReportTableAdapters.stp_prt_BinTableAdapter();
@@ -191,20 +209,25 @@ namespace AppData
taRepOtherPart = new DS_ReportTableAdapters.stp_prt_OtherPartTableAdapter();
taRepIRK = new DS_ReportTableAdapters.stp_prt_IRKTableAdapter();
taRepIRKSum = new DS_ReportTableAdapters.stp_prt_IRK_SumTableAdapter();
taUS = new DS_AppTableAdapters.UnloadStatsTableAdapter();
taShStats = new DS_AppTableAdapters.SheetStatsTableAdapter();
taUpdMan = new DS_AppTableAdapters.UpdManTableAdapter();
taUStat = new DS_AppTableAdapters.UnloadStatsTableAdapter();
}
private void setupConnString()
{
string connString = memLayer.ML.CRS("NKC_WFConnectionString");
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;
@@ -219,15 +242,20 @@ namespace AppData
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;
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;
taElPos.Connection.ConnectionString = connString;
taPJQ.Connection.ConnectionString = connString;
taRepBin.Connection.ConnectionString = connString;
@@ -238,7 +266,9 @@ namespace AppData
taRepOtherPart.Connection.ConnectionString = connString;
taRepIRK.Connection.ConnectionString = connString;
taRepIRKSum.Connection.ConnectionString = connString;
taUS.Connection.ConnectionString = connString;
taShStats.Connection.ConnectionString = connString;
taUStat.Connection.ConnectionString = connString;
taUpdMan.Connection.ConnectionString = connString;
}
#endregion Private Methods
@@ -335,6 +365,14 @@ 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}";
}
return answ;
}
@@ -447,7 +485,7 @@ namespace AppData
if (!trovato)
{
// se non trovo leggo
answ = taUS.GetData(BatchID, StatLevel);
answ = taUStat.GetData(BatchID, StatLevel);
rawData = JsonConvert.SerializeObject(answ);
// salvo in redis
memLayer.ML.setRSV(redKey, rawData, cacheDataTTL);
+40 -9
View File
@@ -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
}
}
+96
View File
@@ -0,0 +1,96 @@
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
}
}
+7 -7
View File
@@ -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", "16.10.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")]
public string Sauder_NKCConnectionString {
get {
return ((string)(this["Sauder_NKCConnectionString"]));
+2 -2
View File
@@ -5,10 +5,10 @@
<Setting Name="Sauder_NKCConnectionString" Type="(Connection string)" Scope="Application">
<DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
&lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
&lt;ConnectionString&gt;Data Source=10.74.82.14;Initial Catalog=Sauder_NKC;Persist Security Info=True;User ID=conn_NKC;Password=pwd_NKC&lt;/ConnectionString&gt;
&lt;ConnectionString&gt;Data Source=SQL2016DEV;Initial Catalog=Sauder_NKC;Persist Security Info=True;User ID=sa;Password=keyhammer16&lt;/ConnectionString&gt;
&lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
&lt;/SerializableConnectionString&gt;</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</Value>
</Setting>
</Settings>
</SettingsFile>
+40 -23
View File
@@ -1,31 +1,48 @@
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)
{
logger.lg.scriviLog($"{ComLib.traduci("UtilsErrorMapPath")}:{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
}
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
}
}
}
}
+69 -45
View File
@@ -1,48 +1,72 @@
<?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" 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-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.1" newVersion="5.0.0.1" />
</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.30.1.0" newVersion="0.30.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DnsClient" publicKeyToken="4574bb5573c51424" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.0.0" newVersion="1.5.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-5.0.0.1" newVersion="5.0.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.3.11" newVersion="1.3.3.11" />
</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>
</assemblyBinding>
</runtime>
</configuration>
Binary file not shown.
+33 -22
View File
@@ -1,33 +1,44 @@
<?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="AIM" version="1.1.0" targetFramework="net462" />
<package id="AjaxControlToolkit" version="20.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="DnsClient" version="1.5.0" targetFramework="net462" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="5.0.0" targetFramework="net462" />
<package id="Microsoft.NETCore.Platforms" version="5.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.13.3" targetFramework="net462" />
<package id="MongoDB.Driver" version="2.13.3" targetFramework="net462" />
<package id="MongoDB.Driver.Core" version="2.13.3" targetFramework="net462" />
<package id="MongoDB.Libmongocrypt" version="1.3.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.1" targetFramework="net462" />
<package id="NLog" version="4.7.12" 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="Pipelines.Sockets.Unofficial" version="2.2.0" targetFramework="net462" />
<package id="SharpCompress" version="0.30.1" targetFramework="net462" />
<package id="SharpZipLib" version="1.3.3" 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="StackExchange.Redis" version="2.2.88" targetFramework="net462" />
<package id="SteamWare" version="5.1.2109.1716" targetFramework="net462" />
<package id="SteamWare.Logger" version="5.1.2109.1716" targetFramework="net462" />
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
<package id="System.Diagnostics.PerformanceCounter" version="5.0.1" targetFramework="net462" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
<package id="System.IO.Pipelines" version="5.0.1" targetFramework="net462" />
<package id="System.Memory" version="4.5.4" 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="5.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="5.0.1" 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="5.0.0" targetFramework="net462" />
<package id="System.Threading.Channels" version="5.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" />
</packages>
+258 -201
View File
@@ -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,223 @@ 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;
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)
{
logger.lg.scriviLog(String.Format("Impostazioni non valide per la stampante \"{0}\".", printerName), tipoLog.ERROR);
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) 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>
/// 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,35 +321,43 @@ 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)));
@@ -259,35 +373,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)
{
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);
}
}
/// <summary>
/// effettua la stampa del cartellino indicato
/// </summary>
@@ -402,34 +519,42 @@ 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.docStack:
tipo = "docStack";
report = reportRichiesto.bunkGroup;
break;
default:
break;
}
@@ -468,79 +593,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
}
}
}
+89 -4
View File
@@ -3,12 +3,12 @@
<Version>10</Version>
<SourceModelProvider>
<ConnectionBasedModelProvider>
<ConnectionString>Data Source=SQL2016DEV;Initial Catalog=Sauder_NKC;Persist Security Info=True;User ID=sa;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False</ConnectionString>
<ConnectionString>Data Source=SQL2016DEV;Initial Catalog=Sauder_NKC;Integrated Security=True;Persist Security Info=False;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False</ConnectionString>
</ConnectionBasedModelProvider>
</SourceModelProvider>
<TargetModelProvider>
<ConnectionBasedModelProvider>
<ConnectionString>Data Source=SQL2016PROD;Initial Catalog=Sauder_NKC_Prod;Persist Security Info=True;User ID=sa;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False</ConnectionString>
<ConnectionString>Data Source=SQL2016PROD;Initial Catalog=Sauder_NKC2_Prod;Integrated Security=True;Persist Security Info=False;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False</ConnectionString>
</ConnectionBasedModelProvider>
</TargetModelProvider>
<SchemaCompareSettingsService>
@@ -35,6 +35,10 @@
<Name>BackupDatabaseBeforeChanges</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>IgnoreIndexesStatisticsOnEnclaveEnabledColumns</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>BlockOnPossibleDataLoss</Name>
<Value>True</Value>
@@ -63,6 +67,10 @@
<Name>DisableAndReenableDdlTriggers</Name>
<Value>True</Value>
</PropertyElementName>
<PropertyElementName>
<Name>DisableIndexesForDataPhase</Name>
<Value>True</Value>
</PropertyElementName>
<PropertyElementName>
<Name>DoNotAlterChangeDataCaptureObjects</Name>
<Value>True</Value>
@@ -107,6 +115,10 @@
<Name>GenerateSmartDefaults</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>HashObjectNamesInLogs</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>IgnoreDdlTriggerOrder</Name>
<Value>False</Value>
@@ -267,10 +279,22 @@
<Name>PopulateFilesOnFileGroups</Name>
<Value>True</Value>
</PropertyElementName>
<PropertyElementName>
<Name>PreserveIdentityLastValues</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>RegisterDataTierApplication</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>RebuildIndexesOfflineForDataPhase</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>RestoreSequenceCurrentValue</Name>
<Value>True</Value>
</PropertyElementName>
<PropertyElementName>
<Name>ScriptDatabaseCollation</Name>
<Value>False</Value>
@@ -301,11 +325,11 @@
</PropertyElementName>
<PropertyElementName>
<Name>TargetDatabaseName</Name>
<Value>Sauder_NKC_Prod</Value>
<Value>Sauder_NKC2_Prod</Value>
</PropertyElementName>
<PropertyElementName>
<Name>TargetConnectionString</Name>
<Value>Data Source=SQL2016PROD;Initial Catalog=Sauder_NKC_Prod;Persist Security Info=True;User ID=sa;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False;Application Name="Microsoft SQL Server Data Tools, Schema Compare"</Value>
<Value>Data Source=SQL2016PROD;Initial Catalog=Sauder_NKC2_Prod;Integrated Security=True;Persist Security Info=False;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False;Application Name="Microsoft SQL Server Data Tools, Schema Compare"</Value>
</PropertyElementName>
<PropertyElementName>
<Name>TreatVerificationErrorsAsWarnings</Name>
@@ -331,6 +355,10 @@
<Name>AllowDropBlockingAssemblies</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>DoNotEvaluateSqlCmdVariables</Name>
<Value>True</Value>
</PropertyElementName>
<PropertyElementName>
<Name>DoNotDropAggregates</Name>
<Value>False</Value>
@@ -399,6 +427,22 @@
<Name>DoNotDropDatabaseTriggers</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>IgnoreDatabaseWorkloadGroups</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>DoNotDropDatabaseWorkloadGroups</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>IgnoreWorkloadClassifiers</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>DoNotDropWorkloadClassifiers</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>DoNotDropDefaults</Name>
<Value>False</Value>
@@ -431,10 +475,18 @@
<Name>DoNotDropExternalFileFormats</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>DoNotDropExternalStreamingJobs</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>DoNotDropExternalTables</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>DoNotDropExternalStreams</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>DoNotDropFilegroups</Name>
<Value>False</Value>
@@ -675,10 +727,18 @@
<Name>ExcludeExternalFileFormats</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>ExcludeExternalStreamingJobs</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>ExcludeExternalTables</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>ExcludeExternalStreams</Name>
<Value>False</Value>
</PropertyElementName>
<PropertyElementName>
<Name>ExcludeEventSessions</Name>
<Value>True</Value>
@@ -943,5 +1003,30 @@
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlUser, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>conn_NKC</Name>
</SelectedItem>
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlTable, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>dbo</Name>
<Name>ControlloDefrag</Name>
</SelectedItem>
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlExtendedProperty, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>SqlTableBase</Name>
<Name>dbo</Name>
<Name>ControlloDefrag</Name>
<Name>Note</Name>
</SelectedItem>
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlTable, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>dbo</Name>
<Name>BatchReqList_OLD</Name>
</SelectedItem>
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlExtendedProperty, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>SqlColumn</Name>
<Name>dbo</Name>
<Name>BatchReqList_OLD</Name>
<Name>OrdID</Name>
<Name>MS_Description</Name>
</SelectedItem>
<SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlPrimaryKeyConstraint, Microsoft.Data.Tools.Schema.Sql, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>dbo</Name>
<Name>PK_BatchReqList</Name>
</SelectedItem>
</ExcludedTargetElements>
</SchemaComparison>
Vendored
+73 -65
View File
@@ -11,12 +11,9 @@ pipeline {
steps {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
withEnv(['NEXT_BUILD_NUMBER=377']) {
// 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'
}
env.versionNumber = VersionNumber(versionNumberString : '2.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILD_DATE_FORMATTED, "ddHH"}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.versionNumberdevelop = VersionNumber(versionNumberString : '2.0.${BUILD_DATE_FORMATTED, "yyMM"}-develop.${BUILD_DATE_FORMATTED, "ddHH"}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.APP_NAME = 'NKC'
}
script {
currentBuild.displayName = "${env.versionNumber}"
@@ -47,7 +44,7 @@ pipeline {
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"
bat "\"${tool 'MSBuild-16.0'}\" NKC_WF/NKC_WF.csproj -target:Build /p:Configuration=Release /p:Platform=\"Any CPU\" /p:OutputPath=bin/ /p:verbosity=minimal /m"
},
failFast: false)
}
@@ -74,7 +71,7 @@ pipeline {
{
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"
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=IIS02 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ /p:verbosity=minimal NKC_WF/NKC_WF.csproj"
sleep 3
}
},
@@ -87,7 +84,7 @@ pipeline {
{
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"
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/ /p:verbosity=minimal NKC_WF/NKC_WF.csproj"
sleep 1
}
},
@@ -112,51 +109,69 @@ pipeline {
}
// 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 = ""
}
/* compilo installers SOLO master / develop */
if (env.BRANCH_NAME == "master" || env.BRANCH_NAME.contains("develop") ) {
parallel (
SITE_NKC: {
NKC_UPLOAD: {
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!
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/ /p:verbosity=minimal NKC_WF/NKC_WF.csproj"
setManifestFile("NKC_WF\\", "NKC")
// ---------- Upload versione 0 ----------
nexusArtifactUploader (
artifacts: [
[
artifactId: 'LAST',
classifier: '',
file: "NKC_WF\\Resources\\manifest.xml",
type: 'xml'
],
[
artifactId: 'LAST',
classifier: '',
file: "NKC_WF\\Resources\\ChangeLog.html",
type: 'html'
]
]
,credentialsId: 'bc9d8e92-4302-3266-817f-7b58501d12d5'
,nexusUrl: 'nexus.steamware.net'
,nexusVersion: 'nexus3'
,protocol: 'http'
,repository: 'SWS'
,groupId: "NKC.${env.BRANCH_NAME}"
,version: ""
)
// ---------- Upload versione effettiva ----------
publishToDeployServer("NKC_WF\\", "c:\\inetpub\\wwwroot\\SWS\\", "NKC")
nexusArtifactUploader (
artifacts: [
[
artifactId: 'NKC',
classifier: "${env.classifier}",
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}"
]
,credentialsId: 'bc9d8e92-4302-3266-817f-7b58501d12d5'
,nexusUrl: 'nexus.steamware.net'
,nexusVersion: 'nexus3'
,protocol: 'http'
,repository: 'SWS'
,groupId: "NKC.${env.BRANCH_NAME}.ARCHIVE"
,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") ) {
/* preparo nuget pkg dell'SDK ma solo x branch SDK / develop */
else if (env.BRANCH_NAME == "SDK" || env.BRANCH_NAME.contains("develop") ) {
// calcolo il config...
if (env.BRANCH_NAME == "beta") {
if (env.BRANCH_NAME == "develop") {
env.config = "Debug"
env.packVers = env.versionNumberBeta
env.packVers = env.versionNumberdevelop
}
else if (env.BRANCH_NAME == "SDK") {
env.config = "Release"
@@ -166,13 +181,13 @@ pipeline {
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
// creo package NuGet... con version in modo da fare ANCHE le develop(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"
bat "e:\\nuget setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source https://nexus.steamware.net/repository/nuget-hosted"
bat "e:\\nuget.exe push NKC_SDK.${env.packVers}.nupkg -Source https://nexus.steamware.net/repository/nuget-hosted"
}
else
{
@@ -198,26 +213,31 @@ pipeline {
}
}
// Funzione x pubblicazione su server IIS di deploy
def publishToDeployServer(prjPath, iisPath, packName) {
echo "Richiesto esecuzione publishToDeployServer con parametri: " + prjPath + " | " + iisPath + " | " + packName
// Funzione sistemazione file PRIMA del deploy nexus/IIS
def setManifestFile(prjPath, packName) {
echo "Richiesto esecuzione setManifestFile con parametri: " + prjPath + " | " + 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 "
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 {{VERS}} ${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'
// salvo copia della versione...
bat "xcopy /y " + prjPath + "\\Releases\\${env.BRANCH_NAME}\\* E:\\Staging\\byProd\\MP\\${env.BRANCH_NAME}\\" + packName + "\\${env.versionNumber}\\ "
}
// Funzione x pubblicazione su server IIS di deploy
def publishToDeployServer(prjPath, iisPath, packName) {
echo "Richiesto esecuzione publishToDeployServer con parametri: " + prjPath + " | " + iisPath + " | " + packName
// 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}\\ "
bat "xcopy /y " + prjPath + "Resources\\logoSteamware.png " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
// copio x AutoUpdate deploy
bat "xcopy /y " + prjPath + "\\Releases\\${env.BRANCH_NAME}\\" + packName + ".zip " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
}
@@ -255,30 +275,18 @@ def sendSlack(status, colorCode) {
)
}
// // 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"
// bat "e:\\nuget setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source https://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\""
bat "e:\\nuget sources Add -Name \"Steamware Nexus\" -Source https://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 sources Update -Name \"Steamware Nexus\" -Source https://nexus.steamware.net/repository/nuget-group -username \"nugetUser\" -password \"viaDante16\""
}
bat "e:\\nuget.exe restore ${solutionFile}"
}
+1
View File
@@ -0,0 +1 @@
1.1.
+295
View File
@@ -0,0 +1,295 @@
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)
.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)
{
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
}
}
+47
View File
@@ -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;
}
}
+12
View File
@@ -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
{
}
}
+33
View File
@@ -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; }
}
}
+48
View File
@@ -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; }
}
}
+23
View File
@@ -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; }
}
}
+105
View File
@@ -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!;
}
}
+28
View File
@@ -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
}
}
+80
View File
@@ -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
}
}
}
+24
View File
@@ -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.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NLog" Version="4.7.12" />
</ItemGroup>
</Project>
+164
View File
@@ -0,0 +1,164 @@
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
[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
}
}
+282 -214
View File
@@ -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,97 @@
/// 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>
/// 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 +144,99 @@
Cart,
Bin,
BinProcessed,
SecScreen
SecScreen,
MachSelection
}
/// <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 +252,131 @@
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
}
/// <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
}
}
+255 -181
View File
@@ -8,8 +8,225 @@ namespace NKC_SDK
{
public class NKC
{
#region utils comunicazione HTTP
#region Protected Fields
/// <summary>
/// file locale per persistenza BUNK
/// </summary>
protected string persistFileName = "data/persistFile.json";
#endregion Protected Fields
#region Public Constructors
/// <summary>
/// Classe per effettuare comunicazioni con NKC
/// </summary>
/// <param name="baseIp">IP di base x ping</param>
/// <param name="baseUrl">URL di base x chiamate REST</param>
/// <param name="codPost">Codice posstazione/macchina x cui si fa chiamata</param>
public NKC(string baseIp, string baseUrl, string codPost)
{
_baseIp = baseIp;
_baseUrl = baseUrl;
_codPost = codPost;
}
#endregion Public Constructors
#region Protected Properties
/// <summary>
/// DnsName/IP di base x chaimate
/// </summary>
protected string _baseIp { get; set; } = "seriate.steamware.net";
/// <summary>
/// URL di base per la comunicazione
///
/// PROD: http://seriate.steamware.net:8083/NKC/
/// DEV: https://localhost:44388/
/// </summary>
protected string _baseUrl { get; set; } = @"http://seriate.steamware.net:8083/NKC/";
/// <summary>
/// COD macchina x cui si effettua chiamata
/// </summary>
protected string _codPost { get; set; } = "";
protected string urlAlive
{
get
{
return $"{_baseUrl}api/Alive";
}
}
protected string urlAliveClock
{
get
{
return $"{_baseUrl}api/Alive/1";
}
}
protected string urlCurrBunk
{
get
{
return $"{_baseUrl}api/Bunk";
}
}
protected string urlCurrSheet4Mac
{
get
{
return $"{_baseUrl}api/Sheet/{_codPost}";
}
}
/// <summary>
/// URL x salvataggio dati MachineStat
/// </summary>
/// <returns></returns>
protected string urlPutMachStat
{
get
{
return $"{_baseUrl}api/MachineStat";
//return $"{_baseUrl}api/MachineStat/{_machine}";
}
}
/// <summary>
/// URL x salvataggio dati SHEET
/// </summary>
/// <returns></returns>
protected string urlPutSheetList
{
get
{
return $"{_baseUrl}api/Sheet/{_codPost}";
}
}
#endregion Protected Properties
#region Public Properties
/// <summary>
/// Oggetto che contiene l'oggetto SHEET WorkList corrente salvato LOCALMENTE
/// </summary>
public SheetWorkList persistedSheetList
{
get
{
SheetWorkList answ = new SheetWorkList();
try
{
string rawdata = File.ReadAllText(persistFileName);
answ = JsonConvert.DeserializeObject<SheetWorkList>(rawdata);
}
catch (Exception exc)
{
Log.Instance.Error($"Eccezione durante recupero locale della SheetList{Environment.NewLine}{exc}");
}
return answ;
}
set
{
try
{
// serializzo oggetto
string rawdata = JsonConvert.SerializeObject(value);
// salvo in locale
File.WriteAllText(persistFileName, rawdata);
}
catch (Exception exc)
{
Log.Instance.Error($"Eccezione durante salvataggio locale della SheetList{Environment.NewLine}{exc}");
}
}
}
/// <summary>
/// Effettua test alive all'indirizzo del server
/// </summary>
public bool testAlive
{
get
{
bool answ = false;
string returnData = callUrl(urlAlive);
returnData = JsonConvert.DeserializeObject<string>(returnData);
answ = returnData == "OK";
// rendo!
return answ;
}
}
/// <summary>
/// Effettua test ping all'indirizzo del server
/// </summary>
public DateTime testClock
{
get
{
DateTime oggi = DateTime.Today;
DateTime answ = oggi.AddYears(-oggi.Year + 1900).AddMonths(-oggi.Month).AddDays(-oggi.Day + 1);
// recupero!
string returnData = callUrl(urlAliveClock);
try
{
DateTime.TryParse(JsonConvert.DeserializeObject<string>(returnData), out answ);
}
catch (Exception exc)
{
Log.Instance.Error($"Eccezione durante testClock, ricevuto {returnData}{Environment.NewLine}{exc}");
}
// rendo!
return answ;
}
}
/// <summary>
/// Effettua test ping all'indirizzo del server
/// </summary>
public PingReply testPing
{
get
{
Ping myPing = new Ping();
// timeout a 1 sec!
PingReply answ = myPing.Send(_baseIp, 1000);
// rendo!
return answ;
}
}
#endregion Public Properties
#region Protected Methods
protected string urlGetBunk(int currBunkId, string CodPost)
{
return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=false&machine={CodPost}";
}
protected string urlNextBunk(int currBunkId, string CodPost)
{
return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=true&machine={CodPost}";
}
protected string urlPutBunk(int currBunkId)
{
return $"{_baseUrl}api/Bunk/{currBunkId}";
}
#endregion Protected Methods
#region Public Methods
/// <summary>
/// Effettua chiamata URL e restituisce risultato
@@ -34,6 +251,7 @@ namespace NKC_SDK
// restituisco valore!
return answ;
}
/// <summary>
/// Effettua chiamata URL e restituisce risultato
/// </summary>
@@ -86,151 +304,14 @@ namespace NKC_SDK
return answ;
}
#endregion
#region URL di base
protected string urlAlive
public static PingReply testPingDevice(string address)
{
get
{
return $"{_baseUrl}api/Alive";
}
Ping myPing = new Ping();
// timeout a 1 sec!
PingReply answ = myPing.Send(address, 2000);
// rendo!
return answ;
}
protected string urlAliveClock
{
get
{
return $"{_baseUrl}api/Alive/1";
}
}
protected string urlCurrBunk
{
get
{
return $"{_baseUrl}api/Bunk";
}
}
protected string urlCurrSheet4Mac
{
get
{
return $"{_baseUrl}api/Sheet/{_codPost}";
}
}
protected string urlGetBunk(int currBunkId)
{
return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=false";
}
protected string urlNextBunk(int currBunkId)
{
return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=true";
}
protected string urlPutBunk(int currBunkId)
{
return $"{_baseUrl}api/Bunk/{currBunkId}";
}
/// <summary>
/// URL x salvataggio dati SHEET
/// </summary>
/// <returns></returns>
protected string urlPutSheetList
{
get
{
return $"{_baseUrl}api/Sheet/{_codPost}";
}
}
/// <summary>
/// file locale per persistenza BUNK
/// </summary>
protected string persistFileName = "data/persistFile.json";
#endregion
/// <summary>
/// URL di base per la comunicazione
///
/// PROD: http://seriate.steamware.net:8083/NKC/
/// DEV: https://localhost:44388/
/// </summary>
protected string _baseUrl { get; set; } = @"http://seriate.steamware.net:8083/NKC/";
/// <summary>
/// DnsName/IP di base x chaimate
/// </summary>
protected string _baseIp { get; set; } = "seriate.steamware.net";
/// <summary>
/// COD macchina x cui si effettua chiamata
/// </summary>
protected string _codPost { get; set; } = "";
/// <summary>
/// Classe per effettuare comunicazioni con NKC
/// </summary>
/// <param name="baseIp">IP di base x ping</param>
/// <param name="baseUrl">URL di abse x chiamate REST</param>
/// <param name="codPost">Codice posstazione/macchina x cui si fa chiamata</param>
public NKC(string baseIp, string baseUrl, string codPost)
{
_baseIp = baseIp;
_baseUrl = baseUrl;
_codPost = codPost;
}
/// <summary>
/// Effettua test ping all'indirizzo del server
/// </summary>
public PingReply testPing
{
get
{
Ping myPing = new Ping();
// timeout a 1 sec!
PingReply answ = myPing.Send(_baseIp, 1000);
// rendo!
return answ;
}
}
/// <summary>
/// Effettua test alive all'indirizzo del server
/// </summary>
public bool testAlive
{
get
{
bool answ = false;
string returnData = callUrl(urlAlive);
returnData = JsonConvert.DeserializeObject<string>(returnData);
answ = returnData == "OK";
// rendo!
return answ;
}
}
/// <summary>
/// Effettua test ping all'indirizzo del server
/// </summary>
public DateTime testClock
{
get
{
DateTime oggi = DateTime.Today;
DateTime answ = oggi.AddYears(-oggi.Year + 1900).AddMonths(-oggi.Month).AddDays(-oggi.Day + 1);
// recupero!
string returnData = callUrl(urlAliveClock);
try
{
DateTime.TryParse(JsonConvert.DeserializeObject<string>(returnData), out answ);
}
catch (Exception exc)
{
Log.Instance.Error($"Eccezione durante testClock, ricevuto {returnData}{Environment.NewLine}{exc}");
}
// rendo!
return answ;
}
}
#region metodi per SheetWorklist
/// <summary>
/// Recupera elenco dei fogli ATTIVI
@@ -254,6 +335,32 @@ namespace NKC_SDK
}
return answ;
}
/// <summary>
/// Effettua salvataggio dell'elenco info stati/eventi su NKC
/// </summary>
/// <param name="updatedInfo"></param>
public bool saveMachStatRecords(MachineStatData updatedInfo)
{
bool answ = false;
string rawdata = "";
try
{
// aggiungo macchina nel codice dei fogli...
updatedInfo.Machine = _codPost;
// serializzo oggetto
rawdata = JsonConvert.SerializeObject(updatedInfo);
// invio con metodo put!
putData(urlPutMachStat, rawdata);
answ = true;
}
catch (Exception exc)
{
Log.Instance.Error($"Eccezione durante saveMachStatRecords, ricevuto {rawdata}{Environment.NewLine}{exc}");
}
return answ;
}
/// <summary>
/// Effettua salvataggio dell'elenco dei fogli (1..n) su NKC
/// </summary>
@@ -264,6 +371,8 @@ namespace NKC_SDK
string rawdata = "";
try
{
// aggiungo macchina nel codice dei fogli...
updatedSheetList.Machine = _codPost;
// serializzo oggetto
rawdata = JsonConvert.SerializeObject(updatedSheetList);
// invio con metodo put!
@@ -276,42 +385,7 @@ namespace NKC_SDK
}
return answ;
}
/// <summary>
/// Oggetto che contiene l'oggetto SHEET WorkList corrente salvato LOCALMENTE
/// </summary>
public SheetWorkList persistedSheetList
{
get
{
SheetWorkList answ = new SheetWorkList();
try
{
string rawdata = File.ReadAllText(persistFileName);
answ = JsonConvert.DeserializeObject<SheetWorkList>(rawdata);
}
catch (Exception exc)
{
Log.Instance.Error($"Eccezione durante recupero locale della SheetList{Environment.NewLine}{exc}");
}
return answ;
}
set
{
try
{
// serializzo oggetto
string rawdata = JsonConvert.SerializeObject(value);
// salvo in locale
File.WriteAllText(persistFileName, rawdata);
}
catch (Exception exc)
{
Log.Instance.Error($"Eccezione durante salvataggio locale della SheetList{Environment.NewLine}{exc}");
}
}
}
#endregion
#endregion Public Methods
}
}
}
+7 -4
View File
@@ -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,13 +31,14 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</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.1\lib\net40\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>
<HintPath>..\packages\NLog.4.7.12\lib\net40-client\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
+8 -1
View File
@@ -23,12 +23,19 @@
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. -->
<!--
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>
<!-- add your logging rules here -->
<!--
Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace) to "f"
<logger name="*" minlevel="Debug" writeTo="f" />
-->
</rules>
</nlog>
+277 -177
View File
@@ -123,7 +123,7 @@
</xs:choice>
<xs:attribute name="name" use="optional">
<xs:annotation>
<xs:documentation>Name of the logger. May include wildcard characters ('*' or '?').</xs:documentation>
<xs:documentation>Filter on the name of the logger. May include wildcard characters ('*' or '?').</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="levels" type="NLogLevelList">
@@ -156,6 +156,11 @@
<xs:documentation>Ignore further rules if this one matches.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="enabled" type="xs:boolean" default="true">
<xs:annotation>
<xs:documentation>Enable this rule. Note: disabled rules aren't available from the API.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ruleName" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Rule identifier to allow rule lookup with Configuration.FindRuleByName and Configuration.RemoveRuleByName.</xs:documentation>
@@ -351,8 +356,8 @@
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="asyncFlush" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="condition" minOccurs="0" maxOccurs="1" type="Condition" />
<xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="flushOnConditionOnly" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice>
<xs:attribute name="asyncFlush" type="xs:boolean">
@@ -365,16 +370,16 @@
<xs:documentation>Condition expression. Log events who meet this condition will cause a flush on the wrapped target.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the target.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="flushOnConditionOnly" type="xs:boolean">
<xs:annotation>
<xs:documentation>Only flush when LogEvent matches condition. Ignore explicit-flush, config-reload-flush and shutdown-flush</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the target.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="optimizeBufferReuse" type="xs:boolean">
<xs:annotation>
<xs:documentation>Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit</xs:documentation>
@@ -443,15 +448,15 @@
<xs:element name="lineEnding" minOccurs="0" maxOccurs="1" type="LineEndingMode" />
<xs:element name="maxMessageSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="newLine" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="sslProtocols" minOccurs="0" maxOccurs="1" type="System.Security.Authentication.SslProtocols" />
<xs:element name="address" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="connectionCacheSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="keepConnection" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="keepAliveTimeSeconds" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="maxQueueSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="maxConnections" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="onConnectionOverflow" minOccurs="0" maxOccurs="1" type="NLog.Targets.NetworkTargetConnectionsOverflowAction" />
<xs:element name="onOverflow" minOccurs="0" maxOccurs="1" type="NLog.Targets.NetworkTargetOverflowAction" />
<xs:element name="sslProtocols" minOccurs="0" maxOccurs="1" type="System.Security.Authentication.SslProtocols" />
<xs:element name="maxQueueSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="keepAliveTimeSeconds" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="keepConnection" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.NLogViewerParameterInfo" />
<xs:element name="ndlcItemSeparator" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="includeSourceInfo" minOccurs="0" maxOccurs="1" type="xs:boolean" />
@@ -497,6 +502,11 @@
<xs:documentation>Indicates whether to append newline at the end of log message.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sslProtocols" type="System.Security.Authentication.SslProtocols">
<xs:annotation>
<xs:documentation>Get or set the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="address" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Network address.</xs:documentation>
@@ -507,9 +517,14 @@
<xs:documentation>Size of the connection cache (number of connections which are kept alive).</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="keepConnection" type="xs:boolean">
<xs:attribute name="keepAliveTimeSeconds" type="xs:integer">
<xs:annotation>
<xs:documentation>Indicates whether to keep connection open whenever possible.</xs:documentation>
<xs:documentation>The number of seconds a connection will remain idle before the first keep-alive probe is sent</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxQueueSize" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum queue size.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxConnections" type="xs:integer">
@@ -527,19 +542,9 @@
<xs:documentation>Action that should be taken if the message is larger than maxMessageSize.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sslProtocols" type="System.Security.Authentication.SslProtocols">
<xs:attribute name="keepConnection" type="xs:boolean">
<xs:annotation>
<xs:documentation>Get or set the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxQueueSize" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum queue size.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="keepAliveTimeSeconds" type="xs:integer">
<xs:annotation>
<xs:documentation>The number of seconds a connection will remain idle before the first keep-alive probe is sent</xs:documentation>
<xs:documentation>Indicates whether to keep connection open whenever possible.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ndlcItemSeparator" type="xs:string">
@@ -610,6 +615,18 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="System.Security.Authentication.SslProtocols">
<xs:restriction base="xs:string">
<xs:enumeration value="None" />
<xs:enumeration value="Ssl2" />
<xs:enumeration value="Ssl3" />
<xs:enumeration value="Tls" />
<xs:enumeration value="Tls11" />
<xs:enumeration value="Tls12" />
<xs:enumeration value="Tls13" />
<xs:enumeration value="Default" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NLog.Targets.NetworkTargetConnectionsOverflowAction">
<xs:restriction base="xs:string">
<xs:enumeration value="AllowNewConnnection" />
@@ -624,18 +641,6 @@
<xs:enumeration value="Discard" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="System.Security.Authentication.SslProtocols">
<xs:restriction base="xs:string">
<xs:enumeration value="None" />
<xs:enumeration value="Ssl2" />
<xs:enumeration value="Ssl3" />
<xs:enumeration value="Tls" />
<xs:enumeration value="Tls11" />
<xs:enumeration value="Tls12" />
<xs:enumeration value="Tls13" />
<xs:enumeration value="Default" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="NLog.Targets.NLogViewerParameterInfo">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="layout" minOccurs="0" maxOccurs="1" type="Layout" />
@@ -670,11 +675,11 @@
<xs:element name="enableAnsiOutput" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="encoding" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="errorStream" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="autoFlush" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="detectOutputRedirected" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="useDefaultRowHighlightingRules" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="highlight-row" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.ConsoleRowHighlightingRule" />
<xs:element name="highlight-word" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.ConsoleWordHighlightingRule" />
<xs:element name="autoFlush" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice>
<xs:attribute name="name" type="xs:string">
@@ -717,6 +722,11 @@
<xs:documentation>Indicates whether the error stream (stderr) should be used instead of the output stream (stdout).</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="autoFlush" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to auto-flush after </xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="detectOutputRedirected" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to auto-check if the console has been redirected to file - Disables coloring logic when System.Console.IsOutputRedirected = true</xs:documentation>
@@ -727,11 +737,6 @@
<xs:documentation>Indicates whether to use default row highlighting rules.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="autoFlush" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to auto-flush after </xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="optimizeBufferReuse" type="xs:boolean">
<xs:annotation>
<xs:documentation>Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit</xs:documentation>
@@ -786,6 +791,7 @@
<xs:complexType name="NLog.Targets.ConsoleWordHighlightingRule">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="compileRegex" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="condition" minOccurs="0" maxOccurs="1" type="Condition" />
<xs:element name="ignoreCase" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="regex" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="text" minOccurs="0" maxOccurs="1" type="xs:string" />
@@ -798,6 +804,11 @@
<xs:documentation>Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="condition" type="Condition">
<xs:annotation>
<xs:documentation>Condition that must be met before scanning the row for highlight of words</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ignoreCase" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to ignore case when comparing texts.</xs:documentation>
@@ -837,10 +848,10 @@
<xs:element name="layout" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="header" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="footer" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="autoFlush" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="detectConsoleAvailable" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="encoding" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="error" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="autoFlush" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="writeBuffer" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice>
@@ -864,6 +875,11 @@
<xs:documentation>Footer.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="autoFlush" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to auto-flush after </xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="detectConsoleAvailable" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to auto-check if the console is available - Disables console writing if Environment.UserInteractive = False (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App)</xs:documentation>
@@ -879,11 +895,6 @@
<xs:documentation>Indicates whether to send the log messages to the standard error instead of the standard output.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="autoFlush" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to auto-flush after </xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="writeBuffer" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to enable batch writing using char[]-buffers, instead of using </xs:documentation>
@@ -903,21 +914,24 @@
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="useTransactions" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="dbUserName" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="keepConnection" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="dbProvider" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="dbPassword" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="keepConnection" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="dbDatabase" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="dbHost" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="dbUserName" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="connectionStringName" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="connectionString" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="dbHost" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="connectionproperty" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.DatabaseObjectPropertyInfo" />
<xs:element name="commandproperty" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.DatabaseObjectPropertyInfo" />
<xs:element name="dbDatabase" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="installConnectionString" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="install-command" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.DatabaseCommandInfo" />
<xs:element name="uninstall-command" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.DatabaseCommandInfo" />
<xs:element name="isolationLevel" minOccurs="0" maxOccurs="1" type="System.Data.IsolationLevel" />
<xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.DatabaseParameterInfo" />
<xs:element name="commandText" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="commandType" minOccurs="0" maxOccurs="1" type="System.Data.CommandType" />
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.DatabaseParameterInfo" />
</xs:choice>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
@@ -929,9 +943,9 @@
<xs:documentation>Obsolete - value will be ignored! The logging code always runs outside of transaction. Gets or sets a value indicating whether to use database transactions. Some data providers require this.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="dbUserName" type="SimpleLayoutAttribute">
<xs:attribute name="keepConnection" type="xs:boolean">
<xs:annotation>
<xs:documentation>Database user name. If the ConnectionString is not provided this value will be used to construct the "User ID=" part of the connection string.</xs:documentation>
<xs:documentation>Indicates whether to keep the database connection open between the log events.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="dbProvider" type="xs:string">
@@ -944,14 +958,14 @@
<xs:documentation>Database password. If the ConnectionString is not provided this value will be used to construct the "Password=" part of the connection string.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="keepConnection" type="xs:boolean">
<xs:attribute name="dbHost" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Indicates whether to keep the database connection open between the log events.</xs:documentation>
<xs:documentation>Database host name. If the ConnectionString is not provided this value will be used to construct the "Server=" part of the connection string.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="dbDatabase" type="SimpleLayoutAttribute">
<xs:attribute name="dbUserName" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Database name. If the ConnectionString is not provided this value will be used to construct the "Database=" part of the connection string.</xs:documentation>
<xs:documentation>Database user name. If the ConnectionString is not provided this value will be used to construct the "User ID=" part of the connection string.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="connectionStringName" type="xs:string">
@@ -964,9 +978,9 @@
<xs:documentation>Connection string. When provided, it overrides the values specified in DBHost, DBUserName, DBPassword, DBDatabase.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="dbHost" type="SimpleLayoutAttribute">
<xs:attribute name="dbDatabase" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Database host name. If the ConnectionString is not provided this value will be used to construct the "Server=" part of the connection string.</xs:documentation>
<xs:documentation>Database name. If the ConnectionString is not provided this value will be used to construct the "Database=" part of the connection string.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="installConnectionString" type="SimpleLayoutAttribute">
@@ -974,6 +988,11 @@
<xs:documentation>Connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="isolationLevel" type="System.Data.IsolationLevel">
<xs:annotation>
<xs:documentation>Configures isolated transaction batch writing. If supported by the database, then it will improve insert performance.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="optimizeBufferReuse" type="xs:boolean">
<xs:annotation>
<xs:documentation>Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit</xs:documentation>
@@ -999,6 +1018,51 @@
<xs:enumeration value="TableDirect" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="System.Data.IsolationLevel">
<xs:restriction base="xs:string">
<xs:enumeration value="Unspecified" />
<xs:enumeration value="Chaos" />
<xs:enumeration value="ReadUncommitted" />
<xs:enumeration value="ReadCommitted" />
<xs:enumeration value="RepeatableRead" />
<xs:enumeration value="Serializable" />
<xs:enumeration value="Snapshot" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="NLog.Targets.DatabaseObjectPropertyInfo">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="format" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="culture" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="layout" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="propertyType" minOccurs="0" maxOccurs="1" type="xs:string" />
</xs:choice>
<xs:attribute name="format" type="xs:string">
<xs:annotation>
<xs:documentation>Convert format of the property value</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="culture" type="xs:string">
<xs:annotation>
<xs:documentation>Culture used for parsing property string-value for type-conversion</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Value to assign on the object-property</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Name for the object-property</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="propertyType" type="xs:string">
<xs:annotation>
<xs:documentation>Type of the object-property</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="NLog.Targets.DatabaseCommandInfo">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="commandType" minOccurs="0" maxOccurs="1" type="System.Data.CommandType" />
@@ -1037,6 +1101,7 @@
<xs:element name="precision" minOccurs="0" maxOccurs="1" type="xs:byte" />
<xs:element name="scale" minOccurs="0" maxOccurs="1" type="xs:byte" />
<xs:element name="parameterType" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="allowDbNull" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="format" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="culture" minOccurs="0" maxOccurs="1" type="xs:string" />
</xs:choice>
@@ -1075,9 +1140,14 @@
<xs:documentation>Type of the parameter.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="allowDbNull" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether empty value should translate into DbNull. Requires database column to allow NULL values.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="format" type="xs:string">
<xs:annotation>
<xs:documentation>Convert format of the database parameter value .</xs:documentation>
<xs:documentation>Convert format of the database parameter value.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="culture" type="xs:string">
@@ -1273,6 +1343,7 @@
<xs:element name="footer" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="encoding" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="lineEnding" minOccurs="0" maxOccurs="1" type="LineEndingMode" />
<xs:element name="maxArchiveDays" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="enableArchiveFileCompression" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="archiveNumbering" minOccurs="0" maxOccurs="1" type="NLog.Targets.ArchiveNumberingMode" />
<xs:element name="archiveFileName" minOccurs="0" maxOccurs="1" type="Layout" />
@@ -1282,19 +1353,20 @@
<xs:element name="maxArchiveFiles" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="writeFooterOnArchivingOnly" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="maxLogFilenames" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="fileNameKind" minOccurs="0" maxOccurs="1" type="NLog.Targets.FilePathKind" />
<xs:element name="forceManaged" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="forceMutexConcurrentWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="replaceFileContentsOnEachWrite" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="writeBom" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="enableFileDelete" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="fileName" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="archiveDateFormat" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="archiveOldFileOnStartup" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="cleanupFileName" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="createDirs" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="deleteOldFileOnStartup" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="fileAttributes" minOccurs="0" maxOccurs="1" type="NLog.Targets.Win32FileAttributes" />
<xs:element name="createDirs" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="cleanupFileName" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="archiveOldFileOnStartupAboveSize" minOccurs="0" maxOccurs="1" type="xs:long" />
<xs:element name="archiveOldFileOnStartup" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="archiveDateFormat" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="enableFileDelete" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="writeBom" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="replaceFileContentsOnEachWrite" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="forceMutexConcurrentWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="forceManaged" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="fileNameKind" minOccurs="0" maxOccurs="1" type="NLog.Targets.FilePathKind" />
<xs:element name="fileName" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="networkWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="openFileCacheTimeout" minOccurs="0" maxOccurs="1" type="xs:integer" />
@@ -1338,6 +1410,11 @@
<xs:documentation>Line ending mode.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxArchiveDays" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum days of archive files that should be kept.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="enableArchiveFileCompression" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to compress archive files into the zip archive format.</xs:documentation>
@@ -1383,61 +1460,6 @@
<xs:documentation>Maximum number of log file names that should be stored as existing.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="fileNameKind" type="NLog.Targets.FilePathKind">
<xs:annotation>
<xs:documentation>Is the an absolute or relative path?</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="forceManaged" type="xs:boolean">
<xs:annotation>
<xs:documentation>Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="forceMutexConcurrentWrites" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether file creation calls should be synchronized by a system global mutex.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="replaceFileContentsOnEachWrite" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to replace file contents on each write instead of appending log message at the end.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="writeBom" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to write BOM (byte order mark) in created files</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="enableFileDelete" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to enable log file(s) to be deleted.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="fileName" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Name of the file to write to.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="archiveDateFormat" type="xs:string">
<xs:annotation>
<xs:documentation>Value specifying the date format to use when archiving files.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="archiveOldFileOnStartup" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to archive old log file on startup.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="cleanupFileName" type="xs:boolean">
<xs:annotation>
<xs:documentation>Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. If set to false, nothing gets written when the filename is wrong.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="createDirs" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to create directories if they do not exist.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="deleteOldFileOnStartup" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to delete old log file on startup.</xs:documentation>
@@ -1448,6 +1470,66 @@
<xs:documentation>File attributes (Windows only).</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="createDirs" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to create directories if they do not exist.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="cleanupFileName" type="xs:boolean">
<xs:annotation>
<xs:documentation>Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. If set to false, nothing gets written when the filename is wrong.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="archiveOldFileOnStartupAboveSize" type="xs:long">
<xs:annotation>
<xs:documentation>Value of the file size threshold to archive old log file on startup.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="archiveOldFileOnStartup" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to archive old log file on startup.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="archiveDateFormat" type="xs:string">
<xs:annotation>
<xs:documentation>Value specifying the date format to use when archiving files.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="enableFileDelete" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to enable log file(s) to be deleted.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="writeBom" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to write BOM (byte order mark) in created files</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="replaceFileContentsOnEachWrite" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to replace file contents on each write instead of appending log message at the end.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="forceMutexConcurrentWrites" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether file creation calls should be synchronized by a system global mutex.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="forceManaged" type="xs:boolean">
<xs:annotation>
<xs:documentation>Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="fileNameKind" type="NLog.Targets.FilePathKind">
<xs:annotation>
<xs:documentation>Is the an absolute or relative path?</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="fileName" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Name of the file to write to.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="optimizeBufferReuse" type="xs:boolean">
<xs:annotation>
<xs:documentation>Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit</xs:documentation>
@@ -2047,13 +2129,13 @@
<xs:element name="newLine" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="address" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="connectionCacheSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="keepAliveTimeSeconds" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="keepConnection" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="maxConnections" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="maxQueueSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="onConnectionOverflow" minOccurs="0" maxOccurs="1" type="NLog.Targets.NetworkTargetConnectionsOverflowAction" />
<xs:element name="onOverflow" minOccurs="0" maxOccurs="1" type="NLog.Targets.NetworkTargetOverflowAction" />
<xs:element name="sslProtocols" minOccurs="0" maxOccurs="1" type="System.Security.Authentication.SslProtocols" />
<xs:element name="keepAliveTimeSeconds" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice>
<xs:attribute name="name" type="xs:string">
@@ -2096,6 +2178,11 @@
<xs:documentation>Size of the connection cache (number of connections which are kept alive).</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="keepAliveTimeSeconds" type="xs:integer">
<xs:annotation>
<xs:documentation>The number of seconds a connection will remain idle before the first keep-alive probe is sent</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="keepConnection" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to keep connection open whenever possible.</xs:documentation>
@@ -2126,11 +2213,6 @@
<xs:documentation>Get or set the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="keepAliveTimeSeconds" type="xs:integer">
<xs:annotation>
<xs:documentation>The number of seconds a connection will remain idle before the first keep-alive probe is sent</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="optimizeBufferReuse" type="xs:boolean">
<xs:annotation>
<xs:documentation>Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit</xs:documentation>
@@ -2149,15 +2231,15 @@
<xs:element name="lineEnding" minOccurs="0" maxOccurs="1" type="LineEndingMode" />
<xs:element name="maxMessageSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="newLine" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="sslProtocols" minOccurs="0" maxOccurs="1" type="System.Security.Authentication.SslProtocols" />
<xs:element name="address" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="connectionCacheSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="keepConnection" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="keepAliveTimeSeconds" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="maxQueueSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="maxConnections" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="onConnectionOverflow" minOccurs="0" maxOccurs="1" type="NLog.Targets.NetworkTargetConnectionsOverflowAction" />
<xs:element name="onOverflow" minOccurs="0" maxOccurs="1" type="NLog.Targets.NetworkTargetOverflowAction" />
<xs:element name="sslProtocols" minOccurs="0" maxOccurs="1" type="System.Security.Authentication.SslProtocols" />
<xs:element name="maxQueueSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="keepAliveTimeSeconds" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="keepConnection" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.NLogViewerParameterInfo" />
<xs:element name="ndlcItemSeparator" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="includeSourceInfo" minOccurs="0" maxOccurs="1" type="xs:boolean" />
@@ -2203,6 +2285,11 @@
<xs:documentation>Indicates whether to append newline at the end of log message.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sslProtocols" type="System.Security.Authentication.SslProtocols">
<xs:annotation>
<xs:documentation>Get or set the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="address" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Network address.</xs:documentation>
@@ -2213,9 +2300,14 @@
<xs:documentation>Size of the connection cache (number of connections which are kept alive).</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="keepConnection" type="xs:boolean">
<xs:attribute name="keepAliveTimeSeconds" type="xs:integer">
<xs:annotation>
<xs:documentation>Indicates whether to keep connection open whenever possible.</xs:documentation>
<xs:documentation>The number of seconds a connection will remain idle before the first keep-alive probe is sent</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxQueueSize" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum queue size.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxConnections" type="xs:integer">
@@ -2233,19 +2325,9 @@
<xs:documentation>Action that should be taken if the message is larger than maxMessageSize.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sslProtocols" type="System.Security.Authentication.SslProtocols">
<xs:attribute name="keepConnection" type="xs:boolean">
<xs:annotation>
<xs:documentation>Get or set the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxQueueSize" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum queue size.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="keepAliveTimeSeconds" type="xs:integer">
<xs:annotation>
<xs:documentation>The number of seconds a connection will remain idle before the first keep-alive probe is sent</xs:documentation>
<xs:documentation>Indicates whether to keep connection open whenever possible.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ndlcItemSeparator" type="xs:string">
@@ -2635,6 +2717,7 @@
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="layout" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="enableTraceFail" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="rawWrite" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice>
@@ -2648,6 +2731,11 @@
<xs:documentation>Layout used to format log messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="enableTraceFail" type="xs:boolean">
<xs:annotation>
<xs:documentation>Forward to (Instead of )</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="rawWrite" type="xs:boolean">
<xs:annotation>
<xs:documentation>Always use independent of </xs:documentation>
@@ -2675,6 +2763,7 @@
<xs:element name="proxyAddress" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="encoding" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="url" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
<xs:element name="userAgent" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="escapeDataNLogLegacy" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="escapeDataRfc3986" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="preAuthenticate" minOccurs="0" maxOccurs="1" type="xs:boolean" />
@@ -2728,6 +2817,11 @@
<xs:documentation>Web service URL.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="userAgent" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Value of the User-agent HTTP header.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="escapeDataNLogLegacy" type="xs:boolean">
<xs:annotation>
<xs:documentation>Value whether escaping be done according to the old NLog style (Very non-standard)</xs:documentation>
@@ -2892,17 +2986,38 @@
<xs:complexContent>
<xs:extension base="Layout">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="escapeForwardSlash" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="renderEmptyObject" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="suppressSpaces" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="attribute" minOccurs="0" maxOccurs="unbounded" type="NLog.Layouts.JsonAttribute" />
<xs:element name="excludeEmptyProperties" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="excludeProperties" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="includeAllProperties" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeGdc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeMdc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeMdlc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="maxRecursionLimit" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="renderEmptyObject" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="suppressSpaces" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="escapeForwardSlash" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice>
<xs:attribute name="escapeForwardSlash" type="xs:boolean">
<xs:annotation>
<xs:documentation>Should forward slashes be escaped? If true, / will be converted to \/</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="renderEmptyObject" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to render the empty object value {}</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="suppressSpaces" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to suppress the extra spaces in the output json</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="excludeEmptyProperties" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to exclude null/empty properties from the log event (as JSON)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="excludeProperties" type="xs:string">
<xs:annotation>
<xs:documentation>List of property names to exclude when is true</xs:documentation>
@@ -2933,21 +3048,6 @@
<xs:documentation>How far should the JSON serializer follow object references before backing off</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="renderEmptyObject" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to render the empty object value {}</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="suppressSpaces" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to suppress the extra spaces in the output json</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="escapeForwardSlash" type="xs:boolean">
<xs:annotation>
<xs:documentation>Should forward slashes be escaped? If true, / will be converted to \/</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -2956,9 +3056,9 @@
<xs:element name="layout" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="encode" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="escapeForwardSlash" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="escapeUnicode" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeEmptyValue" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="escapeForwardSlash" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice>
<xs:attribute name="layout" type="SimpleLayoutAttribute">
<xs:annotation>
@@ -2975,6 +3075,11 @@
<xs:documentation>Determines whether or not this attribute will be Json encoded.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="escapeForwardSlash" type="xs:boolean">
<xs:annotation>
<xs:documentation>Should forward slashes be escaped? If true, / will be converted to \/</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="escapeUnicode" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to escape non-ascii characters</xs:documentation>
@@ -2985,11 +3090,6 @@
<xs:documentation>Whether an attribute with empty value should be included in the output</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="escapeForwardSlash" type="xs:boolean">
<xs:annotation>
<xs:documentation>Should forward slashes be escaped? If true, / will be converted to \/</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="LayoutWithHeaderAndFooter">
<xs:complexContent>
+820 -474
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,7 +1,7 @@
<?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.1" targetFramework="net40" requireReinstallation="true" />
<package id="NLog" version="4.7.12" targetFramework="net40" requireReinstallation="true" />
<package id="NLog.Config" version="4.7.12" targetFramework="net40" />
<package id="NLog.Schema" version="4.7.12" targetFramework="net40" />
</packages>
+9
View File
@@ -23,6 +23,7 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug-LELE|Any CPU = Debug-LELE|Any CPU
IIS02|Any CPU = IIS02|Any CPU
Prod|Any CPU = Prod|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
@@ -31,6 +32,8 @@ 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}.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 +42,8 @@ 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}.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 +52,8 @@ 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}.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 +62,8 @@ 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}.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
+11
View File
@@ -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
}
}
+49 -32
View File
@@ -8,10 +8,58 @@ namespace NKC_WF
{
public class BasePage : System.Web.UI.Page
{
#region Protected Fields
/// <summary>
/// Membro gestione accessi al datalayer (istanza x ogni classe controllo)
/// </summary>
protected DataLayer DLMan = new DataLayer();
/// <summary>
/// Codice macchina (da v2)
/// </summary>
protected string PlaceCod = "WRK001";
#endregion Protected Fields
#region Public Methods
/// <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}{Environment.NewLine}{exc}", tipoLog.FATAL);
}
/// <summary>
/// Wrapper scrittura log INFO
/// </summary>
/// <param name="message"></param>
public void lgInfo(string message)
{
logger.lg.scriviLog(message, tipoLog.INFO);
}
/// <summary>
/// Wrapper traduzione termini
/// </summary>
@@ -21,38 +69,7 @@ namespace NKC_WF
{
return user_std.UtSn.Traduci(lemma);
}
/// <summary>
/// Wrapper scrittura log INFO
/// </summary>
/// <param name="message"></param>
public void lgInfo(string message)
{
logger.lg.scriviLog(message, tipoLog.INFO);
}
/// <summary>
/// Wrapper scrittura log ERROR
/// </summary>
/// <param name="message"></param>
public void lgError(string message)
{
logger.lg.scriviLog(message, tipoLog.ERROR);
}
/// <summary>
/// Wrapper scrittura log EXCEPTION
/// </summary>
/// <param name="message"></param>
public void lgException(string message, Exception exc)
{
logger.lg.scriviLog($"{message}{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
}
/// <summary>
/// Wrapper scrittura log FATAL
/// </summary>
/// <param name="message"></param>
public void lgFatal(string message, Exception exc)
{
logger.lg.scriviLog(message, tipoLog.FATAL);
}
#endregion Public Methods
}
}
+18 -13
View File
@@ -17,6 +17,15 @@ namespace NKC_WF
#endregion Protected Fields
#region Public Fields
/// <summary>
/// Codice macchina (da v2)
/// </summary>
public string PlaceCod = "VIRTNE";
#endregion Public Fields
#region Public Events
/// <summary>
@@ -65,17 +74,6 @@ namespace NKC_WF
}
}
/// <summary>
/// Postazione attuale (per ora cablata)
/// </summary>
protected string PlaceId
{
get
{
return "WRK001";
}
}
#endregion Protected Properties
#region Public Properties
@@ -208,7 +206,7 @@ namespace NKC_WF
/// <param name="message"></param>
public void lgFatal(string message, Exception exc)
{
logger.lg.scriviLog(message, tipoLog.FATAL);
logger.lg.scriviLog($"{message}{Environment.NewLine}{exc}", tipoLog.FATAL);
}
/// <summary>
@@ -277,7 +275,14 @@ 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
+16 -9
View File
@@ -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
}
}
}
+47
View File
@@ -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;
}
+1
View File
@@ -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}
+27 -2
View File
@@ -42,6 +42,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 +113,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;
+27 -5
View File
@@ -13,7 +13,6 @@ body {
padding-right: 15px;
}
.textCondens {
/*font-family: 'Roboto Condensed', sans-serif;*/
font-family: 'Open Sans Condensed', sans-serif;
@@ -52,12 +51,37 @@ body {
font-family: 'Roboto Condensed', sans-serif;
font-size: 0.9rem;
}
.smallTable {
font-size: 0.7rem;
font-family: 'Open Sans Condensed', sans-serif;
}
}
.GridPager a,
.GridPager span {
display: block;
height: 1.5em;
min-width: 1.1em;
text-align: center;
text-decoration: none;
}
.GridPager a {
background-color: #f5f5f5;
color: #969696;
/*border-top: 1px solid #969696;
border-bottom: 1px solid #969696;*/
}
.GridPager span {
background-color: #A1DCF2;
color: #000;
/*border-top: 1px solid #3AC0F2;
border-bottom: 1px solid #3AC0F2;*/
font-weight: bold;
}
@borderThick: 3px;
.border-thick {
@@ -113,8 +137,8 @@ body {
font-size: 0.8em;
}
/* Override the default bootstrap behavior where horizontal description lists
will truncate terms that are too long to fit in the left column
/* Override the default bootstrap behavior where horizontal description lists
will truncate terms that are too long to fit in the left column
*/
.dl-horizontal dt {
white-space: normal;
@@ -178,7 +202,6 @@ body {
@blSCut: 1rem;
.shortcuts {
text-align: center;
}
@@ -282,7 +305,6 @@ body {
color: #666;
}
@media (max-width: 992px) {
.shortcuts .shortcut {
min-width: @blSCut * 8;
+1 -1
View File
@@ -1 +1 @@
body{font-family:'Roboto Condensed',sans-serif;padding-top:50px;padding-bottom:20px;}.body-content{padding-left:15px;padding-right:15px;}.textCondens{font-family:'Open Sans Condensed',sans-serif;}.textNormal{font-family:'Roboto',sans-serif;}.textBig{font-size:1.5em;}@media screen and (min-width:768px){.jumbotron{margin-top:20px;}.body-content{padding:0;}body{font-family:'Roboto',sans-serif;}}@media(max-width:992px){.container{width:100%;}body{font-family:'Roboto Condensed',sans-serif;font-size:.9rem;}.smallTable{font-size:.7rem;font-family:'Open Sans Condensed',sans-serif;}}.border-thick{border-width:3px !important;}.flashColor{border:3px solid #00f;-webkit-animation-name:blueFlash;-webkit-animation-duration:.5s;-webkit-animation-timing-function:linear;-webkit-animation-delay:0s;-webkit-animation-iteration-count:infinite;-webkit-animation-direction:alternate;animation-name:blueFlash;animation-duration:.5s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:infinite;animation-direction:alternate;}@-webkit-keyframes blueFlash{0%{border-color:#c4dbff;}25%{border-color:#9dc4ff;}50%{border-color:#5ca5ff;}75%{border-color:#1b82ff;}100%{border-color:#005ccc;}}.bigText{font-size:1.3em;}.smallText{font-size:.8em;}.dl-horizontal dt{white-space:normal;}.deleted{text-decoration:line-through;}.padZL{padding-left:.2em;}.padZR{padding-right:.2em;}.padZRL{padding-left:.2em;padding-right:.2em;}.colAlt{color:#c93;}.fontBig{font-size:2em;}.tNote{color:#8a8a8a;font-style:italic;}.tNoWrap{white-space:nowrap;}.navbar{min-height:0;color:#696969;}.pagination{margin:5px 0;}.pageSelDD{width:6em;}.zeroWidth{width:0;}.shortcuts{text-align:center;}.shortcuts .shortcut{min-width:9rem;min-height:5rem;display:inline-block;padding:.66666667rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:.5rem;}.shortcuts .shortcut-sm{min-width:4.5rem;min-height:3rem;display:inline-block;padding:.25rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:.5rem;}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut-sm .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut-sm:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut-sm:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut:hover .shortcut-icon{color:#c93;}.shortcuts .shortcut-sm:hover .shortcut-icon{color:#666;}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666;}@media(max-width:992px){.shortcuts .shortcut{min-width:8rem;min-height:4rem;}}
body{font-family:'Roboto Condensed',sans-serif;padding-top:50px;padding-bottom:20px;}.body-content{padding-left:15px;padding-right:15px;}.textCondens{font-family:'Open Sans Condensed',sans-serif;}.textNormal{font-family:'Roboto',sans-serif;}.textBig{font-size:1.5em;}@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:.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;}}
+10 -37
View File
@@ -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
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+15 -17
View File
@@ -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
View File
@@ -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
+230 -156
View File
@@ -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
+5 -5
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+372 -120
View File
@@ -3,6 +3,7 @@ using Newtonsoft.Json;
using NKC_SDK;
using SteamWare;
using System;
using System.Diagnostics;
using System.IO;
using System.Web.Http;
@@ -10,12 +11,17 @@ namespace NKC_WF.Controllers
{
public class BatchProcController : ApiController
{
#region Protected Fields
/// <summary>
/// oggetto static/singleton per fare chiamate sul datalayer
/// </summary>
protected DataLayer DLMan = new DataLayer();
#endregion Protected Fields
#region Public Methods
/// <summary>
/// Restituisce SE C'E' la richiesta di elaborazione BATCH corrente
/// </summary>
@@ -91,6 +97,7 @@ namespace NKC_WF.Controllers
public string Post()
{
string answ = "";
bool isSplitReq = 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;
@@ -112,7 +119,7 @@ namespace NKC_WF.Controllers
// 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)
@@ -129,153 +136,393 @@ namespace NKC_WF.Controllers
* - è 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)
{
// stima "classica"
if (batchProcAnsw.ProcType == 1)
{
int bStatus = 0;
// 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)
// 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 = $"Impossibile processing risposta da EgtNest | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispStima.BatchID} | stato: {currBatchStatus}";
logger.lg.scriviLog(message, tipoLog.ERROR);
// 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"
bool isValidation = false;
bool isTesting = false;
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 = 1;
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 = 9;
}
// verifico se il tempo di procesisng stimato sia > minimo...
else if (rispStima.EstimatedWorktime > memLayer.ML.CRI("minValidEstSec"))
{
bStatus = 10;
}
else
{
bStatus = 9;
}
}
else
{
bStatus = 2;
}
break;
case procStatus.accepted:
bStatus = 5;
break;
case procStatus.refused:
if (isValidation || isTesting)
{
bStatus = 9;
}
}
else
{
bStatus = 2;
}
break;
case procStatus.accepted:
bStatus = 5;
break;
case procStatus.refused:
else
{
bStatus = 6;
}
break;
case procStatus.error:
if (isValidation || isTesting)
{
bStatus = 9;
}
else
{
bStatus = 7;
}
break;
case procStatus.aborted:
default:
if (isValidation || isTesting)
{
bStatus = 9;
}
else
{
bStatus = 0;
}
break;
}
// SALVO info riguardo al batch running
DLMan.taBL.updateStatus(rispStima.BatchID, 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 > 7)
{
if (isValidation)
{
bStatus = 9;
// recupero ordine da batch
if (tabOrd.Count > 0)
{
DLMan.taIV.upsertQuery(tabOrd[0].OrderExtCode, rispStima.BatchID, bStatus, rispStima.EstimatedWorktime);
}
}
else
else if (isTesting)
{
bStatus = 6;
// recupero ordine da batch
if (tabOrd.Count > 0)
{
DLMan.taFV.upsertQuery(tabOrd[0].OrderExtCode, rispStima.BatchID, bStatus, rispStima.EstimatedWorktime);
}
}
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)
{
int bStatus = 0;
// 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 = $"Impossibile processing risposta da EgtNest | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispStima.BatchID} | stato: {currBatchStatus}";
logger.lg.scriviLog(message, tipoLog.ERROR);
// 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"
bool isValidation = false;
bool isTesting = false;
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 = 1;
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 = 9;
}
// verifico se il tempo di procesisng stimato sia > minimo...
else if (rispStima.EstimatedWorktime > memLayer.ML.CRI("minValidEstSec"))
{
bStatus = 10;
}
else
{
bStatus = 9;
}
}
else
{
bStatus = 2;
}
break;
case procStatus.accepted:
bStatus = 5;
break;
case procStatus.refused:
if (isValidation || isTesting)
{
bStatus = 9;
}
else
{
bStatus = 6;
}
break;
case procStatus.error:
if (isValidation || isTesting)
{
bStatus = 9;
}
else
{
bStatus = 7;
}
break;
case procStatus.aborted:
default:
if (isValidation || isTesting)
{
bStatus = 9;
}
else
{
bStatus = 0;
}
break;
}
// SALVO info riguardo al batch running
DLMan.taBL.updateStatus(rispStima.BatchID, 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)
{
// 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)
{
string message = $"Impossibile processing risposta da EgtNest | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispNest.BatchID} | stato: {currBatchStatus}";
logger.lg.scriviLog(message, tipoLog.ERROR);
// registro KO
answ = "KO";
}
else
{
// 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...
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;
}
// 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...
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($"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)
@@ -329,24 +576,29 @@ namespace NKC_WF.Controllers
answ = "WRONG DATA (expected baseNestAnsw object)";
}
}
catch(Exception exc)
catch
{
answ = "NO";
}
// 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)
// se è una split req --> NON resetto...
if (!isSplitReq)
{
bool nextValidSent = ComLib.sendFirstValidationBatch();
// invio notifica che c'è una busta da processare
bool resetOk = ComLib.resetBatchReq();
// se tutto ok e ci sono da validare parts --> procedo!
if (resetOk)
{
bool nextValidSent = ComLib.sendFirstValidationBatch();
}
}
}
// restituisco risposta
return answ;
}
#endregion Public Methods
}
}
}
+140
View File
@@ -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
}
}
+52 -48
View File
@@ -8,14 +8,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,7 +35,7 @@ namespace NKC_WF.Controllers
ProdBunk answ = null;
try
{
answ = ComLib.prodGetFirstBunk();
answ = ComLib.prodGetFirstBunk(CodPost);
}
catch
{ }
@@ -42,18 +50,19 @@ 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
@@ -63,9 +72,9 @@ namespace NKC_WF.Controllers
/************************************
* 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 +83,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
@@ -142,7 +116,6 @@ namespace NKC_WF.Controllers
{
// 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)
@@ -162,5 +135,36 @@ namespace NKC_WF.Controllers
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
}
}
}
+164
View File
@@ -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
}
}
+122
View File
@@ -0,0 +1,122 @@
using AppData;
using Newtonsoft.Json;
using NKC_SDK;
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
{ }
// 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
{ }
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,14 @@ namespace NKC_WF.Controllers
tab = (DataTable)DLMan.taRepIRK.GetData(intIdx, qrCodeBaseUrl);
answ.Add(memLayer.ML.cdv("ReportDS_DocIRKList"), 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;
}
+69 -63
View File
@@ -8,6 +8,8 @@ namespace NKC_WF.Controllers
{
public class SheetController : ApiController
{
#region Protected Fields
/// <summary>
/// oggetto static/singleton per fare chiamate sul datalayer
/// </summary>
@@ -17,6 +19,11 @@ namespace NKC_WF.Controllers
/// COdice macchina (HARD CODED)
/// </summary>
protected string machine = "WRK001";
#endregion Protected Fields
#region Public Methods
/// <summary>
/// Restituisce un array di sheet da lavorare (quindi NON ancora scaricati, anche di + BUNK)
/// GET: api/Sheet
@@ -26,7 +33,7 @@ namespace NKC_WF.Controllers
public SheetWorkList Get()
{
// fisso su machcina 1
string machineName = "WRK001";
string machineName = "NE02";
SheetWorkList answ = null;
try
{
@@ -36,9 +43,10 @@ namespace NKC_WF.Controllers
{ }
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>
@@ -57,9 +65,9 @@ namespace NKC_WF.Controllers
/************************************
* 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" /> -->
@@ -68,64 +76,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 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)
{
// 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);
}
}
/// <summary>
/// Processa una chiamata POST per l'invio in blocco status BUNK
/// POST: api/Bunk
@@ -168,7 +121,7 @@ namespace NKC_WF.Controllers
if (currSheet.Machining.DtEnd != null)
{
// hard coded su multiax
DLMan.taIL.updateSheetStatus(currSheet.SheetId, 1, "WRK001");
DLMan.taIL.updateSheetStatus(currSheet.SheetId, 1, sheetUpdated.Machine);
}
// segnalo avanzamento su redis x pagina unload
ComLib.advaceSheetRevByBunk(currSheet.BunkId);
@@ -194,5 +147,58 @@ namespace NKC_WF.Controllers
}
return answ;
}
/// <summary>
/// Effettua la chiamata di update x SINGOLO foglio
/// </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
}
}
}
+126
View File
@@ -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
}
}
+6 -1
View File
@@ -1,4 +1,5 @@
using System;
using SteamWare;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
@@ -9,6 +10,8 @@ namespace NKC_WF.ErrorPages
{
public partial class _400 : BasePage
{
#region Protected Methods
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
@@ -21,5 +24,7 @@ namespace NKC_WF.ErrorPages
cmp_errorDetail.ErrorExpl = traduci("Err400Expl");
cmp_errorDetail.UserName = string.IsNullOrEmpty(User.Identity.Name) ? "N.A." : User.Identity.Name;
}
#endregion Protected Methods
}
}
+6 -2
View File
@@ -6,17 +6,21 @@ namespace NKC_WF.ErrorPages
{
public partial class Oops : BasePage
{
#region Protected Methods
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
if (!Page.IsPostBack)
{
var thisMaster = ((SiteContent)this.Master);
thisMaster.showSearch = false;
thisMaster.enableAnonym = true;
}
cmp_errorDetail.ErrorTitle = traduci("SomeErrorOccurred");
cmp_errorDetail.ErrorExpl = string.IsNullOrEmpty(memLayer.ML.QSS("aspxerrorpath"))?"N.A.": traduci(memLayer.ML.QSS("aspxerrorpath"));
cmp_errorDetail.ErrorExpl = string.IsNullOrEmpty(memLayer.ML.QSS("aspxerrorpath")) ? "N.A." : traduci(memLayer.ML.QSS("aspxerrorpath"));
cmp_errorDetail.UserName = string.IsNullOrEmpty(User.Identity.Name) ? "N.A." : User.Identity.Name;
}
#endregion Protected Methods
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

+289 -105
View File
@@ -1,12 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.2.9.8\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.2.9.8\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props')" />
<Import Project="..\packages\Microsoft.NetFramework.Analyzers.2.9.8\build\Microsoft.NetFramework.Analyzers.props" Condition="Exists('..\packages\Microsoft.NetFramework.Analyzers.2.9.8\build\Microsoft.NetFramework.Analyzers.props')" />
<Import Project="..\packages\Microsoft.NetCore.Analyzers.2.9.8\build\Microsoft.NetCore.Analyzers.props" Condition="Exists('..\packages\Microsoft.NetCore.Analyzers.2.9.8\build\Microsoft.NetCore.Analyzers.props')" />
<Import Project="..\packages\Microsoft.CodeQuality.Analyzers.2.9.8\build\Microsoft.CodeQuality.Analyzers.props" Condition="Exists('..\packages\Microsoft.CodeQuality.Analyzers.2.9.8\build\Microsoft.CodeQuality.Analyzers.props')" />
<Import Project="..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.8\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.8\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props')" />
<Import Project="..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.3.2\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.3.2\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props')" />
<Import Project="..\packages\Microsoft.NetFramework.Analyzers.3.3.2\build\Microsoft.NetFramework.Analyzers.props" Condition="Exists('..\packages\Microsoft.NetFramework.Analyzers.3.3.2\build\Microsoft.NetFramework.Analyzers.props')" />
<Import Project="..\packages\Microsoft.NetCore.Analyzers.3.3.2\build\Microsoft.NetCore.Analyzers.props" Condition="Exists('..\packages\Microsoft.NetCore.Analyzers.3.3.2\build\Microsoft.NetCore.Analyzers.props')" />
<Import Project="..\packages\Microsoft.CodeQuality.Analyzers.3.3.2\build\Microsoft.CodeQuality.Analyzers.props" Condition="Exists('..\packages\Microsoft.CodeQuality.Analyzers.3.3.2\build\Microsoft.CodeQuality.Analyzers.props')" />
<Import Project="..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.2\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.2\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
@@ -25,13 +24,13 @@
<UseIISExpress>true</UseIISExpress>
<Use64BitIISExpress />
<IISExpressSSLPort>44388</IISExpressSSLPort>
<IISExpressAnonymousAuthentication>enabled</IISExpressAnonymousAuthentication>
<IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication>
<IISExpressWindowsAuthentication>enabled</IISExpressWindowsAuthentication>
<IISExpressUseClassicPipelineMode />
<UseGlobalApplicationHostFile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TypeScriptToolsVersion>3.4</TypeScriptToolsVersion>
<TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -52,29 +51,29 @@
<WarningLevel>4</WarningLevel>
</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="AspNet.ScriptManager.bootstrap, Version=4.4.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\AspNet.ScriptManager.bootstrap.4.4.1\lib\net45\AspNet.ScriptManager.bootstrap.dll</HintPath>
<Reference Include="AspNet.ScriptManager.bootstrap, Version=4.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\AspNet.ScriptManager.bootstrap.4.6.0\lib\net45\AspNet.ScriptManager.bootstrap.dll</HintPath>
</Reference>
<Reference Include="AspNet.ScriptManager.jQuery, Version=3.4.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\AspNet.ScriptManager.jQuery.3.4.1\lib\net45\AspNet.ScriptManager.jQuery.dll</HintPath>
<Reference Include="AspNet.ScriptManager.jQuery, Version=3.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\AspNet.ScriptManager.jQuery.3.6.0\lib\net45\AspNet.ScriptManager.jQuery.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>
<Reference Include="DnsClient, Version=1.3.1.0, Culture=neutral, PublicKeyToken=4574bb5573c51424, processorArchitecture=MSIL">
<HintPath>..\packages\DnsClient.1.3.1\lib\net45\DnsClient.dll</HintPath>
<Reference Include="DnsClient, Version=1.5.0.0, Culture=neutral, PublicKeyToken=4574bb5573c51424, processorArchitecture=MSIL">
<HintPath>..\packages\DnsClient.1.5.0\lib\net45\DnsClient.dll</HintPath>
</Reference>
<Reference Include="Elmah, Version=1.2.14706.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\elmah.corelibrary.1.2.2\lib\Elmah.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="ICSharpCode.SharpZipLib, Version=1.3.3.11, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
<HintPath>..\packages\SharpZipLib.1.3.3\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.SessionState.SessionStateModule, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.SessionState.SessionStateModule.1.1.0\lib\Net462\Microsoft.AspNet.SessionState.SessionStateModule.dll</HintPath>
@@ -82,33 +81,33 @@
<Reference Include="Microsoft.AspNet.Web.Optimization.WebForms, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Web.Optimization.WebForms.1.1.3\lib\net45\Microsoft.AspNet.Web.Optimization.WebForms.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Web.RedisSessionStateProvider, Version=4.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Web.RedisSessionStateProvider.4.0.1\lib\net462\Microsoft.Web.RedisSessionStateProvider.dll</HintPath>
</Reference>
<Reference Include="MongoDB.Bson, Version=2.11.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Bson.2.11.0\lib\net452\MongoDB.Bson.dll</HintPath>
<Reference Include="MongoDB.Bson, Version=2.13.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Bson.2.13.3\lib\net452\MongoDB.Bson.dll</HintPath>
</Reference>
<Reference Include="MongoDB.Driver, Version=2.11.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Driver.2.11.0\lib\net452\MongoDB.Driver.dll</HintPath>
<Reference Include="MongoDB.Driver, Version=2.13.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Driver.2.13.3\lib\net452\MongoDB.Driver.dll</HintPath>
</Reference>
<Reference Include="MongoDB.Driver.Core, Version=2.11.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Driver.Core.2.11.0\lib\net452\MongoDB.Driver.Core.dll</HintPath>
<Reference Include="MongoDB.Driver.Core, Version=2.13.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Driver.Core.2.13.3\lib\net452\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.3.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Libmongocrypt.1.3.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.1\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.7.3\lib\net45\NLog.dll</HintPath>
<HintPath>..\packages\NLog.4.7.12\lib\net45\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>
@@ -117,19 +116,22 @@
<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.16\lib\net461\Pipelines.Sockets.Unofficial.dll</HintPath>
<HintPath>..\packages\Pipelines.Sockets.Unofficial.2.2.0\lib\net461\Pipelines.Sockets.Unofficial.dll</HintPath>
</Reference>
<Reference Include="SharpCompress, Version=0.26.0.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL">
<HintPath>..\packages\SharpCompress.0.26.0\lib\net46\SharpCompress.dll</HintPath>
<Reference Include="SharpCompress, Version=0.30.1.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL">
<HintPath>..\packages\SharpCompress.0.30.1\lib\net461\SharpCompress.dll</HintPath>
</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>
<Reference Include="StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46, processorArchitecture=MSIL">
<HintPath>..\packages\StackExchange.Redis.2.1.58\lib\net461\StackExchange.Redis.dll</HintPath>
<HintPath>..\packages\StackExchange.Redis.2.2.88\lib\net461\StackExchange.Redis.dll</HintPath>
</Reference>
<Reference Include="SteamWare, Version=4.1.2008.736, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.4.1.2008.736\lib\net462\SteamWare.dll</HintPath>
<Reference Include="SteamWare, Version=5.1.2109.1716, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.5.1.2109.1716\lib\net462\SteamWare.dll</HintPath>
</Reference>
<Reference Include="SteamWare.Logger, Version=5.1.2109.1716, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.Logger.5.1.2109.1716\lib\net462\SteamWare.Logger.dll</HintPath>
</Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
@@ -139,16 +141,16 @@
<Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<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=5.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.5.0.1\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath>
</Reference>
<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.IO.Pipelines, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Pipelines.4.7.1\lib\netstandard2.0\System.IO.Pipelines.dll</HintPath>
<Reference Include="System.IO.Pipelines, Version=5.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll</HintPath>
</Reference>
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
@@ -165,8 +167,8 @@
<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.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\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>
@@ -174,34 +176,40 @@
<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.0\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
<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=5.0.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Pkcs.5.0.1\lib\net461\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.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
<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.1\lib\net461\System.Threading.Channels.dll</HintPath>
<Reference Include="System.Text.Encoding.CodePages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Encoding.CodePages.5.0.0\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Channels, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Channels.5.0.0\lib\net461\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.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.Extensions" />
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll</HintPath>
@@ -278,6 +286,8 @@
<Content Include="Content\bootstrap-reboot.min.css" />
<Content Include="Content\bootstrap.css" />
<Content Include="Content\bootstrap.min.css" />
<Content Include="Content\Chart.css" />
<Content Include="Content\Chart.min.css" />
<Content Include="Content\SheetColor.css">
<DependentUpon>SheetColor.less</DependentUpon>
</Content>
@@ -298,14 +308,8 @@
<Content Include="export\BunkDetail.aspx" />
<Content Include="Home.aspx" />
<Content Include="Images\999999999.svg" />
<Content Include="Images\LogoEgaltech.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Images\LogoSteamware.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Images\LogoEgalware.png" />
<Content Include="Images\test.svg" />
<Content Include="mongocrypt.dll" />
<Content Include="Resources\ChangeLog.html">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
@@ -319,10 +323,39 @@
<Content Include="Scripts\bootstrap.bundle.min.js" />
<Content Include="Scripts\bootstrap.js" />
<Content Include="Scripts\bootstrap.min.js" />
<Content Include="Scripts\Chart.js" />
<Content Include="Scripts\Chart.min.js" />
<Content Include="Scripts\chartjs-plugin-zoom%40next.js" />
<Content Include="Scripts\esm\popper-utils.js" />
<Content Include="Scripts\esm\popper-utils.min.js" />
<Content Include="Scripts\esm\popper.js" />
<Content Include="Scripts\esm\popper.min.js" />
<Content Include="Scripts\hammerjs%402.0.8.js" />
<Content Include="Scripts\bootstrap.min.js.map" />
<Content Include="Scripts\bootstrap.js.map" />
<Content Include="Scripts\bootstrap.bundle.min.js.map" />
<Content Include="Scripts\bootstrap.bundle.js.map" />
<Content Include="Content\bootstrap.min.css.map" />
<Content Include="Content\bootstrap.css.map" />
<Content Include="Content\bootstrap-reboot.min.css.map" />
<Content Include="Content\bootstrap-reboot.css.map" />
<Content Include="Content\bootstrap-grid.min.css.map" />
<Content Include="Content\bootstrap-grid.css.map" />
<Content Include="NLog.config" />
<Content Include="Reports\Remnant.rdlc">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="App_Readme\SteamWare_demo\example-NLog.config" />
<Content Include="App_Readme\SteamWare_demo\example-app.config" />
<None Include="Scripts\jquery-3.6.0.intellisense.js" />
<Content Include="Scripts\jquery-3.6.0.js" />
<Content Include="Scripts\jquery-3.6.0.min.js" />
<Content Include="Scripts\jquery-3.6.0.slim.js" />
<Content Include="Scripts\jquery-3.6.0.slim.min.js" />
<Content Include="Scripts\moment-with-locales.js" />
<Content Include="Scripts\moment-with-locales.min.js" />
<Content Include="Scripts\moment.js" />
<Content Include="Scripts\moment.min.js" />
<Content Include="Scripts\popper-utils.js" />
<Content Include="Scripts\popper-utils.min.js" />
<Content Include="Scripts\popper.js" />
@@ -410,6 +443,7 @@
</Content>
<Content Include="site\DBG_QRCode_Unload.aspx" />
<Content Include="site\DevUtils.aspx" />
<Content Include="site\DxfValidation.aspx" />
<Content Include="site\ErrorsLog.aspx" />
<Content Include="site\ForceReload.aspx" />
<Content Include="site\GlobalSearch.aspx" />
@@ -428,6 +462,7 @@
<Content Include="site\MachineOffline.aspx" />
<Content Include="site\MachineUnload.aspx" />
<Content Include="site\MachineUnloadSmart.aspx" />
<Content Include="site\OrderHistory.aspx" />
<Content Include="site\OrderManager.aspx" />
<Content Include="site\OrderScheduler.aspx" />
<Content Include="site\OtherItems.aspx" />
@@ -435,6 +470,8 @@
<Content Include="site\PaintingSmart.aspx" />
<Content Include="site\PartMIA.aspx" />
<Content Include="site\PartValidation.aspx" />
<Content Include="site\PlannerReports.aspx" />
<Content Include="site\RemanExtLink.aspx" />
<Content Include="site\SecondScreen.aspx" />
<Content Include="site\SvgFull.aspx" />
<Content Include="site\TestAuth.aspx" />
@@ -443,11 +480,19 @@
<Content Include="site\UpdMan.aspx" />
<Content Include="WebUserControls\cmp_barcode.ascx" />
<Content Include="WebUserControls\cmp_batchDetail.ascx" />
<Content Include="WebUserControls\cmp_batchDetailData.ascx" />
<Content Include="WebUserControls\cmp_batchDetailMongo.ascx" />
<Content Include="WebUserControls\cmp_batchDetailSplit.ascx" />
<Content Include="WebUserControls\cmp_batchDetailSplitInfo.ascx" />
<Content Include="WebUserControls\cmp_batchList.ascx" />
<Content Include="WebUserControls\cmp_BatchStatsList.ascx" />
<Content Include="WebUserControls\cmp_BatchStatsPlot.ascx" />
<Content Include="WebUserControls\cmp_binDetIRK.ascx" />
<Content Include="WebUserControls\cmp_BP_bunkList.ascx" />
<Content Include="WebUserControls\cmp_BP_sheetList.ascx" />
<Content Include="WebUserControls\cmp_cartDetIRK.ascx" />
<Content Include="WebUserControls\cmp_DailyStatsList.ascx" />
<Content Include="WebUserControls\cmp_DailyStatsPlot.ascx" />
<Content Include="WebUserControls\cmp_devUtils.ascx" />
<Content Include="WebUserControls\cmp_errDescr.ascx" />
<Content Include="WebUserControls\cmp_errorDetail.ascx" />
@@ -484,6 +529,8 @@
<Content Include="WebUserControls\cmp_KS_OtherItemsCart.ascx" />
<Content Include="WebUserControls\cmp_labelsPrint.ascx" />
<Content Include="WebUserControls\cmp_login.ascx" />
<Content Include="WebUserControls\cmp_MachSelSmart.ascx" />
<Content Include="WebUserControls\cmp_MachSem.ascx" />
<Content Include="WebUserControls\cmp_ML_ShDet.ascx" />
<Content Include="WebUserControls\cmp_MU_carts.ascx" />
<Content Include="WebUserControls\cmp_MU_Items.ascx" />
@@ -496,6 +543,7 @@
<Content Include="WebUserControls\cmp_offOrderDetail.ascx" />
<Content Include="WebUserControls\cmp_OOIL_drawings.ascx" />
<Content Include="WebUserControls\cmp_OOLI_detail.ascx" />
<Content Include="WebUserControls\cmp_orderExtList.ascx" />
<Content Include="WebUserControls\cmp_orderPrint.ascx" />
<Content Include="WebUserControls\cmp_orderRunning.ascx" />
<Content Include="WebUserControls\cmp_orderSched.ascx" />
@@ -507,10 +555,12 @@
<Content Include="WebUserControls\cmp_PartMIA_byBinID.ascx" />
<Content Include="WebUserControls\cmp_PartMIA_byCartID.ascx" />
<Content Include="WebUserControls\cmp_partMIA_byPLID.ascx" />
<Content Include="WebUserControls\cmp_reportSelector.ascx" />
<Content Include="WebUserControls\cmp_scrapList.ascx" />
<Content Include="WebUserControls\cmp_searchBin.ascx" />
<Content Include="WebUserControls\cmp_searchItems.ascx" />
<Content Include="WebUserControls\cmp_secScreen.ascx" />
<Content Include="WebUserControls\cmp_SheetsStats.ascx" />
<Content Include="WebUserControls\cmp_slider.ascx" />
<Content Include="WebUserControls\cmp_StackBuildDetail.ascx" />
<Content Include="WebUserControls\cmp_stackBuilding.ascx" />
@@ -527,8 +577,6 @@
<Content Include="WebUserControls\mod_righePag.ascx" />
<Content Include="WebUserControls\mod_vocabolario.ascx" />
<Content Include="WebUserControls\tpl_WIP.ascx" />
<Content Include="App_Readme\SteamWare_demo\example-NLog.config" />
<Content Include="App_Readme\SteamWare_demo\example-app.config" />
<None Include="compilerconfig.json" />
<None Include="compilerconfig.json.defaults">
<DependentUpon>compilerconfig.json</DependentUpon>
@@ -564,12 +612,6 @@
<Content Include="Content\OpenSansCondensed.woff">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Content\bootstrap.min.css.map" />
<Content Include="Content\bootstrap.css.map" />
<Content Include="Content\bootstrap-reboot.min.css.map" />
<Content Include="Content\bootstrap-reboot.css.map" />
<Content Include="Content\bootstrap-grid.min.css.map" />
<Content Include="Content\bootstrap-grid.css.map" />
<Content Include="Content\Roboto.woff2">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
@@ -586,10 +628,6 @@
<Content Include="Empty.Master" />
<None Include="Properties\PublishProfiles\IIS01.pubxml" />
<None Include="Properties\PublishProfiles\IIS02.pubxml" />
<Content Include="Scripts\bootstrap.min.js.map" />
<Content Include="Scripts\bootstrap.js.map" />
<Content Include="Scripts\bootstrap.bundle.min.js.map" />
<Content Include="Scripts\bootstrap.bundle.js.map" />
<Content Include="Scripts\index.js.flow" />
<Content Include="Scripts\esm\popper.min.js.map" />
<Content Include="Scripts\esm\popper.js.map" />
@@ -616,11 +654,6 @@
<Content Include="Reports\OtherPart.rdlc">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<None Include="Scripts\jquery-3.4.1.intellisense.js" />
<Content Include="Scripts\jquery-3.4.1.js" />
<Content Include="Scripts\jquery-3.4.1.min.js" />
<Content Include="Scripts\jquery-3.4.1.slim.js" />
<Content Include="Scripts\jquery-3.4.1.slim.min.js" />
<Content Include="Scripts\modernizr-2.8.3.js" />
<Content Include="Scripts\WebForms\DetailsView.js" />
<Content Include="Scripts\WebForms\Focus.js" />
@@ -655,7 +688,11 @@
<Compile Include="App_Start\NKC_Startup.cs" />
<Compile Include="Compressor.cs" />
<Compile Include="Controllers\AliveController.cs" />
<Compile Include="Controllers\DayStatsController.cs" />
<Compile Include="Controllers\BatchStatsController.cs" />
<Compile Include="Controllers\getMUSheetRevController.cs" />
<Compile Include="Controllers\MachineStatController.cs" />
<Compile Include="Controllers\SheetStatsController.cs" />
<Compile Include="Controllers\PrintQueueController.cs" />
<Compile Include="Controllers\PrintQueueConfController.cs" />
<Compile Include="Controllers\PrintQueueLenController.cs" />
@@ -808,6 +845,13 @@
<Compile Include="site\DevUtils.aspx.designer.cs">
<DependentUpon>DevUtils.aspx</DependentUpon>
</Compile>
<Compile Include="site\DxfValidation.aspx.cs">
<DependentUpon>DxfValidation.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="site\DxfValidation.aspx.designer.cs">
<DependentUpon>DxfValidation.aspx</DependentUpon>
</Compile>
<Compile Include="site\ErrorsLog.aspx.cs">
<DependentUpon>ErrorsLog.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -923,6 +967,13 @@
<Compile Include="site\MachineUnloadSmart.aspx.designer.cs">
<DependentUpon>MachineUnloadSmart.aspx</DependentUpon>
</Compile>
<Compile Include="site\OrderHistory.aspx.cs">
<DependentUpon>OrderHistory.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="site\OrderHistory.aspx.designer.cs">
<DependentUpon>OrderHistory.aspx</DependentUpon>
</Compile>
<Compile Include="site\OrderManager.aspx.cs">
<DependentUpon>OrderManager.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -973,6 +1024,20 @@
<DependentUpon>PartValidation.aspx</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="site\PlannerReports.aspx.cs">
<DependentUpon>PlannerReports.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="site\PlannerReports.aspx.designer.cs">
<DependentUpon>PlannerReports.aspx</DependentUpon>
</Compile>
<Compile Include="site\RemanExtLink.aspx.cs">
<DependentUpon>RemanExtLink.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="site\RemanExtLink.aspx.designer.cs">
<DependentUpon>RemanExtLink.aspx</DependentUpon>
</Compile>
<Compile Include="site\SecondScreen.aspx.cs">
<DependentUpon>SecondScreen.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -1057,6 +1122,34 @@
<Compile Include="WebUserControls\cmp_batchDetail.ascx.designer.cs">
<DependentUpon>cmp_batchDetail.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_batchDetailData.ascx.cs">
<DependentUpon>cmp_batchDetailData.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_batchDetailData.ascx.designer.cs">
<DependentUpon>cmp_batchDetailData.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_batchDetailMongo.ascx.cs">
<DependentUpon>cmp_batchDetailMongo.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_batchDetailMongo.ascx.designer.cs">
<DependentUpon>cmp_batchDetailMongo.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_batchDetailSplit.ascx.cs">
<DependentUpon>cmp_batchDetailSplit.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_batchDetailSplit.ascx.designer.cs">
<DependentUpon>cmp_batchDetailSplit.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_batchDetailSplitInfo.ascx.cs">
<DependentUpon>cmp_batchDetailSplitInfo.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_batchDetailSplitInfo.ascx.designer.cs">
<DependentUpon>cmp_batchDetailSplitInfo.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_batchList.ascx.cs">
<DependentUpon>cmp_batchList.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -1064,6 +1157,20 @@
<Compile Include="WebUserControls\cmp_batchList.ascx.designer.cs">
<DependentUpon>cmp_batchList.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_BatchStatsList.ascx.cs">
<DependentUpon>cmp_BatchStatsList.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_BatchStatsList.ascx.designer.cs">
<DependentUpon>cmp_BatchStatsList.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_BatchStatsPlot.ascx.cs">
<DependentUpon>cmp_BatchStatsPlot.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_BatchStatsPlot.ascx.designer.cs">
<DependentUpon>cmp_BatchStatsPlot.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_binDetIRK.ascx.cs">
<DependentUpon>cmp_binDetIRK.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -1092,6 +1199,20 @@
<Compile Include="WebUserControls\cmp_cartDetIRK.ascx.designer.cs">
<DependentUpon>cmp_cartDetIRK.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_DailyStatsList.ascx.cs">
<DependentUpon>cmp_DailyStatsList.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_DailyStatsList.ascx.designer.cs">
<DependentUpon>cmp_DailyStatsList.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_DailyStatsPlot.ascx.cs">
<DependentUpon>cmp_DailyStatsPlot.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_DailyStatsPlot.ascx.designer.cs">
<DependentUpon>cmp_DailyStatsPlot.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_devUtils.ascx.cs">
<DependentUpon>cmp_devUtils.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -1122,6 +1243,7 @@
</Compile>
<Compile Include="WebUserControls\cmp_fileUpload.ascx.cs">
<DependentUpon>cmp_fileUpload.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_fileUpload.ascx.designer.cs">
<DependentUpon>cmp_fileUpload.ascx</DependentUpon>
@@ -1357,6 +1479,20 @@
<Compile Include="WebUserControls\cmp_login.ascx.designer.cs">
<DependentUpon>cmp_login.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_MachSelSmart.ascx.cs">
<DependentUpon>cmp_MachSelSmart.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_MachSelSmart.ascx.designer.cs">
<DependentUpon>cmp_MachSelSmart.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_MachSem.ascx.cs">
<DependentUpon>cmp_MachSem.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_MachSem.ascx.designer.cs">
<DependentUpon>cmp_MachSem.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_menuTop.ascx.cs">
<DependentUpon>cmp_menuTop.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -1448,6 +1584,13 @@
<Compile Include="WebUserControls\cmp_OOLI_detail.ascx.designer.cs">
<DependentUpon>cmp_OOLI_detail.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_orderExtList.ascx.cs">
<DependentUpon>cmp_orderExtList.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_orderExtList.ascx.designer.cs">
<DependentUpon>cmp_orderExtList.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_orderPrint.ascx.cs">
<DependentUpon>cmp_orderPrint.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -1525,6 +1668,13 @@
<Compile Include="WebUserControls\cmp_partMIA_byPLID.ascx.designer.cs">
<DependentUpon>cmp_partMIA_byPLID.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_reportSelector.ascx.cs">
<DependentUpon>cmp_reportSelector.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_reportSelector.ascx.designer.cs">
<DependentUpon>cmp_reportSelector.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_scrapList.ascx.cs">
<DependentUpon>cmp_scrapList.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -1553,6 +1703,13 @@
<Compile Include="WebUserControls\cmp_secScreen.ascx.designer.cs">
<DependentUpon>cmp_secScreen.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_SheetsStats.ascx.cs">
<DependentUpon>cmp_SheetsStats.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_SheetsStats.ascx.designer.cs">
<DependentUpon>cmp_SheetsStats.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_slider.ascx.cs">
<DependentUpon>cmp_slider.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -1672,8 +1829,6 @@
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<Content Include="Scripts\jquery-3.4.1.slim.min.map" />
<Content Include="Scripts\jquery-3.4.1.min.map" />
<Content Include="SiteContent.master" />
<Content Include="temp\PlaceHolder.file">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
@@ -1692,12 +1847,19 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="temp\none.pdf" />
<Content Include="Scripts\moment.min.js.map" />
<Content Include="Scripts\moment-with-locales.min.js.map" />
<Content Include="Scripts\jquery-3.6.0.slim.min.map" />
<Content Include="Scripts\jquery-3.6.0.min.map" />
<None Include="Web.Debug-LELE.config">
<DependentUpon>Web.config</DependentUpon>
</None>
<None Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
</None>
<None Include="Web.IIS02.config">
<DependentUpon>Web.config</DependentUpon>
</None>
<None Include="Web.Prod.config">
<DependentUpon>Web.config</DependentUpon>
</None>
@@ -1721,17 +1883,6 @@
<ItemGroup>
<TypeScriptCompile Include="Scripts\index.d.ts" />
</ItemGroup>
<ItemGroup>
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.8\analyzers\dotnet\cs\Microsoft.CodeAnalysis.VersionCheckAnalyzer.resources.dll" />
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.8\analyzers\dotnet\Microsoft.CodeAnalysis.VersionCheckAnalyzer.dll" />
<Analyzer Include="..\packages\Microsoft.CodeQuality.Analyzers.2.9.8\analyzers\dotnet\cs\Humanizer.dll" />
<Analyzer Include="..\packages\Microsoft.CodeQuality.Analyzers.2.9.8\analyzers\dotnet\cs\Microsoft.CodeQuality.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.CodeQuality.Analyzers.2.9.8\analyzers\dotnet\cs\Microsoft.CodeQuality.CSharp.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.NetCore.Analyzers.2.9.8\analyzers\dotnet\cs\Microsoft.NetCore.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.NetCore.Analyzers.2.9.8\analyzers\dotnet\cs\Microsoft.NetCore.CSharp.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.NetFramework.Analyzers.2.9.8\analyzers\dotnet\cs\Microsoft.NetFramework.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.NetFramework.Analyzers.2.9.8\analyzers\dotnet\cs\Microsoft.NetFramework.CSharp.Analyzers.dll" />
</ItemGroup>
<ItemGroup>
<Content Include="Reports\IRK_Kitting_Group.rdlc">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
@@ -1740,6 +1891,17 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.2\analyzers\dotnet\cs\Microsoft.CodeAnalysis.VersionCheckAnalyzer.resources.dll" />
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.2\analyzers\dotnet\Microsoft.CodeAnalysis.VersionCheckAnalyzer.dll" />
<Analyzer Include="..\packages\Microsoft.CodeQuality.Analyzers.3.3.2\analyzers\dotnet\cs\Humanizer.dll" />
<Analyzer Include="..\packages\Microsoft.CodeQuality.Analyzers.3.3.2\analyzers\dotnet\cs\Microsoft.CodeQuality.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.CodeQuality.Analyzers.3.3.2\analyzers\dotnet\cs\Microsoft.CodeQuality.CSharp.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.NetCore.Analyzers.3.3.2\analyzers\dotnet\cs\Microsoft.NetCore.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.NetCore.Analyzers.3.3.2\analyzers\dotnet\cs\Microsoft.NetCore.CSharp.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.NetFramework.Analyzers.3.3.2\analyzers\dotnet\cs\Microsoft.NetFramework.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.NetFramework.Analyzers.3.3.2\analyzers\dotnet\cs\Microsoft.NetFramework.CSharp.Analyzers.dll" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
@@ -1764,6 +1926,17 @@
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'IIS02|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
@@ -1774,9 +1947,9 @@
<WebProjectProperties>
<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>61257</DevelopmentServerPort>
<DevelopmentServerPort>44388</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>https://localhost:44388/</IISUrl>
<IISUrl>https://localhost:44393/</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
@@ -1790,15 +1963,20 @@
<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\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
<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.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\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.8\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.8\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeQuality.Analyzers.2.9.8\build\Microsoft.CodeQuality.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeQuality.Analyzers.2.9.8\build\Microsoft.CodeQuality.Analyzers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.NetCore.Analyzers.2.9.8\build\Microsoft.NetCore.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.NetCore.Analyzers.2.9.8\build\Microsoft.NetCore.Analyzers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.NetFramework.Analyzers.2.9.8\build\Microsoft.NetFramework.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.NetFramework.Analyzers.2.9.8\build\Microsoft.NetFramework.Analyzers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.2.9.8\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.2.9.8\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props'))" />
<Error Condition="!Exists('..\packages\MongoDB.Driver.Core.2.11.0\build\MongoDB.Driver.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MongoDB.Driver.Core.2.11.0\build\MongoDB.Driver.Core.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.2\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.2\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.2\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.2\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeQuality.Analyzers.3.3.2\build\Microsoft.CodeQuality.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeQuality.Analyzers.3.3.2\build\Microsoft.CodeQuality.Analyzers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeQuality.Analyzers.3.3.2\build\Microsoft.CodeQuality.Analyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeQuality.Analyzers.3.3.2\build\Microsoft.CodeQuality.Analyzers.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.NetCore.Analyzers.3.3.2\build\Microsoft.NetCore.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.NetCore.Analyzers.3.3.2\build\Microsoft.NetCore.Analyzers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.NetCore.Analyzers.3.3.2\build\Microsoft.NetCore.Analyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.NetCore.Analyzers.3.3.2\build\Microsoft.NetCore.Analyzers.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.NetFramework.Analyzers.3.3.2\build\Microsoft.NetFramework.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.NetFramework.Analyzers.3.3.2\build\Microsoft.NetFramework.Analyzers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.NetFramework.Analyzers.3.3.2\build\Microsoft.NetFramework.Analyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.NetFramework.Analyzers.3.3.2\build\Microsoft.NetFramework.Analyzers.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.3.2\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.3.2\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.3.2\build\Microsoft.CodeAnalysis.FxCopAnalyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.3.2\build\Microsoft.CodeAnalysis.FxCopAnalyzers.targets'))" />
<Error Condition="!Exists('..\packages\MongoDB.Libmongocrypt.1.3.0\build\MongoDB.Libmongocrypt.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MongoDB.Libmongocrypt.1.3.0\build\MongoDB.Libmongocrypt.targets'))" />
<Error Condition="!Exists('..\packages\MongoDB.Driver.Core.2.13.3\build\MongoDB.Driver.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MongoDB.Driver.Core.2.13.3\build\MongoDB.Driver.Core.targets'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
@@ -1820,6 +1998,12 @@
<CallTarget Targets="ApplyWebConfigTransform" />
</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.0.0\build\MongoDB.Libmongocrypt.targets" Condition="Exists('..\packages\MongoDB.Libmongocrypt.1.0.0\build\MongoDB.Libmongocrypt.targets')" />
<Import Project="..\packages\MongoDB.Driver.Core.2.11.0\build\MongoDB.Driver.Core.targets" Condition="Exists('..\packages\MongoDB.Driver.Core.2.11.0\build\MongoDB.Driver.Core.targets')" />
<Import Project="..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.2\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.targets" Condition="Exists('..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.2\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.targets')" />
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.targets" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.targets')" />
<Import Project="..\packages\Microsoft.CodeQuality.Analyzers.3.3.2\build\Microsoft.CodeQuality.Analyzers.targets" Condition="Exists('..\packages\Microsoft.CodeQuality.Analyzers.3.3.2\build\Microsoft.CodeQuality.Analyzers.targets')" />
<Import Project="..\packages\Microsoft.NetCore.Analyzers.3.3.2\build\Microsoft.NetCore.Analyzers.targets" Condition="Exists('..\packages\Microsoft.NetCore.Analyzers.3.3.2\build\Microsoft.NetCore.Analyzers.targets')" />
<Import Project="..\packages\Microsoft.NetFramework.Analyzers.3.3.2\build\Microsoft.NetFramework.Analyzers.targets" Condition="Exists('..\packages\Microsoft.NetFramework.Analyzers.3.3.2\build\Microsoft.NetFramework.Analyzers.targets')" />
<Import Project="..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.3.2\build\Microsoft.CodeAnalysis.FxCopAnalyzers.targets" Condition="Exists('..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.3.2\build\Microsoft.CodeAnalysis.FxCopAnalyzers.targets')" />
<Import Project="..\packages\MongoDB.Libmongocrypt.1.3.0\build\MongoDB.Libmongocrypt.targets" Condition="Exists('..\packages\MongoDB.Libmongocrypt.1.3.0\build\MongoDB.Libmongocrypt.targets')" />
<Import Project="..\packages\MongoDB.Driver.Core.2.13.3\build\MongoDB.Driver.Core.targets" Condition="Exists('..\packages\MongoDB.Driver.Core.2.13.3\build\MongoDB.Driver.Core.targets')" />
</Project>
+29
View File
@@ -0,0 +1,29 @@
<?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 variabeles
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 async="true">
<target xsi:type="File"
name="NKC"
fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="NKC" />
</rules>
</nlog>
+315
View File
@@ -0,0 +1,315 @@
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<Body>
<ReportItems>
<Tablix Name="List1">
<TablixBody>
<TablixColumns>
<TablixColumn>
<Width>3.91275in</Width>
</TablixColumn>
</TablixColumns>
<TablixRows>
<TablixRow>
<Height>1.98819in</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Rectangle Name="List1_Contents">
<ReportItems>
<Textbox Name="Destination">
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=First(Fields!DescRemnant01.Value)</Value>
<Style>
<FontFamily>Verdana Pro Cond</FontFamily>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Destination</rd:DefaultName>
<Top>2.02671cm</Top>
<Left>3.73239cm</Left>
<Height>0.3875in</Height>
<Width>2.44331in</Width>
<Style>
<Border>
<Style>None</Style>
</Border>
<VerticalAlign>Middle</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Image Name="QRCode">
<Source>External</Source>
<Value>=Replace(Fields!QRCodeBaseUrl.Value.ToString(),"QRCODEVALUE",Fields!CodRemnant.Value.ToString())
' la stringa nel Campo è https://qrcode.steamware.net/HOME/QR_site/JSON?val={'baseUrl':'{0}','parameters':\['QRCODEVALUE'\]}
' dove la \ prima della [ serve perchè è una stringa quindi si trasforma poi in
' https://qrcode.steamware.net/HOME/QR_site/JSON?val={'baseUrl':'{0}','parameters':['QRCODEVALUE']}
'https://qrcode.steamware.net/HOME/QR_site/JSON?val={'baseUrl':'http://10.74.82.219/StockMan/STEA/Items/Details/{0}?StockItemID={0}','parameters':['VARIABILE']}</Value>
<Sizing>FitProportional</Sizing>
<Top>0.2875in</Top>
<Left>0.1in</Left>
<Height>1.3in</Height>
<Width>1.3in</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Textbox Name="ExtCode">
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=First(Fields!DescRemnant02.Value)</Value>
<Style>
<FontFamily>Verdana Pro Cond Light</FontFamily>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<Top>3.18736cm</Top>
<Left>3.73239cm</Left>
<Height>0.33264in</Height>
<Width>2.44331in</Width>
<ZIndex>2</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<VerticalAlign>Middle</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="MatrixCode">
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=First(Fields!CodRemnant.Value)</Value>
<Style>
<FontFamily>Verdana Pro Cond Semibold</FontFamily>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<Top>0.73025cm</Top>
<Left>3.73239cm</Left>
<Height>0.44097in</Height>
<Width>2.41553in</Width>
<ZIndex>3</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<VerticalAlign>Middle</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<KeepTogether>true</KeepTogether>
<Style>
<Border>
<Color>Gray</Color>
<Style>Solid</Style>
<Width>0.5pt</Width>
</Border>
<TopBorder>
<Color>Gray</Color>
<Style>Solid</Style>
<Width>0.5pt</Width>
</TopBorder>
<BottomBorder>
<Color>Gray</Color>
<Style>Solid</Style>
<Width>0.5pt</Width>
</BottomBorder>
<LeftBorder>
<Color>Gray</Color>
<Style>Solid</Style>
<Width>0.5pt</Width>
</LeftBorder>
<RightBorder>
<Color>Gray</Color>
<Style>Solid</Style>
<Width>0.5pt</Width>
</RightBorder>
</Style>
</Rectangle>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
</TablixRows>
</TablixBody>
<TablixColumnHierarchy>
<TablixMembers>
<TablixMember />
</TablixMembers>
</TablixColumnHierarchy>
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<Group Name="list1_Index">
<GroupExpressions>
<GroupExpression>=Fields!CodRemnant.Value</GroupExpression>
</GroupExpressions>
</Group>
<DataElementOutput>Output</DataElementOutput>
<KeepTogether>true</KeepTogether>
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
<DataSetName>stp_prt_Remnant</DataSetName>
<PageBreak>
<BreakLocation>End</BreakLocation>
</PageBreak>
<Height>1.98819in</Height>
<Width>3.91275in</Width>
<Style>
<FontFamily>Tahoma</FontFamily>
<FontSize>14pt</FontSize>
<Color>SlateGray</Color>
</Style>
</Tablix>
</ReportItems>
<Height>1.98819in</Height>
<Style />
</Body>
<Width>3.91275in</Width>
<Page>
<PageHeight>2in</PageHeight>
<PageWidth>4.09in</PageWidth>
<Style />
</Page>
<Author>v. 1.0.1</Author>
<AutoRefresh>0</AutoRefresh>
<DataSources>
<DataSource Name="Sauder_NKC">
<DataSourceReference>Sauder_NKC</DataSourceReference>
<rd:SecurityType>None</rd:SecurityType>
<rd:DataSourceID>7e875094-37e0-46d4-8db0-d51955773fb0</rd:DataSourceID>
</DataSource>
</DataSources>
<DataSets>
<DataSet Name="stp_prt_Remnant">
<Query>
<DataSourceName>Sauder_NKC</DataSourceName>
<QueryParameters>
<QueryParameter Name="@CodRemnant">
<Value>=Parameters!CodRemnant.Value</Value>
</QueryParameter>
<QueryParameter Name="@DescRemnant01">
<Value>=Parameters!DescRemnant01.Value</Value>
</QueryParameter>
<QueryParameter Name="@QRCodeBaseUrl">
<Value>=Parameters!QRCodeBaseUrl.Value</Value>
</QueryParameter>
<QueryParameter Name="@DescRemnant02">
<Value>=Parameters!DescRemnant02.Value</Value>
</QueryParameter>
</QueryParameters>
<CommandType>StoredProcedure</CommandType>
<CommandText>prt.stp_prt_Remnant</CommandText>
<rd:UseGenericDesigner>true</rd:UseGenericDesigner>
</Query>
<Fields>
<Field Name="CodRemnant">
<DataField>CodRemnant</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="DescRemnant01">
<DataField>DescRemnant01</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="DescRemnant02">
<DataField>DescRemnant02</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="QRCodeBaseUrl">
<DataField>QRCodeBaseUrl</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
</DataSet>
</DataSets>
<ReportParameters>
<ReportParameter Name="QRCodeBaseUrl">
<DataType>String</DataType>
<Nullable>true</Nullable>
<DefaultValue>
<Values>
<Value>https://qrcode.steamware.net/HOME/QR_site/JSON?val={'baseUrl':'{0}','parameters':['QRCODEVALUE']}</Value>
</Values>
</DefaultValue>
<AllowBlank>true</AllowBlank>
<Prompt>QRCodeBaseURL:</Prompt>
</ReportParameter>
<ReportParameter Name="CodRemnant">
<DataType>String</DataType>
<DefaultValue>
<Values>
<Value>MT00006474-15240000-15240000</Value>
</Values>
</DefaultValue>
<Prompt>Cod Remnant</Prompt>
</ReportParameter>
<ReportParameter Name="DescRemnant01">
<DataType>String</DataType>
<DefaultValue>
<Values>
<Value>6474 PW,18MMX60X60,BALTIC BIRCH</Value>
</Values>
</DefaultValue>
<Prompt>Desc Remnant01</Prompt>
</ReportParameter>
<ReportParameter Name="DescRemnant02">
<DataType>String</DataType>
<DefaultValue>
<Values>
<Value>6474 LxWxT 1524.000 x 1524.0000 x 18.000</Value>
</Values>
</DefaultValue>
<Prompt>Desc Remnant02</Prompt>
</ReportParameter>
</ReportParameters>
<Language>en-US</Language>
<ConsumeContainerWhitespace>true</ConsumeContainerWhitespace>
<rd:ReportUnitType>Inch</rd:ReportUnitType>
<rd:ReportID>42b91d77-5259-4b9b-b313-695cd28dd977</rd:ReportID>
</Report>
+209 -149
View File
@@ -1,152 +1,212 @@
[
{
"name": "queueUnloadBin",
"template": "Bin.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueUnloadCart",
"template": "Cart.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueBunk",
"template": "BunkGroup.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueBunkDetail",
"template": "BunkList.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queuePaint",
"template": "Bin.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queuePart",
"template": "Part.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "2in",
"PageWidth": "4.09in",
"MarginLeft": "0in",
"MarginRight": "0in",
"MarginTop": "0in",
"MarginBottom": "0in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>4.09in</PageWidth><PageHeight>2in</PageHeight><MarginTop>0in</MarginTop><MarginLeft>0in</MarginLeft><MarginRight>0in</MarginRight><MarginBottom>0in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueOtherPart",
"template": "OtherPart.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "2in",
"PageWidth": "4.09in",
"MarginLeft": "0in",
"MarginRight": "0in",
"MarginTop": "0in",
"MarginBottom": "0in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>4.09in</PageWidth><PageHeight>2in</PageHeight><MarginTop>0in</MarginTop><MarginLeft>0in</MarginLeft><MarginRight>0in</MarginRight><MarginBottom>0in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueOffline",
"template": "Part.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "2in",
"PageWidth": "4.09in",
"MarginLeft": "0in",
"MarginRight": "0in",
"MarginTop": "0in",
"MarginBottom": "0in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueIRKGroup",
"template": "IRK_Kitting_Group.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueIRKList",
"template": "IRK_Kitting_List.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
{
"name": "queueUnloadBinNE01",
"template": "Bin.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueUnloadBinNE02",
"template": "Bin.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueUnloadCartNE01",
"template": "Cart.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueUnloadCartNE02",
"template": "Cart.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueBunk",
"template": "BunkGroup.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueBunkDetail",
"template": "BunkList.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queuePaint",
"template": "Bin.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queuePartNE01",
"template": "Part.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "2in",
"PageWidth": "4.09in",
"MarginLeft": "0in",
"MarginRight": "0in",
"MarginTop": "0in",
"MarginBottom": "0in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>4.09in</PageWidth><PageHeight>2in</PageHeight><MarginTop>0in</MarginTop><MarginLeft>0in</MarginLeft><MarginRight>0in</MarginRight><MarginBottom>0in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queuePartNE02",
"template": "Part.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "2in",
"PageWidth": "4.09in",
"MarginLeft": "0in",
"MarginRight": "0in",
"MarginTop": "0in",
"MarginBottom": "0in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>4.09in</PageWidth><PageHeight>2in</PageHeight><MarginTop>0in</MarginTop><MarginLeft>0in</MarginLeft><MarginRight>0in</MarginRight><MarginBottom>0in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueOtherPart",
"template": "OtherPart.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "2in",
"PageWidth": "4.09in",
"MarginLeft": "0in",
"MarginRight": "0in",
"MarginTop": "0in",
"MarginBottom": "0in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>4.09in</PageWidth><PageHeight>2in</PageHeight><MarginTop>0in</MarginTop><MarginLeft>0in</MarginLeft><MarginRight>0in</MarginRight><MarginBottom>0in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueOffline",
"template": "Part.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "2in",
"PageWidth": "4.09in",
"MarginLeft": "0in",
"MarginRight": "0in",
"MarginTop": "0in",
"MarginBottom": "0in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueIRKGroup",
"template": "IRK_Kitting_Group.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueIRKList",
"template": "IRK_Kitting_List.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "11in",
"PageWidth": "8.5in",
"MarginLeft": "0.5in",
"MarginRight": "0.5in",
"MarginTop": "0.5in",
"MarginBottom": "0.5in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight><MarginTop>0.5in</MarginTop><MarginLeft>0.5in</MarginLeft><MarginRight>0.5in</MarginRight><MarginBottom>0.5in</MarginBottom></DeviceInfo>"
}
},
{
"name": "queueRemnants",
"template": "Remnant.rdlc",
"printerName": "Microsoft Print to PDF",
"deviceInfoParam": {
"OutputFormat": "EMF",
"PageHeight": "2in",
"PageWidth": "4.09in",
"MarginLeft": "0in",
"MarginRight": "0in",
"MarginTop": "0in",
"MarginBottom": "0in",
"xmlParam": "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>4.09in</PageWidth><PageHeight>2in</PageHeight><MarginTop>0in</MarginTop><MarginLeft>0in</MarginLeft><MarginRight>0in</MarginRight><MarginBottom>0in</MarginBottom></DeviceInfo>"
}
}
]
+4 -4
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>0.0.0.0</version>
<url>http://seriate.steamware.net:8083/SWS/NKC/{{BRANCHNAME}}/{{PACKNAME}}.zip</url>
<changelog>http://seriate.steamware.net:8083/SWS/NKC/{{BRANCHNAME}}/ChangeLog.html</changelog>
<mandatory>false</mandatory>
<version>0.0.0.0</version>
<url>https://nexus.steamware.net/repository/SWS/NKC/{{BRANCHNAME}}/LAST/NKC.zip</url>
<changelog>https://nexus.steamware.net/repository/SWS/NKC/{{BRANCHNAME}}/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>
</item>
+16151
View File
File diff suppressed because it is too large Load Diff
+7
View File
File diff suppressed because one or more lines are too long
+861 -950
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

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