Beispiel #1
0
        private CheckOutput CheckFunc5()
        {
            Range rngCheck = new Range(_check.Range);

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

            categoriaEntita.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;

            TreeNode n = new TreeNode(categoriaEntita[0]["DesEntita"].ToString());

            n.Name = _check.SiglaEntita;

            CheckOutput.CheckStatus status = CheckOutput.CheckStatus.Ok;

            DateTime giorno    = Workbook.DataAttiva;
            int      oreGiorno = Date.GetOreGiorno(giorno);

            string suffissoData = Date.GetSuffissoData(giorno);
            int    ora          = 1;

            TreeNode nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));

            for (int i = 0; i < rngCheck.ColOffset; i++)
            {
                //caricamento dati
                object costoOCX = GetObject("UP_OCX", "COSTO", suffissoData, Date.GetSuffissoOra(ora));
                object costoOEX = GetObject("UP_OEX", "COSTO", suffissoData, Date.GetSuffissoOra(ora));
                //fine caricameto dati

                TreeNode nOra = new TreeNode("Ora " + ora);

                bool errore     = false;
                bool attenzione = false;

                //controlli
                if (costoOCX == null || costoOEX == null)
                {
                    nOra.Nodes.Add("Costo marginale assente");
                    attenzione |= true;
                }
                //fine controlli

                if (errore)
                {
                    ErrorStyle(ref nOra);
                    status = CheckOutput.CheckStatus.Error;
                }
                else if (attenzione)
                {
                    AlertStyle(ref nOra);
                    if (status != CheckOutput.CheckStatus.Error)
                    {
                        status = CheckOutput.CheckStatus.Alert;
                    }
                }

                nOra.Name = "'" + _ws.Name + "'!" + rngCheck.Columns[i].ToString();

                if (nOra.Nodes.Count > 0)
                {
                    nData.Nodes.Add(nOra);
                }

                string value = errore ? "ERRORE" : attenzione ? "ATTENZ." : "OK";
                _ws.Range[rngCheck.Columns[i].ToString()].Value = value;

                ora = ora < oreGiorno ? ora + 1 : 1;
                if (ora == 1)
                {
                    giorno       = giorno.AddDays(1);
                    oreGiorno    = Date.GetOreGiorno(giorno);
                    suffissoData = Date.GetSuffissoData(giorno);

                    if (nData.Nodes.Count > 0)
                    {
                        n.Nodes.Add(nData);
                    }

                    nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));
                }
            }

            if (nData.Nodes.Count > 0)
            {
                n.Nodes.Add(nData);
            }

            if (n.Nodes.Count > 0)
            {
                return(new CheckOutput(n, status));
            }

            return(new CheckOutput());
        }
Beispiel #2
0
        //18/01/2017 NEW check per Tecnogorgo
        private CheckOutput CheckFunc6()
        {
            Range rngCheck = new Range(_check.Range);

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

            categoriaEntita.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;

            TreeNode n = new TreeNode(categoriaEntita[0]["DesEntita"].ToString());

            n.Name = _check.SiglaEntita;

            CheckOutput.CheckStatus status = CheckOutput.CheckStatus.Ok;

            DateTime giorno    = Workbook.DataAttiva;
            int      oreGiorno = Date.GetOreGiorno(giorno);

            string suffissoData = Date.GetSuffissoData(giorno);
            int    ora          = 1;

            TreeNode nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));

            for (int i = 0; i < rngCheck.ColOffset; i++)
            {
                //caricamento dati
                decimal dispPMax         = GetDecimal(_check.SiglaEntita, "DISPONIBILITA_PMAX_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                decimal dispPMin         = GetDecimal(_check.SiglaEntita, "DISPONIBILITA_PMIN_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                decimal consultivoUltimo = GetDecimal(_check.SiglaEntita, "TEMP_PROG1", suffissoData, Date.GetSuffissoOra(ora));
                decimal dispPMAXUltimo   = GetDecimal(_check.SiglaEntita, "TEMP_PROG2", suffissoData, Date.GetSuffissoOra(ora));
                decimal ausiliari        = GetDecimal(_check.SiglaEntita, "AUSILIARI_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMax             = GetDecimal(_check.SiglaEntita, "PMAX", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMin             = GetDecimal(_check.SiglaEntita, "PMIN", suffissoData, Date.GetSuffissoOra(ora));
                //fine caricameto dati

                TreeNode nOra = new TreeNode("Ora " + ora);

                bool errore     = false;
                bool attenzione = false;

                //controlli
                if (Math.Max(1, (dispPMAXUltimo - ausiliari) * 0.25m) < Math.Abs(Math.Max(0, (dispPMAXUltimo - ausiliari) -
                                                                                          //04/02/2017 ENH: modifica specifiche
                                                                                          pMax)))
                {
                    nOra.Nodes.Add("Programma molto diverso dalla disponibilità");
                    //04/02/2017 ENH: modifica specifiche
                    attenzione |= true;
                }
                if (dispPMax != dispPMAXUltimo)
                {
                    nOra.Nodes.Add("Variazione di disponibilità");
                    attenzione |= true;
                }
                if (pMax > dispPMax)
                {
                    nOra.Nodes.Add("PMax > disponibilità PMax");
                    errore |= true;
                }
                if (pMin < dispPMin)
                {
                    nOra.Nodes.Add("PMin < disponibilità PMin");
                    errore |= true;
                }
                //fine controlli

                if (errore)
                {
                    ErrorStyle(ref nOra);
                    status = CheckOutput.CheckStatus.Error;
                }
                else if (attenzione)
                {
                    AlertStyle(ref nOra);
                    if (status != CheckOutput.CheckStatus.Error)
                    {
                        status = CheckOutput.CheckStatus.Alert;
                    }
                }

                nOra.Name = "'" + _ws.Name + "'!" + rngCheck.Columns[i].ToString();

                if (nOra.Nodes.Count > 0)
                {
                    nData.Nodes.Add(nOra);
                }

                string value = errore ? "ERRORE" : attenzione ? "ATTENZ." : "OK";
                _ws.Range[rngCheck.Columns[i].ToString()].Value = value;

                ora = ora < oreGiorno ? ora + 1 : 1;
                if (ora == 1)
                {
                    giorno       = giorno.AddDays(1);
                    oreGiorno    = Date.GetOreGiorno(giorno);
                    suffissoData = Date.GetSuffissoData(giorno);

                    if (nData.Nodes.Count > 0)
                    {
                        n.Nodes.Add(nData);
                    }

                    nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));
                }
            }

            if (nData.Nodes.Count > 0)
            {
                n.Nodes.Add(nData);
            }

            if (n.Nodes.Count > 0)
            {
                return(new CheckOutput(n, status));
            }

            return(new CheckOutput());
        }
