public void accedi(string ID, bool ReadOnly, bool tobeclosed) { if (checkdatecorreto == false) { return; } MasterFile mf = MasterFile.Create(); Hashtable htSelected = mf.GetPianificazioniVigilanza(ID); if (htSelected.Count == 0) { return; } try { WindowWorkAreaTree wWorkArea = new WindowWorkAreaTree(); //Prisc try { wWorkArea.Owner = this; } catch (Exception ex) { cBusinessObjects.logger.Error(ex, "wSchedaPianificazioneVigilanza.accedi1 exception"); } wWorkArea.SelectedTreeSource = App.AppDataDataFolder + "\\" + htSelected["File"].ToString(); wWorkArea.SelectedDataSource = App.AppDataDataFolder + "\\" + htSelected["FileData"].ToString(); wWorkArea.ReadOnly = ReadOnly; wWorkArea.TipoAttivita = App.TipoAttivita.PianificazioniVigilanza; wWorkArea.Cliente = (((Hashtable)(mf.GetAnagrafica(Convert.ToInt32(htSelected["Cliente"].ToString()))))["RagioneSociale"].ToString()) + " (C.F. " + (((Hashtable)(mf.GetAnagrafica(Convert.ToInt32(htSelected["Cliente"].ToString()))))["CodiceFiscale"].ToString()) + ")"; wWorkArea.SessioneAlias = ""; wWorkArea.SessioneFile = ""; wWorkArea.IDTree = (Convert.ToInt32(App.TipoFile.PianificazioniVigilanza)).ToString(); wWorkArea.IDCliente = htSelected["Cliente"].ToString(); wWorkArea.IDSessione = ID; foreach (Hashtable item in ((ArrayList)(mf.GetPianificazioniVigilanze(htSelected["Cliente"].ToString())))) { wWorkArea.SessioneAliasAdditivo += ((wWorkArea.SessioneAliasAdditivo == "") ? "" : "|") + item["DataFine"].ToString(); wWorkArea.SessioneFile += ((wWorkArea.SessioneFile == "") ? "" : "|") + App.AppDataDataFolder + "\\" + item["FileData"].ToString(); wWorkArea.SessioneAlias += ((wWorkArea.SessioneAlias == "") ? "" : "|") + item["DataInizio"].ToString(); wWorkArea.SessioneID += ((wWorkArea.SessioneID == "") ? "" : "|") + item["ID"].ToString(); } //aperto in sola lettura wWorkArea.ApertoInSolaLettura = TipologiaAttivita == App.TipoAttivitaScheda.View; wWorkArea.LoadTreeSource(); Hide(); wWorkArea.ShowDialog(); //setto dati Hashtable ht = new Hashtable(); ht.Add("Cliente", Convert.ToInt32(htSelected["Cliente"].ToString())); ht.Add("DataInizio", dtpDataInizio.SelectedDate.Value.ToShortDateString()); ht.Add("DataFine", dtpDataFine.SelectedDate.Value.ToShortDateString()); mf.SetPianificazioniVigilanza(ht, Convert.ToInt32(ID), Convert.ToInt32(htSelected["Cliente"].ToString()), false); if (TipologiaAttivita != App.TipoAttivitaScheda.View) { int IDCliente = Convert.ToInt32(htClienti[cmbClienti.SelectedIndex].ToString()); mf.SetAnafraficaStato(Convert.ToInt32(IDCliente), App.TipoAnagraficaStato.Disponibile); } functionCmbDataChanged(cmbData); //if ( tobeclosed == true ) //{ // Close(); //} } catch (Exception ex) { cBusinessObjects.logger.Error(ex, "wSchedaPianificazioneVigilanza.accedi2 exception"); } Close(); }
private void cmbArea_SelectionChanged(object sender, SelectionChangedEventArgs e) { MasterFile mf = MasterFile.Create(); string IDCliente = htClienti[cmbClienti.SelectedIndex].ToString(); cmbPianificate.SelectedIndex = -1; cmbPianificate.Items.Clear(); if (cmbData.SelectedIndex == 0) { ArrayList al = mf.GetPianificazioniVerifiche(IDCliente); List <DateTime> alX = new List <DateTime>(); foreach (Hashtable itemHT in al) { DataTable pianificazione = cBusinessObjects.GetData(100013, typeof(PianificazioneVerificheTestata), int.Parse(IDCliente), int.Parse(itemHT["ID"].ToString()), 26); foreach (DataRow itemXPP in pianificazione.Rows) { DateTime dt = Convert.ToDateTime(itemXPP["Data"].ToString()); if (!alX.Contains(dt)) { alX.Add(dt); } } } if (alX.Count > 0) { alX.Sort(); foreach (DateTime item in alX) { cmbPianificate.Items.Add(item.ToShortDateString()); } grdPianificazione.Visibility = System.Windows.Visibility.Visible; } else { grdPianificazione.Visibility = System.Windows.Visibility.Collapsed; } } else if (cmbData.SelectedIndex == 1) { ArrayList al = mf.GetPianificazioniVigilanze(IDCliente); List <DateTime> alX = new List <DateTime>(); foreach (Hashtable itemHT in al) { DataTable pianificazione = cBusinessObjects.GetData(100003, typeof(PianificazioneVerificheTestata), int.Parse(IDCliente), int.Parse(itemHT["ID"].ToString()), 27); foreach (DataRow itemXPP in pianificazione.Rows) { DateTime dt = Convert.ToDateTime(itemXPP["Data"].ToString()); if (!alX.Contains(dt)) { alX.Add(dt); } } } if (alX.Count > 0) { alX.Sort(); foreach (DateTime item in alX) { cmbPianificate.Items.Add(item.ToShortDateString()); } grdPianificazione.Visibility = System.Windows.Visibility.Visible; } else { grdPianificazione.Visibility = System.Windows.Visibility.Collapsed; } } }
private void functionCmbClientiChanged(ComboBox cmb) { if (_cmbInCaricamento) { return; } if (oldTipologiaAttivita != App.TipoAttivitaScheda.View) { TipologiaAttivita = oldTipologiaAttivita; } _InCaricamento = true; cmbData.SelectedIndex = -1; try { cmbDataDaVigilanza.SelectedIndex = -1; } catch (Exception ex) { cBusinessObjects.logger.Error(ex, "wSchedaPianificazioneVigilanza.functionCmbClientiChanged1 exception"); string log = ex.Message; } dtpDataInizio.Text = ""; dtpDataFine.Text = ""; if (cmb.SelectedIndex != -1) { try { string IDCliente = htClienti[cmb.SelectedIndex].ToString(); OldSelectedCmbClienti = Convert.ToInt32(IDCliente); MasterFile mf = MasterFile.Create(); int index = 0; htDate.Clear(); htDateVigilanze.Clear(); cmbData.Items.Clear(); cmbDataDaVigilanza.Items.Clear(); List <KeyValuePair <string, string> > myList = new List <KeyValuePair <string, string> >(); foreach (Hashtable item in mf.GetPianificazioniVigilanze(IDCliente)) { myList.Add(new KeyValuePair <string, string>(item["ID"].ToString(), item["DataInizio"].ToString() + " - " + item["DataFine"].ToString())); } myList.Sort ( delegate(KeyValuePair <string, string> firstPair, KeyValuePair <string, string> nextPair) { return(Convert.ToDateTime(nextPair.Value.Split(' ')[0]).CompareTo(Convert.ToDateTime(firstPair.Value.Split(' ')[0]))); } ); foreach (KeyValuePair <string, string> item in myList) { cmbData.Items.Add(item.Value); htDate.Add(index, item.Key); index++; } index = 0; List <KeyValuePair <string, string> > myListVigilanza = new List <KeyValuePair <string, string> >(); foreach (Hashtable item in mf.GetPianificazioniVerifiche(IDCliente)) { myListVigilanza.Add(new KeyValuePair <string, string>(item["ID"].ToString(), item["DataInizio"].ToString() + " - " + item["DataFine"].ToString())); } myListVigilanza.Sort ( delegate(KeyValuePair <string, string> firstPair, KeyValuePair <string, string> nextPair) { return(Convert.ToDateTime(nextPair.Value.Split(' ')[0]).CompareTo(Convert.ToDateTime(firstPair.Value.Split(' ')[0]))); } ); foreach (KeyValuePair <string, string> item in myListVigilanza) { cmbDataDaVigilanza.Items.Add(item.Value); htDateVigilanze.Add(index, item.Key); index++; } //stato if (IDClienteImport == "-1") { App.TipoAnagraficaStato anaStato = mf.GetAnafraficaStato(Convert.ToInt32(IDCliente)); //non disponibile: configuro interfaccia if (anaStato != App.TipoAnagraficaStato.Disponibile) { oldTipologiaAttivita = TipologiaAttivita; TipologiaAttivita = App.TipoAttivitaScheda.View; } } if (TipologiaAttivita != App.TipoAttivitaScheda.New) { cmbData.IsEnabled = true; cmbDataDaVigilanza.IsEnabled = false; dtpDataInizio.IsEnabled = false; dtpDataFine.IsEnabled = false; } else { cmbData.IsEnabled = false; cmbDataDaVigilanza.IsEnabled = true; dtpDataInizio.IsEnabled = true; dtpDataFine.IsEnabled = true; } } catch (Exception ex) { cBusinessObjects.logger.Error(ex, "wSchedaPianificazioneVigilanza.functionCmbClientiChanged2 exception"); string log = ex.Message; cmbData.IsEnabled = false; cmbDataDaVigilanza.IsEnabled = false; dtpDataInizio.IsEnabled = false; dtpDataFine.IsEnabled = false; } } }
private void buttonStampa_Click(object sender, RoutedEventArgs e) { //controllo selezione clienti if (cmbClienti.SelectedIndex == -1) { MessageBox.Show("selezionare un cliente"); return; } if (cmbData.SelectedIndex == -1) { MessageBox.Show("selezionare una sessione"); return; } if (rdbVerbale.IsChecked == false && rdbMemorandum.IsChecked == false) { MessageBox.Show("selezionare verbale o memorandum"); return; } if (rdbDescrittiva.IsChecked != true && rdbCompleta.IsChecked != true) { MessageBox.Show("Scegliere il tipo di stampa"); return; } //Process wait - START //ProgressWindow pw = new ProgressWindow(); MasterFile mf = MasterFile.Create(); string IDCliente = htClienti[cmbClienti.SelectedIndex].ToString(); this.selectedCliente = IDCliente; string anno = cmbData.SelectedValue.ToString().Split('/')[2]; Hashtable cliente = mf.GetAnagrafica(Convert.ToInt32(IDCliente)); XmlDataProviderManager _t = null; Hashtable valueshere = new Hashtable(); //WordLib wl = new WordLib(); RTFLib wl = new RTFLib(); //wl.Verbali = true; #region Dati da revisione //XmlDataProviderManager _y = null; string FileRevisione = mf.GetRevisioneFromEsercizio(IDCliente, anno); string RagioneSociale = "Dato Mancante: Compilare Carta di Lavoro 2.1.1"; string Indirizzo = ""; string REA = ""; string CapitaleSociale = "Dato Mancante: Compilare Carta di Lavoro 2.1.5"; string ids = ""; foreach (Hashtable item in mf.GetVerifiche(IDCliente)) { if (cmbData.SelectedValue.ToString() == (item["Data"].ToString())) { ids = item["ID"].ToString(); } } this.selectedSession = ids; cBusinessObjects.idcliente = int.Parse(IDCliente); RagioneSociale = cBusinessObjects.GetRagioneSociale(); Indirizzo = cBusinessObjects.GetIndirizzo(); REA = cBusinessObjects.GetREA(); CapitaleSociale = cBusinessObjects.GetCapitaleSociale(); #endregion wl.Watermark = false; wl.TabelleSenzaRigheVuote = true; wl.SenzaStampareTitoli = true; wl.TitoloVerbale = false; if (rdbDescrittiva.IsChecked == true) { wl.StampaDescrittiva = true; } wl.TemplateFileCompletePath = App.AppTemplateStampaNoLogo; wl.Open(new Hashtable(), cliente["RagioneSociale"].ToString(), cliente["CodiceFiscale"].ToString(), cmbData.SelectedValue.ToString(), "", true, true, IDCliente); if (rdbVerbale.IsChecked == true) { //if ( chk4.IsChecked == false && Chk5.IsChecked == false ) //{ // MessageBox.Show( "selezionare almeno una tra l'area 4 o 5" ); // pw.Close(); // return; //} //if ( chk4.IsChecked == true) //{ string partial_rtf_text = ""; if (rdbMemorandum.IsChecked == false) { foreach (Hashtable item in mf.GetVerifiche(IDCliente)) { if (cmbData.SelectedValue.ToString() == (item["Data"].ToString())) { valueshere = item; _t = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + item["File"].ToString()); } } bool notfoundv = false; if (valueshere.Count == 0) { notfoundv = true; } else { valueshere.Add("PeriodoPianificato", ""); DateTime dti_o = Convert.ToDateTime(valueshere["Data"]); foreach (Hashtable item in mf.GetPianificazioniVerifiche(IDCliente)) { DateTime dti = Convert.ToDateTime(item["DataInizio"]); DateTime dtf = Convert.ToDateTime(item["DataFine"]); if (dti_o.CompareTo(dti) > 0 && dti_o.CompareTo(dtf) < 0) { valueshere["PeriodoPianificato"] = item["DataInizio"] + " - " + item["DataFine"]; break; } } partial_rtf_text = "\\pard\\keepn\\f0 "; string titolohere = "VERBALE DELLA VERIFICA PERIODICA DEL "; try { //if (_t.Document.SelectSingleNode("/Tree//Node[@ID='614']/Sessioni/Sessione[@Selected='#AA82BDE4']").Attributes["Stato"].Value == "2" || _t.Document.SelectSingleNode("/Tree//Node[@ID='615']/Sessioni/Sessione[@Selected='#AA82BDE4']").Attributes["Stato"].Value == "2" || _t.Document.SelectSingleNode("/Tree//Node[@ID='616']/Sessioni/Sessione[@Selected='#AA82BDE4']").Attributes["Stato"].Value == "2" || _t.Document.SelectSingleNode("/Tree//Node[@ID='617']/Sessioni/Sessione[@Selected='#AA82BDE4']").Attributes["Stato"].Value == "2" || _t.Document.SelectSingleNode("/Tree//Node[@ID='618']/Sessioni/Sessione[@Selected='#AA82BDE4']").Attributes["Stato"].Value == "2") //{ // titolohere = "VERBALE DI INSEDIAMENTO DEL "; //} XmlNode node6; string selection, strNode; int i; selection = "/Tree//Node[@ID='<idnode>']/Sessioni/Sessione[@Selected='#AA82BDE4']"; for (i = 0; i < 5; i++) { strNode = string.Format("{0}", 614 + i); strNode = selection.Replace("<idnode>", strNode); node6 = _t.Document.SelectSingleNode(strNode); if (node6 == null) { continue; } if (node6.Attributes["Stato"].Value == "2") { titolohere = "VERBALE DI INSEDIAMENTO DEL "; break; } } } catch (Exception ex) { string log = ex.Message; } wl.SetIntestazione(RagioneSociale, Indirizzo, CapitaleSociale, REA, titolohere, valueshere); partial_rtf_text += "\\trowd\\cellx9900 \\fs24 \\qc\\b ATTIVITA' DI CONTROLLO CONTABILE \\b0\\cell\\row"; string TestoHere = "L'organo di revisione procede alla verifica secondo la previsione dell'art.14, primo comma, lettera b), del D. Lgs. 27 Gennaio 2010 n° 39, in conformità al Principio di revisione SA Italia 250B."; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\cell\\row"; TestoHere = "Per lo svolgimento delle attività di revisione e controllo viene utilizzata una procedura informatica che produce carte di lavoro, nelle quali vengono inseriti i dati tabellari raccolti nel corso della sessione, i commenti e le osservazioni annotati, nonché vengono allegati documenti in qualsiasi formato immateriale."; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\cell\\row"; bool esistepianificazione = false; ArrayList al = mf.GetPianificazioniVerifiche(IDCliente); foreach (Hashtable itemHT in al) { string filedata = App.AppDataDataFolder + "\\" + itemHT["FileData"].ToString(); //if ((new FileInfo(filedata)).Exists) //{ // XmlDataProviderManager ALXTPP = new XmlDataProviderManager(filedata); // foreach (XmlNode itemXPP in ALXTPP.Document.SelectNodes("//Dato[@ID=\"100013\"]/Valore/Pianificazione")) // { // if (itemXPP.Attributes["Data"].Value == cmbData.SelectedValue.ToString()) // { // esistepianificazione = true; // break; // } // } //} XmlDataProviderManager ALXTPP = new XmlDataProviderManager(filedata); if (ALXTPP.Document != null) { foreach (XmlNode itemXPP in ALXTPP.Document.SelectNodes("//Dato[@ID=\"100013\"]/Valore/Pianificazione")) { if (itemXPP.Attributes["Data"].Value == cmbData.SelectedValue.ToString()) { esistepianificazione = true; break; } } } if (esistepianificazione == true) { break; } } if (esistepianificazione == true) { //Inserisco il testo per la pianificazione TestoHere = "L'attività di controllo è stata pianificata con la carta di lavoro denominata Pianificazione; la sessione avviata rientra fra quelle pianificate."; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\line \\cell\\row"; } if (rdbDescrittiva.IsChecked == true) { TestoHere = "Per economia di lavoro nel presente verbale verrà dato conto delle carte di lavoro utilizzate dalle quali verranno estrapolati le sole osservazioni e i commenti; per i dati raccolti ed inseriti anche in forma tabellare si farà riferimento alle carte di lavoro, conservate con modalità informatica, che si intendono parte integrante del presente verbale. Parimenti i documenti raccolti vengono associati alle carte di lavoro e conservati in modalità informatiche."; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\line \\cell\\row"; } TestoHere = "Vengono eseguite le seguenti verifiche: \\line "; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\cell\\row"; // partial_rtf_text += "\\par\n"; wl.InsertRtf(partial_rtf_text); printsingle(cliente, _t, (Convert.ToInt32(App.TipoFile.Verifica)).ToString(), wl, valueshere["ID"].ToString(), IDCliente, "", valueshere["FileData"].ToString()); } valueshere.Clear(); foreach (Hashtable item in mf.GetVigilanze(IDCliente)) { if (cmbData.SelectedValue.ToString() == (item["Data"].ToString())) { valueshere = item; _t = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + item["File"].ToString()); } } if (valueshere.Count > 0) { if (notfoundv == false) { partial_rtf_text = "\\pard\\keepn\\f0 "; partial_rtf_text += "\\trowd\\cellx9900 \\fs24 \\qc\\b ATTIVITA' DI VIGILANZA \\b0\\cell\\row"; string TestoHere = "L’organo di controllo di cui agli artt. 2397 e seguenti Cod. Civ. procede alla verifica prescritta dall'articolo 2404 Cod. Civ.; l'attività da svolgere concernerà i doveri indicati nel primo comma dell'articolo 2403 Cod. Civ., esercitando i poteri di cui all'art. 2404 bis Cod. Civ."; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\cell\\row"; partial_rtf_text += "\\trowd\\cellx9900 \\qj \\line \\cell\\row"; partial_rtf_text += "\n"; } else { string titolohere2 = "VERBALE DELLA VERIFICA DEL "; try { if (_t.Document.SelectSingleNode("/Tree//Node[@ID='614']/Sessioni/Sessione[@Selected='#AA82BDE4']").Attributes["Stato"].Value == "2") { titolohere2 = "VERBALE DI INSEDIAMENTO DEL "; } } catch (Exception ex) { string log = ex.Message; } wl.SetIntestazione(RagioneSociale, Indirizzo, CapitaleSociale, REA, titolohere2, valueshere); partial_rtf_text += "\\trowd\\cellx9900 \\fs24 \\qc\\b ATTIVITA' DI VIGILANZA \\b0\\cell\\row"; string TestoHere = "L’organo di controllo di cui agli artt. 2397 e seguenti Cod. Civ. procede alla verifica prescritta dall'articolo 2404 Cod. Civ.; l'attività da svolgere concernerà i doveri indicati nel primo comma dell'articolo 2403 Cod. Civ., esercitando i poteri di cui all'art. 2404 bis Cod. Civ."; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\cell\\row"; partial_rtf_text += "\\trowd\\cellx9900 \\qj \\line \\cell\\row"; partial_rtf_text += "\n"; } wl.InsertRtf(partial_rtf_text); printsingle(cliente, _t, (Convert.ToInt32(App.TipoFile.Vigilanza)).ToString(), wl, valueshere["ID"].ToString(), IDCliente, "", valueshere["FileData"].ToString()); } else { MessageBox.Show("Verifica per attività di vigilanza non trovata"); } } else { foreach (Hashtable item in mf.GetVigilanze(IDCliente)) { if (cmbData.SelectedValue.ToString() == (item["Data"].ToString())) { valueshere = item; _t = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + item["File"].ToString()); } } if (valueshere.Count > 0) { valueshere.Add("PeriodoPianificato", ""); DateTime dti_o = Convert.ToDateTime(valueshere["Data"]); foreach (Hashtable item in mf.GetPianificazioniVigilanze(IDCliente)) { DateTime dti = Convert.ToDateTime(item["DataInizio"]); DateTime dtf = Convert.ToDateTime(item["DataFine"]); if (dti_o.CompareTo(dti) > 0 && dti_o.CompareTo(dtf) < 0) { valueshere["PeriodoPianificato"] = item["DataInizio"] + " - " + item["DataFine"]; break; } } partial_rtf_text = "\\pard\\keepn\\f0 "; if (valueshere.Count == 0) { MessageBox.Show("Verifica per attività di vigilanza non trovata"); } else { string titolohere3 = "VERBALE DELLA VERIFICA DEL "; try { if (_t.Document.SelectSingleNode("/Tree//Node[@ID='614']/Sessioni/Sessione[@Selected='#AA82BDE4']").Attributes["Stato"].Value == "2") { titolohere3 = "VERBALE DI INSEDIAMENTO DEL "; } } catch (Exception ex) { string log = ex.Message; } wl.SetIntestazione(RagioneSociale, Indirizzo, CapitaleSociale, REA, titolohere3, valueshere); partial_rtf_text += "\\trowd\\cellx9900 \\fs24 \\qc\\b ATTIVITA' DI VIGILANZA \\b0\\cell\\row"; string TestoHere = "L’organo di controllo di cui agli artt. 2397 e seguenti Cod. Civ. procede alla verifica prescritta dall'articolo 2404 Cod. Civ.; l'attività da svolgere concernerà i doveri indicati nel primo comma dell'articolo 2403 Cod. Civ., esercitando i poteri di cui all'art. 2404 bis Cod. Civ."; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\cell\\row"; partial_rtf_text += "\\trowd\\cellx9900 \\qj \\line \\cell\\row"; bool esistepianificazione = false; ArrayList al = mf.GetPianificazioniVigilanze(IDCliente); foreach (Hashtable itemHT in al) { string filedata = App.AppDataDataFolder + "\\" + itemHT["FileData"].ToString(); if ((new FileInfo(filedata)).Exists) { XmlDataProviderManager ALXTPP = new XmlDataProviderManager(filedata); foreach (XmlNode itemXPP in ALXTPP.Document.SelectNodes("//Dato[@ID=\"100003\"]/Valore/Pianificazione")) { if (itemXPP.Attributes["Data"].Value == cmbData.SelectedValue.ToString()) { esistepianificazione = true; break; } } } if (esistepianificazione == true) { break; } } //partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\cell\\row"; TestoHere = "Vengono eseguite le seguenti verifiche: \\line "; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\cell\\row"; // partial_rtf_text += "\\par\n"; wl.InsertRtf(partial_rtf_text); printsingle(cliente, _t, (Convert.ToInt32(App.TipoFile.Vigilanza)).ToString(), wl, valueshere["ID"].ToString(), IDCliente, "", valueshere["FileData"].ToString()); } } #region memorandum contemporaneo RTFLib wl2 = new RTFLib(); wl2.Watermark = false; wl2.TabelleSenzaRigheVuote = true; wl2.SenzaStampareTitoli = true; wl2.TitoloVerbale = false; if (rdbDescrittiva.IsChecked == true) { wl2.StampaDescrittiva = true; } wl2.TemplateFileCompletePath = App.AppTemplateStampaNoLogo; wl2.Open(new Hashtable(), cliente["RagioneSociale"].ToString(), cliente["CodiceFiscale"].ToString(), cmbData.SelectedValue.ToString(), "", true, true, IDCliente); foreach (Hashtable item in mf.GetVerifiche(IDCliente)) { if (cmbData.SelectedValue.ToString() == (item["Data"].ToString())) { valueshere = item; _t = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + item["File"].ToString()); } } if (!valueshere.Contains("PeriodoPianificato")) { valueshere.Add("PeriodoPianificato", ""); } DateTime dti_o2 = Convert.ToDateTime(valueshere["Data"]); foreach (Hashtable item in mf.GetPianificazioniVerifiche(IDCliente)) { DateTime dti = Convert.ToDateTime(item["DataInizio"]); DateTime dtf = Convert.ToDateTime(item["DataFine"]); if (dti_o2.CompareTo(dti) > 0 && dti_o2.CompareTo(dtf) < 0) { valueshere["PeriodoPianificato"] = item["DataInizio"] + " - " + item["DataFine"]; break; } } if (valueshere.Count == 0) { MessageBox.Show("Verifica per controllo contabile non trovata"); } else { wl2.SetIntestazione(RagioneSociale, Indirizzo, CapitaleSociale, REA, "MEMORANDUM DELLA VERIFICA PERIODICA DEL ", valueshere); string partial_rtf_text2 = "\\pard\\keepn\\f0 "; partial_rtf_text2 += "\\trowd\\cellx9900 \\fs24 \\qc\\b ATTIVITA' DI CONTROLLO CONTABILE \\b0\\cell\\row"; string TestoHere2 = "L'organo di revisione procede alla verifica secondo la previsione dell'art.14, primo comma, lettera b), del D. Lgs. 27 Gennaio 2010 n° 39, in conformità al Principio di revisione SA Italia 250B."; partial_rtf_text2 += "\\trowd\\cellx9900 \\qj " + TestoHere2 + " \\cell\\row"; TestoHere2 = "Per lo svolgimento delle attività di revisione e controllo viene utilizzata una procedura informatica che produce carte di lavoro, nelle quali vengono inseriti i dati tabellari raccolti nel corso della sessione, i commenti e le osservazioni annotati, nonché vengono allegati documenti in qualsiasi formato immateriale."; partial_rtf_text2 += "\\trowd\\cellx9900 \\qj " + TestoHere2 + " \\cell\\row"; bool esistepianificazione2 = false; ArrayList al2 = mf.GetPianificazioniVerifiche(IDCliente); foreach (Hashtable itemHT in al2) { string filedata = App.AppDataDataFolder + "\\" + itemHT["FileData"].ToString(); if ((new FileInfo(filedata)).Exists) { XmlDataProviderManager ALXTPP = new XmlDataProviderManager(filedata); foreach (XmlNode itemXPP in ALXTPP.Document.SelectNodes("//Dato[@ID=\"100013\"]/Valore/Pianificazione")) { if (itemXPP.Attributes["Data"].Value == cmbData.SelectedValue.ToString()) { esistepianificazione2 = true; break; } } } if (esistepianificazione2 == true) { break; } } if (esistepianificazione2 == true) { //Inserisco il testo per la pianificazione TestoHere2 = "L'attività di controllo è stata pianificata con la carta di lavoro denominata Pianificazione; la sessione avviata rientra fra quelle pianificate."; partial_rtf_text2 += "\\trowd\\cellx9900 \\qj " + TestoHere2 + " \\line \\cell\\row"; } if (rdbDescrittiva.IsChecked == true) { TestoHere2 = "Per economia di lavoro nel presente memorandum verrà dato conto delle carte di lavoro utilizzate dalle quali verranno estrapolati le sole osservazioni e i commenti; per i dati raccolti ed inseriti anche in forma tabellare si farà riferimento alle carte di lavoro, conservate con modalità informatica, che si intendono parte integrante del presente verbale. Parimenti i documenti raccolti vengono associati alle carte di lavoro e conservati in modalità informatiche."; partial_rtf_text2 += "\\trowd\\cellx9900 \\qj " + TestoHere2 + " \\line \\cell\\row"; } TestoHere2 = "Vengono eseguite le seguenti verifiche: \\line "; partial_rtf_text2 += "\\trowd\\cellx9900 \\qj " + TestoHere2 + " \\cell\\row"; // partial_rtf_text2 += "\\par\n"; wl2.InsertRtf(partial_rtf_text2); printsingle(cliente, _t, (Convert.ToInt32(App.TipoFile.Verifica)).ToString(), wl2, valueshere["ID"].ToString(), IDCliente, "", valueshere["FileData"].ToString()); } wl2.LastParagraph(valueshere); wl2.SetFilename(App.AppTempFolder + "\\" + cliente["RagioneSociale"].ToString() + "_Memorandum_" + cmbData.SelectedValue.ToString().Replace("/", "")); wl2.Save(""); wl2.Close(); #endregion } } else if (rdbMemorandum.IsChecked == true) { foreach (Hashtable item in mf.GetVerifiche(IDCliente)) { if (cmbData.SelectedValue.ToString() == (item["Data"].ToString())) { valueshere = item; _t = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + item["File"].ToString()); } } valueshere.Add("PeriodoPianificato", ""); DateTime dti_o = Convert.ToDateTime(valueshere["Data"]); foreach (Hashtable item in mf.GetPianificazioniVerifiche(IDCliente)) { DateTime dti = Convert.ToDateTime(item["DataInizio"]); DateTime dtf = Convert.ToDateTime(item["DataFine"]); if (dti_o.CompareTo(dti) > 0 && dti_o.CompareTo(dtf) < 0) { valueshere["PeriodoPianificato"] = item["DataInizio"] + " - " + item["DataFine"]; break; } } if (valueshere.Count == 0) { MessageBox.Show("Verifica per controllo contabile non trovata"); } else { wl.SetIntestazione(RagioneSociale, Indirizzo, CapitaleSociale, REA, "MEMORANDUM DELLA VERIFICA PERIODICA DEL ", valueshere); string partial_rtf_text = "\\pard\\keepn\\f0 "; partial_rtf_text += "\\trowd\\cellx9900 \\fs24 \\qc\\b ATTIVITA' DI CONTROLLO CONTABILE \\b0\\cell\\row"; string TestoHere = "L'organo di revisione procede alla verifica secondo la previsione dell'art.14, primo comma, lettera b), del D. Lgs. 27 Gennaio 2010 n° 39, in conformità al Principio di revisione SA Italia 250B."; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\cell\\row"; TestoHere = "Per lo svolgimento delle attività di revisione e controllo viene utilizzata una procedura informatica che produce carte di lavoro, nelle quali vengono inseriti i dati tabellari raccolti nel corso della sessione, i commenti e le osservazioni annotati, nonché vengono allegati documenti in qualsiasi formato immateriale."; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\cell\\row"; bool esistepianificazione = false; ArrayList al = mf.GetPianificazioniVerifiche(IDCliente); foreach (Hashtable itemHT in al) { string filedata = App.AppDataDataFolder + "\\" + itemHT["FileData"].ToString(); if ((new FileInfo(filedata)).Exists) { XmlDataProviderManager ALXTPP = new XmlDataProviderManager(filedata); foreach (XmlNode itemXPP in ALXTPP.Document.SelectNodes("//Dato[@ID=\"100013\"]/Valore/Pianificazione")) { if (itemXPP.Attributes["Data"].Value == cmbData.SelectedValue.ToString()) { esistepianificazione = true; break; } } } if (esistepianificazione == true) { break; } } if (esistepianificazione == true) { //Inserisco il testo per la pianificazione TestoHere = "L'attività di controllo è stata pianificata con la carta di lavoro denominata Pianificazione; la sessione avviata rientra fra quelle pianificate."; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\line \\cell\\row"; } if (rdbDescrittiva.IsChecked == true) { TestoHere = "Per economia di lavoro nel presente memorandum verrà dato conto delle carte di lavoro utilizzate dalle quali verranno estrapolati le sole osservazioni e i commenti; per i dati raccolti ed inseriti anche in forma tabellare si farà riferimento alle carte di lavoro, conservate con modalità informatica, che si intendono parte integrante del presente verbale. Parimenti i documenti raccolti vengono associati alle carte di lavoro e conservati in modalità informatiche."; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\line \\cell\\row"; } TestoHere = "Vengono eseguite le seguenti verifiche: \\line "; partial_rtf_text += "\\trowd\\cellx9900 \\qj " + TestoHere + " \\cell\\row"; // partial_rtf_text += "\\par\n"; wl.InsertRtf(partial_rtf_text); printsingle(cliente, _t, (Convert.ToInt32(App.TipoFile.Verifica)).ToString(), wl, valueshere["ID"].ToString(), IDCliente, "", valueshere["FileData"].ToString()); } } else { //pw.Close(); return; } wl.LastParagraph(valueshere); string str; str = App.AppTempFolder + "\\" + cliente["RagioneSociale"].ToString() + "_VerbaleVerificaPeriodica_" + cmbData.SelectedValue.ToString().Replace("/", ""); str = str.Replace("*", "_"); wl.SetFilename(str); wl.Save(""); wl.Close(); //Process wait - STOP //pw.Close(); }
//----------------------------------------------------------------------------+ // Load | //----------------------------------------------------------------------------+ public void Load() { MasterFile mf = MasterFile.Create(); int index = 0; ArrayList al = new ArrayList(); List <KeyValuePair <string, string> > myList = new List <KeyValuePair <string, string> >(); switch ((App.TipoFile)(System.Convert.ToInt32(Tree))) { case App.TipoFile.Revisione: al = mf.GetRevisioni(Cliente); foreach (Hashtable item in al) { if (item["ID"].ToString() != Sessione) { myList.Add(new KeyValuePair <string, string>( item["ID"].ToString(), item["Data"].ToString().Replace("01/01/", ""))); } } break; case App.TipoFile.PianificazioniVerifica: al = mf.GetPianificazioniVerifiche(Cliente); foreach (Hashtable item in al) { if (item["ID"].ToString() != Sessione) { myList.Add(new KeyValuePair <string, string>( item["ID"].ToString(), item["DataInizio"].ToString() + " - " + item["DataFine"].ToString())); } } break; case App.TipoFile.PianificazioniVigilanza: al = mf.GetPianificazioniVigilanze(Cliente); foreach (Hashtable item in al) { if (item["ID"].ToString() != Sessione) { myList.Add(new KeyValuePair <string, string>( item["ID"].ToString(), item["DataInizio"].ToString() + " - " + item["DataFine"].ToString())); } } break; case App.TipoFile.Verifica: al = mf.GetVerifiche(Cliente); foreach (Hashtable item in al) { if (item["ID"].ToString() != Sessione) { myList.Add(new KeyValuePair <string, string>( item["ID"].ToString(), item["Data"].ToString())); } } break; case App.TipoFile.Vigilanza: al = mf.GetVigilanze(Cliente); foreach (Hashtable item in al) { if (item["ID"].ToString() != Sessione) { myList.Add(new KeyValuePair <string, string>( item["ID"].ToString(), item["Data"].ToString())); } } break; case App.TipoFile.Incarico: al = mf.GetIncarichi(Cliente); foreach (Hashtable item in al) { if (item["ID"].ToString() != Sessione) { myList.Add(new KeyValuePair <string, string>( item["ID"].ToString(), item["DataNomina"].ToString())); } } break; case App.TipoFile.IncaricoCS: al = mf.GetIncarichi(Cliente, "CS"); foreach (Hashtable item in al) { if (item["ID"].ToString() != Sessione) { myList.Add(new KeyValuePair <string, string>( item["ID"].ToString(), item["DataNomina"].ToString())); } } break; case App.TipoFile.IncaricoSU: al = mf.GetIncarichi(Cliente, "SU"); foreach (Hashtable item in al) { if (item["ID"].ToString() != Sessione) { myList.Add(new KeyValuePair <string, string>( item["ID"].ToString(), item["DataNomina"].ToString())); } } break; case App.TipoFile.IncaricoREV: al = mf.GetIncarichi(Cliente, "REV"); foreach (Hashtable item in al) { if (item["ID"].ToString() != Sessione) { myList.Add(new KeyValuePair <string, string>( item["ID"].ToString(), item["DataNomina"].ToString())); } } break; case App.TipoFile.ISQC: al = mf.GetISQCs(Cliente); foreach (Hashtable item in al) { if (item["ID"].ToString() != Sessione) { myList.Add(new KeyValuePair <string, string>( item["ID"].ToString(), item["DataNomina"].ToString())); } } break; case App.TipoFile.Bilancio: al = mf.GetBilanci(Cliente); foreach (Hashtable item in al) { if (item["ID"].ToString() != Sessione) { myList.Add(new KeyValuePair <string, string>( item["ID"].ToString(), item["Data"].ToString().Replace("01/01/", ""))); } } break; case App.TipoFile.Conclusione: al = mf.GetConclusioni(Cliente); foreach (Hashtable item in al) { if (item["ID"].ToString() != Sessione) { myList.Add(new KeyValuePair <string, string>( item["ID"].ToString(), item["Data"].ToString().Replace("01/01/", ""))); } } break; case App.TipoFile.Licenza: case App.TipoFile.Master: case App.TipoFile.Info: case App.TipoFile.Messagi: case App.TipoFile.ImportExport: case App.TipoFile.ImportTemplate: case App.TipoFile.BackUp: case App.TipoFile.Formulario: case App.TipoFile.ModellPredefiniti: case App.TipoFile.DocumentiAssociati: default: base.Close(); break; } // switch myList.Sort( delegate(KeyValuePair <string, string> firstPair, KeyValuePair <string, string> nextPair) { return(Convert.ToDateTime(((firstPair.Value.Contains(' ')) ? firstPair.Value.Split(' ')[0] : ((firstPair.Value.Length == 4) ? "01/01/" + firstPair.Value : firstPair.Value))).CompareTo( Convert.ToDateTime(((firstPair.Value.Contains(' ')) ? firstPair.Value.Split(' ')[0] :((nextPair.Value.Length == 4) ? "01/01/" + nextPair.Value : nextPair.Value))))); }); foreach (KeyValuePair <string, string> item in myList) { ht.Add(index++, item.Key); lstSessioni.Items.Add(item.Value); } }
//----------------------------------------------------------------------------+ // LoadTreeSource | //----------------------------------------------------------------------------+ public void LoadTreeSource() { if (Data == "") { Data = DateTime.Now.ToShortDateString(); } ArrayList pianificatehere = new ArrayList(); txtData.Text = Data; RevisoftApplication.XmlManager x = new XmlManager(); x.TipoCodifica = RevisoftApplication.XmlManager.TipologiaCodifica.Normale; MasterFile mf = MasterFile.Create(); ArrayList files = new ArrayList(); switch (TipoAttivita) { case App.TipoAttivita.Incarico: SelectedTreeSource = App.AppTemplateTreeIncarico; files = mf.GetIncarichi(IDCliente); break; case App.TipoAttivita.ISQC: SelectedTreeSource = App.AppTemplateTreeISQC; files = mf.GetISQCs(IDCliente); break; case App.TipoAttivita.Revisione: SelectedTreeSource = App.AppTemplateTreeRevisione; files = mf.GetRevisioni(IDCliente); break; case App.TipoAttivita.Bilancio: SelectedTreeSource = App.AppTemplateTreeBilancio; files = mf.GetBilanci(IDCliente); break; case App.TipoAttivita.Conclusione: SelectedTreeSource = App.AppTemplateTreeConclusione; files = mf.GetConclusioni(IDCliente); break; case App.TipoAttivita.Verifica: files = mf.GetVerifiche(IDCliente); SelectedTreeSource = App.AppTemplateTreeVerifica; ArrayList al = mf.GetPianificazioniVerifiche(IDCliente); foreach (Hashtable itemHT in al) { ALXTPP.Add(itemHT["ID"].ToString()); } break; case App.TipoAttivita.Vigilanza: files = mf.GetVigilanze(IDCliente); SelectedTreeSource = App.AppTemplateTreeVigilanza; ArrayList al2 = mf.GetPianificazioniVigilanze(IDCliente); foreach (Hashtable itemHT in al2) { ALXTPP.Add(itemHT["ID"].ToString()); } break; default: return; } if (files.Count > 0) { string maxID = "0", id; DateTime lastdate = Convert.ToDateTime("01/01/1900"); string tobeused = ""; foreach (Hashtable itemHT in files) { if (itemHT.Contains("ID")) { id = itemHT["ID"].ToString(); if (Convert.ToInt32(id) > Convert.ToInt32(maxID)) { maxID = id; tobeused = itemHT["File"].ToString(); } } } _xTXP = new XmlDataProviderManager(tobeused); TreeXmlProvider.Document = x.LoadEncodedFile(tobeused); } else { _xTXP = new XmlDataProviderManager(SelectedTreeSource); TreeXmlProvider.Document = x.LoadEncodedFile(SelectedTreeSource); } if (firsttime) { firsttime = false; foreach (XmlNode item in _xTXP.Document.SelectNodes("//Node")) { if (item.Attributes["WidthNota"] == null) { XmlAttribute attr = _xTXP.Document.CreateAttribute("WidthNota"); item.Attributes.Append(attr); } if (item.SelectNodes("Node").Count > 0) { item.Attributes["WidthNota"].Value = "0"; } else { item.Attributes["WidthNota"].Value = "Auto"; } if (item.Attributes["Checked"] == null) { XmlAttribute attr = _xTXP.Document.CreateAttribute("Checked"); item.Attributes.Append(attr); item.Attributes["Checked"].Value = "False"; } if (item.Attributes["NotaTDL"] == null) { XmlAttribute attr = _xTXP.Document.CreateAttribute("NotaTDL"); item.Attributes.Append(attr); item.Attributes["NotaTDL"].Value = ""; } item.Attributes["Expanded"].Value = "True"; item.Attributes["Selected"].Value = "False"; if (item.Attributes["Pianificato"] == null) { XmlAttribute attr = item.OwnerDocument.CreateAttribute("Pianificato"); attr.Value = ""; item.Attributes.Append(attr); } DataTable pianificazione = null; DataTable pianificazioneTestata = null; foreach (string ALitemXTPP in ALXTPP) { bool donehere = false; string IDPHERE = ""; string datac = ""; if (TipoAttivita == App.TipoAttivita.Verifica) { IDPHERE = "100013"; pianificazioneTestata = cBusinessObjects.GetData(int.Parse(IDPHERE), typeof(PianificazioneVerificheTestata), int.Parse(IDCliente), int.Parse(ALitemXTPP), 26); pianificazione = cBusinessObjects.GetData(int.Parse(IDPHERE), typeof(PianificazioneVerifiche), int.Parse(IDCliente), int.Parse(ALitemXTPP), 26); } else { IDPHERE = "100003"; pianificazioneTestata = cBusinessObjects.GetData(int.Parse(IDPHERE), typeof(PianificazioneVerificheTestata), int.Parse(IDCliente), int.Parse(ALitemXTPP), 27); pianificazione = cBusinessObjects.GetData(int.Parse(IDPHERE), typeof(PianificazioneVerifiche), int.Parse(IDCliente), int.Parse(ALitemXTPP), 27); } foreach (DataRow itemXPP in pianificazione.Rows) { if (itemXPP["NODE_ID"].ToString() != item.Attributes["ID"].Value) { continue; } foreach (DataRow dd in pianificazioneTestata.Rows) { if (dd["ID"].ToString() == itemXPP["PianificazioneID"].ToString()) { datac = dd["Data"].ToString(); } } if (datac != Data) { continue; } if (itemXPP["Checked"].ToString() == "True") { item.Attributes["Pianificato"].Value = "P"; item.Attributes["Checked"].Value = "True"; StaticUtilities.MarkNodeAsModified(item, App.OBJ_MOD); _isModified = true; pianificatehere.Add(item.Attributes["ID"].Value); break; } } if (donehere) { break; } } } _xTXP.Save(); foreach (XmlNode item in TreeXmlProvider.Document.SelectNodes("//Node")) { if (item.Attributes["NotaTDL"] == null) { XmlAttribute attr = TreeXmlProvider.Document.CreateAttribute("NotaTDL"); item.Attributes.Append(attr); item.Attributes["NotaTDL"].Value = ""; } if (item.Attributes["Checked"] == null) { XmlAttribute attr = TreeXmlProvider.Document.CreateAttribute("Checked"); item.Attributes.Append(attr); item.Attributes["Checked"].Value = "False"; } if (item.Attributes["Pianificato"] == null) { XmlAttribute attr = TreeXmlProvider.Document.CreateAttribute("Pianificato"); item.Attributes.Append(attr); item.Attributes["Pianificato"].Value = ""; } if (pianificatehere.Contains(item.Attributes["ID"].Value)) { item.Attributes["Pianificato"].Value = "P"; } if (item.Attributes["WidthNota"] == null) { XmlAttribute attr = TreeXmlProvider.Document.CreateAttribute("WidthNota"); item.Attributes.Append(attr); } if (item.SelectNodes("Node").Count > 0) { item.Attributes["WidthNota"].Value = "0"; } else { item.Attributes["WidthNota"].Value = "Auto"; } if (item.Attributes["Pianificato"].Value == "P") { item.Attributes["Checked"].Value = "True"; //item.Attributes["NotaTDL"].Value = ""; } StaticUtilities.MarkNodeAsModified(item, App.OBJ_MOD); _isModified = true; } } Utilities u = new Utilities(); labelAttivita.Content = u.TitoloAttivita(_TipoAttivita); TreeXmlProvider.Refresh(); LoadDataSource(); }
public void ConfiguraMaschera() { cBusinessObjects.idcliente = int.Parse(IDCliente); cBusinessObjects.idsessione = int.Parse(IDSessione); labelTitolo.Text = "Sessioni nel periodo " + DataInizio + " - " + DataFine; dati = cBusinessObjects.GetData(id, typeof(PianificazioneVerifiche)); datiTestata = cBusinessObjects.GetData(id, typeof(PianificazioneVerificheTestata)); if (dati.Rows.Count == 0) { //controllo se esiste una vigilanza con le medesime date MasterFile mf = MasterFile.Create(); ArrayList vigilanze = mf.GetPianificazioniVigilanze(IDCliente); string vigilanzaID = "-1"; foreach (Hashtable item in vigilanze) { if (item["DataInizio"].ToString() == DataInizio && item["DataFine"].ToString() == DataFine) { vigilanzaID = item["ID"].ToString(); } } if (vigilanzaID != "-1") { if (MessageBox.Show("Vuoi importare le stesse sessioni della vigilanza?", "Attenzione", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { Hashtable htSelected = mf.GetPianificazioniVerifica(vigilanzaID); if (htSelected.Count != 0) { DataTable pianificazioneSource = cBusinessObjects.GetData(100003, typeof(PianificazioneVerificheTestata), cBusinessObjects.idcliente, int.Parse(vigilanzaID), 27); cBusinessObjects.SaveData(100013, pianificazioneSource, typeof(PianificazioneVerificheTestata), -1, 26); datiTestata = cBusinessObjects.GetData(id, typeof(PianificazioneVerificheTestata)); } lastKey = "0"; foreach (DataRow itemV in datiTestata.Rows) { if (int.Parse(lastKey) < int.Parse(itemV["ID"].ToString())) { lastKey = itemV["ID"].ToString(); generateTree(lastKey); lastData = itemV["Data"].ToString(); if (!htSessioni.Contains(lastKey)) { htSessioni.Add(lastKey, lastData); } } } } } generateTree("0"); datiTestata = cBusinessObjects.GetData(id, typeof(PianificazioneVerificheTestata)); dati = cBusinessObjects.GetData(id, typeof(PianificazioneVerifiche)); } UpdateGridCombo(); switch (Stato) { case App.TipoTreeNodeStato.DaCompletare: btn_Stato_DaCompletare.Background = ButtonStatoSelectedColor; btn_Stato_Completato.Background = btn_NodoHelp.Background; ReadOnly = false; break; case App.TipoTreeNodeStato.Completato: btn_Stato_Completato.Background = ButtonStatoSelectedColor; btn_Stato_DaCompletare.Background = btn_NodoHelp.Background; ReadOnly = false; break; default: ReadOnly = false; break; } }