Commit 80566322 authored by Powell, Eric's avatar Powell, Eric
Browse files

Initial Logic Implemented ti support multiple query sources - Cost Division,...

Initial Logic Implemented ti support multiple query sources - Cost Division, Responsible Person, IAN, CHarge Number
parent a4cf5093
Loading
Loading
Loading
Loading
+177 −12
Original line number Diff line number Diff line
/********************************
REFERENCE
*********************************/



let
// Filter Criteria - Provide as MANY values as you know to improve performance. Base case should be Cost_Division OR Responsible Person AND IAN OR Charge Code
	Cost_Division = null,
	Responsible_Person = null,
	IAN = null,
	Charge_Code = null,

    //Initial Data Pull, Cost_Division and Repsonsible Person
    
    Source = AnalysisServices.Databases("prdbi", [TypedMeasureColumns=true, Implementation="2.0"]),
    Finance_Reporting = Source{[Name="Finance_Reporting"]}[Data],
    #"BI FINANCE DWReporting1" = Finance_Reporting{[Id="BI FINANCE DWReporting"]}[Data],
    #"BI FINANCE DWReporting2" = #"BI FINANCE DWReporting1"{[Id="BI FINANCE DWReporting"]}[Data],
    #"Added Items" = Cube.Transform(#"BI FINANCE DWReporting2",
        {
            {Cube.AddAndExpandDimensionColumn, "[Charge Numbers]", {"[Charge Numbers].[Cost Division].[Cost Division]"}, {"Charge Numbers.Cost Division"}}
        }),
    #"Filtered Rows" = Table.SelectRows(#"Added Items", each (Cube.AttributeMemberId([Charge Numbers.Cost Division]) = "[Charge Numbers].[Cost Division].&[X163]" meta [DisplayName = "X163"])),
    #"Added Items1" = Cube.Transform(#"Filtered Rows",
        {
            {Cube.AddAndExpandDimensionColumn, "[Charge Numbers]", {"[Charge Numbers].[Internal Activity No].[Internal Activity No]"}, {"Charge Numbers.Internal Activity No"}}
            {Cube.AddAndExpandDimensionColumn, "[Charge Numbers]", {"[Charge Numbers].[Cost Division].[Cost Division]", "[Charge Numbers].[Resp Person Name].[Resp Person Name]"}, {"Charge Numbers.Cost Division", "Charge Numbers.Resp Person Name"}}
        }),
    #"Filtered Rows1" = Table.SelectRows(#"Added Items1", each (Cube.AttributeMemberId([Charge Numbers.Internal Activity No]) = "[Charge Numbers].[Internal Activity No].&[43WZ59401]" meta [DisplayName = "43WZ59401"] or Cube.AttributeMemberId([Charge Numbers.Internal Activity No]) = "[Charge Numbers].[Internal Activity No].&[43WZ59402]" meta [DisplayName = "43WZ59402"] or Cube.AttributeMemberId([Charge Numbers.Internal Activity No]) = "[Charge Numbers].[Internal Activity No].&[43WZ59403]" meta [DisplayName = "43WZ59403"] or Cube.AttributeMemberId([Charge Numbers.Internal Activity No]) = "[Charge Numbers].[Internal Activity No].&[43WZ59404]" meta [DisplayName = "43WZ59404"])),
    #"Added Items2" = Cube.Transform(#"Filtered Rows1",
        
   //Filrst Filter - Limit to RP or Cost Division
   #"Cost_RP_Filter" =
   	if Cost_Division <> null and Responsible_Person <> null then
   		Table.SelectRows("Added Items", each [Cost Division] = Cost_Division and [Responsible Person] = Responsible_Person)
   	
   	else if Cost_Division = null and Responsible_Person <> null then
   		Table.SelectRows("Added Items", [Responsible Person] = Responsible_Person)
   	
   	else if Cost_Division <> null and Responsible_Person = null then
   		Table.SelectRows("Added Items", each [Cost Division] = Cost_Division)
   	else
   		"Added Items"
   in
   	#"Cost_RP_Filter"
    #"Added Items1" = Cube.Transform(#"Cost_RP_Filter",
        {
            {Cube.AddAndExpandDimensionColumn, "[Charge Numbers]", {"[Charge Numbers].[Charge Number].[Charge Number]"}, {"Charge Numbers.Charge Number"}}
            {Cube.AddAndExpandDimensionColumn, "[Charge Numbers]", {"[Charge Numbers].[Internal Activity No].[Internal Activity No]", "[Charge Numbers].[Charge Number].[Charge Number]"}, {"Charge Numbers.Internal Activity No", "Charge Numbers.Charge Number"}}
        }),
    #"Removed Columns" = Table.RemoveColumns(#"Added Items2",{"Charge Numbers.Cost Division"}),
    //Second Filter: IAN or Charge Number
    #"IAN_Charge_Filter" =
   	if IAN <> null and Charge_Code <> null then
   		Table.SelectRows("Added Items1", each [Cost Division] = Cost_Division and [Responsible Person] = IAN)
   	else if Charge_Code = null and IAN <> null then
   		Table.SelectRows("Added Items1", [Responsible Person] = IAN)
   	
   	else if Charge_Code <> null and IAN = null then
   		Table.SelectRows("Added Items1", each [Cost Division] = Charge_Code)
   	else
   		"Added Items"
   in
   	#"IAN_Charge_Filter"
  
    #"Removed Columns" = Table.RemoveColumns(#"IAN_Charge_Filter",{"Charge Numbers.Cost Division"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Charge Numbers.Internal Activity No", "IAN"}, {"Charge Numbers.Charge Number", "Charge Number"}})