Beispiel #3
0
        private CheckOutput CheckFunc3()
        {
            Range rngCheck = new Range(_check.Range);

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

            categoriaEntita.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;

            TreeNode n = new TreeNode(categoriaEntita[0]["DesEntita"].ToString());

            n.Name = _check.SiglaEntita;

            CheckOutput.CheckStatus status = CheckOutput.CheckStatus.Ok;

            DateTime giorno    = Workbook.DataAttiva;
            int      oreGiorno = Date.GetOreGiorno(giorno);

            string suffissoData = Date.GetSuffissoData(giorno);
            int    ora          = 1;

            TreeNode nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));

            for (int i = 0; i < rngCheck.ColOffset; i++)
            {
                //caricamento dati
                decimal dispPMaxCC = GetDecimal("GE_GRE1", "DISPONIBILITA_PMAX_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                decimal dispPMinCC = GetDecimal("GE_GRE1", "DISPONIBILITA_PMIN_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMaxCC     = GetDecimal("GE_GRE1", "PMAX", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMinCC     = GetDecimal("GE_GRE1", "PMIN", suffissoData, Date.GetSuffissoOra(ora));
                decimal dispPMaxTV = GetDecimal("GE_GRE1", "DISPONIBILITA_PMAX_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                decimal dispPMinTV = GetDecimal("GE_GRE1", "DISPONIBILITA_PMIN_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMaxTV     = GetDecimal("GE_GRE1", "PMAX", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMinTV     = GetDecimal("GE_GRE1", "PMIN", suffissoData, Date.GetSuffissoOra(ora));
                //fine caricameto dati

                TreeNode nOra = new TreeNode("Ora " + ora);

                bool errore     = false;
                bool attenzione = false;

                //controlli
                if (pMaxCC + pMaxTV > dispPMaxCC + dispPMaxTV)
                {
                    nOra.Nodes.Add("PMax > disponibilità PMax");
                    errore |= true;
                }
                if (pMinCC + pMinTV < dispPMinCC + dispPMinTV)
                {
                    nOra.Nodes.Add("PMin < disponibilità PMin");
                    errore |= true;
                }
                //fine controlli

                if (errore)
                {
                    ErrorStyle(ref nOra);
                    status = CheckOutput.CheckStatus.Error;
                }
                else if (attenzione)
                {
                    AlertStyle(ref nOra);
                    if (status != CheckOutput.CheckStatus.Error)
                    {
                        status = CheckOutput.CheckStatus.Alert;
                    }
                }

                nOra.Name = "'" + _ws.Name + "'!" + rngCheck.Columns[i].ToString();

                if (nOra.Nodes.Count > 0)
                {
                    nData.Nodes.Add(nOra);
                }

                string value = errore ? "ERRORE" : attenzione ? "ATTENZ." : "OK";
                _ws.Range[rngCheck.Columns[i].ToString()].Value = value;

                ora = ora < oreGiorno ? ora + 1 : 1;
                if (ora == 1)
                {
                    giorno       = giorno.AddDays(1);
                    oreGiorno    = Date.GetOreGiorno(giorno);
                    suffissoData = Date.GetSuffissoData(giorno);

                    if (nData.Nodes.Count > 0)
                    {
                        n.Nodes.Add(nData);
                    }

                    nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));
                }
            }

            if (nData.Nodes.Count > 0)
            {
                n.Nodes.Add(nData);
            }

            if (n.Nodes.Count > 0)
            {
                return(new CheckOutput(n, status));
            }

            return(new CheckOutput());
        }
Beispiel #4
0
        private CheckOutput CheckFunc4()
        {
            Range rngCheck = new Range(_check.Range);

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

            categoriaEntita.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;

            TreeNode n = new TreeNode(categoriaEntita[0]["DesEntita"].ToString());

            n.Name = _check.SiglaEntita;

            CheckOutput.CheckStatus status = CheckOutput.CheckStatus.Ok;

            DateTime giorno    = Workbook.DataAttiva;
            int      oreGiorno = Date.GetOreGiorno(giorno);

            string suffissoData = Date.GetSuffissoData(giorno);
            int    ora          = 1;

            TreeNode nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));

            for (int i = 0; i < rngCheck.ColOffset; i++)
            {
                //caricamento dati
                object temperatura = GetObject(_check.SiglaEntita, "TEMPERATURA", suffissoData, Date.GetSuffissoOra(ora));
                object pressione   = GetObject(_check.SiglaEntita, "PRESSIONE", suffissoData, Date.GetSuffissoOra(ora));
                object umidita     = GetObject(_check.SiglaEntita, "UMIDITA", suffissoData, Date.GetSuffissoOra(ora));
                string unitComm    = GetString(_check.SiglaEntita, "UNIT_COMM", suffissoData, Date.GetSuffissoOra(ora));
                object rampa       = GetObject(_check.SiglaEntita, "RAMPA", suffissoData, Date.GetSuffissoOra(ora));
                //fine caricameto dati

                TreeNode nOra = new TreeNode("Ora " + ora);

                bool errore     = false;
                bool attenzione = false;

                //controlli
                if (temperatura == null)
                {
                    nOra.Nodes.Add("Temperatura assente");
                    errore |= true;
                }
                if (temperatura != null && (double)temperatura < -20)
                {
                    nOra.Nodes.Add("Temperatura < soglia minima");
                    errore |= true;
                }
                if (temperatura != null && (double)temperatura > 45)
                {
                    nOra.Nodes.Add("Temperatura > soglia massima");
                    errore |= true;
                }
                if (pressione == null)
                {
                    nOra.Nodes.Add("Pressione assente");
                    errore |= true;
                }
                if (pressione != null && (double)pressione < 850)
                {
                    nOra.Nodes.Add("Pressione < soglia minima");
                    errore |= true;
                }
                if (pressione != null && (double)pressione > 1100)
                {
                    nOra.Nodes.Add("Pressione > soglia massima");
                    errore |= true;
                }
                if (umidita == null)
                {
                    nOra.Nodes.Add("umidita");
                    errore |= true;
                }
                if (umidita != null && (double)umidita < 5)
                {
                    nOra.Nodes.Add("Umidità < soglia minima");
                    errore |= true;
                }
                if (umidita != null && (double)umidita > 100)
                {
                    nOra.Nodes.Add("Umidità > soglia massima");
                    errore |= true;
                }
                if (unitComm.Equals("rav") && rampa == null)
                {
                    nOra.Nodes.Add("Con assetto rav è necessario inserire il valore di potenza di rampa");
                    errore |= true;
                }
                //fine controlli

                if (errore)
                {
                    ErrorStyle(ref nOra);
                    status = CheckOutput.CheckStatus.Error;
                }
                else if (attenzione)
                {
                    AlertStyle(ref nOra);
                    if (status != CheckOutput.CheckStatus.Error)
                    {
                        status = CheckOutput.CheckStatus.Alert;
                    }
                }

                nOra.Name = "'" + _ws.Name + "'!" + rngCheck.Columns[i].ToString();

                if (nOra.Nodes.Count > 0)
                {
                    nData.Nodes.Add(nOra);
                }

                string value = errore ? "ERRORE" : attenzione ? "ATTENZ." : "OK";
                _ws.Range[rngCheck.Columns[i].ToString()].Value = value;

                ora = ora < oreGiorno ? ora + 1 : 1;
                if (ora == 1)
                {
                    giorno       = giorno.AddDays(1);
                    oreGiorno    = Date.GetOreGiorno(giorno);
                    suffissoData = Date.GetSuffissoData(giorno);

                    if (nData.Nodes.Count > 0)
                    {
                        n.Nodes.Add(nData);
                    }

                    nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));
                }
            }

            if (nData.Nodes.Count > 0)
            {
                n.Nodes.Add(nData);
            }

            if (n.Nodes.Count > 0)
            {
                return(new CheckOutput(n, status));
            }

            return(new CheckOutput());
        }
