S:D:Part: Kosmetik: kein Semikolon nach Kontrollstrukturen, …
… und emacs noch glücklicher machen ;)
fix: mehr SL::DB zirkuläre includes
EK von Erzeugnissen und Sortimenten setzen: Artikel nicht cachen.
Wenn hier die Erzeugnisse oder Sortimenten gechached werden, dann kannes passieren, das die Preise nicht richtig summiert werden, wenn sich ineinem Request die Preise mehrerer Bestandteile ändern (z.B. EK-Rechnung)....
S:D:Part: letztes Preise-Update: neben Datum auch nach Id sortieren, …
… sonst kommt ein evtl. ein falsches (nicht das letzte) letzte Preis-Updatezurück, wenn der Zeitstempel gleich ist.
DispositionManager: Zeige keine Lieferanten-Artikel die im Warenkorb sind
Part: um Helferfunktionen für den Warenstand erweitert
kundentyp-spezifische Artikelnummern: Position/Reihenfolge
Erweiterung für Artikelnummern nach Kunden-/Lieferanten-Typ (business).
Suche im Bericht und Import sind (noch) nicht implementiert.
Einkaufspreis von Erzeugnissen/Sortimententen ohne after_save hook
Einkaufspreis von Erzeugnissen/Sortimententen aktualisieren (rekursiv)
Falls sich ein einzelner Bestandteil verändert. Läuft über alleweiter verbauten Teile durch Aufruf von Parts::after_save.Benötigt einen boolean Parameter in $::form->{lastcost_modified}, damit...
Artikel als neu Speichern auch BDVs und Übersetzungen vom Vorgänger
Mandantenkonfiguration - Warengruppe als Pflichtfeld
Kann nun konfiguriert werden.
Erzeugnisse: Gewicht aus einzelnen Bestandteilen ermitteln und speichern.
Artikelstamm: "Erneuert am" aus parts_price_history holen …
… und in "Preisänderung am" umbenennen.
Das ganze ist mit Rose gelöst und holt die Preise aus parts_price_history.Das hat den Nachteil, dass im Artikelbericht nicht nach der Preisanpassungsortiert werden kann und es wahrscheinlich nicht performant ist....
Bei Sortimenten Sortimentsartikel nach 'position' sortieren
Bisher wurde die Spalte 'position' in der Tabelle assortment_itemsignoriert.
Unterstützung für PostgreSQL 12 Teil 2
PostgreSQL 12 unterstützt OIDs nicht mehr. Daher die letzten Stellenumgestellt, an denen noch OIDs verwendet wurden.
Kundenspezifische Artikelpreise: Reihenfolge/sortorder berücksichtigen
Neuer index auf inventory über itime und parts_id
Part Controller - neuer Tab mit Lagerinformationen
SL::DB::Part - get_simple_stock_sql: Mengen pro Bin
und Summen über Lager und Gesamtmenge.
DisplayableNamePrefs: SL::DB:xxx verwenden DB-Helper
erstmal nur Customer/Vendor/Part
Part: makemodels_sorted accessor
Kunden-Spezifische Artikeleigenschaften
neue Tabelle "PartCustomerPrices" mit SL/DB Dateienin Artikelstammdaten eingebaut,
in Preisquellen analog zu den Lieferantenpreisen nun Kundenpreise eingebaut(Unklar ist was bei Kundenpreisen der beste Preis ist !)...
Part.pm - alte Funktion entfernt und POD angepasst
assortment_lastcost_sum und assembly_sellprice_sum wurden durchitems_lastcost_sum ersetzt.
WebshopApi: Shoptabellen
WebshopApi: Part prices relationship - pricegroup mit laden
neue SL::DB::Part Methode used_in_record.
Die Prüfung auf orphaned ist viel strenger, und sollte für z.B. Löschenverwendet werden, während used_in_record nur prüft, ob der Artikel inBelegen vorkommt.
SL::DB::Part - neue Methode get_stock
um den aktuellen Lagerbestand eines Artikels in einem bestimmtenLagerplatz oder in einem bestimmten Lager zu einem bestimmten Stichtagin der Standardeinheit auszulesen.
Prüfen der Bestandteile eines Erzeugnisses beim Hinzufügen
Erst Prüfung innerhalb des Erzeugnisses,dann recursive Prüfung der das Erzeugnis enthaltenen Erzeugnisse,Abbruch nach 100 Rekursionen.
Die Abfrage ist so, dass nur vom Erzeugnis abwärts der Baum in die Tiefe geprüft wird....
SL::DB::Part: precedence Fehler
SL::DB::Part - Zugriff auf items und Summen überarbeitet
SL::DB::Part doku
Part validate
Part Controller - Helper Funktionen für linetotals
Part - history_entries Relationship
Neue Part-Methoden für Erzeugnis- und Sortimentssummen
derzeit noch nicht rekursiv (wenn ein Sortiment wiederum aus anderenSortimenten besteht).
SL::DB::Chart inventory_accno_id Prüfung abgefangen
Stattdessen wird geprüft, ob es eine Ware ist. Bei Dienstleistungen undErzeugnissen ware inventory_accno_id leer.
Part Methode last_modification für mtime Check
Part makemodels relationship nutzt sortorder
Neue Methode clone_and_reset_deep für Part
Tabelle assembly bekommt eine Positionsspalte
bisher wurde nach oid sortiert.
SL::DB::Part - neue Methode validate
Neuen Artikeltyp Sortiment in kivitendo eingebaut
Neuen Artikeltyp Sortiment eingeführt - sql und rose
Ware/Erzeugnis/Dienstleistung per parts.part_type unterscheiden 2
kivitendo Code angepasst.
SL::DB::Part: Setter für type=assembly bzgl. inventory_accno_id fixen
inventory_accno_id muss für Typ »assembly« immer auf undef stehen. Dastestet auch der Testcase. »type« hat allerdings das Falsche gemacht,wofür im Testcase versucht wurde, ein Workaround zu implementieren,...
Doku in SL/DB/Part.pm - Typos und Umschreiben
Revert "SL::DB::Part: displayable_name als Alias für long_description"
This reverts commit e3a83f49048717d0f519e2f760ef2988eb0824e0.
Aufgrund von b720e272 gar nicht nötig und daher überflüssigerweise auseinem Kundenprojekt gecherrypickt.
SL::DB::Part: displayable_name als Alias für long_description
Für einfachere Verwendung mit anderen Objekten wie ::Customer und::Vendor.
Part: long_description in displayable_name umbenannt
zur Vereinheitlichung der Nomenklatur.
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.
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...
SL::DB::Part,Helper::PriceTaxCalculator: agressiveres Caching
Damit wird für ziemlich jeden Objekttyp nur noch ein einziges Queryabgesetzt.
SL::DB::Part: Cachen von Objekten gefixt
Über Steuerzonen erhaltene Informationen müssen pro Part-ID gecachetwerden, weil diese natürlich Artikel-spezifisch sind.
SL::DB::{Chart,Part}: Verwendung von $::request->cache()
Merge branch 'pflichtenhefte'
Conflicts: js/locale/de.js
Part api Funktion um eine Ware als json abzufragen
Artikelstammdaten: HTML in Langtexten nutzen
Inventory Controller und neue stock_in Maske
Alte Methode ist weiter im Code vorhanden, wird aber geplant nach und nachdurch das neue Interface ersetzt.
Benötigt Partpicker
ajax_autocomplete umgestellt auf get_models und inline JSON (20% schneller als template)
Reste der Tabellen "rma" und "rmaitems" entfernt
Behebt #2204.
Fremdschlüssel für Tabellen oe, delivery_orders, parts, translation
Warnung unterdrücken
rdbo models: Parts nach 066fbb38f
custom_variables accessor wird jetzt vom mixin erstellt.
CVars als Object Mixin.
Conflicts:
SL/DB/Customer.pm SL/DB/Part.pm SL/DB/Vendor.pm
Verknüpfungen Parts/Customers/Vendors -> Custom Variables
Artikelnummernvergabe im TransNumberGenerator
Model SL::DB::Prices in SL::DB::Price umbenannt
SL/DB/Helper/Mappings.pm SL/DB/Part.pm
Part::get_chart - Laden eines dazugehörigen Chart-Objektes über Buchungsgruppe
Ermitteln des gültigen Steuerschlüssels zu einem Artikel an einem bestimmten Datum
Doku-Update
Verknüpfung zu Preisfaktoren ergänzt
Parts: buchungsgruppen und partsgroup verlinkt.
SL::DB::Part.pm - types, methoden, doku
type modell santizied.orphaned funktion erstellt.Dokumentation erwitert.
Attribute Helper umgeschrieben.
Siehe Dokumentation SL::DB::Helpers::Attr.
Attributhelper werden jetzt beim Rose Start automatisch geladen.numeric Felder bekommen immer einen as_number udn einen as_percent helper.date Felder bekommen immer einen as_date helper....
Kommissionenrest in SL::DB::Part entfernt.
RDBO Support.
Script, Models und Manager übernommen und angeglichen.Ein SQL Schema Update, dass die meisten vorausgesetzten Normalisierungenenthält mit eingefügt.