in
    #"Renamed Columns"



/********************************
Cost Elem
*********************************/

let
    Source = Reference,
@@ -66,7 +102,12 @@ let
in
    #"Changed Type1"
    
    
/**********************************
Summary
**********************************/


let
    Source = Reference,
    #"Added Items" = Cube.Transform(Source,
@@ -94,3 +135,127 @@ let
    #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom1",{{"POs", type number}, {"PRs", type number}})
in
    #"Changed Type1"
 
 
 /***********************
 POs
 *************************/
 
 let
    Source = Reference,
    #"Added Items" = Cube.Transform(Source,
        {
            {Cube.AddMeasureColumn, "Accrual", "[Measures].[Accrual]"},
            {Cube.AddMeasureColumn, "Base Cost", "[Measures].[Base Cost]"},
            {Cube.AddMeasureColumn, "Invoiced Cost", "[Measures].[Invoiced Cost]"},
            {Cube.AddMeasureColumn, "Rem Commitment", "[Measures].[Rem Commitment]"},
            {Cube.AddMeasureColumn, "Total PO Commit w Ovh", "[Measures].[Total PO Commit w Ovh]"},
            {Cube.AddMeasureColumn, "Total Cost w Ovh", "[Measures].[Total Cost w Ovh]"}
        }),
    #"Added Items1" = Cube.Transform(#"Added Items",
        {
            {Cube.AddAndExpandDimensionColumn, "[Purchase Order Items]", {"[Purchase Order Items].[Vendor - PO - Item].[Vendor Name]"}, {"Purchase Order Items.Vendor Name"}},
            {Cube.AddAndExpandDimensionColumn, "[Purchase Order Master]", {"[Purchase Order Master].[Purchase Order Number].[Purchase Order Number]", "[Purchase Order Master].[Brief Description].[Brief Description]"}, {"Purchase Order Master.Purchase Order Number", "Purchase Order Master.Brief Description"}}
        }),
    #"Add Closeout Status" = Cube.Transform(#"Added Items1",
        {
            {Cube.AddAndExpandDimensionColumn, "[Purchase Order Items]", {"[Purchase Order Items].[Closeout Status].[Closeout Status]"}, {"Purchase Order Items.Closeout Status"}}
        }),
    #"Changed Type" = Table.TransformColumnTypes(#"Add Closeout Status",{{"Invoiced Cost", type number}, {"Total PO Commit w Ovh", type number}}),
    #"Filtered Rows" = Table.SelectRows(#"Changed Type", each (Cube.AttributeMemberId([Purchase Order Master.Purchase Order Number]) <> "[Purchase Order Master].[Purchase Order Number].&[9999999999]" meta [DisplayName = "9999999999"])),
    #"Renamed Columns" = Table.RenameColumns(#"Filtered Rows",{{"Purchase Order Items.Vendor Name", "Vendor"}, {"Purchase Order Master.Purchase Order Number", "PO Number"}, {"Purchase Order Master.Brief Description", "PO Description"}, {"Total Cost w Ovh", "Base w OH"}}),
    #"Added Custom" = Table.AddColumn(#"Renamed Columns", "% PO Spent", each [Base Cost]/([Rem Commitment]+[Base Cost])),
    #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"% PO Spent", type number}, {"Base w OH", type number}})
in
    #"Changed Type1"
 
 