Beispiel #5
0
        private CheckOutput CheckFunc1()
        {
            Range rngCheck = new Range(_check.Range);

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

            categoriaEntita.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;

            TreeNode n = new TreeNode(categoriaEntita[0]["DesEntita"].ToString());

            n.Name = _check.SiglaEntita;

            CheckOutput.CheckStatus status = CheckOutput.CheckStatus.Ok;

            System.DateTime giorno    = Workbook.DataAttiva;
            int             oreGiorno = Date.GetOreGiorno(giorno);

            string suffissoData = Date.GetSuffissoData(giorno);
            int    ora          = 1;

            TreeNode nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));

            for (int i = 0; i < rngCheck.ColOffset; i++)
            {
                //caricamento dati
                decimal programmaQ1_MT2R    = GetDecimal("UP_MT2R", "PROGRAMMAQ1_" + Workbook.Mercato, suffissoData, Date.GetSuffissoOra(ora));
                decimal programmaQ2_MT2R    = GetDecimal("UP_MT2R", "PROGRAMMAQ2_" + Workbook.Mercato, suffissoData, Date.GetSuffissoOra(ora));
                decimal programmaQ3_MT2R    = GetDecimal("UP_MT2R", "PROGRAMMAQ3_" + Workbook.Mercato, suffissoData, Date.GetSuffissoOra(ora));
                decimal programmaQ4_MT2R    = GetDecimal("UP_MT2R", "PROGRAMMAQ4_" + Workbook.Mercato, suffissoData, Date.GetSuffissoOra(ora));
                decimal psMinAccettata_MT2R = GetDecimal("UP_MT2R", "PSMIN_ACCETTATA", suffissoData, Date.GetSuffissoOra(ora));

                decimal programmaQ1_MT3    = GetDecimal("UP_MT3", "PROGRAMMAQ1_" + Workbook.Mercato, suffissoData, Date.GetSuffissoOra(ora));
                decimal programmaQ2_MT3    = GetDecimal("UP_MT3", "PROGRAMMAQ2_" + Workbook.Mercato, suffissoData, Date.GetSuffissoOra(ora));
                decimal programmaQ3_MT3    = GetDecimal("UP_MT3", "PROGRAMMAQ3_" + Workbook.Mercato, suffissoData, Date.GetSuffissoOra(ora));
                decimal programmaQ4_MT3    = GetDecimal("UP_MT3", "PROGRAMMAQ4_" + Workbook.Mercato, suffissoData, Date.GetSuffissoOra(ora));
                decimal psMinAccettata_MT3 = GetDecimal("UP_MT3", "PSMIN_ACCETTATA", suffissoData, Date.GetSuffissoOra(ora));
                //fine caricameto dati

                TreeNode nOra = new TreeNode("Ora " + ora);

                bool errore     = false;
                bool attenzione = false;

                //controlli
                if (programmaQ1_MT2R > 0 && programmaQ1_MT2R < psMinAccettata_MT2R)
                {
                    nOra.Nodes.Add("Programma < PMin");
                    attenzione |= true;
                }
                if (programmaQ2_MT2R > 0 && programmaQ2_MT2R < psMinAccettata_MT2R)
                {
                    nOra.Nodes.Add("Programma < PMin");
                    attenzione |= true;
                }
                if (programmaQ3_MT2R > 0 && programmaQ3_MT2R < psMinAccettata_MT2R)
                {
                    nOra.Nodes.Add("Programma < PMin");
                    attenzione |= true;
                }
                if (programmaQ4_MT2R > 0 && programmaQ4_MT2R < psMinAccettata_MT2R)
                {
                    nOra.Nodes.Add("Programma < PMin");
                    attenzione |= true;
                }
                if (programmaQ1_MT3 > 0 && programmaQ1_MT3 < psMinAccettata_MT3)
                {
                    nOra.Nodes.Add("Programma < PMin");
                    attenzione |= true;
                }
                if (programmaQ2_MT3 > 0 && programmaQ2_MT3 < psMinAccettata_MT3)
                {
                    nOra.Nodes.Add("Programma < PMin");
                    attenzione |= true;
                }
                if (programmaQ3_MT3 > 0 && programmaQ3_MT3 < psMinAccettata_MT3)
                {
                    nOra.Nodes.Add("Programma < PMin");
                    attenzione |= true;
                }
                if (programmaQ4_MT3 > 0 && programmaQ4_MT3 < psMinAccettata_MT3)
                {
                    nOra.Nodes.Add("Programma < PMin");
                    attenzione |= true;
                }
                //fine controlli

                if (errore)
                {
                    ErrorStyle(ref nOra);
                    status = CheckOutput.CheckStatus.Error;
                }
                else if (attenzione)
                {
                    AlertStyle(ref nOra);
                    if (status != CheckOutput.CheckStatus.Error)
                    {
                        status = CheckOutput.CheckStatus.Alert;
                    }
                }

                nOra.Name = "'" + _ws.Name + "'!" + rngCheck.Columns[i].ToString();

                if (nOra.Nodes.Count > 0)
                {
                    nData.Nodes.Add(nOra);
                }

                string value = errore ? "ERRORE" : attenzione ? "ATTENZ." : "OK";
                _ws.Range[rngCheck.Columns[i].ToString()].Value = value;

                ora = ora < oreGiorno ? ora + 1 : 1;
                if (ora == 1)
                {
                    giorno       = giorno.AddDays(1);
                    oreGiorno    = Date.GetOreGiorno(giorno);
                    suffissoData = Date.GetSuffissoData(giorno);

                    if (nData.Nodes.Count > 0)
                    {
                        n.Nodes.Add(nData);
                    }

                    nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));
                }
            }

            if (nData.Nodes.Count > 0)
            {
                n.Nodes.Add(nData);
            }

            if (n.Nodes.Count > 0)
            {
                return(new CheckOutput(n, status));
            }

            return(new CheckOutput());
        }
