[gnucash-de] eindeutige Lieferantenrechnungsnummern
Frank H. Ellenberger
frank.h.ellenberger at gmail.com
Mi Nov 29 05:37:21 EST 2017
Hallo Paul,
da hatte ich wohl die falsche Brille auf. ;-)
So wie du das jetzt beschreibst, hört sich das gut an. Da kannst du ja
mal einen Verbesserungsvorschlag zur Komponente Business einreichen.
Siehe https://wiki.gnucash.org/wiki/De/Feedback
Pack deine SQL-Klausel gleich dazu und was dir vielleicht noch einfällt,
um das im xml-Backend zu implementieren.
Weitere mögliche Fallstricke: Entspricht das ISO/IEC 9075, ... und
userer Schnittstelle libdbi oder muß je backend (mysql, postgres,
sqlite) verschieden implementiert werden?
Zur API: https://code.gnucash.org/docs/MAINT/ (2.6) oder .../MASTER (2.7+)
Grüße
Frank
Am 26.11.2017 um 19:06 schrieb Paul Neuwirth:
> Hallo Frank,
>
> vielen Dank für deine Antwort. Ich meinte auch eindeutige
> Rechnungsnummer je Lieferant, dachte ich hätte das formuliert, bzw.
> vielleicht hätte ich den SQL kommentieren sollen. Der Unique Constraint
> geht über owner_guid (eindeutige Lieferanten-ID), active (0 oder 1), und
> der Rechnungs-ID. Es können theoretisch also zwei mal die identische
> Rechnungsnummer pro Lieferant angelegt werden, aber nur eine davon darf
> "aktiv" markiert werden.
>
> Wie gesagt, arbeite ich erst seit kurzem mit gnucash, hätte aber
> Vorrausgesetzt, dass das mehrfache eintragen der gleichen Rechnung nicht
> möglich ist, was die Programmlogik jedoch zulässt.
>
> Ich habe mich gefragt, ob darüber noch kein Nutzer "gestolpert" ist -
> daher die Frage an die Maillist - und eben ob zu prüfen, ob an o.g.
> Logik noch irgendeinen Fall vergesse.
>
> freundliche Grüsse und eine angenehme Woche
>
> Paul
>
> P.S.:
>
> Ich selbst komme aus der Anwendungs- und Datenbankentwicklung. Wenn dies
> gekoppelt ist, ist es sinnvoll möglichst viel Logik auf Datenbankebene
> zu bringen (z.B. unique/check constraints, foreign keys, trigger) - dann
> besteht die Gefahr gar nicht, dass sich durch einen fehler in der
> Programmbibliothek inkonsistente Daten gespeichert werden - es würde zu
> einem Datenbankfehler führen.
> Auf Dateieebene ist das natürlich nicht so leicht lösbar. Und
> unterstützt die Anwendung beides, also Dateien ohne SQL-Bibliothek, muss
> natürlich die Logik im Programm abgebildet werden... So ist es auch bei
> gnucash der Fall.
>
>
> On Sunday 2017-11-26 18:16, Frank H. Ellenberger wrote:
>
>> Date: Sun, 26 Nov 2017 18:16:43
>> From: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
>> To: Paul Neuwirth <mail at paul-neuwirth.nl>
>> Cc: gnucash-de at gnucash.org
>> Subject: Re: [gnucash-de] eindeutige Lieferantenrechnungsnummern
>>
>> Hallo Paul,
>>
>> Rechnungen, die man seinen Kunden schickt, sollen - in ein oder mehreren
>> Nummernkreisen - fortlaufend nummeriert sein. Da macht die Einschränkung
>> Sinn.
>>
>> Aber was sollte ich Deiner Meinung nach tun, wenn mir 2 verschiedene
>> Lieferanten zufällig Rechnungen mit der gleichen Nummer schicken?
>>
>> Sinnvoll wäre also nur eine Einschränkung, daß es vom selben Lieferanten
>> keine zwei Rechnungen mit derselben Nummer geben darf.
>>
>> Ich möchte in dem Zusammenhang noch mal darauf hinweisen, daß GnuCash
>> keine dezidierte Datenbank-Anwendung ist und sich historisch bedingt,
>> die xml-Datei ist das ursprüngliche Speichermedium, die Mehrzahl der
>> Regeln in der Programmbibliothek statt im Datenbank-Schema befinden.
>>
>> Grüße
>> Frank
>>
>> Am 25.11.2017 um 12:33 schrieb Paul Neuwirth:
>>> Hallo Liste,
>>>
>>> ich bin seit einigen Tagen dabei meine Buchhaltung auf GnuCash
>>> umzustellen. Hierbei stiess ich auf ein Problem für mich. Beim Anlegen
>>> von Lieferantenrechnungen ist es möglich dieselbe Rechnung(snummer)
>>> merhfach zu erfassen.
>>> Eine Suche im Internet ergab diesbezüglich nichts.
>>> Für mich (Backend MySQL) habe ich es wie folgt gelöst:
>>>
>>> ALTER TABLE `gnucash`.`invoices` ADD UNIQUE `unique_owner/id` ( `id` (
>>> 100 ) , `owner_guid` , `active` )
>>>
>>> habe ich hier irgendwas übersehen?
>>> Oder gibt es sauberere/bessere Lösungen?
>>>
>>> Wenn ich nun versuche eine bereits existierende Rechnung nochmals
>>> einzugeben gibt gnucash einen Fehler beim Speichern in der Datenbank in
>>> STDERR ist die Fehlermeldung (z.B. mysql error: Duplicate entry
>>> '123foo-b599ce823a4f0fd3a4f4e84f7b8c7693-1' for key 'unique_owner/id')
>>> zu lesen.. Schöner wäre natürlich die MySQL-Fehlermeldung würde direkt
>>> im Fehlermeldungsfenster angezeigt.
>>>
>>> Vielen Dank und mit freundlichen Grüssen
>>>
>>>
>>> Paul Neuwirth
>>
>>
Mehr Informationen über die Mailingliste gnucash-de