Exemple #1
0
        protected override bool EsportaAzioneInformazione(object siglaEntita, object siglaAzione, object desEntita, object desAzione, DateTime dataRif, string[] mercati)
        {
            DataView entitaAzione = Workbook.Repository[DataBase.TAB.ENTITA_AZIONE].DefaultView;

            entitaAzione.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND SiglaAzione = '" + siglaAzione + "' AND IdApplicazione = " + Workbook.IdApplicazione;
            if (entitaAzione.Count == 0)
            {
                return(false);
            }

            DataView categoriaEntita = Workbook.Repository[DataBase.TAB.CATEGORIA_ENTITA].DefaultView;

            categoriaEntita.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;
            object codiceRUP = categoriaEntita[0]["CodiceRUP"];

            DataView entitaProprieta = Workbook.Repository[DataBase.TAB.ENTITA_PROPRIETA].DefaultView;

            entitaProprieta.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND SiglaProprieta = 'IMP_COD_IF' AND IdApplicazione = " + Workbook.IdApplicazione;
            object codiceIF = entitaProprieta[0]["Valore"];

            DataView entitaAzioneInformazione = Workbook.Repository[DataBase.TAB.ENTITA_AZIONE_INFORMAZIONE].DefaultView;

            entitaAzioneInformazione.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND SiglaAzione = '" + siglaAzione + "' AND IdApplicazione = " + Workbook.IdApplicazione;

            string       nomeFoglio   = DefinedNames.GetSheetName(siglaEntita);
            DefinedNames definedNames = new DefinedNames(nomeFoglio);

            switch (siglaAzione.ToString())
            {
            case "E_MP_MGP":
                DataTable dt = new DataTable("E_MP_MGP")
                {
                    Columns =
                    {
                        { "Campo1",       typeof(string) },
                        { "Campo2",       typeof(string) },
                        { "UP",           typeof(string) },
                        { "Campo3",       typeof(string) },
                        { "Data",         typeof(string) },
                        { "Ora",          typeof(string) },
                        { "Informazione", typeof(string) },
                        { "Valore",       typeof(string) }
                    }
                };

                string suffissoData = Date.GetSuffissoData(dataRif);
                foreach (DataRowView info in entitaAzioneInformazione)
                {
                    object siglaEntitaRif = (info["SiglaEntitaRif"] is DBNull ? info["SiglaEntita"] : info["SiglaEntitaRif"]);

                    Excel.Worksheet ws    = Workbook.Sheets[nomeFoglio];
                    Range           range = definedNames.Get(siglaEntitaRif, info["SiglaInformazione"], suffissoData);
                    range.Extend(0, definedNames.GetDayOffset(suffissoData) - 1);
                    Excel.Range rng = ws.Range[range.ToString()];

                    object[,] tmpVal = rng.Value;
                    object[] values = tmpVal.Cast <object>().ToArray();

                    for (int i = 0, length = values.Length; i < length; i++)
                    {
                        DataRow row = dt.NewRow();

                        row["Campo1"] = nomeFoglio == "Iren Termo" ? "AHRP" : "AIHRP";
                        row["Campo2"] = "Prod";
                        row["UP"]     = codiceIF;
                        if (definedNames.IsDefined(siglaEntitaRif, "UNIT_COMM"))
                        {
                            row["Campo3"] = "17";
                        }
                        else
                        {
                            row["Campo3"] = "NA";
                        }
                        row["Data"]         = dataRif.ToString("yyyy/MM/dd");
                        row["Ora"]          = i + 1;
                        row["Informazione"] = info["SiglaInformazione"].Equals("PMAX") ? "Pmax" : "Pmin";
                        row["Valore"]       = values[i] ?? 0;

                        dt.Rows.Add(row);
                    }
                }

                string pathStr = PreparePath(Workbook.GetUsrConfigElement("pathExportMP_MGP"));

                if (Directory.Exists(pathStr))
                {
                    if (!ExportToCSV(System.IO.Path.Combine(pathStr, "AEM_" + (nomeFoglio == "Iren Termo" ? "AHRP_" : "AIHRP_") + codiceIF + "_" + dataRif.ToString("yyyyMMdd") + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfffffff") + ".csv"), dt))
                    {
                        return(false);
                    }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show("Il percorso '" + pathStr + "' non è raggiungibile.", Simboli.NomeApplicazione, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                    return(false);
                }

                break;
            }
            return(true);
        }