importPackage(Packages.de.elo.ix.client); //@include lib_Class.js //@include lib_sol.common.Config.js //@include lib_sol.common.SordUtils.js //@include lib_sol.common.JsonUtils.js //@include lib_sol.common.TranslateTerms.js //@include lib_sol.common.IxUtils.js //@include lib_sol.common.ix.RfUtils.js //@include lib_sol.common.ix.ServiceBase.js //@include lib_sol.contract.mixins.Configuration.js //@include lib_sol.common.SordProvider.js //@include lib_sol.common.Injection.js var logger = sol.create("sol.Logger", { scope: "sol.contract.ix.services.GetDocumentUpdateTypes" }); /** * Retrieves document update types. * * @author ELO Digital Office GmbH * * @eloix * @requires sol.common.Config * @requires sol.common.JsonUtils * @requires sol.common.IxUtils * @requires sol.common.ix.RfUtils * @requires sol.common.ix.ServiceBase * @requires sol.common.UserUtils * @requires sol.contract.mixins.Configuration * @requires sol.common.Injection */ sol.define("sol.contract.ix.services.GetDocumentUpdateTypes", { extend: "sol.common.ix.ServiceBase", mixins: ["sol.contract.mixins.Configuration", "sol.common.mixins.Inject"], requiredConfig: ["objId"], inject: { types: { config: "contract", prop: "clauses.types.updateTypes", template: true } }, initialize: function (config) { var me = this; sol.create("sol.common.Injection").inject(me); me.$super("sol.common.ix.ServiceBase", "initialize", [config]); }, process: function () { var me = this, sord, solType, i, type; // Return a specific update type for a specific solution type, e.g. "CONTRACT_DOCUMENT_TEMPLATE" sord = sol.common.RepoUtils.getSord(me.objId); solType = sol.common.SordUtils.getObjKeyValue(sord, "SOL_TYPE"); me.logger.debug(["GetDocumentUpdateTypes: objId={0}, solType={1}", me.objId, solType]); for (i = 0; i < me.types.length; i++) { type = me.types[i]; if (type.selectForSolType == solType) { return JSON.stringify([type]); } } return JSON.stringify(me.types); } }); /** * @member sol.contract.ix.services.GetDocumentUpdateTypes * @method RF_sol_contract_service_GetDocumentUpdateTypes * @static * @inheritdoc sol.common.ix.ServiceBase#RF_ServiceBaseName */ function RF_sol_contract_service_GetDocumentUpdateTypes(ec, args) { var params, module, result; logger.enter("RF_sol_contract_service_GetDocumentUpdateTypes", args); params = sol.common.ix.RfUtils.parseAndCheckParams(ec, arguments.callee.name, args); module = sol.create("sol.contract.ix.services.GetDocumentUpdateTypes", params); result = module.process(); logger.exit("RF_sol_contract_service_GetDocumentUpdateTypes", result); return result; }