private static int Comparison([NotNull] Localnet x, [NotNull] Localnet y)
        {
            if (x.Objektstandort != y.Objektstandort)
            {
                return(string.Compare(x.Objektstandort, y.Objektstandort, StringComparison.Ordinal));
            }

            return(string.Compare(x.TerminString, y.TerminString, StringComparison.Ordinal));
        }
Пример #2
0
        protected override void RunActualProcess()
        {
            // ReSharper disable once StringLiteralTypo
            string      fn    = CombineForRaw("reduced.xlsx");
            ExcelHelper eh    = new ExcelHelper(Services.Logger, MyStage);
            var         arr   = eh.ExtractDataFromExcel2(fn, 1, "A1", "AH476000", out var _);
            var         hdict = new Dictionary <string, int>();

            for (var i = 0; i < arr.GetLength(1) - 1; i++)
            {
                var o = arr[0, i];
                if (o == null)
                {
                    throw new Exception("was null");
                }

                hdict.Add(o.ToString(), i);
            }

            var db = Services.SqlConnectionPreparer.GetDatabaseConnection(Stage.Raw, Constants.PresentSlice);

            db.RecreateTable <Localnet>();
            db.BeginTransaction();
            int negativeIsnCounter = -1000;

            for (var row = 1; row < arr.GetLength(0); row++)
            {
                var a = new Localnet();
                if (arr[row, hdict["Termin"]] == null)
                {
                    continue;
                }

                AssignFields(a, arr, row, hdict, ref negativeIsnCounter);
                db.Save(a);
            }

            db.CompleteTransaction();
            var readVals = db.Fetch <Localnet>();

            foreach (Localnet localnet in readVals)
            {
                if (localnet.ObjektIDGebäude == -2146826246)
                {
                    throw new FlaException("-");
                }

                if (localnet.ObjektIDGebäude == null)
                {
                    throw new FlaException("was null");
                }
            }
        }
Пример #3
0
        // ReSharper disable once FunctionComplexityOverflow
        private static void AssignFields([NotNull] Localnet a,
                                         [ItemNotNull][NotNull] object[,] arr,
                                         int row,
                                         [NotNull] Dictionary <string, int> hdict,
                                         ref int negativeIsnCounter)
        {
            a.Termin       = Helpers.GetDateTime(arr[row, hdict["Termin"]]).Ticks;
            a.TerminString = Helpers.GetDateTime(arr[row, hdict["Termin"]]).ToString(CultureInfo.InvariantCulture);

            a.TerminJahr               = Helpers.GetInt(arr[row, hdict["Termin Jahr"]]);
            a.TerminSemester           = Helpers.GetString(arr[row, hdict["Termin Semester"]]);
            a.TerminQuartal            = Helpers.GetString(arr[row, hdict["Termin Quartal"]]);
            a.Basis                    = Helpers.GetDouble(arr[row, hdict["Basis"]]);
            a.BasisVerbrauch           = Helpers.GetDouble(arr[row, hdict["Basis Verbrauch"]]);
            a.BasisLeistung            = Helpers.GetDouble(arr[row, hdict["Basis Leistung"]]);
            a.BasisBlind               = Helpers.GetDouble(arr[row, hdict["Basis Blind"]]);
            a.Betrag                   = Helpers.GetDouble(arr[row, hdict["Betrag"]]);
            a.MwStBetrag               = Helpers.GetDouble(arr[row, hdict["MwSt-Betrag"]]);
            a.RechposBetraginklMwSt    = Helpers.GetDouble(arr[row, hdict["Rechpos Betrag inkl. MwSt"]]);
            a.Verrechnungstyp          = Helpers.GetString(arr[row, hdict["Verrechnungstyp"]]);
            a.VerrechnungstypArt       = Helpers.GetString(arr[row, hdict["Verrechnungstyp Art"]]);
            a.VerrechnungstypKategorie = Helpers.GetString(arr[row, hdict["Verrechnungstyp Kategorie"]]);
            a.VerrechnungstypMessart   = Helpers.GetString(arr[row, hdict["Verrechnungstyp Messart"]]);
            a.Vertragsart              = Helpers.GetString(arr[row, hdict["Vertragsart"]]);
            a.Gruppe                   = Helpers.GetString(arr[row, hdict["Gruppe"]]);
            a.Ruecklieferung           = Helpers.GetString(arr[row, hdict["Ruecklieferung"]]);
            a.VerrechnungstypEinheit   = Helpers.GetString(arr[row, hdict["Verrechnungstyp Einheit"]]);
            a.MwStSatz                 = Helpers.GetDouble(arr[row, hdict["MwSt Satz"]]);
            a.RechposTage              = Helpers.GetInt(arr[row, hdict["Rechpos Tage"]]);
            a.Tarif                    = Helpers.GetString(arr[row, hdict["Tarif"]]);
            a.Fakturierungsvariante    = Helpers.GetString(arr[row, hdict["Fakturierungsvariante"]]);
            a.VertragspartnerAdresse   = Helpers.GetString(arr[row, hdict["Vertragspartner Adresse"]]);
            a.Objektstandort           = Helpers.GetString(arr[row, hdict["Objektstandort"]]);
            a.Rechnungsart             = Helpers.GetString(arr[row, hdict["Rechnungsart"]]);
            a.VertragId                = Helpers.GetInt(arr[row, hdict["Vertrag-Id"]]);
            a.SubjektId                = Helpers.GetInt(arr[row, hdict["Subjekt-Id"]]);
            a.SammelrechnungId         = Helpers.GetInt(arr[row, hdict["Sammelrechnung-Id"]]);
            a.ObjektIdVertrag          = Helpers.GetInt(arr[row, hdict["Objekt-Id-Vertrag"]]);
            a.Marktprodukt             = Helpers.GetString(arr[row, hdict["Marktprodukt"]]);
            a.StandortID               = Helpers.GetInt(arr[row, hdict["Standort-ID"]]);
            int?objektid = Helpers.GetInt(arr[row, hdict["Objekt-ID Gebäude"]]);

            if (objektid != null)
            {
                a.ObjektIDGebäude = objektid;
            }
            else
            {
                a.ObjektIDGebäude = negativeIsnCounter--;
            }
        }
