Skip to content
Snippets Groups Projects
Commit e3913423 authored by Sebastian Listl's avatar Sebastian Listl :speech_balloon:
Browse files

Merge branch '1079248_FixOfferItemInsertUpdateOfferPrice' into '2021.0'

[Projekt: xRM-Sales][TicketNr.: 1079248][Angebotspreis Bug]

See merge request xrm/basic!846
parents 11f063e7 e7d8d873
No related branches found
No related tags found
No related merge requests found
......@@ -16,34 +16,25 @@ if(oid != "")
var insertStatements = JSON.parse(vars.get("$field.itemInsertStatements"));//insert statements get set by insertPartsList in the onvalueChanges of product_id and quantity
var statements = [];
if(insertStatements)
{
statements = statements.concat(insertStatements);
}
//update offer price
var vals = oiUtils.getNetAndVat();
var discountedVals = OfferItemUtils.getDiscountedNet(null, oid, discount);
if(discountedVals)
{
insertStatements.push(
newWhere("OFFERITEM.OFFERITEMID", rowdata["OFFERITEM.OFFERITEMID"]).buildUpdateStatement({
"NET": vals[0],
"VAT": vals[1],
"DISCOUNTED_NET": discountedVals[0],
"DISCOUNTED_VAT": discountedVals[1]
})
)
statements.push(
newWhere("OFFER.OFFERID", rowdata["OFFERITEM.OFFER_ID"]).buildUpdateStatement({
"NET": vals[0],
"VAT": vals[1],
"DISCOUNTED_NET": discountedVals[0],
"DISCOUNTED_VAT": discountedVals[1]
})
)
}
else
if(insertStatements)
{
insertStatements.push(
newWhere("OFFERITEMID", rowdata["OFFERITEM.OFFERITEMID"])
.buildUpdateStatement({
"NET": vals[0],
"VAT": vals[1]
})
)
statements = statements.concat(insertStatements);
}
db.execute(statements, "Data_alias", 10000000);
......
......@@ -631,7 +631,7 @@ OfferItemUtils.getDiscountedNet = function(pExcludedIs, pOfferId, pDiscount, pEx
var vat = 0;
var vatExcluded = 0;
if(pOfferId){
var offeritemData = newSelect("QUANTITY, PRICE, DISCOUNT, VAT, OPTIONAL")
var offeritemData = newSelect("QUANTITY, PRICE, DISCOUNT, VAT, OPTIONAL, ITEMPOSITION")
.from("OFFERITEM")
.where("OFFERITEM.OFFER_ID", pOfferId)
.andIfSet("OFFERITEM.GROUPCODEID", pExcludedProductgroups, SqlBuilder.NOT_IN())
......@@ -640,8 +640,12 @@ OfferItemUtils.getDiscountedNet = function(pExcludedIs, pOfferId, pDiscount, pEx
.table();
for (var i = 0; i < offeritemData.length; i++)
{
sum = eMath.addDec(sum, ItemUtils.prototype.getItemSum(offeritemData[i][0], offeritemData[i][1], offeritemData[i][2], offeritemData[i][4]));
vat = eMath.addDec(vat, ItemUtils.prototype.getItemVAT(offeritemData[i][0], offeritemData[i][1], offeritemData[i][2], offeritemData[i][3], offeritemData[i][4]));
if(!offeritemData[i][5].toString().includes(".")//only top items
&& offeritemData[i][4] == "0")//which are not optional
{
sum = eMath.addDec(sum, eMath.subDec(offeritemData[i][1], offeritemData[i][2])*offeritemData[i][0]);
vat = eMath.addDec(vat, offeritemData[i][3]*eMath.subDec(offeritemData[i][1], offeritemData[i][2])*offeritemData[i][0]/100);
}
}
sum = eMath.subDec(sum, eMath.divDec(eMath.mulDec(sum, pDiscount), "100"));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment