Skip to content

Commit

Permalink
Update reference code
Browse files Browse the repository at this point in the history
- add corresponding IFRS rules from dqc_us_rules
- reset symlinks to IFRS rules from ESEF
  • Loading branch information
davidtauriello committed Feb 15, 2022
1 parent 4665e29 commit 2af2f4a
Show file tree
Hide file tree
Showing 45 changed files with 2,354 additions and 18 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ tests/gen_test_case_results*
*api.http
*generate-qname.sh
*/taxonomy/
*/[0-9][0-9][0-9][0-9]/functions.xule
*/[0-9][0-9][0-9][0-9]/version.xule
#*/[0-9][0-9][0-9][0-9]/functions.xule
#*/[0-9][0-9][0-9][0-9]/version.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2020/DQC_IFRS_0008.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2020/DQC_IFRS_0041.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2020/DQC_IFRS_0080.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2020/DQC_IFRS_0092.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2020/DQC_IFRS_0093.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2020/DQC_IFRS_0101.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2020/DQC_IFRS_0102.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2020/DQC_IFRS_0103.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2020/DQC_IFRS_0105.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2020/DQC_IFRS_0115.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2021/DQC_IFRS_0008.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2021/DQC_IFRS_0041.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2021/DQC_IFRS_0080.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2021/DQC_IFRS_0101.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2021/DQC_IFRS_0102.xule
2 changes: 1 addition & 1 deletion dqc_us_rules/source/esef/esef-2021/DQC_IFRS_0105.xule
39 changes: 39 additions & 0 deletions dqc_us_rules/source/ifrs/2020/DQC_IFRS_0008.xule
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/**
DQC Rules
(c) Copyright 2017 - 2021, XBRL US Inc. All rights reserved.
See https://xbrl.us/dqc-license for license information.
See https://xbrl.us/dqc-patent for patent infringement notice.
Taxonomy: IFRS 2019
Original Release: Version 9
**/

rule-name-prefix DQC

assert IFRS.0008.6819 satisfied

$rule_id = (rule-name().split('.'))[rule-name().split('.').length];

$extCalcRelationship1 = navigate summation-item descendants returns by network set (relationship);

for ($network in $extCalcRelationship1.keys)
for ($extCalcRelationship in $extCalcRelationship1[$network])
$extCalcSource = $extCalcRelationship.source;
$extCalcTarget = $extCalcRelationship.target;
$extCalcNetwork = $network.role.description;
$extCalcSourceName = $extCalcSource.name.local-name;
$extCalcTargetName = $extCalcTarget.name.local-name;

$calcRelationships.contains(set($extCalcRelationship.target.name.namespace-uri + ':' + $extCalcTargetName + ':' + $extCalcRelationship.source.name.namespace-uri + ':' + $extCalcSourceName, $extCalcRelationship.weight))
and $extCalcSource != $extCalcTarget



message
"The calculation in the extension taxonomy rolling up from {$extCalcTargetName} to {$extCalcSourceName} in {$extCalcNetwork} is the opposite of a calculation defined in the base taxonomy. Check that the calculation is correct or that you have used the correct tag for the two elements identified in the calculation It is possible that the calculation is correct in the case of a reconciliation calculation.
Check that the concept {$extCalcSourceName} is the correct calculation parent for this element.

Rule version: {$ruleVersion}"

severity error

effectiveDate $effective_dates[$rule_id]
54 changes: 54 additions & 0 deletions dqc_us_rules/source/ifrs/2020/DQC_IFRS_0041.xule
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/**
DQC Rules
(c) Copyright 2017 - 2021, XBRL US Inc. All rights reserved.
See https://xbrl.us/dqc-license for license information.
See https://xbrl.us/dqc-patent for patent infringement notice.
Taxonomy: IFRS 2019
Original Release: Version 6
**/


rule-name-prefix DQC

assert IFRS.0041.73 satisfied

$rule_id = (rule-name().split('.'))[rule-name().split('.').length];

/** Get the dimension defaults used in the filing **/

$filing_defaults = navigate dimension-default descendants returns set (source-name, target-name) ;


/** Get relationships in filing not in taxonomy. Taxonomy defaults are defined as a constant**/

$default_in_filing_not_in_taxonomy = $filing_defaults - $taxonomy_defaults;

$filing_details_defaults = navigate dimension-default descendants include start returns (source-name, target-name, source, role) as dictionary;

for ($x in $default_in_filing_not_in_taxonomy)
$default_details_list = filter $filing_details_defaults where $item['source-name'] == $x[1];
$default_details = $default_details_list[1]
if (not is_extension($default_details['source'],$all_ifrs_base_taxonomies))
$dim_name = $default_details['source-name'];
$dim_concept = $default_details['source'].name.local-name;
$dim_role = $default_details['role'].description;
$dim_base_names = navigate dimension-default descendants from $default_details['source-name'] taxonomy $ifrs-gaap returns (target-name);
/** In the 2017 and 2016 IFRS Taxonomies a filer should use the ContinuingOperationsMember as the default on the ContinuingAndDiscontinuedOperationsAxis rather than the one defined in the taxonomy. **/
if ($dim_base_names.length == 0 or $dim_concept == 'ContinuingAndDiscontinuedOperationsAxis')
false
else
$dim_base_name = $dim_base_names[1];
$mem_name = $default_details['target-name'];
true
else
false

