Skip to content
Snippets Groups Projects
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]);
    }