importPackage(Packages.de.elo.ix.client); importPackage(Packages.de.elo.ix.jscript); //@include lib_Class.js //@include lib_sol.common.Config.js //@include lib_sol.common.JsonUtils.js //@include lib_sol.common.SordUtils.js //@include lib_sol.common.IxUtils.js //@include lib_sol.common.WfUtils.js //@include lib_sol.common.RepoUtils.js //@include lib_sol.common.SordTypeUtils.js //@include lib_sol.common.Template.js //@include lib_sol.common.TranslateTerms.js //@include lib_sol.common.ix.RfUtils.js //@include lib_sol.common.ix.ActionBase.js //@include lib_sol.common.ix.FunctionBase.js //@include lib_sol.contract.ix.ContractUtils.js var logger = sol.create("sol.Logger", { scope: "sol.contract.ix.actions.ConcludeContract" }); /** * Conclude a contract * * @eloix * * @requires sol.common.Config * @requires sol.common.JsonUtils * @requires sol.common.SordUtils * @requires sol.common.IxUtils * @requires sol.common.CounterUtils * @requires sol.common.AclUtils * @requires sol.common.RepoUtils * @requires sol.common.Template * @requires sol.common.TranslateTerms * @requires sol.common.WfUtils * @requires sol.common.ix.RfUtils * @requires sol.common.ix.ActionBase * @requires sol.common.ix.FunctionBase * @requires sol.contract.ix.ContractUtils */ sol.define("sol.contract.ix.actions.ConcludeContract", { extend: "sol.common.ix.ActionBase", requiredConfig: ["ci", "user", "objId"], /** * @cfg {de.elo.ix.client.ClientInfo} ci (required) */ /** * @cfg {de.elo.ix.client.UserInfo} user (required) */ /** * @cfg {String} templateId (required) * Object ID of the template */ initialize: function (config) { var me = this; me.$super("sol.common.ix.ActionBase", "initialize", [config]); }, getName: function () { return "ConcludeContract"; }, process: function () { var me = this, contractSord, contractConfig, contractObjId, wfNumber, wfName, flowId, dialogTitle; contractConfig = sol.contract.ix.ContractUtils.loadConfig(); contractSord = sol.common.RepoUtils.findObjectTypeInHierarchy(me.objId, contractConfig.objectTypes); if (!contractSord) { me.addErrorEvent("sol.contract.client.contract.msg.noContractFoundInHierarchy", "", "", me.ci.language); return; } me.requireUserRights(contractSord, { rights: "RW", language: me.ci }); contractObjId = contractSord.id; wfNumber = me.actionId; wfName = sol.create("sol.common.Template", { source: contractConfig.workflows.concludeContract.workflowNameTemplate }).apply({ wfDate: new Date(), wfNumber: wfNumber }); flowId = me.startWorkflow(contractObjId, contractConfig.workflows.concludeContract.workflowTemplateName, wfName); dialogTitle = sol.common.TranslateTerms.translate("sol.contract.client.ribbon.btnConcludeContract"); me.addWfDialogEvent(flowId, { objId: contractObjId, dialogId: me.getName(), title: dialogTitle }); me.addRefreshEvent(contractObjId, { type: "WF_STATUS", value: "CONCLUDE", flowId: flowId }); } }); /** * @member sol.contract.ix.actions.ConcludeContract * @method RF_sol_contract_action_ConcludeContract * @static * @inheritdoc sol.common.ix.FunctionBase#RF_FunctionName */ function RF_sol_contract_action_ConcludeContract(ec, configAny) { logger.enter("RF_sol_contract_action_ConcludeContract", configAny); var rfUtils = sol.common.ix.RfUtils, config = rfUtils.parseAndCheckParams(ec, arguments.callee.name, configAny, "objId"), concludeContract, result; config.ci = ec.ci; config.user = ec.user; concludeContract = sol.create("sol.contract.ix.actions.ConcludeContract", config); result = concludeContract.execute(); logger.exit("RF_sol_contract_action_ConcludeContract", result); return result; }