Benutzerdef. Variablen f. Waren per Voreinstellung für Belege aktivieren/deaktivieren.
Steuerzone - korrekter Name von Warenbestand in Template
convert_taxzone - Fall keine Buchungsgruppen berücksichtigen
Für den Fall, daß in dem Mandanten gar keine Buchungsgruppenkonfiguriert sind (z.B. bei einem frischen Schweizer Kontenrahmen), wirddie Umwandlung der Buchungsgruppen übersprungen.
Steuerzone - Sortierreihenfolge bei Customer/Vendor
Sortierreihenfolge im Dropdown bei den Stammdaten einhalten.Dadurch ist die Steuerzone mit der höchsten Sortierpriorität immer alsDefaults bei neuen Kunden/Lieferanten eingestellt (standardmäßigInland).
Steuerzone: in Upgrade-Datei customer/vendor angepasst
Macht man eigentlich nachträglich nicht, aber da das Update noch sofrisch ist...
Beim Umstellen von taxzone wurde vergessen, auch die Einträge derStandardsteuerzone bei den Kunden und Lieferanten anzupassen. Im Zuge...
Nachtrag Steuerzone - Tests angepasst
Typo-Fix und kleine Verbesserungen in deutscher Übersetzung.
L.radio_button_tag: id erhalten wenn sie schon vorher gesetzt ist.
Installcheck: Version von Archive::Zip korrigiert.
CsvImport - Part : Anpassung für neue Steuerzonen
statt income/expense_accno_id_0 werden jetzt bei importiertenWaren/Dienstleistungen die Konten-IDs der Standardsteuerzone verwendet.(Wobei die genau ID ja egal ist, wichtig ist, ob etwas gesetzt ist).
Buchungsgruppe anlegen/bearbeiten/anzeigen - Logik umgestellt
3 Fälle in Maske berücksichtigen:
Steuerzone in price_tax_calculator.t angepasst
Neue Methode orphaned für Buchungsgruppe
Zum Prüfen, ob eine Buchungsgruppe gelöscht oder bearbeitet werden kann.
Fehlende MetaSetup Dateien für Steuerzonenupdate
Console Shortcut für chart (analog zu part)
DB Code für Buchungsgruppe und TaxzoneChart aufgeräumt
In SL::DB::Manager::Buchungsgruppe die Methoden inventory_accno undinventory_accno_description entfernt, da hier einfachinventory_account->accno und inventory_account->description benutztwerden können.
Beim Erfassen von Steuerzonen Standardkonten verwenden
Vorauswahl von Erlös- und Aufwandskonten laut Mandantenkonfiguration.Im Gegensatz zum Anlegen von Buchungsgruppen kann bei der Steuerzonekein Bestandskonto konfiguriert werden, da dies nur von derBuchungsgruppe abhängt.
Buchungsgruppen - löschen und beim Erstellen Standardkonten benutzen
Wenn eine Buchungsgruppe noch nicht einer Waren zugeordnet ist kanndiese noch bearbeitet (Kontenzuordnung) oder gelöscht werden.
Beim neu Erstellen von Buchungsgruppen werden die Standardkonten aus der...
Steuerzone - Default eingeführt (statt id 0)
Als Defaultsteuerzone gilt nun die Steuerzone mit dem höchsten Sortcode, dernicht obsolet ist (in der Regel also id 1).
Bernd hatte noch ein paar Stellen gefunden, wo als Default 0 gesetzt wird.Außerdem Doku angepasst, taxzone_id ist nun nicht mehr im Bereich 0-3.
Nachtrag zu Steuerzonen: benutzte Klassen mit require einbinden.
Steuerzonenfeature - tags auf Version 3.1.0 anpassen
Changelog Eintrag für konfigurierbare Steuerzonen
Steuerzonen ungültig machen
jede Steuerzone kann man unter "System->Steuerzonen->auf Steuerzone klicken" individuell auf ungültig (obsolete) setzen.
ungültig heißt:
Änderung von Upgrade-Script change_taxzone_id_0
Die Tabellen ar und ap werden jetzt auch an den ID-Wechsel angepasst.
Weiterhin werden 2 Fremdschlüssel gesetzt, die durch den Wechselaufgefallen sind.
Sortieren von Steuerzonen in Belegen
Die Sortierreihenfolge von Steuerzonen in Belegen wurde bisher nochnicht in den Belegen berücksichtigt.
id ungleich Null setzen in tax_zones
In der Tabelle tax_zones gibt es sehr häufig noch Einträge mit id=0.Dadurch kommt es bei der Anzeige, und auch beim Bearbeiten diesesEintrags zu fehlern. Dieser Commit vergibt verändert den Wert derid, s.d. die id einen von 0 verschiedenen Wert hat.
Steuerzonen und Buchungsgruppen bearbeiten
Nachdem man Steuerzonen und Buchungsgruppen auf Datenbankebenebearbeiten kann, ist jetzt auch eine Bearbeitung an der Ober-fläche möglich.
Alter Code, der für die Anzeige/Bearbeitung/Erstellung vonBuchungsgruppen entwickelt wurde hat nicht mehr funktioniert...
Auf Datenbankebene Steuerzonen konfigurierbar gemacht
Damit können jetzt mehr als die 4 Standardsteuerzonen eingerichtetwerden. Die bisherigen Steuerzonen wurden aus der Tabellebuchungsgruppen in die neue Tabelle taxzone_charts ausgelagert.
Konzeption siehe Ticket #2295...
Installationcheck: --silent switch um es in shell scripte einzubinden
Typo-Fix: Trennzeichen für CVar-Flags ist ':' nicht ';'.
round_amount: Fix für falsches Runden bestimmter Werte
Gewisse Werte wie z.B. 33,675 wurden bei 2 Stellen falsch gerundet,nämlich auf 33,67 anstelle von 33,68. Bei anderen Werten hingegenfunktionierte es (beispielsweise 149,175 @ 2 → 149,18).
Grund war, dass durch das Addieren von 0.5 wieder Fließkommaberechnung...
GetModels: Funktion zum Setzen zusätzlicher URL-Parameter
L: Eindeutige ids für radio_tag wiederhergestellt.
Die waren in da2fecb453416b3731a896ab6d35e9992be3d9eb kaputtgegangen.
VERSION auf unstable gesetzt
Revert "POD-Dokumentation aktualisiert" die methoden werden jetzt generisch generiert.Doku ist korrekt und aktuell. My bad.This reverts commit b04128a335772d4cb9a30b0fde52413796981de0.
HTML-Tag richtig schliessen und Kosmetik
Standardmässiges Ein- und Auslagern von Dienstleistungen per Mandantenkonfiguration eingestellt
Mandantenkonfiguration erweitert:Dienstleistungen NICHT automatisch AuslagernStandardmässig werden Dienstleistungen wie Waren und Erzeungnisse behandelt undso auch beim Standard-Auslager-Verfahren. Entsprechend die Mandantenkonfiguration (defaults)angepasst.
POD-Dokumentation aktualisiertget_ Methoden werden nicht mehr einzeln für die Tabelle defaults gesetzt
HTML::Util: Tests, und Bugfixes für ein paar Randbedingungen
HTML::Util: Short circuit ohne $value. Behebt gleichzeitig eine Warnung.
Tests: neue Background Job Klasse auch erwarten
SL::Locale::String: @_ in neue Ref kopieren anstatt \@_
ansonsten verschwinden aus irgend einem Grund alle Elemente außer demersten.
Hintergrundjob zum Löschen abgelaufener Sessions
CreatePDF-Helfer: Anpassung an API-Änderung SL::Template.*new
PreisTaxCalculator: Caching-Abfrage für »keine Positionen« gefixt
Kunden-/Lieferantenstammdaten: CVar-Input-Felder mit richtigem Namen versehen
Ging leider im Commit »CustomVariables: Verwendung mit RDBO als Writerimplementiert« kaputt, weil außerhalb dieses Templates »var_name«bereits gesetzt war und somit alle CVar-Input-Felder denselben Namen...
Handle zur LXDebug-Logdatei auch UTF-8 encoden
Wenn GREEK CAPITAL LETTER DELTA im Text, dann auch utf8 flaggen.
Wiederkehrende Rechnungen: Variablen für lange Monatsnamen gefixt
Ging im Commit »Wiederkehrende Rechnungen: Formatierung vonDatumsdruckvariablen über freie Formatstrings« kaputt. Danach waren dieVariablen <%current_month_long%> schlicht leer.
task_server: pro Job mit Sprache vom konfiguriert initialisieren
…und die Systemsprache nur als Fallback nutzen.
Hat in der Praxis vermutlich keinerlei Auswirkung, ist aber dieImplementation, wie sie sein sollte.
LXDebug::log_time: Differenz zum letzten Aufruf in ms mit ausgeben
Druckvorbereitung: Lieferschein-Model mit richtigem Primärattribut laden
Das ging im Commit »Einkauf/Verkauf: Lieferadressenfelder nie ausStammdaten vorbelegen« kaputt.
SL::DB::(Delivery)Order,(Purchase)Invoice: Aliase »add_items«
Die Relationships für die Positionen heißen in allen Klassenunterschiedlich. Daher gibt es schon seit Längerem den Alias »items« inallen Klassen.
Das Hinzufügen von Positionen hingegen erforderte bisher, dass man den...
Aufträge bei Anzeige der Lieferungen in Kundenstammdaten richtig zuordnen.
Und richtigen Beleg (VK/EK) öffnen.
Behebt #2467.
Hinweis von Sven format_amount hat nichts in Template Verzweigung zu suchen.Keine Ahnung warum mein Test am Freitag, dass nicht korrekt evaluiert hat.Wahrscheinlich ist qty undef. Es reicht hier aber auch aus, einfach zu prüfen, obes sich um einen oder mehrere Einträge in STOCK_INFO handelt.
Hinweis von Sven format_amount hat nichts in Template Verzweigung zu suchen.Keine Ahnung warum mein Test am Freitag, dass nicht korrekt evaluiert hat.Wahrscheinlich ist qty undef. Es reicht hier auch aus, einfach zu prüfen, obes sich um einen oder mehrere Einträge in STOCK_INFO handelt
DB-Trigger, um sicher zu stellen, dass ein Lagerplatz auch zum Lager gehört.
Betrifft #2485.
Merge branch 'master' of github.com:kivitendo/kivitendo-erp
Einkaufslieferschein, Einlagern mit mehreren Lagern verbessertMehrfaches Aufrufen vom Fragezeichen Einlagern-Knopf, bzw. Erneuern der Posititonseinlagermaskehat die Zuordnung zu Lager -> Lagerplatz fehlerhaft gesetzt, falls ein Standardlagerplatz inden Stammdaten gesetzt war....
UStVA: Position 47 in Summe 53 mit aufnehmen
2 Warnungen in den Tests beseitigen
Lieferadresse eingeben: Möglichkeit zum Kopieren aus Stammdaten
Im Dialog für die Eingabe einer individuellen Lieferanschrift gibt esnun die Möglichkeit, die Felder aus den Stammdaten desKunden/Lieferanten vorzubelegen. Dabei werden sowohl dieRechnungsadresse als auch alle Lieferadressen angeboten....
Verkauf: leeren Eintrag in Lieferadressendropdown klarer benennen
Angezeigt wird nun »Keine/individuelle Lieferadresse«, um es denBenutzern klarer zu machen, dass die über den Button »Lieferadresse«eingetragene Lieferadresse greift.
Einkauf/Verkauf: Lieferadressenfelder nie aus Stammdaten vorbelegen
Das neue Verhalten ist wie folgt:
- Weder die shipto_id (die Drop-Down-Box in den Belegmasken) noch die individuellen shipto*-Felder werden weder beim Neuanlegen eines Beleges noch bei Wechsel des Kunden aus den Datenbanken belegt....
DateTime: (add|subtract)_businessdays Funktionen
Rundungsfehler bei periodischen Rechnungen mit Einzelpreisen ...
... mit einer Nachkommastelle und Rabatt behoben.
siehe auch commit a22b8118e0bd68acac8a2d7b02a2d4f9fd0eaff1
Zudem einen Test dazu angelegt. Allerdings weicht die Art, wie derPriceTaxCalculator und die Beleg-Masken rechnen, von einander ab....
FollowUp(Access)-Rose-Models: sinnvollere Namen für Relationships
rose_auto_create_model.pl: Relationship-Namen anhand der Spaltennamen mappen
Bisher wurde das Umbenennen der generierten Relationships anhand des vonRose vergebenen Namens der Relationship vorgenommen. Das istproblematisch, weil diese wiederum von der Reihenfolge abhängen, in der...
Kunden-/Lieferantenstammdaten: Maps-Link mit Firmenadresse als Routing-Ausgang
Spaltentyp Text anstelle von varchar() in diversen Tabellen Teil 3
Kunden-/Lieferantenstammdaten: Beschränkungen für Feldlängen entfernt
…da die Datenbankspalten inzwischen alle vom Typ TEXT und nicht mehrVARCHAR sind.
Spaltentyp Text anstelle von varchar() in diversen Tabellen Teil 2
Tabelle »shipto«
Lieferantenauftrag → Kundenauftrag: Verkaufspreis als Einkaufspreis übernehmen
Der Preis, den ich beim Lieferanten zahlen musste (alte Maske:sellprice_N) ist dann im weiteren Verkaufsprozess derEinkaufspreis (neue Maske: lastcost_N).
Generische Unterstützung für CTI: Click-to-dial
ReportGenerator: class für Links angeben können
SL::MoreCommon: benutztes Encode auch usen
USTVA: Analog zu b0f569c auch Position 46 umdrehen.
Neuer Bericht »Liquiditätsvorschau«
Verkaufsbelege: optional nur Projekte des Kunden anbieten
Auch dieses Feature kann über die Mandantenkonfiguration eingeschaltetwerden.
Instance-Conf am Anfang jedes Requests laden
Angebote: neue Felder Auftragswahrscheinlichkeit, Voraus. Abrechnungsdatum
Einkaufs-/Verkaufsprozesse: optionale Einschränkungen für gewisse Aktionen
Über die Mandantenkonfiguration kann verboten werden, dass gewisseAktionen in den Einkaufs- und Verkaufsprozesse durchgeführtwerden. Diese sind:
- Direkte umwandlung von Verkaufsangeboten und -aufträgen in...
Offene Transaktionen vor DB-Upgrades comitten
Hintergrund ist, dass Locks potenziell vorhanden sein können. EinfachesBeispiel: $::instance_conf wird geladen (dadurch implizitesACCESS-SHARE-Lock auf »defaults«), Upgrade will Schema von »defaults«verändern, was dann hängt, weil dafür ACCESS-EXCLUSIVE benötigt wird –...
CSV-Helfer-Test: In-Memory-Streams mit richtigem Encoding initlisieren
Einkauf/Verkauf: Vorgangsbezeichnung in Suche default an…
…sofern in der Mandantenkonfiguration das Erzwingen der Eingabe derVorgangsbezeichnung eingeschaltet ist.
Einkauf/Verkauf: Eingabe der Vorgangsbezeichnung optional erzwingen
Wird über eine Option in der Mandantenkonfiguration eingeschaltet.
Auftragsmaske: JavaScript-Checks für Speichern aktiver per. Rechnungen nach kivi.SalesPurchase verschoben
Lieferscheinmaske: JavaScript-Checks für Lagermenge nach kivi.SalesPurchase verschoben
DB-Schema-Anpassungen für »Spaltentyp Text anstelle von varchar() in diversen Tabellen«
Projektliste: kein Filterkriterium für Status == alle
…und nicht »nie benutzt«
Kundenauswahl bei Summen-/Saldenliste
Vor E-Mail-Versand prüfen, ob Empfänger+Betreff+Body vorhanden
Angebote/Aufträge drucken: auch das Order-Objekt ausliefern
Im Druck auch den Typ von Artikeln mit ausliefern
special_chars: U+00A0 NO-BREAK SPACE in latex erkennen und korrekt rendern.
Das Zeichen passiert oft, wenn Artikelbeschreibungen von Webseiten vonLieferanten copy&pasted wird. Webseiten padden ihre Daten gerne mit dasdann als U+00A0 gerendert wird, und landet so in der Datenbank.
SL::DB::Invoice: Verknüpfung auf die Buchungsobjekte
print_html_template auch mit scalarrefs als file aufrufbar gemacht
Ausserdem die Fehlermeldung bei nicht korrektem aufruf mit header angeben.
print_form optional ohne redirect
Form->error: confess anstelle von STDERR bei Fehlern von der Console aus benutzen