var ID = parent.Xrm.Page.data.entity.getId().substring(1, 37);
var entity = parent.Xrm.Page.data.entity.getEntityName();
function tax(){
var requestUrl = parent.Xrm.Page.context.getClientUrl()
"/api/data/v8.2/" entity "details?$filter=_" entity "id_value eq ("
ID ")";
var request = new XMLHttpRequest();
request.open("GET", encodeURI(requestUrl), true);
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json; charset=utf-8");
request.setRequestHeader("OData-MaxVersion", "4.0");
request.setRequestHeader("OData-Version", "4.0");
request.onreadystatechange = function () {
if (this.readyState === 4 /* Complete */) {
request.onreadystatechange = null;
if (this.status === 200) /* OK */ {
updateTax(JSON.parse(this.responseText).value, ID);
} else { /* failed */
console.log(JSON.parse(this.response).error.message);
informationNotRetrieved();
}
}
};
request.send();
}
function updateTax(records, ID) {
for (i = 0; i < records.length; i ) {
var existingProduct = records[i];
setTax(existingProduct.salesorderdetailid, existingProduct.priceperunit, existingProduct.manualdiscountamount);
}
}
function setTax(salesorderdetailid, priceperunit, manualdiscountamount) {
var entity = {};
entity.tax = (priceperunit-manualdiscountamount)*0.19;
var req = new XMLHttpRequest();
req.open("PATCH", Xrm.Page.context.getClientUrl() "/api/data/v8.2/salesorderdetails(" salesorderdetailid ")", true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 204) {
//Success - No Return Data - Do Something
} else {
Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send(JSON.stringify(entity));
}
this is how my script looks at the moment. I would appreciate suggestions for improvement a lot!
About the on change event: which field(s) would I need to use?
kind regards
Max