Something went wrong on our end
-
Johannes Hörmann authoredJohannes Hörmann authored
process.js 18.32 KiB
import("system.translate");
import("system.db");
import("system.eMath");
import("system.tools");
import("Util_lib");
import("Product_lib");
/**
* Methods used by Offer.
*
* Do not create an instance of this!
* @class
*/
function OfferUtils() {}
/**
* Delivers the next valid offer number (has to be unique)
*
* @return {String} next valid offer number
*/
OfferUtils.getNextProjectNumber = function() {
return NumberSequencingUtils.getNextUniqueNumber("OFFERCODE", "OFFER");
}
/**
* Delivers the next valid offer version number
*
* @return {String} offerCode next valid offer version number
*/
OfferUtils.getNextOfferVersionNumber = function(offerCode) {
return NumberSequencingUtils.getNextUniqueNumber("VERSNR", "OFFER", 1, "OFFERCODE = " + offerCode);
}
/**
* Checks if the passed offer number is valid (has to be unique)
*
* @param {String} offerNumber offer number to check
*
* @return {boolean} passed number is valid
*/
OfferUtils.validateOfferNumber = function(offerNumber)
{
return NumberSequencingUtils.validateUniqueNumber(offerNumber, "OFFERCODE", "OFFER");
}
OfferUtils.getOfferNumberValidationFailString = function()
{
return translate.text("The offer number already exists!");
}
OfferUtils.getOfferNetAndVAT = function(offerId, offeritemIdsToDel)
{
// TODO: Bessere Möglichkeit als per SQL die zugehörigen Posten aus der DB zu holen?
var sum = 0;
var vat = 0;
var oiUtils = new OfferItemUtils(offerId);
var condition = "where OFFER_ID = '" + offerId + "'";
if(offeritemIdsToDel != undefined)
condition += " and OFFERITEMID not in ('" + offeritemIdsToDel.join("','") + "')";
var offerItems = db.table("select QUANTITY, PRICE, DISCOUNT, VAT, OPTIONAL "
+ "from OFFERITEM " + condition);
for(var i = 0; i < offerItems.length; i++)
{
sum += oiUtils.getItemSum(offerItems[i][0], offerItems[i][1], offerItems[i][2], offerItems[i][4]);
vat += oiUtils.getItemVAT(offerItems[i][0], offerItems[i][1], offerItems[i][2], offerItems[i][3], offerItems[i][4]);
}