Name
global.PortfolioMetaData
Description
Metadata for portfolio workbench
Script
var PortfolioMetaData = Class.create();
PortfolioMetaData.prototype = {
initialize: function(sysClassName, context) {
this.sysClassName = sysClassName;
this.context = context;
},
metadata: function(portfolioId, fiscalYearId) {
if(!PmRecordAccessHelper.canReadRecord(this.sysClassName, portfolioId)) {
return {status: 'error', message: "User doesnot have access to the record"};
}
var metadata = this.baseMetadata();
if ( GlidePluginManager.isActive('com.snc.financial_planning_pmo') )
return this.financialMetadata(portfolioId, metadata, fiscalYearId);
else
return metadata;
},
financialMetadata: function(portfolioId, metadata, fiscalYearId) {
var funding = {}, sYear = 0, sMonth = 0, sDate = 0, eYear = 0, eMonth = 0, eDate = 0;
if ( fiscalYearId == 'all' )
funding = {allocated: true, isPlanned: true};
else {
var f = (new PPMProjectFunding()).findOrCreateFundingRecordForPortfolio(portfolioId, fiscalYearId);
funding.allocated = f.allocated();
funding.isPlanned = f.isPlanned();
}
metadata.isPlanned = funding.isPlanned;
metadata.allocated = funding.allocated;
metadata.currencySymbol = PPMCurrencyHelper.defaultCurrencySymbol();
if(fiscalYearId != 'all') {
var fiscalYearGr = new GlideRecord('fiscal_period');
if(fiscalYearGr.get(fiscalYearId)) {
metadata.fiscal_start_date_time = fiscalYearGr.getValue('start_date_time');
sYear = parseInt(metadata.fiscal_start_date_time.substr(0, 4), 10);
sMonth = parseInt(metadata.fiscal_start_date_time.substr(4, 2), 10) - 1;
sDate = parseInt(metadata.fiscal_start_date_time.substr(6, 2), 10);
metadata.fiscal_end_date_time = fiscalYearGr.getValue('end_date_time');
eYear = parseInt(metadata.fiscal_end_date_time.substr(0, 4), 10);
eMonth = parseInt(metadata.fiscal_end_date_time.substr(4, 2), 10) - 1;
eDate = parseInt(metadata.fiscal_end_date_time.substr(6, 2), 10);
metadata.fiscal_start_date_time = new Date(sYear, sMonth, sDate, 0, 0, 0).getTime();
metadata.fiscal_end_date_time = new Date(eYear, eMonth, eDate, 23, 59, 59).getTime();
}
}
return metadata;
},
baseMetadata: function() {
gs.log("PortfolioMetaData : " + this.sysClassName);
var columnConfig = (new SNC.PlannedTaskAPI()).entityMetadata(this.sysClassName, this.context);
columnConfig = (new JSON()).decode(columnConfig);
return {
columnConfig: columnConfig,
timeZone: gs.getUser().getTZ(),
financeEnabled: GlidePluginManager.isActive('com.snc.financial_planning_pmo'),
dateFormat: gs.getDateFormat(),
dateTimeFormat: gs.getDateTimeFormat(),
status: 'success'
};
},
type: 'PortfolioMetaData'
};
Sys ID
ef45d3418720020028d7db5eb2e3ec1c