/***************************
Req
****************************/
 
 let
    Source = Reference,
    #"Added Items" = Cube.Transform(Source,
        {
            {Cube.AddMeasureColumn, "PR Amount w Ovh", "[Measures].[PR Amount w Ovh]"},
            {Cube.AddMeasureColumn, "Rem PR Commit", "[Measures].[Rem PR Commit]"}
        }),
    #"Add Req Details" = Cube.Transform(#"Added Items",
        {
            {Cube.AddAndExpandDimensionColumn, "[Purchase Req]", {"[Purchase Req].[Goods Recipient Name].[Goods Recipient Name]", "[Purchase Req].[Processing Status].[Processing Status]", "[Purchase Req].[Purchase Req Item Descr].[Purchase Req Item Descr]", "[Purchase Req].[Purchase Req Number].[Purchase Req Number]"}, {"Purchase Req.Goods Recipient Name", "Purchase Req.Processing Status", "Purchase Req.Purchase Req Item Descr", "Purchase Req.Purchase Req Number"}}
        }),
    #"Add Current Period Flag" = Cube.Transform(#"Add Req Details",
        {
            {Cube.AddAndExpandDimensionColumn, "[Date Current Flags]", {"[Date Current Flags].[Current Period Flag].[Current Period Flag]"}, {"Date Current Flags.Current Period Flag"}}
        }),
    #"Changed Type" = Table.TransformColumnTypes(#"Add Current Period Flag",{{"PR Amount w Ovh", type number}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Purchase Req.Purchase Req Item Descr", "Req Description"}, {"Purchase Req.Purchase Req Number", "Req Number"}, {"Purchase Req.Goods Recipient Name", "Recipient Name"}, {"Rem PR Commit", "Req Amount"}, {"PR Amount w Ovh", "Req w/ OH"}}),
    #"Filtered Rows" = Table.SelectRows(#"Renamed Columns", each (Cube.AttributeMemberId([Date Current Flags.Current Period Flag]) = "[Date Current Flags].[Current Period Flag].&[Y]" meta [DisplayName = "Y"]))
in
    #"Filtered Rows"
    
    
 /***************************
 Labor
 **************************/
 
 let
    Source = Reference,
    #"Sorted Rows1" = Table.Sort(Source,{{"IAN", Order.Ascending}}),
    #"Add Cost and Hours" = Cube.Transform(#"Sorted Rows1",
        {
            {Cube.AddMeasureColumn, "Labor W Org Burden & Ovh", "[Measures].[Labor W Org Burden & Ovh]"},
            {Cube.AddMeasureColumn, "Hours", "[Measures].[Hours]"}
        }),
    #"Add Dates" = Cube.Transform(#"Add Cost and Hours",
        {
            {Cube.AddAndExpandDimensionColumn, "[Date Months]", {"[Date Months].[Current 3 Periods of FY Flag].[Current 3 Periods of FY Flag]", "[Date Months].[Current FY Flag].[Current FY Flag]", "[Date Months].[Current Period Flag].[Current Period Flag]", "[Date Months].[FY Abbrev and Month Abbrev].[FY Abbrev and Month Abbrev]", "[Date Months].[FY Abbrev And Period Number].[FY Abbrev And Period Number]", "[Date Months].[Rolling 3 Periods Flag].[Rolling 3 Periods Flag]"}, {"Date Months.Current 3 Periods of FY Flag", "Date Months.Current FY Flag", "Date Months.Current Period Flag", "Date Months.FY Abbrev and Month Abbrev", "Date Months.FY Abbrev And Period Number", "Date Months.Rolling 3 Periods Flag"}},
            {Cube.AddAndExpandDimensionColumn, "[PALS Week Ending]", {"[PALS Week Ending].[End Date].[End Date]"}, {"PALS Week Ending.End Date"}},
            {Cube.AddAndExpandDimensionColumn, "[PALS Week Posted]", {"[PALS Week Posted].[End Date].[End Date]"}, {"PALS Week Posted.End Date"}}
        }),
    #"Add Names" = Cube.Transform(#"Add Dates",
        {
            {Cube.AddAndExpandDimensionColumn, "[Personnel]", {"[Personnel].[Lastname First Middle Hier].[Lastname First Middle Hier]"}, {"Personnel.Lastname First Middle Hier"}},
            {Cube.AddAndExpandDimensionColumn, "[FY]", {"[FY].[Fiscal Year].[Fiscal Year]"}, {"FY.Fiscal Year"}}
        }),
    #"Renamed Columns" = Table.RenameColumns(#"Add Names",{{"Labor W Org Burden & Ovh", "Labor Cost"}, {"Date Months.FY Abbrev and Month Abbrev", "Month"}, {"Date Months.FY Abbrev And Period Number", "Period"}, {"Personnel.Lastname First Middle Hier", "Name"}, {"PALS Week Ending.End Date", "PALS Week End"}, {"PALS Week Posted.End Date", "PALS Week Posted"}, {"Date Months.Current FY Flag", "Current FY Flag"}, {"Date Months.Current 3 Periods of FY Flag", "Current 3 Periods of FY Flag"}, {"Date Months.Rolling 3 Periods Flag", "Rolling 3 Periods Flag"}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",{{"Labor Cost", type number}}),
    #"Replaced Value" = Table.ReplaceValue(#"Changed Type","202","2",Replacer.ReplaceText,{"PALS Week End"}),
    #"Replaced Value1" = Table.ReplaceValue(#"Replaced Value","202","2",Replacer.ReplaceText,{"PALS Week Posted"}),
    #"Renamed Columns1" = Table.RenameColumns(#"Replaced Value1",{{"Date Months.Current Period Flag", "Current Period Flag"}}),
    #"Sorted Rows" = Table.Sort(#"Renamed Columns1",{{"Hours", Order.Descending}})
