HB/Statistik/Umsatzmeldungen

Aus FreiBier
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Zeile 15: Zeile 15:
 
In DURST werden historische Daten gerne auch mal wieder gelöscht. Aus diesem Grund möchte ich gerne die vorhandenen Daten monatlich archivieren. Dies erreiche ich durch ein Skript:
 
In DURST werden historische Daten gerne auch mal wieder gelöscht. Aus diesem Grund möchte ich gerne die vorhandenen Daten monatlich archivieren. Dies erreiche ich durch ein Skript:
  
   cd DurstKonverter/utils
+
   cd ~/Java/workspaces/ws-freibierutils/durstkonverter/utils
 
   ./monatswechsel.sh
 
   ./monatswechsel.sh
  
Zeile 28: Zeile 28:
 
Nun kann man mit Hilfe eines Skripts herausfinden, welche Datensätze im Laufe des Monats verändert oder neu eingegeben wurden:
 
Nun kann man mit Hilfe eines Skripts herausfinden, welche Datensätze im Laufe des Monats verändert oder neu eingegeben wurden:
  
   cd DurstKonverter/utils
+
   cd ~/Java/workspaces/ws-freibierutils/durstkonverter/utils
 
   ./aenderungen.sh durst201202 durst201203
 
   ./aenderungen.sh durst201202 durst201203
  

Version vom 8. August 2017, 07:43 Uhr

Die Umsatzmeldungen an die NGV werden monatlich durchgeführt. Bis zur vollständigen Umstellung werden die Daten aus DURST extrahiert und dann für den Export aufbereitet. Hierzu sind am Monatsanfang folgende Schritte durchzuführen:


Inhaltsverzeichnis

Export der DURST-Daten

Der Export wird am besten auf einem Rechner durchgeführt, der auch im letzten Monat den Export gemacht hat. Das beschleunigt den Export sehr, weil dann nur veränderte Rohdaten exportiert werden. Die alten Rohdaten werden im Verzeichnis ~/.durstcache/ zwischengespeichert (ca. 140MB). Ich mache dies normalerweise als Benutzer "tbayen" auf dem Terminalserver. Zum Export starte ich aus Eclipse heraus die Klasse de.bayen.btrieve.DurstDatenbank aus dem Projekt DurstKonverter. Der Export Anfang März 2012 lief z.B. ca. 2400 Sekunden (40 Minuten).

Als Ergebnis dieses Laufs sind die Daten in der Datenbank "freibier/durst" aktualisiert. Sie befinden sich also in einer Datenbank mit den FreiBier-Daten und können so - ggf. unterstützt durch die Hilfstabellen im Schema "importe" - bearbeitet und mit den adempiere-Daten zusammengeführt werden.


Archivieren der DURST-Daten

In DURST werden historische Daten gerne auch mal wieder gelöscht. Aus diesem Grund möchte ich gerne die vorhandenen Daten monatlich archivieren. Dies erreiche ich durch ein Skript:

 cd ~/Java/workspaces/ws-freibierutils/durstkonverter/utils
 ./monatswechsel.sh

Nach Ablauf dieses Skripts sind z.B. Anfang März 2012 alle Daten in eine Datenbank "durstarchiv/durst201203" kopiert worden. Außerdem ist eine Backupdatei im Backupverzeichnis (ist im Skript konfiguriert) erzeugt worden.

(Diesen Schritt mache ich traditionell auf meinem Laptop.)

(dies kann einige Minuten dauern)

Daten aktualisieren

Nun kann man mit Hilfe eines Skripts herausfinden, welche Datensätze im Laufe des Monats verändert oder neu eingegeben wurden:

 cd ~/Java/workspaces/ws-freibierutils/durstkonverter/utils
 ./aenderungen.sh durst201202 durst201203

Danach hat man zwei CSV-Dateien mit Kunden und Artikeln, deren Inhalt man händisch betrachten und in FreiBier ggf. eingeben muss.

CSV-Dateien in OpenOffice zur Eingabe anpassen

(Diese Beschreibung gilt für die etwas ältere OpenOffice-Version auf dem Terminalserver.)

CSV-Datei laden

Nach dem Erzeugen der Datei konpeire ich diese auf den Terminalserver in das Verzeichnis "Dokumente/Daten/NGV/Vorabdaten", damit dort alle Mitarbeiter zugreifen und weiterarbeiten können.

