$dataHead = navigate parent-child descendants from ferc:UtilityPlantDataLineItems stop when $relationship.preferred-label == "http://ferc.gov/form/2020-01-01/roles/label/F1FRollforwardHeader" role "http://ferc.gov/form/2020-01-01/roles/Schedule/F1F/UtilityPlantData" returns list (target-name, preferred-label, navigation-depth);
$rollforwardSection = list(for $x in $dataHead
$abstractConcept = taxonomy().concept($x[1]);
$row_num = (filter $abstractConcept.references("http://ferc.gov/form/2020-01-01/roles/reference/formLocation") where ($item.part-by-name(ferc-part:Schedule).part-value == "F1F - 020 - Schedule - Utility Plant Data" and $item.part-by-name(ferc-part:ValueType).part-value.string == "Label")).to-list;
$is-heading = if ($x[2].role.uri == "http://ferc.gov/form/2020-01-01/roles/label/F1FUtilityPlantData")
true
else
false;
$depth = $x[3];
$row_number = if ($row_num.part-by-name(ferc-part:Row)).length == 0
""
else
($row_num.part-by-name(ferc-part:Row))[1].part-value;
$abstractLabel = list($is-heading, $abstractConcept.label($x[2].role.uri).text);
$data = navigate parent-child children from $x[1] role "http://ferc.gov/form/2020-01-01/roles/Schedule/F1F/UtilityPlantData" returns list(target, preferred-label, order);
$dataRow2 = list(none, none, none, none, none);
$dataRow1 = list(for $y in $data
$conceptPeriod = $y[1].period-type
if $conceptPeriod == "instant"
if $y[2].role.uri == "http://ferc.gov/form/2020-01-01/roles/label/F1FBeginningBalance"
if list([covered @concept = $y[1].name @period = $priorInstant]).length > 0
first(list([covered @concept = $y[1].name @period = $priorInstant]))
else
none
else
if list([covered @concept = $y[1].name @period = $currentInstant]).length > 0
first(list([covered @concept = $y[1].name @period = $currentInstant]))
else
none
else
if list([covered @concept = $y[1].name @period = $currentDuration]).length > 0
first(list([covered @concept = $y[1].name @period = $currentDuration]))
else
none);
$sequenceReferences = (filter $abstractConcept.references("http://ferc.gov/form/2020-01-01/roles/reference/elementSequence") where ($item.part-by-name(ferc-part:ScheduleRole).part-value == "http://ferc.gov/form/2020-01-01/roles/Schedule/F1F/UtilityPlantData") returns $item.part-by-name(ferc-part:SequenceRole).part-value).to-list;
$sequenceDimension = (filter $abstractConcept.references("http://ferc.gov/form/2020-01-01/roles/reference/elementSequence") where ($item.part-by-name(ferc-part:ScheduleRole).part-value == "http://ferc.gov/form/2020-01-01/roles/Schedule/F1F/UtilityPlantData") returns $item.part-by-name(ferc-part:SequenceDimension).part-value).to-list;
$breakdown = list(
if $sequenceReferences.to-list.length > 0
$sequenceRole = $sequenceReferences[1];
$sequenceElements = navigate parent-child descendants role $sequenceRole returns list(target, preferred-label, result-order);
$axis = $sequenceDimension[1].to-qname;
$lineItemsList = list(for $l in $sequenceElements
if $l.length > 0
$conceptRoll = $l[1];
if $conceptRoll.is-abstract
skip
else
$l
else
skip
);
$data1 =
list({covered {list(
if exists({@ferc:OrderNumber @unit=* @period = $currentDuration where $fact.dimension($axis) != none})
{@ferc:OrderNumber @unit=* @period = $currentDuration where $fact.dimension($axis) != none}
else
0,
$row_number ,
if exists({@concept = $lineItemsList[2][1] @unit @period = $currentDuration where $fact.dimension($axis) != none})
first(list({@concept = $lineItemsList[2][1] @unit @period = $currentDuration where $fact.dimension($axis) != none}))
else
none,
if exists({@concept = $lineItemsList[3][1] @unit @period = $priorInstant where $fact.dimension($axis) != none} )
first(list({@concept = $lineItemsList[3][1] @unit @period = $priorInstant where $fact.dimension($axis) != none} ))
else
none,
if exists({@concept = $lineItemsList[4][1] @unit=* @period = $currentDuration where $fact.dimension($axis) != none})
first(list({@concept = $lineItemsList[4][1] @unit=* @period = $currentDuration where $fact.dimension($axis) != none} ))
else
none,
if exists({@concept = $lineItemsList[5][1] @unit=* @period = $currentDuration where $fact.dimension($axis) != none})
first(list({@concept = $lineItemsList[5][1] @unit=* @period = $currentDuration where $fact.dimension($axis) != none} ))
else
none,
if exists({@concept = $lineItemsList[6][1] @unit=* @period = $currentDuration where $fact.dimension($axis) != none})
first(list({@concept = $lineItemsList[6][1] @unit=* @period = $currentDuration where $fact.dimension($axis) != none} ))
else
none,
if exists({@concept = $lineItemsList[7][1] @unit=* @period = $currentInstant where $fact.dimension($axis) != none})
first(list({@concept = $lineItemsList[7][1] @unit=* @period = $currentInstant where $fact.dimension($axis) != none} ))
else
none
)}});
$data2 = list(for $x in $data1
if $x == list(0,$x[2],none,none,none,none,none,none)
skip
else
$x);
$orders = set(for $x in $data2 $x[1]).sort;
$orderedData = list(for $order in $orders
for $row in $data2
if $row[1] != $order
skip
else
$row );
$data = list(for $z in range($orderedData.length)
$updatedNumber = $orderedData[$z][2].string + "." + $z.string;
list(false, $orderedData[$z][3],$orderedData[$z][4],$orderedData[$z][5],$orderedData[$z][6],$orderedData[$z][7],$orderedData[$z][8],$depth,$abstractConcept,$updatedNumber)
);
for $row in $data
$row
else
skip
);
if $x[2].role.uri == "http://ferc.gov/form/2020-01-01/roles/label/F1FUtilityPlantData" or $data.length == 0
list($abstractLabel + $dataRow2 + list($depth) + list($abstractConcept) + list($row_number)) + $breakdown
else
list($abstractLabel + $dataRow1 + list($depth) + list($abstractConcept) + list($row_number)) + $breakdown
)
for $row in $rollforwardSection
for $rowl in $row
$rowl[10]
1
|
|
$rowl[3]
if $rowl[1] "gray-out" else ""
|
$rowl[4]
if $rowl[1] "gray-out" else ""
|
$rowl[5]
if $rowl[1] "gray-out" else ""
|
$rowl[6]
if $rowl[1] "gray-out" else ""
|
$rowl[7]
if $rowl[1] "gray-out" else ""
|