Beispiel #6
0
        private CheckOutput CheckFunc1()
        {
            Range rngCheck = new Range(_check.Range);

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

            categoriaEntita.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;

            TreeNode n = new TreeNode(categoriaEntita[0]["DesEntita"].ToString());

            n.Name = _check.SiglaEntita;

            CheckOutput.CheckStatus status = CheckOutput.CheckStatus.Ok;

            DateTime giorno    = Workbook.DataAttiva;
            int      oreGiorno = Date.GetOreGiorno(giorno);

            string suffissoData = Date.GetSuffissoData(giorno);
            int    ora          = 1;

            TreeNode nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));

            for (int i = 0; i < rngCheck.ColOffset; i++)
            {
                //caricamento dati
                object  temperaturaMTX     = GetObject("CE_MTX", "TEMPERATURA", suffissoData, Date.GetSuffissoOra(ora));
                object  temperaturaTTX     = GetObject("CE_TTX", "TEMPERATURA", suffissoData, Date.GetSuffissoOra(ora));
                object  pressioneMTX       = GetObject("CE_MTX", "PRESSIONE", suffissoData, Date.GetSuffissoOra(ora));
                object  pressioneTTX       = GetObject("CE_TTX", "PRESSIONE", suffissoData, Date.GetSuffissoOra(ora));
                object  caricoTermico      = GetObject("CT_TORINO", "CARICO_TERMICO_PREVISIONE", suffissoData, Date.GetSuffissoOra(ora));
                object  prezzoZonale       = GetObject("GRUPPO_TORINO", "PREV_PREZZO", suffissoData, Date.GetSuffissoOra(ora));
                object  portataCanale      = GetObject("CE_MTX", "PREV_PORTATA", suffissoData, Date.GetSuffissoOra(ora));
                object  gruppoFrigo        = GetObject("CE_TTX", "GRUPPO_FRIGO", suffissoData, Date.GetSuffissoOra(ora));
                string  unitCommMT2R       = GetString("UP_MT2R", "UNIT_COMM", suffissoData, Date.GetSuffissoOra(ora));
                string  unitCommMT3        = GetString("UP_MT3", "UNIT_COMM", suffissoData, Date.GetSuffissoOra(ora));
                string  unitCommTN1        = GetString("UP_TN1", "UNIT_COMM", suffissoData, Date.GetSuffissoOra(ora));
                decimal dispCalorePMaxMT2R = GetDecimal("UP_MT2R", "DISPONIBILITA_CALORE_PMAX", suffissoData, Date.GetSuffissoOra(ora));
                decimal dispCalorePMaxMT3  = GetDecimal("UP_MT3", "DISPONIBILITA_CALORE_PMAX", suffissoData, Date.GetSuffissoOra(ora));
                decimal dispCalorePMaxTN1  = GetDecimal("UP_TN1", "DISPONIBILITA_CALORE_PMAX", suffissoData, Date.GetSuffissoOra(ora));
                decimal dispCalorePMinMT2R = GetDecimal("UP_MT2R", "DISPONIBILITA_CALORE_PMIN", suffissoData, Date.GetSuffissoOra(ora));
                decimal dispCalorePMinMT3  = GetDecimal("UP_MT3", "DISPONIBILITA_CALORE_PMIN", suffissoData, Date.GetSuffissoOra(ora));
                decimal dispCalorePMinTN1  = GetDecimal("UP_TN1", "DISPONIBILITA_CALORE_PMIN", suffissoData, Date.GetSuffissoOra(ora));
                object  rampaMT2R          = GetObject("UP_MT2R", "RAMPA", suffissoData, Date.GetSuffissoOra(ora));
                object  rampaMT3           = GetObject("UP_MT3", "RAMPA", suffissoData, Date.GetSuffissoOra(ora));
                object  rampaTN1           = GetObject("UP_TN1", "RAMPA", suffissoData, Date.GetSuffissoOra(ora));
                decimal costoMT2R          = GetDecimal("UP_MT2R", "COSTO", suffissoData, Date.GetSuffissoOra(ora));
                decimal costoMT3           = GetDecimal("UP_MT3", "COSTO", suffissoData, Date.GetSuffissoOra(ora));
                decimal costoTN1           = GetDecimal("UP_TN1", "COSTO", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMinMGPMT2R        = GetDecimal("UP_MT2R", "PMIN", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMaxMGPMT2R        = GetDecimal("UP_MT2R", "PMAX", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMinTernaMT2R      = GetDecimal("UP_MT2R", "PMIN_TERNA_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMaxTernaMT2R      = GetDecimal("UP_MT2R", "PMAX_TERNA_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMinMGPMT3         = GetDecimal("UP_MT3", "PMIN", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMaxMGPMT3         = GetDecimal("UP_MT3", "PMAX", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMinTernaMT3       = GetDecimal("UP_MT3", "PMIN_TERNA_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMaxTernaMT3       = GetDecimal("UP_MT3", "PMAX_TERNA_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMinMGPTN1         = GetDecimal("UP_TN1", "PMIN", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMaxMGPTN1         = GetDecimal("UP_TN1", "PMAX", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMinTernaTN1       = GetDecimal("UP_TN1", "PMIN_TERNA_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                decimal pMaxTernaTN1       = GetDecimal("UP_TN1", "PMAX_TERNA_ASSETTO1", suffissoData, Date.GetSuffissoOra(ora));
                //fine caricameto dati

                TreeNode nOra = new TreeNode("Ora " + ora);

                bool errore     = false;
                bool attenzione = false;

                //controlli
                if (temperaturaMTX == null)
                {
                    nOra.Nodes.Add("Temperatura Moncalieri assente");
                    errore |= true;
                }
                if (temperaturaMTX != null && (double)temperaturaMTX < -20)
                {
                    nOra.Nodes.Add("Temperatura Moncalieri < soglia minima");
                    errore |= true;
                }
                if (temperaturaMTX != null && (double)temperaturaMTX > 45)
                {
                    nOra.Nodes.Add("Temperatura Moncalieri > soglia massima");
                    errore |= true;
                }
                if (temperaturaTTX == null)
                {
                    nOra.Nodes.Add("Temperatura Torino Nord assente");
                    errore |= true;
                }
                if (temperaturaTTX != null && (double)temperaturaTTX < -20)
                {
                    nOra.Nodes.Add("Temperatura Torino Nord < soglia minima");
                    errore |= true;
                }
                if (temperaturaTTX != null && (double)temperaturaTTX > 45)
                {
                    nOra.Nodes.Add("Temperatura Torino Nord > soglia massima");
                    errore |= true;
                }
                if (pressioneMTX == null)
                {
                    nOra.Nodes.Add("Pressione Moncalieri assente");
                    errore |= true;
                }
                if (pressioneMTX != null && (double)pressioneMTX < 850)
                {
                    nOra.Nodes.Add("Pressione Moncalieri < soglia minima");
                    errore |= true;
                }
                if (pressioneMTX != null && (double)pressioneMTX > 1100)
                {
                    nOra.Nodes.Add("Pressione Moncalieri > soglia massima");
                    errore |= true;
                }
                if (pressioneTTX == null)
                {
                    nOra.Nodes.Add("Pressione Torino Nord assente");
                    errore |= true;
                }
                if (pressioneTTX != null && (double)pressioneTTX < 850)
                {
                    nOra.Nodes.Add("Pressione Torino Nord < soglia minima");
                    errore |= true;
                }
                if (pressioneTTX != null && (double)pressioneTTX > 1100)
                {
                    nOra.Nodes.Add("Pressione Torino Nord > soglia massima");
                    errore |= true;
                }
                if (caricoTermico == null)
                {
                    nOra.Nodes.Add("Carico termico assente");
                    errore |= true;
                }
                if (caricoTermico != null && (double)caricoTermico < 10)
                {
                    nOra.Nodes.Add("Carico termico < soglia minima");
                    errore |= true;
                }
                if (caricoTermico != null && (double)caricoTermico > 2000)
                {
                    nOra.Nodes.Add("Carico termico > soglia massima");
                    errore |= true;
                }
                if (prezzoZonale == null)
                {
                    nOra.Nodes.Add("Prezzo zonale assente");
                    errore |= true;
                }
                if (prezzoZonale != null && (double)prezzoZonale < 0)
                {
                    nOra.Nodes.Add("Prezzo zonale < soglia minima");
                    errore |= true;
                }
                if (prezzoZonale != null && (double)prezzoZonale > 500)
                {
                    nOra.Nodes.Add("Prezzo zonale > soglia massima");
                    errore |= true;
                }
                if (portataCanale == null)
                {
                    nOra.Nodes.Add("Portata canale assente");
                    errore |= true;
                }
                if (portataCanale != null && (
                        ((double)portataCanale < 7 && (unitCommMT2R.Equals("off") || unitCommMT2R.Equals("m") || unitCommMT3.Equals("off") || unitCommMT3.Equals("m"))) ||
                        ((double)portataCanale < 14 && ((unitCommMT2R.Equals("off") || unitCommMT2R.Equals("m")) && (unitCommMT3.Equals("off") || unitCommMT3.Equals("m")))) ||
                        ((double)portataCanale < 36 && unitCommMT2R.Equals("rav") && unitCommMT3.Equals("rav")) ||
                        ((double)portataCanale < 25 && ((unitCommMT2R.Equals("rav") && unitCommMT3.Equals("m")) || (unitCommMT3.Equals("m") && unitCommMT3.Equals("rav")))) ||
                        ((double)portataCanale < 18 && ((unitCommMT2R.Equals("rav") && (unitCommMT3.Equals("off") || unitCommMT3.Equals("ind"))) || ((unitCommMT2R.Equals("off") || unitCommMT2R.Equals("ind")) && unitCommMT3.Equals("rav"))))))
                {
                    nOra.Nodes.Add("Portata canale < soglia minima");
                    errore |= true;
                }
                if (portataCanale != null && (double)portataCanale > 90)
                {
                    nOra.Nodes.Add("Portata canale > soglia massima");
                    errore |= true;
                }
                if (gruppoFrigo == null)
                {
                    nOra.Nodes.Add("Numero gruppi frigo assente");
                    errore |= true;
                }
                if (gruppoFrigo != null && (double)gruppoFrigo < 0)
                {
                    nOra.Nodes.Add("Numero gruppi frigo < soglia minima");
                    errore |= true;
                }
                if (gruppoFrigo != null && (double)gruppoFrigo > 6)
                {
                    nOra.Nodes.Add("Numero gruppi frigo > soglia massima");
                    errore |= true;
                }
                if (dispCalorePMinMT2R > 0 && (unitCommMT2R == "ind" || unitCommMT2R == "off"))
                {
                    nOra.Nodes.Add("MT2R : disponibilità minima calore > 0");
                    errore |= true;
                }
                if (dispCalorePMinMT3 > 0 && (unitCommMT3 == "ind" || unitCommMT3 == "off"))
                {
                    nOra.Nodes.Add("MT3 : disponibilità minima calore > 0");
                    errore |= true;
                }
                if (dispCalorePMinTN1 > 0 && (unitCommTN1 == "ind" || unitCommTN1 == "off"))
                {
                    nOra.Nodes.Add("TN1 : disponibilità minima calore > 0");
                    errore |= true;
                }
                if (dispCalorePMinMT2R > dispCalorePMaxMT2R)
                {
                    nOra.Nodes.Add("MT2R : disponibilità minima calore > disponibilità massima calore");
                    errore |= true;
                }
                if (dispCalorePMinMT3 > dispCalorePMaxMT3)
                {
                    nOra.Nodes.Add("MT3 : disponibilità minima calore > disponibilità massima calore");
                    errore |= true;
                }
                if (dispCalorePMinTN1 > dispCalorePMaxTN1)
                {
                    nOra.Nodes.Add("TN1 : disponibilità minima calore > disponibilità massima calore");
                    errore |= true;
                }
                if (unitCommMT2R.Equals("rav") && rampaMT2R == null)
                {
                    nOra.Nodes.Add("MT2R : Con assetto rav è necessario inserire il valore di potenza di rampa");
                    errore |= true;
                }
                if (unitCommMT3.Equals("rav") && rampaMT3 == null)
                {
                    nOra.Nodes.Add("MT3 : Con assetto rav è necessario inserire il valore di potenza di rampa");
                    errore |= true;
                }
                if (unitCommTN1.Equals("rav") && rampaTN1 == null)
                {
                    nOra.Nodes.Add("TN1 : Con assetto rav è necessario inserire il valore di potenza di rampa");
                    errore |= true;
                }
                if (costoMT2R == 0)
                {
                    nOra.Nodes.Add("MT2R : Costo marginale assente");
                    attenzione |= true;
                }
                if (costoMT3 == 0)
                {
                    nOra.Nodes.Add("MT3 : Costo marginale assente");
                    attenzione |= true;
                }
                if (costoTN1 == 0)
                {
                    nOra.Nodes.Add("TN1 : Costo marginale assente");
                    attenzione |= true;
                }
                if (pMinTernaMT2R > pMinMGPMT2R && !unitCommMT2R.Equals("rav") && !unitCommMT2R.Equals("off"))
                {
                    nOra.Nodes.Add("MT2R : PMin Terna > PMin MGP");
                    errore |= true;
                }
                if (pMaxMGPMT2R > pMaxTernaMT2R)
                {
                    nOra.Nodes.Add("MT2R : PMax MGP > PMax Terna");
                    errore |= true;
                }
                if (pMinTernaMT3 > pMinMGPMT3 && !unitCommMT3.Equals("rav") && !unitCommMT3.Equals("off"))
                {
                    nOra.Nodes.Add("MT3 : PMin Terna > PMin MGP");
                    errore |= true;
                }
                if (pMaxMGPMT3 > pMaxTernaMT3)
                {
                    nOra.Nodes.Add("MT3 : PMax MGP > PMax Terna");
                    errore |= true;
                }
                if (pMinTernaTN1 > pMinMGPTN1 && !unitCommTN1.Equals("rav") && !unitCommTN1.Equals("off"))
                {
                    nOra.Nodes.Add("TN1 : PMin Terna > Pmin MGP");
                    errore |= true;
                }
                if (pMaxMGPTN1 > pMaxTernaTN1)
                {
                    nOra.Nodes.Add("TN1 : PMax MGP > PMax Terna");
                    errore |= true;
                }
                //fine controlli

                if (errore)
                {
                    ErrorStyle(ref nOra);
                    status = CheckOutput.CheckStatus.Error;
                }
                else if (attenzione)
                {
                    AlertStyle(ref nOra);
                    if (status != CheckOutput.CheckStatus.Error)
                    {
                        status = CheckOutput.CheckStatus.Alert;
                    }
                }

                nOra.Name = "'" + _ws.Name + "'!" + rngCheck.Columns[i].ToString();

                if (nOra.Nodes.Count > 0)
                {
                    nData.Nodes.Add(nOra);
                }

                string value = errore ? "ERRORE" : attenzione ? "ATTENZ." : "OK";
                _ws.Range[rngCheck.Columns[i].ToString()].Value = value;

                ora = ora < oreGiorno ? ora + 1 : 1;
                if (ora == 1)
                {
                    giorno       = giorno.AddDays(1);
                    oreGiorno    = Date.GetOreGiorno(giorno);
                    suffissoData = Date.GetSuffissoData(giorno);

                    if (nData.Nodes.Count > 0)
                    {
                        n.Nodes.Add(nData);
                    }

                    nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));
                }
            }


            //for (int i = 1; i <= rngCheck.ColOffset; i++)
            //{
            //    string suffissoData = Date.GetSuffissoData(DataBase.DataAttiva.AddHours(i - 1));
            //    if (data != DataBase.DataAttiva.AddHours(i - 1).ToString("dd-MM-yyyy"))
            //    {
            //        data = DataBase.DataAttiva.AddHours(i - 1).ToString("dd-MM-yyyy");
            //        if(nData.Nodes.Count > 0)
            //            n.Nodes.Add(nData);

            //        nData = new TreeNode(data);
            //    }

            //    int ora = (i - 1) % Date.GetOreGiorno(suffissoData) + 1;
            //}

            if (nData.Nodes.Count > 0)
            {
                n.Nodes.Add(nData);
            }

            if (n.Nodes.Count > 0)
            {
                return(new CheckOutput(n, status));
            }

            return(new CheckOutput());
        }
Beispiel #7
0
        private CheckOutput CheckFunc2()
        {
            Range rngCheck = new Range(_check.Range);

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

            categoriaEntita.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;

            TreeNode n = new TreeNode(categoriaEntita[0]["DesEntita"].ToString());

            n.Name = _check.SiglaEntita;
            TreeNode nData = new TreeNode();
            string   data  = "";

            CheckOutput.CheckStatus status = CheckOutput.CheckStatus.Ok;

            for (int i = 1; i <= rngCheck.ColOffset; i++)
            {
                string suffissoData = Date.GetSuffissoData(DataBase.DataAttiva.AddHours(i - 1));
                if (data != DataBase.DataAttiva.AddHours(i - 1).ToString("dd-MM-yyyy"))
                {
                    data = DataBase.DataAttiva.AddHours(i - 1).ToString("dd-MM-yyyy");
                    if (nData.Nodes.Count > 0)
                    {
                        n.Nodes.Add(nData);
                    }

                    nData = new TreeNode(data);
                }

                int ora = (i - 1) % Date.GetOreGiorno(suffissoData) + 1;

                //caricamento dati
                decimal programmaQ1    = GetDecimal(_check.SiglaEntita, "PROGRAMMAQ1_" + Workbook.Mercato, suffissoData, Date.GetSuffissoOra(ora));
                decimal programmaQ2    = GetDecimal(_check.SiglaEntita, "PROGRAMMAQ2_" + Workbook.Mercato, suffissoData, Date.GetSuffissoOra(ora));
                decimal programmaQ3    = GetDecimal(_check.SiglaEntita, "PROGRAMMAQ3_" + Workbook.Mercato, suffissoData, Date.GetSuffissoOra(ora));
                decimal programmaQ4    = GetDecimal(_check.SiglaEntita, "PROGRAMMAQ4_" + Workbook.Mercato, suffissoData, Date.GetSuffissoOra(ora));
                decimal psMinAccettata = GetDecimal(_check.SiglaEntita, "PSMIN_ACCETTATA", suffissoData, Date.GetSuffissoOra(ora));
                //fine caricameto dati

                TreeNode nOra = new TreeNode("Ora " + ora);

                bool errore     = false;
                bool attenzione = false;

                //controlli
                if (programmaQ1 > 0 && programmaQ1 < psMinAccettata)
                {
                    nOra.Nodes.Add("Programma < PMin");
                    attenzione |= true;
                }
                if (programmaQ2 > 0 && programmaQ2 < psMinAccettata)
                {
                    nOra.Nodes.Add("Programma < PMin");
                    attenzione |= true;
                }
                if (programmaQ3 > 0 && programmaQ3 < psMinAccettata)
                {
                    nOra.Nodes.Add("Programma < PMin");
                    attenzione |= true;
                }
                if (programmaQ4 > 0 && programmaQ4 < psMinAccettata)
                {
                    nOra.Nodes.Add("Programma < PMin");
                    attenzione |= true;
                }
                //fine controlli

                if (errore)
                {
                    ErrorStyle(ref nOra);
                    status = CheckOutput.CheckStatus.Error;
                }
                else if (attenzione)
                {
                    AlertStyle(ref nOra);
                    if (status != CheckOutput.CheckStatus.Error)
                    {
                        status = CheckOutput.CheckStatus.Alert;
                    }
                }

                nOra.Name = "'" + _ws.Name + "'!" + rngCheck.Columns[i - 1].ToString();

                if (nOra.Nodes.Count > 0)
                {
                    nData.Nodes.Add(nOra);
                }

                string value = errore ? "ERRORE" : attenzione ? "ATTENZ." : "OK";
                _ws.Range[rngCheck.Columns[i - 1].ToString()].Value = value;
            }

            if (nData.Nodes.Count > 0)
            {
                n.Nodes.Add(nData);
            }

            if (n.Nodes.Count > 0)
            {
                return(new CheckOutput(n, status));
            }

            return(new CheckOutput());
        }
Beispiel #8
0
        private CheckOutput CheckFunc1()
        {
            Range rngCheck = new Range(_check.Range);

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

            categoriaEntita.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;

            TreeNode n = new TreeNode(categoriaEntita[0]["DesEntita"].ToString());

            n.Name = _check.SiglaEntita;

            CheckOutput.CheckStatus status = CheckOutput.CheckStatus.Ok;

            System.DateTime giorno    = Workbook.DataAttiva;
            int             oreGiorno = Date.GetOreGiorno(giorno);

            string suffissoData = Date.GetSuffissoData(giorno);
            int    ora          = 1;

            TreeNode nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));

            var assettiFasce = Workbook.Repository[DataBase.TAB.ENTITA_INFORMAZIONE].AsEnumerable()
                               .Where(r => r["SiglaEntita"].Equals(_check.SiglaEntita) && r["IdApplicazione"].Equals(Workbook.IdApplicazione))
                               .Where(r => r["SiglaInformazione"].ToString().StartsWith("PSMAX_ASSETTO") && r["Visibile"].Equals("1"))
                               .Select(r => r["SiglaInformazione"].ToString().Replace("PSMAX_", ""));

            for (int i = 0; i < rngCheck.ColOffset; i++)
            {
                //caricamento dati
                object profiloPQNR = GetObject(_check.SiglaEntita, "PQNR_PROFILO", suffissoData, Date.GetSuffissoOra(ora));
                //fine caricameto dati

                TreeNode nOra = new TreeNode("Ora " + ora);

                bool errore     = false;
                bool attenzione = false;

                foreach (var assettoFascia in assettiFasce)
                {
                    //caricamento dati
                    decimal psmax = GetDecimal(_check.SiglaEntita, "PSMAX_CORRETTA_" + assettoFascia, suffissoData, Date.GetSuffissoOra(ora));
                    if (psmax == 0)
                    {
                        psmax = GetDecimal(_check.SiglaEntita, "PSMAX_" + assettoFascia, suffissoData, Date.GetSuffissoOra(ora));
                    }

                    decimal psmaxQ1 = GetDecimal(_check.SiglaEntita, "PSMAXQ1_" + assettoFascia, suffissoData, Date.GetSuffissoOra(ora));
                    decimal psmaxQ2 = GetDecimal(_check.SiglaEntita, "PSMAXQ2_" + assettoFascia, suffissoData, Date.GetSuffissoOra(ora));
                    decimal psmaxQ3 = GetDecimal(_check.SiglaEntita, "PSMAXQ3_" + assettoFascia, suffissoData, Date.GetSuffissoOra(ora));
                    decimal psmaxQ4 = GetDecimal(_check.SiglaEntita, "PSMAXQ4_" + assettoFascia, suffissoData, Date.GetSuffissoOra(ora));


                    decimal psmin = GetDecimal(_check.SiglaEntita, "PSMIN_CORRETTA_" + assettoFascia, suffissoData, Date.GetSuffissoOra(ora));
                    if (psmin == 0)
                    {
                        psmin = GetDecimal(_check.SiglaEntita, "PSMIN_" + assettoFascia, suffissoData, Date.GetSuffissoOra(ora));
                    }

                    decimal psminQ1 = GetDecimal(_check.SiglaEntita, "PSMINQ1_" + assettoFascia, suffissoData, Date.GetSuffissoOra(ora));
                    decimal psminQ2 = GetDecimal(_check.SiglaEntita, "PSMINQ2_" + assettoFascia, suffissoData, Date.GetSuffissoOra(ora));
                    decimal psminQ3 = GetDecimal(_check.SiglaEntita, "PSMINQ3_" + assettoFascia, suffissoData, Date.GetSuffissoOra(ora));
                    decimal psminQ4 = GetDecimal(_check.SiglaEntita, "PSMINQ4_" + assettoFascia, suffissoData, Date.GetSuffissoOra(ora));
                    //fine caricameto dati

                    //controlli
                    if (psmax != psmaxQ1)
                    {
                        nOra.Nodes.Add("PSMAX accettata 0-15 <> PSMAX");
                        attenzione |= true;
                    }
                    if (psmax != psmaxQ2)
                    {
                        nOra.Nodes.Add("PSMAX accettata 15-30 <> PSMAX");
                        attenzione |= true;
                    }
                    if (psmax != psmaxQ3)
                    {
                        nOra.Nodes.Add("PSMAX accettata 30-45 <> PSMAX");
                        attenzione |= true;
                    }
                    if (psmax != psmaxQ4)
                    {
                        nOra.Nodes.Add("PSMAX accettata 45-60 <> PSMAX");
                        attenzione |= true;
                    }
                    /////////////////////////////////////////////////////////////
                    if (psmin != psminQ1)
                    {
                        nOra.Nodes.Add("PSMIN accettata 0-15 <> PSMIN");
                        attenzione |= true;
                    }
                    if (psmin != psminQ2)
                    {
                        nOra.Nodes.Add("PSMIN accettata 15-30 <> PSMIN");
                        attenzione |= true;
                    }
                    if (psmin != psminQ3)
                    {
                        nOra.Nodes.Add("PSMIN accettata 30-45 <> PSMIN");
                        attenzione |= true;
                    }
                    if (psmin != psminQ4)
                    {
                        nOra.Nodes.Add("PSMIN accettata 45-60 <> PSMIN");
                        attenzione |= true;
                    }
                    //fine controlli
                }

                //controlli
                if (profiloPQNR == null)
                {
                    nOra.Nodes.Add("Il profilo PQNR non è selezionato");
                    errore |= true;
                }
                //fine controlli

                if (errore)
                {
                    ErrorStyle(ref nOra);
                    status = CheckOutput.CheckStatus.Error;
                }
                else if (attenzione)
                {
                    AlertStyle(ref nOra);
                    if (status != CheckOutput.CheckStatus.Error)
                    {
                        status = CheckOutput.CheckStatus.Alert;
                    }
                }

                nOra.Name = "'" + _ws.Name + "'!" + rngCheck.Columns[i].ToString();

                if (nOra.Nodes.Count > 0)
                {
                    nData.Nodes.Add(nOra);
                }

                string value = errore ? "ERRORE" : attenzione ? "ATTENZ." : "OK";
                _ws.Range[rngCheck.Columns[i].ToString()].Value = value;

                ora = ora < oreGiorno ? ora + 1 : 1;
                if (ora == 1)
                {
                    giorno       = giorno.AddDays(1);
                    oreGiorno    = Date.GetOreGiorno(giorno);
                    suffissoData = Date.GetSuffissoData(giorno);

                    if (nData.Nodes.Count > 0)
                    {
                        n.Nodes.Add(nData);
                    }

                    nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));
                }
            }

            if (nData.Nodes.Count > 0)
            {
                n.Nodes.Add(nData);
            }

            if (n.Nodes.Count > 0)
            {
                return(new CheckOutput(n, status));
            }

            return(new CheckOutput());
        }
Beispiel #9
0
        private CheckOutput CheckFunc5()
        {
            Range rngCheck = new Range(_check.Range);

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

            categoriaEntita.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;

            TreeNode n = new TreeNode(categoriaEntita[0]["DesEntita"].ToString());

            n.Name = _check.SiglaEntita;

            CheckOutput.CheckStatus status = CheckOutput.CheckStatus.Ok;

            System.DateTime giorno    = Workbook.DataAttiva;
            int             oreGiorno = Date.GetOreGiorno(giorno);

            string suffissoData = Date.GetSuffissoData(giorno);
            int    ora          = 1;

            TreeNode nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));

            DataView entitaParametroD = Workbook.Repository[DataBase.TAB.ENTITA_PARAMETRO].DefaultView;

            entitaParametroD.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND SiglaParametro = 'LIMITE_PMAX' AND DataIV <= '" + Workbook.DataAttiva.ToString("yyyyMMdd") + "01' AND DataFV >= '" + Workbook.DataAttiva.ToString("yyyyMMdd") + "25' AND IdApplicazione = " + Workbook.IdApplicazione;
            decimal limitePmax = decimal.MaxValue;

            if (entitaParametroD.Count > 0)
            {
                limitePmax = decimal.Parse(entitaParametroD[0]["Valore"].ToString());
            }

            entitaParametroD.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND SiglaParametro = 'LIMITE_PMIN' AND DataIV <= '" + Workbook.DataAttiva.ToString("yyyyMMdd") + "01' AND DataFV >= '" + Workbook.DataAttiva.ToString("yyyyMMdd") + "25' AND IdApplicazione = " + Workbook.IdApplicazione;
            decimal limitePmin = decimal.MinValue;

            if (entitaParametroD.Count > 0)
            {
                limitePmin = decimal.Parse(entitaParametroD[0]["Valore"].ToString());
            }

            for (int i = 0; i < rngCheck.ColOffset; i++)
            {
                decimal eOfferta1 = GetDecimal(_check.SiglaEntita, "OFFERTA_MGP_E1", suffissoData, Date.GetSuffissoOra(ora));
                decimal eOfferta2 = GetDecimal(_check.SiglaEntita, "OFFERTA_MGP_E2", suffissoData, Date.GetSuffissoOra(ora));
                decimal eOfferta3 = GetDecimal(_check.SiglaEntita, "OFFERTA_MGP_E3", suffissoData, Date.GetSuffissoOra(ora));
                decimal eOfferta4 = GetDecimal(_check.SiglaEntita, "OFFERTA_MGP_E4", suffissoData, Date.GetSuffissoOra(ora));
                decimal pOfferta1 = GetDecimal(_check.SiglaEntita, "OFFERTA_MGP_P1", suffissoData, Date.GetSuffissoOra(ora));
                decimal pOfferta2 = GetDecimal(_check.SiglaEntita, "OFFERTA_MGP_P2", suffissoData, Date.GetSuffissoOra(ora));
                decimal pOfferta3 = GetDecimal(_check.SiglaEntita, "OFFERTA_MGP_P3", suffissoData, Date.GetSuffissoOra(ora));
                decimal pOfferta4 = GetDecimal(_check.SiglaEntita, "OFFERTA_MGP_P4", suffissoData, Date.GetSuffissoOra(ora));
                decimal pmin      = GetDecimal("GE_GOT2", "PMIN", suffissoData, Date.GetSuffissoOra(ora));
                decimal pmax      = GetDecimal("GE_GOT1", "PMAX", suffissoData, Date.GetSuffissoOra(ora));

                bool errore     = false;
                bool attenzione = false;

                TreeNode nOra = new TreeNode("Ora " + ora);

                if (eOfferta1 + eOfferta3 > pmax)
                {
                    nOra.Nodes.Add("Eofferta vendita > Pmax");
                    errore |= true;
                }
                if (eOfferta2 < pmin)
                {
                    nOra.Nodes.Add("Eofferta acquisto < Pmin");
                    errore |= true;
                }
                if (eOfferta1 == 0 && pOfferta1 != 0)
                {
                    nOra.Nodes.Add("Eofferta1 = 0 e Pofferta1 <> 0");
                    errore |= true;
                }
                if (eOfferta2 == 0 && pOfferta2 != 0)
                {
                    nOra.Nodes.Add("Eofferta2 = 0 e Pofferta2 <> 0");
                    errore |= true;
                }
                if (eOfferta3 == 0 && pOfferta3 != 0)
                {
                    nOra.Nodes.Add("Eofferta3 = 0 e Pofferta3 <> 0");
                    errore |= true;
                }
                if (eOfferta4 == 0 && pOfferta4 != 0)
                {
                    nOra.Nodes.Add("Eofferta4 = 0 e Pofferta4 <> 0");
                    errore |= true;
                }
                if (eOfferta2 != 0 && pOfferta2 == 0)
                {
                    nOra.Nodes.Add("Eofferta2 <> 0 e Pofferta2 = 0");
                    errore |= true;
                }
                if (eOfferta3 != 0 && pOfferta3 == 0)
                {
                    nOra.Nodes.Add("Eofferta3 <> 0 e Pofferta3 = 0");
                    errore |= true;
                }
                if (eOfferta4 != 0 && pOfferta4 == 0)
                {
                    nOra.Nodes.Add("Eofferta4 <> 0 e Pofferta4 = 0");
                    errore |= true;
                }
                if (eOfferta1 + eOfferta3 < pmax)
                {
                    nOra.Nodes.Add("Eofferta vendita < Pmax");
                    attenzione |= true;
                }

                if (errore)
                {
                    ErrorStyle(ref nOra);
                    status = CheckOutput.CheckStatus.Error;
                }
                else if (attenzione)
                {
                    AlertStyle(ref nOra);
                    if (status != CheckOutput.CheckStatus.Error)
                    {
                        status = CheckOutput.CheckStatus.Alert;
                    }
                }

                nOra.Name = "'" + _ws.Name + "'!" + rngCheck.Columns[i].ToString();

                if (nOra.Nodes.Count > 0)
                {
                    nData.Nodes.Add(nOra);
                }

                string value = errore ? "ERRORE" : attenzione ? "ATTENZ." : "OK";
                _ws.Range[rngCheck.Columns[i].ToString()].Value = value;

                ora = ora < oreGiorno ? ora + 1 : 1;
                if (ora == 1)
                {
                    giorno       = giorno.AddDays(1);
                    oreGiorno    = Date.GetOreGiorno(giorno);
                    suffissoData = Date.GetSuffissoData(giorno);

                    if (nData.Nodes.Count > 0)
                    {
                        n.Nodes.Add(nData);
                    }

                    nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));
                }
            }
            if (nData.Nodes.Count > 0)
            {
                n.Nodes.Add(nData);
            }

            if (n.Nodes.Count > 0)
            {
                return(new CheckOutput(n, status));
            }

            return(new CheckOutput());
        }
