// This script contains the logic which is executed whenever data is entered and sent


//Calculate Total Hours and Total Amount on changes of Quantity
*WHEN S_CAPFLOW
	*IS AVAILABLE,ADJUST
	*WHEN S_CAPMETRIC
		*IS QTY,CAPITAL,HOURS,USEFUL
		*REC(EXPRESSION = [S_CAPMETRIC].[QTY] * [S_CAPMETRIC].[HOURS],  S_CAPMETRIC = THOURS)
		*REC(EXPRESSION = [S_CAPMETRIC].[QTY] * [S_CAPMETRIC].[CAPITAL],  S_CAPMETRIC = TCAPITAL)
		*REC(EXPRESSION = [S_CAPMETRIC].[CAPITAL] / [S_CAPMETRIC].[USEFUL],  S_CAPMETRIC = DEPR)
		*REC(EXPRESSION = [S_CAPMETRIC].[CAPITAL] / [S_CAPMETRIC].[USEFUL] * [S_CAPMETRIC].[QTY],  S_CAPMETRIC = TDEPR)
	*ENDWHEN
*ENDWHEN

//Allocate CAPITAL, HOURS, USEFUL and DEPR Exp
*RUNALLOCATION
	*FACTOR = 
	*DIM S_CAPMETRIC WHAT = CAPITAL,HOURS,USEFUL,DEPR;WHERE = <<<; 
	*DIM S_CAPFLOW WHAT = AVAILABLE ;WHERE <> AVAILABLE; 
*ENDALLOCATION 

/////BEGIN - Should be executed when you update S_PROCESSING hours and Other Models Hours
//Calculates Total Depreciation, CAPEX and QTY based on the Total Hours comming from S_PROCESSING

*XDIM_MEMBERSET S_CAPFLOW = DEMAND
*XDIM_MEMBERSET S_CAPMETRIC = THOURS

*WHEN S_CAPFLOW
	*IS DEMAND
	*REC(EXPRESSION = [S_CAPMETRIC].[THOURS] / [S_CAPMETRIC].[HOURS], S_CAPMETRIC = QTY)
	*REC(EXPRESSION = [S_CAPMETRIC].[THOURS] / [S_CAPMETRIC].[HOURS] * [S_CAPMETRIC].[DEPR], S_CAPMETRIC = TDEPR)
	*REC(EXPRESSION = [S_CAPMETRIC].[THOURS] / [S_CAPMETRIC].[HOURS] * [S_CAPMETRIC].[CAPITAL], S_CAPMETRIC = TCAPITAL)
*ENDWHEN 




// //Calculate Balance

*XDIM_MEMBERSET S_CAPFLOW = %S_CAPFLOW_SET%
*XDIM_MEMBERSET S_CAPMETRIC = <All>

*WHEN S_CAPMETRIC
	*IS *
	*REC(EXPRESSION = ([S_CAPFLOW].[DEMAND] - [S_CAPFLOW].[AVAILABLE] + [S_CAPFLOW].[ADJUST]), S_CAPFLOW = BALANCE)
*ENDWHEN 



//Send the Total Depriciation Expense to OPEX Model
*XDIM_MEMBERSET S_CAPFLOW = BALANCE
*XDIM_MEMBERSET S_CAPMETRIC = TDEPR

*DESTINATION_APP = SF_OPEX
*SKIP_DIM = S_CAPACC,S_CAPFLOW,S_CAPMETRIC
//*ADD_DIM S_GLACC = RATE
*ADD_DIM S_GLACC = S_CAPACC:S_GLACC
*ADD_DIM S_CCENTER = S_CAPACC:S_CCENTER

*WHEN S_TIME
	*IS *
	*REC(EXPRESSION = %VALUE%)
*ENDWHEN 

//Send Balance Labor Hours to OPEX for Rate Calculation
*XDIM_MEMBERSET S_CAPMETRIC = THOURS

*DESTINATION_APP = SF_OPEX
*SKIP_DIM = S_CAPACC,S_CAPFLOW,S_CAPMETRIC
*ADD_DIM S_GLACC = MHOURS
*ADD_DIM S_CCENTER = S_CAPACC:S_CCENTER

*WHEN S_TIME
	*IS *
	*REC(EXPRESSION = %VALUE%)
*ENDWHEN
