78 lines
2.4 KiB
C#
78 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace DatenDB
|
|
{
|
|
public class Berechnungen
|
|
{
|
|
private static Meldungen meldung = new Meldungen();
|
|
public Berechnungen()
|
|
{
|
|
}
|
|
|
|
public static double[] GetBewertung(double kndums, int betten, double gesamtumsatz, double variablekosten, double[] kosten, bool istmiete)
|
|
{
|
|
double[] bewertung = new double[5];
|
|
|
|
bewertung[0] = kndums / gesamtumsatz; //UMSATZANTEIL
|
|
bewertung[1] = variablekosten * -1 * bewertung[0] / betten; //KOSTENANTEIL
|
|
bewertung[2] = kndums / betten; //UMSATZ/GAST
|
|
bewertung[3] = bewertung[2] - bewertung[1]; //BEWERTUNG IN EURO
|
|
|
|
if (istmiete) bewertung[4] = bewertung[3] / kosten[2];
|
|
else bewertung[4] = bewertung[3] / kosten[1];
|
|
|
|
return bewertung;
|
|
}
|
|
public static double[] Differenz_berechnen(double zahl1, double zahl2)
|
|
{
|
|
double[] diff = new double[2];
|
|
diff[0] = zahl1 - zahl2; //DIFFERENZ IN EUR
|
|
if (zahl2 != 0) diff[1] = diff[0] / zahl2;
|
|
else diff[1] = 1.00; //DIFFERENZ IN %
|
|
return diff;
|
|
}
|
|
public static double[] Kostensummen(List<Kosten> kostenliste)
|
|
{
|
|
double[] results = new double[4];
|
|
|
|
foreach(Kosten kosten in kostenliste)
|
|
{
|
|
if (kosten.Kategorie == KostenKat.FixLohn) results[0] += (double)kosten.Betrag;
|
|
if (kosten.Kategorie == KostenKat.FixMiete) results[1] += (double)kosten.Betrag;
|
|
if (kosten.Kategorie == KostenKat.Variabel) results[2] += (double)kosten.Betrag;
|
|
if (kosten.Kategorie == KostenKat.Rest) results[3] += (double)kosten.Betrag;
|
|
}
|
|
|
|
for (int i = 0; i < results.Length; i++)
|
|
{
|
|
results[i] = results[i] * -1;
|
|
}
|
|
|
|
return results;
|
|
}
|
|
|
|
public static DateTime GetNextWeekday(int liefertag)
|
|
{
|
|
DateTime today = DateTime.Today;
|
|
DayOfWeek heute = today.DayOfWeek;
|
|
|
|
if ((int)heute == liefertag)
|
|
{
|
|
if(meldung.GetFrage(null, $"Möchtest du HEUTE als Liefertag wählen?", false) == DialogResult.Yes) return today;
|
|
else return today.AddDays(7);
|
|
|
|
}
|
|
int daysUntilLiefertag = ((int)liefertag - (int)heute + 7) % 7;
|
|
|
|
return today.AddDays(daysUntilLiefertag);
|
|
}
|
|
}
|
|
}
|