Ver código fonte

- Volvo integriert
- Manuelle Konten vertikal zentriert
- Manuelle Konten nach Eingabe speichern
- Export-Protokoll

Robert Bedner 12 anos atrás
pai
commit
d68ad7939c

+ 6 - 5
Control/Tasks/Export.cs

@@ -21,12 +21,11 @@ namespace GCHR.Control.Tasks
             : base(id, name) 
         {
             _mandant = MandantRegistrieren();
-            _debugExportFile = (Data.Exportprotokoll) ? "export\\exportprotokoll.csv" : "";
+            _debugExportFile = _config.ProtokollDatei;
         }
 
-        private const String DebugHeader = "KontoExport;Kontonummer;Description;KontoTyp;Ebene1;DepartmentImport;Marke;Betrieb;Case;Soll;Haben;SollSumme;HabenSumme;Gesamt;" +
-                                     "KontoExportHaendler;KontonummerHaendler;DescriptionHaendler;KontoTypHaendler;Ebene1Haendler;DepartmentImportHaendler;MarkeHaendler;BetriebHaendler;CaseHaendler;SollHaendler;HabenHaendler;SollSummeHaendler;HabenSummeHaendler;GesamtHaendler;" +
-                                     "Periode;PeriodeSoll;PeriodeHaben";
+        private const String DebugHeader =
+            "Konto_Nr_Hersteller;Konto_Bezeichnung;Konto_Nr_Haendler;Konto_Typ;Marke_Haendler;Betrieb_Haendler;Soll;Haben;Summe";
 
 
         private IMandant MandantRegistrieren()
@@ -47,6 +46,8 @@ namespace GCHR.Control.Tasks
                     return new Peugeot();
                 case Mandanten.Volkswagen:
                     return new Volkswagen();
+                case Mandanten.Volvo:
+                    return new Volvo();
             }
             return null;
         }
@@ -135,7 +136,7 @@ namespace GCHR.Control.Tasks
         private static StreamWriter DateiStream (string datei)
         {
             var info = new FileInfo(datei);
-            info.Directory.Create();
+            if (info.Directory != null) info.Directory.Create();
             return new StreamWriter(info.FullName, false, Constants.CsvEncoding);
         }
     }

+ 0 - 1
Control/Tasks/Verarbeitung.cs

@@ -80,7 +80,6 @@ namespace GCHR.Control.Tasks
                 ziel = _zielKonten[ziel.ToString()];
             }
             ziel.KontoZuordnen(aktKonto);
-            return;
         }
 
         private string SplitKontoVerarbeiten(string konto, string marke)

+ 1 - 0
Control/Tasks/Verrechnung.cs

@@ -98,6 +98,7 @@
             Data.AufSusaStatWarten.WaitOne();
             Data.AddKonten(manuelleKonten);
 
+
             ReportProgress(100);
         }
     }

+ 1 - 0
GCHR.csproj

@@ -137,6 +137,7 @@
     <Compile Include="Control\Tasks\Export.cs" />
     <Compile Include="Mandantenschnittstelle\Honda.cs" />
     <Compile Include="Mandantenschnittstelle\IMandant.cs" />
+    <Compile Include="Mandantenschnittstelle\Volvo.cs" />
     <Compile Include="Mandantenschnittstelle\Volkswagen.cs" />
     <Compile Include="Model\DateipfadeXml.cs" />
     <Compile Include="Model\Konto\IKonto.cs" />

+ 4 - 0
GCHR.sln.DotSettings.user

@@ -0,0 +1,4 @@
+<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
+	<s:String x:Key="/Default/Environment/UnitTesting/NUnitProvider/CustomNUnitFolder/@EntryValue">C:\Program Files (x86)\NUnit 2.5.3\bin\net-2.0\</s:String>
+	<s:String x:Key="/Default/Environment/UnitTesting/NUnitProvider/UseAddins/@EntryValue">Never</s:String>
+	<s:Boolean x:Key="/Default/Housekeeping/SolutionSettingsUpgraded/IsUpgraded/@EntryValue">True</s:Boolean></wpf:ResourceDictionary>

BIN
GCHR.suo


+ 2 - 2
Main.xaml

