Browse Source

Änderungen vom 03.08.2020

gc-server3 10 months ago
parent
commit
0621a7786b

+ 1 - 1
Control/Tasks/Export.cs

@@ -90,7 +90,7 @@ namespace GCHR.Control.Tasks
 
             var summeSusa = String.Format("{0:c}", _konten.Sum(k => (k.KontoTyp == KontoTypen.SuSa) ? k.Summe : 0.0m));
             var summeOhneFaktor = String.Format("{0:c}", _konten.Sum(k => (k.KontoTyp == KontoTypen.SuSa) ? k.SummeOhneFaktor : 0.0m));
-            var summeBilanz = String.Format("{0:c}", _konten.Sum(k => (k.Kontoart == Config.BilanzKontoart) ? k.Summe : 0.0m));
+            var summeBilanz = String.Format("{0:c}", _konten.Sum(k => (k.Kontoart == Config.BilanzKontoart && k.KontoTyp == KontoTypen.SuSa) ? k.Summe : 0.0m));
 
             Logger.Progress("Export-Summe über alle SuSa-Konten: " + summeSusa);
             Logger.Progress("Export-Summe ohne Faktoren: " + summeOhneFaktor);

+ 1 - 1
Control/Tasks/TaskManager.cs

@@ -97,7 +97,7 @@ namespace GCHR.Control.Tasks
 
         public bool TryRunNextWorker()
         {
-            return (_taskList.Where(aufgabe => aufgabe.TryRun())).Count() > 0;
+            return (_taskList.Where(aufgabe => aufgabe.TryRun())).Any();
         }
         
         public void RegisterAmpeln(Ampel[] ampeln)

+ 11 - 3
Main.xaml.cs