in
    #"Sorted Rows"
    
  
  /**************************
  Travel
  ***************************/
  let
    Source = Reference,
   #"Added Items" = Cube.Transform(Source,
        {
            {Cube.AddAndExpandDimensionColumn, "[Cost Elements]", {"[Cost Elements].[Cost Categ Level 1].[Cost Categ Level 1]", "[Cost Elements].[Cost Categ Level 2].[Cost Categ Level 2]", "[Cost Elements].[Cost Element Descr].[Cost Element Descr]"}, {"Cost Elements.Cost Categ Level 1", "Cost Elements.Cost Categ Level 2", "Cost Elements.Cost Element Descr"}},
            {Cube.AddMeasureColumn, "Total Cost & Ovh", "[Measures].[Total Cost & Ovh]"},
            {Cube.AddMeasureColumn, "Cost", "[Measures].[Cost]"},
            {Cube.AddMeasureColumn, "Overhead Cost", "[Measures].[Overhead Cost]"}
        }),
    #"Filtered Rows" = Table.SelectRows(#"Added Items", each (Cube.AttributeMemberId([Cost Elements.Cost Categ Level 1]) = "[Cost Elements].[Cost Categ Level 1].&[Other Direct Cost (ODC)]" meta [DisplayName = "Other Direct Cost (ODC)"])),
    #"Reordered Columns" = Table.ReorderColumns(#"Filtered Rows",{"IAN", "Cost Elements.Cost Categ Level 1", "Cost Elements.Cost Categ Level 2", "Cost Elements.Cost Element Descr", "Cost", "Overhead Cost", "Total Cost & Ovh"}),
    #"Add Dates" = Cube.Transform(#"Reordered Columns",
        {
            {Cube.AddAndExpandDimensionColumn, "[Date Months]", {"[Date Months].[Current 3 Periods of FY Flag].[Current 3 Periods of FY Flag]", "[Date Months].[Current Period Flag].[Current Period Flag]", "[Date Months].[FY Abbrev and Month Abbrev].[FY Abbrev and Month Abbrev]", "[Date Months].[FY Abbrev And Period Number].[FY Abbrev And Period Number]", "[Date Months].[Rolling 3 Periods Flag].[Rolling 3 Periods Flag]"}, {"Date Months.Current 3 Periods of FY Flag", "Date Months.Current Period Flag", "Date Months.FY Abbrev and Month Abbrev", "Date Months.FY Abbrev And Period Number", "Date Months.Rolling 3 Periods Flag"}},
            {Cube.AddAndExpandDimensionColumn, "[Date]", {"[Date].[DateYMD].[DateYMD]"}, {"Date.DateYMD"}}
        }),
    #"Add Line Item Details" = Cube.Transform(#"Add Dates",
        {
            {Cube.AddAndExpandDimensionColumn, "[Line Item Desc]", {"[Line Item Desc].[Line Item Descr].[Line Item Descr]"}, {"Line Item Desc.Line Item Descr"}},
            {Cube.AddAndExpandDimensionColumn, "[Personnel]", {"[Personnel].[Personnel No].[Personnel No]", "[Personnel].[Lastname First Middle].[Lastname First Middle]"}, {"Personnel.Personnel No", "Personnel.Lastname First Middle"}}
        }),
    #"Changed Type" = Table.TransformColumnTypes(#"Add Line Item Details",{{"Total Cost & Ovh", type number}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Cost Elements.Cost Categ Level 1", "Cost Category L1"}, {"Date Months.FY Abbrev and Month Abbrev", "Month"}, {"Date Months.FY Abbrev And Period Number", "Period"}, {"Cost Elements.Cost Categ Level 2", "Cost Category L2"}, {"Date Months.Current 3 Periods of FY Flag", "Current 3 Periods"}, {"Date Months.Rolling 3 Periods Flag", "Rolling 3 Periods Flag"}, {"Cost Elements.Cost Element Descr", "Cost Ele Descr"}, {"Cost", "Base Cost"}, {"Overhead Cost", "OH"}, {"Total Cost & Ovh", "Total w OH"}, {"Date.DateYMD", "DateYMD"}, {"Line Item Desc.Line Item Descr", "Line Item Descr"}, {"Personnel.Personnel No", "Personnel No"}, {"Personnel.Lastname First Middle", "Name"}, {"Date Months.Current Period Flag", "Current Period Flag"}})
in
    #"Renamed Columns"