Bevor man darauf klickt, sollte man noch die Dateinamen ändern, so das sie das Datum enthalten (und sich damit jeden Monat unterscheiden). Also macht man aus "VergleichArtikel" am besten "2015-01-VergleichArtikel" (wenn man Anfang Februar die Daten vom Januar bearbeitet).

Es öffnet sich mit einem Klick auf die entsprechende Datei in "Dokumente/Daten/NGV/Vorabdaten" ein Fenster, in dem man einstellen kann, wie die CSV-Datei eingelesen werden soll. Bei den Trennoptionen muss "Semikolon" ausgewählt sein (und "Komma ausgeschaltet"). Unten ist eine Tabelle zu sehen. Dort muss man für einige Spalten den Spaltentyp anpassen, damit OpenOffice die Daten richtig "verstehen" kann. Spalten mit führenden Nullen sollten auf "Text" stehen, Spalten mit Kommazahlen auf "US-Englisch". Die restlichen Spalten können auf "Standard" bleiben. Dazu klickt man auf die Überschrift der Spalte und wählt dann den Spaltentyp im Auswahlfeld oberhalb der Tabelle aus.

  • Tabelle: VergleichArtikel
    • Spaltentyp Text z.B. für Spalten mit führenden Nullen: ArtikelNr (allererste Spalte)
    • Spaltentyp US_Englisch z.B. für Spalten mit Kommazahlen: LeergutPreis, Inhalt, Gewicht (kommen jeweils zweimal vor)
  • Tabelle: VergleichKunden
    • Spaltentyp Text z.B. für Spalten mit führenden Nullen: KundenNr (allererste Spalte)
    • Spaltentyp Text: Telefon1, Telefon2 (kommen jeweils zweimal vor)

Speichern mit neuem Dateinamen in ODF-Format

Als erstes sollte man mit "Datei -> Speichern unter..." die Datei wieder speichern. Diesmal aber nicht als CSV, sondern als "ODF Tabellendokument (*.ods)". Den Dateinamen selber bitte nicht ändern - die beiden Dateien unterscheiden sich dann durch die Endung.

Formatierung Artikel zur leichteren Bearbeitung der Liste

Ich formatiere die Titelzeile hochkant: Zeilennummer links mit rechter Maustaste anklicken für das Kontextmenü, dann "Zellen formatieren" wählen. Beim Winkel 90 Grad angeben. Wo die Titelzeile nun schonmal markiert ist, setze ich sie direkt auf Fettdruck.

Ich möchte die Artikelnummerspalte noch einmal vor den rechten Teil der Liste kopieren. Ich markiere die zweite Spalte "Bezeichnung" (Spalte "M") und füge (Kontextmenü) eine neue Spalte ein. Dann markiere ich die erste Spalte, kopiere diese und füge sie in der neuen, leeren Spalte ("M") wieder ein.

Ich möchte die Nummernspalten im Fettdruck haben. Also markiere ich beide und setze sie auf Fett.

Ich markiere alle Spalten (also die ganze Tabelle), indem ich auf das leere Kästchen oben links (oberhalb von "1" und links von "A") klicke und wähle im Kontextmenü einer Spaltenüberschrift (also rechte Maustaste auf "A") die "optimale Spaltenbreite".

bedingte Formatierung mit einer Formatvorlage

Nun möchte ich die Änderungen farbig markieren. Hierzu muss ich zuerst eine Formatvorlage erstellen, diese dann in einer bedingten Formatierung verwenden und diese dann auf alle interessanten Felder erweitern.

Die Formatvorlage erstelle ich über das Menü Format -> Formatvorlagen. Es öffnet sich ein kleines Fenster mit Formatvorlagen. Als Basis meiner neuen Vorlage möchte ich "Standard" nehmen. Über das Kontextmenü (rechte Maustaste über dem Wort "Standard") wähle ich "neu...", um eine neue Formatvorlage zu erstellen. Als Name schreibe ich "markiert". Dann gehe ich in die Registerkarte "Hintergrund" und wähle einen gelben Hintergrund (mein Favorit ist "Gelb 1"). Ansonsten fasse ich in der Formatvorlage nichts an, weil alle anderen Eigenschaften des Formats so bleiben sollen, wie sie sind. Das Formatvorlagenfenster schliesse ich daraufhin wieder.

