예제 #1
0
        internal static StemSeries CreateSaldoChangePoints(this BudgetVm aBudgetVm, DateTime aStartDate, DateTime aEndDate)
        {
            StemSeries lSerie = new StemSeries();

            lSerie.Title      = aBudgetVm.Bezeichnung;
            lSerie.XAxisKey   = "X";
            lSerie.YAxisKey   = "Y";
            lSerie.MarkerType = MarkerType.Circle;
            lSerie.Color      = OxyColors.Transparent;
            lSerie.MarkerFill = OxyColors.Black;

            var lBuchungenRelevant = aBudgetVm.Buchungen.OrderBy(aB => aB.Datum).Where(aB => aB.Datum >= aStartDate && aB.Datum <= aEndDate);
            int lSaldo             = aBudgetVm.Buchungen.Where(aB => aB.Datum < aStartDate).Sum(aB => aB.Betrag);

            foreach (var lBuchung in lBuchungenRelevant)
            {
                lSaldo += lBuchung.Betrag;
                DataPoint lPoint = new DataPoint(
                    DateTimeAxis.ToDouble(lBuchung.Datum),
                    Convert.ToDouble(lBuchung.BetragDisplay));

                lSerie.Points.Add(lPoint);
            }

            return(lSerie);
        }
예제 #2
0
        internal static ColumnSeries CreateInExKassoBalken(this BudgetVm aBudgetVm, DateTime aStartDate, DateTime aEndDate, CategoryAxis aCategories)
        {
            ColumnSeries lSerie = new ColumnSeries();

            lSerie.LabelPlacement    = LabelPlacement.Inside;
            lSerie.LabelFormatString = "{0:#,#.00}";
            lSerie.XAxisKey          = "XCat";
            lSerie.YAxisKey          = "Y";

            var lBuchungenRelevant = aBudgetVm.Buchungen.OrderBy(aB => aB.Datum).Where(aB => aB.Datum >= aStartDate && aB.Datum <= aEndDate);

            foreach (var lBuchung in lBuchungenRelevant)
            {
                var lItem = new ColumnItem(Convert.ToDouble(lBuchung.BetragDisplay), aCategories.Labels.Count);

                if (lBuchung.Betrag > 0)
                {
                    // Einzahlung
                    lItem.Color = OxyColors.YellowGreen;
                }
                else
                {
                    // Bezahlung
                    lItem.Color = OxyColors.IndianRed;
                }

                lSerie.Items.Add(lItem);
                aCategories.Labels.Add(MakeBalkenLabel(lBuchung.Bezeichnung, lBuchung.Datum));
            }

            return(lSerie);
        }
        public IEnumerable <BuchungVm> GetByBudget(BudgetVm aBudgetVm)
        {
            List <BuchungVm> lResult = new List <BuchungVm>();

            if (aBudgetVm.Id >= 0)
            {
                foreach (var lRow in this.mDb.Buchung.GetRowsByBudget(aBudgetVm.Id))
                {
                    lResult.Add(new BuchungVm(aBudgetVm, lRow));
                }
            }

            return(lResult);
        }
예제 #4
0
        public IEnumerable <DauerauftragVm> GetByBudget(BudgetVm aBudgetVm)
        {
            List <DauerauftragVm> lResult = new List <DauerauftragVm>();

            if (aBudgetVm.Id >= 0)
            {
                foreach (var lRow in this.mDb.Dauerauftrag.GetRows(aBudgetVm.Id))
                {
                    lResult.Add(new DauerauftragVm(aBudgetVm, lRow));
                }
            }

            return(lResult);
        }
예제 #5
0
        private void EditAndSave(BudgetVm aBudget, string aDialogText)
        {
            var lDlg = new RenameDialog()
            {
                Owner       = Window.GetWindow(this),
                Title       = aDialogText,
                Bezeichnung = aBudget.Bezeichnung
            };

            var lResult = lDlg.ShowDialog();

            if (!lResult.HasValue || !lResult.Value || string.IsNullOrEmpty(lDlg.Bezeichnung))
            {
                return;
            }

            aBudget.Bezeichnung = lDlg.Bezeichnung;
            aBudget.Save(false);
        }
