Seite 1 von 1

Bedingung für Steuerberechnung

Verfasst: 18. November 2014 00:04
von caduser
Hallo,

ich nutze folgendes Script zur Berechnung der Steuer im salesorderdetail Formular:

Code:
function quantity_onchange()
{
tax_onchange();
Xrm.Page.getAttribute("tax").fireOnChange();
Xrm.Page.getAttribute("tax").setSubmitMode("always");

}
function priceperunit_onchange()
{
tax_onchange();
Xrm.Page.getAttribute("tax").fireOnChange();
Xrm.Page.getAttribute("tax").setSubmitMode("always");
}
function tax_onchange()
{
Xrm.Page.getAttribute("tax").setValue(Xrm.Page.getAttribute("quantity").getValue() * Xrm.Page.getAttribute("priceperunit").getValue() * 0.19);
}


Funktioniert auch wunderbar. Nun möchte ich allerdings eine Bedingung einbinden, damit die Berechnung nur ausgeführt wird wenn keines der beiden Optionsfelder "eu_steuerfrei" und "ausland_steuerfrei" im übergeordneten Salesorder Formular angehakt sind.

Ich weiß nicht genau wie ich auf Felder von anderen Formularen zugreifen kann, und wie ich die beiden Bedingungen unterbringe.

Hat jemand einen Tipp?

Danke

Re: Bedingung für Steuerberechnung

Verfasst: 18. November 2014 07:50
von gE3z
Hallo,
du kannst mit OData auf die Related SalesOrder zugreifen. Das OData Modul kann mein ich bei Codeplex heruntergeladen werden und als Solution auf dein Customizing System eingespielt werden.
In diesem Modul kannst du dann dein "Select"-Befehl entsprechend zammen basteln.
So kann deine query dann aussehen:
var serverUrl = Xrm.Page.context.getServerUrl();
if (serverUrl.length > 0 && serverUrl.charAt(serverUrl.length - 1) == '/')
{
serverUrl = serverUrl.substr(0, serverUrl.length - 1);
}
var oDataPath = serverUrl + "/XRMServices/2011/OrganizationData.svc";
var retrieveReq = new XMLHttpRequest();
var Odata = oDataPath + hier dein gebastelter ODataSelect;
retrieveReq.open("GET", Odata, false);
retrieveReq.setRequestHeader("Accept", "application/json");
retrieveReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
retrieveReq.onreadystatechange = function() {RetrieveReqCallBack(this);};
retrieveReq.send();
}
}

function RetrieveReqCallBack(retrieveReq)
{
if(retrieveReq.readyState == 4 /*complete*/)
{
if(retrieveReq.status == 200)
{
Hier kannst du dann mit deinen felder arbeiten und dein Tax_onchange machen.
}
}

Grüße
gE3z

Re: Bedingung für Steuerberechnung

Verfasst: 18. November 2014 09:44
von Michael Sulz
alles was gE3z schreibt ist soweit richtig, du musst allerdings kein Odata Modul von Codeplex laden, um mit Odata im CRM arbeiten zu können.

OData wird nativ von CRM unterstützt.

Eventuell meint er ja das ODATA Query Designer Toll von Codeplex, das auch wir einsetzen.
Mit diesem Tool kannst du dir sehr einfach die OData Querys erstellen lassen. Diese sind nicht so einfach, wie es auf dem ersten Blick aussieht da sie unter anderem CaseSensitiv für die Schemanamen sind.

Re: Bedingung für Steuerberechnung

Verfasst: 18. November 2014 12:21
von gE3z
Michael du hast recht, ich wollte darauf hinaus :), dass es eine Ergänzung ist, um sich besser die ODATA Querys zu erstellen.
Sorry falls es nicht so heraus kam =D