@@ -163,7 +163,7 @@
                     <TextBlock Style="{StaticResource taskLabel}" Grid.Row="13">Dateien schreiben</TextBlock>
                     <View:Ampel x:Name="ampel_Export"  Grid.Row="13" Grid.Column="1" />
 
-                    <TextBlock Style="{StaticResource taskLabel}" Grid.Row="14">
+                    <TextBlock Style="{StaticResource taskLabel}" Grid.Row="14" Visibility="Hidden">
                             <CheckBox Name="btnExportprotokoll">
                                 <TextBlock Foreground="White">Exportprotokoll schreiben</TextBlock>
                             </CheckBox>
@@ -182,7 +182,7 @@
             <StackPanel VerticalAlignment="Bottom" Margin="0,0,5,10" HorizontalAlignment="Right" Width="155">
                 <Button Margin="3" Template="{DynamicResource GlassButton}" Click="BtnManuelleKontenClick" Foreground="White" Height="23" Name="btnManuelleKonten" Visibility="Hidden">Manuelle Konten</Button>
                 <Button Margin="3" Template="{DynamicResource GlassButton}" Click="BtnProtokollClick" Foreground="White" Height="23" Name="btnProtokoll" Visibility="Hidden">Export-Verzeichnis</Button>
-                <Button Margin="3" Template="{DynamicResource GlassButton}" Click="BtnEinstellungenClick" Foreground="White" Height="23" Name="btnEinstellungen">Einstellungen</Button>
+                <Button Margin="3" Template="{DynamicResource GlassButton}" Click="BtnEinstellungenClick" Foreground="White" Height="23" Name="btnEinstellungen" Visibility="Hidden">Einstellungen</Button>
                 <Button Margin="3" Template="{DynamicResource GlassButton}" Click="BtnBeendenClick" Foreground="White" Height="23" Name="btnBeenden">Beenden</Button>
             </StackPanel>
         </Grid>

+ 1 - 1
Mandantenschnittstelle/Mandanten.cs

@@ -1,4 +1,4 @@
 namespace GCHR.Mandantenschnittstelle
 {
-    public enum Mandanten { Citroen, Fiat, Ford, Honda, Opel, Peugeot, Volkswagen };
+    public enum Mandanten { Citroen, Fiat, Ford, Honda, Opel, Peugeot, Volkswagen, Volvo };
 }

+ 72 - 0
Mandantenschnittstelle/Volvo.cs

@@ -0,0 +1,72 @@
+using System;
+using GCHR.Model;
+using GCHR.Model.Konto;
+
+namespace GCHR.Mandantenschnittstelle
+{
+    class Volvo : 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.Händlernummer, HaendlerKonto.AktuellePeriode.Monat, HaendlerKonto.AktuellePeriode.JahrZweistellig);
+            }
+        }
+
+        public string BalanceFooter
+        {
+            get
+            {
+                return String.Format("XX{0}F{1}{2}", Config.Händlernummer, HaendlerKonto.AktuellePeriode.Monat, HaendlerKonto.AktuellePeriode.JahrZweistellig);
+            }
+
+        }
+
+        public string BalanceBody(HaendlerKonto kto)
+        {
+            return (kto + String.Format("{0,33:0.00}", (kto.Summe)).Replace(',', '.'));
+        }
+
+
+        public string AccountsHeader
+        {
+            get
+            {
+                return "Account Code".PadRight(42, ' ') + "Description";
+            }
+        }
+
+        public string AccountsFooter
+        {
+            get
+            {
+                return String.Empty;
+            }
+
+        }
+
+        public string AccountsBody(HaendlerKonto kto)
+        {
+            return (kto.ToString().PadRight(42, ' ') + kto.Bezeichnung);
+        }
+    }
+}

+ 1 - 0
Model/DateipfadeXml.cs

@@ -11,5 +11,6 @@
         public string BalanceDatei = "export\\{0}\\export_{0}-{1}_balance.txt";
         public string AccountsDatei = "export\\{0}\\export_{0}-{1}_accounts.txt";
         public string LogDatei = "export\\{0}\\export_{0}-{1}.log";
