[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