[gnucash-de] eindeutige Lieferantenrechnungsnummern

Paul Neuwirth mail at paul-neuwirth.nl
So Nov 26 13:06:36 EST 2017


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