@@ -148,9 +148,17 @@ namespace GCHR
             {
                 if (aktuelleAufgabe.ID == 3 && AmpelManuelleLaden.Done)
                 {
-                    var mkb = new ManuelleKontenBearbeiten(_aufgabenListe.Data.GetManuelleKonten());
-                    mkb.Closed += ManuelleKontenBearbeitenClosed;
-                    mkb.Show();
+                    var manuelleKonten = _aufgabenListe.Data.GetManuelleKonten();
+                    if (manuelleKonten.Count == 0)
+                    {
+                        _aufgabenListe.Data.AufManuelleKontenWarten.Set();
+                    }
+                    else
+                    {
+                        var mkb = new ManuelleKontenBearbeiten(manuelleKonten);
+                        mkb.Closed += ManuelleKontenBearbeitenClosed;
+                        mkb.Show();
+                    }
                 }
 
                 if (aktuelleAufgabe.ID == 8)

+ 18 - 12
Model/Konfiguration.cs

@@ -270,17 +270,6 @@ namespace GCHR.Model
 
         private string QueryAnpassen(string queryStr, Periode aktuellePeriode)
         {
-            var datenbank = _gchrConfig.Einstellungen.Datenbank;
-            if (datenbank == "deop00")
-            {
-                datenbank = "";
-            }
-            if (datenbank.Length > 0 && datenbank.Substring(0, 2) == "de")
-            {
-                datenbank += ".dbo.";
-            }
-            queryStr = Regex.Replace(queryStr, @"\<datenbank\>", datenbank);
-
             queryStr = Regex.Replace(queryStr, @"\<period[e]?\>", aktuellePeriode.ToString());
             queryStr = Regex.Replace(queryStr, @"\<periode_mmyyyy\>", aktuellePeriode.Monat + aktuellePeriode.Jahr);
             queryStr = Regex.Replace(queryStr, @"\<jahresbeginn\>", aktuellePeriode.Jahresbeginn.ToString());
@@ -292,8 +281,25 @@ namespace GCHR.Model
             queryStr = Regex.Replace(queryStr, @"\<department\>", _gchrConfig.Einstellungen.Abfragen.Department);
             queryStr = Regex.Replace(queryStr, @"\<kontonummer\>", _gchrConfig.Einstellungen.Abfragen.Kontonummer);
             queryStr = Regex.Replace(queryStr, @"\<bezeichnung\>", _gchrConfig.Einstellungen.Abfragen.Bezeichnung);
+            
             queryStr = Regex.Replace(queryStr, @"\<filter\>", _gchrConfig.Einstellungen.Abfragen.Filter);
-            return queryStr;
+            
+            var datenbanken = _gchrConfig.Einstellungen.Datenbank.Split(new[] { ';', ',' });
+
+            if (datenbanken[0] == "deop00" || datenbanken[0] == "")
+            {
+                return Regex.Replace(queryStr, @"\<datenbank\>", "");
+            }
+
+            queryStr = queryStr.Replace("ORDER BY 1,4,5;", "");
+            var result = "";
+            foreach (var datenbank in datenbanken)
+            {
+                result += Regex.Replace(queryStr, @"\<datenbank\>", datenbank + ".dbo.");
+                result += "\r\n UNION ALL \r\n";
+            }
+            
+            return result.Substring(0, result.Length - 15) + "ORDER BY 1,4,5;";
         }
 
         internal string HaendlerKontonummerFormatieren(string kontonummer)

+ 23 - 23
Model/Mandant/Kia.cs

@@ -1,6 +1,4 @@
 using System;
-using System.Globalization;
-using System.Linq;
 using System.Text;
 using GCHR.Model.Konto;
 
@@ -8,23 +6,6 @@ namespace GCHR.Model.Mandant
 {
     class Kia : IMandant
     {
-        public string BalanceBody(HaendlerKonto konto)
-        {
-            return (konto.KontoTyp == KontoTypen.ManStat || konto.ZugeordneteKonten.Count == 0) ?
-                KontonummerFormatieren(konto) + ";" + konto.Bezeichnung + ";" + konto.Summe.ToString(CultureInfo.CurrentCulture).Replace(',', '.') :
-                string.Join(Environment.NewLine, (from kto in konto.ZugeordneteKonten
-                          group kto by kto.Kontonummer into g
-                          orderby g.Key
-                          select (konto.Kontonummer + "-" + g.Key) + ";" + g.First().Bezeichnung + ";" + g.Sum(k => k.Summe).ToString(CultureInfo.CurrentCulture).Replace(',', '.')).ToArray());   
-        }
-
-        public string AccountsBody(HaendlerKonto konto)
-        {
-            return KontonummerFormatieren(konto).PadRight(42, ' ') + konto.Bezeichnung;
-        }
-
-
-
         protected Konfiguration Config = Konfiguration.GetInstance();
 
         public bool BalanceDatei
@@ -47,19 +28,36 @@ namespace GCHR.Model.Mandant
         {
             get
             {
-                return string.Format("AA{0};HR Kia;{2}-{1} kum. [in EUR]", Config.HaendlernummerBmCode, Config.AktuellePeriode.Monat, Config.AktuellePeriode.Jahr);
+                return string.Format("AA{0} {1}{2} ,20EUR", Config.HaendlernummerBmCode, Config.AktuellePeriode.Monat, Config.AktuellePeriode.JahrZweistellig);
             }
         }
 
         public string BalanceFooter
         {
-            get { return string.Empty; }
+            get
+            {
+                return string.Empty;
+            }
 
         }
 
+        public string BalanceBody(HaendlerKonto konto)
+        {
+            return (KontonummerFormatieren(konto) + ";" + string.Format("{0:0.00}", (konto.Summe)) + ";" + konto.Bezeichnung);
+        }
+
+
         public string AccountsHeader
         {
-            get { return string.Empty; }
+            get
+            {
+                return "Account Code".PadRight(42, ' ') + "Description";
+            }
+        }
+
+        public string AccountsBody(HaendlerKonto konto)
+        {
+            return KontonummerFormatieren(konto).PadRight(42, ' ') + konto.Bezeichnung;
         }
 
         public string AccountsFooter
@@ -73,7 +71,9 @@ namespace GCHR.Model.Mandant
 
         public string KontonummerFormatieren(HaendlerKonto konto)
         {
-            return konto.Kontonummer;
+            var kto = konto.Kontonummer.Split(new[] { '_' });
+            var kto2 = (kto.Length > 1) ? "_" + kto[1] : "";
+            return kto[0] + "_" + konto.Marke + konto.Betrieb + kto2;
         }
 
         public Encoding Encoding

+ 9 - 1
Model/Mandant/MandantFactory.cs

@@ -11,6 +11,8 @@
                     return new Csv();
                 case Mandanten.Citroen:
                     return new Citroen();
+                case Mandanten.CitroenSKR51:
+                    return new Skr51Hbv() { MandantHauptmarke = Skr51Hbv.Hauptmarke.Citroen };
                 case Mandanten.Fiat:
                     return new Fiat();
                 case Mandanten.Ford:
@@ -18,15 +20,19 @@
                 case Mandanten.Honda:
                     return new Honda();
                 case Mandanten.Hyundai:
-                    return new Hyundai();
+                    return new Skr51Hbv() { MandantHauptmarke = Skr51Hbv.Hauptmarke.Hyundai };
                 case Mandanten.Kia:
                     return new Kia();
+                case Mandanten.KiaSKR51:
+                    return new Skr51Hbv() { MandantHauptmarke = Skr51Hbv.Hauptmarke.Kia };
                 case Mandanten.Landrover:
                     return new Landrover();
                 case Mandanten.Opel:
                     return new Opel();
                 case Mandanten.Peugeot:
                     return new Peugeot();
+                case Mandanten.PeugeotSKR51:
+                    return new Skr51Hbv() { MandantHauptmarke = Skr51Hbv.Hauptmarke.Peugeot };
                 case Mandanten.Renault:
                     return new Renault();
                 case Mandanten.Seat:
@@ -35,6 +41,8 @@
                     return new Volkswagen();
                 case Mandanten.Volvo:
                     return new Volvo();
+                case Mandanten.VolvoAT:
+                    return new VolvoAT();
             }
             return new Csv();
         }

+ 1 - 1
Model/Mandant/Mandanten.cs

@@ -1,4 +1,4 @@
 namespace GCHR.Model.Mandant
 {
-    public enum Mandanten { Csv, Citroen, Fiat, Ford, Honda, Hyundai, Kia, Landrover, Opel, Peugeot, Renault, Seat, Volkswagen, Volvo };
+    public enum Mandanten { Csv, Citroen, CitroenSKR51, Fiat, Ford, Honda, Hyundai, Kia, KiaSKR51, Landrover, Opel, Peugeot, PeugeotSKR51, Renault, Seat, Volkswagen, Volvo, VolvoAT };
 }

+ 2 - 2
Model/Mandant/Opel.cs

@@ -28,7 +28,7 @@ namespace GCHR.Model.Mandant
         {
             get
             {
-                return String.Format("AA{0}M{1}{2} .20EUR", Config.HaendlernummerBmCode, Config.AktuellePeriode.Monat, Config.AktuellePeriode.JahrZweistellig);
+                return String.Format("AA{0}F{1}{2} .20EUR", Config.HaendlernummerBmCode, Config.AktuellePeriode.Monat, Config.AktuellePeriode.JahrZweistellig);
             }
         }
 
@@ -36,7 +36,7 @@ namespace GCHR.Model.Mandant
         {
             get
             {
-                return String.Format("XX{0}M{1}{2}", Config.HaendlernummerBmCode, Config.AktuellePeriode.Monat, Config.AktuellePeriode.JahrZweistellig);
+                return String.Format("XX{0}F{1}{2}", Config.HaendlernummerBmCode, Config.AktuellePeriode.Monat, Config.AktuellePeriode.JahrZweistellig);
             }
 
         }

+ 22 - 2
Model/Mandant/Hyundai.cs → Model/Mandant/Skr51Hbv.cs

@@ -7,13 +7,16 @@ using GCHR.Model.Konto;
 
 namespace GCHR.Model.Mandant
 {
-    internal class Hyundai : IMandant
+    internal class Skr51Hbv : IMandant
     {
         private const string Country = "DE";
         private const string Currency = "EUR";
 
         private static readonly XNamespace Tns = XNamespace.None;
 
+        internal enum Hauptmarke { Citroen, Hyundai, Kia, Peugeot };
+        internal Hauptmarke MandantHauptmarke = Hauptmarke.Kia;
+
         private XDocument _xmlDocument;
         private readonly XElement _accounts = new XElement(Tns + "RecordList");
         private readonly HashSet<string> _makes = new HashSet<string>();
@@ -45,8 +48,25 @@ namespace GCHR.Model.Mandant
             get
             {
                 return (from make in _makes
-                        select new XElement("MakeListEntry", new XElement("Make", make), new XElement("MakeCode", make == "01" ? "8252" : "0000")));
+                        select new XElement("MakeListEntry", new XElement("Make", make), new XElement("MakeCode", make == "01" ? GetMakeNumber() : "0000")));
+            }
+        }
+
+        private string GetMakeNumber()
+        {
+            switch (MandantHauptmarke)
+            {
+                case Hauptmarke.Citroen:
+                    return "3001";
+                case Hauptmarke.Hyundai:
+                    return "8252";
+                case Hauptmarke.Kia:
+                    return "8253";
+                case Hauptmarke.Peugeot:
+                    return "3003";
+
             }
+            return "0000";
         }
 
         private IEnumerable<XElement> BmCodeList

+ 82 - 0
Model/Mandant/VolvoAT.cs

@@ -0,0 +1,82 @@
+using System;
+using System.Text;
+using GCHR.Model.Konto;
+
+namespace GCHR.Model.Mandant
+{
+    class VolvoAT : IMandant
+    {
+        protected Konfiguration Config = Konfiguration.GetInstance();
+
+        public bool BalanceDatei
+        {
+            get
+            {
+                return true;
+            }
+        }
+
+        public bool AccountsDatei
+        {
+            get
+            {
+                return true;
+            }
+        }
+
+        public string BalanceHeader
+        {
+            get
+            {
+                return String.Format("AA{0}F{1}{2} .20EUR", Config.HaendlernummerBmCode, Config.AktuellePeriode.Monat, Config.AktuellePeriode.JahrZweistellig);
+            }
+        }
+
+        public string BalanceFooter
+        {
+            get
+            {
+                return String.Format("XX{0}F{1}{2}", Config.HaendlernummerBmCode, Config.AktuellePeriode.Monat, Config.AktuellePeriode.JahrZweistellig);
+            }
+
+        }
+
+        public string BalanceBody(HaendlerKonto konto)
+        {
+            return (KontonummerFormatieren(konto).PadRight(23, ' ') + String.Format("{0,18:0.00}", (konto.Summe)).Replace(',', '.'));
+        }
+
+
+        public string AccountsHeader
+        {
+            get
+            {
+                return "Account Code".PadRight(42, ' ') + "Description";
+            }
+        }
+        
+        public string AccountsBody(HaendlerKonto konto)
+        {
+            return (KontonummerFormatieren(konto).PadRight(42, ' ') + konto.Bezeichnung);
+        }
+
+        public string AccountsFooter
+        {
+            get
+            {
+                return String.Empty;
+            }
+
+        }
+
+        public string KontonummerFormatieren(HaendlerKonto konto)
+        {
+            return konto.Kontonummer + konto.Betrieb;
+        }
+
+        public Encoding Encoding
+        {
+            get { return Encoding.Default; }
+        }
+    }
+}

+ 2 - 2
View/ManuelleKontenBearbeiten.xaml

@@ -77,8 +77,8 @@
         </ListView>
 
         <WrapPanel VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="12,0,12,6">
-            <!--<Button IsTabStop="False" Margin="3" Width="80" Height="24" Template="{DynamicResource GlassButton}" Click="BtnManuelleDruckenClick"  Foreground="White" Name="BtnManuelleDrucken">Drucken</Button>
-            <Button IsTabStop="False" Margin="3" Width="80" Height="24" Template="{DynamicResource GlassButton}" Click="BtnManuelleIgnorierenClick" Foreground="White" Name="BtnManuelleIgnorieren">Ignorieren</Button>-->
+            <Button IsTabStop="False" Margin="3" Width="80" Height="24" Template="{DynamicResource GlassButton}" Click="BtnManuelleDruckenClick"  Foreground="White" Name="BtnManuelleDrucken">Drucken</Button>
+            <!--<Button IsTabStop="False" Margin="3" Width="80" Height="24" Template="{DynamicResource GlassButton}" Click="BtnManuelleIgnorierenClick" Foreground="White" Name="BtnManuelleIgnorieren">Ignorieren</Button>-->
             <Button Margin="3" Width="80" Height="24" Template="{DynamicResource GlassButton}" Click="BtnManuelleSpeichernClick" Name="BtnManuelleSpeichern" Foreground="White">Speichern</Button>
         </WrapPanel>
     </Grid>