Пример #4
0
        protected override void RunActualProcess()
        {
            // ReSharper disable once StringLiteralTypo
            var arr   = ExcelHelper.ExtractDataFromExcel(@"U:\SimZukunft\RawDataForMerging\reduced.xlsb", 1, "A1", "AH476000");
            var hdict = new Dictionary <string, int>();

            for (var i = 0; i < arr.GetLength(1) - 1; i++)
            {
                var o = arr[1, i + 1];
                if (o == null)
                {
                    throw new Exception("was null");
                }

                hdict.Add(o.ToString(), i + 1);
            }

            SqlConnection.RecreateTable <Localnet>(Stage.Raw, Constants.PresentSlice);

            var db = SqlConnection.GetDatabaseConnection(Stage.Raw, Constants.PresentSlice).Database;

            db.BeginTransaction();
            for (var row = 2; row < arr.GetLength(0); row++)
            {
                var a = new Localnet();
                if (arr[row, hdict["Termin"]] == null)
                {
                    continue;
                }

                AssignFields(a, arr, row, hdict);
                db.Save(a);
            }

            db.CompleteTransaction();
        }
        private void ProcessVerrechnungstyp([NotNull] Localnet localnet, [NotNull] MonthlyElectricityUsePerStandort meps)
        {
            var processed = false;

            switch (localnet.Verrechnungstyp)
            {
            case "Energie Tagesstrom (HT)":
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet);
                processed = true;
                break;

            case "Energie Nachtstrom (NT)":
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet);
                processed = true;
                break;

            case "Gutschrift Strom Energie":
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet);
                processed = true;
                break;

            case "Nachbelastung Strom Energie":
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet);
                processed = true;
                break;

            case "Rücklieferung Tagesstrom HT":
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet);
                processed = true;
                break;

            case "Rücklieferung Nachtstrom NT":
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet);
                processed = true;
                break;

            case "EVG Tagesstrom (HT)":
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet);
                processed = true;
                break;

            case "EVG Nachtstrom (NT)":
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet);
                processed = true;
                break;

            case "Gutschrift Erdgas":
                break;

            case "Kosten Erdgasbezug":
                break;

            case "Erdgasverbrauch":
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.Gas);
                processed = true;
                break;

            case "CO2-Abgabe":
                break;

            case "Grundpreis Erdgas":
                break;

            case "Grundgebühr Erdgas":
                break;

            case "Leistungsspitze":
                break;

            case "Arbeitspreis":
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.Fernwaerme);
                processed = true;
                break;

            case "Grundpreis Wärme (kW/Mt)":
                break;

            case "Grundpreis Wärme (Zähler/Mt)":
                break;

            case "Grundpreis 1 (kW/Mt)":
                break;

            case "Grundpreis 2 (kW/Mt)":
                break;

            case "Leistung":
                break;

            case "Blindenergie (HT)":
                break;

            case "Blindenergie (NT)":
                break;

            case "Grundpreis Strom":
                break;

            case "Netz Tagesstrom (HT)":
                if (localnet.BasisVerbrauch == null)
                {
                    throw new Exception("Basisverbrauch was null");
                }

                _stromNetzSum += localnet.BasisVerbrauch.Value;
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityNetz);
                break;

            case "Netz Nachtstrom (NT)":
                if (localnet.BasisVerbrauch == null)
                {
                    throw new Exception("Basisverbrauch was null");
                }

                _stromNetzSum += localnet.BasisVerbrauch.Value;
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityNetz);
                break;

            case "Messung und Abrechnung":
                break;

            case "Systemdienstleistungen Swissgrid (SDL)":
                break;

            case "Kostendeckende Einspeisevergütung KEV":
                break;

            case "Abgabe an Gemeinde":
                break;

            case "Gutschrift Strom Netznutzung":
                break;

            case "Bundesabgabe zum Schutz der Gewässer und Fische":
                break;

            case "Netz Rücklieferung Tagesstrom HT":
                break;

            case "Netz Rücklieferung Nachtstrom NT":
                break;

            case "Messung und Abrechung Netzübergabestelle":
                meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.Netzuebergabe);
                break;

            case "EVG Leistung":
                break;

            case "EVG Blindenergie (HT)":
                break;

            case "EVG Blindenergie (NT)":
                break;

            default:
                throw new Exception("unknown verrechnungstyp");
            }

            if (!processed && localnet.BasisVerbrauch > 0 && localnet.Vertragsart != "Netz")
            {
                Info("Verbrauch, but not processed for " + localnet.Verrechnungstyp);
            }
        }