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;
                }
            }
        }
Exemple #4
0
        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;
            }
        }