Jetzt gehe ich auf das erste Feld, das ich markieren möchte. Das ist z.B. bei den Artikeln der erste Artikel in der Spalte "Bezeichnung" in der rechten Hälfte der Tabelle (Zelle N2). Ich wähle im Menü Format -> "Bedingte Formatierung...". Im erscheinenden Bedingungsfenster wähle ich "Bedingung1: Zellwert ist ungleich B2". B2 ist dabei die Zellkoordinate des Bezeichnungsfeldes im linken Teil der Tabelle, mit dem ich vergleichen möchte. Darunter wähle ich die Zellvorlage "markiert" aus und beende das Fenster mit "OK".

Unter Umständen ist das Feld jetzt bereits gelb unterlegt (es sei denn, gerade diese Bezeichnung ist zufälligerweise nicht geändert worden). Diese Formatierung möchte ich nun auf alle anderen Felder kopieren. Hierzu klicke ich auf das soeben formatierte Feld (um es zu aktivieren) und wähle dann im Menü Bearbeiten -> Kopieren. Dann markiere ich den gesamten rechten Bereich der Tabelle. Um das zu machen, klicke ich zuerst auf das bekannte Feld oben links (also N2), scrolle dann nach unten rechts ans Ende der Tabelle und klicke auf das so gegenüberliegende Feld, während ich die Hochstelltaste (Shift) gedrückt halte. Nun ist der gesamte Zielbereich markiert und ich wähle im Menü Bearbeiten -> "Inhalte Einfügen...". Im erscheinenden Dialogfenster klicke ich "Alles einfügen" aus und lösche dann die Häkchen bei allen der darunter erscheinenden Felder ausser "Formate". Nur die will ich kopieren. Drücke ich nun "OK", sollte die Tabelle buntgesprenkelt alle Änderungen verraten.

Spalten verbergen

In der KundenVergleich-Tabelle verberge ich noch einige Spalten, die wir nicht benötigen. Das gibt etwas mehr Platz auf dem Papier und macht die Schrift größer und damit leserlicher. Dabei ist zu beachten, das die Spalten immer im linken und im rechten Teil der Tabelle ausgeblendet werden sollten. Ausblenden geht, indem man das Kontextmenü des Spaltentitels öffnet (also über dem Spaltenttitel - wo ein einzelner Buchstabe wie A,B,C steht, die rechte Maustaste drücken). Ich blende folgendes aus:

  • Bankname, Rabatt, ZahlMod

Seitenformat einstellen

Die Wahl des Seitenformats hängt ein wenig von der Art und Breite der Daten ab. Grundsätzlich muss man sich entscheiden, ob man einen manuellen Seitenumbruch einfügt oder das automatisch machen möchte. Die Automatik erlaubt eine automatische Verkleinerung der Schrift, bis es exakt passt. Das bedeutet, das man die manuelle Methode wählt, wenn das Ergebnis damit von alleine auf eine Seite passt und die automatische, wenn die Tabelle sich dann auf zwei Seiten verteilt. Es empfiehlt sich, vor dem Ausdruck die Seitenansicht aufzurufen, um sich gegebenenfalls vom Ergebnis zu überzeugen.

Ich setzte die Seitenformatierung auf Querformat (Format, Seite, Querformat) und dann am Ende der Registerkarte Tabelle, unten umstellen auf "Druckbereiche auf Breite/Höhe anpassen" und die Skalierung auf eine feste Seitenzahl von 1 in der Breite und 100 in der Höhe umstellen. (Für die Tabelle KundenVergleich ist die Breite 2!)

Speichern und ausdrucken

Die Datei muss als ODS-Datei gespeichert werden (nicht als CSV, dann gehen alle Formatierungen wieder verloren). Beim Speichern kann man unten im Dateiauswahlfenster den Dateityp umstellen. Sie hat dabei denselben Namen wie die CSV-Datei, der das Datum und die Bezeichnung enthält, also z.B.

 2014-02-VergleichArtikel.ods

Vor dem Druck empfiehlt sich, eine Seitenansicht zu öffnen und diese mal bis zum Ende durchzublättern.

Dann drucke ich das Ganze aus und zwar auf den Farb-Laserdrucker, damit die gelben Markierungen sichtbar sind.

