KundPreisCalcAll2()
KundPreisCalcAll2() – Kunden-Preis Konditionen
Die Funktion berechnet die Kunden-Preis-Konditionen für einen Kunden in Kunden- bzw. Auftrags-Währung.
Parameter | Beschreibung |
---|---|
oDM:O | Datenmodul-Objekt |
nCustNo:N | Kunden-Nr. |
cArtNo:C | Artikel-Nr. |
nQuant:N | Menge (in Lager-Einheiten) |
nPreisNr:N | Zu verwendende Preis-Nr.; default = -1 (Übernahme vom Kunden) |
cProgID:C | Individuelle Prog-ID (wird an aufgerufene Events weitergegeben) |
dGueltigPer:D | Datum, zu welchem die Sonder-Kondition gültig ist (leer = Tagesdatum) |
nCalcOrdNo:N | Auftrags-Nr. zur Bestimmung der Währung; default = 0 (Währung aus den Kundendaten) |
lTriggerOnCalcOrdPosValEvent:L | Trigger von Codeblock-Event "bei Berechnung des Auftr.Pos.Werts" einschalten. default = true |
Rückgabewert
Array- {
[ ccpCurrID ] Währung
[ ccpSinglePrice ] Brutto-Preis
[ ccpPriceUnit ] Preis-Einheit
[ ccpDiscount, 1..3 ] Pos.-Rabatt 1 - 3
[ ccpTotalDiscount, 1..2 ] Gesamt-Rabatt 1 - 2
[ ccpNetPrice ] Nettopreis
[ ccpRateValue ] Menge(False) / Wert(True)
[ ccpRateDiscount ] Rabatt(False) / Netto(True)
[ ccpQuantRate, 1..10, Rabatt-Staffel 1 - 10
{ Staffel-Menge oder Wert,
Staffel-Rabatt oder Netto
}
]
[ ccpNetPriceQuant ] Kalk. Netto-Preis,
[ ccpD040RecNo ] Dab040-Datensatz-Nr.
[ ccpExtra, 1..3, Zuschläge 1 - 3
{ ccpExtraText, Zuschlag-Text
ccpExtraMode, Zuschlag-Art (Kennzeichen)
ccpExtraCost, Betrag in Eigenwährung
ccpExtraCostFW, Betrag ggf. in Fremdwährung
ccpExtraDisplayText Zuschlag-Art (Text)
}
]
}
Beispiel
| oDM, oDab050, oDab000, aRes, cStr, i |
Function PrintCurr(nCurrID)
Result:= Str(nCurrID) + ' - ' +
CurrSign(nCurrID) +
IIf(CurrConvSales(nCurrID) = 'J', '<h3>', '')
End,
Function PrintStaffelTyp(bTyp)
Result:= If(bTyp, 'ab Wert', 'ab Menge')
End,
Function PrintStaffelRabattTyp(bRabattTyp)
Result:= If(bRabattTyp, 'Rabatt', 'Netto-Preis')
End,
Function PrintStaffelArray(bTyp, bRabattTyp, aArray)
| i |
Result:= PadR(PrintStaffelTyp(bTyp), 11) + PrintStaffelRabattTyp(bRabattTyp) + CrLf,
For i:= 1 to ALen(aArray) do
Result += Space(19) + PadR(aArray[i, 1], 10) + ' ' + Str(aArray[i, 2]) + CrLf
Next
End,
//---------
oDM:= CreateObject('TBeDBGet'),
StartSeq
aRes:= KundPreisCalcAll2(oDM, 10006, 'TEST-20', 1),
cStr:= 'Währung : ' + PadR(PrintCurr(aRes[ccpCurrID]), 25) +
' (Kundenwährung oder Währung des Auftrags)' + CrLf +
'Brutto-Preis : ' + PadR(Str(aRes[ccpSinglePrice]), 25) +
' (in o.a. Währung)' + CrLf +
'Preis-Einheit : ' + PadR(Str(aRes[ccpPriceUnit]), 25) +
' (aus Artikelstamm)' + CrLf +
' Pos.-Rabatte 1 : ' + PadR(Str(aRes[ccpDiscount, 1]), 25) +
' (aus Sonderkondition Dab040, falls vorhanden)' + CrLf +
' 2 : ' + Str(aRes[ccpDiscount, 2]) + CrLf +
' 3 : ' + Str(aRes[ccpDiscount, 3]) + CrLf +
' Ges.-Rabatte 1 : ' + PadR(Str(aRes[ccpTotalDiscount, 1]), 25) +
' (aus Kundenstamm)' + CrLf +
' 2 : ' + Str(aRes[ccpTotalDiscount, 2]) + CrLf +
'Netto-Preis : ' + PadR(Str(aRes[ccpNetPrice]), 25) +
' (Netto-Preis, Positions- und Gesamt-Rabatte verrechnet)' + CrLf +
'Staffel : ' + PrintStaffelArray(aRes[ccpRateValue],
aRes[ccpRateDiscount],
aRes[ccpQuantRate]) +
'kalk.Netto-Preis : ' + PadR(Str(aRes[ccpNetPriceQuant]), 25) +
' (kalkulierter Preis für die angegebene Menge)',
If !Empty(aRes[ccpD040RecNo]) then
For i:= 1 to 3 do
cStr:= cStr + CrLf + CrLf +
'Zuschlag-Text ' + Str(i) + ' : ' + aRes[ccpExtra, i, ccpExtraText] + CrLf +
'Zuschlag-Art ' + Str(i) + ' : ' + aRes[ccpExtra, i, ccpExtraMode] + CrLf +
'Zuschlag in EW ' + Str(i) + ' : ' + Str(aRes[ccpExtra, i, ccpExtraCost]) + CrLf +
'Zuschlag in FW ' + Str(i) + ' : ' + Str(aRes[ccpExtra, i, ccpExtraCostFW]) + CrLf +
'Beschreibung ' + Str(i) + ' : ' + aRes[ccpExtra, i, ccpExtraDisplayText] + CrLf
Next,
EndIf,
Always
DestroyObject(oDM)
StopSeq,
WriteLn(cStr)