...feel the spirit of Microsoft Dynamics AX RSS 2.0
 Wednesday, July 29, 2009

Egal ob Anfänger oder schon erfahrener Dynamics AX Entwickler.
Von Zeit zu Zeit tauchen immer die gleichen Fragen und/oder Problemstellungen auf.

Was immer mal wieder in Foren oder Newsgroups zu lesen ist, ist die Frage, wie die Berechnung des Artikelpreises für eine Debitor mit X++ Code durchgeführt werden kann.
Der Standard von Microsoft Dynamics AX bringt zwar eine Maske zur “Preisabfrage” mit sich, welche diese Problemstellung eigentlich schon löst, allerdings ist es manchmal
notwendig, die Preisberechnung z.B. in einer Klasse durchzuführen, um mit dem Ergebnis weitere Operationen durchführen zu können.

Maske zur Preisberechnung

Da in Dynamics AX Preise für einen Artikel nicht nur “direkt” im Artikelstamm, sondern auch in den Handelsvereinbarungen, hinterlegt werden können, stellt der Standard von
Dynamics AX die Klasse “PriceDisc” zur Verfügung, welche alle Möglichkeiten der Preispflege berücksichtig.
Unter Anderem werden auch Rabatte bzw. Zuschläge der Handelsvereinbarungen durch diese Klasse berücksichtigt.

Die Klasse “PriceDisc” stellt die statische Methode “actualSalesPriceDisc” bereit. Mit dieser können z.B. der Verkaufspreis pro Preiseinheit, der Rabatt oder die Zuschläge
berechnet und/oder ermittelt werden.
Durch eine zweite statische Methode “price2Amount” lässt sich anschließend der Nettobetrag eines Artikels ausrechnen.

Beispiel:

CustTable               custTable = CustTable::find("5010");
InventTable             inventTable = InventTable::find("1000");
Qty                     qty = 1.00;
 
SalesPrice              salesPrice; // Verkaufspreis je Preiseinheit
PriceMarkup             salesMarkup; //Preis sonst. Zuschläge
PriceUnit               priceUnit; // Preiseinheit
SalesLineDisc           salesLineDisc; // Rabatt
SalesLinePercent        salesLinePercent;
DiscPct                 percent1;
DiscPct                 percent2;
PriceDiscTable          actualPrice; // Gefundener Datensatz der Handelsvereinbarung (Verkaufspreis)
PriceDiscTable          actualDisc; // Gefundener Datensatz der Handelsvereinbarung (Rabatte)
AmountCur               lineAmount; // Nettobetrag
;
[salesPrice, salesMarkup, priceUnit,
 salesLineDisc, salesLinePercent, percent1,
 percent2, actualPrice, actualDisc] = PriceDisc::actualSalesPriceDisc(custTable, inventTable, qty);
 
lineAmount = PriceDisc::price2Amount(salesPrice, priceUnit, salesLineDisc, qty,
                                     qty, salesMarkup, salesLinePercent,
                                     custTable.Currency, 0);
Wednesday, July 29, 2009 5:48:40 PM (Mitteleuropäische Zeit, UTC+01:00)  Axel Kühn  #    Comments [0] - Trackback
 |  | 



Translate
Über/Kontakt

     







© Copyright 2012 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
<February 2012>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910
Statistik
Total Posts: 137
This Year: 0
This Month: 0
This Week: 0
Comments: 48





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