+        public string ProtokollDatei = "export\\{0}\\export_{0}-{1}_protokoll.csv";
     }
 }

+ 0 - 4
Model/GchrConfig.cs

@@ -137,10 +137,6 @@ namespace GCHR.Model
 
         [XmlElement("ABS")]
         public string StatKontenQuery;
-
-        [XmlArray("DepartmentFilter")]
-        [XmlArrayItem("Department")]
-        public List<String> DepartmentFilter = new List<String>();
     }
 
     [XmlRoot("Über")]

+ 20 - 7
Model/Konfiguration.cs

@@ -68,10 +68,15 @@ namespace GCHR.Model
 
         public void Speichern()
         {
-            new KontenIO(_kontenDatei).Speichern(_konten);
+            ManuelleKontenSpeichern();
             new GchrConfigIO(_configDatei).Speichern(_gchrConfig);
         }
 
+        public void ManuelleKontenSpeichern()
+        {
+            new KontenIO(_kontenDatei).Speichern(_konten);
+        }
+
 
         public string Händlernummer
         {
@@ -180,8 +185,7 @@ namespace GCHR.Model
         {
             get
             {
-                if (_gchrConfig.Einstellungen.Abfragen.DepartmentFilter.Count == 0) return "'?'";
-                return string.Format("'{0}'", String.Join("','", _gchrConfig.Einstellungen.Abfragen.DepartmentFilter.ToArray()));
+                return "'?'";
             }
         }
 
@@ -221,7 +225,7 @@ namespace GCHR.Model
 
         public string JuengstenVormonatBestimmen(string aktPeriode)
         {
-            return Array.Find(VorhandenePerioden(), eintrag => String.Compare(eintrag, aktPeriode) < 0) ?? aktPeriode;
+            return Array.Find(VorhandenePerioden(), eintrag => String.CompareOrdinal(eintrag, aktPeriode) < 0) ?? aktPeriode;
         }
 
         private string[] VorhandenePerioden()
@@ -250,9 +254,9 @@ namespace GCHR.Model
 
         private string MarkeUebersetzen(string marke)
         {
-            var suchergebnis = _gchrConfig.Einstellungen.DepartmentUebersetzung.Where(eintrag => eintrag.Von.Equals(marke));
+            var suchergebnis = _gchrConfig.Einstellungen.DepartmentUebersetzung.Where(eintrag => eintrag.Von.Equals(marke)).ToArray();
 
-            if (suchergebnis.Count() < 1) return marke;
+            if (!suchergebnis.Any()) return marke;
             var uebersetzung = suchergebnis.First();
             return uebersetzung.Nach;
         }
@@ -325,6 +329,7 @@ namespace GCHR.Model
         public void ManuelleKontenSetzen(List<HaendlerKonto> manKonten)
         {
             _konten.Kontenliste = manKonten;
+            ManuelleKontenSpeichern();
         }
 
         public string BalanceDatei
@@ -349,9 +354,17 @@ namespace GCHR.Model
             {
                 var datei = string.Format(_gchrConfig.Dateipfade.LogDatei, HaendlerKonto.AktuellePeriode.Jahr, HaendlerKonto.AktuellePeriode.Monat);
                 var info = new FileInfo(datei);
-                info.Directory.Create();
+                if (info.Directory != null) info.Directory.Create();
                 return datei;
             }
         }
+
+        public string ProtokollDatei
+        {
+            get
+            {
+                return string.Format(_gchrConfig.Dateipfade.ProtokollDatei, HaendlerKonto.AktuellePeriode.Jahr, HaendlerKonto.AktuellePeriode.Monat);
+            }
+        }
     }
 }

+ 17 - 16
Model/Konto/HaendlerKonto.cs

@@ -149,7 +149,7 @@ namespace GCHR.Model.Konto
         {
             if (KontoTyp != KontoTypen.Debug && KontoTyp != kto.KontoTyp) return false;
             ZugeordneteKonten.Add(kto);
-            ZugeordneteKonten.Sort((k1, k2) => k1.Kontonummer.CompareTo(k2.Kontonummer));
+            ZugeordneteKonten.Sort((k1, k2) => String.Compare(k1.Kontonummer, k2.Kontonummer, StringComparison.Ordinal));
             return true;
         }
 