message
"The dimension default defined for the axis in the base Taxonomy should not be changed in a company extension taxonomy. The default for the {$dim_name} in the base taxonomy is {$dim_base_name}, but the default has been replaced with {$mem_name} in the extension taxonomy role {$dim_role}. This issue is addressed in Question E.16 (Updated 02/05/2013) (formerly Question 38) of the SEC Staff Interpretations and FAQs Related to Interactive Data Disclosure.
Rule version: {$ruleVersion}"

severity error

effectiveDate $effective_dates[$rule_id]


42 changes: 42 additions & 0 deletions dqc_us_rules/source/ifrs/2020/DQC_IFRS_0080.xule
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/**
DQC Rules
(c) Copyright 2017 - 2021, XBRL US Inc. All rights reserved.
See https://xbrl.us/dqc-license for license information.
See https://xbrl.us/dqc-patent for patent infringement notice.
Taxonomy: IFRS 2020
**/


rule-name-prefix DQC

assert IFRS.0080 satisfied

$fact1 =
{nonils @concept in $non_neg_ifrs_items.keys @unit=* where $fact < 0 and ($fact.dimensions.length == 0 or
(not match_set_substring($fact, $exclude_non_neg_string_members)
and (to-set($fact.dimensions-explicit.values.name) intersect $exclude_non_neg_members).length == 0
and ($fact.dimensions.keys.name intersect $exclude_non_neg_axis).length == 0
and not_elim_adjust($fact, $exclude_non_neg_axis_members)))
};
$rule_suffix_id = $non_neg_ifrs_items[$fact1.concept.name];

true

message

"{$fact1.concept.name} has a value of {$fact1} which is less than zero. This element should not have a negative value.

The properties of this {$fact1.concept} fact are:
Period :{$fact1.period}
Dimensions : {$fact1.dimensions.join(', ','=')}
Unit : {$fact1.unit}
Rule version: {$ruleVersion}"

rule-suffix
$rule_suffix_id

rule-focus $fact1

severity error

effectiveDate $effective_dates[$rule_suffix_id]
82 changes: 82 additions & 0 deletions dqc_us_rules/source/ifrs/2020/DQC_IFRS_0092.xule
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/**
DQC Rules
(c) Copyright 2017 - 2021, XBRL US Inc. All rights reserved.
See https://xbrl.us/dqc-license for license information.
See https://xbrl.us/dqc-patent for patent infringement notice.
Taxonomy: IFRS 2020
**/


rule-name-prefix DQC

assert IFRS.0092.9523 satisfied

$rule_id = (rule-name().split('.'))[rule-name().split('.').length];

$fact1 =
{@concept in $non_neg_ifrs_items.keys @unit=* @SegmentConsolidationItemsAxis = EliminationOfIntersegmentAmountsMember where $fact > 0 and ($fact.dimensions.length < 2 or
(not match_set_substring($fact, $exclude_non_pos_string_members)
and (to-set($fact.dimensions-explicit.values.name) intersect $exclude_non_pos_axis_members.to-set).length == 0
and (to-set($fact.dimensions.keys.name) intersect $exclude_non_neg_axis.to-set).length == 0
and not_elim_adjust($fact, $exclude_non_pos_axis_members)))
};

true

message

"{$fact1.concept.name} has a value of {$fact1} which is more than zero. This element should not have a positive value when used with the EliminationOfIntersegmentAmountsMember.

The properties of this {$fact1.concept} fact are:
Period :{$fact1.period}
Dimensions : {$fact1.dimensions.join(', ','=')}
Unit : {$fact1.unit}

Rule Element Id:{$rule_id}
Rule version: {$ruleVersion}
"


rule-focus $fact1

severity error



effectiveDate $effective_dates[$rule_id]

assert IFRS.0092.9524 satisfied

$rule_id = (rule-name().split('.'))[rule-name().split('.').length];

$fact1 =
{@concept in $non_pos_asset_ifrs_items.keys @unit=* @CarryingAmountAccumulatedDepreciationAmortisationAndImpairmentAndGrossCarryingAmountAxis in list(AccumulatedImpairmentMember, AccumulatedDepreciationAmortisationAndImpairmentMember, AccumulatedDepreciationAndAmortisationMember) where $fact > 0 and ($fact.dimensions.length < 2 or
(not match_set_substring($fact, $exclude_non_neg_string_members)
and (to-set($fact.dimensions-explicit.values.name) intersect $exclude_non_pos_asset_axis_members.to-set).length == 0
and (to-set($fact.dimensions.keys.name) intersect $exclude_non_neg_axis.to-set).length == 0
and not_elim_adjust($fact, $exclude_non_pos_asset_axis_members)))
};

true

message

"{$fact1.concept.name} has a value of {$fact1} which is more than zero. This element should not have a positive value when used with the dimensions {$fact1.dimensions.join(', ','=')}.

The properties of this {$fact1.concept} fact are:
Period :{$fact1.period}
Dimensions : {$fact1.dimensions.join(', ','=')}
Unit : {$fact1.unit}

Rule Element Id:{$rule_id}
Rule version: {$ruleVersion}
"


rule-focus $fact1

severity error



effectiveDate $effective_dates[$rule_id]
Loading

0 comments on commit 2af2f4a

Please sign in to comment.