Sven Schöling [Mon, 9 May 2016 12:23:40 +0000 (14:23 +0200)]
Rechnungen löschen mit confirm nachfragen, und nicht mit Extrarequest
Sven Schöling [Mon, 9 May 2016 12:11:55 +0000 (14:11 +0200)]
Rechnungsmasken auf dispatcher Mechanismus umgestellt
Jan Büren [Fri, 13 May 2016 07:25:41 +0000 (09:25 +0200)]
Verkauf->Berichte->Rechnungen: Bestellnummer des Kunden nicht per default anhaken
Hintergrund: Die Bestellnummer des Kunden nimmt eine Menge Platz in der
Breite weg und ist i.d.R. nur für einige Fälle ein sinnvoller voreingestellter
Wert.
i.A. thw
G. Richardson [Thu, 12 May 2016 14:27:02 +0000 (16:27 +0200)]
Neuer Minimaltestfall für Rabattrundung im PTC
Beim PTC wird vor der Multiplizierung mit der Menge der gerundete Rabatt vom
Verkaufspreis abgezogen, statt erst die Zeilensumme zu berechnen und
dann den Rabatt zu ziehen.
6 Artikel zu 0.6€ mit 3% Rabatt
0.6 * 6 * ( 1 - 0.03 ) != ( 0.6 - round(0.6*0.03) ) * 6
In diesem Test wird anhand der PTC-Regel getestet. Es wird also nicht
angemahnt, daß das Ergebnis von der Berechnung in den Belegmasken abweicht.
Siehe auch Ticket 82.
Jan Büren [Thu, 12 May 2016 11:10:59 +0000 (13:10 +0200)]
SelfTest: Überbuchte Bank-Transaktion finden
Es ist möglich, mehrere Rechnungen auf einen Schlag einer Bankbewegungen
zuzuordnen. Aktuell wird an der Oberfläche der Anwendung hier keine
Warnmeldung/Rückmeldung ausgegeben. Eine überbuchte Bankbewegung ist
aber auf jeden Fall nicht buchungskonform und muss entsprechend in der
Datenbank korrigiert werden.
Entsprechend einen Test hierfür geschrieben.
Jan Büren [Wed, 11 May 2016 11:38:21 +0000 (13:38 +0200)]
create_backorder entfernt
Jan Büren [Tue, 10 May 2016 11:20:09 +0000 (13:20 +0200)]
Kontoauszug verbuchen, Startdatum der Verbuchung greater/equal
Wie bei fromdate und auch sonst überall im Programm, entsprechend
das Startdatum der Kontoverbuchung noch als gültigen Wert mitnehmen.
Sven Schöling [Wed, 4 May 2016 08:52:00 +0000 (10:52 +0200)]
TopQuickSearch: changelog Eintrag
Jan Büren [Mon, 9 May 2016 10:44:56 +0000 (12:44 +0200)]
Changelog für Customer-Picker bei Projekt und Kosmetik
Jan Büren [Thu, 21 Apr 2016 12:01:01 +0000 (14:01 +0200)]
Projekt erfassen: CustomerPicker verwenden
Jan Büren [Mon, 9 May 2016 10:40:10 +0000 (12:40 +0200)]
Changelog Update für Abteilung.
Jan Büren [Fri, 22 Apr 2016 10:31:09 +0000 (12:31 +0200)]
Abteilung in Rechnungsübersicht angeben
Moritz Bunkus [Tue, 3 May 2016 16:09:54 +0000 (18:09 +0200)]
Dispatcher: end_of_request() sub aus main namespace verbannt
Moritz Bunkus [Tue, 3 May 2016 07:23:06 +0000 (09:23 +0200)]
Dispatcher: FCGI-Neustart bei modifizierten Dateien via exec anstelle von exit
Gleicher Grund wie in
655f9081d19d201a1084a609beca1c06bef91e5c:
Wenn sich das Script beendet, so kann es sein, dass der Webserver
bereits den nächsten Request zum Script geschickt hat. Ist das der Fall,
kommt es zu einem internal server error für den User.
Statt dessen kann sich das Script selber ausführen. Dadurch werden die
Kommunikationskanäle zwischen Webserver und Script (STDIN, STDOUT,
STDERR) aufrechterhalten.
Moritz Bunkus [Mon, 2 May 2016 12:37:47 +0000 (14:37 +0200)]
Dispatcher: Restart bei hohem Memory-Verbrauch via exec anstelle von exit
Wenn sich das Script im Fall von zu hohem Speicherverbrauch beendet, so
kann es sein, dass der Webserver bereits den nächsten Request zum Script
geschickt hat. Ist das der Fall, kommt es zu einem internal server
error für den User.
Statt dessen kann sich das Script selber ausführen. Dadurch werden die
Kommunikationskanäle zwischen Webserver und Script (STDIN, STDOUT,
STDERR) aufrechterhalten.
Moritz Bunkus [Mon, 2 May 2016 12:26:15 +0000 (14:26 +0200)]
Dispatcher: Requstloop vom dispatcher.fpl nach Dispatcher.pm verschoben
Projekt »keep your main namespace clean«.
Sven Schöling [Mon, 2 May 2016 14:25:58 +0000 (16:25 +0200)]
select styling in lx-office-erp.css
Irgendwer bei Firefox 46 scheint was geraucht zu haben. Das Stylesheet
hatte alle anderen windowmanager decorations überschrieben, aber FF
hat seit 32 select appearance ignoriert. Angeblich aus
Sicherheitsgründen. Das haben sie glücklicherweise gerade rechzeitig
gefixt, weil sie nun das unity7 Theme nochmal kaputter gemacht haben.
Ansonsten wäre das unbenutzbar.
Jan Büren [Fri, 29 Apr 2016 11:03:25 +0000 (13:03 +0200)]
SelfTests Buchungen ohne Steuer auch mit Steuerschlüssel 11, etc filtern
Nicht nur Steuerschlüssel 0 kann steuerfrei sein, sondern auch
diverse andere (tax.rate beachten!)
Jan Büren [Fri, 29 Apr 2016 10:30:26 +0000 (12:30 +0200)]
SelfTests: Verwaiste invoice-Einträge auch auf Zeitraum beschränken
Andreas Rudin [Thu, 28 Apr 2016 22:59:48 +0000 (00:59 +0200)]
Vorlagen mit CH-Einzahlungsscheinen wegen Fehlern nochmals gelöscht
Andreas Zenklusen [Thu, 28 Apr 2016 09:17:13 +0000 (11:17 +0200)]
neue Vorlagen mit Schweizer Bank-Einzahlungsscheinen mit OpenDocument-Makro im Vorlagensatz rev-odt: invoice_besr.odt und sales_order_besr.odt
Andreas Zenklusen [Thu, 28 Apr 2016 07:19:52 +0000 (09:19 +0200)]
Dokumentation zum Makroeinsatz in OpenDocument Vorlagen mit Anleitung zur Konfiguration für den Druck von CH-Einzahlungsscheinen
Andreas Rudin [Wed, 27 Apr 2016 16:38:46 +0000 (18:38 +0200)]
Added files via upload
Moritz Bunkus [Wed, 27 Apr 2016 14:45:24 +0000 (16:45 +0200)]
gl.pl: benutzte Funktionen aus DBUtils auch importieren
Moritz Bunkus [Wed, 27 Apr 2016 14:48:08 +0000 (16:48 +0200)]
Revert "[LINET] Anpassung DB-Upgrades auf vorhandene LINET-Struktur"
This reverts commit
7c920e235989b809f3a546a17f31507d62c00f88.
Moritz Bunkus [Wed, 20 Jan 2016 08:54:07 +0000 (09:54 +0100)]
[LINET] Anpassung DB-Upgrades auf vorhandene LINET-Struktur
Moritz Bunkus [Wed, 27 Apr 2016 12:45:46 +0000 (14:45 +0200)]
Request handling: bei zu hohem Speicherverbrauch erst flushen, dann beenden
Wenn sich das Script sofort beendet, dann werden Daten nicht an den
Webserverprozess geschickt und der wiederum schickt eine unschönen
Internal Server Error an den Client.
Daher zuerst den Request vollständig an den Server schicken und damit
den laufenden Request abschließen, bevor sich der Prozess beendet.
Moritz Bunkus [Tue, 26 Apr 2016 11:11:26 +0000 (13:11 +0200)]
Verkaufslieferscheine: nach Erfassungsdatum filtern können
Moritz Bunkus [Mon, 25 Apr 2016 13:05:19 +0000 (15:05 +0200)]
Lieferscheine: Suche nach Artikelnummer/-beschreibung in Positionen
Moritz Bunkus [Mon, 25 Apr 2016 13:01:34 +0000 (15:01 +0200)]
Einkaufsrechnungen: Suche nach Artikelnummer/-beschreibung in Positionen
Moritz Bunkus [Mon, 25 Apr 2016 12:58:39 +0000 (14:58 +0200)]
Verkaufsrechnungen: Suche nach Artikelnummer/-beschreibung in Positionen
Moritz Bunkus [Mon, 25 Apr 2016 12:50:44 +0000 (14:50 +0200)]
Angebote/Aufträge: Suche nach Artikelnummer/-beschreibung in Positionen
Martin Helmling mh@waldpark.octosoft.eu [Mon, 25 Apr 2016 08:55:29 +0000 (10:55 +0200)]
Rechnungen: Zahlungsein-/-ausgänge nach Datum sortieren(2)
Für Einkaufsrechnungen oder Kreditorenbuchungen muss statt ER_paid die Konten AP_paid
mit sortiert werden.
Ansonsten stehen die falschen Konten hinter den Beträgen
fix Commit
0d37f1e8 vom 30.9.2015
Sven Schöling [Thu, 21 Apr 2016 17:26:48 +0000 (19:26 +0200)]
DB-Upgrade: Queries nicht in der Schleife preparen
Datenbank mit 100k invoice Einträgen braucht Jahre sonst.
Moritz Bunkus [Thu, 21 Apr 2016 13:14:51 +0000 (15:14 +0200)]
Wiederkehrende Rechnungen: Variablen Periodenstart-/-enddatum richtig setzen
Die Perioden beginnen nicht mehr immer nur am 1. des Monats, sondern an
dem Tag, der über das Vertragsstartdatum angegeben ist. Daher müssen
auch die Variablen <%period_start_date%> und <%period_end_date%> anhand
des Vertragsstartdatums gesetzt und dürfen nicht auf den Monatsbeginn
beschnitten werden.
Sven Schöling [Thu, 21 Apr 2016 11:10:28 +0000 (13:10 +0200)]
Keine Default Exporte mehr in den main:: space
Ich hoffe ich habe alle erwischt. Dieser Commit, macht folgendes:
Exports in den main:: space passieren immer, wenn ein bin/mozilla/
script ein Modul einbindet, das @EXPORT setzt.
Laut meiner ack/grep Magie sind das SL::MoreCommon und SL::Helper::Flash
gewesen.
In beiden Fällen waren das importe, wo die eigentlichen Funktionen
vorher im main:: space gelegen haben und dann nachträglich in ein Modul
verschoben wurden.
Ich habe also:
1. Im script selber die Exportliste exakt auf die Funktionen gesetzt die
das script selber benutzt, gefunden mit dem oneliner:
perl -MSL::Helper::Flash -nle 'my $re = join "|", \
@SL::Helper::Flash::EXPORT; print $1 if /($re)/' bin/mozilla/dn.pl \
| sort | uniq
Das waren in Flash: flash und in MoreCommon: save_form und restore_form.
2. Für den Fall, dass andere scripte im main:: Space diese Funktionen
benutzen alle anderen bin/mozilla Scripte nach diesen Funktionen
durchsucht, und für den Fall dass sie _nicht_ selber ein require
b/m/common.pl machen die entsprechenden imports hinzugefügt.
Sven Schöling [Thu, 21 Apr 2016 09:57:28 +0000 (11:57 +0200)]
Auth: DBUtils nicht den namespace vollmüllen lassen
Sven Schöling [Thu, 21 Apr 2016 09:56:49 +0000 (11:56 +0200)]
common: DBUtils nicht den main:: space vollmüllen lassen
Sven Schöling [Thu, 21 Apr 2016 09:56:36 +0000 (11:56 +0200)]
DBUtils: doku
Moritz Bunkus [Wed, 20 Apr 2016 13:46:17 +0000 (15:46 +0200)]
Brieffunktion: Umstellung Druck auf Template Toolkit
Damit wird auch alter Backendcode wie IS->get_customer() nicht mehr
benötigt.
Moritz Bunkus [Wed, 20 Apr 2016 12:09:09 +0000 (14:09 +0200)]
Brieffunktion: Löschen von Entwürfen gefixt
Moritz Bunkus [Wed, 20 Apr 2016 11:56:18 +0000 (13:56 +0200)]
Brieffunktion: Werte in Entwurfsliste richtig formatieren
Moritz Bunkus [Wed, 20 Apr 2016 11:52:16 +0000 (13:52 +0200)]
Brieffunktion: unbenutzte Tabellenspalten entfernt, vc_id → customer_id umbenannt
Moritz Bunkus [Wed, 20 Apr 2016 10:36:59 +0000 (12:36 +0200)]
Wiederkehrende Rechnungen: Hinweis für leeres Feld »AbsenderIn« noch deutlicher
Moritz Bunkus [Wed, 20 Apr 2016 09:56:06 +0000 (11:56 +0200)]
Wiederkehrende Rechnungen: Hinweis für leeres Feld »AbsenderIn«
Moritz Bunkus [Wed, 20 Apr 2016 09:55:42 +0000 (11:55 +0200)]
Wiederkehrende Rechnungen: Feld für E-Mail-Absender richtig togglen
Moritz Bunkus [Wed, 20 Apr 2016 09:55:16 +0000 (11:55 +0200)]
WebDAV-Liste: noch mehr Styling
Moritz Bunkus [Wed, 20 Apr 2016 09:06:06 +0000 (11:06 +0200)]
Brieffunktion: WebDAV-Verzeichnisinhalt anzeigen
Moritz Bunkus [Wed, 20 Apr 2016 09:05:41 +0000 (11:05 +0200)]
WebDAV: freundliche Meldung anstelle leerer Tabelle, wenn keine Dokumente vorhanden
Moritz Bunkus [Wed, 20 Apr 2016 09:02:51 +0000 (11:02 +0200)]
WebDAV-Liste analog zu anderen Tabellen stylen
Moritz Bunkus [Tue, 19 Apr 2016 13:51:34 +0000 (15:51 +0200)]
Changelog: Update
Moritz Bunkus [Tue, 19 Apr 2016 13:48:23 +0000 (15:48 +0200)]
Changelog: Punkte für Brieffunktion optisch abgesetzt
Moritz Bunkus [Tue, 19 Apr 2016 13:47:05 +0000 (15:47 +0200)]
Wiederkerende Rechnungen: Implementation automatischer Versand via E-Mail
Moritz Bunkus [Tue, 19 Apr 2016 08:43:43 +0000 (10:43 +0200)]
Wiederkerende Rechnungen: Konfiguration für automatischen Versand via E-Mail
Moritz Bunkus [Tue, 19 Apr 2016 08:45:51 +0000 (10:45 +0200)]
locales für Brief-Anpassungen
Jan Büren [Tue, 19 Apr 2016 13:21:29 +0000 (15:21 +0200)]
Revert "Einheiten beim Fertigen beachten"
This reverts commit
be6eabfc4b62af1a8173e5cbcaff0b7f0d9b6db4.
Nein, das war kein Fix für http://trac.kivitendo.de/ticket/2232
Implementiert wurde (imho):
a) Wenn es eine gültige Einheit gibt
b) Dann nimm das erstbeste Einzelteil einer Erzeugnis-Ware
c) und konvertiere die ausgewählte Einheit des Erzeugnis in die Einheit
der erstbesten Erzeugnis-Ware.
Conflicts:
SL/WH.pm
Jan Büren [Tue, 19 Apr 2016 13:10:52 +0000 (15:10 +0200)]
Erzeugnis fertigen verbessert
Transfertyp assembled hinzugefügt
Bei gefertigten Erzeugnissen sowie bei verbrauchten Waren
das tagesaktuelle Datum gesetzt (vorher wurde gar keins gesetzt).
Martin Helmling mh@waldpark.octosoft.eu [Tue, 19 Apr 2016 11:14:56 +0000 (13:14 +0200)]
Rechnung aus Lieferscheinen hat keine Zahlungsbedingung
Hier wird nun die Zahlungsbedingung des Kunden oder Lieferanten genommen,
falls dieser eine hat
Martin Helmling mh@waldpark.octosoft.eu [Tue, 19 Apr 2016 11:11:13 +0000 (13:11 +0200)]
Verkauf/Rechnungen/Massenerstellung: keine Zahlungsbedingungen
Falls im Lieferschein keine Zahlungsbedingungen gesetzt sind, (normalerweise nicht)
wird die des Kunden für die Rechnung eingesetzt
Bernd Bleßmann [Tue, 19 Apr 2016 09:41:36 +0000 (11:41 +0200)]
trailing whitespace entfernt
Martin Helmling mh@waldpark.octosoft.eu [Mon, 18 Apr 2016 17:00:46 +0000 (19:00 +0200)]
Gelieferte Mengen über Recordlinks ermitteln(2)
Für den Verschönerungsverein einige Stilanpassungen
Moritz Bunkus [Mon, 18 Apr 2016 15:47:28 +0000 (17:47 +0200)]
Brieffunktion: Versand per E-Mail implementiert
Moritz Bunkus [Mon, 18 Apr 2016 15:09:17 +0000 (17:09 +0200)]
Brieffunktion: Ansprechpersonen anbieten, wenn Kunde/Lieferant ausgewählt
Moritz Bunkus [Mon, 18 Apr 2016 13:58:38 +0000 (15:58 +0200)]
Brieffunktion: Nutzung von SL::Webdav zur Speicherung im Webdav
Common::copy_file_to_webdav_folder ist alter Code, der bei neuem Code
nicht mehr benutzt werden sollte.
Moritz Bunkus [Mon, 18 Apr 2016 13:26:22 +0000 (15:26 +0200)]
Brieffunktion: Drucken auf Drucker gefixt
1. Drucker wurden nicht geladen. Daher gab's die Option zum Drucken
direkt auf einen Drucker nicht.
2. Temporäre Druckedateien wurden anschließend nicht gelöscht.
3. Der anschließende Redirect nutzte falsche Variablen und hat daher de
facto auf die Maske zum Anlegen eines neuen Briefs redirectet.
Moritz Bunkus [Mon, 18 Apr 2016 13:19:37 +0000 (15:19 +0200)]
SL::DB::Printer: »Dokument an Drucker schicken« zentralisiert
Die neue Funktion print_document übernimmt das Spawnen des externen
Prozesses und schickt das Dokument an den Drucker. Das Dokument kann
entweder direkt als Inhalt oder als zu sendender Dateiname übergeben
werden.
Moritz Bunkus [Mon, 18 Apr 2016 12:51:06 +0000 (14:51 +0200)]
Brieffunktion: Löschen von Briefen gefixt
Moritz Bunkus [Mon, 18 Apr 2016 12:45:09 +0000 (14:45 +0200)]
Brieffunktion: beim Drucken im WebDAV speichern
Moritz Bunkus [Mon, 18 Apr 2016 10:43:32 +0000 (12:43 +0200)]
(I)LIKE-Argumente immer mit Funktion SL::DBUtils::like erstellen
Moritz Bunkus [Mon, 18 Apr 2016 09:37:10 +0000 (11:37 +0200)]
SL::Common: unbenutzte Funktionen retrieve_{projects,employees} entfernt
Moritz Bunkus [Mon, 18 Apr 2016 08:04:18 +0000 (10:04 +0200)]
Funktion »like« von Form nach DBUtils verschoben
Das ist eine Datenbank-Quoting-Funktion und hat daher nichts mehr in
Form zu suchen.
Martin Helmling mh@waldpark.octosoft.eu [Sun, 17 Apr 2016 11:13:26 +0000 (13:13 +0200)]
Gelieferte Mengen über Recordlinks ermitteln
Die gelieferte Menge pro Position wird über die Recordlinks der Items
zwischen Auftrag und Lieferschein(en) ermittelt.
So werden auch gleiche Artikel auf unterschiedlichen Positionen getrennt behandelt.
Ebenso ob ein Auftrag 'delivered' ist, d.h. ob alle Mengen vollständig in Lieferscheinen erfasst sind.
Für nachträglich hinzugefügte Lieferscheine oder Lieferscheine ohne Item-Recodlinks wird ein
Fallback-Verfahren durchgeführt, das beginnend von der ersten Auftragsposition
versucht die Artikel in den Lieferscheinen zuzuordnen.
Sven Schöling [Fri, 15 Apr 2016 17:18:58 +0000 (19:18 +0200)]
Menu: Fehlerchecks beim yaml einlesen
2 häufige Fehler abfangen:
- wenn ids in einer datei doppelt vorkommen (passiert beim editieren)
- wenn YAML selber Fehler wirft gab es bisher ein HTTP 500
Martin Helmling mh@waldpark.octosoft.eu [Fri, 15 Apr 2016 14:38:48 +0000 (16:38 +0200)]
PartPicker: partnumber und description durchgängig
Aus dem Dialog wurden 'partnumber' und 'description' nicht an set_item() übergeben.
Konsistent zur Auswahl aus dem Pulldown des Partpicker.
(vorher musste man 'set_fat_item=1' setzen, um an die Daten zu kommen, aber zusätzlicher AJAX-Call)
Martin Helmling mh@waldpark.octosoft.eu [Fri, 15 Apr 2016 14:23:49 +0000 (16:23 +0200)]
Sepa-Überw: Fehlermeldung beim Überweisen mit Skonto
Hier fehlte eine Abfrage. Fehlermeldung auf die Zahlungsart beziehen
Jan Büren [Fri, 15 Apr 2016 08:31:10 +0000 (10:31 +0200)]
Gelangensbestätigung: LaTeX-Druckvorlage, Doku und Übersetzung
Jan Büren [Sat, 30 Jan 2016 15:29:28 +0000 (16:29 +0100)]
Gelangensbestätigung als Weiche in io.pl UND Helper PrintOptions.pm
Sven Schöling [Tue, 12 Apr 2016 14:45:40 +0000 (16:45 +0200)]
5.10 compat: mehr yada-yada ops
(nach ... acken ist nicht trivial)
Sven Schöling [Tue, 12 Apr 2016 14:36:11 +0000 (16:36 +0200)]
perl5.10 compat: ellipsis (yada-ayada) ist da syntax error
Sven Schöling [Mon, 11 Apr 2016 10:05:18 +0000 (12:05 +0200)]
DATEV: Debitoren/Kreditoren Split gilt nicht in Dialogbuchen
G. Richardson [Fri, 8 Apr 2016 10:04:27 +0000 (12:04 +0200)]
R&B Druckvorlagen - mehr Seitenbreite + Logo breiter + Footer hoch
Jan Büren [Fri, 8 Apr 2016 08:43:32 +0000 (10:43 +0200)]
GuV und BWA: Bei Projektfilter Zeitraum richtig setzen
Moritz Bunkus [Thu, 7 Apr 2016 11:17:38 +0000 (13:17 +0200)]
Offene Forderungen/Verbindlichkeiten: bei Textfeldern führende/anhängende Whitespaces entfernen
Moritz Bunkus [Thu, 7 Apr 2016 11:15:47 +0000 (13:15 +0200)]
Buchungsjournal: bei Textfeldern führende/anhängende Whitespaces entfernen
Moritz Bunkus [Thu, 7 Apr 2016 11:11:03 +0000 (13:11 +0200)]
Lagersuchen: bei Textfeldern führende/anhängende Whitespaces entfernen
Moritz Bunkus [Thu, 7 Apr 2016 11:02:33 +0000 (13:02 +0200)]
Artikelsuche: bei Textfeldern führende/anhängende Whitespaces entfernen
Sven Schöling [Wed, 6 Apr 2016 16:22:42 +0000 (18:22 +0200)]
SL::DB::Object: warnings
Sven Schöling [Wed, 6 Apr 2016 15:36:51 +0000 (17:36 +0200)]
Form: globals nicht mehr beim Drucken in Form ablegen
Moritz Bunkus [Wed, 6 Apr 2016 14:45:50 +0000 (16:45 +0200)]
SL::Controller->send_file: trueish zurückgeben
send_file meldet Fehler (z.B. »kann Datei nicht öffnen«) durch
croak(). Im Erfolgsfall sollte die Funktion aber regulär einen wahren
Wert zurückgeben, um ordentlich in eval{} benutzt werden zu können.
Moritz Bunkus [Fri, 17 Jul 2015 16:16:14 +0000 (18:16 +0200)]
SL::DB::Object: clone_and_reset unter Umgehung von itime, mtime
Moritz Bunkus [Wed, 6 Apr 2016 12:26:17 +0000 (14:26 +0200)]
CVar: Shipto-CVars beim Clonen mit clonen
Moritz Bunkus [Wed, 6 Apr 2016 12:16:17 +0000 (14:16 +0200)]
SL::DB::Invoice->new_from: individuelle Lieferadressen richtig behandeln
Individuelle Lieferadressen werden nur von shipto.trans_id zu ar.id
verlinkt, nicht aber in ar.shipto_id. Die Implementation ist analog zu
SL::DB::DeliveryOrder->new_from.
Moritz Bunkus [Wed, 6 Apr 2016 11:59:31 +0000 (13:59 +0200)]
DeliveryOrder->new_from: kein $custom_shipto-Objekt zurückgeben
Falls das Quellobjekt eine individuelle Lieferadresse besaß, wurden bei
new_from() zwei Objekte zurückgegeben: das neue Lieferscheinobjekt und
ein Clone der individuellen Lieferadresse. Diese waren nicht verknüpft.
Der Aufrufer musste daher zuerst das Lieferscheinobjekt speichern,
dessen ID beim gecloneten Lieferadressenobjekt hinterlegen und das
anschließend speichern.
Dies ist umständlich und fehlerträchtig. So hat z.B. der einzige
bisherige Nutzer dieses Interfaces,
SL::DB::Order->convert_to_delivery_order, das bereits falsch gemacht und
vergessen, beim Lieferadressenobjekt die ID des neuen
Lieferscheinobjektes einzutragen. Somit wurden Lieferadressen erzeugt,
die keinerlei Verknüpfung hatten.
Das geänderte Interface hinterlegt das Objekt für die individuelle
Lieferadresse schlicht in $new_delivery_order->custom_shipto. Dort wird
das Objekt gespeichert, wenn der Lieferschein selber gespeichert wird.
Moritz Bunkus [Wed, 6 Apr 2016 11:58:04 +0000 (13:58 +0200)]
Shipto: Methode zum Clonen in SL::DB::Shipto und nicht in DeliveryOrder->new_from
Moritz Bunkus [Tue, 5 Apr 2016 14:45:12 +0000 (16:45 +0200)]
CVar: Dokumentation um Lieferadressen-CVars ergänzt
Moritz Bunkus [Tue, 5 Apr 2016 14:22:01 +0000 (16:22 +0200)]
CVars: Lieferadressen-CVars bei Ein-/Verkaufsbelegen benutzen können
Moritz Bunkus [Tue, 5 Apr 2016 12:13:21 +0000 (14:13 +0200)]
CVar-Helfer: cvars_by_config nach Config-Reihenfolge sortiert zurückgeben
Moritz Bunkus [Tue, 5 Apr 2016 10:43:53 +0000 (12:43 +0200)]
CVars: Lieferadressen-CVars in Stammdaten bearbeiten
Moritz Bunkus [Mon, 4 Apr 2016 14:06:18 +0000 (16:06 +0200)]
CVars: Konfigurationen für Lieferadressen anlegen können
Moritz Bunkus [Tue, 5 Apr 2016 10:43:21 +0000 (12:43 +0200)]
CustomerVendor: CVar-Aufbereitungs- und -Speicher-Code in eigene Subs ausgelagert