Skip to content
Snippets Groups Projects
Commit 6683818f authored by S.Listl's avatar S.Listl
Browse files

Offer Report Refactoring

parent b62a325c
No related branches found
No related tags found
No related merge requests found
......@@ -56,7 +56,7 @@ OfferUtils.getOfferNumberValidationFailString = function() {
}
OfferUtils.isEditable = function(status) {
// TODO: Administrator darf immer ndern, warten auf neue Berechtigungslogik?
// TODO: Administrator darf immer ndern, warten auf neue Berechtigungslogik?
// Offer should be editable if offer state not equals "Sent", "Won" or "Lost"
return status != "2" && status != "3" && status != "4";
......@@ -90,25 +90,53 @@ OfferUtils.openOfferReport = function(pOfferID)
{
var offerReport = new Report("RPTJ_OFFER");
var sqlUtil = new SqlMaskingUtils();
// get data from DB
// TODO: OFFER.ADDRESS
var fields = [/*"OFFER.ADDRESS"*/ "''", "OFFER.CONTACT_ID", "OFFER.LANGUAGE", /*"OFFER.PAYMENTTERMS"*/ "'DUMMY_OFFER.PAYMENTTERMS'", //0 - 3
/*"OFFER.DELIVERYTERMS"*/ "'DUMMY_OFFER.DELIVERYTERMS'", "OFFER.OFFERCODE", "OFFER.CURRENCY", "OFFER.OFFERDATE", // 4 - 7
"OFFER.OFFERID", "OFFERITEM.OFFER_ID", "OFFERITEM.INFO", "OFFERITEM.ASSIGNEDTO", // 11
"OFFERITEM.PRODUCT_ID","OFFERITEM.ITEMNAME" , // 13
"OFFERITEM.OPTIONAL", "OFFERITEM.ITEMPOSITION", // 15
"PRODUCT.PRODUCTCODE", "PRODUCT.PRODUCTID", "OFFER.HEADER", "OFFERITEM.UNIT", "OFFER.VAT", // 20
"COALESCE(OFFERITEM.QUANTITY,0)","COALESCE(OFFERITEM.PRICE,0)", "COALESCE(OFFERITEM.DISCOUNT,0)", // 23
"COALESCE(OFFER.VERSNR, 0)", "COALESCE(OFFER.OFFERCODE,0)", "COALESCE(OFFERITEM.VAT, 0)", "0", "''", "SALESPROJECT_ID" ]; // 29
var fields = [
/*"OFFER.ADDRESS"*/ "''",
"OFFER.CONTACT_ID",
"OFFER.LANGUAGE",
/*"OFFER.PAYMENTTERMS"*/ "'DUMMY_OFFER.PAYMENTTERMS'", // 3
/*"OFFER.DELIVERYTERMS"*/ "'DUMMY_OFFER.DELIVERYTERMS'",
"OFFER.OFFERCODE",
"OFFER.CURRENCY",
"OFFER.OFFERDATE", // 7
"OFFER.OFFERID",
"OFFERITEM.OFFER_ID",
"OFFERITEM.INFO",
"OFFERITEM.ASSIGNEDTO", // 11
"OFFERITEM.PRODUCT_ID",
"OFFERITEM.ITEMNAME" , // 13
"OFFERITEM.OPTIONAL",
"OFFERITEM.ITEMPOSITION", // 15
"PRODUCT.PRODUCTCODE",
"PRODUCT.PRODUCTID",
"OFFER.HEADER",
"OFFERITEM.UNIT",
"OFFER.VAT", // 20
sqlUtil.isNull("OFFERITEM.QUANTITY", "0"),
sqlUtil.isNull("OFFERITEM.PRICE", "0"),
sqlUtil.isNull("OFFERITEM.DISCOUNT", "0"), // 23
sqlUtil.isNull("OFFER.VERSNR", "0"),
sqlUtil.isNull("OFFER.OFFERCODE", "0"),
sqlUtil.isNull("OFFERITEM.VAT", "0"),
"0",
"''",
"SALESPROJECT_ID" // 29
];
var offerFromSql = " from PRODUCT"
+ " inner join OFFERITEM on (PRODUCT.PRODUCTID = OFFERITEM.PRODUCT_ID) "
+ " inner join OFFER on (OFFERITEM.OFFER_ID = OFFER.OFFERID)";
var offerCondition = SqlCondition.begin().andPrepare("OFFER.OFFERID", pOfferID);
var offerCondition = SqlCondition.begin()
.andPrepare("OFFER.OFFERID", pOfferID);
var rptdata = db.table(offerCondition.buildSql("select " + fields.join(", ") + offerFromSql, "1 = 0"));
var language = LegacyKeywordUtils.get("LANGUAGE", rptdata[0][2])[1];
//TODO: use new keyword logic for language when possible
var language = "DE"; // LegacyKeywordUtils.get("LANGUAGE", rptdata[0][2])[1];
var relid = rptdata[0][1];
// TODO: AddrObject implementieren
......@@ -124,6 +152,47 @@ OfferUtils.openOfferReport = function(pOfferID)
var sums = [];
var vatsum = 0;
var data = rptdata.map(function (row)
{
//quantity * price
fullPrice = eMath.mulDec(parseFloat(row[21]), parseFloat(row[22]));
if (row[14] != "1") //optional
{
//itemSum = (fullPrice * (100 - discount)) / 100
itemSum = eMath.roundDec(eMath.divDec(eMath.mulDec(fullPrice, eMath.subDec(100, row[23])), 100), 2, eMath.ROUND_HALF_EVEN); //sum of the item
sumItemSum += itemSum; //total sum (without vat)
}
//vatsum = itemSum * vat / 100
vatsum = eMath.divDec(eMath.mulDec(itemSum, row[26]), 100); //vat per product
if(row[26] > 0)
sums.push([row[26], vatsum]); //MWSteuerwerte für Map vorbereiten
// sumItemSum + vat
total = eMath.addDec(sumItemSum, row[20]); //total sum with vat
return [
row[6], //currency
datetime.toDate(row[7], translate.text("dd.MM.yyyy", language)), //offerdate
row[8], //offerId
row[10], //info
row[11], //assignedTo
row[13], //itemname
row[14], //optional
row[15], //itemposition
row[16], //productcode
text.html2text(row[18]), //header
text.formatDouble(row[21], translate.text("#,##0"), true), //quantity
text.formatDouble(row[22], translate.text("#,##0.00"), true), //price
text.formatDouble(row[23], translate.text("0.00"), true), //discount
row[24], //versnr
row[25], //offercode
text.formatDouble(row[26], translate.text("#,##0.00"), true), //vat
text.formatDouble(itemSum, translate.text("#,##0.00"), true), //itemsum
KeywordUtils.getViewValue($KeywordRegistry.get.QuantityUnit, row[19]) //unittext
];
});
// discount-condtion = offerCondition + additional condition. So we can reuse the previous object
offerCondition.andPrepare("OFFERITEM.DISCOUNT", 0, "# <> ?");
......@@ -131,70 +200,35 @@ OfferUtils.openOfferReport = function(pOfferID)
.andPrepare("OFFER.OFFERID", pOfferID)
.buildSql("select count(OFFERITEM.DISCOUNT)" + offerFromSql, "1 = 0"));
for(var i = 0; i < rptdata.length; i++)
{
var optional = rptdata[i][14];
// calculate:
// "OFFERITEM_QUANTITY" * "OFFERITEM_PRICE"
fullPrice = eMath.mulDec(parseFloat(rptdata[i][21]), parseFloat(rptdata[i][22]) );
// ( fullPrice * ( 100 - "OFFERITEM_DISCOUNT" ) ) / 100
if(optional)
{
itemSum = eMath.roundDec(eMath.divDec(eMath.mulDec(fullPrice, eMath.subDec(100, rptdata[i][23]) ), 100), 2, eMath.ROUND_HALF_EVEN); //Summe je Artikel
sumItemSum += itemSum; //Gesamtsumme aller Artikel
}
// itemSum * "OFFERITEM_VAT" / 100
vatsum = (eMath.divDec(eMath.mulDec(itemSum, rptdata[i][26] ), 100)); //Steuerbetrag in Euro je Artikel
if(rptdata[i][26] > 0) sums.push([rptdata[i][26], vatsum]); //MWSteuerwerte fr Map vorbereiten
// sumItemSum + "OFFER_VAT"
total = eMath.addDec(sumItemSum, rptdata[i][20]); //Gesamtsumme zzgl. MwSt.
total = text.formatDouble(total, translate.text("#,##0.00"), true)
// format date
rptdata[i][7] = datetime.toDate(rptdata[i][7], translate.text("dd.MM.yyyy", language));
// format numbers
rptdata[i][22] = text.formatDouble(rptdata[i][22], translate.text("#,##0.00"), true);
rptdata[i][23] = text.formatDouble(rptdata[i][23], translate.text("0.00"), true);
rptdata[i][21] = text.formatDouble(rptdata[i][21], translate.text("#,##0"), true);
rptdata[i][26] = text.formatDouble(rptdata[i][26], translate.text("#,##0.00"), true);
rptdata[i][27] = text.formatDouble(itemSum, translate.text("#,##0.00"), true); //Immer zwei Nachkommastellen und ',' statt '.'
rptdata[i][28] = KeywordUtils.get("UNIT", rptdata[i][19])[1];
}
// TODO: get Images implementieren
var imgData = ["meineFirma | Konrad-Zuse-Strae 4 | DE 84144 Geisenhausen",
var imgData = ["meineFirma | Konrad-Zuse-Straße 4 | DE 84144 Geisenhausen",
"base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXV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"]
// getMyASYS_ICONSdata();
var params = {};
params["myAddr"] = imgData[0];
params["Pos"] = translate.text("Pos.", language);
params["Artikelbezeichnung"] = translate.text("Articledescription", language);
params["Artikel-Nr"] = translate.text("Articlenumber", language);
params["Einzelpreis"] = translate.text("Unitprice", language);
params["Menge"] = translate.text("Amount", language);
params["UMSt"] = translate.text("UMSt", language);
params["Datum"] = translate.text("Date", language);
params["Nummer"] = translate.text("Number", language);
params["Zahlungsbedingung"] = translate.text("Conditions of payment", language);
params["Lieferbedingung"] = translate.text("Deliveryspecification", language);
params["Rabatt"] = translate.text("Rabatt", language);
params["Gesamt"] = translate.text("Total", language);
params["Summe"] = translate.text("Sum", language);
params["zzglUMST"] = translate.text("Plus Salestax", language);
// TODO: OFFER.ADDRESS
params["OFFERAddr"] = AddressUtils.getAddress(relid).toString(); //rptdata[0][0];
// TODO: AddrObject implementieren
params["OFFERPers"] = (AddressUtils.getLetterSalutation() + ",").toString(); //addrobj.formatAddress("{ls},");
// TODO: payment / delivery-Terms implement (if needed)
params["OFFERPay"] = ""//getKeyName(rptdata[0][3] , "PAYMENTTERMS", "KEYNAME1", language);
params["OFFERDel"] = ""//getKeyName(rptdata[0][4] , "DELIVERYTERMS", "KEYNAME1", language);
var params = {
"Zahlungsbedingung" : translate.text("Conditions of payment", language),
"Artikelbezeichnung" : translate.text("Articledescription", language),
"Lieferbedingung" : translate.text("Deliveryspecification", language),
"OFFERPers" : (AddressUtils.getLetterSalutation() + ",").toString(), // TODO: AddrObject implementieren (addrobj.formatAddress("{ls},");)
"Artikel-Nr" : translate.text("Articlenumber", language),
"OFFERAddr" : AddressUtils.getAddress(relid).toString(), // TODO: OFFER.ADDRESS
"zzglUMST" : translate.text("Plus Salestax", language),
"Einzelpreis" : translate.text("Unitprice", language),
"Nummer" : translate.text("Number", language),
"Rabatt" : translate.text("Rabatt", language),
"Menge" : translate.text("Amount", language),
"Gesamt" : translate.text("Total", language),
"Datum" : translate.text("Date", language),
"UMSt" : translate.text("UMSt", language),
"Summe" : translate.text("Sum", language),
"Pos" : translate.text("Pos.", language),
"myAddr" : imgData[0],
// TODO: payment / delivery-Terms implement (if needed)
"OFFERPay" : "", //getKeyName(rptdata[0][3] , "PAYMENTTERMS", "KEYNAME1", language);
"OFFERDel" : "" //getKeyName(rptdata[0][4] , "DELIVERYTERMS", "KEYNAME1", language);
};
// TODO: implementieren wenn Attribute mglich sind
// TODO: implementieren wenn Attribute mglich sind
var adma = ""
/*var adm = getAddressData( [GetAttributeKey( "Aussendienst", "1", orgrelid, pUser )[0]],
[["Person","function", "concat( ['SALUTATION', 'TITLE', 'FIRSTNAME','LASTNAME'])"],
......@@ -205,32 +239,66 @@ OfferUtils.openOfferReport = function(pOfferID)
if (adm[1] != undefined) adma = adm[1].join("\n");*/
params["AD_Name"] = adma;
params["SUMITEMSUM"] = sumItemSum;
params["TOTAL"] = total;
params["TOTAL"] = text.formatDouble(total, translate.text("#,##0.00"), true);
params["anzahl"] = countDiscounts;
offerReport.addImage("myLogo", imgData[1]);
offerReport.addSubReportData("subdata", ReportData.begin(["VAT","WERT"]).add(sums));
offerReport.addReportParams(params);
var data = [];
for( i = 0; i < rptdata.length; i++)
{
data[i] = [rptdata[i][6], rptdata[i][7], rptdata[i][8], rptdata[i][10], rptdata[i][11], rptdata[i][13],
rptdata[i][14], rptdata[i][15], rptdata[i][16], rptdata[i][18], rptdata[i][19], //10
rptdata[i][22], rptdata[i][23],
rptdata[i][24], rptdata[i][25], rptdata[i][26], rptdata[i][27], rptdata[i][28]];
}
// 0 1 2 3 4
offerReport.setReportData(ReportData.begin(["OFFER_CURRENCY", "OFFER_OFFERDATE", "OFFER_OFFERID", "OFFERITEM_INFO", "OFFERITEM_ASSIGNEDTO",
"OFFERITEM_ITEMNAME" , "OFFERITEM_OPTIONAL", "OFFERITEM_ITEMPOSITION", "PRODUCT_PRODUCTCODE", "OFFER_HEADER", // 9
"OFFERITEM_QUANTITY", "OFFERITEM_PRICE", "OFFERITEM_DISCOUNT", "OFFER_VERSNR", "OFFER_OFFERCODE", "OFFERITEM_VAT", "ITEMSUM", // 16
"OFFERITEM_UNITTEXT"]) // 17
.add(data));
offerReport.setReportData(ReportData.begin(
[
"OFFER_CURRENCY",
"OFFER_OFFERDATE",
"OFFER_OFFERID",
"OFFERITEM_INFO",
"OFFERITEM_ASSIGNEDTO",
"OFFERITEM_ITEMNAME" ,
"OFFERITEM_OPTIONAL",
"OFFERITEM_ITEMPOSITION",
"PRODUCT_PRODUCTCODE",
"OFFER_HEADER", // 9
"OFFERITEM_QUANTITY",
"OFFERITEM_PRICE",
"OFFERITEM_DISCOUNT",
"OFFER_VERSNR",
"OFFER_OFFERCODE",
"OFFERITEM_VAT",
"ITEMSUM", // 16
"OFFERITEM_UNITTEXT" //17
])
.add(data));
offerReport.openReport();
}
/**
* opens an order in NEW mode with values from an offer
*
* @param pOfferId {String} id of the offer
* @param pSalesprojectId {String} salesproject id
* @param pContactId {String} contact id
* @param pLanguage {String} language
* @param pCurrency {String} [currency=""]
* @param pAddress {String} [address=""]
* @param pHeader {String} [header=""]
*/
OfferUtils.copyToOrder = function (pOfferId, pSalesprojectId, pContactId, pLanguage, pCurrency, pAddress, pHeader)
{
var params = {
"ContactId_param" : pContactId,
"SalesprojectId_param" : pSalesprojectId,
"OrderLanguage_param" : pLanguage,
"OfferId_param" : pOfferId,
"OrderCurrency_param" : pCurrency || "",
"OrderAddress_param" : pAddress || "",
"OrderHeader_param" : pHeader || ""
};
neon.openContext("Order_context", null, null, neon.OPERATINGSTATE_NEW, params);
}
/******************************************************************************/
/**
......
......@@ -125,12 +125,13 @@
</textField>
</band>
<band height="20">
<componentElement>
<reportElement mode="Transparent" x="20" y="0" width="535" height="20" uuid="bb9d7d02-c2a6-4f60-94e9-f0912135dbeb"/>
<hc:html xmlns:hc="http://jasperreports.sourceforge.net/htmlcomponent" xsi:schemaLocation="http://jasperreports.sourceforge.net/htmlcomponent http://jasperreports.sourceforge.net/xsd/htmlcomponent.xsd" scaleType="RetainShape" horizontalAlign="Left" verticalAlign="Middle">
<hc:htmlContentExpression><![CDATA[$F{OFFER_HEADER}]]></hc:htmlContentExpression>
</hc:html>
</componentElement>
<textField>
<reportElement x="20" y="0" width="535" height="20" uuid="8d10af04-82a4-4344-ae98-de42c82a674e"/>
<textElement>
<font fontName="Segoe UI" size="8"/>
</textElement>
<textFieldExpression><![CDATA[$F{OFFER_HEADER}]]></textFieldExpression>
</textField>
</band>
<band height="42">
<staticText>
......
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