...feel the spirit of Microsoft Dynamics AX RSS 2.0
 Wednesday, December 30, 2009

Für Debitoren (Kunden) kann in Microsoft Dynamics AX ein Kreditlimit vergeben/eingestellt werden.

In der Auftragsmaske wird bei Anlage eines Auftrag (in Abhängigkeit der Kreditlimit-Einstellungen) das verbleibende Kreditlimit berechnet und der Auftragswert gegen dieses geprüft.
Bei Überschreitung des Kreditlimits wird eine entsprechende Warnung oder ein entsprechender Fehler ausgegeben.

Die Funktion zur Überprüfung des Kreditlimits kann auch manuell, durch  eine entsprechende Funktion auf der Auftragsmaske, aufgerufen werden.

Soll das verbleibende Kreditlimit mit X++ Code berechnet werden, muss leider eine “Kleinigkeit” beachtet werden, die so auf den ersten Blick nicht immer ersichtlich ist bzw. für Verwirrung sorgen kann.

Die Berechnung des verfügbaren Kreditrahmens oder des verbleibenden Kreditlimits ist durch die alleinige Angabe eines Debitors nicht möglich.
Es muss immer ein entsprechender Auftrag “vorhanden” sein um diese auszuführen zu können.

Berechtigterweise stellt sich die Frage, wie das verbleibende Kreditlimit eines Debitors berechnet werden kann, wenn keine “Beziehung” zu einem Auftrag besteht bzw. wenn kein Auftrag angegeben werden kann.
Hierfür muss ein kleiner “Trick” angewendet werden, der nichts anderes macht, als einen neuen “SalesTable” Datensatz zu initialisieren, diesen aber nicht zu speichern.
Ist der “SalesTable” Datensatz initialisiert kann mithilfe der beiden Klassen “SalesTotals” und “CustCreditLimit” der verfügbare Kreditrahmen berechnet werden.

Beispiel:

    CustTable               custTable = CustTable::find("1101");
    CustCreditLimit         custCreditLimit;
    SalesTotals             salesTotals;
    SalesTable              salesTable;
    AmountMST               balanceEstimate;
    AmountMst               creditRemain;
    ;
    salesTable.CustAccount  = custTable.AccountNum;
    salesTable.initFromCustTable();
 
    salesTotals = SalesTotals::construct(salesTable);
    salesTotals.calc();
 
    custCreditLimit = CustCreditLimit::construct(salesTable);
    balanceEstimate = custCreditLimit.balanceEstimate();
    if(custCreditLimit.useEstimated())
    {
        creditRemain -= balanceEstimate;
    }
 
    creditRemain += conpeek(salesTotals.displayFieldsCurrency(CustTable.Currency), TradeTotals::posFreeValue());
 
 
    info(strfmt("Verbleibendes Kreditlimit: %1", creditRemain));
Wednesday, December 30, 2009 11:16:18 AM (Mitteleuropäische Zeit, UTC+01:00)  Axel Kühn  #    Comments [0] - Trackback
 |  | 



Translate
Über/Kontakt

     







© Copyright 2010 Axel Kühn
Sign In
Subscribe this blog
Blogroll
 Arijit Basu
 Axapta Blog
Blog around Microsoft Business Solutions Axapta by Helmut Wimmer
 BlaBlubBlog
Der Blog von Kai Gloth
 Dave Bowles
 Dick Wenning
Ax(apta) start pages
 Fred Shen
 Harish Mohanbabu
 jinx´s AX Blog
Everything about Microsoft Dynamcis AX
 Lars Keller
All about .NET, VSTS, VSTO and more
 Max Belugin
 TaReMoTi Blog
Der Blog von Karsten Döring
Archiv
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910
Statistik
Total Posts: 123
This Year: 5
This Month: 0
This Week: 0
Comments: 43





All Content © 2010, Axel Kühn
DasBlog theme 'Business' created by Christoph De Baene (delarou)