Skip to main content

Versteckte User-Exits: 3-Way-Match

Bei der Prüfung der Rechnungsmenge gegen die Bestellmenge und den Wareneingang wird pro Rechnungszeile ein QuantityObject erstellt und die Zeile wird gegen die Bestellung und gegen den Wareneingang geprüft. Die Prüfung bietet einige Eingriffspunkt zur Manipulation.

ue_3WayMatch_ParseQuantity(QuantityObject.prototype.ue_3WayMatch_ParseQuantity = function(){ ... }

ÜberVor dem Vergleich der Mengen können die Funktion können Mengen umgerechnet werden. das QuantityObject enthält die Menge aus der Rechnungsposition ("Quantity") , die Bestellmenge ("QuantityOrdered") sowie die gelieferte Menge ("QuantityDelivered"). Zudem gibt es die verbrauchten Mengen ("UsedOrderedQuantity" / "UsedDeliveredQuantity") und die offene Bestellmenge ("OpenOrderedQuantity") sowie die offene Liefermenge ("OpenDeliveredQuantity").

Darüber hinaus gibt es auch die Mengeneinheiten ("QuantityUnit" / "QuantityUnitOrdered" / "QuantityUnitDelivered"). Bei den Preisen gibt es nur die Werte aus der Rechnungsposition ("Price", "PriceUnit" ) und aus der Bestellung ("PriceOrdered", "PriceUnitOrdered"). Aus Preis und Preiseinheit ergibt sich der kalkulierte Preis ("PriceCalc" / "PriceCalcOrdered") und die Preisdifferenz ("PriceDiff").

 

ue_3WayMatch_CheckPriceDiff(QuantityObject.prototype.ue_3WayMatch_CheckPriceDiff = function( priceCalculated, priceOrdered ){ ... }

Über die Funktion können bei Preisabweichungen sehr spezifische Toleranz-Regeln umgesetzt werden.

 

ue_3WayMatch_CheckEnd(QuantityObject.prototype.ue_3WayMatch_CheckEnd = function(){ ... }

Wenn die Funktion nicht aufgrund eines Fehlers abbricht kann diese Funktion optional am Ende ausgeführt werden.

 

/** User exit after loading order master data to manipulate or to add order information.
 * Called: docFile.replacePositionsByHeadOrderValue()
 * Script: Invoice_Action_GetOpenOrderPosition
 * @param {string} optExecType Optional parameter to set execution type information
**/
Gentable.prototype.adjustLoadedOrderPositions = function(optExecType){
    /*
    var id    = (this.DocFile)? this.DocFile.getid() : "Unknown";
    this.Log += "[INFO]["+id+"] function adjustLoadedOrderPositions()"+this.LineBreak;
    for( var r=0; r<this.Rows.length; r++ ){
        
    }
    */
}