/** * Renders a cashflow report as XLSX and saves it to the archive. * * @eloas * @requires sol.common.Template * @requires sol.common.TranslateTerms * @requires sol.common.ObjectFormatter.TemplateSord * @requires sol.common.as.DocumentGenerator * @requires sol.common.as.FunctionBase */ sol.define("sol.contract.as.functions.CreateCashflowReportBackground", { extend: "sol.common.as.FunctionBase", requiredProperty: ["parentId", "templateId"], /** * @cfg {String} parentId (required) The folder containing the contracts for the report */ /** * @cfg {String} templateId (required) The excel template */ /** * @cfg {String} user (optional) User name or id. If this is set, only this user is granted access to the report */ initialize: function (config) { var me = this; me.$super("sol.common.as.FunctionBase", "initialize", [config]); me.config = sol.create("sol.common.Config", { compose: "/contract/Configuration/contract.config" }).config; sol.common.TranslateTerms.require("sol.contract.action.createCashflowReport", "sol.contract.action.reports.folderName"); }, process: function () { var me = this, sord = sol.common.RepoUtils.getSord(me.parentId), templateSord = sol.common.SordUtils.getTemplateSord(sord).sord, name, targetId, path, generator, result; me.logger.debug("selected parent sord for report", templateSord); name = sol.create("sol.common.Template", { source: me.config.reporting.names.cashflow }).apply({ date: new Date(), sord: templateSord }); me.logger.debug("generating report with name", { name: name }); path = sol.create("sol.common.Template", { source: me.config.reporting.reportTargetId }).apply({ date: new Date(), sord: templateSord }); targetId = sol.common.RepoUtils.preparePath(path); me.logger.debug("generating report in", { targetId: targetId, path: path }); generator = sol.create("sol.common.as.DocumentGenerator", { name: name, dataCollector: "RF_sol_contract_service_PaymentPlanCollector", renderer: "sol.common.as.renderer.Excel", collectorConfig: { parentId: me.parentId }, rendererConfig: { targetId: targetId, templateId: me.templateId } }); result = generator.process(); if (result.objId) { if (typeof me.user !== "undefined") { sol.common.AclUtils.changeRightsInBackground(result.objId, { users: [me.user], rights: { r: true, w: true, d: true, e: true, l: true, p: true }, mode: "SET" }); } sol.common.WfUtils.createReminder(result.objId); } } });