@@ -159,7 +159,7 @@ namespace GCHR.Model.Konto
         public void SaldoZuordnen(string periode, Decimal soll, Decimal haben)
         {
             ZugeordneteSaldi.Add(new Saldo { Periode = periode, Soll = soll, Haben = haben });
-            ZugeordneteSaldi.Sort((s1, s2) => s1.Periode.CompareTo(s2.Periode));
+            ZugeordneteSaldi.Sort((s1, s2) => String.Compare(s1.Periode, s2.Periode, StringComparison.Ordinal));
         }
 
         [XmlIgnore]
@@ -169,25 +169,26 @@ namespace GCHR.Model.Konto
             {
                 if (ZugeordneteKonten.Count > 0)
                 {
-                    var liste = new List<string>();
-                    var csv = Kontonummer + ";" +
-                              Marke + ";" +
-                              Betrieb;
+                    var csv = "'" + ToString() + ";" +
+                              Bezeichnung + ";";
 
-                    foreach (var kto in ZugeordneteKonten)
+                    return ZugeordneteKonten.FindAll(kto => kto.Summe != 0).Select(kto => csv + kto.KontoCsv[0]).ToList();
+                }
+
+                if (KontoTyp == KontoTypen.ManStat)
+                {
+                    return new List<string>
                     {
-                        liste.Add(kto.KontoCsv[0] + ";" + csv);
-                    }
-                    return liste;
+                        string.Format("'{0};{8};;;{1}{2};'{3};'{4};{5:0.2};{6:0.00};{7:0.00}", ToString(),
+                                      KontoTypKuerzel(KontoTyp), Minus, Marke, Betrieb, Soll, Haben, Summe, Bezeichnung)
+                    };
                 }
 
                 return new List<string>
-                           {
-                               Kontonummer + ";" +
-                               KontoTypKuerzel(KontoTyp) + Minus + ";" +
-                               Marke + ";" +
-                               Betrieb
-                           };
+                    {
+                        string.Format("'{0};{1}{2};'{3};'{4};{5:0.00};{6:0.00};{7:0.00}", Kontonummer,
+                                      KontoTypKuerzel(KontoTyp), Minus, Marke, Betrieb, Soll, Haben, Summe)
+                    };
             }
         }
 

+ 1 - 1
Properties/AssemblyInfo.cs

@@ -50,5 +50,5 @@ using System.Windows;
 //
 // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern 
 // übernehmen, indem Sie "*" eingeben:
-[assembly: AssemblyVersion("1.28.13.*")]
+[assembly: AssemblyVersion("1.32.18.*")]
 [assembly: AssemblyFileVersion("1.0.0.0")]

+ 2 - 2
View/ManuelleKontenBearbeiten.xaml

@@ -28,7 +28,7 @@
                     <GridViewColumn Width="90" Header="Kontonummer">
                         <GridViewColumn.CellTemplate>
                             <DataTemplate>
-                                <Label HorizontalContentAlignment="Left" VerticalAlignment="Center" Content="{Binding Path=Kontonummer}" FontSize="18" />
+                                <Label HorizontalContentAlignment="Left" VerticalAlignment="Bottom" Content="{Binding Path=Kontonummer}" FontSize="18" />
                             </DataTemplate>
                         </GridViewColumn.CellTemplate>
                     </GridViewColumn>
@@ -59,7 +59,7 @@
                     <GridViewColumn Width="100" Header="Aktuelle Periode">
                         <GridViewColumn.CellTemplate>
                             <DataTemplate>
-                                <TextBox HorizontalContentAlignment="Right" Text="{Binding Path=Saldo, Mode=TwoWay}" GotFocus="TextBoxGotFocus" TextAlignment="Right" FontSize="12" VerticalAlignment="Top" Width="90" />
+                                <TextBox HorizontalContentAlignment="Right" Text="{Binding Path=Saldo, Mode=TwoWay}" GotFocus="TextBoxGotFocus" TextAlignment="Right" FontSize="12" VerticalAlignment="Bottom" Width="90" />
                             </DataTemplate>
                         </GridViewColumn.CellTemplate>
                     </GridViewColumn>