예제 #6
0
        internal void SaveBudget(BudgetVm aBudgetVm)
        {
            if (!aBudgetVm.Validate().IsValid)
            {
                throw new DataException("Es sind noch Validierungsfehler auf dem BudgetVm vorhanden!");
            }

            if (aBudgetVm.Row.Status == DtoStatus.Created)
            {
                // To create
                var lId = mDb.Budget.InsertRow(aBudgetVm.Row);

                // Reload from Database
                var lRow = mDb.Budget.GetSingleRow(lId, false);

                aBudgetVm.Row = lRow;
            }
            else if (aBudgetVm.Row.Status == DtoStatus.Updated)
            {
                // To update
                mDb.Budget.UpdateSingleRow(aBudgetVm.Row);

                // Reload from Database
                aBudgetVm.Row = mDb.Budget.GetSingleRow(aBudgetVm.Row.ID, false);
            }
            else if (aBudgetVm.Row.Status == DtoStatus.Deleted)
            {
                if (aBudgetVm.Id >= 0)
                {
                    // Alle buchungen löschen
                    this.mDb.Buchung.DeleteRowsByBudget(aBudgetVm.Id);
                    // Alle Daueraufträge löschen
                    this.mDb.Dauerauftrag.DeleteRowsByBudget(aBudgetVm.Id);
                    // Budget löschen
                    this.mDb.Budget.DeleteSingleRow(aBudgetVm.Row);

                    return;
                }
            }

            aBudgetVm.SaveDependencies();
        }
예제 #7
0
        //internal static LineSeries CreateSaldoverlaufLine(this BudgetVm aBudgetVm, DateTime aStartDate, DateTime aEndDate, bool aIncludeStartAndEndSaldo)
        //{
        //    LineSeries lSerie = new LineSeries();
        //    lSerie.Title = aBudgetVm.Bezeichnung;
        //    lSerie.XAxisKey = "X";
        //    lSerie.YAxisKey = "Y";

        //    var lBuchungenRelevant = aBudgetVm.Buchungen.OrderBy(aB => aB.Datum).Where(aB => aB.Datum >= aStartDate && aB.Datum <= aEndDate);
        //    int lSaldo = aBudgetVm.Buchungen.Where(aB => aB.Datum < aStartDate).Sum(aB => aB.Betrag);

        //    if (aIncludeStartAndEndSaldo)
        //    {
        //        // Startwert
        //        lSerie.Points.Add(new DataPoint(DateTimeAxis.ToDouble(aStartDate), Convert.ToDouble(MoneyManager.GetFrankenRappen(lSaldo, true))));
        //    }

        //    foreach (var lBuchung in lBuchungenRelevant)
        //    {
        //        lSaldo += lBuchung.Betrag;
        //        DataPoint lPoint = new DataPoint(
        //            DateTimeAxis.ToDouble(lBuchung.Datum),
        //            Convert.ToDouble(MoneyManager.GetFrankenRappen(lSaldo, true)));

        //        lSerie.Points.Add(lPoint);
        //    }


        //    if (aIncludeStartAndEndSaldo)
        //    {
        //        // Endwert
        //        lSerie.Points.Add(new DataPoint(DateTimeAxis.ToDouble(aEndDate), Convert.ToDouble(MoneyManager.GetFrankenRappen(lSaldo, true))));
        //    }

        //    return lSerie;
        //}

        internal static StairStepSeries CreateSaldoChangeStairLine(this BudgetVm aBudgetVm, DateTime aStartDate, DateTime aEndDate, bool aIncludeStartAndEndSaldo)
        {
            StairStepSeries lSerie = new StairStepSeries();

            lSerie.Title      = aBudgetVm.Bezeichnung;
            lSerie.XAxisKey   = "X";
            lSerie.YAxisKey   = "Y";
            lSerie.MarkerType = MarkerType.Circle;

            var lBuchungenRelevant = aBudgetVm.Buchungen.OrderBy(aB => aB.Datum).Where(aB => aB.Datum >= aStartDate && aB.Datum <= aEndDate);
            int lSaldo             = aBudgetVm.Buchungen.Where(aB => aB.Datum < aStartDate).Sum(aB => aB.Betrag);

            if (aIncludeStartAndEndSaldo)
            {
                // Startwert
                lSerie.Points.Add(new DataPoint(DateTimeAxis.ToDouble(aStartDate), Convert.ToDouble(MoneyManager.GetFrankenRappen(lSaldo, true))));
            }

            foreach (var lBuchung in lBuchungenRelevant)
            {
                lSaldo += lBuchung.Betrag;
                DataPoint lPoint = new DataPoint(
                    DateTimeAxis.ToDouble(lBuchung.Datum),
                    Convert.ToDouble(MoneyManager.GetFrankenRappen(lSaldo, true)));

                lSerie.Points.Add(lPoint);
            }

            if (aIncludeStartAndEndSaldo)
            {
                // Endwert
                lSerie.Points.Add(new DataPoint(DateTimeAxis.ToDouble(aEndDate), Convert.ToDouble(MoneyManager.GetFrankenRappen(lSaldo, true))));
            }

            return(lSerie);
        }