diff --git a/GMW-RT/bin/GMW-RT.dll b/GMW-RT/bin/GMW-RT.dll index 7133721f..4f71b00c 100644 Binary files a/GMW-RT/bin/GMW-RT.dll and b/GMW-RT/bin/GMW-RT.dll differ diff --git a/GMW-RT/bin/GMW_data.dll b/GMW-RT/bin/GMW_data.dll index 24b19bb1..0549fd11 100644 Binary files a/GMW-RT/bin/GMW_data.dll and b/GMW-RT/bin/GMW_data.dll differ diff --git a/GMW-UT/bin/GMW-UT.dll b/GMW-UT/bin/GMW-UT.dll index 567c5fa0..05473ff0 100644 Binary files a/GMW-UT/bin/GMW-UT.dll and b/GMW-UT/bin/GMW-UT.dll differ diff --git a/GMW-UT/bin/GMW_data.dll b/GMW-UT/bin/GMW_data.dll index 24b19bb1..0549fd11 100644 Binary files a/GMW-UT/bin/GMW_data.dll and b/GMW-UT/bin/GMW_data.dll differ diff --git a/GMW/App_Readme/AppuntiFixAuth.txt b/GMW/App_Readme/AppuntiFixAuth.txt new file mode 100644 index 00000000..e3138082 --- /dev/null +++ b/GMW/App_Readme/AppuntiFixAuth.txt @@ -0,0 +1,196 @@ +integrazione OpAuth + num keyb +0) nuova string... + + /// + /// dati x verifica CodSoggetto / matricola + /// + protected string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); + +1) integrazione di + PageLoad + + if (!Page.IsPostBack) + { + ... + checkNumKeyIn(); + } + + /// + /// verifico se ci sia in sessione un input da NumKeyb e nel caso lometto in barcodeIn e processo... + /// + private void checkNumKeyIn() + { + if (memLayer.ML.isInSessionObject("numKeyIn")) + { + barcodeIn = memLayer.ML.StringSessionObj("numKeyIn"); + // svuoto valore in sessione... + memLayer.ML.emptySessionVal("numKeyIn"); + // controllo barcode... + checkBarcode(); + } + } + + +2) integrazione di + public tipoCodiceBarcode tipoBCode + + int matricola = -1; + // provo a convertire in intero barcode x verifica eventuale matricola... + try + { + matricola = Convert.ToInt32(barcodeIn); + } + catch + { } + + .... + + else if (barcodeIn.StartsWith(preCodSogg)) + { + // cerco cod soggetto... + if (DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } + else if (matricola >= 0) + { + if (DataProxy.obj.taTrascSogg.getByKey("", matricola).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } + else + { + +3) modifica di + checkBarcode + + case tipoCodiceBarcode.Operatore: + // calcolo matricola utente + int MatrUtente = -1; + string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); + if (barcodeIn.StartsWith(preCodSogg)) + { + MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola; + } + else + { + MatrUtente = Convert.ToInt32(barcodeIn); + } + if (MatrUtente >= 0) + { + // salvo in sessione operatore con AUTH + OpAuth.startOpAuth(MatrUtente); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRec"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + else + { + Postazione.messaggiText += " - codice non riconosciuto!"; + Postazione.CssClass = "stileComandoND"; + } + break; + default: + // cerco se sia "0" = reset utente... + if (barcodeIn == memLayer.ML.CRS("resetCodSogg")) + { + // salvo in sessione operatore con AUTH + OpAuth.stopAuth(); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRem"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + ... + break; + } + ... + } +#if false + else + { + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + } +#endif + doUpdate(); + +4) modifica procedure di stampa + + protected void lbtStampaUDC_Click(object sender, EventArgs e) + { + bool needsRedirect = false; + // verifico postazione x procedere... + if (Postazione.printer != "n.d.") + { + // verifico auth utente OPPURE se NON sia richiesta... + if (OpAuth.isAuth || !OpAuth.opAuthReq) + { + ... + try + { + // creo nuovo UDC del trattamento liquidi + ... + + if (OpAuth.isAuth) + { + // salvo attributo dell'OpAuth... + MagClass.magazzino.taAtt2UDC.Insert(newUdcChild, memLayer.ML.CRS("attrOpAuth"), OpAuth.currAuth.CodSoggetto, DateTime.Now, codSogg); + // consumo una auth... + OpAuth.currAuth.remAuth--; + if (OpAuth.currAuth.remAuth == 0) + { + OpAuth.stopAuth(); + needsRedirect = true; + } + } + + // registro creazione nuovo UDC + ... + } + ... + } + else + { + Postazione.messaggiText = traduci("noOpAuth"); + Postazione.CssClass = "stileComandoKo"; + httpLog(string.Format("Errore manca OpAuth x UDC anime"), tipoLog.ERROR); + } + } + else + { + Response.Redirect("~/menu.aspx"); + } + ... + + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + if(needsRedirect) + { + Response.Redirect(user_std.pagCorrente); + } + } + +5) svuoto note con reset.. + /// + /// svuoto le note + /// + /// + /// + protected void btnEmptyNote_Click(object sender, EventArgs e) + { + txtNote.Text = ""; + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + } \ No newline at end of file diff --git a/GMW/Content/Style.css b/GMW/Content/Style.css index bac1be7b..7e49ecc5 100644 --- a/GMW/Content/Style.css +++ b/GMW/Content/Style.css @@ -1,4 +1,4 @@ -.warnRed { +.warnRed { color: red; } .warnOrange { @@ -11,6 +11,35 @@ padding: 0 !important; margin: 0 !important; } +.noShadows { + text-shadow: none; +} +.checkOk { + color: #99FF99; +} +.checkKo { + color: #5f2121; +} +.divNumKeyb { + float: right; + /*margin: 2px;*/ + padding: 4px; + border: 4px solid rgba(120, 120, 185, 0.6); + background-color: rgba(190, 190, 255, 0.4); + width: 20%; + min-width: 100px; + min-height: 280px; +} +.divMain { + float: none; +} +.divMainKeyb { + float: right; + width: 80%; +} +.img-thumbnail { + max-width: 70%; +} /*------------------------------------------------------------------ [ navbar / .navbar ] */ @@ -34,6 +63,34 @@ .navbar.navbar-inverse .navbar-form .search-query::-moz-placeholder { color: #666; } +.nav > li > a { + padding: 4px 8px; + font-size: 1em; + line-height: 1em; +} +.navbar-nav { + margin: 5px 2px; +} +.navbar-brand { + font-size: 1.2em; + line-height: 1.3em; + height: 30px; +} +.navbar-header { + /*float: none;*/ +} +.navbarSep { + border-right: 1px solid #999; +} +.navbar > .container .navbar-brand, +.navbar > .container-fluid .navbar-brand { + margin-left: 0px; +} +.navbar-inverse .navbar-nav > .active > a { + background: #333; + color: #F90; + margin: -5px; +} /*------------------------------------------------------------------ [ Subnavbar / .subnavbar ] */ @@ -539,7 +596,7 @@ margin-bottom: 0; } .navbar .btn-navbar { - font-size: 18px; + font-size: 16px; background: none; filter: none; border: none; @@ -556,24 +613,23 @@ /* Extra small devices (phones, up to 480px) */ /* No media query since this is the default in Bootstrap */ @media (max-width: 768px) { - .navbar { - padding-left: 10px; - padding-right: 10px; - margin-right: -20px; - margin-left: -20px; + body { + font-size: 12px; } - .navbar .navbar-nav > li > .dropdown-menu::before, - .navbar .navbar-nav > li > .dropdown-menu::after { - display: none; + .navbar .mainnav > li > a { + padding: 0 10px; + font-size: 1em; + line-height: 1em; + } + .navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + font-size: 1em; + line-height: 1em; } .subnavbar .subnav-toggle { display: block; } - #main { - padding: 0 10px; - margin-right: -20px; - margin-left: -20px; - } .extra { margin-right: -20px; margin-left: -20px; @@ -647,12 +703,12 @@ } .subnavbar .mainnav > li > a { display: block; - padding-top: 5px; - padding-bottom: 5px; margin-right: .5em; color: #CCC; - font-size: 13px; font-weight: 600; + padding: 0 10px; + font-size: 1em; + line-height: 1em; } .subnavbar .mainnav > li > a > span { display: inline; @@ -710,15 +766,20 @@ /* Small devices (tablets, 768px and up) */ @media (min-width: 768px) { .subnav-collapse.collapse { - display: block!important; - height: auto!important; + display: block !important; + height: auto !important; padding-bottom: 0; - overflow: visible!important; + overflow: visible !important; } } /* Medium devices (desktops, 992px and up) */ /* Large devices (large desktops, 1200px and up) */ @media (min-width: 1200px) { + .nav > li > a { + padding: 4px 8px; + font-size: 1.2em; + line-height: 1.2em; + } .navbar .container, .subnavbar .container { padding-right: 0; diff --git a/GMW/Content/Style.less b/GMW/Content/Style.less index cf45b5e7..9c8fecae 100644 --- a/GMW/Content/Style.less +++ b/GMW/Content/Style.less @@ -12,8 +12,44 @@ } .nopadding { - padding: 0 !important; - margin: 0 !important; + padding: 0 !important; + margin: 0 !important; +} + +.noShadows { + text-shadow: none; +} + +.checkOk { + color: #99FF99; +} + +.checkKo { + color: #5f2121; +} + +.divNumKeyb { + float: right; + /*margin: 2px;*/ + padding: 4px; + border: 4px solid rgba(120,120,185,0.6); + background-color: rgba(190,190,255,0.4); + width: 20%; + min-width: 100px; + min-height: 280px; +} + +.divMain { + float: none; +} + +.divMainKeyb { + float: right; + width: 80%; +} + +.img-thumbnail { + max-width: 70%; } /*------------------------------------------------------------------ @@ -31,18 +67,52 @@ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); } - .navbar.navbar-inverse .navbar-form .search-query:focus { - background-color: #FFF; - } +.navbar.navbar-inverse .navbar-form .search-query:focus { + background-color: #FFF; +} - .navbar.navbar-inverse .navbar-form .search-query::-webkit-input-placeholder { - color: #666; - } +.navbar.navbar-inverse .navbar-form .search-query::-webkit-input-placeholder { + color: #666; +} - .navbar.navbar-inverse .navbar-form .search-query::-moz-placeholder { - color: #666; - } +.navbar.navbar-inverse .navbar-form .search-query::-moz-placeholder { + color: #666; +} +.nav > li > a { + padding: 4px 8px; + font-size: 1em; + line-height: 1em; +} + +.navbar-nav { + margin: 5px 2px; +} + +.navbar-brand { + font-size: 1.2em; + line-height: 1.3em; + height: 30px; +} + +.navbar-header { + /*float: none;*/ +} + +.navbarSep { + border-right: 1px solid #999; +} + +.navbar > .container .navbar-brand, +.navbar > .container-fluid .navbar-brand { + margin-left: 0px; +} + +.navbar-inverse .navbar-nav > .active > a { + background: #333; + color: #F90; + margin: -5px; +} /*------------------------------------------------------------------ [ Subnavbar / .subnavbar ] @@ -53,167 +123,167 @@ border-top: 1px solid #595959; } - .subnavbar .subnav-toggle { - display: none; - padding: .5em 0; - margin: 0 auto; - font-size: 18px; - text-align: center; - color: #ff9900; - } +.subnavbar .subnav-toggle { + display: none; + padding: .5em 0; + margin: 0 auto; + font-size: 18px; + text-align: center; + color: #ff9900; +} - .subnavbar .subnav-toggle:hover { - text-decoration: none; - } +.subnavbar .subnav-toggle:hover { + text-decoration: none; +} - .subnavbar .subnavbar-inner { - height: 80px; - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#414141), to(#323232)); - background-image: -webkit-linear-gradient(top, #414141, 0%, #323232, 100%); - background-image: -moz-linear-gradient(top, #414141 0%, #323232 100%); - background-image: linear-gradient(to bottom, #414141 0%, #323232 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff414141', endColorstr='#ff323232', GradientType=0); - border-bottom: 1px solid #000; - } +.subnavbar .subnavbar-inner { + height: 80px; + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#414141), to(#323232)); + background-image: -webkit-linear-gradient(top, #414141, 0%, #323232, 100%); + background-image: -moz-linear-gradient(top, #414141 0%, #323232 100%); + background-image: linear-gradient(to bottom, #414141 0%, #323232 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff414141', endColorstr='#ff323232', GradientType=0); + border-bottom: 1px solid #000; +} - .subnavbar .btn-subnavbar { - display: none; - padding: 10px 0 8px; - color: #F90; - font-size: 16px; - text-align: center; - cursor: pointer; - } +.subnavbar .btn-subnavbar { + display: none; + padding: 10px 0 8px; + color: #F90; + font-size: 16px; + text-align: center; + cursor: pointer; +} - .subnavbar .btn-subnavbar:hover { - text-decoration: none; - } +.subnavbar .btn-subnavbar:hover { + text-decoration: none; +} - .subnavbar .dropdown .caret { - margin-top: -16px; - border-top-color: #888; - border-bottom-color: #888; - opacity: 35; - filter: alpha(opacity=3500); - } +.subnavbar .dropdown .caret { + margin-top: -16px; + border-top-color: #888; + border-bottom-color: #888; + opacity: 35; + filter: alpha(opacity=3500); +} - .subnavbar .dropdown.open .caret { - display: none; - } +.subnavbar .dropdown.open .caret { + display: none; +} - .subnavbar .mainnav { - display: inline-block; - height: 80px; - padding: 0; - margin: 0; - border-left: 1px solid #292929; - border-right: 1px solid #4A4A4A; - } +.subnavbar .mainnav { + display: inline-block; + height: 80px; + padding: 0; + margin: 0; + border-left: 1px solid #292929; + border-right: 1px solid #4A4A4A; +} - .subnavbar .mainnav > li { - float: left; - min-width: 90px; - height: 80px; - padding: 0; - margin: 0; - text-align: center; - list-style: none; - border-left: 1px solid #4A4A4A; - border-right: 1px solid #292929; - } +.subnavbar .mainnav > li { + float: left; + min-width: 90px; + height: 80px; + padding: 0; + margin: 0; + text-align: center; + list-style: none; + border-left: 1px solid #4A4A4A; + border-right: 1px solid #292929; +} - .subnavbar .mainnav > li > a { - display: block; - height: 100%; - padding: 0 15px; - font-size: 12px; - font-weight: bold; - color: #636363; - text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); - } +.subnavbar .mainnav > li > a { + display: block; + height: 100%; + padding: 0 15px; + font-size: 12px; + font-weight: bold; + color: #636363; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); +} - .subnavbar .mainnav > li > a:hover { - color: #888; - text-decoration: none; - } +.subnavbar .mainnav > li > a:hover { + color: #888; + text-decoration: none; +} - .subnavbar .mainnav > li > a > i { - position: relative; - top: 2px; - display: inline-block; - width: 24px; - height: 24px; - margin-top: 12px; - margin-bottom: 9px; - font-size: 28px; - } +.subnavbar .mainnav > li > a > i { + position: relative; + top: 2px; + display: inline-block; + width: 24px; + height: 24px; + margin-top: 12px; + margin-bottom: 9px; + font-size: 28px; +} - .subnavbar .mainnav > li > a > span { - display: block; - padding-bottom: 2px; - } +.subnavbar .mainnav > li > a > span { + display: block; + padding-bottom: 2px; +} - .subnavbar .mainnav > li.open > a { - text-decoration: none; - } +.subnavbar .mainnav > li.open > a { + text-decoration: none; +} - .subnavbar .mainnav > li.active > a { - background: #333; - color: #F90; - } +.subnavbar .mainnav > li.active > a { + background: #333; + color: #F90; +} - .subnavbar .mainnav > li.active > a .caret { - border-top-color: #ff9900; - border-bottom-color: #ff9900; - } +.subnavbar .mainnav > li.active > a .caret { + border-top-color: #ff9900; + border-bottom-color: #ff9900; +} - .subnavbar .dropdown > .dropdown-menu { - top: 97%; - text-align: left; - -webkit-border-top-left-radius: 0; - -webkit-border-top-right-radius: 0; - -moz-border-radius-topleft: 0; - -moz-border-radius-topright: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; - } +.subnavbar .dropdown > .dropdown-menu { + top: 97%; + text-align: left; + -webkit-border-top-left-radius: 0; + -webkit-border-top-right-radius: 0; + -moz-border-radius-topleft: 0; + -moz-border-radius-topright: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} - .subnavbar .dropdown > .dropdown-menu a { - font-size: 12px; - } +.subnavbar .dropdown > .dropdown-menu a { + font-size: 12px; +} - .subnavbar .dropdown > .dropdown-menu::before, - .subnavbar .dropdown > .dropdown-menu::after { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #CCC; - border-bottom-color: rgba(0, 0, 0, 0.2); - position: absolute; - top: -7px; - left: 9px; - } +.subnavbar .dropdown > .dropdown-menu::before, +.subnavbar .dropdown > .dropdown-menu::after { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #CCC; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} - .subnavbar .dropdown > .dropdown-menu::after { - border-left-width: 6px; - border-right-width: 6px; - border-bottom-width: 6px; - border-bottom-color: #fff; - top: -6px; - left: 10px; - } +.subnavbar .dropdown > .dropdown-menu::after { + border-left-width: 6px; + border-right-width: 6px; + border-bottom-width: 6px; + border-bottom-color: #fff; + top: -6px; + left: 10px; +} - .subnavbar .dropdown-submenu .dropdown-menu:after, - .subnavbar .dropdown-submenu .dropdown-menu:before { - display: none; - } +.subnavbar .dropdown-submenu .dropdown-menu:after, +.subnavbar .dropdown-submenu .dropdown-menu:before { + display: none; +} - .subnavbar .subnav-collapse.collapse { - height: auto\9; - overflow: visible\9; - } +.subnavbar .subnav-collapse.collapse { + height: auto\9; + overflow: visible\9; +} /*------------------------------------------------------------------ [ Shortcuts / .shortcuts ] @@ -222,59 +292,59 @@ text-align: center; } - .shortcuts .shortcut { - width: 110px; - display: inline-block; - padding: 15px 0; - margin: 0 5px 1em; - vertical-align: top; - text-decoration: none; - background: #F3F3F3; - background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee)); - background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%); - background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%); - background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 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: 5px; - } +.shortcuts .shortcut { + width: 110px; + display: inline-block; + padding: 15px 0; + margin: 0 5px 1em; + vertical-align: top; + text-decoration: none; + background: #F3F3F3; + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee)); + background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%); + background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%); + background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 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: 5px; +} - .shortcuts .shortcut .shortcut-icon { - width: 100%; - /*margin-top: .25em; +.shortcuts .shortcut .shortcut-icon { + width: 100%; + /*margin-top: .25em; margin-bottom: .35em;*/ - margin-top: 0; - margin-bottom: 0; - font-size: 32px; - color: #555; - } + margin-top: 0; + margin-bottom: 0; + font-size: 32px; + color: #555; +} - .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: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, 0.125); - } +.shortcuts .shortcut:active { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} - .shortcuts .shortcut:hover .shortcut-icon { - color: #666; - } +.shortcuts .shortcut:hover .shortcut-icon { + color: #666; +} - .shortcuts .shortcut-label { - display: block; - margin-top: .75em; - font-weight: 400; - color: #666; - } +.shortcuts .shortcut-label { + display: block; + margin-top: .75em; + font-weight: 400; + color: #666; +} @@ -292,135 +362,135 @@ /* Widget Box */ } - .widget .widget-header { - position: relative; - height: 40px; - line-height: 40px; - background: #E9E9E9; - background: -moz-linear-gradient(top, #fafafa 0%, #e9e9e9 100%); - /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #e9e9e9)); - /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #fafafa 0%, #e9e9e9 100%); - /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #fafafa 0%, #e9e9e9 100%); - /* Opera11.10+ */ - background: -ms-linear-gradient(top, #fafafa 0%, #e9e9e9 100%); - /* IE10+ */ - background: linear-gradient(top, #fafafa 0%, #e9e9e9 100%); - /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA', endColorstr='#E9E9E9'); - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA', endColorstr='#E9E9E9')"; - border: 1px solid #D5D5D5; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - -webkit-background-clip: padding-box; - } +.widget .widget-header { + position: relative; + height: 40px; + line-height: 40px; + background: #E9E9E9; + background: -moz-linear-gradient(top, #fafafa 0%, #e9e9e9 100%); + /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #e9e9e9)); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #fafafa 0%, #e9e9e9 100%); + /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #fafafa 0%, #e9e9e9 100%); + /* Opera11.10+ */ + background: -ms-linear-gradient(top, #fafafa 0%, #e9e9e9 100%); + /* IE10+ */ + background: linear-gradient(top, #fafafa 0%, #e9e9e9 100%); + /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA', endColorstr='#E9E9E9'); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA', endColorstr='#E9E9E9')"; + border: 1px solid #D5D5D5; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + -webkit-background-clip: padding-box; +} - .widget .widget-header h3 { - top: 0; - position: relative; - left: 10px; - display: inline-block; - margin-right: 3em; - font-size: 15px; - font-weight: 400; - color: #555; - line-height: 18px; - text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.5); - } +.widget .widget-header h3 { + top: 0; + position: relative; + left: 10px; + display: inline-block; + margin-right: 3em; + font-size: 15px; + font-weight: 400; + color: #555; + line-height: 18px; + text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.5); +} - .widget .widget-header [class^="fa-"], - .widget .widget-header [class*=" fa-"] { - display: inline-block; - margin-top: -3px; - margin-left: 13px; - margin-right: -2px; - font-size: 16px; - color: #555; - vertical-align: middle; - } +.widget .widget-header [class^="fa-"], +.widget .widget-header [class*=" fa-"] { + display: inline-block; + margin-top: -3px; + margin-left: 13px; + margin-right: -2px; + font-size: 16px; + color: #555; + vertical-align: middle; +} - .widget .widget-content { - padding: 25px 15px 15px; - background: #FFF; - border: 1px solid #D5D5D5; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - } +.widget .widget-content { + padding: 25px 15px 15px; + background: #FFF; + border: 1px solid #D5D5D5; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} - .widget .widget-header + .widget-content { - border-top: none; - -webkit-border-top-left-radius: 0; - -webkit-border-top-right-radius: 0; - -moz-border-radius-topleft: 0; - -moz-border-radius-topright: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; - } +.widget .widget-header + .widget-content { + border-top: none; + -webkit-border-top-left-radius: 0; + -webkit-border-top-right-radius: 0; + -moz-border-radius-topleft: 0; + -moz-border-radius-topright: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} - .widget.widget-nopad .widget-content { - padding: 0; - } +.widget.widget-nopad .widget-content { + padding: 0; +} - .widget .widget-content:before, - .widget .widget-content:after { - content: " "; - /* 1 */ - display: table; - /* 2 */ - } +.widget .widget-content:before, +.widget .widget-content:after { + content: " "; + /* 1 */ + display: table; + /* 2 */ +} - .widget .widget-content:after { - clear: both; - } +.widget .widget-content:after { + clear: both; +} - .widget .widget-content:before, - .widget .widget-content:after { - content: " "; - /* 1 */ - display: table; - /* 2 */ - } +.widget .widget-content:before, +.widget .widget-content:after { + content: " "; + /* 1 */ + display: table; + /* 2 */ +} - .widget .widget-content:after { - clear: both; - } +.widget .widget-content:after { + clear: both; +} - .widget.widget-table .widget-content { - padding: 0; - } +.widget.widget-table .widget-content { + padding: 0; +} - .widget.widget-table .table { - margin-bottom: 0; - border: none; - } +.widget.widget-table .table { + margin-bottom: 0; + border: none; +} - .widget.widget-table .table tr td:first-child, - .widget.widget-table .table tr th:first-child { - border-left: none; - } +.widget.widget-table .table tr td:first-child, +.widget.widget-table .table tr th:first-child { + border-left: none; +} - .widget.widget-plain { - background: transparent; - border: none; - } +.widget.widget-plain { + background: transparent; + border: none; +} - .widget.widget-plain .widget-content { - padding: 0; - background: transparent; - border: none; - } +.widget.widget-plain .widget-content { + padding: 0; + background: transparent; + border: none; +} - .widget.widget-box .widget-content { - background: #E3E3E3; - background: #FFF; - } +.widget.widget-box .widget-content { + background: #E3E3E3; + background: #FFF; +} /*------------------------------------------------------------------ [ Stacked / .stacked ] */ @@ -428,28 +498,28 @@ position: relative; } - .stacked:after, - .stacked:before { - content: ''; - position: absolute; - display: block; - height: 1px; - bottom: -2px; - left: 3px; - right: 3px; - background-color: #ffffff; - -webkit-border-radius: 0 0 3px 3px; - -moz-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px; - border: 1px solid #d3d3d3; - border-top: 0; - } +.stacked:after, +.stacked:before { + content: ''; + position: absolute; + display: block; + height: 1px; + bottom: -2px; + left: 3px; + right: 3px; + background-color: #ffffff; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; + border: 1px solid #d3d3d3; + border-top: 0; +} - .stacked:before { - bottom: -4px; - left: 6px; - right: 6px; - } +.stacked:before { + bottom: -4px; + left: 6px; + right: 6px; +} /*------------------------------------------------------------------ [2. Stats / .stats] @@ -463,14 +533,14 @@ margin-bottom: 1.9em; } - .stats .stat { - display: table-cell; - width: 40%; - vertical-align: top; - font-size: 11px; - font-weight: bold; - color: #999; - } +.stats .stat { + display: table-cell; + width: 40%; + vertical-align: top; + font-size: 11px; + font-weight: bold; + color: #999; +} .stat-value { display: block; @@ -486,10 +556,10 @@ padding-top: 1.5em; } - .stat-time .stat-value { - color: #F90; - font-size: 40px; - } +.stat-time .stat-value { + color: #F90; + font-size: 40px; +} .stats #donut-chart { height: 100px; @@ -509,18 +579,18 @@ margin: 1em 0 0; } - .news-items li { - display: table; - padding: 0 2em 0 1.5em; - padding-bottom: 1em; - margin-bottom: 1em; - border-bottom: 1px dotted #CCC; - } +.news-items li { + display: table; + padding: 0 2em 0 1.5em; + padding-bottom: 1em; + margin-bottom: 1em; + border-bottom: 1px dotted #CCC; +} - .news-items li:last-child { - padding-bottom: 0; - border: none; - } +.news-items li:last-child { + padding-bottom: 0; + border: none; +} .news-item-date { display: table-cell; @@ -577,13 +647,13 @@ text-align: center; } - .action-table .td-actions .btn { - margin-right: .5em; - } +.action-table .td-actions .btn { + margin-right: .5em; +} - .action-table .td-actions .btn:last-child { - margin-rigth: 0; - } +.action-table .td-actions .btn:last-child { + margin-rigth: 0; +} @media (max-width: 979px) { @@ -596,10 +666,10 @@ margin-bottom: 3em; } - .stats .stat .stat-value { - margin-bottom: .15em; - font-size: 20px; - } + .stats .stat .stat-value { + margin-bottom: .15em; + font-size: 20px; + } .stats { float: left; @@ -626,13 +696,13 @@ width: 95px; } - .shortcuts .shortcut .shortcut-label { - font-size: 12px; - } + .shortcuts .shortcut .shortcut-label { + font-size: 12px; + } - .shortcuts .shortcut .shortcut-icon { - font-size: 24px; - } + .shortcuts .shortcut .shortcut-icon { + font-size: 24px; + } } /*------------------------------------------------------------------ [3. Max Width: 979px] @@ -644,7 +714,7 @@ } .navbar .btn-navbar { - font-size: 18px; + font-size: 16px; background: none; filter: none; border: none; @@ -663,28 +733,27 @@ /* Extra small devices (phones, up to 480px) */ /* No media query since this is the default in Bootstrap */ @media (max-width: 768px) { - .navbar { - padding-left: 10px; - padding-right: 10px; - margin-right: -20px; - margin-left: -20px; + body { + font-size: 12px; } - .navbar .navbar-nav > li > .dropdown-menu::before, - .navbar .navbar-nav > li > .dropdown-menu::after { - display: none; - } + .navbar .mainnav > li > a { + padding: 0 10px; + font-size: 1em; + line-height: 1em; + } + + .navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + font-size: 1em; + line-height: 1em; + } .subnavbar .subnav-toggle { display: block; } - #main { - padding: 0 10px; - margin-right: -20px; - margin-left: -20px; - } - .extra { margin-right: -20px; margin-left: -20px; @@ -704,155 +773,156 @@ margin-left: -20px; } - .footer #footer-terms { - margin-top: 1em; - text-align: left; - } + .footer #footer-terms { + margin-top: 1em; + text-align: left; + } - .footer #footer-terms a { - margin-left: 0; - margin-right: 1em; - } + .footer #footer-terms a { + margin-left: 0; + margin-right: 1em; + } .item-row { display: block; } - .item-row:before, - .item-row:after { - content: " "; - /* 1 */ - display: table; - /* 2 */ - } + .item-row:before, + .item-row:after { + content: " "; + /* 1 */ + display: table; + /* 2 */ + } - .item-row:after { - clear: both; - } + .item-row:after { + clear: both; + } - .item-row .item-label { - display: block; - width: 100%; - margin-bottom: 1.5em; - } + .item-row .item-label { + display: block; + width: 100%; + margin-bottom: 1.5em; + } - .item-row .item-content { - display: block; - width: 100%; - } + .item-row .item-content { + display: block; + width: 100%; + } .subnavbar { margin-left: -20px; margin-right: -20px; } - .subnavbar .btn-subnavbar { - display: block; - } + .subnavbar .btn-subnavbar { + display: block; + } - .subnavbar .subnavbar-inner { - height: auto; - } + .subnavbar .subnavbar-inner { + height: auto; + } - .subnavbar .mainnav { - display: block; - width: 100%; - height: auto; - margin-top: 1em; - margin-bottom: 1.5em; - border: none; - } + .subnavbar .mainnav { + display: block; + width: 100%; + height: auto; + margin-top: 1em; + margin-bottom: 1.5em; + border: none; + } - .subnavbar .mainnav > li { - float: none; - width: 100%; - height: auto; - margin-bottom: 1em; - text-align: left; - border: none; - } + .subnavbar .mainnav > li { + float: none; + width: 100%; + height: auto; + margin-bottom: 1em; + text-align: left; + border: none; + } - .subnavbar .mainnav > li > a { - display: block; - padding-top: 5px; - padding-bottom: 5px; - margin-right: .5em; - color: #CCC; - font-size: 13px; - font-weight: 600; - } + .subnavbar .mainnav > li > a { + display: block; + margin-right: .5em; + color: #CCC; + font-weight: 600; + padding: 0 10px; + font-size: 1em; + line-height: 1em; + } - .subnavbar .mainnav > li > a > span { - display: inline; - } + .subnavbar .mainnav > li > a > span { + display: inline; + } - .subnavbar .mainnav > li > a > i { - display: inline; - margin-right: .5em; - margin-bottom: 0; - font-size: 14px; - } + .subnavbar .mainnav > li > a > i { + display: inline; + margin-right: .5em; + margin-bottom: 0; + font-size: 14px; + } - .subnavbar .mainnav > li > a .caret { - margin-top: -2px; - margin-left: 3px; - } + .subnavbar .mainnav > li > a .caret { + margin-top: -2px; + margin-left: 3px; + } - .subnavbar .mainnav > li.active > a { - color: #F90; - background: transparent; - } + .subnavbar .mainnav > li.active > a { + color: #F90; + background: transparent; + } - .subnavbar .dropdown .dropdown-menu { - position: static; - float: none; - width: 100%; - background: transparent; - border: none; - box-shadow: none; - } + .subnavbar .dropdown .dropdown-menu { + position: static; + float: none; + width: 100%; + background: transparent; + border: none; + box-shadow: none; + } - .subnavbar .dropdown .dropdown-menu a { - padding: 12px 40px; - color: #FFF; - font-weight: 600; - } + .subnavbar .dropdown .dropdown-menu a { + padding: 12px 40px; + color: #FFF; + font-weight: 600; + } - .subnavbar .dropdown .dropdown-menu a:active, - .subnavbar .dropdown .dropdown-menu a:focus { - background: #555 !important; - outline: none; - } + .subnavbar .dropdown .dropdown-menu a:active, + .subnavbar .dropdown .dropdown-menu a:focus { + background: #555 !important; + outline: none; + } - .subnavbar .dropdown .dropdown-menu::before, - .subnavbar .dropdown .dropdown-menu::after { - display: none; - } + .subnavbar .dropdown .dropdown-menu::before, + .subnavbar .dropdown .dropdown-menu::after { + display: none; + } - .subnavbar .dropdown.open .caret { - display: inline-block; - } + .subnavbar .dropdown.open .caret { + display: inline-block; + } - .subnavbar .dropdown-submenu > a:after { - display: none; - } + .subnavbar .dropdown-submenu > a:after { + display: none; + } - .subnavbar .dropdown-submenu > .dropdown-menu { - display: block; - } + .subnavbar .dropdown-submenu > .dropdown-menu { + display: block; + } - .subnavbar .dropdown-submenu > .dropdown-menu > li > a { - padding-right: 20px; - padding-left: 60px; - } + .subnavbar .dropdown-submenu > .dropdown-menu > li > a { + padding-right: 20px; + padding-left: 60px; + } } /* Small devices (tablets, 768px and up) */ @media (min-width: 768px) { + .subnav-collapse.collapse { - display: block!important; - height: auto!important; + display: block !important; + height: auto !important; padding-bottom: 0; - overflow: visible!important; + overflow: visible !important; } } /* Medium devices (desktops, 992px and up) */ @@ -860,6 +930,14 @@ } /* Large devices (large desktops, 1200px and up) */ @media (min-width: 1200px) { + + + .nav > li > a { + padding: 4px 8px; + font-size: 1.2em; + line-height: 1.2em; + } + .navbar .container, .subnavbar .container { padding-right: 0; @@ -1086,9 +1164,9 @@ border: solid 1px #777777; } - .cellaInattiva a { - color: White; - } +.cellaInattiva a { + color: White; +} .cellaSelezAll { text-align: center; @@ -1130,4 +1208,4 @@ -webkit-box-shadow: 3px 3px 6px rgba(0,0,0,.3); -moz-box-shadow: 3px 3px 6px rgba(0,0,0,.3); box-shadow: 3px 3px 6px rgba(0,0,0,.3); -} \ No newline at end of file +} diff --git a/GMW/Content/Style.min.css b/GMW/Content/Style.min.css index 19ddb7d3..b2f81db7 100644 --- a/GMW/Content/Style.min.css +++ b/GMW/Content/Style.min.css @@ -1 +1 @@ -.warnRed{color:red}.warnOrange{color:#ffa500}.allOk{color:green}.nopadding{padding:0!important;margin:0!important}.navbar.navbar-inverse .navbar-form .search-query{width:225px;margin-top:2px;background-color:#333;font-size:11px;font-weight:bold;line-height:20px;border-color:#000;border-radius:20px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15)}.navbar.navbar-inverse .navbar-form .search-query:focus{background-color:#fff}.navbar.navbar-inverse .navbar-form .search-query::-webkit-input-placeholder{color:#666}.navbar.navbar-inverse .navbar-form .search-query::-moz-placeholder{color:#666}.subnavbar{margin-bottom:.5em;border-top:1px solid #595959}.subnavbar .subnav-toggle{display:none;padding:.5em 0;margin:0 auto;font-size:18px;text-align:center;color:#f90}.subnavbar .subnav-toggle:hover{text-decoration:none}.subnavbar .subnavbar-inner{height:80px;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#414141),to(#323232));background-image:-webkit-linear-gradient(top,#414141,0%,#323232,100%);background-image:-moz-linear-gradient(top,#414141 0%,#323232 100%);background-image:linear-gradient(to bottom,#414141 0%,#323232 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff414141',endColorstr='#ff323232',GradientType=0);border-bottom:1px solid #000}.subnavbar .btn-subnavbar{display:none;padding:10px 0 8px;color:#f90;font-size:16px;text-align:center;cursor:pointer}.subnavbar .btn-subnavbar:hover{text-decoration:none}.subnavbar .dropdown .caret{margin-top:-16px;border-top-color:#888;border-bottom-color:#888;opacity:35;filter:alpha(opacity=3500)}.subnavbar .dropdown.open .caret{display:none}.subnavbar .mainnav{display:inline-block;height:80px;padding:0;margin:0;border-left:1px solid #292929;border-right:1px solid #4a4a4a}.subnavbar .mainnav>li{float:left;min-width:90px;height:80px;padding:0;margin:0;text-align:center;list-style:none;border-left:1px solid #4a4a4a;border-right:1px solid #292929}.subnavbar .mainnav>li>a{display:block;height:100%;padding:0 15px;font-size:12px;font-weight:bold;color:#636363;text-shadow:1px 1px 1px rgba(0,0,0,.2)}.subnavbar .mainnav>li>a:hover{color:#888;text-decoration:none}.subnavbar .mainnav>li>a>i{position:relative;top:2px;display:inline-block;width:24px;height:24px;margin-top:12px;margin-bottom:9px;font-size:28px}.subnavbar .mainnav>li>a>span{display:block;padding-bottom:2px}.subnavbar .mainnav>li.open>a{text-decoration:none}.subnavbar .mainnav>li.active>a{background:#333;color:#f90}.subnavbar .mainnav>li.active>a .caret{border-top-color:#f90;border-bottom-color:#f90}.subnavbar .dropdown>.dropdown-menu{top:97%;text-align:left;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-topright:0;border-top-left-radius:0;border-top-right-radius:0}.subnavbar .dropdown>.dropdown-menu a{font-size:12px}.subnavbar .dropdown>.dropdown-menu::before,.subnavbar .dropdown>.dropdown-menu::after{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2);position:absolute;top:-7px;left:9px}.subnavbar .dropdown>.dropdown-menu::after{border-left-width:6px;border-right-width:6px;border-bottom-width:6px;border-bottom-color:#fff;top:-6px;left:10px}.subnavbar .dropdown-submenu .dropdown-menu:after,.subnavbar .dropdown-submenu .dropdown-menu:before{display:none}.subnavbar .subnav-collapse.collapse{height:auto\9;overflow:visible\9}.shortcuts{text-align:center}.shortcuts .shortcut{width:110px;display:inline-block;padding:15px 0;margin:0 5px 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:5px}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:32px;color:#555}.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:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.shortcuts .shortcut:hover .shortcut-icon{color:#666}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666}.widget{position:relative;clear:both;width:auto;margin-bottom:2em}.widget .widget-header{position:relative;height:40px;line-height:40px;background:#e9e9e9;background:-moz-linear-gradient(top,#fafafa 0%,#e9e9e9 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fafafa),color-stop(100%,#e9e9e9));background:-webkit-linear-gradient(top,#fafafa 0%,#e9e9e9 100%);background:-o-linear-gradient(top,#fafafa 0%,#e9e9e9 100%);background:-ms-linear-gradient(top,#fafafa 0%,#e9e9e9 100%);background:linear-gradient(top,#fafafa 0%,#e9e9e9 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA',endColorstr='#E9E9E9');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA', endColorstr='#E9E9E9')";border:1px solid #d5d5d5;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:4px;-moz-border-radius-topleft:4px;-moz-border-radius-topright:4px;border-top-left-radius:4px;border-top-right-radius:4px;-webkit-background-clip:padding-box}.widget .widget-header h3{top:0;position:relative;left:10px;display:inline-block;margin-right:3em;font-size:15px;font-weight:400;color:#555;line-height:18px;text-shadow:1px 1px 2px rgba(255,255,255,.5)}.widget .widget-header [class^="fa-"],.widget .widget-header [class*=" fa-"]{display:inline-block;margin-top:-3px;margin-left:13px;margin-right:-2px;font-size:16px;color:#555;vertical-align:middle}.widget .widget-content{padding:25px 15px 15px;background:#fff;border:1px solid #d5d5d5;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.widget .widget-header+.widget-content{border-top:none;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-topright:0;border-top-left-radius:0;border-top-right-radius:0}.widget.widget-nopad .widget-content{padding:0}.widget .widget-content:before,.widget .widget-content:after{content:" ";display:table}.widget .widget-content:after{clear:both}.widget .widget-content:before,.widget .widget-content:after{content:" ";display:table}.widget .widget-content:after{clear:both}.widget.widget-table .widget-content{padding:0}.widget.widget-table .table{margin-bottom:0;border:none}.widget.widget-table .table tr td:first-child,.widget.widget-table .table tr th:first-child{border-left:none}.widget.widget-plain{background:transparent;border:none}.widget.widget-plain .widget-content{padding:0;background:transparent;border:none}.widget.widget-box .widget-content{background:#e3e3e3;background:#fff}.stacked{position:relative}.stacked:after,.stacked:before{content:'';position:absolute;display:block;height:1px;bottom:-2px;left:3px;right:3px;background-color:#fff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;border:1px solid #d3d3d3;border-top:0}.stacked:before{bottom:-4px;left:6px;right:6px}.stats{width:100%;display:table;padding:0 0 0 10px;margin-top:.5em;margin-bottom:1.9em}.stats .stat{display:table-cell;width:40%;vertical-align:top;font-size:11px;font-weight:bold;color:#999}.stat-value{display:block;margin-bottom:.55em;font-size:30px;font-weight:bold;letter-spacing:-2px;color:#444}.stat-time{text-align:center;padding-top:1.5em}.stat-time .stat-value{color:#f90;font-size:40px}.stats #donut-chart{height:100px;margin-left:-20px}.news-items{padding:0;margin:1em 0 0}.news-items li{display:table;padding:0 2em 0 1.5em;padding-bottom:1em;margin-bottom:1em;border-bottom:1px dotted #ccc}.news-items li:last-child{padding-bottom:0;border:none}.news-item-date{display:table-cell}.news-item-detail{display:table-cell}.news-item-title{font-size:13px;font-weight:600}.news-item-date{width:75px;vertical-align:middle;text-align:right}.news-item-day{display:block;margin-bottom:.25em;font-size:24px;color:#888}.news-item-preview{margin-bottom:0;color:#777}.news-item-month{display:block;padding-right:1px;font-size:12px;font-weight:600;color:#888}.action-table .btn-small{padding:4px 5px 5px;font-size:10px}.action-table .td-actions{width:80px;text-align:center}.action-table .td-actions .btn{margin-right:.5em}.action-table .td-actions .btn:last-child{margin-rigth:0}@media(max-width:480px){.stats .stat{margin-bottom:3em}.stats .stat .stat-value{margin-bottom:.15em;font-size:20px}.stats{float:left;display:block;margin-bottom:0}#chart-stats{margin:2em 0 1em}}@media(max-width:480px){.error-container h1{font-size:72px}.shortcuts .shortcut{width:95px}.shortcuts .shortcut .shortcut-label{font-size:12px}.shortcuts .shortcut .shortcut-icon{font-size:24px}}@media(max-width:979px){.navbar-fixed-top{position:static;margin-bottom:0}.navbar .btn-navbar{font-size:18px;background:none;filter:none;border:none;-webkit-box-shadow:none;box-shadow:none}.navbar .container{padding:0 10px}.subnavbar .subnavbar .container{width:auto}}@media(max-width:768px){.navbar{padding-left:10px;padding-right:10px;margin-right:-20px;margin-left:-20px}.navbar .navbar-nav>li>.dropdown-menu::before,.navbar .navbar-nav>li>.dropdown-menu::after{display:none}.subnavbar .subnav-toggle{display:block}#main{padding:0 10px;margin-right:-20px;margin-left:-20px}.extra{margin-right:-20px;margin-left:-20px}.main .container{padding:0}.main .row{margin-right:-15px;margin-left:-15px}.footer{margin-right:-20px;margin-left:-20px}.footer #footer-terms{margin-top:1em;text-align:left}.footer #footer-terms a{margin-left:0;margin-right:1em}.item-row{display:block}.item-row:before,.item-row:after{content:" ";display:table}.item-row:after{clear:both}.item-row .item-label{display:block;width:100%;margin-bottom:1.5em}.item-row .item-content{display:block;width:100%}.subnavbar{margin-left:-20px;margin-right:-20px}.subnavbar .btn-subnavbar{display:block}.subnavbar .subnavbar-inner{height:auto}.subnavbar .mainnav{display:block;width:100%;height:auto;margin-top:1em;margin-bottom:1.5em;border:none}.subnavbar .mainnav>li{float:none;width:100%;height:auto;margin-bottom:1em;text-align:left;border:none}.subnavbar .mainnav>li>a{display:block;padding-top:5px;padding-bottom:5px;margin-right:.5em;color:#ccc;font-size:13px;font-weight:600}.subnavbar .mainnav>li>a>span{display:inline}.subnavbar .mainnav>li>a>i{display:inline;margin-right:.5em;margin-bottom:0;font-size:14px}.subnavbar .mainnav>li>a .caret{margin-top:-2px;margin-left:3px}.subnavbar .mainnav>li.active>a{color:#f90;background:transparent}.subnavbar .dropdown .dropdown-menu{position:static;float:none;width:100%;background:transparent;border:none;box-shadow:none}.subnavbar .dropdown .dropdown-menu a{padding:12px 40px;color:#fff;font-weight:600}.subnavbar .dropdown .dropdown-menu a:active,.subnavbar .dropdown .dropdown-menu a:focus{background:#555!important;outline:none}.subnavbar .dropdown .dropdown-menu::before,.subnavbar .dropdown .dropdown-menu::after{display:none}.subnavbar .dropdown.open .caret{display:inline-block}.subnavbar .dropdown-submenu>a:after{display:none}.subnavbar .dropdown-submenu>.dropdown-menu{display:block}.subnavbar .dropdown-submenu>.dropdown-menu>li>a{padding-right:20px;padding-left:60px}}@media(min-width:768px){.subnav-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}}@media(min-width:1200px){.navbar .container,.subnavbar .container{padding-right:0;padding-left:0}.page-title{margin-left:-15px}}.stileAttesa{background:#aaa;text-align:center}.stileComandoOk{background:#afa;text-align:center}.stileComandoKo{background:#ff9595;text-align:center}.stileComandoWarn{background:#ffc168;text-align:center}.stileComandoAdd{background:#aaf;text-align:center}.stileComandoND{background:#ffa;text-align:center}.sidebar{position:fixed;top:120px;bottom:24px;left:0;z-index:1000;display:block;padding:16px;overflow-x:hidden;overflow-y:auto;background-color:#f5f5f5;border-right:1px solid #eee}.ombra{box-shadow:0 20px 20px black}.ctrHeaderPager{background-color:#b8b8b8;color:#fff}.ctrHeaderPagerRight{background-color:#b8b8b8;font-weight:bold;color:#fff;text-align:right}.ctrHeaderPagerBlue{background-color:#507cd1;height:1px}.ctrHeaderPagerBlueRight{background-color:#507cd1;height:1px;text-align:right}.ctrFooter{background-color:#507cd1;font-weight:bold;color:#fff}.ctrRowStyle{background-color:#eff3fb}.ctrAltRowStyle{background-color:#fff}.ctrRowStyleRight{background-color:#eff3fb;text-align:right}.ctrAltRowStyleRight{background-color:#fff;text-align:right}.ctrInsRowStyle{background-color:#b8b8b8}.ctrEditRowStyle{background-color:#d1ddf1}.ctrSelRowStyle{font-weight:bold;color:#333;background-color:#d1ddf1}.ctrSelRowStyleYellow{font-weight:bold;color:#333;background-color:#ff0}.ctrCommRow{font-weight:bold;background-color:#d1ddf1}.ctrFiledHead{background-color:#dee8f5;font-weight:bold;width:25%}.ctrLabelStrong{font-weight:bold}.ctrFieldEdit{font-size:8pt}.sv{text-align:center;font-size:7pt;height:20px;background-image:url(../images/verde_20.png)}.sg{text-align:center;font-size:7pt;height:20px;background-image:url(../images/giallo_20.png)}.sr{text-align:center;font-size:7pt;height:20px;background-image:url(../images/rosso_20.png);color:#fff}.ss{text-align:center;font-size:7pt;height:20px;background-image:url(../images/grigio_20.png);color:#fff}.cellaLibera{text-align:center;font-size:8pt;height:40px;background-image:url(../images/grigioChiaro_80.png);border:solid 1px #777}.cellaSelezDett{text-align:center;font-size:8pt;height:40px;background-image:url(../images/giallo_80.png);border:solid 1px #777}.cellaOccupata{text-align:center;font-size:8pt;height:40px;background-image:url(../images/arancio_80.png);color:#fff;border:solid 1px #777}.cellaPiena{text-align:center;font-size:8pt;height:40px;background-image:url(../images/verde_80.png);color:#fff;border:solid 1px #777}.cellaInattiva{text-align:center;font-size:8pt;height:40px;background-image:url(../images/grigio_80.png);color:#fff;border:solid 1px #777}.cellaInattiva a{color:#fff}.cellaSelezAll{text-align:center;font-size:8pt;height:40px;background-image:url(../images/blu_80.png);border:solid 1px #777}.cellaBianca{text-align:center;font-size:8pt;font-weight:bold}.selectedCell{border:dashed 2px #000;text-align:center}.didascalia{color:#696969;font-size:7pt}.ShadowText{text-shadow:2px 2px 2px rgba(0,0,0,.4)}.boxShadowLight{-webkit-box-shadow:3px 3px 6px rgba(0,0,0,.1);-moz-box-shadow:3px 3px 6px rgba(0,0,0,.1);box-shadow:3px 3px 6px rgba(0,0,0,.1)}.boxShadowDark{-webkit-box-shadow:3px 3px 6px rgba(0,0,0,.3);-moz-box-shadow:3px 3px 6px rgba(0,0,0,.3);box-shadow:3px 3px 6px rgba(0,0,0,.3)} \ No newline at end of file +.warnRed{color:#f00}.warnOrange{color:#ffa500}.allOk{color:#008000}.nopadding{padding:0 !important;margin:0 !important}.noShadows{text-shadow:none}.checkOk{color:#9f9}.checkKo{color:#5f2121}.divNumKeyb{float:right;padding:4px;border:4px solid rgba(120,120,185,.6);background-color:rgba(190,190,255,.4);width:20%;min-width:100px;min-height:280px}.divMain{float:none}.divMainKeyb{float:right;width:80%}.img-thumbnail{max-width:70%}.navbar.navbar-inverse .navbar-form .search-query{width:225px;margin-top:2px;background-color:#333;font-size:11px;font-weight:bold;line-height:20px;border-color:#000;border-radius:20px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15)}.navbar.navbar-inverse .navbar-form .search-query:focus{background-color:#fff}.navbar.navbar-inverse .navbar-form .search-query::-webkit-input-placeholder{color:#666}.navbar.navbar-inverse .navbar-form .search-query::-moz-placeholder{color:#666}.nav>li>a{padding:4px 8px;font-size:1em;line-height:1em}.navbar-nav{margin:5px 2px}.navbar-brand{font-size:1.2em;line-height:1.3em;height:30px}.navbarSep{border-right:1px solid #999}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:0}.navbar-inverse .navbar-nav>.active>a{background:#333;color:#f90;margin:-5px}.subnavbar{margin-bottom:.5em;border-top:1px solid #595959}.subnavbar .subnav-toggle{display:none;padding:.5em 0;margin:0 auto;font-size:18px;text-align:center;color:#f90}.subnavbar .subnav-toggle:hover{text-decoration:none}.subnavbar .subnavbar-inner{height:80px;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#414141),to(#323232));background-image:-webkit-linear-gradient(top,#414141,0%,#323232,100%);background-image:-moz-linear-gradient(top,#414141 0%,#323232 100%);background-image:linear-gradient(to bottom,#414141 0%,#323232 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff414141',endColorstr='#ff323232',GradientType=0);border-bottom:1px solid #000}.subnavbar .btn-subnavbar{display:none;padding:10px 0 8px;color:#f90;font-size:16px;text-align:center;cursor:pointer}.subnavbar .btn-subnavbar:hover{text-decoration:none}.subnavbar .dropdown .caret{margin-top:-16px;border-top-color:#888;border-bottom-color:#888;opacity:35;filter:alpha(opacity=3500)}.subnavbar .dropdown.open .caret{display:none}.subnavbar .mainnav{display:inline-block;height:80px;padding:0;margin:0;border-left:1px solid #292929;border-right:1px solid #4a4a4a}.subnavbar .mainnav>li{float:left;min-width:90px;height:80px;padding:0;margin:0;text-align:center;list-style:none;border-left:1px solid #4a4a4a;border-right:1px solid #292929}.subnavbar .mainnav>li>a{display:block;height:100%;padding:0 15px;font-size:12px;font-weight:bold;color:#636363;text-shadow:1px 1px 1px rgba(0,0,0,.2)}.subnavbar .mainnav>li>a:hover{color:#888;text-decoration:none}.subnavbar .mainnav>li>a>i{position:relative;top:2px;display:inline-block;width:24px;height:24px;margin-top:12px;margin-bottom:9px;font-size:28px}.subnavbar .mainnav>li>a>span{display:block;padding-bottom:2px}.subnavbar .mainnav>li.open>a{text-decoration:none}.subnavbar .mainnav>li.active>a{background:#333;color:#f90}.subnavbar .mainnav>li.active>a .caret{border-top-color:#f90;border-bottom-color:#f90}.subnavbar .dropdown>.dropdown-menu{top:97%;text-align:left;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-topright:0;border-top-left-radius:0;border-top-right-radius:0}.subnavbar .dropdown>.dropdown-menu a{font-size:12px}.subnavbar .dropdown>.dropdown-menu::before,.subnavbar .dropdown>.dropdown-menu::after{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2);position:absolute;top:-7px;left:9px}.subnavbar .dropdown>.dropdown-menu::after{border-left-width:6px;border-right-width:6px;border-bottom-width:6px;border-bottom-color:#fff;top:-6px;left:10px}.subnavbar .dropdown-submenu .dropdown-menu:after,.subnavbar .dropdown-submenu .dropdown-menu:before{display:none}.subnavbar .subnav-collapse.collapse{height:auto\9;overflow:visible\9}.shortcuts{text-align:center}.shortcuts .shortcut{width:110px;display:inline-block;padding:15px 0;margin:0 5px 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:5px}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:32px;color:#555}.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:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.shortcuts .shortcut:hover .shortcut-icon{color:#666}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666}.widget{position:relative;clear:both;width:auto;margin-bottom:2em}.widget .widget-header{position:relative;height:40px;line-height:40px;background:#e9e9e9;background:-moz-linear-gradient(top,#fafafa 0%,#e9e9e9 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fafafa),color-stop(100%,#e9e9e9));background:-webkit-linear-gradient(top,#fafafa 0%,#e9e9e9 100%);background:-o-linear-gradient(top,#fafafa 0%,#e9e9e9 100%);background:-ms-linear-gradient(top,#fafafa 0%,#e9e9e9 100%);background:linear-gradient(top,#fafafa 0%,#e9e9e9 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA',endColorstr='#E9E9E9');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA', endColorstr='#E9E9E9')";border:1px solid #d5d5d5;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:4px;-moz-border-radius-topleft:4px;-moz-border-radius-topright:4px;border-top-left-radius:4px;border-top-right-radius:4px;-webkit-background-clip:padding-box}.widget .widget-header h3{top:0;position:relative;left:10px;display:inline-block;margin-right:3em;font-size:15px;font-weight:400;color:#555;line-height:18px;text-shadow:1px 1px 2px rgba(255,255,255,.5)}.widget .widget-header [class^="fa-"],.widget .widget-header [class*=" fa-"]{display:inline-block;margin-top:-3px;margin-left:13px;margin-right:-2px;font-size:16px;color:#555;vertical-align:middle}.widget .widget-content{padding:25px 15px 15px;background:#fff;border:1px solid #d5d5d5;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.widget .widget-header+.widget-content{border-top:none;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-topright:0;border-top-left-radius:0;border-top-right-radius:0}.widget.widget-nopad .widget-content{padding:0}.widget .widget-content:before,.widget .widget-content:after{content:" ";display:table}.widget .widget-content:after{clear:both}.widget .widget-content:before,.widget .widget-content:after{content:" ";display:table}.widget .widget-content:after{clear:both}.widget.widget-table .widget-content{padding:0}.widget.widget-table .table{margin-bottom:0;border:none}.widget.widget-table .table tr td:first-child,.widget.widget-table .table tr th:first-child{border-left:none}.widget.widget-plain{background:transparent;border:none}.widget.widget-plain .widget-content{padding:0;background:transparent;border:none}.widget.widget-box .widget-content{background:#e3e3e3;background:#fff}.stacked{position:relative}.stacked:after,.stacked:before{content:'';position:absolute;display:block;height:1px;bottom:-2px;left:3px;right:3px;background-color:#fff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;border:1px solid #d3d3d3;border-top:0}.stacked:before{bottom:-4px;left:6px;right:6px}.stats{width:100%;display:table;padding:0 0 0 10px;margin-top:.5em;margin-bottom:1.9em}.stats .stat{display:table-cell;width:40%;vertical-align:top;font-size:11px;font-weight:bold;color:#999}.stat-value{display:block;margin-bottom:.55em;font-size:30px;font-weight:bold;letter-spacing:-2px;color:#444}.stat-time{text-align:center;padding-top:1.5em}.stat-time .stat-value{color:#f90;font-size:40px}.stats #donut-chart{height:100px;margin-left:-20px}.news-items{padding:0;margin:1em 0 0}.news-items li{display:table;padding:0 2em 0 1.5em;padding-bottom:1em;margin-bottom:1em;border-bottom:1px dotted #ccc}.news-items li:last-child{padding-bottom:0;border:none}.news-item-date{display:table-cell}.news-item-detail{display:table-cell}.news-item-title{font-size:13px;font-weight:600}.news-item-date{width:75px;vertical-align:middle;text-align:right}.news-item-day{display:block;margin-bottom:.25em;font-size:24px;color:#888}.news-item-preview{margin-bottom:0;color:#777}.news-item-month{display:block;padding-right:1px;font-size:12px;font-weight:600;color:#888}.action-table .btn-small{padding:4px 5px 5px;font-size:10px}.action-table .td-actions{width:80px;text-align:center}.action-table .td-actions .btn{margin-right:.5em}.action-table .td-actions .btn:last-child{margin-rigth:0}@media(max-width:480px){.stats .stat{margin-bottom:3em}.stats .stat .stat-value{margin-bottom:.15em;font-size:20px}.stats{float:left;display:block;margin-bottom:0}#chart-stats{margin:2em 0 1em}}@media(max-width:480px){.error-container h1{font-size:72px}.shortcuts .shortcut{width:95px}.shortcuts .shortcut .shortcut-label{font-size:12px}.shortcuts .shortcut .shortcut-icon{font-size:24px}}@media(max-width:979px){.navbar-fixed-top{position:static;margin-bottom:0}.navbar .btn-navbar{font-size:16px;background:none;filter:none;border:none;-webkit-box-shadow:none;box-shadow:none}.navbar .container{padding:0 10px}.subnavbar .subnavbar .container{width:auto}}@media(max-width:768px){body{font-size:12px}.navbar .mainnav>li>a{padding:0 10px;font-size:1em;line-height:1em}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;font-size:1em;line-height:1em}.subnavbar .subnav-toggle{display:block}.extra{margin-right:-20px;margin-left:-20px}.main .container{padding:0}.main .row{margin-right:-15px;margin-left:-15px}.footer{margin-right:-20px;margin-left:-20px}.footer #footer-terms{margin-top:1em;text-align:left}.footer #footer-terms a{margin-left:0;margin-right:1em}.item-row{display:block}.item-row:before,.item-row:after{content:" ";display:table}.item-row:after{clear:both}.item-row .item-label{display:block;width:100%;margin-bottom:1.5em}.item-row .item-content{display:block;width:100%}.subnavbar{margin-left:-20px;margin-right:-20px}.subnavbar .btn-subnavbar{display:block}.subnavbar .subnavbar-inner{height:auto}.subnavbar .mainnav{display:block;width:100%;height:auto;margin-top:1em;margin-bottom:1.5em;border:none}.subnavbar .mainnav>li{float:none;width:100%;height:auto;margin-bottom:1em;text-align:left;border:none}.subnavbar .mainnav>li>a{display:block;margin-right:.5em;color:#ccc;font-weight:600;padding:0 10px;font-size:1em;line-height:1em}.subnavbar .mainnav>li>a>span{display:inline}.subnavbar .mainnav>li>a>i{display:inline;margin-right:.5em;margin-bottom:0;font-size:14px}.subnavbar .mainnav>li>a .caret{margin-top:-2px;margin-left:3px}.subnavbar .mainnav>li.active>a{color:#f90;background:transparent}.subnavbar .dropdown .dropdown-menu{position:static;float:none;width:100%;background:transparent;border:none;box-shadow:none}.subnavbar .dropdown .dropdown-menu a{padding:12px 40px;color:#fff;font-weight:600}.subnavbar .dropdown .dropdown-menu a:active,.subnavbar .dropdown .dropdown-menu a:focus{background:#555 !important;outline:none}.subnavbar .dropdown .dropdown-menu::before,.subnavbar .dropdown .dropdown-menu::after{display:none}.subnavbar .dropdown.open .caret{display:inline-block}.subnavbar .dropdown-submenu>a:after{display:none}.subnavbar .dropdown-submenu>.dropdown-menu{display:block}.subnavbar .dropdown-submenu>.dropdown-menu>li>a{padding-right:20px;padding-left:60px}}@media(min-width:768px){.subnav-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}}@media(min-width:1200px){.nav>li>a{padding:4px 8px;font-size:1.2em;line-height:1.2em}.navbar .container,.subnavbar .container{padding-right:0;padding-left:0}.page-title{margin-left:-15px}}.stileAttesa{background:#aaa;text-align:center}.stileComandoOk{background:#afa;text-align:center}.stileComandoKo{background:#ff9595;text-align:center}.stileComandoWarn{background:#ffc168;text-align:center}.stileComandoAdd{background:#aaf;text-align:center}.stileComandoND{background:#ffa;text-align:center}.sidebar{position:fixed;top:120px;bottom:24px;left:0;z-index:1000;display:block;padding:16px;overflow-x:hidden;overflow-y:auto;background-color:#f5f5f5;border-right:1px solid #eee}.ombra{box-shadow:0 20px 20px black}.ctrHeaderPager{background-color:#b8b8b8;color:#fff}.ctrHeaderPagerRight{background-color:#b8b8b8;font-weight:bold;color:#fff;text-align:right}.ctrHeaderPagerBlue{background-color:#507cd1;height:1px}.ctrHeaderPagerBlueRight{background-color:#507cd1;height:1px;text-align:right}.ctrFooter{background-color:#507cd1;font-weight:bold;color:#fff}.ctrRowStyle{background-color:#eff3fb}.ctrAltRowStyle{background-color:#fff}.ctrRowStyleRight{background-color:#eff3fb;text-align:right}.ctrAltRowStyleRight{background-color:#fff;text-align:right}.ctrInsRowStyle{background-color:#b8b8b8}.ctrEditRowStyle{background-color:#d1ddf1}.ctrSelRowStyle{font-weight:bold;color:#333;background-color:#d1ddf1}.ctrSelRowStyleYellow{font-weight:bold;color:#333;background-color:#ff0}.ctrCommRow{font-weight:bold;background-color:#d1ddf1}.ctrFiledHead{background-color:#dee8f5;font-weight:bold;width:25%}.ctrLabelStrong{font-weight:bold}.ctrFieldEdit{font-size:8pt}.sv{text-align:center;font-size:7pt;height:20px;background-image:url(../images/verde_20.png)}.sg{text-align:center;font-size:7pt;height:20px;background-image:url(../images/giallo_20.png)}.sr{text-align:center;font-size:7pt;height:20px;background-image:url(../images/rosso_20.png);color:#fff}.ss{text-align:center;font-size:7pt;height:20px;background-image:url(../images/grigio_20.png);color:#fff}.cellaLibera{text-align:center;font-size:8pt;height:40px;background-image:url(../images/grigioChiaro_80.png);border:solid 1px #777}.cellaSelezDett{text-align:center;font-size:8pt;height:40px;background-image:url(../images/giallo_80.png);border:solid 1px #777}.cellaOccupata{text-align:center;font-size:8pt;height:40px;background-image:url(../images/arancio_80.png);color:#fff;border:solid 1px #777}.cellaPiena{text-align:center;font-size:8pt;height:40px;background-image:url(../images/verde_80.png);color:#fff;border:solid 1px #777}.cellaInattiva{text-align:center;font-size:8pt;height:40px;background-image:url(../images/grigio_80.png);color:#fff;border:solid 1px #777}.cellaInattiva a{color:#fff}.cellaSelezAll{text-align:center;font-size:8pt;height:40px;background-image:url(../images/blu_80.png);border:solid 1px #777}.cellaBianca{text-align:center;font-size:8pt;font-weight:bold}.selectedCell{border:dashed 2px #000;text-align:center}.didascalia{color:#696969;font-size:7pt}.ShadowText{text-shadow:2px 2px 2px rgba(0,0,0,.4)}.boxShadowLight{-webkit-box-shadow:3px 3px 6px rgba(0,0,0,.1);-moz-box-shadow:3px 3px 6px rgba(0,0,0,.1);box-shadow:3px 3px 6px rgba(0,0,0,.1)}.boxShadowDark{-webkit-box-shadow:3px 3px 6px rgba(0,0,0,.3);-moz-box-shadow:3px 3px 6px rgba(0,0,0,.3);box-shadow:3px 3px 6px rgba(0,0,0,.3)} \ No newline at end of file diff --git a/GMW/FullPage.master b/GMW/FullPage.master index 4570fa40..2b123997 100644 --- a/GMW/FullPage.master +++ b/GMW/FullPage.master @@ -1,5 +1,8 @@ <%@ Master Language="C#" MasterPageFile="~/Bootstrap.Master" AutoEventWireup="true" CodeBehind="FullPage.master.cs" Inherits="GMW.FullPage" %> +<%@ Register Src="~/WebUserControls/mod_numKey.ascx" TagPrefix="uc1" TagName="mod_numKey" %> + + @@ -9,6 +12,12 @@ - - +
+ NUMERIC KEYPAD + +
+
+ + +
diff --git a/GMW/FullPage.master.cs b/GMW/FullPage.master.cs index 709f0347..274d0ad5 100644 --- a/GMW/FullPage.master.cs +++ b/GMW/FullPage.master.cs @@ -1,4 +1,5 @@ -using System; +using SteamWare; +using System; using System.Collections.Generic; using System.Linq; using System.Web; @@ -11,7 +12,35 @@ namespace GMW { protected void Page_Load(object sender, EventArgs e) { - + if(!Page.IsPostBack) + { + // se è richiesto mostro calcolatrice e di conseguenza imposto DIV... altrimenti + if(showCalc) + { + divMain.Attributes.Remove("class"); + divMain.Attributes.Add("class", "divMainKeyb"); + } + divNumKeyb.Visible = showCalc; + } } + + protected bool showCalc + { + get + { + bool answ = false; + // cerco da sessione SE C'E'... + if(memLayer.ML.isInSessionObject("showNumKey")) + { + answ = memLayer.ML.BoolSessionObj("showNumKey"); + } + else + { + // cerco da web.config + answ = memLayer.ML.CRB("showNumKey"); + } + return answ; + } + } } } \ No newline at end of file diff --git a/GMW/FullPage.master.designer.cs b/GMW/FullPage.master.designer.cs index 6b3993a8..24b4cab5 100644 --- a/GMW/FullPage.master.designer.cs +++ b/GMW/FullPage.master.designer.cs @@ -30,6 +30,33 @@ namespace GMW { /// protected global::System.Web.UI.WebControls.ContentPlaceHolder FeaturedContent; + /// + /// divNumKeyb control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divNumKeyb; + + /// + /// mod_numKey control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::GMW.WebUserControls.mod_numKey mod_numKey; + + /// + /// divMain control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divMain; + /// /// MCon control. /// diff --git a/GMW/GMW.csproj b/GMW/GMW.csproj index f816f9e3..dd97bf7e 100644 --- a/GMW/GMW.csproj +++ b/GMW/GMW.csproj @@ -250,6 +250,7 @@ + @@ -446,8 +447,11 @@ + + + compilerconfig.json + - @@ -477,6 +481,7 @@ + @@ -1522,6 +1527,13 @@ mod_metodiNoSearch.ascx + + mod_numKey.ascx + ASPXCodeBehind + + + mod_numKey.ascx + mod_nuovaListaPrelievo.ascx ASPXCodeBehind diff --git a/GMW/GMW.csproj.user b/GMW/GMW.csproj.user index b9513f4d..3b0d8d98 100644 --- a/GMW/GMW.csproj.user +++ b/GMW/GMW.csproj.user @@ -2,7 +2,7 @@ ShowAllFiles - TK_test + IIS02_TK diff --git a/GMW/Properties/PublishProfiles/TK_prod.pubxml b/GMW/Properties/PublishProfiles/TK_prod.pubxml index d4889fe6..7ca66b8d 100644 --- a/GMW/Properties/PublishProfiles/TK_prod.pubxml +++ b/GMW/Properties/PublishProfiles/TK_prod.pubxml @@ -18,11 +18,11 @@ by editing this MSBuild file. In order to learn more about this please visit htt - + - + diff --git a/GMW/Properties/PublishProfiles/Test218.pubxml b/GMW/Properties/PublishProfiles/Test218.pubxml deleted file mode 100644 index 836e9b31..00000000 --- a/GMW/Properties/PublishProfiles/Test218.pubxml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - MSDeploy - Release - Any CPU - - True - False - https://10.74.82.218:8172/MsDeploy.axd - Default Web Site/GMW - - True - WMSVC - True - Administrator - <_SavePWD>True - - \ No newline at end of file diff --git a/GMW/Properties/PublishProfiles/Test218.pubxml.user b/GMW/Properties/PublishProfiles/Test218.pubxml.user deleted file mode 100644 index aa317686..00000000 --- a/GMW/Properties/PublishProfiles/Test218.pubxml.user +++ /dev/null @@ -1,11 +0,0 @@ - - - - - 2014-10-23T19:00:49.9701048+02:00 - AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAADfdPkbM5mUeaV6YvQx8NEwAAAAACAAAAAAADZgAAwAAAABAAAABretqmeAwoN8dwwUym0l6uAAAAAASAAACgAAAAEAAAANS9Yunkzc8Nyn9LraBErMgQAAAArKgvGhTAwNnTbdGD8tmWohQAAAC/UZP/r9BIjbarE1TjmEMK+wszYw== - - \ No newline at end of file diff --git a/GMW/Web.SP_prod.config b/GMW/Web.SP_prod.config index 4a655035..4deb1ea4 100644 --- a/GMW/Web.SP_prod.config +++ b/GMW/Web.SP_prod.config @@ -25,6 +25,9 @@ + + + diff --git a/GMW/Web.SP_test.config b/GMW/Web.SP_test.config index 12e97224..780b0345 100644 --- a/GMW/Web.SP_test.config +++ b/GMW/Web.SP_test.config @@ -24,6 +24,9 @@ + + + diff --git a/GMW/Web.TK_prod.config b/GMW/Web.TK_prod.config index 79cc1b07..f1516472 100644 --- a/GMW/Web.TK_prod.config +++ b/GMW/Web.TK_prod.config @@ -22,6 +22,9 @@ + + + diff --git a/GMW/Web.TK_test.config b/GMW/Web.TK_test.config index 2b99ee17..fd046dcc 100644 --- a/GMW/Web.TK_test.config +++ b/GMW/Web.TK_test.config @@ -21,6 +21,9 @@ + + + @@ -46,7 +49,7 @@ - + diff --git a/GMW/Web.config b/GMW/Web.config index fb91da8c..4d2c81a1 100644 --- a/GMW/Web.config +++ b/GMW/Web.config @@ -70,6 +70,15 @@ + + + + + + + + + diff --git a/GMW/WebUserControls/mod_FusiSterr.ascx.cs b/GMW/WebUserControls/mod_FusiSterr.ascx.cs index 6a6c6084..8be9ca15 100644 --- a/GMW/WebUserControls/mod_FusiSterr.ascx.cs +++ b/GMW/WebUserControls/mod_FusiSterr.ascx.cs @@ -28,6 +28,10 @@ namespace GMW.WebUserControls /// tipo di evento associato alla modifica qta dell'UDC /// protected string eventoUDC_qta = "UDC_QTY"; + /// + /// dati x verifica CodSoggetto / matricola + /// + protected string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); public event EventHandler eh_reqUpdate; /// /// stringa UID univoca @@ -53,11 +57,26 @@ namespace GMW.WebUserControls destAL = AlByCella; traduciObj(); idxCella = Postazione.currIdxCella; + checkNumKeyIn(); } setVisibility(); doChecks(); } /// + /// verifico se ci sia in sessione un input da NumKeyb e nel caso lometto in barcodeIn e processo... + /// + private void checkNumKeyIn() + { + if (memLayer.ML.isInSessionObject("numKeyIn")) + { + barcodeIn = memLayer.ML.StringSessionObj("numKeyIn"); + // svuoto valore in sessione... + memLayer.ML.emptySessionVal("numKeyIn"); + // controllo barcode... + checkBarcode(); + } + } + /// /// IDX cella associata alla linea corrente /// protected int idxCella @@ -295,6 +314,14 @@ namespace GMW.WebUserControls { tipoCodiceBarcode answ = tipoCodiceBarcode.ND; int trovati = 0; + int matricola = -1; + // provo a convertire in intero barcode x verifica eventuale matricola... + try + { + matricola = Convert.ToInt32(barcodeIn); + } + catch + { } // controllo non si tratti di un comando... string preCmd = memLayer.ML.confReadString("prefComandi"); if (barcodeIn.StartsWith(preCmd)) @@ -305,6 +332,21 @@ namespace GMW.WebUserControls { answ = tipoCodiceBarcode.Particolare; } + else if (barcodeIn.StartsWith(preCodSogg)) + { + // cerco cod soggetto... + if (DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } + else if (matricola >= 0) + { + if (DataProxy.obj.taTrascSogg.getByKey("", matricola).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } else { try @@ -378,18 +420,50 @@ namespace GMW.WebUserControls case tipoCodiceBarcode.UDC: // non fa nulla break; + case tipoCodiceBarcode.Operatore: + // calcolo matricola utente + int MatrUtente = -1; + string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); + if (barcodeIn.StartsWith(preCodSogg)) + { + MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola; + } + else + { + MatrUtente = Convert.ToInt32(barcodeIn); + } + if (MatrUtente >= 0) + { + // salvo in sessione operatore con AUTH + OpAuth.startOpAuth(MatrUtente); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRec"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + else + { + Postazione.messaggiText += " - codice non riconosciuto!"; + Postazione.CssClass = "stileComandoND"; + } + break; default: + // cerco se sia "0" = reset utente... + if (barcodeIn == memLayer.ML.CRS("resetCodSogg")) + { + // salvo in sessione operatore con AUTH + OpAuth.stopAuth(); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRem"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } Postazione.messaggiText += " - codice non riconosciuto!"; Postazione.CssClass = "stileComandoND"; break; } barcodeIn = ""; } - else - { - Postazione.messaggiText = traduci("AttesaBCode"); - Postazione.CssClass = "stileAttesa"; - } txtBarcode.Focus(); } @@ -489,42 +563,67 @@ namespace GMW.WebUserControls /// protected void btnStampa_Click(object sender, EventArgs e) { + bool needsRedirect = false; string[] stringSeparators = new string[] { "#" }; // verifico postazione x procedere... if (Postazione.printer != "n.d.") { - DateTime adesso = DateTime.Now; - string noteTrim = txtNote.Text.Trim(); - string lineaCesta = string.Format("{0} | cesta: {1}", Postazione.currNomeLinea, numCesta); - noteTrim = string.Format("{0}{1}{2}", lineaCesta, Environment.NewLine, noteTrim); - - // effettuo controlli che cod_soggetto, cod particolare e destAL siano disponibili... - if (MagClass.magazzino.CodSoggCurrUser != "" && currParticolare != "" && destAL != "ALS00") + // verifico auth utente OPPURE se NON sia richiesta... + if (OpAuth.isAuth || !OpAuth.opAuthReq) { - // aggiorno note e posizione da temp a definitiva x UDC... - MagClass.magazzino.updateNotePosizioneUDC(currUDC, noteTrim, memLayer.ML.confReadInt("IdxPosizioneSterrati")); - // registro creazione nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, currUDC, currParticolare, "creaUDC", string.Format("Creato nuovo UDC Fusi Sterr Taglio, qta: {0} {1}", qta, "")); - // metto attributo FC - MagClass.magazzino.taAtt2UDC.Insert(currUDC, "FS", "", DateTime.Now, MagClass.magazzino.CodSoggCurrUser); - // tolgo UDC da AL corrente... - MagClass.magazzino.taAL2UDC.deleteQuery(destAL, currUDC); + DateTime adesso = DateTime.Now; + string noteTrim = txtNote.Text.Trim(); + string lineaCesta = string.Format("{0} | cesta: {1}", Postazione.currNomeLinea, numCesta); + noteTrim = string.Format("{0}{1}{2}", lineaCesta, Environment.NewLine, noteTrim); - // ora stampo il nuovo cartellino!!! - MagClass.magazzino.stampaUdc(currUDC, Postazione.printer, tipoCartellino.cartSterr, Request.UserHostName); - // incremento timing... - adesso = adesso.AddSeconds(2); - // registro stampa nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, currUDC, currParticolare, "stampaUDC", "Stampato UDC Fusione-Sterratura-Taglio"); - // svuoto campo cesta... - numCesta = ""; - // resetto - doResetData(); + // effettuo controlli che cod_soggetto, cod particolare e destAL siano disponibili... + if (MagClass.magazzino.CodSoggCurrUser != "" && currParticolare != "" && destAL != "ALS00") + { + // aggiorno note e posizione da temp a definitiva x UDC... + MagClass.magazzino.updateNotePosizioneUDC(currUDC, noteTrim, memLayer.ML.confReadInt("IdxPosizioneSterrati")); + + if (OpAuth.isAuth) + { + // salvo attributo dell'OpAuth... + MagClass.magazzino.taAtt2UDC.Insert(currUDC, memLayer.ML.CRS("attrOpAuth"), OpAuth.currAuth.CodSoggetto, DateTime.Now, MagClass.magazzino.CodSoggCurrUser); + // consumo una auth... + OpAuth.currAuth.remAuth--; + if (OpAuth.currAuth.remAuth == 0) + { + OpAuth.stopAuth(); + needsRedirect = true; + } + } + + // registro creazione nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, currUDC, currParticolare, "creaUDC", string.Format("Creato nuovo UDC Fusi Sterr Taglio, qta: {0} {1}", qta, "")); + // metto attributo FC + MagClass.magazzino.taAtt2UDC.Insert(currUDC, "FS", "", DateTime.Now, MagClass.magazzino.CodSoggCurrUser); + // tolgo UDC da AL corrente... + MagClass.magazzino.taAL2UDC.deleteQuery(destAL, currUDC); + + // ora stampo il nuovo cartellino!!! + MagClass.magazzino.stampaUdc(currUDC, Postazione.printer, tipoCartellino.cartSterr, Request.UserHostName); + // incremento timing... + adesso = adesso.AddSeconds(2); + // registro stampa nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, currUDC, currParticolare, "stampaUDC", "Stampato UDC Fusione-Sterratura-Taglio"); + // svuoto campo cesta... + numCesta = ""; + // resetto + doResetData(); + } + else + { + httpLog(string.Format("FST, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); + Response.Redirect("~/login.aspx"); + } } else { - httpLog(string.Format("FST, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); - Response.Redirect("~/login.aspx"); + Postazione.messaggiText = traduci("noOpAuth"); + Postazione.CssClass = "stileComandoKo"; + httpLog(string.Format("Errore manca OpAuth x UDC anime"), tipoLog.ERROR); } } else @@ -537,6 +636,10 @@ namespace GMW.WebUserControls { eh_reqUpdate(this, new EventArgs()); } + if (needsRedirect) + { + Response.Redirect(user_std.pagCorrente); + } } /// @@ -581,6 +684,13 @@ namespace GMW.WebUserControls protected void btnEmptyNote_Click(object sender, EventArgs e) { txtNote.Text = ""; + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } } /// diff --git a/GMW/WebUserControls/mod_anime.ascx.cs b/GMW/WebUserControls/mod_anime.ascx.cs index d38042e0..7f4e1b77 100644 --- a/GMW/WebUserControls/mod_anime.ascx.cs +++ b/GMW/WebUserControls/mod_anime.ascx.cs @@ -20,6 +20,10 @@ namespace GMW.WebUserControls /// stato associato (hard coded) a ANIME /// protected string statoUDC = "Anim"; + /// + /// dati x verifica CodSoggetto / matricola + /// + protected string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); public event EventHandler eh_reqUpdate; /// /// stringa UID univoca @@ -41,6 +45,7 @@ namespace GMW.WebUserControls if (!Page.IsPostBack) { traduciObj(); + checkNumKeyIn(); } doChecks(); if (currParticolare != "") @@ -67,6 +72,21 @@ namespace GMW.WebUserControls lblDisegno.Text = ""; } } + /// + /// verifico se ci sia in sessione un input da NumKeyb e nel caso lometto in barcodeIn e processo... + /// + private void checkNumKeyIn() + { + if (memLayer.ML.isInSessionObject("numKeyIn")) + { + barcodeIn = memLayer.ML.StringSessionObj("numKeyIn"); + // svuoto valore in sessione... + memLayer.ML.emptySessionVal("numKeyIn"); + // controllo barcode... + checkBarcode(); + } + } + /// /// richiesta (ri)stampa UDC /// @@ -207,6 +227,15 @@ namespace GMW.WebUserControls int trovati = 0; // controllo non si tratti di un comando... string preCmd = memLayer.ML.confReadString("prefComandi"); + int matricola = -1; + // provo a convertire in intero barcode x verifica eventuale matricola... + try + { + matricola = Convert.ToInt32(barcodeIn); + } + catch + { } + // decodifico! if (barcodeIn.StartsWith(preCmd)) { answ = tipoCodiceBarcode.Comando; @@ -215,6 +244,21 @@ namespace GMW.WebUserControls { answ = tipoCodiceBarcode.Particolare; } + else if (barcodeIn.StartsWith(preCodSogg)) + { + // cerco cod soggetto... + if (DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } + else if (matricola >= 0) + { + if (DataProxy.obj.taTrascSogg.getByKey("", matricola).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } else { try @@ -287,12 +331,12 @@ namespace GMW.WebUserControls if (DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count == 0) { currParticolare = ""; - Postazione.messaggiText += " - codice particolare non valido / non trovato in RILPRO."; + Postazione.messaggiText += traduci("ERR-ANM-001"); Postazione.CssClass = "stileComandoKo"; } else { - Postazione.messaggiText += " - impostato particolare!"; + Postazione.messaggiText += traduci("partSelected"); Postazione.CssClass = "stileComandoOk"; } // leggo la qta dell'ultimo UDC del particolare, SE C'E', e la imposto... @@ -311,33 +355,68 @@ namespace GMW.WebUserControls { // recupero il particolare dai dati del cartellino preesistente currParticolare = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].Particolare; - // controllo esista il particolare - if (DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count == 0) + // controllo esista!!! + bool partExists = DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count != 0; + // controllo sia anima!!! + bool isAnima = TermClass.Ter.isAnima(currParticolare); + // controllo esista il particolare e sia anima + if(partExists && isAnima) { - currParticolare = ""; - Postazione.messaggiText += " - codice particolare da UDC non valido / non trovato in RILPRO."; - Postazione.CssClass = "stileComandoKo"; + Postazione.messaggiText += traduci("partSelected"); + Postazione.CssClass = "stileComandoOk"; } else { - Postazione.messaggiText += " - impostato particolare!"; - Postazione.CssClass = "stileComandoOk"; + currParticolare = ""; + Postazione.messaggiText += traduci("ERR-ANM-001"); + Postazione.CssClass = "stileComandoKo"; } } + break; + case tipoCodiceBarcode.Operatore: + // calcolo matricola utente + int MatrUtente = -1; + if (barcodeIn.StartsWith(preCodSogg)) + { + MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola; + } + else + { + MatrUtente = Convert.ToInt32(barcodeIn); + } + if (MatrUtente >= 0) + { + // salvo in sessione operatore con AUTH + OpAuth.startOpAuth(MatrUtente); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRec"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + else + { + Postazione.messaggiText += traduci("ERR-BCD-001"); + Postazione.CssClass = "stileComandoND"; + } break; default: - Postazione.messaggiText += " - codice non riconosciuto!"; + // cerco se sia "0" = reset utente... + if (barcodeIn == memLayer.ML.CRS("resetCodSogg")) + { + // salvo in sessione operatore con AUTH + OpAuth.stopAuth(); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRem"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + Postazione.messaggiText += traduci("ERR-BCD-001"); Postazione.CssClass = "stileComandoND"; break; } barcodeIn = ""; } - else - { - Postazione.messaggiText = traduci("AttesaBCode"); - Postazione.CssClass = "stileAttesa"; - } doUpdate(); } /// @@ -407,53 +486,79 @@ namespace GMW.WebUserControls /// protected void lbtStampaUDC_Click(object sender, EventArgs e) { + bool needsRedirect = false; // verifico postazione x procedere... if (Postazione.printer != "n.d.") { - string newUdcChild = ""; - string noteTrim = txtNote.Text.Trim(); - // effettuo controlli che cod_soggetto e cod particolare siano disponibili... - string codSogg = ""; - string particolare = ""; - try + // verifico auth utente OPPURE se NON sia richiesta... + if (OpAuth.isAuth || !OpAuth.opAuthReq) { - codSogg = MagClass.magazzino.CodSoggCurrUser; - particolare = currParticolare; - } - catch - { - } - if (codSogg != "" && particolare != "") - { - // genero cartellino liquidi - DateTime adesso = DateTime.Now; + string newUdcChild = ""; + string noteTrim = txtNote.Text.Trim(); + // effettuo controlli che cod_soggetto e cod particolare siano disponibili... + string codSogg = ""; + string particolare = ""; try { - // creo nuovo UDC del trattamento liquidi - newUdcChild = MagClass.magazzino.creaUdc(flusso, "", particolare, "", "", "", "", "", 0, memLayer.ML.confReadString("CodImballoAnime"), "U", codSogg, qta, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneAnime"), "IdxPosizioneAnime", "UDC_ANIMA", noteTrim, "", adesso.Year, Request.UserHostName); - // registro creazione nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Anime - qta:{0} {1}", qta, noteTrim)); + codSogg = MagClass.magazzino.CodSoggCurrUser; + particolare = currParticolare; } - catch (Exception exc) + catch { - httpLog(string.Format("Errore creazione UDC anime: {0}", exc), tipoLog.EXCEPTION); } - // se ho cart stampo! - if (newUdcChild != "") + if (codSogg != "" && particolare != "") { - // ora stampo il nuovo cartellino!!! - MagClass.magazzino.stampaUdc(newUdcChild, Postazione.printer, tipoCartellino.cartAnime, Request.UserHostName); - // incremento timing... - adesso = DateTime.Now; - adesso = adesso.AddSeconds(1); - // registro stampa nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "stampaUDC", "Stampato UDC Anime"); + // genero cartellino liquidi + DateTime adesso = DateTime.Now; + try + { + // creo nuovo UDC del trattamento liquidi + newUdcChild = MagClass.magazzino.creaUdc(flusso, "", particolare, "", "", "", "", "", 0, memLayer.ML.confReadString("CodImballoAnime"), "U", codSogg, qta, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneAnime"), "IdxPosizioneAnime", "UDC_ANIMA", noteTrim, "", adesso.Year, Request.UserHostName); + + if (OpAuth.isAuth) + { + // salvo attributo dell'OpAuth... + MagClass.magazzino.taAtt2UDC.Insert(newUdcChild, memLayer.ML.CRS("attrOpAuth"), OpAuth.currAuth.CodSoggetto, DateTime.Now, codSogg); + // consumo una auth... + OpAuth.currAuth.remAuth--; + if (OpAuth.currAuth.remAuth == 0) + { + OpAuth.stopAuth(); + needsRedirect = true; + } + } + + // registro creazione nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Anime - qta:{0} {1}", qta, noteTrim)); + } + catch (Exception exc) + { + httpLog(string.Format("Errore creazione UDC anime: {0}", exc), tipoLog.EXCEPTION); + } + // se ho cart stampo! + if (newUdcChild != "") + { + // ora stampo il nuovo cartellino!!! + MagClass.magazzino.stampaUdc(newUdcChild, Postazione.printer, tipoCartellino.cartAnime, Request.UserHostName); + // incremento timing... + adesso = DateTime.Now; + adesso = adesso.AddSeconds(1); + // registro stampa nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "stampaUDC", "Stampato UDC Anime"); + } } + else + { + httpLog(string.Format("Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); + Response.Redirect("~/login.aspx"); + } + // } else { - httpLog(string.Format("Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); - Response.Redirect("~/login.aspx"); + Postazione.messaggiText = traduci("noOpAuth"); + Postazione.CssClass = "stileComandoKo"; + httpLog(string.Format("Errore manca OpAuth x UDC anime"), tipoLog.ERROR); } } else @@ -465,6 +570,10 @@ namespace GMW.WebUserControls { eh_reqUpdate(this, new EventArgs()); } + if(needsRedirect) + { + Response.Redirect(user_std.pagCorrente); + } } /// /// wrapper per log con salvataggio dell'IP del chiamante @@ -510,6 +619,13 @@ namespace GMW.WebUserControls protected void btnEmptyNote_Click(object sender, EventArgs e) { txtNote.Text = ""; + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } } } diff --git a/GMW/WebUserControls/mod_animeMult.ascx.cs b/GMW/WebUserControls/mod_animeMult.ascx.cs index 7f8091e0..8889ba0c 100644 --- a/GMW/WebUserControls/mod_animeMult.ascx.cs +++ b/GMW/WebUserControls/mod_animeMult.ascx.cs @@ -20,6 +20,10 @@ namespace GMW.WebUserControls /// stato associato (hard coded) a Anime EXT /// protected string statoUDC = "AnimExt"; + /// + /// dati x verifica CodSoggetto / matricola + /// + protected string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); public event EventHandler eh_reqUpdate; /// /// stringa UID univoca @@ -41,10 +45,25 @@ namespace GMW.WebUserControls if (!Page.IsPostBack) { traduciObj(); + checkNumKeyIn(); } doChecks(); } /// + /// verifico se ci sia in sessione un input da NumKeyb e nel caso lometto in barcodeIn e processo... + /// + private void checkNumKeyIn() + { + if (memLayer.ML.isInSessionObject("numKeyIn")) + { + barcodeIn = memLayer.ML.StringSessionObj("numKeyIn"); + // svuoto valore in sessione... + memLayer.ML.emptySessionVal("numKeyIn"); + // controllo barcode... + checkBarcode(); + } + } + /// /// richiesta (ri)stampa UDC /// /// @@ -189,6 +208,14 @@ namespace GMW.WebUserControls { tipoCodiceBarcode answ = tipoCodiceBarcode.ND; int trovati = 0; + int matricola = -1; + // provo a convertire in intero barcode x verifica eventuale matricola... + try + { + matricola = Convert.ToInt32(barcodeIn); + } + catch + { } // controllo non si tratti di un comando... string preCmd = memLayer.ML.confReadString("prefComandi"); if (barcodeIn.StartsWith(preCmd)) @@ -199,6 +226,21 @@ namespace GMW.WebUserControls { answ = tipoCodiceBarcode.Particolare; } + else if (barcodeIn.StartsWith(preCodSogg)) + { + // cerco cod soggetto... + if (DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } + else if (matricola >= 0) + { + if (DataProxy.obj.taTrascSogg.getByKey("", matricola).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } else { try @@ -311,12 +353,12 @@ namespace GMW.WebUserControls if (DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count == 0) { currParticolare = ""; - Postazione.messaggiText += " - codice particolare non valido / non trovato in RILPRO."; + Postazione.messaggiText += traduci("ERR-ANM-001"); Postazione.CssClass = "stileComandoKo"; } else { - Postazione.messaggiText += " - impostato particolare!"; + Postazione.messaggiText += traduci("partSelected"); Postazione.CssClass = "stileComandoOk"; } // leggo la qta dell'ultimo UDC del particolare, SE C'E', e la imposto... @@ -335,33 +377,69 @@ namespace GMW.WebUserControls { // recupero il particolare dai dati del cartellino preesistente currParticolare = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].Particolare; - // controllo esista il particolare - if (DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count == 0) + // controllo esista!!! + bool partExists = DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count != 0; + // controllo sia anima!!! + bool isAnima = TermClass.Ter.isAnima(currParticolare); + // controllo esista il particolare e sia anima + if (partExists && isAnima) { - currParticolare = ""; - Postazione.messaggiText += " - codice particolare da UDC non valido / non trovato in RILPRO."; - Postazione.CssClass = "stileComandoKo"; + Postazione.messaggiText += traduci("partSelected"); + Postazione.CssClass = "stileComandoOk"; } else { - Postazione.messaggiText += " - impostato particolare!"; - Postazione.CssClass = "stileComandoOk"; + currParticolare = ""; + Postazione.messaggiText += traduci("ERR-ANM-001"); + Postazione.CssClass = "stileComandoKo"; } } + break; + case tipoCodiceBarcode.Operatore: + // calcolo matricola utente + int MatrUtente = -1; + string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); + if (barcodeIn.StartsWith(preCodSogg)) + { + MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola; + } + else + { + MatrUtente = Convert.ToInt32(barcodeIn); + } + if (MatrUtente >= 0) + { + // salvo in sessione operatore con AUTH + OpAuth.startOpAuth(MatrUtente); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRec"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + else + { + Postazione.messaggiText += traduci("ERR-BCD-001"); + Postazione.CssClass = "stileComandoND"; + } break; default: - Postazione.messaggiText += " - codice non riconosciuto!"; + // cerco se sia "0" = reset utente... + if (barcodeIn == memLayer.ML.CRS("resetCodSogg")) + { + // salvo in sessione operatore con AUTH + OpAuth.stopAuth(); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRem"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + Postazione.messaggiText += traduci("ERR-BCD-001"); Postazione.CssClass = "stileComandoND"; break; } barcodeIn = ""; } - else - { - Postazione.messaggiText = traduci("AttesaBCode"); - Postazione.CssClass = "stileAttesa"; - } doUpdate(); } /// @@ -438,94 +516,129 @@ namespace GMW.WebUserControls /// protected void lbtStampaUDC_Click(object sender, EventArgs e) { + bool needsRedirect = false; // verifico postazione x procedere... if (Postazione.printer != "n.d.") { - string newUdcChild = ""; - int qta = memLayer.ML.confReadInt("QtaImballoAnime"); - string noteTrim = txtNote.Text.Trim(); - try + // verifico auth utente OPPURE se NON sia richiesta... + if (OpAuth.isAuth || !OpAuth.opAuthReq) { - qta = Convert.ToInt32(txtQtaUDC.Text); - } - catch - { } - // effettuo controlli che cod_soggetto e cod particolare siano disponibili... - string codSogg = ""; - string particolare = ""; - try - { - codSogg = MagClass.magazzino.CodSoggCurrUser; - particolare = currParticolare; - } - catch - { - } - if (codSogg != "" && particolare != "") - { - for (int i = 0; i < numUDC; i++) + string newUdcChild = ""; + int qta = memLayer.ML.confReadInt("QtaImballoAnime"); + string noteTrim = txtNote.Text.Trim(); + try { - // genero cartellino anima - DateTime adesso = DateTime.Now; - try + qta = Convert.ToInt32(txtQtaUDC.Text); + } + catch + { } + // effettuo controlli che cod_soggetto e cod particolare siano disponibili... + string codSogg = ""; + string particolare = ""; + try + { + codSogg = MagClass.magazzino.CodSoggCurrUser; + particolare = currParticolare; + } + catch + { + } + if (codSogg != "" && particolare != "") + { + for (int i = 0; i < numUDC; i++) { - // creo nuovo UDC anime multiple - newUdcChild = MagClass.magazzino.creaUdc(flusso, "", currParticolare, "", "", "", "", "", 0, memLayer.ML.confReadString("CodImballoAnime"), "U", MagClass.magazzino.CodSoggCurrUser, qta, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneAnimeExt"), "IdxPosizioneAnimeExt", "UDC_ANIMA", noteTrim, "", adesso.Year, Request.UserHostName); - // registro creazione nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Anime EX, qta: {0} {1}", qta, noteTrim)); - } - catch (Exception exc) - { - httpLog(string.Format("Errore creazione UDC anime mult: {0}", exc), tipoLog.EXCEPTION); - } - // se ho cart liquidi genero (se non ci sono) cart trattamenti - if (newUdcChild != "") - { - /*************************************************************************************** - * dopo che l'ho creato lo sposto da post anime ext a post anime int (NO UPDATE AS400...) - * IdxPosizioneAnimeExt --> IdxPosizioneAnime - * !!! DEVO CALCOLARE LA CELLA !!! parto dal blocco calcolato da tab transizioni - ***************************************************************************************/ - int idxBloccoTo = StateMachine.SM.getIdxBloccoTo("UDC_ANIMA", memLayer.ML.confReadInt("IdxPosizioneAnimeExt")); - int idxCellaTo = 0; + // genero cartellino anima + DateTime adesso = DateTime.Now; try { - idxCellaTo = MagClass.magazzino.taCelle.getByIdxBlocco(idxBloccoTo)[0].IdxCella; + // creo nuovo UDC anime multiple + newUdcChild = MagClass.magazzino.creaUdc(flusso, "", currParticolare, "", "", "", "", "", 0, memLayer.ML.confReadString("CodImballoAnime"), "U", MagClass.magazzino.CodSoggCurrUser, qta, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneAnimeExt"), "IdxPosizioneAnimeExt", "UDC_ANIMA", noteTrim, "", adesso.Year, Request.UserHostName); + + if (OpAuth.isAuth) + { + // salvo attributo dell'OpAuth... + MagClass.magazzino.taAtt2UDC.Insert(newUdcChild, memLayer.ML.CRS("attrOpAuth"), OpAuth.currAuth.CodSoggetto, DateTime.Now, codSogg); + } + + // registro creazione nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Anime EX, qta: {0} {1}", qta, noteTrim)); } - catch - { } - if (idxCellaTo != 0) + catch (Exception exc) { - MagClass.magazzino.spostaUDC(memLayer.ML.StringSessionObj("CodCS"), newUdcChild, idxCellaTo, memLayer.ML.confReadBool("spostaUdcResettaLdp"), Request.UserHostName); + httpLog(string.Format("Errore creazione UDC anime mult: {0}", exc), tipoLog.EXCEPTION); + } + // se ho cart liquidi genero (se non ci sono) cart trattamenti + if (newUdcChild != "") + { + /*************************************************************************************** + * dopo che l'ho creato lo sposto da post anime ext a post anime int (NO UPDATE AS400...) + * IdxPosizioneAnimeExt --> IdxPosizioneAnime + * !!! DEVO CALCOLARE LA CELLA !!! parto dal blocco calcolato da tab transizioni + ***************************************************************************************/ + int idxBloccoTo = StateMachine.SM.getIdxBloccoTo("UDC_ANIMA", memLayer.ML.confReadInt("IdxPosizioneAnimeExt")); + int idxCellaTo = 0; + try + { + idxCellaTo = MagClass.magazzino.taCelle.getByIdxBlocco(idxBloccoTo)[0].IdxCella; + } + catch + { } + if (idxCellaTo != 0) + { + MagClass.magazzino.spostaUDC(memLayer.ML.StringSessionObj("CodCS"), newUdcChild, idxCellaTo, memLayer.ML.confReadBool("spostaUdcResettaLdp"), Request.UserHostName); + // incremento timing... + adesso = DateTime.Now; + adesso = adesso.AddSeconds(1); + // registro creazione nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "spostaUDC", "Sposta UDC Anime EXT in Int"); + + } + // ora stampo il nuovo cartellino!!! + MagClass.magazzino.stampaUdc(newUdcChild, Postazione.printer, tipoCartellino.cartAnime, Request.UserHostName); // incremento timing... adesso = DateTime.Now; - adesso = adesso.AddSeconds(1); - // registro creazione nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "spostaUDC", "Sposta UDC Anime EXT in Int"); - + adesso = adesso.AddSeconds(2); + // registro stampa nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "stampaUDC", "Stampato UDC Anime EXT"); } - // ora stampo il nuovo cartellino!!! - MagClass.magazzino.stampaUdc(newUdcChild, Postazione.printer, tipoCartellino.cartAnime, Request.UserHostName); - // incremento timing... - adesso = DateTime.Now; - adesso = adesso.AddSeconds(2); - // registro stampa nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "stampaUDC", "Stampato UDC Anime EXT"); } + // consumo una auth... + OpAuth.currAuth.remAuth--; + if (OpAuth.currAuth.remAuth == 0) + { + OpAuth.stopAuth(); + needsRedirect = true; + } + // resetto + doResetData(); + } + else + { + httpLog(string.Format("ANIME MULTIPLE, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); + Response.Redirect("~/login.aspx"); } - // resetto - doResetData(); } else { - httpLog(string.Format("ANIME MULTIPLE, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); - Response.Redirect("~/login.aspx"); + Postazione.messaggiText = traduci("noOpAuth"); + Postazione.CssClass = "stileComandoKo"; + httpLog(string.Format("Errore manca OpAuth x UDC anime"), tipoLog.ERROR); } } else { Response.Redirect("~/menu.aspx"); } + + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + if (needsRedirect) + { + Response.Redirect(user_std.pagCorrente); + } } /// /// wrapper per log con salvataggio dell'IP del chiamante @@ -568,6 +681,13 @@ namespace GMW.WebUserControls protected void btnEmptyNote_Click(object sender, EventArgs e) { txtNote.Text = ""; + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } } diff --git a/GMW/WebUserControls/mod_finitiTK.ascx.cs b/GMW/WebUserControls/mod_finitiTK.ascx.cs index 9b0e81ac..db9d6d1e 100644 --- a/GMW/WebUserControls/mod_finitiTK.ascx.cs +++ b/GMW/WebUserControls/mod_finitiTK.ascx.cs @@ -23,6 +23,10 @@ namespace GMW.WebUserControls /// attributo per Fuoriciclo /// protected string attrFC = "FC"; + /// + /// dati x verifica CodSoggetto / matricola + /// + protected string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); public event EventHandler eh_reqUpdate; /// /// stringa UID univoca @@ -46,10 +50,25 @@ namespace GMW.WebUserControls Postazione.messaggiText = ""; Postazione.warningText = ""; traduciObj(); + checkNumKeyIn(); } doChecks(); } /// + /// verifico se ci sia in sessione un input da NumKeyb e nel caso lometto in barcodeIn e processo... + /// + private void checkNumKeyIn() + { + if (memLayer.ML.isInSessionObject("numKeyIn")) + { + barcodeIn = memLayer.ML.StringSessionObj("numKeyIn"); + // svuoto valore in sessione... + memLayer.ML.emptySessionVal("numKeyIn"); + // controllo barcode... + checkBarcode(); + } + } + /// /// richiesta (ri)stampa UDC /// /// @@ -232,6 +251,14 @@ namespace GMW.WebUserControls { tipoCodiceBarcode answ = tipoCodiceBarcode.ND; int trovati = 0; + int matricola = -1; + // provo a convertire in intero barcode x verifica eventuale matricola... + try + { + matricola = Convert.ToInt32(barcodeIn); + } + catch + { } // controllo non si tratti di un comando... string preCmd = memLayer.ML.confReadString("prefComandi"); if (barcodeIn.StartsWith(preCmd)) @@ -249,6 +276,21 @@ namespace GMW.WebUserControls // è imballo! answ = tipoCodiceBarcode.Imballo; } + else if (barcodeIn.StartsWith(preCodSogg)) + { + // cerco cod soggetto... + if (DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } + else if (matricola >= 0) + { + if (DataProxy.obj.taTrascSogg.getByKey("", matricola).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } else { try @@ -371,12 +413,12 @@ namespace GMW.WebUserControls if (DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count == 0) { currParticolare = ""; - Postazione.messaggiText += " - codice particolare non valido / non trovato in RILPRO."; + Postazione.messaggiText += traduci("ERR-FIN-001"); Postazione.CssClass = "stileComandoKo"; } else { - Postazione.messaggiText += " - impostato particolare!"; + Postazione.messaggiText += traduci("partSelected"); Postazione.CssClass = "stileComandoOk"; } // leggo la qta dell'ultimo UDC del particolare, SE C'E', e la imposto... @@ -399,32 +441,75 @@ namespace GMW.WebUserControls { // recupero il particolare dai dati del cartellino preesistente currParticolare = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].Particolare; - // controllo esista il particolare - if (DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count == 0) + // controllo esista!!! + bool partExists = DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count != 0; + // controllo sia anima!!! + bool isAnima = TermClass.Ter.isAnima(currParticolare); + // controllo esista il particolare e sia anima + if (partExists && isAnima) { - currParticolare = ""; - Postazione.messaggiText += " - codice particolare da UDC non valido / non trovato in RILPRO."; - Postazione.CssClass = "stileComandoKo"; + Postazione.messaggiText += traduci("partSelected"); + Postazione.CssClass = "stileComandoOk"; } else { - Postazione.messaggiText += " - impostato particolare!"; - Postazione.CssClass = "stileComandoOk"; + currParticolare = ""; + Postazione.messaggiText += traduci("ERR-FIN-001"); + Postazione.CssClass = "stileComandoKo"; } } break; + case tipoCodiceBarcode.Operatore: + // calcolo matricola utente + int MatrUtente = -1; + string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); + if (barcodeIn.StartsWith(preCodSogg)) + { + MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola; + } + else + { + MatrUtente = Convert.ToInt32(barcodeIn); + } + if (MatrUtente >= 0) + { + // salvo in sessione operatore con AUTH + OpAuth.startOpAuth(MatrUtente); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRec"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + else + { + Postazione.messaggiText += traduci("ERR-BCD-001"); + Postazione.CssClass = "stileComandoND"; + } + break; default: - Postazione.messaggiText += " - codice non riconosciuto!"; + // cerco se sia "0" = reset utente... + if (barcodeIn == memLayer.ML.CRS("resetCodSogg")) + { + // salvo in sessione operatore con AUTH + OpAuth.stopAuth(); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRem"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + Postazione.messaggiText += traduci("ERR-BCD-001"); Postazione.CssClass = "stileComandoND"; break; } barcodeIn = ""; } +#if false else { Postazione.messaggiText = traduci("AttesaBCode"); Postazione.CssClass = "stileAttesa"; - } + } +#endif doUpdate(); } /// @@ -501,74 +586,99 @@ namespace GMW.WebUserControls /// protected void lbtStampaUDC_Click(object sender, EventArgs e) { + bool needsRedirect = false; // verifico postazione x procedere... if (Postazione.printer != "n.d.") { - string newUdcChild = ""; - string noteTrim = string.Format("{0}{1}{2}", traduci("fuoriciclo"), Environment.NewLine, txtNote.Text.Trim()); - // effettuo controlli che cod_soggetto e cod particolare siano disponibili... - string codSogg = ""; - string particolare = ""; - try + // verifico auth utente OPPURE se NON sia richiesta... + if (OpAuth.isAuth || !OpAuth.opAuthReq) { - codSogg = MagClass.magazzino.CodSoggCurrUser; - particolare = currParticolare; - } - catch - { - } - if (codSogg != "" && particolare != "") - { - for (int i = 0; i < numUDC; i++) + string newUdcChild = ""; + string noteTrim = string.Format("{0}{1}{2}", traduci("fuoriciclo"), Environment.NewLine, txtNote.Text.Trim()); + // effettuo controlli che cod_soggetto e cod particolare siano disponibili... + string codSogg = ""; + string particolare = ""; + try { - // genero cartellino liquidi - DateTime adesso = DateTime.Now; - try + codSogg = MagClass.magazzino.CodSoggCurrUser; + particolare = currParticolare; + } + catch + { + } + if (codSogg != "" && particolare != "") + { + for (int i = 0; i < numUDC; i++) { - string codImballo = ""; + // genero cartellino liquidi + DateTime adesso = DateTime.Now; try { - codImballo = ddlImballi.SelectedValue; + string codImballo = ""; + try + { + codImballo = ddlImballi.SelectedValue; + } + catch + { + codImballo = memLayer.ML.confReadString("CodImballoFiniti"); + } + // se NON HA selezionato prendo default... + if (codImballo == "" || codImballo == "-") + { + codImballo = memLayer.ML.confReadString("CodImballoFiniti"); + } + // creo nuovo UDC del trattamento liquidi + newUdcChild = MagClass.magazzino.creaUdc(flusso, "", currParticolare, "", "", "", "", "", 0, codImballo, "U", MagClass.magazzino.CodSoggCurrUser, qtaUDC, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneFiniti"), "IdxPosizioneFiniti", "UDC_FINITO", noteTrim, "", adesso.Year, Request.UserHostName); + + if (OpAuth.isAuth) + { + // salvo attributo dell'OpAuth... + MagClass.magazzino.taAtt2UDC.Insert(newUdcChild, memLayer.ML.CRS("attrOpAuth"), OpAuth.currAuth.CodSoggetto, DateTime.Now, codSogg); + // consumo una auth... + OpAuth.currAuth.remAuth--; + if (OpAuth.currAuth.remAuth == 0) + { + OpAuth.stopAuth(); + needsRedirect = true; + } + } + + // registro creazione nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Finiti, qta: {0} {1}", qtaUDC, noteTrim)); + // inserisco attributo fuoriciclo + MagClass.magazzino.taAtt2UDC.Insert(newUdcChild, attrFC, "", DateTime.Now, codSogg); } - catch + catch (Exception exc) { - codImballo = memLayer.ML.confReadString("CodImballoFiniti"); + httpLog(string.Format("Errore creazione UDC finiti: {0}", exc), tipoLog.EXCEPTION); } - // se NON HA selezionato prendo default... - if (codImballo == "" || codImballo == "-") + // se ho cart stampo! + if (newUdcChild != "") { - codImballo = memLayer.ML.confReadString("CodImballoFiniti"); + // ora stampo il nuovo cartellino!!! + MagClass.magazzino.stampaUdc(newUdcChild, Postazione.printer, tipoCartellino.cartFiniti, Request.UserHostName); + // incremento timing... + adesso = DateTime.Now; + adesso = adesso.AddSeconds(1); + // registro stampa nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "stampaUDC", "Stampato UDC Finiti"); } - // creo nuovo UDC del trattamento liquidi - newUdcChild = MagClass.magazzino.creaUdc(flusso, "", currParticolare, "", "", "", "", "", 0, codImballo, "U", MagClass.magazzino.CodSoggCurrUser, qtaUDC, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneFiniti"), "IdxPosizioneFiniti", "UDC_FINITO", noteTrim, "", adesso.Year, Request.UserHostName); - // registro creazione nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Finiti, qta: {0} {1}", qtaUDC, noteTrim)); - // inserisco attributo fuoriciclo - MagClass.magazzino.taAtt2UDC.Insert(newUdcChild, attrFC, "", DateTime.Now, codSogg); - } - catch (Exception exc) - { - httpLog(string.Format("Errore creazione UDC finiti: {0}", exc), tipoLog.EXCEPTION); - } - // se ho cart stampo! - if (newUdcChild != "") - { - // ora stampo il nuovo cartellino!!! - MagClass.magazzino.stampaUdc(newUdcChild, Postazione.printer, tipoCartellino.cartFiniti, Request.UserHostName); - // incremento timing... - adesso = DateTime.Now; - adesso = adesso.AddSeconds(1); - // registro stampa nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "stampaUDC", "Stampato UDC Finiti"); } + // resetto + doResetData(); + } + else + { + httpLog(string.Format("FINITI, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); + Response.Redirect("~/login.aspx"); } - // resetto - doResetData(); } else { - httpLog(string.Format("FINITI, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); - Response.Redirect("~/login.aspx"); + Postazione.messaggiText = traduci("noOpAuth"); + Postazione.CssClass = "stileComandoKo"; + httpLog(string.Format("Errore manca OpAuth x UDC anime"), tipoLog.ERROR); } } else @@ -576,6 +686,15 @@ namespace GMW.WebUserControls Response.Redirect("~/menu.aspx"); } doUpdate(); + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + if (needsRedirect) + { + Response.Redirect(user_std.pagCorrente); + } } /// /// wrapper per log con salvataggio dell'IP del chiamante @@ -619,6 +738,13 @@ namespace GMW.WebUserControls protected void btnEmptyNote_Click(object sender, EventArgs e) { txtNote.Text = ""; + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } } /// /// aggiornata qta UDC: aggiorno totale! diff --git a/GMW/WebUserControls/mod_fusiTK.ascx.cs b/GMW/WebUserControls/mod_fusiTK.ascx.cs index 190fb746..401f3239 100644 --- a/GMW/WebUserControls/mod_fusiTK.ascx.cs +++ b/GMW/WebUserControls/mod_fusiTK.ascx.cs @@ -24,6 +24,10 @@ namespace GMW.WebUserControls /// attributo per indicazione LINEA di produzione/consumo /// protected string attrLINEA = "LI"; + /// + /// dati x verifica CodSoggetto / matricola + /// + protected string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); public event EventHandler eh_reqUpdate; /// /// stringa UID univoca @@ -45,6 +49,7 @@ namespace GMW.WebUserControls if (!Page.IsPostBack) { traduciObj(); + checkNumKeyIn(); } doChecks(); if (currParticolare != "") @@ -63,6 +68,19 @@ namespace GMW.WebUserControls { } lblDescrAttivo.Text = descr; lblDisegno.Text = disegno; + // default: qta a zero + decimal qtaPart = 0; + // leggo la qta dell'ultimo UDC del particolare, SE C'E', e la imposto... + try + { + qtaPart = MagClass.magazzino.taCartellini.getLastByParticolareStato(memLayer.ML.StringSessionObj("CodCS"), currParticolare, statoUDC)[0].Qta; + } + catch + { } + if (qtaPart > 0) + { + qta = Convert.ToInt32(qtaPart); + } } else { @@ -72,6 +90,20 @@ namespace GMW.WebUserControls } } /// + /// verifico se ci sia in sessione un input da NumKeyb e nel caso lometto in barcodeIn e processo... + /// + private void checkNumKeyIn() + { + if (memLayer.ML.isInSessionObject("numKeyIn")) + { + barcodeIn = memLayer.ML.StringSessionObj("numKeyIn"); + // svuoto valore in sessione... + memLayer.ML.emptySessionVal("numKeyIn"); + // controllo barcode... + checkBarcode(); + } + } + /// /// richiesta (ri)stampa UDC /// /// @@ -185,6 +217,14 @@ namespace GMW.WebUserControls { tipoCodiceBarcode answ = tipoCodiceBarcode.ND; int trovati = 0; + int matricola = -1; + // provo a convertire in intero barcode x verifica eventuale matricola... + try + { + matricola = Convert.ToInt32(barcodeIn); + } + catch + { } // controllo non si tratti di un comando... string preCmd = memLayer.ML.confReadString("prefComandi"); if (barcodeIn.StartsWith(preCmd)) @@ -196,6 +236,21 @@ namespace GMW.WebUserControls { answ = tipoCodiceBarcode.Particolare; } + else if (barcodeIn.StartsWith(preCodSogg)) + { + // cerco cod soggetto... + if (DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } + else if (matricola >= 0) + { + if (DataProxy.obj.taTrascSogg.getByKey("", matricola).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } else { try @@ -266,12 +321,12 @@ namespace GMW.WebUserControls if (DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count == 0) { currParticolare = ""; - Postazione.messaggiText += " - codice particolare non valido / non trovato in RILPRO."; + Postazione.messaggiText += traduci("ERR-FUS-001"); Postazione.CssClass = "stileComandoKo"; } else { - Postazione.messaggiText += " - impostato particolare!"; + Postazione.messaggiText += traduci("partSelected"); Postazione.CssClass = "stileComandoOk"; } // default: qta a zero @@ -298,33 +353,69 @@ namespace GMW.WebUserControls { // recupero il particolare dai dati del cartellino preesistente currParticolare = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].Particolare; - // controllo esista il particolare - if (DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count == 0) + // controllo esista!!! + bool partExists = DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count != 0; + // controllo sia anima!!! + bool isPart = TermClass.Ter.isParticolare(currParticolare); + // controllo esista il particolare e sia anima + if (partExists && isPart) { - currParticolare = ""; - Postazione.messaggiText += " - codice particolare da UDC non valido / non trovato in RILPRO."; - Postazione.CssClass = "stileComandoKo"; + Postazione.messaggiText += traduci("partSelected"); + Postazione.CssClass = "stileComandoOk"; } else { - Postazione.messaggiText += " - impostato particolare!"; - Postazione.CssClass = "stileComandoOk"; + currParticolare = ""; + Postazione.messaggiText += traduci("ERR-FUS-001"); + Postazione.CssClass = "stileComandoKo"; } } + break; + case tipoCodiceBarcode.Operatore: + // calcolo matricola utente + int MatrUtente = -1; + string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); + if (barcodeIn.StartsWith(preCodSogg)) + { + MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola; + } + else + { + MatrUtente = Convert.ToInt32(barcodeIn); + } + if (MatrUtente >= 0) + { + // salvo in sessione operatore con AUTH + OpAuth.startOpAuth(MatrUtente); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRec"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + else + { + Postazione.messaggiText += traduci("ERR-BCD-001"); + Postazione.CssClass = "stileComandoND"; + } break; default: - Postazione.messaggiText += " - codice non riconosciuto!"; + // cerco se sia "0" = reset utente... + if (barcodeIn == memLayer.ML.CRS("resetCodSogg")) + { + // salvo in sessione operatore con AUTH + OpAuth.stopAuth(); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRem"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + Postazione.messaggiText += traduci("ERR-BCD-001"); Postazione.CssClass = "stileComandoND"; break; } barcodeIn = ""; } - else - { - Postazione.messaggiText = traduci("AttesaBCode"); - Postazione.CssClass = "stileAttesa"; - } doUpdate(); } /// @@ -395,75 +486,110 @@ namespace GMW.WebUserControls /// protected void lbtStampaUDC_Click(object sender, EventArgs e) { + bool needsRedirect = false; // verifico postazione x procedere... if (Postazione.printer != "n.d.") { - // se linea non selezionata ERRORE!!! - if (Postazione.currCodLinea == "W3000" || Postazione.currCodLinea == "") + // verifico auth utente OPPURE se NON sia richiesta... + if (OpAuth.isAuth || !OpAuth.opAuthReq) { - Postazione.messaggiText += " - Attenzione, IMPOSTARE LINEA!"; - Postazione.CssClass = "stileComandoKo"; - } - else - { - string newUdcChild = ""; - string noteTrim = txtNote.Text.Trim(); - // effettuo controlli che cod_soggetto e cod particolare siano disponibili... - string codSogg = ""; - string particolare = ""; - try + // se linea non selezionata ERRORE!!! + if (Postazione.currCodLinea == "W3000" || Postazione.currCodLinea == "") { - codSogg = MagClass.magazzino.CodSoggCurrUser; - particolare = currParticolare; + Postazione.messaggiText += " - Attenzione, IMPOSTARE LINEA!"; + Postazione.CssClass = "stileComandoKo"; } - catch + else { - } - if (codSogg != "" && particolare != "") - { - // genero cartellino liquidi - DateTime adesso = DateTime.Now; + string newUdcChild = ""; + string noteTrim = txtNote.Text.Trim(); + // effettuo controlli che cod_soggetto e cod particolare siano disponibili... + string codSogg = ""; + string particolare = ""; try { - // aggiungo codice linea alle note - noteTrim = string.Format("{0}{1}{2}", Postazione.currNomeLinea, Environment.NewLine, noteTrim); - // creo nuovo UDC del trattamento liquidi - newUdcChild = MagClass.magazzino.creaUdc(flusso, "", particolare, "", "", "", "", "", 0, memLayer.ML.confReadString("CodImballoFusi"), "U", codSogg, qta, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneFusi"), "IdxPosizioneFusi", "UDC_FUSI", noteTrim, "", adesso.Year, Request.UserHostName); - // registro creazione nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Fusi - qta:{0} {1}", qta, noteTrim)); - // per ora attributo linea tolto, messo nelle note... + codSogg = MagClass.magazzino.CodSoggCurrUser; + particolare = currParticolare; + } + catch + { + } + if (codSogg != "" && particolare != "") + { + // genero cartellino liquidi + DateTime adesso = DateTime.Now; + try + { + // aggiungo codice linea alle note + noteTrim = string.Format("{0}{1}{2}", Postazione.currNomeLinea, Environment.NewLine, noteTrim); + // creo nuovo UDC del trattamento liquidi + newUdcChild = MagClass.magazzino.creaUdc(flusso, "", particolare, "", "", "", "", "", 0, memLayer.ML.confReadString("CodImballoFusi"), "U", codSogg, qta, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneFusi"), "IdxPosizioneFusi", "UDC_FUSI", noteTrim, "", adesso.Year, Request.UserHostName); + + if (OpAuth.isAuth) + { + // salvo attributo dell'OpAuth... + MagClass.magazzino.taAtt2UDC.Insert(newUdcChild, memLayer.ML.CRS("attrOpAuth"), OpAuth.currAuth.CodSoggetto, DateTime.Now, codSogg); + // consumo una auth... + OpAuth.currAuth.remAuth--; + if (OpAuth.currAuth.remAuth == 0) + { + OpAuth.stopAuth(); + needsRedirect = true; + } + } + + // registro creazione nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Fusi - qta:{0} {1}", qta, noteTrim)); + // per ora attributo linea tolto, messo nelle note... #if false // salvo attributo linea con UDC MagClass.magazzino.taAtt2UDC.Insert(newUdcChild, attrLINEA, Postazione.currCodLinea, DateTime.Now, codSogg); #endif + } + catch (Exception exc) + { + httpLog(string.Format("Errore creazione UDC Fusi: {0}", exc), tipoLog.EXCEPTION); + } + // se ho cart stampo! + if (newUdcChild != "") + { + // ora stampo il nuovo cartellino!!! + MagClass.magazzino.stampaUdc(newUdcChild, Postazione.printer, tipoCartellino.cartFusi, Request.UserHostName); + // incremento timing... + adesso = DateTime.Now; + adesso = adesso.AddSeconds(1); + // registro stampa nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "stampaUDC", "Stampato UDC Fusi"); + } } - catch (Exception exc) + else { - httpLog(string.Format("Errore creazione UDC Fusi: {0}", exc), tipoLog.EXCEPTION); - } - // se ho cart stampo! - if (newUdcChild != "") - { - // ora stampo il nuovo cartellino!!! - MagClass.magazzino.stampaUdc(newUdcChild, Postazione.printer, tipoCartellino.cartFusi, Request.UserHostName); - // incremento timing... - adesso = DateTime.Now; - adesso = adesso.AddSeconds(1); - // registro stampa nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "stampaUDC", "Stampato UDC Fusi"); + httpLog(string.Format("Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); + Response.Redirect("~/login.aspx"); } + } - else - { - httpLog(string.Format("Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); - Response.Redirect("~/login.aspx"); - } + } + else + { + Postazione.messaggiText = traduci("noOpAuth"); + Postazione.CssClass = "stileComandoKo"; + httpLog(string.Format("Errore manca OpAuth x UDC anime"), tipoLog.ERROR); } } else { Response.Redirect("~/menu.aspx"); } + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + if (needsRedirect) + { + Response.Redirect(user_std.pagCorrente); + } doUpdate(); } /// @@ -496,6 +622,13 @@ namespace GMW.WebUserControls protected void btnEmptyNote_Click(object sender, EventArgs e) { txtNote.Text = ""; + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } } diff --git a/GMW/WebUserControls/mod_lavMeccOUT.ascx.cs b/GMW/WebUserControls/mod_lavMeccOUT.ascx.cs index 80f5ffe7..d3e492de 100644 --- a/GMW/WebUserControls/mod_lavMeccOUT.ascx.cs +++ b/GMW/WebUserControls/mod_lavMeccOUT.ascx.cs @@ -21,6 +21,10 @@ namespace GMW.WebUserControls /// protected string eventoUDC = "UDC_FINITO"; /// + /// dati x verifica CodSoggetto / matricola + /// + protected string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); + /// /// stringa degli UDC selezionati per consumo COMPLETO (nel formato #UDC1##UDC2#) /// protected string udcSelC @@ -74,10 +78,24 @@ namespace GMW.WebUserControls fixRicercaUdc(); traduciObj(); idxCella = Postazione.currIdxCella; + checkNumKeyIn(); } doChecks(); } - + /// + /// verifico se ci sia in sessione un input da NumKeyb e nel caso lometto in barcodeIn e processo... + /// + private void checkNumKeyIn() + { + if (memLayer.ML.isInSessionObject("numKeyIn")) + { + barcodeIn = memLayer.ML.StringSessionObj("numKeyIn"); + // svuoto valore in sessione... + memLayer.ML.emptySessionVal("numKeyIn"); + // controllo barcode... + checkBarcode(); + } + } /// /// IDX cella associata alla linea corrente /// @@ -294,6 +312,14 @@ namespace GMW.WebUserControls { tipoCodiceBarcode answ = tipoCodiceBarcode.ND; int trovati = 0; + int matricola = -1; + // provo a convertire in intero barcode x verifica eventuale matricola... + try + { + matricola = Convert.ToInt32(barcodeIn); + } + catch + { } // controllo non si tratti di un comando... string preCmd = memLayer.ML.confReadString("prefComandi"); if (barcodeIn.StartsWith(preCmd)) @@ -310,6 +336,21 @@ namespace GMW.WebUserControls // è imballo! answ = tipoCodiceBarcode.Imballo; } + else if (barcodeIn.StartsWith(preCodSogg)) + { + // cerco cod soggetto... + if (DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } + else if (matricola >= 0) + { + if (DataProxy.obj.taTrascSogg.getByKey("", matricola).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } else { try @@ -427,19 +468,58 @@ namespace GMW.WebUserControls #endif } + break; + case tipoCodiceBarcode.Operatore: + // calcolo matricola utente + int MatrUtente = -1; + string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); + if (barcodeIn.StartsWith(preCodSogg)) + { + MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola; + } + else + { + MatrUtente = Convert.ToInt32(barcodeIn); + } + if (MatrUtente >= 0) + { + // salvo in sessione operatore con AUTH + OpAuth.startOpAuth(MatrUtente); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRec"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + else + { + Postazione.messaggiText += " - codice non riconosciuto!"; + Postazione.CssClass = "stileComandoND"; + } break; default: + // cerco se sia "0" = reset utente... + if (barcodeIn == memLayer.ML.CRS("resetCodSogg")) + { + // salvo in sessione operatore con AUTH + OpAuth.stopAuth(); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRem"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } Postazione.messaggiText += " - codice non riconosciuto!"; Postazione.CssClass = "stileComandoND"; break; } barcodeIn = ""; } +#if false else { Postazione.messaggiText = traduci("AttesaBCode"); Postazione.CssClass = "stileAttesa"; - } + } +#endif //grView.DataBind(); txtBarcode.Focus(); } @@ -538,142 +618,167 @@ namespace GMW.WebUserControls /// protected void btnStampa_Click(object sender, EventArgs e) { + bool needsRedirect = false; string[] stringSeparators = new string[] { "#" }; // verifico postazione x procedere... if (Postazione.printer != "n.d.") { - // controllo UDC in ingresso, che siano tutti con uguale particolare e DIVERSO da "" - string partUdcIn = ""; - try + // verifico auth utente OPPURE se NON sia richiesta... + if (OpAuth.isAuth || !OpAuth.opAuthReq) { - string fullUdc = string.Format("{0}#{1}", udcSelC, udcSelP); - // ciclo tutti gli UDC consumati P e C e verifico loro particolare - if (fullUdc.Replace("#", "").Length > 1) - { - string[] elencoUDC; - elencoUDC = fullUdc.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); - partUdcIn = checkPartUDC(elencoUDC); - } - } - catch - { } - if (partUdcIn != "") - { - // controllo da distinta base coerenza particolare IN/OUT - bool partDistintaOk = false; + // controllo UDC in ingresso, che siano tutti con uguale particolare e DIVERSO da "" + string partUdcIn = ""; try { - if (MagClass.magazzino.taPartIO.GetData(currParticolare, partUdcIn, true)[0].Trovati > 0) partDistintaOk = true; + string fullUdc = string.Format("{0}#{1}", udcSelC, udcSelP); + // ciclo tutti gli UDC consumati P e C e verifico loro particolare + if (fullUdc.Replace("#", "").Length > 1) + { + string[] elencoUDC; + elencoUDC = fullUdc.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); + partUdcIn = checkPartUDC(elencoUDC); + } } catch { } - if (partDistintaOk) + if (partUdcIn != "") { - string newUdcChild = ""; - int qta = memLayer.ML.confReadInt("QtaImballoFiniti"); - string noteTrim = txtNote.Text.Trim(); - // 2014.05.08 tolto e spostato in classe postaizeen gestione NOME LINEA x note, da verificare... -#if false - string nomeLinea = ddlLinea.SelectedItem.Text; -#endif - noteTrim = string.Format("{0}{1}{2}", Postazione.currNomeLinea, Environment.NewLine, noteTrim); + // controllo da distinta base coerenza particolare IN/OUT + bool partDistintaOk = false; try { - qta = Convert.ToInt32(txtQta.Text); + if (MagClass.magazzino.taPartIO.GetData(currParticolare, partUdcIn, true)[0].Trovati > 0) partDistintaOk = true; } catch { } - // effettuo controlli che cod_soggetto e cod particolare siano disponibili... - string codSogg = ""; - string particolare = ""; - try + if (partDistintaOk) { - codSogg = MagClass.magazzino.CodSoggCurrUser; - particolare = currParticolare; - } - catch - { - } - if (codSogg != "" && particolare != "") - { - // genero cartellino - DateTime adesso = DateTime.Now; + string newUdcChild = ""; + int qta = memLayer.ML.confReadInt("QtaImballoFiniti"); + string noteTrim = txtNote.Text.Trim(); + // 2014.05.08 tolto e spostato in classe postaizeen gestione NOME LINEA x note, da verificare... +#if false + string nomeLinea = ddlLinea.SelectedItem.Text; +#endif + noteTrim = string.Format("{0}{1}{2}", Postazione.currNomeLinea, Environment.NewLine, noteTrim); try { - string codImballo = ""; + qta = Convert.ToInt32(txtQta.Text); + } + catch + { } + // effettuo controlli che cod_soggetto e cod particolare siano disponibili... + string codSogg = ""; + string particolare = ""; + try + { + codSogg = MagClass.magazzino.CodSoggCurrUser; + particolare = currParticolare; + } + catch + { + } + if (codSogg != "" && particolare != "") + { + // genero cartellino + DateTime adesso = DateTime.Now; try { - codImballo = ddlImballi.SelectedValue; - } - catch - { - codImballo = memLayer.ML.confReadString("CodImballoFiniti"); - } - // se NON HA selezionato prendo default... - if (codImballo == "" || codImballo == "-") - { - codImballo = memLayer.ML.confReadString("CodImballoFiniti"); - } - // creo nuovo UDC FINITO OUT multiple - newUdcChild = MagClass.magazzino.creaUdc(flusso, "", currParticolare, "", "", "", "", "", 0, codImballo, "U", MagClass.magazzino.CodSoggCurrUser, qta, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneFiniti"), "IdxPosizioneFiniti", eventoUDC, noteTrim, "", adesso.Year, Request.UserHostName); - // registro creazione nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Finito LM OUT, qta: {0} {1}", qta, noteTrim)); - } - catch (Exception exc) - { - httpLog(string.Format("Errore creazione UDC Finito LM OUT: {0}", exc), tipoLog.EXCEPTION); - } - // devo gestire associazione e consumo cartellini FUSI - if (newUdcChild != "") - { - string[] UDC_P; - // ASSOCIO tutti gli UDC consumati sia Parziali che Completi al nuovo UDC - if (udcSelP.Replace("#", "").Length > 1) - { - // associo - UDC_P = udcSelP.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); - //UDC_P = SteamWare.StringSplitter.CSplitter.Split(udcSelP, "#", false, 0, SteamWare.StringSplitter.ComparisonMethod.Text); - associaUdc(newUdcChild, UDC_P); - } - if (udcSelC.Replace("#", "").Length > 1) - { - // associo - UDC_P = udcSelC.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); - //UDC_P = SteamWare.StringSplitter.CSplitter.Split(udcSelC, "#", false, 0, SteamWare.StringSplitter.ComparisonMethod.Text); - associaUdc(newUdcChild, UDC_P); - // consumo gli UDC indicati come "C" - consumaUdc(UDC_P); - } + string codImballo = ""; + try + { + codImballo = ddlImballi.SelectedValue; + } + catch + { + codImballo = memLayer.ML.confReadString("CodImballoFiniti"); + } + // se NON HA selezionato prendo default... + if (codImballo == "" || codImballo == "-") + { + codImballo = memLayer.ML.confReadString("CodImballoFiniti"); + } + // creo nuovo UDC FINITO OUT multiple + newUdcChild = MagClass.magazzino.creaUdc(flusso, "", currParticolare, "", "", "", "", "", 0, codImballo, "U", MagClass.magazzino.CodSoggCurrUser, qta, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneFiniti"), "IdxPosizioneFiniti", eventoUDC, noteTrim, "", adesso.Year, Request.UserHostName); - // ora stampo il nuovo cartellino!!! - MagClass.magazzino.stampaUdc(newUdcChild, Postazione.printer, tipoCartellino.cartFiniti, Request.UserHostName); - // incremento timing... - adesso = DateTime.Now; - adesso = adesso.AddSeconds(2); - // registro stampa nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "stampaUDC", "Stampato UDC Finito LM OUT"); + if (OpAuth.isAuth) + { + // salvo attributo dell'OpAuth... + MagClass.magazzino.taAtt2UDC.Insert(newUdcChild, memLayer.ML.CRS("attrOpAuth"), OpAuth.currAuth.CodSoggetto, DateTime.Now, codSogg); + // consumo una auth... + OpAuth.currAuth.remAuth--; + if (OpAuth.currAuth.remAuth == 0) + { + OpAuth.stopAuth(); + needsRedirect = true; + } + } + + // registro creazione nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Finito LM OUT, qta: {0} {1}", qta, noteTrim)); + } + catch (Exception exc) + { + httpLog(string.Format("Errore creazione UDC Finito LM OUT: {0}", exc), tipoLog.EXCEPTION); + } + // devo gestire associazione e consumo cartellini FUSI + if (newUdcChild != "") + { + string[] UDC_P; + // ASSOCIO tutti gli UDC consumati sia Parziali che Completi al nuovo UDC + if (udcSelP.Replace("#", "").Length > 1) + { + // associo + UDC_P = udcSelP.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); + //UDC_P = SteamWare.StringSplitter.CSplitter.Split(udcSelP, "#", false, 0, SteamWare.StringSplitter.ComparisonMethod.Text); + associaUdc(newUdcChild, UDC_P); + } + if (udcSelC.Replace("#", "").Length > 1) + { + // associo + UDC_P = udcSelC.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); + //UDC_P = SteamWare.StringSplitter.CSplitter.Split(udcSelC, "#", false, 0, SteamWare.StringSplitter.ComparisonMethod.Text); + associaUdc(newUdcChild, UDC_P); + // consumo gli UDC indicati come "C" + consumaUdc(UDC_P); + } + + // ora stampo il nuovo cartellino!!! + MagClass.magazzino.stampaUdc(newUdcChild, Postazione.printer, tipoCartellino.cartFiniti, Request.UserHostName); + // incremento timing... + adesso = DateTime.Now; + adesso = adesso.AddSeconds(2); + // registro stampa nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "stampaUDC", "Stampato UDC Finito LM OUT"); + } + // resetto + doResetData(); + } + else + { + httpLog(string.Format("Finiti LM OUT, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); + Response.Redirect("~/login.aspx"); } - // resetto - doResetData(); } else { - httpLog(string.Format("Finiti LM OUT, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); - Response.Redirect("~/login.aspx"); + httpLog(string.Format("Finiti LM OUT, Errore controllo coerenza particolari da distinta base!"), tipoLog.ERROR); + Postazione.messaggiText += "Errore particolari UDC da controllo distinta base"; + Postazione.CssClass = "stileComandoND"; } } else { - httpLog(string.Format("Finiti LM OUT, Errore controllo coerenza particolari da distinta base!"), tipoLog.ERROR); - Postazione.messaggiText += "Errore particolari UDC da controllo distinta base"; + httpLog(string.Format("Finiti LM OUT, Errore controllo coerenza elenco particolari IN!"), tipoLog.ERROR); + Postazione.messaggiText += "Errore particolari UDC da consumare non coerenti"; Postazione.CssClass = "stileComandoND"; } } else { - httpLog(string.Format("Finiti LM OUT, Errore controllo coerenza elenco particolari IN!"), tipoLog.ERROR); - Postazione.messaggiText += "Errore particolari UDC da consumare non coerenti"; - Postazione.CssClass = "stileComandoND"; + Postazione.messaggiText = traduci("noOpAuth"); + Postazione.CssClass = "stileComandoKo"; + httpLog(string.Format("Errore manca OpAuth x UDC anime"), tipoLog.ERROR); } } else @@ -681,6 +786,15 @@ namespace GMW.WebUserControls Response.Redirect("~/menu.aspx"); } doUpdate(); + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + if (needsRedirect) + { + Response.Redirect(user_std.pagCorrente); + } } /// /// effettua il consumo di tutti gli UDC inviati come array di stringhe @@ -789,6 +903,13 @@ namespace GMW.WebUserControls protected void btnEmptyNote_Click(object sender, EventArgs e) { txtNote.Text = ""; + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } } /// /// passo alla modalità IN diff --git a/GMW/WebUserControls/mod_numKey.ascx b/GMW/WebUserControls/mod_numKey.ascx new file mode 100644 index 00000000..9ba0a06f --- /dev/null +++ b/GMW/WebUserControls/mod_numKey.ascx @@ -0,0 +1,50 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_numKey.ascx.cs" Inherits="GMW.WebUserControls.mod_numKey" %> +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
diff --git a/GMW/WebUserControls/mod_numKey.ascx.cs b/GMW/WebUserControls/mod_numKey.ascx.cs new file mode 100644 index 00000000..ed6dc505 --- /dev/null +++ b/GMW/WebUserControls/mod_numKey.ascx.cs @@ -0,0 +1,52 @@ +using SteamWare; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace GMW.WebUserControls +{ + public partial class mod_numKey : System.Web.UI.UserControl + { + /// + /// arg comando CANC + /// + protected string cmdCanc = "C"; + /// + /// arg comando SAVE + /// + protected string cmdSave = "S"; + protected void Page_Load(object sender, EventArgs e) + { + if(!Page.IsPostBack) + { + btnS.CommandArgument = cmdSave; + btnC.CommandArgument = cmdCanc; + } + } + + protected void btn_Click(object sender, EventArgs e) + { + // controllo SE sia reset o canc... + string inChar = ((Button)sender).CommandArgument; + if (inChar == cmdCanc) + { + lblInput.Text = ""; + } + else if (inChar == cmdSave) + { + // salvo valore in sessione e ricarico... + memLayer.ML.setSessionVal("numKeyIn", lblInput.Text); + //lblInput.Text = ""; + // ricarico + Response.Redirect(user_std.pagCorrente); + } + else + { + lblInput.Text += ((Button)sender).CommandArgument; + } + } + } +} \ No newline at end of file diff --git a/GMW/WebUserControls/mod_numKey.ascx.designer.cs b/GMW/WebUserControls/mod_numKey.ascx.designer.cs new file mode 100644 index 00000000..28de5e38 --- /dev/null +++ b/GMW/WebUserControls/mod_numKey.ascx.designer.cs @@ -0,0 +1,132 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GMW.WebUserControls { + + + public partial class mod_numKey { + + /// + /// lblInput control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblInput; + + /// + /// btn7 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btn7; + + /// + /// btn8 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btn8; + + /// + /// btn9 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btn9; + + /// + /// btn4 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btn4; + + /// + /// btn5 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btn5; + + /// + /// btn6 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btn6; + + /// + /// btn1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btn1; + + /// + /// btn2 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btn2; + + /// + /// btn3 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btn3; + + /// + /// btnC control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnC; + + /// + /// btn0 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btn0; + + /// + /// btnS control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnS; + } +} diff --git a/GMW/WebUserControls/mod_sterrTaglio.ascx.cs b/GMW/WebUserControls/mod_sterrTaglio.ascx.cs index 346ad5e0..a375dd28 100644 --- a/GMW/WebUserControls/mod_sterrTaglio.ascx.cs +++ b/GMW/WebUserControls/mod_sterrTaglio.ascx.cs @@ -27,6 +27,10 @@ namespace GMW.WebUserControls /// tipo di evento associato alla modifica qta dell'UDC ///
protected string eventoUDC_qta = "UDC_QTY"; + /// + /// dati x verifica CodSoggetto / matricola + /// + protected string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); public event EventHandler eh_reqUpdate; /// /// stringa UID univoca @@ -52,11 +56,26 @@ namespace GMW.WebUserControls destAL = AlByCella; traduciObj(); idxCella = Postazione.currIdxCella; + checkNumKeyIn(); } setVisibility(); doChecks(); } /// + /// verifico se ci sia in sessione un input da NumKeyb e nel caso lometto in barcodeIn e processo... + /// + private void checkNumKeyIn() + { + if (memLayer.ML.isInSessionObject("numKeyIn")) + { + barcodeIn = memLayer.ML.StringSessionObj("numKeyIn"); + // svuoto valore in sessione... + memLayer.ML.emptySessionVal("numKeyIn"); + // controllo barcode... + checkBarcode(); + } + } + /// /// IDX cella associata alla linea corrente /// protected int idxCella @@ -296,6 +315,14 @@ namespace GMW.WebUserControls { tipoCodiceBarcode answ = tipoCodiceBarcode.ND; int trovati = 0; + int matricola = -1; + // provo a convertire in intero barcode x verifica eventuale matricola... + try + { + matricola = Convert.ToInt32(barcodeIn); + } + catch + { } // controllo non si tratti di un comando... string preCmd = memLayer.ML.confReadString("prefComandi"); if (barcodeIn.StartsWith(preCmd)) @@ -306,6 +333,21 @@ namespace GMW.WebUserControls { answ = tipoCodiceBarcode.Particolare; } + else if (barcodeIn.StartsWith(preCodSogg)) + { + // cerco cod soggetto... + if (DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } + else if (matricola >= 0) + { + if (DataProxy.obj.taTrascSogg.getByKey("", matricola).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } else { try @@ -504,18 +546,57 @@ namespace GMW.WebUserControls // update doUpdate(); break; + case tipoCodiceBarcode.Operatore: + // calcolo matricola utente + int MatrUtente = -1; + string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); + if (barcodeIn.StartsWith(preCodSogg)) + { + MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola; + } + else + { + MatrUtente = Convert.ToInt32(barcodeIn); + } + if (MatrUtente >= 0) + { + // salvo in sessione operatore con AUTH + OpAuth.startOpAuth(MatrUtente); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRec"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + else + { + Postazione.messaggiText += " - codice non riconosciuto!"; + Postazione.CssClass = "stileComandoND"; + } + break; default: + // cerco se sia "0" = reset utente... + if (barcodeIn == memLayer.ML.CRS("resetCodSogg")) + { + // salvo in sessione operatore con AUTH + OpAuth.stopAuth(); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRem"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } Postazione.messaggiText += " - codice non riconosciuto!"; Postazione.CssClass = "stileComandoND"; break; } barcodeIn = ""; } +#if false else { Postazione.messaggiText = traduci("AttesaBCode"); Postazione.CssClass = "stileAttesa"; - } + } +#endif txtBarcode.Focus(); } /// @@ -629,42 +710,67 @@ namespace GMW.WebUserControls /// protected void btnStampa_Click(object sender, EventArgs e) { + bool needsRedirect = false; string[] stringSeparators = new string[] { "#" }; // verifico postazione x procedere... if (Postazione.printer != "n.d.") { - DateTime adesso = DateTime.Now; - //int qta = memLayer.ML.confReadInt("QtaImballoSterr"); - string noteTrim = txtNote.Text.Trim(); - string lineaCesta = string.Format("{0} | cesta: {1}", Postazione.currNomeLinea, numCesta); - noteTrim = string.Format("{0}{1}{2}", lineaCesta, Environment.NewLine, noteTrim); - - // effettuo controlli che cod_soggetto, cod particolare e destAL siano disponibili... - if (MagClass.magazzino.CodSoggCurrUser != "" && currParticolare != "" && destAL != "ALS00") + // verifico auth utente OPPURE se NON sia richiesta... + if (OpAuth.isAuth || !OpAuth.opAuthReq) { + DateTime adesso = DateTime.Now; + //int qta = memLayer.ML.confReadInt("QtaImballoSterr"); + string noteTrim = txtNote.Text.Trim(); + string lineaCesta = string.Format("{0} | cesta: {1}", Postazione.currNomeLinea, numCesta); + noteTrim = string.Format("{0}{1}{2}", lineaCesta, Environment.NewLine, noteTrim); - // aggiorno note e posizione da temp a definitiv x UDC... - MagClass.magazzino.updateNotePosizioneUDC(currUDC, noteTrim, memLayer.ML.confReadInt("IdxPosizioneSterrati")); - // registro creazione nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, currUDC, currParticolare, "creaUDC", string.Format("Creato nuovo UDC Sterr Taglio, qta: {0} {1}", qta, "")); - // tolgo UDC da AL corrente... - MagClass.magazzino.taAL2UDC.deleteQuery(destAL, currUDC); + // effettuo controlli che cod_soggetto, cod particolare e destAL siano disponibili... + if (MagClass.magazzino.CodSoggCurrUser != "" && currParticolare != "" && destAL != "ALS00") + { - // ora stampo il nuovo cartellino!!! - MagClass.magazzino.stampaUdc(currUDC, Postazione.printer, tipoCartellino.cartSterr, Request.UserHostName); - // incremento timing... - adesso = adesso.AddSeconds(2); - // registro stampa nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, currUDC, currParticolare, "stampaUDC", "Stampato UDC Sterrato"); - // svuoto campo cesta... - numCesta = ""; - // resetto - doResetData(); + // aggiorno note e posizione da temp a definitiv x UDC... + MagClass.magazzino.updateNotePosizioneUDC(currUDC, noteTrim, memLayer.ML.confReadInt("IdxPosizioneSterrati")); + + if (OpAuth.isAuth) + { + // salvo attributo dell'OpAuth... + MagClass.magazzino.taAtt2UDC.Insert(currUDC, memLayer.ML.CRS("attrOpAuth"), OpAuth.currAuth.CodSoggetto, DateTime.Now, MagClass.magazzino.CodSoggCurrUser); + // consumo una auth... + OpAuth.currAuth.remAuth--; + if (OpAuth.currAuth.remAuth == 0) + { + OpAuth.stopAuth(); + needsRedirect = true; + } + } + + // registro creazione nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, currUDC, currParticolare, "creaUDC", string.Format("Creato nuovo UDC Sterr Taglio, qta: {0} {1}", qta, "")); + // tolgo UDC da AL corrente... + MagClass.magazzino.taAL2UDC.deleteQuery(destAL, currUDC); + + // ora stampo il nuovo cartellino!!! + MagClass.magazzino.stampaUdc(currUDC, Postazione.printer, tipoCartellino.cartSterr, Request.UserHostName); + // incremento timing... + adesso = adesso.AddSeconds(2); + // registro stampa nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, currUDC, currParticolare, "stampaUDC", "Stampato UDC Sterrato"); + // svuoto campo cesta... + numCesta = ""; + // resetto + doResetData(); + } + else + { + httpLog(string.Format("STERRATI, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); + Response.Redirect("~/login.aspx"); + } } else { - httpLog(string.Format("STERRATI, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); - Response.Redirect("~/login.aspx"); + Postazione.messaggiText = traduci("noOpAuth"); + Postazione.CssClass = "stileComandoKo"; + httpLog(string.Format("Errore manca OpAuth x UDC anime"), tipoLog.ERROR); } } else @@ -677,6 +783,10 @@ namespace GMW.WebUserControls { eh_reqUpdate(this, new EventArgs()); } + if (needsRedirect) + { + Response.Redirect(user_std.pagCorrente); + } } /// /// effettua il consumo di tutti gli UDC inviati come array di stringhe @@ -784,6 +894,13 @@ namespace GMW.WebUserControls protected void btnEmptyNote_Click(object sender, EventArgs e) { txtNote.Text = ""; + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } } /// /// passo alla modalità IN diff --git a/GMW/WebUserControls/mod_sterrTaglioFC.ascx.cs b/GMW/WebUserControls/mod_sterrTaglioFC.ascx.cs index eb5d2543..2ec7bcac 100644 --- a/GMW/WebUserControls/mod_sterrTaglioFC.ascx.cs +++ b/GMW/WebUserControls/mod_sterrTaglioFC.ascx.cs @@ -27,6 +27,10 @@ namespace GMW.WebUserControls /// tipo di evento associato alla modifica qta dell'UDC /// protected string eventoUDC_qta = "UDC_QTY"; + /// + /// dati x verifica CodSoggetto / matricola + /// + protected string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); public event EventHandler eh_reqUpdate; /// /// stringa UID univoca @@ -52,11 +56,26 @@ namespace GMW.WebUserControls destAL = AlByCella; traduciObj(); idxCella = Postazione.currIdxCella; + checkNumKeyIn(); } setVisibility(); doChecks(); } /// + /// verifico se ci sia in sessione un input da NumKeyb e nel caso lometto in barcodeIn e processo... + /// + private void checkNumKeyIn() + { + if (memLayer.ML.isInSessionObject("numKeyIn")) + { + barcodeIn = memLayer.ML.StringSessionObj("numKeyIn"); + // svuoto valore in sessione... + memLayer.ML.emptySessionVal("numKeyIn"); + // controllo barcode... + checkBarcode(); + } + } + /// /// IDX cella associata alla linea corrente /// protected int idxCella @@ -294,6 +313,14 @@ namespace GMW.WebUserControls { tipoCodiceBarcode answ = tipoCodiceBarcode.ND; int trovati = 0; + int matricola = -1; + // provo a convertire in intero barcode x verifica eventuale matricola... + try + { + matricola = Convert.ToInt32(barcodeIn); + } + catch + { } // controllo non si tratti di un comando... string preCmd = memLayer.ML.confReadString("prefComandi"); if (barcodeIn.StartsWith(preCmd)) @@ -304,6 +331,21 @@ namespace GMW.WebUserControls { answ = tipoCodiceBarcode.Particolare; } + else if (barcodeIn.StartsWith(preCodSogg)) + { + // cerco cod soggetto... + if (DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } + else if (matricola >= 0) + { + if (DataProxy.obj.taTrascSogg.getByKey("", matricola).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } else { try @@ -384,18 +426,57 @@ namespace GMW.WebUserControls break; case tipoCodiceBarcode.UDC: break; + case tipoCodiceBarcode.Operatore: + // calcolo matricola utente + int MatrUtente = -1; + string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); + if (barcodeIn.StartsWith(preCodSogg)) + { + MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola; + } + else + { + MatrUtente = Convert.ToInt32(barcodeIn); + } + if (MatrUtente >= 0) + { + // salvo in sessione operatore con AUTH + OpAuth.startOpAuth(MatrUtente); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRec"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + else + { + Postazione.messaggiText += " - codice non riconosciuto!"; + Postazione.CssClass = "stileComandoND"; + } + break; default: + // cerco se sia "0" = reset utente... + if (barcodeIn == memLayer.ML.CRS("resetCodSogg")) + { + // salvo in sessione operatore con AUTH + OpAuth.stopAuth(); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRem"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } Postazione.messaggiText += " - codice non riconosciuto!"; Postazione.CssClass = "stileComandoND"; break; } barcodeIn = ""; } +#if false else { Postazione.messaggiText = traduci("AttesaBCode"); Postazione.CssClass = "stileAttesa"; - } + } +#endif txtBarcode.Focus(); } @@ -509,46 +590,71 @@ namespace GMW.WebUserControls /// protected void btnStampa_Click(object sender, EventArgs e) { + bool needsRedirect = false; string[] stringSeparators = new string[] { "#" }; // verifico postazione x procedere... if (Postazione.printer != "n.d.") { - DateTime adesso = DateTime.Now; - //int qta = memLayer.ML.confReadInt("QtaImballoSterr"); - - string noteTrim = txtNote.Text.Trim(); - string lineaCesta = string.Format("FUORICICLO | {0} | cesta: {1}", Postazione.currNomeLinea, numCesta); - noteTrim = string.Format("{0}{1}{2}", lineaCesta, Environment.NewLine, noteTrim); - //string noteTrim = txtNote.Text.Trim(); - //noteTrim = string.Format("FUORICICLO{0}{1}", Environment.NewLine, noteTrim); - - // effettuo controlli che cod_soggetto, cod particolare e destAL siano disponibili... - if (MagClass.magazzino.CodSoggCurrUser != "" && currParticolare != "" && destAL != "ALS00") + // verifico auth utente OPPURE se NON sia richiesta... + if (OpAuth.isAuth || !OpAuth.opAuthReq) { - // aggiorno note e posizione da temp a definitiv x UDC... - MagClass.magazzino.updateNotePosizioneUDC(currUDC, noteTrim, memLayer.ML.confReadInt("IdxPosizioneSterrati")); - // registro creazione nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, currUDC, currParticolare, "creaUDC", string.Format("Creato nuovo UDC Sterr Taglio FC, qta: {0} {1}", qta, "")); - // metto attributo FC - MagClass.magazzino.taAtt2UDC.Insert(currUDC, "FC", "", DateTime.Now, MagClass.magazzino.CodSoggCurrUser); - // tolgo UDC da AL corrente... - MagClass.magazzino.taAL2UDC.deleteQuery(destAL, currUDC); + DateTime adesso = DateTime.Now; + //int qta = memLayer.ML.confReadInt("QtaImballoSterr"); - // ora stampo il nuovo cartellino!!! - MagClass.magazzino.stampaUdc(currUDC, Postazione.printer, tipoCartellino.cartSterr, Request.UserHostName); - // incremento timing... - adesso = adesso.AddSeconds(2); - // registro stampa nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, currUDC, currParticolare, "stampaUDC", "Stampato UDC Sterrato FUORICICLO"); - // svuoto campo cesta... - numCesta = ""; - // resetto - doResetData(); + string noteTrim = txtNote.Text.Trim(); + string lineaCesta = string.Format("FUORICICLO | {0} | cesta: {1}", Postazione.currNomeLinea, numCesta); + noteTrim = string.Format("{0}{1}{2}", lineaCesta, Environment.NewLine, noteTrim); + //string noteTrim = txtNote.Text.Trim(); + //noteTrim = string.Format("FUORICICLO{0}{1}", Environment.NewLine, noteTrim); + + // effettuo controlli che cod_soggetto, cod particolare e destAL siano disponibili... + if (MagClass.magazzino.CodSoggCurrUser != "" && currParticolare != "" && destAL != "ALS00") + { + // aggiorno note e posizione da temp a definitiv x UDC... + MagClass.magazzino.updateNotePosizioneUDC(currUDC, noteTrim, memLayer.ML.confReadInt("IdxPosizioneSterrati")); + + if (OpAuth.isAuth) + { + // salvo attributo dell'OpAuth... + MagClass.magazzino.taAtt2UDC.Insert(currUDC, memLayer.ML.CRS("attrOpAuth"), OpAuth.currAuth.CodSoggetto, DateTime.Now, MagClass.magazzino.CodSoggCurrUser); + // consumo una auth... + OpAuth.currAuth.remAuth--; + if (OpAuth.currAuth.remAuth == 0) + { + OpAuth.stopAuth(); + needsRedirect = true; + } + } + + // registro creazione nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, currUDC, currParticolare, "creaUDC", string.Format("Creato nuovo UDC Sterr Taglio FC, qta: {0} {1}", qta, "")); + // metto attributo FC + MagClass.magazzino.taAtt2UDC.Insert(currUDC, "FC", "", DateTime.Now, MagClass.magazzino.CodSoggCurrUser); + // tolgo UDC da AL corrente... + MagClass.magazzino.taAL2UDC.deleteQuery(destAL, currUDC); + + // ora stampo il nuovo cartellino!!! + MagClass.magazzino.stampaUdc(currUDC, Postazione.printer, tipoCartellino.cartSterr, Request.UserHostName); + // incremento timing... + adesso = adesso.AddSeconds(2); + // registro stampa nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, currUDC, currParticolare, "stampaUDC", "Stampato UDC Sterrato FUORICICLO"); + // svuoto campo cesta... + numCesta = ""; + // resetto + doResetData(); + } + else + { + httpLog(string.Format("STERRATI FC, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); + Response.Redirect("~/login.aspx"); + } } else { - httpLog(string.Format("STERRATI FC, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); - Response.Redirect("~/login.aspx"); + Postazione.messaggiText = traduci("noOpAuth"); + Postazione.CssClass = "stileComandoKo"; + httpLog(string.Format("Errore manca OpAuth x UDC anime"), tipoLog.ERROR); } } else @@ -561,6 +667,10 @@ namespace GMW.WebUserControls { eh_reqUpdate(this, new EventArgs()); } + if (needsRedirect) + { + Response.Redirect(user_std.pagCorrente); + } } /// /// effettua il consumo di tutti gli UDC inviati come array di stringhe @@ -668,6 +778,13 @@ namespace GMW.WebUserControls protected void btnEmptyNote_Click(object sender, EventArgs e) { txtNote.Text = ""; + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } } /// /// passo alla modalità IN diff --git a/GMW/WebUserControls/mod_testata.ascx b/GMW/WebUserControls/mod_testata.ascx index 92fc3f81..0a5a7148 100644 --- a/GMW/WebUserControls/mod_testata.ascx +++ b/GMW/WebUserControls/mod_testata.ascx @@ -1,78 +1,69 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_testata.ascx.cs" Inherits="GMW.WebUserControls.mod_testata" %> <%if (false) - { %> + { %> <%} %> - - - - - -
+ +
+
-
+ +
+ +
@@ -25,7 +30,7 @@
-
- -
+
+
+
diff --git a/GMW_Term/WebUserControls/mod_delibLog.ascx.cs b/GMW_Term/WebUserControls/mod_delibLog.ascx.cs index b5b1a7fb..f74ecb3c 100644 --- a/GMW_Term/WebUserControls/mod_delibLog.ascx.cs +++ b/GMW_Term/WebUserControls/mod_delibLog.ascx.cs @@ -96,9 +96,8 @@ namespace GMW_Term.WebUserControls MagClass.magazzino.taCartellini.setDL_DC(UDC_sel, MagClass.magazzino.CodSoggCurrUser); } showUdcDetail(UDC_sel); -#if false - Response.Redirect("~/delibLog.aspx"); -#endif + memLayer.ML.emptySessionVal("UDC4det_sel"); + Response.Redirect("~/delibLog.aspx"); } /// /// UDC impostato diff --git a/GMW_Term/WebUserControls/mod_processPackList.ascx.cs b/GMW_Term/WebUserControls/mod_processPackList.ascx.cs index 85c69b5a..65fd7b6e 100644 --- a/GMW_Term/WebUserControls/mod_processPackList.ascx.cs +++ b/GMW_Term/WebUserControls/mod_processPackList.ascx.cs @@ -38,42 +38,46 @@ namespace GMW_Term.WebUserControls bool barcodeOk = MagClass.magazzino.checkUDC(barcode); bool udcConsumabile = MagClass.magazzino.IdxPosizioneUdc(barcode) > 0; bool udcPrelevabile = (MagClass.magazzino.taRigheListePrelievo.getPrelevateByUdc(barcode).Rows.Count == 0); - if (udcConsumabile || !memLayer.ML.CRB("checkUdcConsLdp")) + // se ho un UDC + if (barcode != "") { - if (udcPrelevabile) + if (udcConsumabile || !memLayer.ML.CRB("checkUdcConsLdp")) { - if (barcodeOk) + if (udcPrelevabile) { - // controllo se barcode è ok x LDP corrente... - if (MagClass.magazzino.verificaDatiUdc(MagClass.magazzino.codListaAttivaUtente, barcode)) + if (barcodeOk) { - MagClass.magazzino.confermaUdcPrelevatoPerLista(MagClass.magazzino.codListaAttivaUtente, barcode); - lblErrore.Visible = false; - } - else - { - // salvo errore - lblErrore.Visible = true; - lblErrore.Text = traduci("BarcodeNonValidoLDP"); + // controllo se barcode è ok x LDP corrente... + if (MagClass.magazzino.verificaDatiUdc(MagClass.magazzino.codListaAttivaUtente, barcode)) + { + MagClass.magazzino.confermaUdcPrelevatoPerLista(MagClass.magazzino.codListaAttivaUtente, barcode); + lblErrore.Visible = false; + } + else + { + // salvo errore + lblErrore.Visible = true; + lblErrore.Text = traduci("BarcodeNonValidoLDP"); + } + resetMemoriaBarcode(); } + } + else + { + // indico barcode già caricato + lblErrore.Visible = true; + lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcGiaPrelevato")); resetMemoriaBarcode(); } } else { - // indico barcode già caricato + // indico UDC consumato lblErrore.Visible = true; - lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcGiaPrelevato")); + lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcGiaConsumato")); resetMemoriaBarcode(); } } - else - { - // indico UDC consumato - lblErrore.Visible = true; - lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcGiaConsumato")); - resetMemoriaBarcode(); - } //update visualizzazione lblListaAttiva.Text = traduci("ListaPrel"); hlListaAttiva.Text = traduci("noListActive"); diff --git a/GMW_Term/bin/GMW_Term.dll b/GMW_Term/bin/GMW_Term.dll index 420a1ca3..d08d18ed 100644 Binary files a/GMW_Term/bin/GMW_Term.dll and b/GMW_Term/bin/GMW_Term.dll differ diff --git a/GMW_Term/bin/GMW_data.dll b/GMW_Term/bin/GMW_data.dll index 05ca1e1b..eb5a7f26 100644 Binary files a/GMW_Term/bin/GMW_data.dll and b/GMW_Term/bin/GMW_data.dll differ diff --git a/GMW_data/DS_Applicazione.Designer.cs b/GMW_data/DS_Applicazione.Designer.cs index e208cc2d..6b41489b 100644 --- a/GMW_data/DS_Applicazione.Designer.cs +++ b/GMW_data/DS_Applicazione.Designer.cs @@ -70,6 +70,8 @@ namespace GMW_data { private UNC_treeDataTable tableUNC_tree; + private TrascCodSoggDataTable tableTrascCodSogg; + private global::System.Data.DataRelation relationFK_AnagImpianti_AnagCompanySito; private global::System.Data.DataRelation relationFK_ElencoCartellini_AnagCompanySito; @@ -179,6 +181,9 @@ namespace GMW_data { if ((ds.Tables["UNC_tree"] != null)) { base.Tables.Add(new UNC_treeDataTable(ds.Tables["UNC_tree"])); } + if ((ds.Tables["TrascCodSogg"] != null)) { + base.Tables.Add(new TrascCodSoggDataTable(ds.Tables["TrascCodSogg"])); + } this.DataSetName = ds.DataSetName; this.Prefix = ds.Prefix; this.Namespace = ds.Namespace; @@ -427,6 +432,16 @@ namespace GMW_data { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public TrascCodSoggDataTable TrascCodSogg { + get { + return this.tableTrascCodSogg; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] [global::System.ComponentModel.BrowsableAttribute(true)] @@ -563,6 +578,9 @@ namespace GMW_data { if ((ds.Tables["UNC_tree"] != null)) { base.Tables.Add(new UNC_treeDataTable(ds.Tables["UNC_tree"])); } + if ((ds.Tables["TrascCodSogg"] != null)) { + base.Tables.Add(new TrascCodSoggDataTable(ds.Tables["TrascCodSogg"])); + } this.DataSetName = ds.DataSetName; this.Prefix = ds.Prefix; this.Namespace = ds.Namespace; @@ -734,6 +752,12 @@ namespace GMW_data { this.tableUNC_tree.InitVars(); } } + this.tableTrascCodSogg = ((TrascCodSoggDataTable)(base.Tables["TrascCodSogg"])); + if ((initTable == true)) { + if ((this.tableTrascCodSogg != null)) { + this.tableTrascCodSogg.InitVars(); + } + } this.relationFK_AnagImpianti_AnagCompanySito = this.Relations["FK_AnagImpianti_AnagCompanySito"]; this.relationFK_ElencoCartellini_AnagCompanySito = this.Relations["FK_ElencoCartellini_AnagCompanySito"]; this.relationFK_ElencoCartellini_AnagStatiProdotto = this.Relations["FK_ElencoCartellini_AnagStatiProdotto"]; @@ -796,6 +820,8 @@ namespace GMW_data { base.Tables.Add(this.tableUDC_NC); this.tableUNC_tree = new UNC_treeDataTable(); base.Tables.Add(this.tableUNC_tree); + this.tableTrascCodSogg = new TrascCodSoggDataTable(); + base.Tables.Add(this.tableTrascCodSogg); this.relationFK_AnagImpianti_AnagCompanySito = new global::System.Data.DataRelation("FK_AnagImpianti_AnagCompanySito", new global::System.Data.DataColumn[] { this.tableAnagCompanySito.CodCSColumn}, new global::System.Data.DataColumn[] { this.tableAnagImpianti.CodCSColumn}, false); @@ -960,6 +986,12 @@ namespace GMW_data { return false; } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + private bool ShouldSerializeTrascCodSogg() { + return false; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { @@ -1084,6 +1116,9 @@ namespace GMW_data { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public delegate void UNC_treeRowChangeEventHandler(object sender, UNC_treeRowChangeEvent e); + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public delegate void TrascCodSoggRowChangeEventHandler(object sender, TrascCodSoggRowChangeEvent e); + /// ///Represents the strongly named DataTable class. /// @@ -9979,6 +10014,281 @@ namespace GMW_data { } } + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class TrascCodSoggDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnCodSoggetto; + + private global::System.Data.DataColumn columnCodMatricola; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public TrascCodSoggDataTable() { + this.TableName = "TrascCodSogg"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + internal TrascCodSoggDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + protected TrascCodSoggDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public global::System.Data.DataColumn CodSoggettoColumn { + get { + return this.columnCodSoggetto; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public global::System.Data.DataColumn CodMatricolaColumn { + get { + return this.columnCodMatricola; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public TrascCodSoggRow this[int index] { + get { + return ((TrascCodSoggRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public event TrascCodSoggRowChangeEventHandler TrascCodSoggRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public event TrascCodSoggRowChangeEventHandler TrascCodSoggRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public event TrascCodSoggRowChangeEventHandler TrascCodSoggRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public event TrascCodSoggRowChangeEventHandler TrascCodSoggRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public void AddTrascCodSoggRow(TrascCodSoggRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public TrascCodSoggRow AddTrascCodSoggRow(string CodSoggetto, int CodMatricola) { + TrascCodSoggRow rowTrascCodSoggRow = ((TrascCodSoggRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + CodSoggetto, + CodMatricola}; + rowTrascCodSoggRow.ItemArray = columnValuesArray; + this.Rows.Add(rowTrascCodSoggRow); + return rowTrascCodSoggRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public TrascCodSoggRow FindByCodSoggettoCodMatricola(string CodSoggetto, int CodMatricola) { + return ((TrascCodSoggRow)(this.Rows.Find(new object[] { + CodSoggetto, + CodMatricola}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public override global::System.Data.DataTable Clone() { + TrascCodSoggDataTable cln = ((TrascCodSoggDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new TrascCodSoggDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + internal void InitVars() { + this.columnCodSoggetto = base.Columns["CodSoggetto"]; + this.columnCodMatricola = base.Columns["CodMatricola"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + private void InitClass() { + this.columnCodSoggetto = new global::System.Data.DataColumn("CodSoggetto", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCodSoggetto); + this.columnCodMatricola = new global::System.Data.DataColumn("CodMatricola", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCodMatricola); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnCodSoggetto, + this.columnCodMatricola}, true)); + this.columnCodSoggetto.AllowDBNull = false; + this.columnCodSoggetto.MaxLength = 17; + this.columnCodMatricola.AllowDBNull = false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public TrascCodSoggRow NewTrascCodSoggRow() { + return ((TrascCodSoggRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new TrascCodSoggRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(TrascCodSoggRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.TrascCodSoggRowChanged != null)) { + this.TrascCodSoggRowChanged(this, new TrascCodSoggRowChangeEvent(((TrascCodSoggRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.TrascCodSoggRowChanging != null)) { + this.TrascCodSoggRowChanging(this, new TrascCodSoggRowChangeEvent(((TrascCodSoggRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.TrascCodSoggRowDeleted != null)) { + this.TrascCodSoggRowDeleted(this, new TrascCodSoggRowChangeEvent(((TrascCodSoggRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.TrascCodSoggRowDeleting != null)) { + this.TrascCodSoggRowDeleting(this, new TrascCodSoggRowChangeEvent(((TrascCodSoggRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public void RemoveTrascCodSoggRow(TrascCodSoggRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DS_Applicazione ds = new DS_Applicazione(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "TrascCodSoggDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + /// ///Represents strongly named DataRow class. /// @@ -15263,6 +15573,43 @@ namespace GMW_data { } } + /// + ///Represents strongly named DataRow class. + /// + public partial class TrascCodSoggRow : global::System.Data.DataRow { + + private TrascCodSoggDataTable tableTrascCodSogg; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + internal TrascCodSoggRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableTrascCodSogg = ((TrascCodSoggDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public string CodSoggetto { + get { + return ((string)(this[this.tableTrascCodSogg.CodSoggettoColumn])); + } + set { + this[this.tableTrascCodSogg.CodSoggettoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public int CodMatricola { + get { + return ((int)(this[this.tableTrascCodSogg.CodMatricolaColumn])); + } + set { + this[this.tableTrascCodSogg.CodMatricolaColumn] = value; + } + } + } + /// ///Row event argument class /// @@ -16044,6 +16391,40 @@ namespace GMW_data { } } } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public class TrascCodSoggRowChangeEvent : global::System.EventArgs { + + private TrascCodSoggRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public TrascCodSoggRowChangeEvent(TrascCodSoggRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public TrascCodSoggRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } } } namespace GMW_data.DS_ApplicazioneTableAdapters { @@ -27667,6 +28048,356 @@ SELECT IdxNC, CodNC, DescrNC, TipoCart, DataFrom, DataTo, Particolare, SearchNot } } + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class TrascCodSoggTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public TrascCodSoggTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "TrascCodSogg"; + tableMapping.ColumnMappings.Add("CodSoggetto", "CodSoggetto"); + tableMapping.ColumnMappings.Add("CodMatricola", "CodMatricola"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = "DELETE FROM [dbo].[TrascCodSogg] WHERE (([CodSoggetto] = @Original_CodSoggetto) A" + + "ND ([CodMatricola] = @Original_CodMatricola))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CodSoggetto", global::System.Data.SqlDbType.NChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodSoggetto", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CodMatricola", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodMatricola", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = "INSERT INTO [dbo].[TrascCodSogg] ([CodSoggetto], [CodMatricola]) VALUES (@CodSogg" + + "etto, @CodMatricola);\r\nSELECT CodSoggetto, CodMatricola FROM TrascCodSogg WHERE " + + "(CodMatricola = @CodMatricola) AND (CodSoggetto = @CodSoggetto)"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodSoggetto", global::System.Data.SqlDbType.NChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodSoggetto", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodMatricola", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodMatricola", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [dbo].[TrascCodSogg] SET [CodSoggetto] = @CodSoggetto, [CodMatricola] = @CodMatricola WHERE (([CodSoggetto] = @Original_CodSoggetto) AND ([CodMatricola] = @Original_CodMatricola)); +SELECT CodSoggetto, CodMatricola FROM TrascCodSogg WHERE (CodMatricola = @CodMatricola) AND (CodSoggetto = @CodSoggetto)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodSoggetto", global::System.Data.SqlDbType.NChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodSoggetto", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodMatricola", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodMatricola", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CodSoggetto", global::System.Data.SqlDbType.NChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodSoggetto", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CodMatricola", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodMatricola", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::GMW_data.Properties.Settings.Default.GMWConnectionString; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[2]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT CodSoggetto, CodMatricola FROM dbo.TrascCodSogg"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[1].Connection = this.Connection; + this._commandCollection[1].CommandText = "dbo.stp_TrascCodSogg_GetByKey"; + this._commandCollection[1].CommandType = global::System.Data.CommandType.StoredProcedure; + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RETURN_VALUE", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.ReturnValue, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodSoggetto", global::System.Data.SqlDbType.NVarChar, 17, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodMatricola", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DS_Applicazione.TrascCodSoggDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DS_Applicazione.TrascCodSoggDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + DS_Applicazione.TrascCodSoggDataTable dataTable = new DS_Applicazione.TrascCodSoggDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DS_Applicazione.TrascCodSoggDataTable getByKey(string CodSoggetto, global::System.Nullable CodMatricola) { + this.Adapter.SelectCommand = this.CommandCollection[1]; + if ((CodSoggetto == null)) { + this.Adapter.SelectCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(CodSoggetto)); + } + if ((CodMatricola.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[2].Value = ((int)(CodMatricola.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = global::System.DBNull.Value; + } + DS_Applicazione.TrascCodSoggDataTable dataTable = new DS_Applicazione.TrascCodSoggDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DS_Applicazione.TrascCodSoggDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DS_Applicazione dataSet) { + return this.Adapter.Update(dataSet, "TrascCodSogg"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(string Original_CodSoggetto, int Original_CodMatricola) { + if ((Original_CodSoggetto == null)) { + throw new global::System.ArgumentNullException("Original_CodSoggetto"); + } + else { + this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(Original_CodSoggetto)); + } + this.Adapter.DeleteCommand.Parameters[1].Value = ((int)(Original_CodMatricola)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string CodSoggetto, int CodMatricola) { + if ((CodSoggetto == null)) { + throw new global::System.ArgumentNullException("CodSoggetto"); + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(CodSoggetto)); + } + this.Adapter.InsertCommand.Parameters[1].Value = ((int)(CodMatricola)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string CodSoggetto, int CodMatricola, string Original_CodSoggetto, int Original_CodMatricola) { + if ((CodSoggetto == null)) { + throw new global::System.ArgumentNullException("CodSoggetto"); + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(CodSoggetto)); + } + this.Adapter.UpdateCommand.Parameters[1].Value = ((int)(CodMatricola)); + if ((Original_CodSoggetto == null)) { + throw new global::System.ArgumentNullException("Original_CodSoggetto"); + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(Original_CodSoggetto)); + } + this.Adapter.UpdateCommand.Parameters[3].Value = ((int)(Original_CodMatricola)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string Original_CodSoggetto, int Original_CodMatricola) { + return this.Update(Original_CodSoggetto, Original_CodMatricola, Original_CodSoggetto, Original_CodMatricola); + } + } + /// ///TableAdapterManager is used to coordinate TableAdapters in the dataset to enable Hierarchical Update scenarios /// @@ -27711,6 +28442,8 @@ SELECT IdxNC, CodNC, DescrNC, TipoCart, DataFrom, DataTo, Particolare, SearchNot private ElencoNCTableAdapter _elencoNCTableAdapter; + private TrascCodSoggTableAdapter _trascCodSoggTableAdapter; + private bool _backupDataSetBeforeUpdate; private global::System.Data.IDbConnection _connection; @@ -27950,6 +28683,20 @@ SELECT IdxNC, CodNC, DescrNC, TipoCart, DataFrom, DataTo, Particolare, SearchNot } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public TrascCodSoggTableAdapter TrascCodSoggTableAdapter { + get { + return this._trascCodSoggTableAdapter; + } + set { + this._trascCodSoggTableAdapter = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public bool BackupDataSetBeforeUpdate { @@ -28033,6 +28780,10 @@ SELECT IdxNC, CodNC, DescrNC, TipoCart, DataFrom, DataTo, Particolare, SearchNot && (this._elencoNCTableAdapter.Connection != null))) { return this._elencoNCTableAdapter.Connection; } + if (((this._trascCodSoggTableAdapter != null) + && (this._trascCodSoggTableAdapter.Connection != null))) { + return this._trascCodSoggTableAdapter.Connection; + } return null; } set { @@ -28094,6 +28845,9 @@ SELECT IdxNC, CodNC, DescrNC, TipoCart, DataFrom, DataTo, Particolare, SearchNot if ((this._elencoNCTableAdapter != null)) { count = (count + 1); } + if ((this._trascCodSoggTableAdapter != null)) { + count = (count + 1); + } return count; } } @@ -28249,6 +29003,15 @@ SELECT IdxNC, CodNC, DescrNC, TipoCart, DataFrom, DataTo, Particolare, SearchNot allChangedRows.AddRange(updatedRows); } } + if ((this._trascCodSoggTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.TrascCodSogg.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._trascCodSoggTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } return result; } @@ -28387,6 +29150,14 @@ SELECT IdxNC, CodNC, DescrNC, TipoCart, DataFrom, DataTo, Particolare, SearchNot allAddedRows.AddRange(addedRows); } } + if ((this._trascCodSoggTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.TrascCodSogg.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._trascCodSoggTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } return result; } @@ -28397,6 +29168,14 @@ SELECT IdxNC, CodNC, DescrNC, TipoCart, DataFrom, DataTo, Particolare, SearchNot [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] private int UpdateDeletedRows(DS_Applicazione dataSet, global::System.Collections.Generic.List allChangedRows) { int result = 0; + if ((this._trascCodSoggTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.TrascCodSogg.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._trascCodSoggTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } if ((this._anagParticolariTableAdapter != null)) { global::System.Data.DataRow[] deletedRows = dataSet.AnagParticolari.Select(null, null, global::System.Data.DataViewRowState.Deleted); if (((deletedRows != null) @@ -28644,6 +29423,11 @@ SELECT IdxNC, CodNC, DescrNC, TipoCart, DataFrom, DataTo, Particolare, SearchNot throw new global::System.ArgumentException("All TableAdapters managed by a TableAdapterManager must use the same connection s" + "tring."); } + if (((this._trascCodSoggTableAdapter != null) + && (this.MatchTableAdapterConnection(this._trascCodSoggTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("All TableAdapters managed by a TableAdapterManager must use the same connection s" + + "tring."); + } global::System.Data.IDbConnection workConnection = this.Connection; if ((workConnection == null)) { throw new global::System.ApplicationException("TableAdapterManager contains no connection information. Set each TableAdapterMana" + @@ -28820,6 +29604,15 @@ SELECT IdxNC, CodNC, DescrNC, TipoCart, DataFrom, DataTo, Particolare, SearchNot adaptersWithAcceptChangesDuringUpdate.Add(this._elencoNCTableAdapter.Adapter); } } + if ((this._trascCodSoggTableAdapter != null)) { + revertConnections.Add(this._trascCodSoggTableAdapter, this._trascCodSoggTableAdapter.Connection); + this._trascCodSoggTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._trascCodSoggTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._trascCodSoggTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._trascCodSoggTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._trascCodSoggTableAdapter.Adapter); + } + } // //---- Perform updates ----------- // @@ -28942,6 +29735,10 @@ SELECT IdxNC, CodNC, DescrNC, TipoCart, DataFrom, DataTo, Particolare, SearchNot this._elencoNCTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._elencoNCTableAdapter])); this._elencoNCTableAdapter.Transaction = null; } + if ((this._trascCodSoggTableAdapter != null)) { + this._trascCodSoggTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._trascCodSoggTableAdapter])); + this._trascCodSoggTableAdapter.Transaction = null; + } if ((0 < adaptersWithAcceptChangesDuringUpdate.Count)) { global::System.Data.Common.DataAdapter[] adapters = new System.Data.Common.DataAdapter[adaptersWithAcceptChangesDuringUpdate.Count]; adaptersWithAcceptChangesDuringUpdate.CopyTo(adapters); diff --git a/GMW_data/DS_Applicazione.xsd b/GMW_data/DS_Applicazione.xsd index 8cb01fcf..5fba70d1 100644 --- a/GMW_data/DS_Applicazione.xsd +++ b/GMW_data/DS_Applicazione.xsd @@ -2079,7 +2079,7 @@ FROM v_UDC_NC - + dbo.stp_UNC_removeSelNC @@ -2090,7 +2090,7 @@ FROM v_UDC_NC - + dbo.stp_UNC_toggleDC @@ -2104,7 +2104,7 @@ FROM v_UDC_NC - + dbo.stp_ENC2U_toggle @@ -2168,6 +2168,67 @@ FROM v_UDC_NC + + + + + + DELETE FROM [dbo].[TrascCodSogg] WHERE (([CodSoggetto] = @Original_CodSoggetto) AND ([CodMatricola] = @Original_CodMatricola)) + + + + + + + + + INSERT INTO [dbo].[TrascCodSogg] ([CodSoggetto], [CodMatricola]) VALUES (@CodSoggetto, @CodMatricola); +SELECT CodSoggetto, CodMatricola FROM TrascCodSogg WHERE (CodMatricola = @CodMatricola) AND (CodSoggetto = @CodSoggetto) + + + + + + + + + SELECT CodSoggetto, CodMatricola FROM dbo.TrascCodSogg + + + + + + UPDATE [dbo].[TrascCodSogg] SET [CodSoggetto] = @CodSoggetto, [CodMatricola] = @CodMatricola WHERE (([CodSoggetto] = @Original_CodSoggetto) AND ([CodMatricola] = @Original_CodMatricola)); +SELECT CodSoggetto, CodMatricola FROM TrascCodSogg WHERE (CodMatricola = @CodMatricola) AND (CodSoggetto = @CodSoggetto) + + + + + + + + + + + + + + + + + + + dbo.stp_TrascCodSogg_GetByKey + + + + + + + + + + @@ -3339,7 +3400,7 @@ FROM v_UDC_NC - + @@ -3385,7 +3446,7 @@ FROM v_UDC_NC - + @@ -3443,7 +3504,7 @@ FROM v_UDC_NC - + @@ -3464,6 +3525,20 @@ FROM v_UDC_NC + + + + + + + + + + + + + + @@ -3552,15 +3627,20 @@ FROM v_UDC_NC + + + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/GMW_data/DS_Applicazione.xss b/GMW_data/DS_Applicazione.xss index 9c88fe50..b6777570 100644 --- a/GMW_data/DS_Applicazione.xss +++ b/GMW_data/DS_Applicazione.xss @@ -4,34 +4,35 @@ Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. --> - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + 1129 @@ -43,7 +44,7 @@ - + 1170 @@ -59,14 +60,14 @@ - + - 336 - 722 + 422 + 639 - 336 + 422 466 @@ -75,7 +76,7 @@ - + 1154 @@ -91,7 +92,7 @@ - + 1248 @@ -103,7 +104,7 @@ - + 488 diff --git a/GMW_data/DataProxy.cs b/GMW_data/DataProxy.cs index 1b8a830f..a8bffec7 100644 --- a/GMW_data/DataProxy.cs +++ b/GMW_data/DataProxy.cs @@ -31,6 +31,7 @@ namespace GMW_data public DS_ApplicazioneTableAdapters.v_specParticolariTableAdapter taSpecPart; public DS_ApplicazioneTableAdapters.AnagStatiProdottoTableAdapter taStatiProd; public DS_ApplicazioneTableAdapters.AnagTipoDichiarazTableAdapter taTipoDich; + public DS_ApplicazioneTableAdapters.TrascCodSoggTableAdapter taTrascSogg; public DS_ApplicazioneTableAdapters.UDC_NCTableAdapter taUDC2NC; public DS_ApplicazioneTableAdapters.UNC_treeTableAdapter taUNCTree; @@ -70,6 +71,7 @@ namespace GMW_data taSpecPart = new GMW_data.DS_ApplicazioneTableAdapters.v_specParticolariTableAdapter(); taStatiProd = new GMW_data.DS_ApplicazioneTableAdapters.AnagStatiProdottoTableAdapter(); taTipoDich = new GMW_data.DS_ApplicazioneTableAdapters.AnagTipoDichiarazTableAdapter(); + taTrascSogg = new GMW_data.DS_ApplicazioneTableAdapters.TrascCodSoggTableAdapter(); taUDC2NC = new GMW_data.DS_ApplicazioneTableAdapters.UDC_NCTableAdapter(); taUNCTree = new GMW_data.DS_ApplicazioneTableAdapters.UNC_treeTableAdapter(); @@ -111,6 +113,7 @@ namespace GMW_data taSpecPart.Connection.ConnectionString = connString; taStatiProd.Connection.ConnectionString = connString; taTipoDich.Connection.ConnectionString = connString; + taTrascSogg.Connection.ConnectionString = connString; taUDC2NC.Connection.ConnectionString = connString; taUNCTree.Connection.ConnectionString = connString; diff --git a/GMW_data/GMW_data.csproj b/GMW_data/GMW_data.csproj index 11110ca1..231aa9c5 100644 --- a/GMW_data/GMW_data.csproj +++ b/GMW_data/GMW_data.csproj @@ -213,6 +213,7 @@ + diff --git a/GMW_data/OpAuth.cs b/GMW_data/OpAuth.cs new file mode 100644 index 00000000..875bad73 --- /dev/null +++ b/GMW_data/OpAuth.cs @@ -0,0 +1,152 @@ +using SteamWare; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace GMW_data +{ + /// + /// Classe gestione auth utente + /// + public class OpAuth + { + /// + /// CodSoggetto (univoco) + /// + public string CodSoggetto { get; set; } + /// + /// Matricola OP (univoca) + /// + public int Matricola { get; set; } + /// + /// Cognome - Nome + /// + public string CognomeNome { get; set; } + /// + /// numero autorizzazioni ancora possibili + /// + public int remAuth { get; set; } + /// + /// scadenza massima auth + /// + public DateTime scadAuth { get; set; } + /// + /// inizializzazione componente, default da web.config MA CON AUTH + /// + protected OpAuth() + { + // imposto valori di default (scaduti...) + CodSoggetto = ""; + Matricola = 0; + CognomeNome = "NA"; + remAuth = memLayer.ML.CRI("defRemAuth"); + scadAuth = DateTime.Now.AddMinutes(memLayer.ML.CRI("defMinScad")); + } + /// + /// Fornisce un oggetto OpAuth popolato da CodSoggetto calcolando il resto + lettura default da web.config + /// + /// + /// + public static OpAuth startOpAuth(string CodSoggetto) + { + OpAuth answ = new OpAuth(); + if (CodSoggetto != "") + { + answ.CodSoggetto = CodSoggetto; + answ.CognomeNome = utils.obj.getOperatoreByCod(CodSoggetto); + answ.Matricola = DataProxy.obj.taTrascSogg.getByKey(CodSoggetto, 0)[0].CodMatricola; + } + currAuth = answ; + return answ; + } + /// + /// Fornisce un oggetto OpAuth popolato da Matricola calcolando il resto + lettura default da web.config + /// + /// + /// + public static OpAuth startOpAuth(int Matricola) + { + OpAuth answ = new OpAuth(); + if (Matricola > 0) + { + answ.CodSoggetto = DataProxy.obj.taTrascSogg.getByKey("", Matricola)[0].CodSoggetto; + answ.CognomeNome = utils.obj.getOperatoreByCod(answ.CodSoggetto); + answ.Matricola = Matricola; + } + currAuth = answ; + return answ; + } + /// + /// toglie auth utente + /// + public static void stopAuth() + { + memLayer.ML.emptySessionVal("OpAuth"); + } + /// + /// Auth Corrente x operazioni User + /// + public static OpAuth currAuth + { + get + { + OpAuth answ = new OpAuth(); + // cerco in sessione... + if (memLayer.ML.isInSessionObject("OpAuth")) + { + answ = (OpAuth)memLayer.ML.objSessionObj("OpAuth"); + } + return answ; + } + set + { + memLayer.ML.setSessionVal("OpAuth", value); + } + } + /// + /// definisce si sia valida auth operatività utente, ovvero + /// - valori in sessione + /// - num auth > 0 + /// - auth non scaduta + /// + public static bool isAuth + { + get + { + bool answ = false; + // se ho valori in sessione + if (memLayer.ML.isInSessionObject("OpAuth")) + { + // se ho num auth > 0 + if (currAuth.remAuth > 0) + { + // se non è scaduta auth.. + if (currAuth.scadAuth > DateTime.Now) + { + // se ho un CodSoggetto VALIDO + if (currAuth.CodSoggetto != "") + { + answ = true; + } + } + } + } + return answ; + } + } + /// + /// definisce se sia RICHEISTA OpAuth + /// + public static bool opAuthReq + { + get + { + // verifico SE devo fare controllo OpAuth... + return memLayer.ML.CRB("enableOpAuth"); + } + } + + + } +} diff --git a/GMW_data/Postazione.cs b/GMW_data/Postazione.cs index 4aa06e79..2a4f6095 100644 --- a/GMW_data/Postazione.cs +++ b/GMW_data/Postazione.cs @@ -7,7 +7,7 @@ using System.Text; namespace GMW_data { /// - /// classe gestioen dati inerenti la postazione (fisica) da cui si esegue la pagina web + /// classe gestione dati inerenti la postazione (fisica) da cui si esegue la pagina web /// public class Postazione { diff --git a/GMW_data/TermClass.cs b/GMW_data/TermClass.cs index c5ffd563..76cfe63d 100644 --- a/GMW_data/TermClass.cs +++ b/GMW_data/TermClass.cs @@ -215,7 +215,7 @@ namespace GMW_data return answ; } /// - /// verifica se il codice barcode letto sia un particoalre con codice tipo "P" + /// verifica se il codice barcode letto sia un particolare con codice tipo "P" /// /// /// diff --git a/GMW_data/bin/TK_prod/GMW_data.dll b/GMW_data/bin/TK_prod/GMW_data.dll index 5fe652fc..76959aba 100644 Binary files a/GMW_data/bin/TK_prod/GMW_data.dll and b/GMW_data/bin/TK_prod/GMW_data.dll differ diff --git a/ReleaseClienti/TK_prod/GMW.zip b/ReleaseClienti/TK_prod/GMW.zip index eccbcba9..fca701a9 100644 Binary files a/ReleaseClienti/TK_prod/GMW.zip and b/ReleaseClienti/TK_prod/GMW.zip differ diff --git a/ReleaseClienti/TK_prod/TK_GMW_Term.zip b/ReleaseClienti/TK_prod/TK_GMW_Term.zip index ee7d92f7..86738268 100644 Binary files a/ReleaseClienti/TK_prod/TK_GMW_Term.zip and b/ReleaseClienti/TK_prod/TK_GMW_Term.zip differ diff --git a/ReleaseClienti/TK_test/GMW.zip b/ReleaseClienti/TK_test/GMW.zip index f4610855..9ec25f2a 100644 Binary files a/ReleaseClienti/TK_test/GMW.zip and b/ReleaseClienti/TK_test/GMW.zip differ diff --git a/ReleaseClienti/TK_test/TK_GMW_TestTerm.zip b/ReleaseClienti/TK_test/TK_GMW_TestTerm.zip index 92816596..bd7c0152 100644 Binary files a/ReleaseClienti/TK_test/TK_GMW_TestTerm.zip and b/ReleaseClienti/TK_test/TK_GMW_TestTerm.zip differ diff --git a/VersGen/GMW.cs b/VersGen/GMW.cs index 643a4a3c..de24953c 100644 --- a/VersGen/GMW.cs +++ b/VersGen/GMW.cs @@ -5,7 +5,7 @@ using System.Reflection; -[assembly: AssemblyVersion("3.2.813.2093")] -[assembly: AssemblyFileVersion("3.2.813.2093")] +[assembly: AssemblyVersion("3.2.831.2099")] +[assembly: AssemblyFileVersion("3.2.831.2099")] [assembly: AssemblyCopyright("Steamware © 2007-2015")] [assembly: AssemblyCompany("Steamware")] diff --git a/VersGen/GMW.tt b/VersGen/GMW.tt index 45bbe1ad..141b65ea 100644 --- a/VersGen/GMW.tt +++ b/VersGen/GMW.tt @@ -6,8 +6,8 @@ using System.Reflection; -[assembly: AssemblyVersion("3.2.813.<#= this.RevisionNumber #>")] -[assembly: AssemblyFileVersion("3.2.813.<#= this.RevisionNumber #>")] +[assembly: AssemblyVersion("3.2.831.<#= this.RevisionNumber #>")] +[assembly: AssemblyFileVersion("3.2.831.<#= this.RevisionNumber #>")] [assembly: AssemblyCopyright("Steamware © 2007-<#= DateTime.Now.Year #>")] [assembly: AssemblyCompany("Steamware")] <#+