ar, ap oder gl Objekt eines acc_trans Objects holen
neue Methode record in SL::DB::AccTransaction
Item-Positionen für Rechnungen in DB: items_sorted sortiert nach postition …
Item-Positionen für Rechnungen in DB: DB-Upgrade-Skript; Rose
Positionen der Artikelzeilen für Rechnungen in der Datenbank speichern.
deliver_order_items_id mit inventory verknüpft
Falls Lieferscheine Warenbewegungen auslösen, sind jetzt auch die einzelnen Position "rückverfolgbar" und nicht nur der Beleg. Entsprechende Fremdschlüssel gesetzt
FlattenToForm: Zugriff auf nicht definierte Variable verhindern
Passierte, wenn bei Rechnung das Lieferdatum in den Positionen leer war.
FlattenToForm: in Rechnungen Positions-reqdate als reqdate & deliverydate_oe bereitstellen
So macht es IS.pm nämlich auch.
Part: long_description in displayable_name umbenannt
zur Vereinheitlichung der Nomenklatur.
Lieferanten im Autocomplete von Pickern korrekt behandeln
bei Customer funktionierte es, Code an Customer angepasst.
SL::DB::CustomVariables::value_as_text hat keine Text zurückgegeben, dasgab Fehler im Autocomplete, wenn eine Objekt in der Auswahl war, welches...
Item-Positionen in DB: items_sorted sortiert nach postition …
in Order und DeliveryOrder
Item-Positionen in DB: DB-Upgrade-Skript; Rose
Positionen der Artikelzeilen für Angebote/Aufträge und Lieferscheine mitin der Datenbank speichern.
Neues Feature: Chartpicker
Praktisch komplett analog zum Partpicker, danke Sven für diePionierleistung!
Es gibt natürlich ein paar Unterschiede bei den Filteroptionen, z.B.kann man im Popup nur bebuchte Konten anzeigen lassen, oder dieErgebnisliste nach der Kontenart einschränken. Es wird auch immer nur...
get_balance_starting_date nach SL/DB/Helper/AccountingPeriod.pm
neuer Helper, wohin die Funktion get_balance_starting_date aus SL/RP.pmhin ausgelagert wurde. Wird auch im Chartpicker benutzt.
Lieferscheine benötigen auch Preisquellen -> customervendor Funktion auch für Lieferscheine -> Typ Kunde oder Lieferant (is_customer) entsprechend analog
PriceRule: customervendor accessor in Rechnungen
PriceRule: Ein menüeintrag und Typen frei filterbar
PriceRule: reqdate für Invoice und PurchaseInvoice
PriceRule: Preisregeln können jetzt auch Rabatte
ausserdem Doku
PriceRule: Mehr Filteroptionen
PriceRule: Regeldetails anzeigen
PriceRule: Anzeige von Menge ge/le ops korrigiert
PriceRule: Belegdatum als Kriterium hinzugefügt
PriceRule: Bei Mengen statt "<", ">" die ">=" und "<=" anbieten.
PriceRule: Priorität auf 2 Werte einschränken
PriceRule: Waren auch im Einkauf zulassen.
PriceRule: Vergleiche waren falsch herum
PriceRule: bessere Validierung und Lokalisierung
PriceRule: Filter nach Ware implementiert
PriceRule: Korrektes Matching von Nulls
PriceRule: Fehler vermeiden wenn noch keine Preisregeln angelegt sind.
PriceRule: Erste Version
PriceSource: Rabattbehandlung
PriceSource: Konfiguration
PriceSource: Mehr Informationen an Preise übergeben
record + record_item verfügbar gemachtbest_price für pricegroupsPrice: spec/source entzerrt
PriceSource: Erste Version
- Preisgruppen und Stammdaten sind implementiert- Persistenz in allen Belegen funktioniert- Rudimentäre Visualisierung funktioniert- Klassen sind alle da
- Doku fehlt- Verkauf/Einkaufweiche fehlt- best_price ungetestet- Preisgruppen hängen noch nicht von Verkäufer ab...
PriceTaxCalculator: Doku-Fix
Typos in Filtered Doku
Typos in LinkedRecords Dokumentation
displayable_name für business, partsgroup, pricegroup
PTC-Doku um API-Beispielsaufruf ergänzt
PriceTaxCalculator: für Items berechnete flüchtige Werte zurückgeben Teil 3
Die items können nicht als Hash-Referenz gespeichert werden, weil daskaputt geht, wenn die Items noch nicht gespeichert wurden und damit nochkeine ID besitzen. Daher Umstellung auf Array-Speicherung....
PriceTaxCalculator: für Items berechnete flüchtige Werte zurückgeben Teil 2
PriceTaxCalculator: für Items berechnete flüchtige Werte in %data zurückgeben
SL/DB/Invoice->abbreviation prüft jetzt invoice_type
SL::DB::{Invoice,DeliveryOrder}: Items mit neg. qty beim Wandeln optional weglassen
RecordLinks: credit_notes verlinken, und Typ von Rechnungen anzeigen
FiBu Schellsuche in Headerzeile
neues Ajax Autocompletefeld im Header für Benutzer mit FiBu-Rechten,welches Rechnungsnummern und Kunden-/Lieferantennamen durchsucht. Durchdie Auswahl im Dropdown gelangt man direkt zu dem Beleg.
Übersetzungsspalte verbessert und Berechnungsfuntkion für stocked_qty in Lieferberichte
SL::DB::CustomVariable->value: undef anstelle von 0 wenn ref.Objekt nicht existiert
Freitagabendcommit Fixes
Gloable BCC Adresse
FlattenToForm: Rabatte richtig formatieren
Optimierung Helfer-Funktion _get_delivery_qty
ALLE Aufrufe dann auch von dieser Funktion erledigen.
weitere Verbesserungen für die helper-funktion
Die Funktion sollte unabhängig vom Variablen-Namen sein, damit dieslangfristig einfacher wartbar ist.
HelperFunktion OderItem: _delivered_qty optimiert
OrderItems-> delivered_qty in helper-funktion ausgelagert
Ergänzung zum Commit von gerade: Da man nicht sicher sein kann,ob dieser Wert als Objekt-Variable zu dem Zeitpunkt (t2) schon berechnetwurde, entsprechend in eine nach perl-konvention private (_delivered_qty)...
Lieferplan: Warenwert der ausgelagerten Warenmenge anzeigen
Pflichtenhefte vordef Textblöcke: Verwaltung Flags »benutzbar für…«
Verbesserungen Einkaufs-Lieferplan
a) keinen Fallunterschied für $vc im Template, sondern ein einfaches hidden flag vcb) kein copy & paste von action_list(_ap), sondern parameter in erp.inic) performanteres grep, statt foreach in OrderItem (Details s.a. devel-liste)...
Erweiterung Lieferplan Belege wirklich ausgelagert und Warenverkaufswert (default: aus)
Erweiterung Mandantenkonfiguration im Bereich Lager zum Einschalten vona) WarenverkaufswertFalls aktiviert erscheint eine neue Spalte im Lieferplan, die den Wert der...
Lieferplan-Bericht um Berichts-Feld "ausgelagerte Menge" erweitert
Der Lieferplan berechnet aktuell die "verschickte" Menge der Warenaus der Menge der generierten Lieferschein, beachtet aber nicht dentatsächlichen Status des Lieferscheins (ausgelagert oder nicht)....
trailing whitespaces entfernt
Transportkosten-Erinnerungs-Artikel auf ID anstatt partnumber umgestellt Teil II
Vergessene modifies für Commit von gerade hinzugefügt
Erinnerung für Transport- oder Versandkostenartikel bei Angebot / Auftrag implementiertErweiterung: Mandantenkonfiguration um einen Standardartikel der auf Vorhandenseinüberprüft wird (oe). Falls nicht wird eine entsprechende Warnung ausgegeben.Verbesserungsmöglichkei 1: Artikelnummer per partpicker auswählen...
Konfigurierbares Angebotsgültigkeits-Intervall hinzugefügtStandardmässig ist ein Verkaufsangebot bis zum nächsten Werktag gültig.Dieses Intervall wird dann noch hinzugerechnet, bspw. nächster Werktag plus 14, 28 etc.Falls das Intervall nicht gesetzt oder wir nicht den Typ sales_quotation haben, passiert nichts....
MakeModel: ActsAsList
ActsAsList: use Parameter zum Konfigurieren benutzen
ParseFilter: with_objects merging bei Klassen mit Filtered Plugin
ParseFilter kennt 3 Quellen für with_objects Klauseln:
1. explizit übergebene2. aus dem Filter inferierte3. aus custom filtern gesetzte
Wenn nun ein Model das Custom Filter Plugin hat, muss bei jedem Filter...
CustomerVendor: Picker nach Art von PartPicker
- reinit_widgets fähig- Tab und Enter atomar- unterstützt onChange und set_item:CustomerVendorPicker trigger- unterstützt fat_set_item
Pflichtenheftaufträge: beliebige Artikel auswählen können
Zusätzlich werden dann Spalten angezeigt, die die Einheit und den imAngebot/Auftrag verwendeten Positionstypen (Pauschalposition/Auwandsposition) angeben.
Pflichtenhefte: beim Kopieren, Einfügen zusätzliche Artikel berücksichtigen
Pflichtenhefte: zusätzliche Artikel zuweisen und bearbeiten können
SL::DB::Unit::compatible_units: alle Einheiten gecachet laden
Wiederkehrende Rechnungen: Berechnung maximales Enddatum gefixt
Das konfigurierte Enddatum ist nur dann relevant, wenn diewiederkehrende Rechnung gekündigt wurde. Ansonsten wird sie automatischverlängert, sprich ein maximales Enddatum gibt es dabei nicht. Wir...
Bearb. Buchungsgruppen: Spalte taxzone_id in oe/delivery_orders konvertieren
1. Werte 0 und NULL durch neue ID für »Inland« ersetzen (oe, delivery_orders, ar, ap)
2. Spalte taxzone_id NOT NULL setzen (oe, delivery_orders, ar, ap)
3. Fremdschlüssel auf Tabelle tax_zones setzen (oe, delivery_orders)
Warengruppen-Filter f. CVars bei Waren
cherry-pick aus Kundenprojekt und Anpassungen an unstable (hauptsächlichUmstellung auf Controller)
Conflicts:
SL/CVar.pm SL/DB/CustomVariableConfig.pm bin/mozilla/amcvar.pl bin/mozilla/io.pl...
Spaltenzahl f. benutzerdef. Variablen in Belegen in Benutzereinstellungen ...
.. angeben können. Default ist 3.
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...
Neue Methode orphaned für Buchungsgruppe
Zum Prüfen, ob eine Buchungsgruppe gelöscht oder bearbeitet werden kann.
Fehlende MetaSetup Dateien für Steuerzonenupdate
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.
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.
Steuerzonen ungültig machen
jede Steuerzone kann man unter "System->Steuerzonen->auf Steuerzone klicken" individuell auf ungültig (obsolete) setzen.
ungültig heißt:
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...
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.
PreisTaxCalculator: Caching-Abfrage für »keine Positionen« gefixt
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...
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
Spaltentyp Text anstelle von varchar() in diversen Tabellen Teil 3
Spaltentyp Text anstelle von varchar() in diversen Tabellen Teil 2
Tabelle »shipto«
Verkaufsbelege: optional nur Projekte des Kunden anbieten
Auch dieses Feature kann über die Mandantenkonfiguration eingeschaltetwerden.
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...
Einkauf/Verkauf: Eingabe der Vorgangsbezeichnung optional erzwingen
Wird über eine Option in der Mandantenkonfiguration eingeschaltet.
DB-Schema-Anpassungen für »Spaltentyp Text anstelle von varchar() in diversen Tabellen«
Projektliste: kein Filterkriterium für Status == alle
…und nicht »nie benutzt«
SL::DB::Invoice: Verknüpfung auf die Buchungsobjekte
SL::DB::Part,Helper::PriceTaxCalculator: agressiveres Caching
Damit wird für ziemlich jeden Objekttyp nur noch ein einziges Queryabgesetzt.