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.
SL::DB::Object: generische Methoden zum Cachen von RDBO-Instanzen
SL::DB::Part: Cachen von Objekten gefixt Teil 2
get_active_taxkey hat vorher ganz einfach nicht gecachet.
SL::DB::Part: Cachen von Objekten gefixt
Über Steuerzonen erhaltene Informationen müssen pro Part-ID gecachetwerden, weil diese natürlich Artikel-spezifisch sind.
CVars: spelling: dependant -> dependent (wir haben uns irgendwann mal auf AE geeinigt)
SL::DB::CustomVariable::{value,value_as_text}: Verwendung von $::request->cache()
Partpicker: Benutzerdefinierte Variablen mitschicken
SL::DB::Unit::base_factor: Verwendung von $::request->cache()
SL::DB::{Chart,Part}: Verwendung von $::request->cache()
PriceTaxCalculator: chart->taxkey lookup vorberechnen
RecordLinks: frühzeitig abbrechen, wenn keine links gefunden wurden.
CVars: beim Autovivifien gültigen Wert für selects forçieren
CustomVariable: typo - from_kivi -> from_kivitendo
RDBO Invoice->new_from: Fälligkeitsdatum und Zahlungsbedingungen gefixt
1. Konvertierung von Order-Objekten: Hier wurde das Fälligkeitsdatum zwar richtig übernommen, nicht aber die Zahlungsbedingungen.
2. Konvertierung von DeliveryOrder-Objekten: Lieferscheine haben gar...
RDBO Customer, Vendor: Alias payment_terms auf payment
…für API-Analogie mit Order, DeliveryOrder, Invoice.
RDBO {Invoice,DeliveryOrder}->new_from Attribute nachträglich zuweisen
Macht man die Vermischung ->new(%args, %attributes), so ist dieReihenfolge, wann welche aus %args und welche aus %attributes genommenwerden, aufgrund von Perls beliebiger Hash-Reihenfolge nicht...
RecordLinks: Anzeige etwas verbessert
RDBO BackgroundJob(History): Refactoring von Status-Strings
Rose-Attr-Helfer: _as_timestamp
…mit verschiedenen Präzisionsstufen und Tests!
SL::DB::Helper::LinkedRecords: rekursive Suche in linked_records
LinkedRecords: bidi Verhalten den docs angepasst und direction Parameter optional gemacht
warnings: uninitialized in eq
LinkedRecords: Test und Doku Update
Lange Datenbankfelder bei bestimmten Lieferantenfeldern
Analog zu Commit 72ad92fd die Feldlänge bei bestimmten Datenbankfeldererhöht (vorher varchar, jetzt text)account_number bank_code ustid name contact
CustomVariables: Verwendung mit RDBO als Writer implementiert
CustomVariable-RDBO-Helfer: Dokumentation aktualisiert
CustomVariable-RDBO-Helfer: Konfigurationen sortiert auslesen
Bisher war es Zufall, dass die Konfigurationen in der richtigenReihenfolge von der Datenbank zurück kamen. Dadurch, wie das Umsortierenimplementiert ist, werden die Einträge in der richtigen Reihenfolge in...
RDBO: Manager-Klasse für Vendor
Focusposition nach Erneuern wählbar gemacht
Bankkonten einen Namen geben
Damit kann man seinen Bankkonten einfache Namen geben, wie z.B."Tagegeld", damit man bei der Auswahl nicht immer genau auf dieKontonummer achten muß.
Bei der Bankkontenauswahl in Dropdowns ist die Beschriftung jetzt imFormat:...
Merge branch 'pflichtenhefte'
Conflicts: js/locale/de.js
Part api Funktion um eine Ware als json abzufragen
cvar_as_hashref mixin, um cvars gut zu serialisieren
Wiederkehrende Rechnungen: erstes abzurechnendes Periodendatum richtig berechnen
Kosmetik: alignment
Wiederkehrende Rechnungen: Erste Startperiode nicht vergessen
Finanzcontrollingbericht: wiederkehrende Rechnungen berücksichtigen
SL::DB::PeriodicInvoicesConfig: Datumsberechnung aus Backgroundjob verschoben
Wiederkehrende Rechnung: Option "erste Rechnung erzeugen am"
Bisher nur die Masken; noch nicht im Backgroundjob implementiert
Pflichtenhefte: type_id darf nicht NULL sein
Pflichtenhefte: Meta-Setups nach RDBO-Update neu gebaut
Pflichtenhefte: Mapping für Tabelle project_statuses gefixt
Tabelle »project_status« in »project_statuses« umbenennen
Im Englischen ist der Plural von »status« nun einmal»statuses«. Außerdem heißen die Tabellen in Legacy-Bob-Code ebenfalls»project_statuses«.
Projekte: Status zum Pflichtfeld gemacht
Artikelstammdaten: HTML in Langtexten nutzen
Refactoring: {strip,restrict}_html in eigene Module ausgelagert
Pflichtenheftabschnitte/-funktionsblöcke: HTML nutzen
Pflichtenhefttextblöcke: HTML nutzen
Vordefinierte Pflichtenhefttextblöcke: HTML nutzen
AttrHTML: Model-Helper für sicheres HTML in RDB-Models
Verknüpfte Belege: nur Arbeitskopien bei Pflichtenheften anzeigen
Verknüpfte Belege: Unterstützung für Pflichtenhefte
Pflichtenhefte -> Angebote: Eintrag in record_links anlegen
Pflichtenhefte: Nummerierungsformate zu Typen verschoben & bearbeitbar gemacht
Pflichtenheftitems & -textblöcke: Tooltips im Baum mit Inhaltsauszug anzeigen
Pflichtenhefte: Unterstützung für an Textblöcke angehängte Bilder
Pflichtenheftversionen: Datenbankstruktur zu Pflichtenheften geändert
requirement_specs.version_id wurde durchrequirement_spec_versions.requirement_spec_id undrequirement_spec_versions.working_copy_id ersetzt.
Pflichtenhefte: Druckvorlagendateinamen bei Pflicthenhefttypen festlegen können