Esempio n. 1
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();
        }
Esempio n. 2
0
        //private void functionCmbClientiChanged(ComboBox cmb)
        //{
        //	cmbData.SelectedIndex = -1;

        //	if (cmb.SelectedIndex != -1)
        //	{
        //		try
        //		{
        //			string IDCliente = htClienti[cmb.SelectedIndex].ToString();

        //			OldSelectedCmbClienti = Convert.ToInt32(IDCliente);

        //			MasterFile mf = MasterFile.Create();

        //			int index = 0;
        //			htDate.Clear();
        //			cmbData.Items.Clear();

        //			List<KeyValuePair<string, string>> myList = new List<KeyValuePair<string, string>>();

        //			ArrayList alreadydone = new ArrayList();

        //			foreach (Hashtable item in mf.GetBilanci(IDCliente))
        //			{
        //				myList.Add(new KeyValuePair<string, string>(item["ID"].ToString(), ConvertDataToEsercizio(item["Data"].ToString())));
        //				alreadydone.Add(ConvertDataToEsercizio(item["Data"].ToString()));
        //			}

        //			foreach (Hashtable item in mf.GetRevisioni(IDCliente))
        //			{
        //				if (!alreadydone.Contains(ConvertDataToEsercizio(item["Data"].ToString())))
        //				{
        //					myList.Add(new KeyValuePair<string, string>(item["ID"].ToString(), ConvertDataToEsercizio(item["Data"].ToString())));
        //                          alreadydone.Add( ConvertDataToEsercizio( item["Data"].ToString() ) );
        //				}
        //			}

        //                  foreach ( Hashtable item in mf.GetConclusioni( IDCliente ) )
        //                  {
        //                      if ( !alreadydone.Contains( ConvertDataToEsercizio( item["Data"].ToString() ) ) )
        //                      {
        //                          myList.Add( new KeyValuePair<string, string>( item["ID"].ToString(), ConvertDataToEsercizio( item["Data"].ToString() ) ) );
        //                      }
        //                  }

        //			myList.Sort
        //			(
        //				delegate(KeyValuePair<string, string> firstPair, KeyValuePair<string, string> nextPair)
        //				{
        //					try
        //					{
        //						return nextPair.Value.ToString().CompareTo(firstPair.Value.ToString());
        //					}
        //					catch (Exception ex)
        //					{
        //						string log = ex.Message;
        //						return 1;
        //					}
        //				}
        //			);

        //			foreach (KeyValuePair<string, string> item in myList)
        //			{
        //				cmbData.Items.Add(item.Value);
        //				htDate.Add(index, item.Key);
        //				index++;
        //			}
        //		}
        //		catch (Exception ex)
        //		{
        //			string log = ex.Message;
        //			cmbData.IsEnabled = false;
        //		}
        //	}
        //}

        private void buttonStampa_Click(object sender, RoutedEventArgs e)
        {
            //controllo selezione clienti
            if (cmbClienti.SelectedIndex == -1)
            {
                MessageBox.Show("selezionare un cliente");
                return;
            }

            //Adesso stampa selettivamente o 1/ISQC o 2/3/9 (Borelli 11/12/2017)
            //if (cmbData.SelectedIndex == -1)
            //{
            //    MessageBox.Show("selezionare un anno");
            //    return;
            //}
            Hide();
            ArrayList TBD1 = new ArrayList();

#pragma warning disable CS0219 // La variabile è assegnata, ma il suo valore non viene mai usato
            bool atleastone = false;
#pragma warning restore CS0219 // La variabile è assegnata, ma il suo valore non viene mai usato

            foreach (object item in stpSessioni1.Children)
            {
                if (item.GetType().Name == "CheckBox")
                {
                    if (((CheckBox)(item)).Tag.ToString() == "-1")
                    {
                        continue;
                    }

                    if (((CheckBox)(item)).IsChecked == true)
                    {
                        atleastone = true;
                        TBD1.Add(((CheckBox)(item)).Tag.ToString());
                    }
                }
            }

            //if (cmbData.SelectedIndex == -1 && atleastone == false)
            //{
            //    MessageBox.Show("selezionare almeno un incarico o esercizio");
            //    return;
            //}



            try
            {
                MasterFile mf = MasterFile.Create();

                string IDCliente = htClienti[cmbClienti.SelectedIndex].ToString();

                string anno = "";
                if (cmbData.SelectedIndex != -1)
                {
                    anno = cmbData.SelectedValue.ToString().Split(' ')[0];
                }
                selectedCliente = IDCliente;
                Hashtable cliente = mf.GetAnagrafica(Convert.ToInt32(IDCliente));

                //WordLib wl = new WordLib();
                RTFLib wl = new RTFLib();

                wl.Fascicolo = true;
                wl.StampaLetteraAttestazione         = false;
                wl.StampaManagementLetter            = false;
                wl.StampaLetteraIncarico             = false;
                wl.StampaRelazioneBilancioeVigilanza = false;
                wl.StampaRelazioneBilancio           = false;
                wl.StampaRelazioneVigilanza          = false;
                wl.StampaRelazioneGenerica           = false;
                wl.Utente = txtRevisore.Text;

                Hashtable hthere = new Hashtable();
                hthere.Add("ID", IDCliente);
                hthere.Add("anno", anno);

                wl.TemplateFileCompletePath = App.AppTemplateStampa;
                if (cmbData.SelectedIndex != -1)
                {
                    wl.Open(hthere, cliente["RagioneSociale"].ToString(), cliente["CodiceFiscale"].ToString(), cmbData.SelectedValue.ToString(), "Fascicolo della Revisione \\line\\line esercizio " + cmbData.SelectedValue.ToString() + " \\line\\line\\line\\line\\line\\line\\line\\line ", true, true, IDCliente);
                }
                else
                {
                    wl.Open(hthere, cliente["RagioneSociale"].ToString(), cliente["CodiceFiscale"].ToString(), "", "Fascicolo della Revisione \\line\\line Accettazione Incarico \\line\\line\\line\\line\\line\\line\\line\\line ", true, true, IDCliente);
                }

                foreach (Hashtable htTBD in alIncarichi)
                {
                    if (TBD1.Contains(htTBD["ID"].ToString()))
                    {
                        XmlDataProviderManager _t = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + htTBD["File"].ToString());
                        XmlDataProviderManager _x = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + htTBD["FileData"].ToString());

                        printsingle(cliente, _t, _x, (Convert.ToInt32(App.TipoFile.Incarico)).ToString(), wl, htTBD["ID"].ToString(), IDCliente, " ( Sessione: " + htTBD["DataNomina"].ToString() + " )", htTBD["FileData"].ToString());
                    }
                }

                foreach (Hashtable htTBD in alISQCs)
                {
                    if (TBD1.Contains(htTBD["ID"].ToString()))
                    {
                        XmlDataProviderManager _t = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + htTBD["File"].ToString());
                        XmlDataProviderManager _x = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + htTBD["FileData"].ToString());

                        printsingle(cliente, _t, _x, (Convert.ToInt32(App.TipoFile.ISQC)).ToString(), wl, htTBD["ID"].ToString(), IDCliente, " ( Sessione: " + htTBD["DataNomina"].ToString() + " )", htTBD["FileData"].ToString());
                    }
                }

                if (cmbData.SelectedIndex == -1)// && atleastone == false)
                {
                    ;
                }
                else
                {
                    foreach (Hashtable item in mf.GetRevisioni(IDCliente))
                    {
                        try
                        {
                            if (cmbData.SelectedValue != null && item != null && item["Data"] != null && cmbData.SelectedValue.ToString() == ConvertDataToEsercizio(item["Data"].ToString()))
                            {
                                XmlDataProviderManager _t = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + item["File"].ToString());
                                XmlDataProviderManager _x = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + item["FileData"].ToString());

                                printsingle(cliente, _t, _x, (Convert.ToInt32(App.TipoFile.Revisione)).ToString(), wl, item["ID"].ToString(), IDCliente, "", item["FileData"].ToString());
                                break;
                            }
                        }
                        catch (Exception ex)
                        {
                            cBusinessObjects.logger.Error(ex, "wStampaFascicolo.buttonStampa_Click1 exception");
                            MessageBox.Show("Attenzione, errore nei dati sulle revisioni verificare la stampa");
                            break;
                        }
                    }

                    foreach (Hashtable item in mf.GetBilanci(IDCliente))
                    {
                        try
                        {
                            if (cmbData.SelectedValue != null && item != null && item["Data"] != null && cmbData.SelectedValue.ToString() == ConvertDataToEsercizio(item["Data"].ToString()))
                            {
                                XmlDataProviderManager _t = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + item["File"].ToString());
                                XmlDataProviderManager _x = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + item["FileData"].ToString());

                                printsingle(cliente, _t, _x, (Convert.ToInt32(App.TipoFile.Bilancio)).ToString(), wl, item["ID"].ToString(), IDCliente, "", item["FileData"].ToString());
                                break;
                            }
                        }
                        catch (Exception ex)
                        {
                            cBusinessObjects.logger.Error(ex, "wStampaFascicolo.buttonStampa_Click2 exception");
                            MessageBox.Show("Attenzione, errore nei dati sui bilanci verificare la stampa");
                            break;
                        }
                    }

                    foreach (Hashtable item in mf.GetConclusioni(IDCliente))
                    {
                        try
                        {
                            if (cmbData.SelectedValue != null && item != null && item["Data"] != null && cmbData.SelectedValue.ToString() == ConvertDataToEsercizio(item["Data"].ToString()))
                            {
                                XmlDataProviderManager _t = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + item["File"].ToString());
                                XmlDataProviderManager _x = new XmlDataProviderManager(App.AppDataDataFolder + "\\" + item["FileData"].ToString());

                                printsingle(cliente, _t, _x, (Convert.ToInt32(App.TipoFile.Conclusione)).ToString(), wl, item["ID"].ToString(), IDCliente, "", item["FileData"].ToString());
                                break;
                            }
                        }
                        catch (Exception ex)
                        {
                            cBusinessObjects.logger.Error(ex, "wStampaFascicolo.buttonStampa_Click3 exception");
                            MessageBox.Show("Attenzione, errore nei dati sulle conclusioni verificare la stampa");
                            break;
                        }
                    }
                }

                wl.SetFilename(App.AppTempFolder + "\\" + cliente["RagioneSociale"].ToString() + "_Fascicolo_" + anno);
                wl.SavePDF("", this);
                wl.Close();
            }
            catch (Exception ex)
            {
                cBusinessObjects.logger.Error(ex, "wStampaFascicolo.buttonStampa_Click4 exception");
                string log = ex.Message;
                MessageBox.Show("Attenzione, il processo ha riscontrato un errore: " + log);
            }
        }