Projekt

Allgemein

Profil

TSystem Wawi Logiken und Funktionen (gesamtrabatt unterpositionen usw) » Historie » Revision 2

Revision 1 ([X] Daniel S, 02.06.2019 11:07) → Revision 2/4 ([X] Daniel S, 03.06.2019 17:27)

h1. TSystem Wawi Logiken und Funktionen (gesamtrabatt unterpositionen usw) 

 h3. Haupt / Unterpositionen 

 * *Verknüpfung* 

 * Haupt / Unterpositionen sind über @p_parent_pos@ bzw. @p_parent_pos_id@ aufgebaut. 
 + Trigger @beleg_p__b_10_iu__parent__hpos@ > Jeweils gegensetzliches Feld setzen 
 + Trigger @beleg_p__a_10_u__parent__hpos@    > Cascadierende Weitergabe wenn hpos im Parent umgeschrieben wird 


 * *Berechnung Haupt / Unterposition* *Berechnung* 

 * Funktion @beleg_p__recalcmainposwert@ 
 + Berechnet den Wert aller Unterpositionen und trägt diesen ein 
 * Trigger @beleg_p__a_35_u__werte__hauptsubpos@ 
 + Der Wert der Position wird an seine Children übertragen. Entweder anhand Wert der Unterpositionen, oder wenn es keine Werte gibt anhand der Anzahl 
 + Wenn es Unter-Unterpositionen gibt, wird auch diese entsprechend geändert. Die Weitergabe an deren funktioniert dann rekursiv - wieder über @beleg_p__a_35_u__werte__hauptsubpos@ 
 * Trigger @beleg_p__a_35_iu__subposmainpos@ 
 + Veranlasst die Hauptposition Ihren Wert neu zu berechnen bei Änderung des Unterpositionswertes (@beleg_p__recalcmainposwert@) 

 * Um zu verhindern, das HauptPos > UnterPos > HauptPos werden folgende Funktionen verwendet: 
 *# @beleg_p__trigger__totalposwert__disable@ 
 *# @beleg_p__trigger__totalposwert__enable@ 
 *# @beleg_p__trigger__totalposwert__disabled__is@ 
 * Dabei wird das Flag in @beleg_p__a_35_u__werte__hauptsubpos@ gesetzt und beachtet. Somit gibt HauptPos > SubPos die Änderung an die SubPos > diese will HauptPos aktualisieren - welche aber weiß "ich ändere gerade" und exit 

 > Siehe Gesamtrabatt 


 h3. Dokument 

 * Die zusätzliche Dokumentstruktur (Verkauf/Einkauf) mit dem Zweck das unter einer Nummer ein "Projekt" gepflegt werden kann, wird über die Trigger @beleg_p__verkauf__a_50_iu__dokunr@ usw. erreicht. 
 * Es wird dazu ein zweiter Beleg_Kopf angelegt und die Verknüpfung @k_nummer = z_Dokunr@ generiert. 
 * *Haupt- und Unterpositionen:* Die Hauptposition MUSS immer auf dem Dokument sein. Unterpositionen KÖNNEN auf dem Dokument sein 
 + Unterpositionen erhalten IMPLIZIT den Gesamtrabatt der Hauptposition auch dann, wenn diese NICHT auf dem Dokument sind. @beleg_p__verkauf__a_30_iu__rabatt_gesamt__from_doku_mainpos@ @beleg_k__verkauf__doku__rabatt_propagate@ 


 h3. Gesamtrabatt 

 * Der Gesamtrabatt wird im Kopf geführt. Bei Insert einer Position wird dieser über "Default" geladen. Bei Update wird der Gesamtrabatt immer an alle Positionen weitergegeben 
 * Ein Beleg / Dokument kann immer nur einen Gesamtrabatt haben 

 * Unterpositionen erhalten automatisch den Gesamtrabatt der Hauptposition auf dem Dokument auch dann, wenn diese nicht auf dem Dokument sind.