DURST-Daten einlesen

Man startet ADempiere mit einem Benutzer, der Rechte der Rolle "Statistikauswertung" besitzt. Dann öffnet man das Fenster Statistik -> Periodenstatistiken und gibt zwei neue Zeilen für die Eingangs- und Ausgangsstatistik ein.

Diese Zeilen sollten aussehen wie die entsprechenden Einträge der letzten Monate. Ihr Suchwert muss "stXXXX" (Verkauf) bzw. "lmXXXX" (Einkauf) sein.

Verkaufsdaten

Um die Verkaufsdaten einzulesen, geht man in den "stXXXX"-Datensatz und drückt auf "Statistikimport". Nun werden die Daten aus dem im vorherigen Schritt gefüllten DURST-Datenbankschema in ADempiere geladen, was ein bisschen dauern kann. Falls irgendwelche Artikel oder Kunden nicht existieren, gibt das hier eine Fehlermeldung und der Ganze Vorgang wird abgebrochen (es werden also keine Daten teilweise importiert).

Als nächstes drückt man auf "erzeuge Meldungen", was eine zusätzliche Zeile (Suchschlüssel endet auf M) erzeugt (Anzeige aktualisieren, falls diese Zeile nicht direkt sichtbar ist). Danach kann man im Hauptmenü mit dem Menüpunkt "MeldungsregelnAnwenden" diese erzeugte Meldungs-Statistik auswählen und mit den vorher vorgegebenen Regeln modifizieren. Nun geht man wieder in die Anzeige der Statistiken und kann mit dem Button "NGV-Export" eine CSV-Datei erzeugen. Diese sollte den von der NGV vorgegebenen Dateinamen-Standards entsprechend benannt werden (z.B. CSVImport_2012-04.csv). Diese Datei archiviere ich einerseits im entsprechenden Daten-Verzeichnis und schicke ich andererseits an die NGV.


Einkaufsdaten

In DURST gibt es nur eine Jahresstatistik. Diese steht in der Periode "lk1200". Durch einen Druck auf "Statistikimport" wird diese Statistik aktualisiert (die alten Werte werden dabei gelöscht). Danach geht man auf die (soeben händisch erzeugte und noch leere) Statistik "lmXXXX" für den Monat und drückt dort auch auf "Statistikimport". Danach drückt man auf "NGV-Export" und wählt einen Dateinamen nach den NGV-Konventionen (z.B. "CSV_Bez_Import_2012-04.csv"). Auch diese Datei sollte man dann im Datenverzeichnis archivieren und per Mail an die NGV senden.


Korrektur Einkaufsdaten nach Absturz und doppelter Einkaufsverbuchung

Ab und zu (bevorzugt im Januar) stürzt DURST bei der Übernahme des Wareneingangs vor dem Monatsabschluss ab. Man muss den Vorgang dann wiederholen. Im Ergebnis sind die Wareneingänge dann doppelt verbucht. Um das zu korrigieren, habe ich folgendes gemacht:

  • normaler Import der Daten
  • Feststellen der ID der Statistikperiode (Ecke unten rechts anklicken)
  • Berechnung der Korrekturwerte durch eine SQL-Formel (kann im Zweifel auch von Hand gemacht werden, wenn es nicht einfach die Hälfte ist)
  • Änderung einiger Angaben der Statistikperiode:
    • Name wird geändert in "Korrekturperiode" oder so
    • Datum wird geändert auf von 01.01.2013 bis 01.01.2013
    • Suchschlüssel wird geändert auf "lm1300"
  • Jetzt lege ich eine ganz neue Statistikperiode für den Januar an. Diese beginnt mit dem 02.01.2013 und sieht ansonsten aus wie immer.
  • Nachdem ich sie importiert habe, sind dort automatisch die Werte übernommen worden, bei denen die Korrekturperiode bereits abgezogen ist. Voila!

SQL-Code zur Erstellung der Korrekturwerte:

UPDATE BAY_Umsatzstatistik
  set 
    stueck = stueck/2,
    stueckgratis = stueckgratis/2,
    umsatz = umsatz/2,
    umsatzek = umsatzek/2,
    lieferungen = lieferungen/2
WHERE BAY_Statistikperiode_ID = 1000xxx;
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Navigation
Werkzeuge