Skip to main content
Skip table of contents

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

CODE
| 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)

Weitere Verknüpfungen


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.