Beispiel #10
0
        private CheckOutput CheckFunc3()
        {
            Range rngCheck = new Range(_check.Range);

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

            categoriaEntita.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;

            TreeNode n = new TreeNode(categoriaEntita[0]["DesEntita"].ToString());

            n.Name = _check.SiglaEntita;

            CheckOutput.CheckStatus status = CheckOutput.CheckStatus.Ok;

            System.DateTime giorno    = Workbook.DataAttiva;
            int             oreGiorno = Date.GetOreGiorno(giorno);

            string suffissoData = Date.GetSuffissoData(giorno);
            int    ora          = 1;

            TreeNode nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));

            DataView entitaParametroD = Workbook.Repository[DataBase.TAB.ENTITA_PARAMETRO].DefaultView;

            entitaParametroD.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND SiglaParametro = 'LIMITE_PMAX' AND DataIV <= '" + Workbook.DataAttiva.ToString("yyyyMMdd") + "01' AND DataFV >= '" + Workbook.DataAttiva.ToString("yyyyMMdd") + "25' AND IdApplicazione = " + Workbook.IdApplicazione;
            decimal limitePmax = decimal.MaxValue;

            if (entitaParametroD.Count > 0)
            {
                limitePmax = decimal.Parse(entitaParametroD[0]["Valore"].ToString());
            }

            entitaParametroD.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND SiglaParametro = 'LIMITE_PMIN' AND DataIV <= '" + Workbook.DataAttiva.ToString("yyyyMMdd") + "01' AND DataFV >= '" + Workbook.DataAttiva.ToString("yyyyMMdd") + "25' AND IdApplicazione = " + Workbook.IdApplicazione;
            decimal limitePmin = decimal.MinValue;

            if (entitaParametroD.Count > 0)
            {
                limitePmin = decimal.Parse(entitaParametroD[0]["Valore"].ToString());
            }

            for (int i = 0; i < rngCheck.ColOffset; i++)
            {
                decimal eOfferta1 = GetDecimal(_check.SiglaEntita, "OFFERTA_MGP_E1", suffissoData, Date.GetSuffissoOra(ora));
                decimal pce       = GetDecimal(_check.SiglaEntita, "PCE", suffissoData, Date.GetSuffissoOra(ora));
                decimal progrUC   = GetDecimal(_check.SiglaEntita, "PROGR_UC", suffissoData, Date.GetSuffissoOra(ora));

                decimal delta = 0;
                if (_nomiDefiniti.IsDefined(_check.SiglaEntita, "DELTA_PROGR_UC"))
                {
                    delta = GetDecimal(_check.SiglaEntita, "DELTA_PROGR_UC", suffissoData, Date.GetSuffissoOra(ora));
                }

                bool errore     = false;
                bool attenzione = false;

                TreeNode nOra = new TreeNode("Ora " + ora);

                if (eOfferta1 + pce != progrUC)
                {
                    nOra.Nodes.Add("Eofferta + PCE <> Programma");
                    errore |= true;
                }
                if (eOfferta1 + pce > limitePmax)
                {
                    nOra.Nodes.Add("Eofferta + PCE > PLimMax");
                    errore |= true;
                }
                if (eOfferta1 + pce < limitePmin)
                {
                    nOra.Nodes.Add("Eofferta + PCE < PLimMin");
                    errore |= true;
                }
                if (progrUC + delta < pce)
                {
                    nOra.Nodes.Add("PCE > Programma + Delta");
                    attenzione |= true;
                }

                if (errore)
                {
                    ErrorStyle(ref nOra);
                    status = CheckOutput.CheckStatus.Error;
                }
                else if (attenzione)
                {
                    AlertStyle(ref nOra);
                    if (status != CheckOutput.CheckStatus.Error)
                    {
                        status = CheckOutput.CheckStatus.Alert;
                    }
                }

                nOra.Name = "'" + _ws.Name + "'!" + rngCheck.Columns[i].ToString();

                if (nOra.Nodes.Count > 0)
                {
                    nData.Nodes.Add(nOra);
                }

                string value = errore ? "ERRORE" : attenzione ? "ATTENZ." : "OK";
                _ws.Range[rngCheck.Columns[i].ToString()].Value = value;

                ora = ora < oreGiorno ? ora + 1 : 1;
                if (ora == 1)
                {
                    giorno       = giorno.AddDays(1);
                    oreGiorno    = Date.GetOreGiorno(giorno);
                    suffissoData = Date.GetSuffissoData(giorno);

                    if (nData.Nodes.Count > 0)
                    {
                        n.Nodes.Add(nData);
                    }

                    nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));
                }
            }
            if (nData.Nodes.Count > 0)
            {
                n.Nodes.Add(nData);
            }

            if (n.Nodes.Count > 0)
            {
                return(new CheckOutput(n, status));
            }

            return(new CheckOutput());
        }
