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.NegotiateContract" }); /** * Start the negotiation of 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.NegotiateContract", { 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 "NegotiateContract"; }, process: function () { var me = this, contractSord, contractConfig, contractObjId, wfNumber, wfName; 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.negotiateContract.workflowNameTemplate }).apply({ wfDate: new Date(), wfNumber: wfNumber }); me.startWorkflow(contractObjId, contractConfig.workflows.negotiateContract.workflowTemplateName, wfName); me.addFeedbackEvent("sol.contract.client.contract.msg.contractNegotiationProcessed", me.ci.language); me.addRefreshEvent(contractObjId); } }); /** * @member sol.contract.ix.actions.NegotiateContract * @method RF_sol_contract_action_NegotiateContract * @static * @inheritdoc sol.common.ix.FunctionBase#RF_FunctionName */ function RF_sol_contract_action_NegotiateContract(ec, configAny) { logger.enter("RF_sol_contract_action_NegotiateContract", configAny); var rfUtils = sol.common.ix.RfUtils, config = rfUtils.parseAndCheckParams(ec, arguments.callee.name, configAny, "objId"), negotiateContract, result; config.ci = ec.ci; config.user = ec.user; negotiateContract = sol.create("sol.contract.ix.actions.NegotiateContract", config); result = negotiateContract.execute(); logger.exit("RF_sol_contract_action_NegotiateContract", result); return result; }