Beispiel #11
0
        private CheckOutput CheckFunc1()
        {
            Range rngCheck = new Range(_check.Range);

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

            categoriaEntita.RowFilter = "SiglaEntita = '" + _check.SiglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;

            TreeNode n = new TreeNode(categoriaEntita[0]["DesEntita"].ToString());

            n.Name = _check.SiglaEntita;

            CheckOutput.CheckStatus status = CheckOutput.CheckStatus.Ok;

            System.DateTime giorno    = Workbook.DataAttiva;
            int             oreGiorno = Date.GetOreGiorno(giorno);

            string suffissoData = Date.GetSuffissoData(giorno);
            int    ora          = 1;

            TreeNode nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));

            for (int i = 0; i < rngCheck.ColOffset; i++)
            {
                //caricamento dati
                decimal ePPA            = GetDecimal(_check.SiglaEntita, "PEM", suffissoData, Date.GetSuffissoOra(ora));
                decimal ePSMaxAccettata = GetDecimal(_check.SiglaEntita, "PSMAX_ACCETTATA", suffissoData, Date.GetSuffissoOra(ora));
                decimal ePSMinAccettata = GetDecimal(_check.SiglaEntita, "PSMIN_ACCETTATA", suffissoData, Date.GetSuffissoOra(ora));

                decimal offG0V = GetDecimal(_check.SiglaEntita, "OFFERTA_MSD_G0VE", suffissoData, Date.GetSuffissoOra(ora));
                decimal offG0A = GetDecimal(_check.SiglaEntita, "OFFERTA_MSD_G0AE", suffissoData, Date.GetSuffissoOra(ora));
                decimal offG1V = GetDecimal(_check.SiglaEntita, "OFFERTA_MSD_G1VE", suffissoData, Date.GetSuffissoOra(ora));
                decimal offG1A = GetDecimal(_check.SiglaEntita, "OFFERTA_MSD_G1AE", suffissoData, Date.GetSuffissoOra(ora));
                decimal offG2V = GetDecimal(_check.SiglaEntita, "OFFERTA_MSD_G2VE", suffissoData, Date.GetSuffissoOra(ora));
                decimal offG2A = GetDecimal(_check.SiglaEntita, "OFFERTA_MSD_G2AE", suffissoData, Date.GetSuffissoOra(ora));
                decimal offG3V = GetDecimal(_check.SiglaEntita, "OFFERTA_MSD_G3VE", suffissoData, Date.GetSuffissoOra(ora));
                decimal offG3A = GetDecimal(_check.SiglaEntita, "OFFERTA_MSD_G3AE", suffissoData, Date.GetSuffissoOra(ora));
                //fine caricameto dati

                TreeNode nOra = new TreeNode("Ora " + ora);

                bool errore     = false;
                bool attenzione = false;

                //controlli
                if (ePPA > ePSMaxAccettata)
                {
                    nOra.Nodes.Add("Programma di produzione superiore alla PMax Terna");
                    errore |= true;
                }
                if (ePSMaxAccettata < ePPA && ePPA < ePSMinAccettata && ePPA > 0)
                {
                    nOra.Nodes.Add("Programma di produzione non coerente con PMin-PMax Terna");
                    errore |= true;
                }
                if (offG0V < 0 || offG0A < 0 || offG1V < 0 || offG1A < 0 || offG2V < 0 || offG2A < 0 || offG3V < 0 || offG3A < 0)
                {
                    nOra.Nodes.Add("Offerta < 0");
                    errore |= true;
                }
                //fine controlli

                if (errore)
                {
                    ErrorStyle(ref nOra);
                    status = CheckOutput.CheckStatus.Error;
                }
                else if (attenzione)
                {
                    AlertStyle(ref nOra);
                    if (status != CheckOutput.CheckStatus.Error)
                    {
                        status = CheckOutput.CheckStatus.Alert;
                    }
                }

                nOra.Name = "'" + _ws.Name + "'!" + rngCheck.Columns[i].ToString();

                if (nOra.Nodes.Count > 0)
                {
                    nData.Nodes.Add(nOra);
                }

                string value = errore ? "ERRORE" : attenzione ? "ATTENZ." : "OK";
                _ws.Range[rngCheck.Columns[i].ToString()].Value = value;

                ora = ora < oreGiorno ? ora + 1 : 1;
                if (ora == 1)
                {
                    giorno       = giorno.AddDays(1);
                    oreGiorno    = Date.GetOreGiorno(giorno);
                    suffissoData = Date.GetSuffissoData(giorno);

                    if (nData.Nodes.Count > 0)
                    {
                        n.Nodes.Add(nData);
                    }

                    nData = new TreeNode(giorno.ToString("dd-MM-yyyy"));
                }
            }

            if (nData.Nodes.Count > 0)
            {
                n.Nodes.Add(nData);
            }

            if (n.Nodes.Count > 0)
            {
                return(new CheckOutput(n, status));
            }

            return(new CheckOutput());
        }