Generated on August 15, 2017 9:27:44 AM CEST
e-dec Plausi-Rules Report: Import
 
 
 
Package: plausi_ruleset_import (341 rules)
  
  
 
Rule: R100 Verkehrsrichtung in Stammdaten
  
Description:
Gueltige Verkehrsrichtung gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the direction of POSITION isNotNull
and the direction of POSITION is not one of the refDirections of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_direction' , the name of this rule ) ;
  
  
 
Rule: R101 Veredelungstyp in Stammdaten
  
Description:
Gueltiger Veredelungstyp gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the refinementType of POSITION isNotNull
and the refinementType of POSITION is not one of the refRefinementTypes of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_refinementType' , the name of this rule ) ;
  
  
 
Rule: R102 Verfahrenstyp in Stammdaten
  
Description:
Gueltiger Verfahrenstyp gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the processType of POSITION isNotNull
and the processType of POSITION is not one of the refProcessTypes of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_processType' , the name of this rule ) ;
  
  
 
Rule: R103 Abrechnungstyp in Stammdaten
  
Description:
Gueltiger Abrechnungstyp gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the billingType of POSITION isNotNull
and the billingType of POSITION is not one of the refBillingTypes of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_billingType' , the name of this rule ) ;
  
  
 
Rule: R105 Veranlagungsbeleg in Stammdaten
  
Description:
Gültiger Veranlagungsbeleg gem. Stammdaten oder 0 sonst Fehler.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
all of the following conditions are true :
- the injunctionType of HEADER isNotNull
- "0" is not the injunctionType of HEADER
- the injunctionType of HEADER is not one of the refInjunctionTypes of REFDATA ,
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_injunctionType' , the name of this rule ) ;
  
  
 
Rule: R109a Dienststelle falsch
  
Description:
Gueltige Versions- und Dienststellennummer.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
the lastCorrectionCode of HEADER isNotNull
and the customsOfficeNumber of HEADER isNotNull
and the customsOfficeNumber of HEADER is not the lastVersionCustomsOfficeNumber of HEADER
then
'the result' .setHeaderError( "1" , 'the check_version' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionCode' , the name of this rule ) ;
  
  
 
Rule: R109b Annullation
  
Description:
Gueltige Versions- und Zollstellennummer.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where the lastCorrectionCode of this header isNotNull ;
if
'the var_correctionCode_Annullation_0' is the lastCorrectionCode of HEADER
and the customsOfficeNumber of HEADER is the lastVersionCustomsOfficeNumber of HEADER
then
'the result' .setHeaderError( "1" , 'the check_version' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionCode' , the name of this rule ) ;
  
  
 
Rule: R109c Versionsnummer falsch
  
Description:
Gueltige Versions- und Zollstellennummer.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where the lastCorrectionCode of this header isNull
or ( the lastCorrectionCode of this header isNotNull
and 'the var_correctionCode_Annullation_0' is not the lastCorrectionCode of this header
and the lastVersionCustomsOfficeNumber of this header isNotNull
and the customsOfficeNumber of this header isNotNull
and the customsOfficeNumber of this header is the lastVersionCustomsOfficeNumber of this header ) ;
if
the lastCorrectionCode of HEADER isNull
and the correctionCode of HEADER is one of { 'the var_correctionCode_Annullation_0' , 'the var_correctionCode_Korrektur_2' }
or the lastCorrectionCode of HEADER isNotNull
and 'the var_correctionCode_Annullation_0' is not the lastCorrectionCode of HEADER
and 'the var_correctionCode_Erstuebermittlung_1' is the correctionCode of HEADER
then
'the result' .setHeaderError( "1" , 'the check_version' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionCode' , the name of this rule ) ;
  
  
 
Rule: R110 Begruendung
  
Description:
Wenn der Anmeldungstyp gleich 2 ist, dann ist eine Begruendung anzugeben, sonst darf keine Begruendung angegeben sein
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
( 'the var_declarationType_provisorisch_2' is the declarationType of HEADER
and the reason of HEADER isNull )
or ( 'the var_declarationType_provisorisch_2' is not the declarationType of HEADER
and the reason of HEADER isNotNull )
then
'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_reason' , the name of this rule ) ;
  
  
 
Rule: R111 Berichtigungsgrund
  
Description:
Wenn der Berichtigungcode gleich 0 (Annulation) oder gleich 2 (Berichtigung) ist , dann ist ein Berichtigungsgrund notwendig sonst  darf kein Berichtigungsgrund verwendet werden.
(correctionCode : 0 = Annullation / 1 = Erstübermittlung / 2 = Berichtigung / 3 = erneute Anforderung von Rückmeldung und PDF)
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
( the correctionReason of HEADER isNull
and the correctionCode of HEADER isNotNull
and the correctionCode of HEADER is one of { 'the var_correctionCode_Annullation_0' , 'the var_correctionCode_Korrektur_2' } )
or ( 'the var_correctionCode_Erstuebermittlung_1' is the correctionCode of HEADER
and the correctionReason of HEADER isNotNull )
then
'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionReason' , the name of this rule ) ;
  
  
 
Rule: R112 Transportmitteltyp
  
Description:
Wenn der Verkehrszweig gleich 3 (Strassenverkehr) ist, dann muss der Transportmitteltyp gesetzt sein, sonst darf der Transportmitteltyp nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
( 'the var_transportMode_Strasse_3' is the transportMode of HEADER
and the transportationType of HEADER isNull )
or ( 'the var_transportMode_Strasse_3' is not the transportMode of HEADER
and the transportationType of HEADER isNotNull )
then
'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_transportMeans_type' , the name of this rule ) ;
  
  
 
Rule: R113 Transportmittelland
  
Description:
Wenn der Verkehrszweig gleich 3  (Strassenverkehr) ist, dann muss das Transportmittelland angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
( the transportationCountry of HEADER isNull
or 'the helper_def_empty_String' is the transportationCountry of HEADER )
and 'the var_transportMode_Strasse_3' is the transportMode of HEADER
then
'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_transportMeans_country' , the name of this rule ) ;
  
  
 
Rule: R114 Transportmittelkennzeichen
  
Description:
Wenn der Verkehrszweig gleich 3 (Strassenverkehr) ist, dann muss das Transportmittelkennzeichen gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
( the transportationNumber of HEADER isNull
or 'the helper_def_Space_String' is the transportationNumber of HEADER
or 'the helper_def_empty_String' is the transportationNumber of HEADER )
and 'the var_transportMode_Strasse_3' is the transportMode of HEADER
then
'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_transportMeans_number' , the name of this rule ) ;
  
  
 
Rule: R115 Container
  
Description:
Wenn der Container gleich 1 ist, dann ist die Containernummer anzugeben, sonst darf die Containernummer nicht angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
( 'the var_transportMean_inContainer_nein_0' is the transportInContainer of HEADER
and the number of elements in the containerNumbers of HEADER is more than 0 )
or ( 'the var_transportMean_inContainer_ja_1' is the transportInContainer of HEADER
and the number of elements in the containerNumbers of HEADER is 0 )
or ( 'the var_transportMean_inContainer_ja_1' is the transportInContainer of HEADER
and ( the containerNumbers of HEADER contain 'the helper_def_Space_String'
or the containerNumbers of HEADER contain 'the helper_def_empty_String' ) )
then
'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_transportInContainer' , the name of this rule ) ;
  
  
 
Rule: R118 Erzeugungsland CH oder FL oder LI
  
Description:
Das Erzeugungsland darf nicht gleich CH, FL oder LI sein
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where checkWarenDetailInAllWarenVorhanden( "28" , "66" ) of this header is false ;
if
the dispatchCountry of HEADER isNotNull
and the dispatchCountry of HEADER is one of { "CH" , "FL" , "LI" }
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_dispatchCountry' , the name of this rule ) ;
  
  
 
Rule: R119 Sperrcode Konto Zoll
  
Description:
Der Zollkonto-Sperrcode und der Berichtigungscode dürfen nicht beide "1" sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
"1" is REFDATA .getRefLockCodeAccount( the customsAccount of HEADER )
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_customsAccount' , the name of this rule ) ;
  
  
 
Rule: R120 Sperrcode Konto MWST
  
Description:
Das Mehrwertsteuerkonto-Sperrcode und der Berichtigungscode dürfen nicht beide "1" sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
"1" is REFDATA .getRefLockCodeAccount( the VATAccount of HEADER )
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_VATAccount' , the name of this rule ) ;
  
  
 
Rule: R121 Empfaengerland CH
  
Description:
Das Empfaengerland muss CH oder FL oder LI sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
the consigneeCountry of HEADER isNotNull
and the consigneeCountry of HEADER is not one of { "CH" , "FL" , "LI" }
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_consignee_country' , the name of this rule ) ;
  
  
 
Rule: R122 Importeurland CH
  
Description:
Das Importeurland muss CH oder FL oder LI sein (ausser bei UC80).
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of this header
and 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of this header ;
if
the importerCountry of HEADER isNotNull
and the importerCountry of HEADER is not one of { "CH" , "FL" , "LI" }
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_importer_country' , the name of this rule ) ;
  
  
 
Rule: R123 MWST-Wert Statistischer Wert
  
Description:
Wenn der Richtigcode MWSt-Wert gleich 0 und der statischer Wert nicht gleich 0 ist, dann muss der MWSt-Wert groesser oder gleich dem statistischen Wert und kleiner oder gleich dreimal dem statistischen Wert sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where the VATValue of this position isNotNull
and 'the var_customsClearanceType_AbgabeFrei_8' is not the customsClearanceType of this position
and the statisticalValue of this position isNotNull
and false is this position is zusatz abgabe ac9 ;
if
( the VATValueConfirmation of POSITION isNull
or "0" is the VATValueConfirmation of POSITION )
and ( the amount of the VATValue of POSITION is less than the amount of the statisticalValue of POSITION
or the amount of the VATValue of POSITION is more than ( the amount of the statisticalValue of POSITION * 'the helper_def_int_3' ) )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_VATValue' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_statisticalValue' , the name of this rule ) ;
  
  
 
Rule: R124 MWST-Code vorgesehen
  
Description:
Wenn der angemeldeter MWSt-Code für eine Warengruppe gem. Stammdaten vorgesehen ist, muss der Richtigcode MWSt-Code nicht gesetzt sein (und umgekehrt).
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_AbgabeFrei_8' is not the customsClearanceType of this position
and true is not this position is zusatz abgabe ac9 ;
set 'REFDATA' to a ref data ;
if
( the VATCode of POSITION is one of REFDATA .getAllMwstCodes( the commodityCode of POSITION )
and "1" is the VATCodeConfirmation of POSITION )
or ( the VATCode of POSITION is not one of REFDATA .getAllMwstCodes( the commodityCode of POSITION )
and "1" is not the VATCodeConfirmation of POSITION
and the VATCode of POSITION is not one of { 'the var_VATCode_Verlagerungsverfahren_MWST_90' , 'the var_VATCode_Lohnveredelung_im_Nichterhebungsverfahren_MWST_91' , 'the var_VATCode_Nachtraegliche_Steuerveranlagung_92' } )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_VATCode' , the name of this rule ) ;
  
  
 
Rule: R125a Mittelwertpruefung
  
Description:
Wenn die Zusatzmenge fuer die angemeldete Warennummer gem. Stammdaten vorgesehen ist, der Richtigcode statistischer Wert gleich 0 ist und der Bemessungscode gem. Stammdaten gleich 61 ist, dann muss der statistische Wert geteilt durch die Zusatzmenge groesser oder gleich dem unteren Mittelwert und kleiner oder gleich dem oberen Mittelwert sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where this position is zusatz abgabe ac9 is false ;
set 'REFDATA' to a ref data ;
if
( the statisticalValueConfirmation of POSITION isNull
or "0" is the statisticalValueConfirmation of POSITION )
and ( the additionalUnit of POSITION isNotNull
and 0 is not the additionalUnit of POSITION )
and getBemessungsCodeFromMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA isNotNull
and getUntererMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA isNotNull
and getObererMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA isNotNull
and "61" is getBemessungsCodeFromMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA
and ( ( getUntererMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA is more than the amount of the statisticalValue of POSITION .divide( the additionalUnit of POSITION , 2 , 1 ) )
or ( getObererMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA is less than the amount of the statisticalValue of POSITION .divide( the additionalUnit of POSITION , 2 , 1 ) ) )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_statisticalValue' , the name of this rule ) ;
  
  
 
Rule: R125b Mittelwertpruefung
  
Description:
Wenn die Eigenmasse fuer die angemeldete Warennummer gem. Stammdaten vorgesehen ist, der Richtigcode statistischer Wert gleich 0 ist und der Bemessungscode gem. Stammdaten gleich 51 ist, dann muss der statistische Wert geteilt durch die Eigenmasse groesser oder gleich dem unteren Mittelwert und kleiner oder gleich dem oberen Mittelwert sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where true is not this position is zusatz abgabe ac9
and the netMass of this position isNotNull
and 0 is not the netMass of this position
and the statisticalValue of this position isNotNull ;
set 'REFDATA' to a ref data ;
if
( any of the following conditions is true :
- the statisticalValueConfirmation of POSITION isNull
- "0" is the statisticalValueConfirmation of POSITION , )
and getBemessungsCodeFromMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA isNotNull
and getUntererMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA isNotNull
and getObererMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA isNotNull
and "51" is getBemessungsCodeFromMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA
and ( getUntererMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA is more than the amount of the statisticalValue of POSITION .divide( the netMass of POSITION , 2 , 1 )
or getObererMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA is less than the amount of the statisticalValue of POSITION .divide( the netMass of POSITION , 2 , 1 ) )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_statisticalValue' , the name of this rule ) ;
  
  
 
Rule: R127 Rohmasse - Eigenmasse
  
Description:
Wenn der Richtigcode Rohmasse gleich 0 ist und die Eigenmasse kleiner oder gleich 10, dann muss die Rohmasse groesser oder gleich Eigenmasse und kleiner oder gleich 25-mal Eigenmasse sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where the netMass of this position isNotNull
and the grossMass of this position isNotNull
and true is not this position is zusatz abgabe ac9
and 'the var_grossMassConfirmation_gesetzt_1' is not the grossMassConfirmation of this position ;
if
( ( ( 'the helper_def_int_10' equals the netMass of POSITION
or 'the helper_def_int_10' is more than the netMass of POSITION )
and the grossMass of POSITION is more than ( the netMass of POSITION * 'the helper_def_int_25' ) )
or ( 'the helper_def_int_10' is less than the netMass of POSITION
and the grossMass of POSITION is more than ( the netMass of POSITION * 'the helper_def_float_2_5' ) )
or the grossMass of POSITION is less than the netMass of POSITION )
and ( the grossMassConfirmation of POSITION isNull
or 'the var_grossMassConfirmation_nicht_gesetzt_0' is the grossMassConfirmation of POSITION )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_grossMass' , the name of this rule ) ;
  
  
 
Rule: R128 Eigenmasse
  
Description:
Wenn die Eigenmasse fuer die angemeldete Warennummer gem. Stammdaten notwendig ist, dann muss die Eigenmasse angegeben sein, sonst ist sie optional
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_AbgabeFrei_8' is not the customsClearanceType of this position
and true is not this position is zusatz abgabe ac9 ;
set 'REFDATA' to a ref data ;
if
( the netMass of POSITION isNull
or 0 is the netMass of POSITION )
and 'the var_quantityCode_netMass_1' is one of getMengenCodeTypes( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_netMass' , the name of this rule ) ;
  
  
 
Rule: R129 Staffelgewicht Eigenmasse
  
Description:
Wenn der Staffelgewichtscode gem. Stammdaten gleich 1 ist und der Richtigcode Eigenmasse gleich 0 ist, dann muss die Eigenmasse groesser oder gleich dem unteren Staffelgewicht und kleiner oder gleich dem oberen Staffelgewicht sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where true is not this position is zusatz abgabe ac9 ;
set 'REFDATA' to a ref data ;
if
the netMass of POSITION isNotNull
and getUnteresStaffelgewicht( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA isNotNull
and 'the var_netMassConfirmation_1' is not the netMassConfirmation of POSITION
and 'the var_Staffelgewichtscode_1' is getStaffelgewichtscode( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA
and the netMass of POSITION is less than getUnteresStaffelgewicht( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_netMass' , the name of this rule ) ;
  
  
 
Rule: R130 Zusatzmenge
  
Description:
Wenn die Zusatzmenge fuer die angemeldete Warennummer gem. Stammdaten notwendig ist, dann muss die Zusatzmenge angegeben sein, sonst ist sie optional.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_AbgabeFrei_8' is not the customsClearanceType of this position
and true is not this position is zusatz abgabe ac9 ;
set 'REFDATA' to a ref data ;
if
the additionalUnit of POSITION isNull
and 'the var_quantityCode_additionalUnit_2' is one of getMengenCodeTypes( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalUnit' , the name of this rule ) ;
  
  
 
Rule: R131a Staffelgewichtscode Zusatzmenge
  
Description:
Wenn der Staffelgewichtscode gem. Stammdaten gleich 2 ist und der Richtigcode Zusatzmenge gleich 0 ist, 
dann muss Eigenmasse geteilt durch Zusatzmenge groesser oder gleich dem unteren Staffelgewicht und kleiner oder gleich dem oberen Staffelgewicht sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where true is not this position is zusatz abgabe ac9 ;
set 'REFDATA' to a ref data ;
if
the statisticalCode of POSITION isNotNull
and the netMass of POSITION isNotNull
and the commodityCode of POSITION isNotNull
and getUnteresStaffelgewicht( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA isNotNull
and getOberesStaffelgewicht( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA isNotNull
and getStaffelgewichtscode( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA isNotNull
and 'the var_additionalUnitConfirmation_1' is not the additonalUnitConfirmation of POSITION
and 'the var_Staffelgewichtscode_2' is getStaffelgewichtscode( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA
and the additionalUnit of POSITION isNotNull
and 0 is not the additionalUnit of POSITION
and ( any of the following conditions is true :
- getUnteresStaffelgewicht( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA is more than plausi helpers.divide( the netMass of POSITION , the additionalUnit of POSITION , 3 , 1 )
- getOberesStaffelgewicht( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA is less than plausi helpers.divide( the netMass of POSITION , the additionalUnit of POSITION , 3 , 1 ) , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalUnit' , the name of this rule ) ;
  
  
 
Rule: R131b Staffelgewichtscode Zusatzmenge 0
  
Description:
Wenn Staffelgewichtscode = 2 (Verhältnis Eigenmasse/Zusatzmenge) gem. Stammdaten vorgesehen und Richtigcode Zusatzmenge ="0, dann darf Zusatzmenge nicht 0 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where true is not this position is zusatz abgabe ac9 ;
set 'REFDATA' to a ref data ;
if
'the var_additionalUnitConfirmation_1' is not the additonalUnitConfirmation of POSITION
and 'the var_Staffelgewichtscode_2' is getStaffelgewichtscode( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA
and the additionalUnit of POSITION isNotNull
and 0 is the additionalUnit of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalUnit' , the name of this rule ) ;
  
  
 
Rule: R132a Packstuecke
  
Description:
Wenn der Verpackungscode NE, IN, VG, VL, VO, VQ, VR, VS oder VY ist, dann muss der Wert des Felds "Anzahl Packstücke" leer oder "0" sein. Das Feld "Zeichen Packstücke" ist optional.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where this position is zusatz abgabe ac9 is false ;
set 'PACKAGING' to a packaging
where the positions nr of this packaging equals the positions nr of POSITION ;
if
the packagingType of PACKAGING is one of { "NE" , "IN" , "VG" , "VL" , "VO" , "VQ" , "VR" , "VS" , "VY" }
and ( none of the following conditions are true :
- the quantity of PACKAGING isNull
- "0" is the quantity of PACKAGING
- 'the helper_def_empty_String' is the quantity of PACKAGING , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_packaging' , the name of this rule ) ;
  
  
 
Rule: R132c Packstuecke
  
Description:
Wenn der Verpackungscode nicht gleich NE, IN, VG, VL, VO, VQ, VR, VY, VS ist, dann darf das Feld "Zeichen (Nummer)Packstücke" nicht leer sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where false is this position is zusatz abgabe ac9 ;
set 'PACKAGING' to a packaging
where the positions nr of this packaging equals the positions nr of POSITION ;
if
the packagingType of PACKAGING is not one of { "NE" , "IN" , "VG" , "VL" , "VO" , "VQ" , "VR" , "VY" , "VS" }
and ( any of the following conditions is true :
- the packagingReference of PACKAGING isNull
- 'the helper_def_empty_String' is the packagingReference of PACKAGING , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_packaging' , the name of this rule ) ;
  
  
 
Rule: R133a Zollansatz ohne Richtigcode
  
Description:
Wenn der Zollansatz gesetzt ist, muss der Richtigcode Zollansatz gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where the customsClearanceType of this position is not one of { 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' , 'the var_customsClearanceType_AbgabeFrei_8' }
and false is this position is zusatz abgabe ac9 ;
if
( the rate of POSITION isNotNull
and any of the following conditions is true :
- the rateConfirmation of POSITION isNull
- "0" is the rateConfirmation of POSITION , )
or ( all of the following conditions are true :
- the rate of POSITION isNull
- "1" is the rateConfirmation of POSITION , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_rate' , the name of this rule ) ;
  
  
 
Rule: R133b Zollansatz eindeutig
  
Description:
Wenn der Veranlagungstyp nicht 8,  10 oder 11 und der Zollansatz fuer eine Warennummer, ein Ursprungsland, 
einen Zolbeguenstigungscode und eine Praeferenz nicht eindeutig ist gem. Stammdaten, muss er angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where the customsClearanceType of this position is not one of { 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' , 'the var_customsClearanceType_AbgabeFrei_8' }
and true is not this position is zusatz abgabe ac9 ;
set 'REFDATA' to a ref data ;
if
the rate of POSITION isNull
and REFDATA .checkRefIsZollansatzUnique( the commodityCode of POSITION , the originCountry of POSITION , the customsFavourCode of POSITION , the preference of POSITION , the statisticalCode of POSITION ) is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_rate' , the name of this rule ) ;
  
  
 
Rule: R134a Bewilligungspflicht 0
  
Description:
Wenn die Rohmasse grösser Toleranzmenge und die Bewilligungspflicht (permitObligation) = 0 (nicht bewilligungspflichtig) ist und es existiert einen Bewilligungspflicht gemäss den Stammdaten, dann schlägt die Regel an. Jedoch nur, wenn der Veranlagungsort nicht 3 oder 4 (Erfassung ab Einheitsdokument oder von Amtes wegen ist)
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where ( all of the following conditions are true :
- 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of this header
- 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of this header , ) ;
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
getSummOfGrossMass( the commodityCode of POSITION , the statisticalCode of POSITION ) of HEADER isNotNull
and getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA isNotNull
and getSummOfGrossMass( the commodityCode of POSITION , the statisticalCode of POSITION ) of HEADER is more than getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA
and 'the var_permitObligation_nicht_bewilligungspflichtig_0' is the permitObligation of POSITION
and getBewilligungObligatorisch( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA isNotNull
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permitObligation' , the name of this rule ) ;
  
  
 
Rule: R134b Bewilligungspflicht 2
  
Description:
Wenn die Rohmasse grösser Toleranzmenge und die Bewilligungspflicht (permitObligation) = 2 (bewilliungsfrei) ist und es existiert gemäss Stammdaten keine Bewilliungsfreiheit, dann schlägt die Regel an.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
getSummOfGrossMass( the commodityCode of POSITION , the statisticalCode of POSITION ) of HEADER isNotNull
and getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA isNotNull
and getSummOfGrossMass( the commodityCode of POSITION , the statisticalCode of POSITION ) of HEADER is more than getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA
and 'the var_permitObligation_bewilligungsfrei_gemaess_Deklarant_2' is the permitObligation of POSITION
and "1" is not getBewilligungObligatorisch( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permitObligation' , the name of this rule ) ;
  
  
 
Rule: R134c Obligatorische Bewilligunsstellencodes
  
Description:
Wenn die Rohmasse grösser Toleranzmenge und die Bewilligungspflicht (permitObligation) = 2 (bewilliungsfrei) ist und es existiert gemäss Stammdaten keine Bewilliungsfreiheit, dann schlägt die Regel an.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
getSummOfGrossMass( the commodityCode of POSITION , the statisticalCode of POSITION ) of HEADER isNotNull
and getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA isNotNull
and getSummOfGrossMass( the commodityCode of POSITION , the statisticalCode of POSITION ) of HEADER is more than getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA
and "0" is getBewilligungObligatorisch( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA
and plausi helpers.containsAll( REFDATA .getObligatorischeBewilligungsstellencodes( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) , the permitAuthorities of POSITION ) is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R135 Bewilligungspflichtcode 1
  
Description:
Wenn der Bewilligungspflichtcode gleich 1 ist, dann muss der Bewilligungstyp, -stellencode und die Bewilligungsnummer angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
the permitObligation of POSITION isNotNull
and 'the var_permitObligation_bewilligungspflichtig_1' is the permitObligation of POSITION
and isBewilligungsTypAndNumberAndStellenCodeInList( null string , null string , null string ) of POSITION is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R137 Bewilligung 6 2
  
Description:
Wenn die Zusatzabgabenart 280 und der Zusatzabgabenschlüssel 200 gesetzt sind, muss der Bewilligungstyp 6, der Bewilligungsstellencode 2 und die Bewilligungsnummer angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
'the var_additionalTaxType_Monopolgebuehren_280' is the type of ADDITONALTAX
and 'the var_additionalTaxKey_200' is the key of ADDITONALTAX
and isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_Verpflichtung_6' , null string , "2" ) of POSITION is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R138 Bewilligung 6 97
  
Description:
Wenn die Zusatzabgabenart 700 und der Zusatzabgabenschlüssel 002 gesetzt sind, muss der Bewilligungstyp 6, der Bewilligungsstellencode 97 und die Bewilligungsnummer angegeben werden
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
'the var_addtionalTaxType_Lenkungsabgabe_VOC_700' is the type of ADDITONALTAX
and 'the var_additionalTaxKey_002' is the key of ADDITONALTAX
and isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_Verpflichtung_6' , null string , "97" ) of POSITION is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R140a Bewilligung 2
  
Description:
Wenn der Verarbeitungscode ungleich 00, 05, 06, 18, 90, 01 oder 04 ist und die Rohmasse grösser als der Toleranzwert ist, muss der Bewilligungstyp 2, die Bewilligungsstelle und die Bewilligungsnummer angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the grossMass of POSITION isNotNull
and getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA isNotNull
and ( all of the following conditions are true :
- REFDATA .getVerarbeitungscode( the commodityCode of POSITION , the statisticalCode of POSITION ) isNotNull
- REFDATA .getVerarbeitungscode( the commodityCode of POSITION , the statisticalCode of POSITION ) is not one of { 0 , 5 , 6 , 18 , 90 , 1 , 4 }
- the grossMass of POSITION is more than getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA
- isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_Generalbewilligung_2' , null string , null string ) of POSITION is false , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R140b Bewilligung 3
  
Description:
Wenn der Verarbeitungscode gleich 01 oder 04 und die Rohmasse grösser als der Toleranzwert ist, muss der Bewilligungstyp 3, die Bewilligungsstelle und die Bewilligungsnummer angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the grossMass of POSITION isNotNull
and getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA isNotNull
and all of the following conditions are true :
- REFDATA .getVerarbeitungscode( the commodityCode of POSITION , the statisticalCode of POSITION ) is one of { 1 , 4 }
- the grossMass of POSITION is more than getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA
- isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_Generallizenz_3' , null string , null string ) of POSITION is false ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R141 Bewilligung 7 96
  
Description:
Wenn der Lagercode 2, 3, 4 oder 5 ist, muss der Bewilligungstyp 7, der Bewilligungsstellencode 96 und die Bewilligungsnummer angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
the storageType of POSITION is one of { "2" , "3" , "4" , "5" }
and isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_BewilligungPeriodischeSteueranmeldung_7' , null string , 'the var_permitAuthority_EZVMinOest_96' ) of POSITION is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R142 Bewilligung 8 96
  
Description:
Wenn der Lagercode 1 oder 2 und der ZB-Typ 5 ist, muss der Bewilligungstyp 8, der Bewilligungsstellencode 96 und die Bewilligungsnummer angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the storageType of POSITION is one of { "1" , "2" }
and "5" is REFDATA .getZBTypCode( the commodityCode of POSITION )
and isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_besoVerpflichtungMinoest_8' , null string , 'the var_permitAuthority_EZVMinOest_96' ) of POSITION is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R144a NZE-Pflicht 0
  
Description:
Gueltiger NZE-Pflichtcode: Pflichtcode 0 (ohne Kontrolle) nur moeglich, wenn weder fakultative noch obligatorische NZE-Artencodes in Stammdaten existieren.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where all of the following conditions are true :
- 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of this header
- 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of this header , ;
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
"0" is the nonCustomsLawObligation of POSITION
and any of the following conditions is true :
- 0 is less than the number of elements in getNZEObliArtenCodes( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA
- 0 is less than the number of elements in getNZEFakultativArtenCodes( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_non_customs_law' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_nonCustomsLawObligation' , the name of this rule ) ;
  
  
 
Rule: R144b NZE-Pflicht 2
  
Description:
Gültiger NZE-Pflichtcode: Pflichtcode 2 (ohne Kontrolle gem. Deklarant) nur möglich, wenn fakultative NZE-Artencodes in Stammdaten existieren
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
"2" is the nonCustomsLawObligation of POSITION
and the number of elements in getNZEFakultativArtenCodes( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA is at most 0
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_nonCustomsLawObligation' , the name of this rule ) ;
  
  
 
Rule: R144c NZE-Pflicht 0 oder 2
  
Description:
Wenn NZE-Pflichtcode 0 (ohne Kontrolle) oder NZE-Pflichtcode 2 (ohne Kontrolle gemäss Deklarant), dann dürfen NZE nicht angemeldet werden.ieren
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
the nonCustomsLawObligation of POSITION is one of { "0" , "2" }
and the number of elements in the nonCustomsLawTypes of POSITION is at least 1
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_nonCustomsLawObligation' , the name of this rule ) ;
  
  
 
Rule: R145a Lagercode 1 oder 2
  
Description:
Wenn der Lagercode 1 oder 2, dann muss mind. eine Zusatzabgabenart im Bereich 600-640, oder 743 deklariert werden
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
the storageType of POSITION is one of { "1" , "2" }
and any of the following conditions is true :
- POSITION has any additionalTaxes is false
- ( POSITION .isAtLeastOneZusatzabgabeArtInRange( 'the var_additionalTaxType_MineralOelSteuer_600' , 'the var_additionalTaxType_MineralOelSteuer_Brennstoffe_AndereMinaralOel_Produkte_640' ) is false
and 'the var_additionalTaxType_CO2_Abgabe_KohlePetrolkoks_743' is not one of the additionalTaxTypes of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_storageType' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R145b Lagercode 3-5
  
Description:
Wenn der Lagercode 3,4 oder 5, dann darf keine Zusatzabgabenart 600-640, 710, 720, 730 oder 740-743 deklariert werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
the storageType of POSITION is one of { "3" , "4" , "5" }
and any of the following conditions is true :
- POSITION .isAtLeastOneZusatzabgabeArtInRange( 'the var_additionalTaxType_MineralOelSteuer_600' , 'the var_additionalTaxType_MineralOelSteuer_Brennstoffe_AndereMinaralOel_Produkte_640' ) is true
- the type of ADDITIONALTAX is one of { 'the var_additionalTaxType_710' , 'the var_additionalTaxType_720' , 'the var_additionalTaxType_730' , 'the var_additionalTaxType_CO2_Abgabe_Heizoel_740' , 'the var_additionalTaxType_CO2_Abgabe_Erdgas_741' , 'the var_additionalTaxType_CO2_Abgabe_Andere_MineralOele_742' , 'the var_additionalTaxType_CO2_Abgabe_KohlePetrolkoks_743' } ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_storageType' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R146 Bemessungscode 11
  
Description:
Wenn der Bemessungsgrundlagencode 11 ist, dann muessen Zusatzabgabenart und -schluessel gesetzt und die Menge gleich Rohmasse sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where the grossMass of this position isNotNull ;
set 'ADDITONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
set 'REFDATA' to a ref data ;
if
true is not ( the key of ADDITONALTAX isNotNull
and the key of ADDITONALTAX is not one of REFDATA .getRefZusatzabgabenSchluessel( the type of ADDITONALTAX ) )
and true is not ( "9999.9999" is not the commodityCode of POSITION
and checkRefTarifNumber of REFDATA with the commodityCode of POSITION is false )
and true is not ( "9999.9999" is not the commodityCode of POSITION
and the statisticalCode of POSITION is not one of getRefTarifKeyNumber( the commodityCode of POSITION ) of REFDATA )
and the type of ADDITONALTAX is not one of { 'the var_additionalTaxType_Vorgezogene_EntsorgungsGebuehr_GetraenkeVerpackung_Glas_970' , 'the var_additionalTaxType_TabakSteuer_450' , 'the var_additionalTaxType__SOTA_Gebuehren_465' , 'the var_additionalTaxTypeTabakpraeventionsfonds_470' , 'the var_additionalTaxType_Banderolensteuer_460' , 'the var_additionalTaxType_Biersteuer_480' }
and "11" is getBemessungsCodeZusatzabgabe( the type of ADDITONALTAX , the key of ADDITONALTAX ) of REFDATA
and ( the grossMass of POSITION isNotNull
and the quantity of ADDITONALTAX isNotNull
and the grossMass of POSITION is not the quantity of ADDITONALTAX )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R147 Bemessungscode 24
  
Description:
Wenn der Bemessungsgrundlagencode 24 ist, dann muessen Zusatzabgabenart und -schluessel gesetzt sein, die Menge muss gleich Eigenmasse sein und die Volumentprozent duerfen nicht gesetzt sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITONALTAX' to an additional tax
where the positions nr of POSITION is the positions nr of this additional tax ;
set 'REFDATA' to a ref data ;
if
true is not ( the key of ADDITONALTAX isNotNull
and the key of ADDITONALTAX is not one of REFDATA .getRefZusatzabgabenSchluessel( the type of ADDITONALTAX ) )
and true is not ( "9999.9999" is not the commodityCode of POSITION
and true is not checkRefTarifNumber of REFDATA with the commodityCode of POSITION )
and true is not ( the statisticalCode of POSITION is not one of getRefTarifKeyNumber( the commodityCode of POSITION ) of REFDATA
and "9999.9999" is not the commodityCode of POSITION )
and the type of ADDITONALTAX is not one of { 'the var_additionalTaxType_Vorgezogene_EntsorgungsGebuehr_GetraenkeVerpackung_Glas_970' , 'the var_additionalTaxType_TabakSteuer_450' , 'the var_additionalTaxType__SOTA_Gebuehren_465' , 'the var_additionalTaxTypeTabakpraeventionsfonds_470' , 'the var_additionalTaxType_Banderolensteuer_460' , 'the var_additionalTaxType_Biersteuer_480' }
and "24" is getBemessungsCodeZusatzabgabe( the type of ADDITONALTAX , the key of ADDITONALTAX ) of REFDATA
and the quantity of ADDITONALTAX isNotNull
and the netMass of POSITION isNotNull
and the quantity of ADDITONALTAX is not the netMass of POSITION
then
'the result' .setPositionError( the positions nr of ADDITONALTAX , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R148 Bemessungscode 12 bis 23
  
Description:
Wenn der Bemessungsgrundlagencode zwischen 12 und 23 ist, dann muessen Zusatzabgabenart und -schluessel gesetzt sein, die Menge muss gleich Zusatzmenge sein und die Volumentprozent duerfen nicht gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
set 'REFDATA' to a ref data ;
if
"9999.9999" is not the commodityCode of POSITION
and ( all of the following conditions are true :
- the commodityCode of POSITION checkRefTarifNr is true
- the statisticalCode of POSITION is one of getRefTarifKeyNumber( the commodityCode of POSITION ) of REFDATA , )
and ( all of the following conditions are true :
- the type of ADDITONALTAX isNotNull
- the key of ADDITONALTAX is one of REFDATA .getRefZusatzabgabenSchluessel( the type of ADDITONALTAX ) , )
and ( all of the following conditions are true :
- the type of ADDITONALTAX is not one of { 'the var_additionalTaxType_Vorgezogene_EntsorgungsGebuehr_GetraenkeVerpackung_Glas_970' , 'the var_additionalTaxType_TabakSteuer_450' , 'the var_additionalTaxType__SOTA_Gebuehren_465' , 'the var_additionalTaxTypeTabakpraeventionsfonds_470' , 'the var_additionalTaxType_Banderolensteuer_460' , 'the var_additionalTaxType_Biersteuer_480' }
- ( getBemessungsCodeZusatzabgabe( the type of ADDITONALTAX , the key of ADDITONALTAX ) of REFDATA isNotNull
and getBemessungsCodeZusatzabgabe( the type of ADDITONALTAX , the key of ADDITONALTAX ) of REFDATA is one of { "12" , "13" , "14" , "15" , "16" , "17" , "18" , "19" , "20" , "22" , "23" } )
- ( the quantity of ADDITONALTAX isNotNull
and the additionalUnit of POSITION isNotNull
and the quantity of ADDITONALTAX is not the additionalUnit of POSITION ) , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R149a Zusatzabgaben vollstaendig
  
Description:
Wenn Zusatzabgaben angegeben werden, muss die Art, die Menge und der Schluessel angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'ADDITIONALTAX' to an additional tax ;
if
( any of the following conditions is true :
- the type of ADDITIONALTAX isNotNull
- ( the quantity of ADDITIONALTAX isNotNull
and 0 is not the quantity of ADDITIONALTAX )
- the key of ADDITIONALTAX isNotNull , )
and ( any of the following conditions is true :
- the type of ADDITIONALTAX isNull
- ( the quantity of ADDITIONALTAX isNull
or 0 is the quantity of ADDITIONALTAX )
- the key of ADDITIONALTAX isNull , )
then
'the result' .setPositionError( the positions nr of ADDITIONALTAX , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of ADDITIONALTAX , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R149b Zusatzabgabenart 280
  
Description:
Wenn die Zusatzabgabenart 280 ist, dann muss Volumenprozent gesetzt sein
Status:
deployable
Locale:
en_US
 
definitions
set 'ADDITIONALTAX' to an additional tax ;
if
'the var_additionalTaxType_Monopolgebuehren_280' is the type of ADDITIONALTAX
and any of the following conditions is true :
- the alcoholLevel of ADDITIONALTAX isNull
- 0 is the alcoholLevel of ADDITIONALTAX ,
then
'the result' .setPositionError( the positions nr of ADDITIONALTAX , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of ADDITIONALTAX , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R149c Zusatzabgabenart ohne Volumenpronzente
  
Description:
Wenn die Zusatzabgabenart gleich 290, 450, 460, 465, 470, 480, 600-640, 660, 700, 710, 720, 730, 790 oder 970 ist, dann darf Volumenprozent nicht angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'ADDITIONALTAX' to an additional tax ;
if
( the type of ADDITIONALTAX is one of { 'the var_additionalTaxType_Grenztieraerztliche_Untersuchungsgebuehren_290' , 'the var_additionalTaxType_TabakSteuer_450' , 'the var_additionalTaxType_Banderolensteuer_460' , 'the var_additionalTaxType__SOTA_Gebuehren_465' , 'the var_additionalTaxTypeTabakpraeventionsfonds_470' , 'the var_additionalTaxType_Biersteuer_480' , 'the var_additionalTaxType_Automobilsteuer_660' , 'the var_addtionalTaxType_Lenkungsabgabe_VOC_700' , 'the var_additionalTaxType_710' , 'the var_additionalTaxType_720' , 'the var_additionalTaxType_730' , 'the var_additionalTaxType_790' , 'the var_additionalTaxType_Vorgezogene_EntsorgungsGebuehr_GetraenkeVerpackung_Glas_970' }
or the type of ADDITIONALTAX is between 'the var_additionalTaxType_MineralOelSteuer_600' and 'the var_additionalTaxType_MineralOelSteuer_Brennstoffe_AndereMinaralOel_Produkte_640' )
and ( the alcoholLevel of ADDITIONALTAX isNotNull
and 0 is not the alcoholLevel of ADDITIONALTAX )
then
'the result' .setPositionError( the positions nr of ADDITIONALTAX , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of ADDITIONALTAX , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R150 Zusatzabgabenart 700
  
Description:
Wenn die Zusatzabgabenart 700 und die Eigenmasse angegeben ist, dann muss die Zusatzabgabenmenge kleiner oder gleich der Eigenmasse sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ROUNDED_NETMASS' to plausi helpers.roundUp( the netMass of POSITION , 1 ) ;
if
POSITION has any additionalTaxes is true
and 'the var_addtionalTaxType_Lenkungsabgabe_VOC_700' is one of the additionalTaxTypes of POSITION
and the netMass of POSITION isNotNull
and 0 is not the netMass of POSITION
and POSITION .getZusatzabgabenmengeProArt( 'the var_addtionalTaxType_Lenkungsabgabe_VOC_700' ) isNotNull
and POSITION .getZusatzabgabenmengeProArt( 'the var_addtionalTaxType_Lenkungsabgabe_VOC_700' ) is more than ROUNDED_NETMASS
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R151 Zusatzabgabenart 280
  
Description:
WENN Zusatzabgabenart 280 (MG) UND Zusatzmenge verwendet
DANN Summe der Zusatzabgabenmenge aller 280 pro Tarifzeile gleich gross wie Zusatzmenge der Tarifzeile

1. Es werden nur die ganzen Beträge miteinander vergliche, die Nachkommastellen werden weggelassen.
2. Gewährung einer Toleranz von -5 Einheiten bzw. + 5 Einheiten
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
POSITION has any additionalTaxes is true
and 'the var_additionalTaxType_Monopolgebuehren_280' is one of the additionalTaxTypes of POSITION
and the additionalUnit of POSITION isNotNull
and 0 is not the additionalUnit of POSITION
and POSITION .getZusatzabgabenmengeProArt( 'the var_additionalTaxType_Monopolgebuehren_280' ) isNotNull
and ( POSITION .getZusatzabgabenmengeProArt( 'the var_additionalTaxType_Monopolgebuehren_280' ) is less than ( the additionalUnit of POSITION - 5 )
or POSITION .getZusatzabgabenmengeProArt( 'the var_additionalTaxType_Monopolgebuehren_280' ) is more than ( the additionalUnit of POSITION + 5 ) )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R152 Gebuehren vollstaendig
  
Description:
Wenn eine Gebuehr angegeben ist, dann muss die Art, die Menge und der Ansatz angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'FEE' to a fee ;
if
( any of the following conditions is true :
- the type of FEE isNotNull
- ( the quantity of FEE isNotNull
and 0 is not the quantity of FEE )
- ( the rate of FEE isNotNull
and ZERO is not the rate of FEE ) , )
and ( any of the following conditions is true :
- the type of FEE isNull
- the quantity of FEE isNull
- 0 is the quantity of FEE
- the rate of FEE isNull
- ZERO is the rate of FEE , )
then
'the result' .setPositionError( the positions nr of FEE , "1" , 'the check_fee' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of FEE , 'the ref_goodsItem_fee' , the name of this rule ) ;
  
  
 
Rule: R156 Lagercode
  
Description:
Wenn der Lagercode gem. Stammdaten erforderlich ist, dann muss der Lagercode angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
REFDATA .isLagercodeNecessary( the commodityCode of POSITION , the statisticalCode of POSITION ) is true
and the storageType of POSITION is not one of { "1" , "2" , "3" , "4" , "5" }
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_mineral_oil_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_storageType' , the name of this rule ) ;
  
  
 
Rule: R158 Unterlagen bei Praeferenz
  
Description:
Wenn die Praeferenz gleich 1 ist, muss entweder der Unterlagencode 3, 861, 862, 865, 866 oder 954 angegeben sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
"1" is the preference of POSITION
and all of the following conditions are true :
- 'the var_documentType_Qualitaetzeugnis_3' is one of the documentTypes of POSITION is false
- 'the var_documentType_861_Ursprungszeugnis' is one of the documentTypes of POSITION is false
- 'the var_documentType_862_Ursprungserklaerung' is one of the documentTypes of POSITION is false
- 'the var_documentType_APS-Ursprungszeugnis_865' is one of the documentTypes of POSITION is false
- 'the var_documentType_Statement_on_Origin_866' is one of the documentTypes of POSITION is false
- 'the var_documentType_EUR1_Warenverkehrsbescheinigung_954' is one of the documentTypes of POSITION is false ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_producedDocument' , the name of this rule ) ;
  
  
 
Rule: R158 Unterlagen bei Praeferenz_old
  
Description:
Wenn die Praeferenz gleich 1 ist, muss entweder der Unterlagencode 3, 861, 862, 865 oder 954 angegeben sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
"1" is the preference of POSITION
and all of the following conditions are true :
- 'the var_documentType_Qualitaetzeugnis_3' is one of the documentTypes of POSITION is false
- 'the var_documentType_861_Ursprungszeugnis' is one of the documentTypes of POSITION is false
- 'the var_documentType_862_Ursprungserklaerung' is one of the documentTypes of POSITION is false
- 'the var_documentType_APS-Ursprungszeugnis_865' is one of the documentTypes of POSITION is false
- 'the var_documentType_EUR1_Warenverkehrsbescheinigung_954' is one of the documentTypes of POSITION is false ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_producedDocument' , the name of this rule ) ;
  
  
 
Rule: R159 Nettoveranlagung Zollnettogewicht
  
Description:
Wenn die Nettoveranlagung gleich 1 ist, dann muss das Zollnettogewicht angegeben sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
"1" is the netDuty of POSITION
and any of the following conditions is true :
- the customsNetWeight of POSITION isNull
- 0 is the customsNetWeight of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_net_duty' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_customsNetWeight' , the name of this rule ) ;
  
  
 
Rule: R160 Nettogewicht Eigenmasse
  
Description:
Das Nettogewicht muss groesser oder gleich der Eigenmasse sein und muss kleiner oder gleich der Rohmasse sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
all of the following conditions are true :
- the netMass of POSITION isNotNull
- the customsNetWeight of POSITION isNotNull
- getEineNachkommastelle( the customsNetWeight of POSITION ) of POSITION isNotNull
- getEineNachkommastelle( the netMass of POSITION ) of POSITION isNotNull
- ( getEineNachkommastelle( the customsNetWeight of POSITION ) of POSITION is less than getEineNachkommastelle( the netMass of POSITION ) of POSITION
or the grossMass of POSITION is less than the customsNetWeight of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_net_duty' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_customsNetWeight' , the name of this rule ) ;
  
  
 
Rule: R161 Nettoverzollung Tarazuschlag
  
Description:
Bei Nettoveranlagung muss der Tarazuschlag TZ, sofern er nicht eindeutig ist, übermittelt und mit dem Richtigcode TZ bestätigt werden. 
Wird keine Nettoveranlagung beantragt, darf der TZ nicht übermittelt werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
any of the following conditions is true :
- ( the tareSupplement of POSITION isNotNull
and "1" is not the tareSupplementConfirmation of POSITION )
- ( the tareSupplement of POSITION isNull
and "1" is the tareSupplementConfirmation of POSITION )
- ( the tareSupplement of POSITION isNotNull
and "1" is not the netDuty of POSITION )
- ( the tareSupplement of POSITION isNull
and "1" is the netDuty of POSITION
and 1 is not the number of elements in REFDATA .getTarazuschlaege( the commodityCode of POSITION ) ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_net_duty' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_tareSupplement' , the name of this rule ) ;
  
  
 
Rule: R162 SC1 nicht erlaubte Angaben
  
Description:
Bei Abfertigungstyp 1 darf der Zollbeguenstigungscode und nicht angegeben und die Warennummer nicht 9999.9999 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_repair_no' is the repair of this position
and 'the var_customsClearanceType_Normalveranlagung_1' is the customsClearanceType of this position ;
if
any of the following conditions is true :
- ( the customsFavourCode of POSITION isNotNull
and "0" is not the customsFavourCode of POSITION )
- 'the var_Mustersendung_9999_9999' is the commodityCode of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific1' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R163 Detail ID und Postition
  
Description:
Die Detail-ID muss pro Zollanmeldung und Version eindeutig vergeben sein und es muss mindestens eine Position vorhanden sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
if
( the detail ID of POSITION isNull
or 'the helper_def_Space_String' is the detail ID of POSITION )
or ( 'the var_correctionCode_Erstuebermittlung_1' is the correctionCode of HEADER
and false is detail IDs are unique of HEADER )
or ( 'the var_correctionCode_Korrektur_2' is the correctionCode of HEADER
and true is is correction from declarant of HEADER
and false is detail IDs are unique of HEADER )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_detail_cross' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_traderItemID' , the name of this rule ) ;
  
  
 
Rule: R165 Veranlagungstyp
  
Description:
Wenn der Veranlagungstyp  11 angemeldet ist, duerfen Veranlagungstypen 1, 2, 3, 5, 6, 7, 8 oder 10 nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
if
( any of the following conditions is true :
- 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' is the customsClearanceType of POSITION , )
and the number of elements in the abfertigungs typens of HEADER is more than 1
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_detail_cross' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R166 Begruendung Praeferenz
  
Description:
Wenn die Begruendung 1,2,3 oder 4 ist, dann muss die Praeferenz 0 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
if
( any of the following conditions is true :
- 'the var_reason_Ursprungsnachweis_Laender_EU_1' is the reason of HEADER
- 'the var_reason_Ursprungsnachweis_Laender_EFTA_2' is the reason of HEADER
- 'the var_reason_Ursprungsnachweis_Laender_aFHA_3' is the reason of HEADER
- 'the var_reason_Ursprungsnachweis_Entwicklungslaender_4' is the reason of HEADER , )
and "0" is not the preference of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_detail_cross' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_origin_preference' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_reason' , the name of this rule ) ;
  
  
 
Rule: R167 Direktbefoerderung
  
Description:
Kontrolle der Direktbefoerderungsklausel bei Praeferenzabfertigung.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
( all of the following conditions are true :
- "1" is the preference of POSITION
- the originCountry of POSITION is not the dispatchCountry of HEADER
- 1 is at most the number of elements in getDirektbefoerderungForZollansatz( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION , "PR" , "J" ) of REFDATA , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_general_cross' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_origin_preference' , the name of this rule ) ;
  
  
 
Rule: R167c Direktversand Praeferenzveranlagung Ueberseeabkommen
  
Description:
Wenn der Richtigcode Erzeugungsland = 0 oder null (nicht gesetzt) und TN > 2500.0000 und < 9999.9999 Praeferenzcode = 1 und Ursprungsland eines von  (KR, CA, MX, BW, LS, NA, SZ, ZA, CL, SG, JP, PE, CO, HK, UA, CN, BH, QA, KW, OM, SA, AE) und das Erzeugungsland nicht dem Ursprungsland entspricht, dann Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
if
( the correctionCodeDispatchCountry of HEADER isNull
or "0" is the correctionCodeDispatchCountry of HEADER
or "" is the correctionCodeDispatchCountry of HEADER )
and plausi helpers.isInNumberRange( the commodityCode of POSITION , "2500.0000" , "9999.9999" )
and 'the var_preference_yes_1' is the preference of POSITION
and the originCountry of POSITION is one of { "KR" , "CA" , "MX" , "BW" , "LS" , "NA" , "SZ" , "ZA" , "CL" , "SG" , "JP" , "PE" , "CO" , "HK" , "UA" , "CN" , "BH" , "QA" , "KW" , "OM" , "SA" , "AE" }
and the dispatchCountry of HEADER is not the originCountry of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_general_cross' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_origin_country' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_dispatchCountry' , the name of this rule ) ;
  
  
 
Rule: R167c Direktversand Praeferenzveranlagung Ueberseeabkommen_old
  
Description:
Wenn der Richtigcode Erzeugungsland = 0 oder null (nicht gesetzt) und TN > 2500.0000 und < 9999.9999 Praeferenzcode = 1 und Ursprungsland eines von (KR, CA, MX, BW, LS, NA, SZ, ZA, CL, SG, JP, PE, CO, HK, UA, CN, BH, QA, KW, OM, SA, AE, BA) und das Erzeugungsland nicht dem Ursprungsland entspricht, dann Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
if
( the correctionCodeDispatchCountry of HEADER isNull
or "0" is the correctionCodeDispatchCountry of HEADER
or "" is the correctionCodeDispatchCountry of HEADER )
and plausi helpers.isInNumberRange( the commodityCode of POSITION , "2500.0000" , "9999.9999" )
and 'the var_preference_yes_1' is the preference of POSITION
and the originCountry of POSITION is one of { "KR" , "CA" , "MX" , "BW" , "LS" , "NA" , "SZ" , "ZA" , "CL" , "SG" , "JP" , "PE" , "CO" , "HK" , "UA" , "CN" , "BH" , "QA" , "KW" , "OM" , "SA" , "AE" , "BA" }
and the dispatchCountry of HEADER is not the originCountry of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_general_cross' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_origin_country' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_dispatchCountry' , the name of this rule ) ;
  
  
 
Rule: R168 Verlagerungsverfahren
  
Description:
Wenn der MWSt-Code gleich 90 (Verlagerungsverfahren) oder 91 (Veredelungsverkehr) ist, dann muss die MWSt-Nummer angegeben sein, sonst ist die Nummer optional.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
if
( any of the following conditions is true :
- 'the var_VATCode_Verlagerungsverfahren_MWST_90' is the VATCode of POSITION
- 'the var_VATCode_Lohnveredelung_im_Nichterhebungsverfahren_MWST_91' is the VATCode of POSITION , )
and ( any of the following conditions is true :
- the VATNumber of HEADER isNull
- 'the helper_def_empty_String' is the VATNumber of HEADER
- 'the helper_def_Space_String' is the VATNumber of HEADER , )
then
'the result' .setHeaderError( "1" , 'the check_general_cross' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_VATNumber' , the name of this rule ) ;
  
  
 
Rule: R170a NZE-Pflicht 1
  
Description:
Wenn der NZE-Pflichtcode 1 ist, muss der NZE-Artencode angegeben sein
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of this header
and 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of this header ;
set 'POSITION' to a position ;
if
'the var_nonCustomsLawObligation_mit_Kontrolle_vor_Freigabe_1' is the nonCustomsLawObligation of POSITION
and 1 is more than the number of elements in the nonCustomsLawTypes of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_non_customs_law' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_nonCustomsLaw' , the name of this rule ) ;
  
  
 
Rule: R170b NZE-Artencodes obligatorisch
  
Description:
Wenn NZE-Artencode gem. Stammdaten obligatorisch, dann muessen die entsprechenden Artencodes angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'HEADER' to a header
where 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of this header
and 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of this header ;
set 'REFDATA' to a ref data ;
if
plausi helpers.containsAll( getNZEObliArtenCodes( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA , the nonCustomsLawTypes of POSITION ) is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_non_customs_law' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_nonCustomsLaw' , the name of this rule ) ;
  
  
 
Rule: R171 Einfuhrzollanmeldung in Intervention
  
Description:
Wenn die Einfuhrzollanmeldung in Intervention ist, dann darf kein Berichtigungscode 0 oder 2 gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where the statusOfDeclaration of this header isNotNull ;
if
'the var_correctionCode_Erstuebermittlung_1' is not the correctionCode of HEADER
and "in Intervention" is the statusOfDeclaration of HEADER
then
'the result' .setHeaderError( "1" , 'the check_version' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionCode' , the name of this rule ) ;
  
  
 
Rule: R172a Zusatzabgaben obligatorisch
  
Description:
Wenn kein Lagercode angegeben oder Lagercode 1 oder 2 und Zusatzabgabenart -schluessel und Ursprungsland gem. Stammdaten obligatorisch sind, muss Art, Schluessel und Menge angegeben werden und fuer die angemeldete Tarifnummer und Warenschluessel gueltig sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
"9999.9999" is not the commodityCode of POSITION
and checkZusatzabgabenObli( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION , the additionalTaxes of POSITION ) of REFDATA is false
and any of the following conditions is true :
- the storageType of POSITION isNull
- "1" is the storageType of POSITION
- "2" is the storageType of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R172b Zusatzabgaben obligatorisch
  
Description:
Wenn kein Lagercode angegeben oder Lagercode 1 oder 2 und Zusatzabgabenart -schluessel und Ursprungsland gem. Stammdaten gruppenplichtig sind, muss eine Zusatzabgabe pro Gruppe und fuer die angemeldete Tarifnummer und Warenschluessel gueltig sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
"9999.9999" is not the commodityCode of POSITION
and REFDATA .checkZusatzabgebenGruppenpflichten( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION , the additionalTaxes of POSITION ) is false
and any of the following conditions is true :
- the storageType of POSITION isNull
- "1" is the storageType of POSITION
- "2" is the storageType of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R172c Richtigcode Zusatzabgabe obligatorisch
  
Description:
Wenn keine Zusatzabgaben in den Stammdaten enthalten sind und Zusatzabgaben angegeben sind, dann muss der Richtigcode für Zusatzabgabenansatz vorhanden sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where this position is zusatz abgabe ac9 is false ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
set 'REFDATA' to a ref data ;
if
"1" is not the rateConfirmation of ADDITIONALTAX
and isZusatzabgabenPreviewed( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION , the type of ADDITIONALTAX , the key of ADDITIONALTAX ) of REFDATA is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R173 SC4 Ursprungsland
  
Description:
Wenn der Abfertigungstyp 10 oder 11 ist, dann muss das Ursprungsland CH sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
"CH" is not the originCountry of POSITION
and any of the following conditions is true :
- 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' is the customsClearanceType of POSITION
- 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' is the customsClearanceType of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific4' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R174 SC4 Zollansatz
  
Description:
Wenn der Veranlagungstyp 10 oder 11 ist, dann muss der Zollansatz angegeben sein und der Richtigcode muss gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
( any of the following conditions is true :
- the rate of POSITION isNull
- "1" is not the rateConfirmation of POSITION , )
and ( any of the following conditions is true :
- 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' is the customsClearanceType of POSITION
- 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' is the customsClearanceType of POSITION , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific4' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_rate' , the name of this rule ) ;
  
  
 
Rule: R175 SC4 nicht erlaubte Angaben
  
Description:
Bei Veranlagungstyp 10 oder 11 darf die Warennummer nicht 9999.9999 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_repair_no' is the repair of this position
and the customsClearanceType of this position isNotNull
and the customsClearanceType of this position is one of { 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' } ;
if
any of the following conditions is true :
- 'the var_Mustersendung_9999_9999' is the commodityCode of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific4' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R176 nur Zollbeguenstigung moeglich
  
Description:
Wenn gem. Stammdaten nur Zollbeguenstigungsveranlagung moeglich, dann muss der Veranlagungstyp 5 (Zollbegünstigung), 2 (Veredelungsverkehr), 10 (Rückwaren gemäss Zollrecht) oder 11 (Rückwaren gemäss Zoll-/MWST-Recht) angegeben sein. (Da die Warennummer 9999.9999 nicht im Tarif beschrieben ist, faellt sie nicht unter diese Regeln.)
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where all of the following conditions are true :
- 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of this header
- 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of this header , ;
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
"2" is REFDATA .getZBTypCode( the commodityCode of POSITION )
and 'the var_Mustersendung_9999_9999' is not the commodityCode of POSITION
and the customsClearanceType of POSITION is not one of { 'the var_customsClearanceType_Veredelungsverkehr_2' , 'the var_customsClearanceType__Aussberungsverkehr_3' , 'the var_customsClearanceType_Zollerleichterung_5' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' }
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_detail_cross' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_customsFavourCode' , the name of this rule ) ;
  
  
 
Rule: R177 SC5 Zollbeguenstigungscode notwendig
  
Description:
Wenn der Veranlagungstyp 5 ist, dann muss der Zollbeguenstigungscode angegeben sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_Zollerleichterung_5' is the customsClearanceType of this position ;
if
any of the following conditions is true :
- the customsFavourCode of POSITION isNull
- 'the helper_def_empty_String' is the customsFavourCode of POSITION
- "0" is the customsFavourCode of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific5' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R178 SC5 Zollbeguenstigungsart 1
  
Description:
Wenn der Zollbeguenstigungsartencode 1 ist, dann muss eine Bewilligung mit Typ 5 und Stelle 98 angegeben sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_Zollerleichterung_5' is the customsClearanceType of this position ;
set 'REFDATA' to a ref data ;
if
"1" is one of REFDATA .getZBArtenCode( the commodityCode of POSITION , the customsFavourCode of POSITION )
and isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_Verwendungspflichtig_5' , null string , 'the var_permitAuthority_EZV andere _Andere_98' ) of POSITION is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific5' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R179 SC5 nicht erlaubte Angaben
  
Description:
Bei Veranlagungstyp 5 und keiner Ausbesserung darf die Warennummer nicht 9999.9999 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_Zollerleichterung_5' is the customsClearanceType of this position
and 'the var_repair_no' is the repair of this position ;
if
any of the following conditions is true :
- 'the var_Mustersendung_9999_9999' is the commodityCode of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific5' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R181 SC7 Zollansatz
  
Description:
Wenn der Veranlagungstyp 7 ist, muss der Zollansatz "0" angegeben werden
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_ZollfreieVeranlagung_gem_ ZG_7' is the customsClearanceType of this position ;
if
none of the following conditions are true :
- the rate of POSITION isNull
- ZERO is the rate of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific7' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_rate' , the name of this rule ) ;
  
  
 
Rule: R182 SC7 nicht erlaubte Angaben
  
Description:
Bei Veranlagungstyp 7 und keiner Ausbesserung duerfen Zollbeguenstigungscode und Art der Veredelung/Ausbesserung nicht angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_ZollfreieVeranlagung_gem_ ZG_7' is the customsClearanceType of this position
and 'the var_repair_no' is the repair of this position ;
if
any of the following conditions is true :
- ( the customsFavourCode of POSITION isNotNull
and "0" is not the customsFavourCode of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific7' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R183a SC8 Abgabenbefreiung
  
Description:
Wenn der Veranlagungstyp 8 ist, dann muss der Zollansatz 0 sein, der MWST-Code 3 und der Handelswarencode 2. Die Rohmasse und der statistische Wert muessen angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_AbgabeFrei_8' is the customsClearanceType of this position ;
if
any of the following conditions is true :
- ( the rate of POSITION isNotNull
and ZERO is not the rate of POSITION )
- 'the var_VATCode_Steuerfrei_3' is not the VATCode of POSITION
- 'the var_commercialGood_Nichthandelsware_2' is not the commercialGood of POSITION
- ( the grossMass of POSITION isNull
or 0 is the grossMass of POSITION )
- ( the statisticalValue of POSITION isNull
or ZERO is the statisticalValue of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific8' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R183b SC8 Abgabenbefreiung
  
Description:
Bei Veranlagungstyp 8 und keiner Ausbesserung duerfen Zollbeguenstigungscode, Lagercode,Zollnettogewicht, Nettoverzollung, Tarazuschlag und Statistischer Schluessel nicht angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_repair_no' is the repair of this position
and 'the var_customsClearanceType_AbgabeFrei_8' is the customsClearanceType of this position ;
if
any of the following conditions is true :
- 0 is not the statisticalCode of POSITION
- ( the customsNetWeight of POSITION isNotNull
and 0 is not the customsNetWeight of POSITION )
- the storageType of POSITION isNotNull
- ( the customsFavourCode of POSITION isNotNull
and "0" is not the customsFavourCode of POSITION )
- ( the netDuty of POSITION isNotNull
and "0" is not the netDuty of POSITION )
- ( the tareSupplement of POSITION isNotNull
and 0 is not the tareSupplement of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific8' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R184 Einfuhrzollanmeldung in Berechtigung
  
Description:
Wenn eine Einfuhrzollanmeldung in Berechtigung ist, dann darf der Berechtigungscode nicht 0 oder 2 sein
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
'the var_correctionCode_Erstuebermittlung_1' is not the correctionCode of HEADER
and "in Korrektur" is the statusOfDeclaration of HEADER
then
'the result' .setHeaderError( "1" , 'the check_version' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionCode' , the name of this rule ) ;
  
  
 
Rule: R185 Einfuhrzollanmeldung in Berechtigungsanfrage
  
Description:
Wenn eine Einfuhrzollanmeldung in wartend auf Akzeptanz ist, dann darf der Berechtigungscode nicht 0 oder 2 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
'the var_correctionCode_Erstuebermittlung_1' is not the correctionCode of HEADER
and "wartend auf Akzeptanz" is the statusOfDeclaration of HEADER
then
'the result' .setHeaderError( "1" , 'the check_version' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionCode' , the name of this rule ) ;
  
  
 
Rule: R190 SC2 Bewilligung der Stelle 98
  
Description:
Wenn Verkehrsrichtung = 1 (aktiv) oder 2 (passiv) und Verfahrenstyp = 1, dann muss Bewilligungstyp und -nummer angegeben sein und Bew.stellencode muss 98 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_Veredelungsverkehr_2' is the customsClearanceType of this position ;
if
the direction of POSITION is one of { "1" , "2" }
and "1" is the processType of POSITION
and isBewilligungsTypAndNumberAndStellenCodeInList( null string , null string , 'the var_permitAuthority_EZV andere _Andere_98' ) of POSITION is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific2' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R191 SC2 Abrechnungstyp 1
  
Description:
Wenn der Abfertigungstyp = 2, Abrechnungstyp = 1 und Verkehrsrichtung = 1 (aktiv) ist, dann muss der Zollansatz 0 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_Veredelungsverkehr_2' is the customsClearanceType of this position ;
if
'the var_billingType_Nichterhebung_1' is the billingType of POSITION
and 'the var_direction_activ_1' is the direction of POSITION
and ZERO is not the rate of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific2' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_rate' , the name of this rule ) ;
  
  
 
Rule: R193 SC2 nicht erlaubte Angaben
  
Description:
n der Abfertigungstyp = 2, dann darf die TN 9999.9999 nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_Veredelungsverkehr_2' is the customsClearanceType of this position ;
if
"9999.9999" is the commodityCode of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific2' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R198 SC3 Handelsware 2
  
Description:
Bei Ausbesserung muss der Handelswarencode 2 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_repair_yes' is the repair of this position ;
if
'the var_commercialGood_Nichthandelsware_2' is not the commercialGood of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific3' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R201 SC6 nicht erlaubte Angaben
  
Description:
Bei Veranlagungstyp 6 und keiner Ausbesserung darf Zollbeguenstigungscode nicht angegeben und die Warennummer nicht 9999.9999 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_repair_no' is the repair of this position
and 'the var_customsClearanceType_Tabak_6' is the customsClearanceType of this position ;
if
any of the following conditions is true :
- ( the customsFavourCode of POSITION isNotNull
and "0" is not the customsFavourCode of POSITION )
- 'the var_Mustersendung_9999_9999' is the commodityCode of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific1' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R203 Zusatzinformation
  
Description:
Gültige Zusatzinformationen gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'GOODS ITEM DETAILS' to a goods item detail ;
set 'REFDATA' to a ref data common ;
if
( ( the code of 'GOODS ITEM DETAILS' isNull
or 'the helper_def_empty_String' is the code of 'GOODS ITEM DETAILS' )
and ( the name of 'GOODS ITEM DETAILS' isNotNull
and 'the helper_def_empty_String' is not the name of 'GOODS ITEM DETAILS' ) )
or ( ( the code of 'GOODS ITEM DETAILS' isNotNull
and 'the helper_def_empty_String' is not the code of 'GOODS ITEM DETAILS' )
and ( the name of 'GOODS ITEM DETAILS' isNull
or 'the helper_def_empty_String' is the name of 'GOODS ITEM DETAILS' ) )
or ( 0 is the number of elements in getGoodsItemCodes( the name of 'GOODS ITEM DETAILS' ) of REFDATA
and ( the code of 'GOODS ITEM DETAILS' isNull
or 'the helper_def_empty_String' is the code of 'GOODS ITEM DETAILS' ) )
or ( the number of elements in getGoodsItemCodes( the name of 'GOODS ITEM DETAILS' ) of REFDATA is more than 0
and the code of 'GOODS ITEM DETAILS' is not one of getGoodsItemCodes( the name of 'GOODS ITEM DETAILS' ) of REFDATA )
or the name of 'GOODS ITEM DETAILS' is not one of the refAllGoodsItemDetailNames of REFDATA
then
'the result' .setPositionError( the positions nr of 'GOODS ITEM DETAILS' , "1" , 'the check_additional_information' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of 'GOODS ITEM DETAILS' , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R204 Zusatzinformation
  
Description:
Wenn bei angemeldeter Tarifnummer-Schlüssel-Kombination eine Zusatzinformation gem. Stammdaten notwendig ist, dann muss diese angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of this header
and 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of this header ;
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
false is plausi helpers.containsAll( getWarenDetailNamen( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA , the waren detail namens of POSITION )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_information' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R205 SC2 notwendige Angaben
  
Description:
Bei Veranlagungstyp 2 muessen Verkehrsrichtung, Veredlungstyp, Abrechnungstyp und Verfahrenstyp angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where the customsClearanceType of this position isNotNull
and 'the var_customsClearanceType_Veredelungsverkehr_2' is the customsClearanceType of this position ;
if
any of the following conditions is true :
- ( the direction of POSITION isNull
or 'the helper_def_empty_String' is the direction of POSITION )
- ( the refinementType of POSITION isNull
or 'the helper_def_empty_String' is the refinementType of POSITION )
- ( the billingType of POSITION isNull
or 'the helper_def_empty_String' is the processType of POSITION )
- ( the processType of POSITION isNull
or 'the helper_def_empty_String' is the processType of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific2' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_direction' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_refinementType' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_processType' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_billingType' , the name of this rule ) ;
  
  
 
Rule: R206 SC3 notwendige Angaben
  
Description:
Bei Ausbesserung=1 muessen Verkehrsrichtung und Art der Veredelung angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_repair_yes' is the repair of this position ;
if
any of the following conditions is true :
- ( the direction of POSITION isNull
or 'the helper_def_empty_String' is the direction of POSITION )
- ( the repairReason of POSITION isNull
or 'the helper_def_empty_String' is the repairReason of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific3' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R207 provisorische Frist
  
Description:
Die provisorische Frist darf nur verwendet werden, wenn der Anmeldungstyp 2 ist (provisorisch).
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
'the var_declarationType_provisorisch_2' is not the declarationType of HEADER
and HEADER is has provisorische frist is true
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
  
  
 
Rule: R208 SC2 Verfahrenstyp
  
Description:
Wenn Veranlagungstyp 2, Verkehrsrichtung = 1 (aktiv), MwSt.-Code nicht 3 (Steuerfrei) und es keine Ausbesserung ist, dann muss der Verfahrenstyp = 1 (ordentlich) und das Feld Handelsware muss = 1 (Handelsware) sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITON' to a position
where 'the var_repair_no' is the repair of this position
and 'the var_customsClearanceType_Veredelungsverkehr_2' is the customsClearanceType of this position ;
if
all of the following conditions are true :
- 'the var_direction_activ_1' is the direction of POSITON
- 'the var_VATCode_Steuerfrei_3' is not the VATCode of POSITON
- ( 'the var_commercialGood_Handelsware_1' is not the commercialGood of POSITON
or 'the var_processType_Ordentlich_1' is not the processType of POSITON ) ,
then
'the result' .setPositionError( the positions nr of POSITON , "1" , 'the check_specific2' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITON , 'the ref_goodsItem_repairAndRefinement_processType' , the name of this rule ) ;
  
  
 
Rule: R210a GEB Nummer und Kurzname
  
Description:
Wenn Bewilligungstyp 2 (Generaleinfuhrbewilligung) und Bewilligungsstelle 1 (BLW) ist, dann muss Generaleinfurhbewilligungsnummer (GEB-Nr) existieren 
und der GEB-Inhaber muss im Importeurnamen (importer/ name), Empfaengernamen (consignee/ name) oder Zwischenhaendlernamen 
(permit/ additionalInformation) stehen. Ausgenommen sind bestimmte GEB-Nr.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
set 'REFDATA' to a ref data ;
if
( all of the following conditions are true :
- 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT
- "1" is the permitAuthority of PERMIT
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "660000" , "740000" ) is false
- containsGeb( the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is false , )
or ( all of the following conditions are true :
- 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT
- "1" is the permitAuthority of PERMIT
- isGEBAbrechenbar( the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is true
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "660000" , "740000" ) is false
- containsKurzname( the importerName of HEADER , the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is false
- containsKurzname( the consigneeName of HEADER , the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is false
- containsKurzname( the additionalInformation of PERMIT , the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is false , )
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210b GEB Nummer erlaubt fuer Verarbeitungscode
  
Description:
Wenn Bewilligungstyp = 2 (Generaleinfuhrbewilligung) oder 3 (Generallizenz) und Verarbeitungscode für Tarifnummer/Schlüssel in Stammdaten, 
dann muss die Bewilligungsnummer im Bereich liegen, der für diesen Verarbeitungscode definiert ist.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
set 'REFDATA' to a ref data ;
if
the permitType of PERMIT isNotNull
and REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON ) isNotNull
and ( ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT
or 'the var_permitType_Generallizenz_3' is the permitType of PERMIT )
- 1 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "1001" , "3999" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT
or 'the var_permitType_Generallizenz_3' is the permitType of PERMIT )
- 4 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "1" , "999" ) is false , )
or ( all of the following conditions are true :
- 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT
- 5 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "1" , "999999" ) is false , )
or ( all of the following conditions are true :
- 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT
- 6 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "1" , "999999" ) is false , )
or ( all of the following conditions are true :
- 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT
- 8 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "1" , "999999" ) is false , )
or ( all of the following conditions are true :
- 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT
- 9 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "1" , "999999" ) is false , )
or ( all of the following conditions are true :
- 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT
- 11 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "1" , "999999" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 18 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "1001" , "29999" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 19 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "103000" , "199999" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 50 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "1" , "50000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 51 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "100001" , "120000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 52 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "120001" , "140000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 53 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "140001" , "160000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 54 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "160001" , "180000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 57 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "300001" , "320000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 58 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "320001" , "340000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 59 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "340001" , "360000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 60 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "360001" , "380000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 61 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "380001" , "400000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 62 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "400001" , "420000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 63 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "420001" , "440000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 64 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "440001" , "460000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 65 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "460001" , "480000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 66 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "600001" , "620000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 67 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "620001" , "640000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 68 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "640001" , "660000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 69 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "660001" , "680000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 70 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "680001" , "700000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 71 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "800001" , "820000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 72 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "820001" , "840000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 73 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "840001" , "860000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 75 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "60001" , "80000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 76 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "80001" , "100000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 77 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "700001" , "720000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 78 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "720001" , "740000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 79 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "860001" , "870000" ) is false , )
or ( all of the following conditions are true :
- ( 'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT )
- 90 is REFDATA .getVerarbeitungscode( the commodityCode of POSITON , the statisticalCode of POSITON )
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "1" , "999999" ) is false , ) )
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210c Nummer eistiert für réservesuisse
  
Description:
Wenn Bewilligungstyp 2 (Generaleinfuhrbewilligung) und Bewilligungsstelle 2 (résérvesuisse) ist, dann muss Generaleinfurhbewilligungsnummer (GEB-Nr) existieren.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
set 'REFDATA' to a ref data ;
if
'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT
and "22" is the permitAuthority of PERMIT
and false is containsGeb( the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210d GEB Inhaber Kurzname korrekt für résérvesuisse
  
Description:
Wenn Bewilligungstyp 2 (Generaleinfuhrbewilligung) und Bewilligungsstelle 22 (résérvesuisse) ist und die GEB-Nummer nicht gleich 47998, 47999, 89998, 89999, 
119998, 119999, 139998, 139999, 159998, 159999, 179998 oder 179999 ist, dann muss der GEB-Inhaber Kurzname im Importeurnamen (importer/ name) stehen.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
set 'REFDATA' to a ref data ;
if
'the var_permitType_Generalbewilligung_2' is the permitType of PERMIT
and "22" is the permitAuthority of PERMIT
and the permitNumber of PERMIT is not one of { "47998" , "47999" , "89998" , "89999" , "119998" , "119999" , "139998" , "139998" , "159998" , "159998" , "179998" , "179998" }
and containsKurzname( the importerName of HEADER , the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is false
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210e Bewilligungs Nummer existiert fuer Minoest
  
Description:
Wenn der Bewilligungstyp 9 (Biotreibstoffbewilligung) und die Bewilligungsstelle 96 (MinÖst) ist, 
dann muss die Bewilligungsnummer existieren gemäss den Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
set 'REFDATA' to a ref data ;
if
'the var_permitType_NachweisBioTreibstoff_9' is the permitType of PERMIT
and 'the var_permitAuthority_EZVMinOest_96' is the permitAuthority of PERMIT
and containsGeb( the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is false
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210f Bewilligungs Inhaber Kurzname korrekt fuer Minoest
  
Description:
Wenn der Bewilligungstyp 9 (Biotreibstoffbewilligung) und Bewilligungsstelle 96 (MinÖst) sind, dann muss der Bewilligungs-Inhaber im Importeurnamen (importer/ name) stehen.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
set 'REFDATA' to a ref data ;
if
'the var_permitType_NachweisBioTreibstoff_9' is the permitType of PERMIT
and 'the var_permitAuthority_EZVMinOest_96' is the permitAuthority of PERMIT
and containsKurzname( the importerName of HEADER , the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is false
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210g Bewilligungs Nummer existiert fuer EAV
  
Description:
Wenn Bewilligungstyp 6 (Verpflichtung) und Bewilligungstelle 2 (EAV) ist, dann muss die Bewilligungs-Nr. Steuerlager existieren.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
set 'REFDATA' to a ref data ;
if
'the var_permitType_Verpflichtung_6' is the permitType of PERMIT
and "2" is the permitAuthority of PERMIT
and containsBewNr( the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is false
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210h Bewilligungs Nummer existiert fuer Tabak
  
Description:
Wenn Bewilligungstyp 4 (Revers Tabak) UND Bewilligungsstelle 21 (OZD S Tabak) UND Zusatzabgabenschlüssel 201 oder 202 
DANN muss Bewiligungsnummer existieren gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
set 'REFDATA' to a ref data ;
if
'the var_permitType_ReversTabak_4' is the permitType of PERMIT
and 'the var_permitAuthority_SektionTabakBierbesteuerung_21' is the permitAuthority of PERMIT
and containsBewNr( the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is false
and any of the following conditions is true :
- 'the var_addtionalTaxTypeKey_201' is one of the additionalTaxKeys of POSITON
- 'the var_addtionalTaxTypeKey_202' is one of the additionalTaxKeys of POSITON ,
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210i Bewilligungs Nummer existiert fuer ESTV
  
Description:
Wenn Bewilligungstyp 6 (Verpflichtung) und Bewilligungsstelle 80 (ESTV - Eidg. Steuerverwaltung)
DANN muss Bewiligungsnummer existieren gem. Stammdaten und der Importeurname muss der richtige sein (der Kurzname muss entweder im Feld Importeurname, Importeuradresszusatz1, Importeuradresszusatz2 oder ImporteurStrasse enthalten sein).
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
set 'REFDATA' to a ref data ;
if
'the var_permitType_Verpflichtung_6' is the permitType of PERMIT
and "80" is the permitAuthority of PERMIT
and containsBewKurzname( the importerName of HEADER , the importerAddressSupplement1 of HEADER , the importerAddressSupplement2 of HEADER , the importerStreet of HEADER , the permitNumber of PERMIT , the permitAuthority of PERMIT , the importerTraderIdentificationNumber of HEADER , the VATNumber of HEADER ) of REFDATA is false
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210j Bewilligungs Nummer existiert fuer EZV Minoest
  
Description:
Wenn Bewilligungstyp 7 (Bewilligung zur periodischen Steueranmeldung) und Bewilligungsstelle 96 (EZV Minöst - Eidg. Zollverwaltung: Minöst) 
DANN muss die angemeldete Bewilligungsnummer in dem Bewilligungsnummern-Bereichen (1000-3999 und 20004-20990) liegen
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
if
'the var_permitType_BewilligungPeriodischeSteueranmeldung_7' is the permitType of PERMIT
and 'the var_permitAuthority_EZVMinOest_96' is the permitAuthority of PERMIT
and all of the following conditions are true :
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "1000" , "3999" ) is false
- plausi helpers.isInNumberRange( the permitNumber of PERMIT , "20004" , "20990" ) is false ,
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210k Bewilligungs Nummer existiert fuer EZV
  
Description:
Wenn Bewilligungstyp 8 ((beso) Verpflichtung Minöst) und Bewilligungsstelle 96 (EZV Minöst - Eidg. Zollverwaltung: Minöst) DANN muss die angemeldete Bewilligungsnummer in dem Bewilligungsnummern-Bereichen (20000-29999und 70000-79999) liegen
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
if
'the var_permitType_besoVerpflichtungMinoest_8' is the permitType of PERMIT
and 'the var_permitAuthority_EZVMinOest_96' is the permitAuthority of PERMIT
and plausi helpers.isInNumberRange( the permitNumber of PERMIT , "20000" , "29999" ) is false
and plausi helpers.isInNumberRange( the permitNumber of PERMIT , "70000" , "79999" ) is false
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210l GEB Inhaber korrekt und existiert fuer EZV VOC
  
Description:
Wenn Bewilligungstyp 6 (Verpflichtung) und Bewilligungsstelle 97 (EZV VOC - Eidg. Zollverwaltung: VOC) DANN muss Bewiligungsnummer existieren gem. Stammdaten.UND der GEB-Inhaber muss im Importeurnamen oder Empfängernamen stehen
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITON' to a position ;
set 'REFDATA' to a ref data ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
if
'the var_permitType_Verpflichtung_6' is the permitType of PERMIT
and 'the var_permitAuthority_EZV_VOC_97' is the permitAuthority of PERMIT
and ( containsBewKurzname( the importerName of HEADER , the importerAddressSupplement1 of HEADER , the importerAddressSupplement2 of HEADER , the importerStreet of HEADER , the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is false
and containsBewKurzname( the consigneeName of HEADER , the consigneeAddressSupplement1 of HEADER , the consigneeAddressSupplement2 of HEADER , the consigneeStreet of HEADER , the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is false )
and all of the following conditions are true :
- plausi helpers.isInNumberRange( the importerName of HEADER , the permitNumber of PERMIT , the permitAuthority of PERMIT ) is false
- plausi helpers.isInNumberRange( the consigneeName of HEADER , the permitNumber of PERMIT , the permitAuthority of PERMIT ) is false ,
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
  
  
 
Rule: R210m Anwendungsverhinderung bestimmter Bewilligungsnummern
  
Description:
Bei den TN 2204.2121, 2204.2131, 2204.2141, 2204.2921, 2204.2922, 2204.2931 und 2204.2932 dürfen die Bewilligungsnummern 479995 und 479998 nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
if
the commodityCode of POSITON is one of { "2204.2121" , "2204.2131" , "2204.2141" , "2204.2221" , "2204.2222" , "2204.2231" , "2204.2232" , "2204.2923" , "2204.2924" , "2204.2933" , "2204.2934" }
and the permitNumber of PERMIT is one of { "479995" , "479998" }
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210m Anwendungsverhinderung bestimmter Bewilligungsnummern_old
  
Description:
Bei den TN 2204.2121, 2204.2131, 2204.2141, 2204.2221, 2204.2222, 2204.2231, 2204.2232, 2204.2923, 2204.2924, 2204.2933 und 2204.2934 dürfen die Bewilligungsnummern 479995 und 479998 nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITON' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITON ;
if
the commodityCode of POSITON is one of { "2204.2121" , "2204.2131" , "2204.2141" , "2204.2921" , "2204.2922" , "2204.2931" , "2204.2932" }
and the permitNumber of PERMIT is one of { "479995" , "479998" }
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R210n Bewilligungskontrolle Carbura
  
Description:
WENN Bewilligungstyp 3 und Bewilligungsstelle 8 und Rohmasse > 20kg
DANN muss Bewiligungsnummer existieren gem. Stammdaten. 
UND der GEB-Inhaber muss im Importeurnamen stehen. 
->Sofern Bewilligungsnummer nicht zwischen 3000 und 3999 ist, dann wird Kurzname nicht überprüft.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit isNotNull
and the positions nr of this permit is the positions nr of POSITION
and plausi helpers.isInNumberRange( the permitNumber of this permit , "3000" , "3999" ) is false ;
set 'REFDATA' to a ref data ;
if
'the var_permitType_Generallizenz_3' is the permitType of PERMIT
and 'the var_permitAuthority_Carbura_8' is the permitAuthority of PERMIT
and containsKurzname( the importerName of HEADER , the permitNumber of PERMIT , the permitAuthority of PERMIT ) of REFDATA is false
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R211 Konti Barzahlung
  
Description:
Wenn Konto Zoll 0 ist, muss auch das Konto MWST 0 sein und umgekehrt
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
( "0" is the customsAccount of HEADER
and "0" is not the VATAccount of HEADER )
or ( "0" is not the customsAccount of HEADER
and "0" is the VATAccount of HEADER )
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_VATAccount' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_customsAccount' , the name of this rule ) ;
  
  
 
Rule: R212b Konti Vorversion
  
Description:
Wenn der Berichtigungscode 2 oder 0 ist, und die Zollanmeldung schon abgerechnet ist, darf das Konto Zoll und das Konto MWST nicht von oder nach Barzahler geändert werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
( all of the following conditions are true :
- ( "0" is the correctionCode of HEADER
or "2" is the correctionCode of HEADER )
- HEADER declaration state is/was 'abgerechnet' or 'korrigiert nach abrechnung' is true , )
and ( any of the following conditions is true :
- ( "0" is the customsAccount of HEADER
and "0" is not the customsAccountPreviousVersion of HEADER )
- ( "0" is the VATAccount of HEADER
and "0" is not the VATAccountPreviousVersion of HEADER )
- ( "0" is not the customsAccount of HEADER
and "0" is the customsAccountPreviousVersion of HEADER )
- ( "0" is not the VATAccount of HEADER
and "0" is the VATAccountPreviousVersion of HEADER ) , )
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_VATAccount' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_customsAccount' , the name of this rule ) ;
  
  
 
Rule: R213 Praeferenzansatz vorhanden
  
Description:
Wenn der Veranlagungstyp nicht 10 oder 11 ist und die Präferenzveranlagung beantragt wird (Flag origin/preference = 1) und Ursprungsland (origin/orignCountry) nicht Schweiz oder Lichtenstein ist, muss Praeferenzansatz gem. Stammdaten vorhanden sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
( all of the following conditions are true :
- 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' is not the customsClearanceType of POSITION
- 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' is not the customsClearanceType of POSITION
- "1" is the preference of POSITION
- the originCountry of POSITION is not one of { "CH" , "FL" , "LI" }
- checkRefPraeferenz( the commodityCode of POSITION , the originCountry of POSITION , the customsFavourCode of POSITION , the statisticalCode of POSITION ) of REFDATA is false , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_origin_preference' , the name of this rule ) ;
  
  
 
Rule: R214 VVM vor Abrechnung nicht definiert
  
Description:
Wenn Berichtigungscode 2 oder 0 (Annullierung oder Berichtigung), und Berichtigung vom Zoll vor Abrechung, dann darf VVM nicht neu ausgestellt werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
all of the following conditions are true :
- ( 'the var_correctionCode_Annullation_0' is the correctionCode of HEADER
or 'the var_correctionCode_Korrektur_2' is the correctionCode of HEADER )
- is correction from declarant of HEADER is false
- HEADER declaration state is/was 'abgerechnet' or 'korrigiert nach abrechnung' is false
- HEADER create new VAT debit isNotNull
- ( HEADER create new VAT debit is true
or HEADER create new VAT debit is false ) ,
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
  
  
 
Rule: R215 VVM nach Abrechung definiert
  
Description:
Wenn Berichtigungscode 2 oder 0 (Annullierung oder Berichtigung), und Berichtigung vom Zoll nach Abrechung, dann muss angegeben werden, ob ein VVM neu ausgestellt werden soll oder nicht.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
all of the following conditions are true :
- ( 'the var_correctionCode_Annullation_0' is the correctionCode of HEADER
or 'the var_correctionCode_Korrektur_2' is the correctionCode of HEADER )
- false is is correction from declarant of HEADER
- true is HEADER declaration state is/was 'abgerechnet' or 'korrigiert nach abrechnung'
- HEADER create new VAT debit isNull ,
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
  
  
 
Rule: R216 VVM bei Wechsel von provisorisch auf definitv
  
Description:
Wenn Anmeldungstyp 1 (definitiv) und Vorversion mit Anmeldungstyp 2 (provisorisch) und Berichtigung durch Zoll nach Abrechnung, dann muss eine neue VVM ausgestellt werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
all of the following conditions are true :
- 'the var_declarationType_definitv_1' is the declarationType of HEADER
- 'the var_declarationType_provisorisch_2' is the declarationTypePreviousVersion of HEADER
- HEADER declaration state is/was 'abgerechnet' or 'korrigiert nach abrechnung' is true
- is correction from declarant of HEADER is false
- ( HEADER create new VAT debit isNull
or HEADER create new VAT debit is false ) ,
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
  
  
 
Rule: R217 Gueltigkeitsperiode Tarifnummer
  
Description:
Wenn die Warennummer <> 9999.9999 (Mustersendung) dann muss das Anmeldedatum der Erstübermitlung der EZA sich innerhalb der Gültigkeitsperiode der Tarifnummer gem. Stammdaten befinden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
all of the following conditions are true :
- "9999.9999" is not the commodityCode of POSITION
- false is checkTN8Gueltigkeit( the commodityCode of POSITION , the acceptanceDate of HEADER ) of REFDATA ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_commodityCode' , the name of this rule ) ;
  
  
 
Rule: R219 MWST-Code 91 nur bei aktivem Lohnveredelungsverkehr
  
Description:
Der Mehrwertsteuer-Code 91 darf nur bei Veranlagungstyp =2 (Veredelungsverkehr), Verkehrsrichtung = 1 (aktiv) und Veredelungstyp = 2 (Lohnv.v) angegeben sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
'the var_VATCode_Lohnveredelung_im_Nichterhebungsverfahren_MWST_91' is the VATCode of POSITION
and any of the following conditions is true :
- 'the var_customsClearanceType_Veredelungsverkehr_2' is not the customsClearanceType of POSITION
- 'the var_direction_activ_1' is not the direction of POSITION
- 'the var_refinementType_Lohnveredelungsverkehr_2' is not the refinementType of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific2' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_direction' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_refinementType' , the name of this rule ) ;
  
  
 
Rule: R220a Zusatzabgaben-Ansatz bei Tabaksteuer oder Pflanzenschutz gesetzt
  
Description:
Zusatzabgaben Ansatz (additionalTax/rate) bei Tabaksteuer oder Pflanzenschutz gesetzt
Status:
deployable
Locale:
en_US
 
definitions
set 'ADDITONALTAX' to an additional tax ;
if
all of the following conditions are true :
- ( 'the var_additionalTaxType_TabakSteuer_450' is the type of ADDITONALTAX
or 'the var_additionalTaxType_790' is the type of ADDITONALTAX )
- the rate of ADDITONALTAX isNull ,
then
'the result' .setPositionError( the positions nr of ADDITONALTAX , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of ADDITONALTAX , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R220b Zusatzabgaben-Ansatz und Richtigcode
  
Description:
Wenn der Zusatzabgaben-Ansatz angemeldet wird, dann muss der Richtigcode Zusatzabgaben-Ansatz gesetzt (=1) sein. Sonst darf der Richtigcode nicht gesetzt werden. Ausgenommen sind Zusatzabgaben typen 450, 465 und 470
Status:
deployable
Locale:
en_US
 
definitions
set 'ADDITONALTAX' to an additional tax
where the type of this additional tax is not one of { 'the var_additionalTaxType_TabakSteuer_450' , 'the var_additionalTaxType__SOTA_Gebuehren_465' , 'the var_additionalTaxTypeTabakpraeventionsfonds_470' } ;
if
any of the following conditions is true :
- ( the rate of ADDITONALTAX isNotNull
and "1" is not the rateConfirmation of ADDITONALTAX )
- ( the rate of ADDITONALTAX isNull
and "1" is the rateConfirmation of ADDITONALTAX ) ,
then
'the result' .setPositionError( the positions nr of ADDITONALTAX , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of ADDITONALTAX , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R222 Gebuehren 991 992 994 950 885 980 958 670 956 nicht erlaubt
  
Description:
Gebührenart 885, 950, 980, 991, 992, 994, 956, 958, oder 670 darf nicht angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'FEE' to a fee ;
if
the type of FEE is one of { 'the var_feeType_TotalBussenverteilerKreisdirektion_950' , 'the var_feeType_885' , 'the var_feeType_Rueckerstattungsgebuehr_980' , 'the var_feeType_BarhinterlagenAbt_991' , 'the var_feeType_BarhinterlagenAusgang_992' , 'the var_feeType_Rueckerstattungen_994' , 'the var_feeType_Artenschutz_Bussen_958' , 'the var_feeType_Tierseuchenges_Bussen_956' , 'the var_feeType_670' }
then
'the result' .setPositionError( the positions nr of FEE , "1" , 'the check_fee' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of FEE , 'the ref_goodsItem_fee' , the name of this rule ) ;
  
  
 
Rule: R223 Zusatzabgaben-Menge bei Automobilsteuer
  
Description:
Bei der R223 Description: Wenn Zusatzabgabenart 660 (Automobilsteuer) ist, dann muss Zusatzabgabenmenge >= statistischer Wert sein. 
(grösser oder gleich stat. Wert)
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITONALTAX' to an additional tax
where the positions nr of this additional tax isNotNull
and the positions nr of this additional tax is the positions nr of POSITION
and the quantity of this additional tax isNotNull ;
if
all of the following conditions are true :
- 'the var_additionalTaxType_Automobilsteuer_660' is the type of ADDITONALTAX
- the quantity of ADDITONALTAX is less than the amount of the statisticalValue of POSITION ,
then
'the result' .setPositionError( the positions nr of ADDITONALTAX , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of ADDITONALTAX , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R224 Nettoveranlagung Bemessungscode
  
Description:
Wenn bei Nettoveranlagung 1 (ja) gewählt ist, dann muss die Bemessungsgrundlage je 100 kg brutto sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
"1" is the netDuty of POSITION
and "1" is not REFDATA .getBemessungsCodeTarif( the commodityCode of POSITION , the originCountry of POSITION , the customsFavourCode of POSITION , the preference of POSITION , the statisticalCode of POSITION )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_net_duty' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_netDuty' , the name of this rule ) ;
  
  
 
Rule: R225 SC4 Zollansatz 0 und Praeferenz
  
Description:
Wenn der Veranlagungstyp 10 (Rückwaren gemaess Zollrecht) oder 11 (Rückwaren gemäss Zoll-/MWST-Recht) 
und der Zollansatz nicht Fr. 0.00 ist, dann darf die Praeferenz nicht gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
all of the following conditions are true :
- the customsClearanceType of POSITION is one of { 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' }
- ZERO is not the rate of POSITION
- 'the var_preference_yes_1' is the preference of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_net_duty' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_rate' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_origin_preference' , the name of this rule ) ;
  
  
 
Rule: R226a Richtigcode bei Unterlagen ohne Praeferenz
  
Description:
Wenn Art-Unterlagencode = 865 (APS), 866 (SoO), 954 (EUR.1), 862 (Ursprungserklärung), 861 (Ursprungszeugnis) oder 3 (Qualitätszeugnis), dann muss die Praeferenz = 1 (ja) sein, ausser der Richtigcode Praeferenz ist gesetzt.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
( all of the following conditions are true :
- 'the var_preference_yes_1' is not the preference of POSITION
- "1" is not the preferenceConfirmation of POSITION , )
and any of the following conditions is true :
- 'the var_documentType_Qualitaetzeugnis_3' is one of the documentTypes of POSITION
- 'the var_documentType_861_Ursprungszeugnis' is one of the documentTypes of POSITION
- 'the var_documentType_862_Ursprungserklaerung' is one of the documentTypes of POSITION
- 'the var_documentType_APSUrsprungszeugnis_865' is one of the documentTypes of POSITION
- 'the var_documentType_Statement_on_Origin_866' is one of the documentTypes of POSITION
- 'the var_documentType_EUR1_Warenverkehrsbescheinigung_954' is one of the documentTypes of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_origin_preference' , the name of this rule ) ;
  
  
 
Rule: R226a Richtigcode bei Unterlagen ohne Praeferenz_old
  
Description:
Wenn Art-Unterlagencode = 865 (APS), 954 (EUR.1), 862 (Ursprungserklärung), 861 (Ursprungszeugnis) oder 3 (Qualitätszeugnis), dann muss die Praeferenz = 1 (ja) sein, ausser der Richtigcode Praeferenz ist gesetzt.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
( all of the following conditions are true :
- 'the var_preference_yes_1' is not the preference of POSITION
- "1" is not the preferenceConfirmation of POSITION , )
and any of the following conditions is true :
- 'the var_documentType_Qualitaetzeugnis_3' is one of the documentTypes of POSITION
- 'the var_documentType_861_Ursprungszeugnis' is one of the documentTypes of POSITION
- 'the var_documentType_862_Ursprungserklaerung' is one of the documentTypes of POSITION
- 'the var_documentType_APSUrsprungszeugnis_865' is one of the documentTypes of POSITION
- 'the var_documentType_EUR1_Warenverkehrsbescheinigung_954' is one of the documentTypes of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_origin_preference' , the name of this rule ) ;
  
  
 
Rule: R226b Richtigcode ohne Praeferenz ohne Unterlagen
  
Description:
Wenn Präferenz = 0, null (nicht gesetzt) und Richtigcode Präferenz = 1 (ja), dann müssen Unterlagen vorgelegt werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
all of the following conditions are true :
- 'the var_preference_yes_1' is not the preference of POSITION
- ( the preferenceConfirmation of POSITION isNotNull
and "1" is the preferenceConfirmation of POSITION )
- 0 is the number of elements in the documentTypes of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_producedDocument' , the name of this rule ) ;
  
  
 
Rule: R227 Vorgelegte Unterlagen vollstaendig
  
Description:
Wenn Art-Unterlagencode = 865 (APS), 866 (SoO), 954 (EUR.1), 862 (Ursprungserklärung), 861 (Ursprungszeugnis), 853 (tieraerztliches Gesundheitszeugnis) oder 3 (Qualitätszeugnis), dann müssen Datum und Referenz der Dokumente angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'PRODUCEDDOCUMENTS' to a produced documents ;
if
( any of the following conditions is true :
- 'the var_documentType_Qualitaetzeugnis_3' is the documentType of PRODUCEDDOCUMENTS
- 'the var_documentType_861_Ursprungszeugnis' is the documentType of PRODUCEDDOCUMENTS
- 'the var_documentType_862_Ursprungserklaerung' is the documentType of PRODUCEDDOCUMENTS
- 'the var_documentType_APSUrsprungszeugnis_865' is the documentType of PRODUCEDDOCUMENTS
- 'the var_documentType_Statement_on_Origin_866' is the documentType of PRODUCEDDOCUMENTS
- 'the var_documentType_EUR1_Warenverkehrsbescheinigung_954' is the documentType of PRODUCEDDOCUMENTS
- 'the var_documentType_tieraerztliches_Gesundheitszeugnis_853' is the documentType of PRODUCEDDOCUMENTS , )
and ( any of the following conditions is true :
- the issueDate of PRODUCEDDOCUMENTS isNull
- the documentReferenceNumber of PRODUCEDDOCUMENTS isNull
- 'the helper_def_empty_String' is the documentReferenceNumber of PRODUCEDDOCUMENTS
- 'the helper_def_Space_String' is the documentReferenceNumber of PRODUCEDDOCUMENTS , )
then
'the result' .setPositionError( the positions nr of PRODUCEDDOCUMENTS , "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PRODUCEDDOCUMENTS , 'the ref_goodsItem_producedDocument' , the name of this rule ) ;
  
  
 
Rule: R227 Vorgelegte Unterlagen vollstaendig_old
  
Description:
Wenn Art-Unterlagencode = 865 (APS), 954 (EUR.1), 862 (Ursprungserklärung), 861 (Ursprungszeugnis), 853 (tieraerztliches Gesundheitszeugnis) oder 3 (Qualitätszeugnis), dann müssen Datum und Referenz der Dokumente angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'PRODUCEDDOCUMENTS' to a produced documents ;
if
( any of the following conditions is true :
- 'the var_documentType_Qualitaetzeugnis_3' is the documentType of PRODUCEDDOCUMENTS
- 'the var_documentType_861_Ursprungszeugnis' is the documentType of PRODUCEDDOCUMENTS
- 'the var_documentType_862_Ursprungserklaerung' is the documentType of PRODUCEDDOCUMENTS
- 'the var_documentType_APSUrsprungszeugnis_865' is the documentType of PRODUCEDDOCUMENTS
- 'the var_documentType_EUR1_Warenverkehrsbescheinigung_954' is the documentType of PRODUCEDDOCUMENTS
- 'the var_documentType_tieraerztliches_Gesundheitszeugnis_853' is the documentType of PRODUCEDDOCUMENTS , )
and ( any of the following conditions is true :
- the issueDate of PRODUCEDDOCUMENTS isNull
- the documentReferenceNumber of PRODUCEDDOCUMENTS isNull
- 'the helper_def_empty_String' is the documentReferenceNumber of PRODUCEDDOCUMENTS
- 'the helper_def_Space_String' is the documentReferenceNumber of PRODUCEDDOCUMENTS , )
then
'the result' .setPositionError( the positions nr of PRODUCEDDOCUMENTS , "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PRODUCEDDOCUMENTS , 'the ref_goodsItem_producedDocument' , the name of this rule ) ;
  
  
 
Rule: R228 Mineraloelsteuer Bewilligung Schluessel
  
Description:
Angaben bei Bewilligungen fehlen / sind ungültig (Bewilligungstyp 8 und Stellencode 96) im Rahmen der Verpflichtung Minöst (beso) in Verbindung mit Lagercode 1, ZB-Typ 4 und Zusatzabgabenschlüssel.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
set 'REFDATA' to a ref data ;
if
( all of the following conditions are true :
- "1" is the storageType of POSITION
- "4" is REFDATA .getZBTypCode( the commodityCode of POSITION )
- isBewilligungsTypAndNumberAndStellenCodeInList( "8" , null string , "96" ) of POSITION is false , )
and the key of ADDITIONALTAX is one of { "800" , "880" , "881" , "882" , "883" , "884" , "885" , "886" , "887" , "888" , "891" , "892" , "895" , "911" , "912" , "915" , "916" , "917" , "918" , "980" , "981" , "982" }
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R229 Meldestelle nur bei Veredelungsverkehr
  
Description:
Wenn Veranlagungstyp = 2 und Verfahrenstyp 1 (ordentliches Verfahren), dann muss Feld Meldestelle eine gültige Zollstellennummer gem. Stammdaten enthalten. Sonst darf die Meldestelle nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
( 'the var_customsClearanceType_Veredelungsverkehr_2' is the customsClearanceType of POSITION
and ( the processType of POSITION isNotNull
and 'the var_processType_Ordentlich_1' is the processType of POSITION )
and any of the following conditions is true :
- ( 0 is the number of elements in the notificationCodes of POSITION )
- ( ( plausi helpers.containsAll( the notificationCodes of POSITION , the ref meldestellencodes of REFDATA ) is false )
and 0 is not the number of elements in the notificationCodes of POSITION ) , )
or ( the number of elements in the notificationCodes of POSITION is at least 1
and any of the following conditions is true :
- 'the var_processType_Ordentlich_1' is not the processType of POSITION
- 'the var_customsClearanceType_Veredelungsverkehr_2' is not the customsClearanceType of POSITION , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific2' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_processType' , the name of this rule ) ;
  
  
 
Rule: R230 Zollbeguenstigung nicht moeglich
  
Description:
Wenn Veranlagungstyp nicht gleich  10 oder 11 und Ursprungsland enthalten in (CH, FL, LI) dann darf keine Präferenz angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
( all of the following conditions are true :
- 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' is not the customsClearanceType of POSITION
- 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' is not the customsClearanceType of POSITION , )
and the originCountry of POSITION is one of { "CH" , "FL" , "LI" }
and 'the var_preference_yes_1' is the preference of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_detail_cross' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_origin_preference' , the name of this rule ) ;
  
  
 
Rule: R235 Verkehrszweig
  
Description:
Wenn Veranlagungsart Post = standard (3), dann muss der Verkehrszweig = Postverkehr (5) sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
'the var_processType_Besonders_3' is the procedureType of HEADER
and 'the var_transportMode_Postverkehr_5' is not the transportMode of HEADER
then
'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_transportMeans_mode' , the name of this rule ) ;
  
  
 
Rule: R236 Vorpapier Art = IPV
  
Description:
Wenn das Feld Vorpapier Art = IPV (Import Postverkehr) ist, dann muss die Spediteurnummer (8200, 5906, 9007, 9013, 7081, 7082, 9405, 9406, 9407, 1000779, 1000780, 1000781, 1000782, 1000871, 7083, 8199, 9408, 1000557, 1000334, 9411, 9412, 8197, 8198 oder 1000711) sein.Wenn die Spediteurnummer (8200, 5906, 9007, 9013, 7081, 7082, 9405, 9406, 9407, 9408, 1000779, 1000780, 1000781, 1000782, 1000871, 7083, 8199, 1000557, 1000334, 9411, 9412, 8197, 8198 oder 1000711) angemeldet wird, dann muss das Feld Vorpapier Art = IPV (Import Postverkehr) sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
( 'the var_processType_Besonders_3' is the procedureType of HEADER
and "IPV" is one of ( the previousDocumentsType_Lists of HEADER )
and the declarantTraderIdentificationNumber of HEADER is not one of { "5906" , "7083" , "7081" , "8199" , "7082" , "8200" , "9007" , "9013" , "9405" , "9406" , "9407" , "9408" , "1000557" , "1000711" , "1000779" , "1000780" , "1000781" , "1000782" , "1000871" , "1000334" , "9411" , "9412" , "8197" , "8198" } )
or ( 'the var_processType_Besonders_3' is the procedureType of HEADER
and "IPV" is not one of ( the previousDocumentsType_Lists of HEADER )
and the declarantTraderIdentificationNumber of HEADER is one of { "5906" , "7083" , "7081" , "8199" , "7082" , "8200" , "9007" , "9013" , "9405" , "9406" , "9407" , "9408" , "1000557" , "1000711" , "1000779" , "1000780" , "1000781" , "1000782" , "1000871" , "1000334" , "9411" , "9412" , "8197" , "8198" } )
then
'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_previousDocument_type' , the name of this rule ) ;
  
  
 
Rule: R237 Verzollungart in Stammdaten
  
Description:
Gültige Veranlagungsart Post gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the procedureType of HEADER isNotNull
and the procedureType of HEADER is not one of the verzollungs arten codes of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_postalShipment_type' , the name of this rule ) ;
  
  
 
Rule: R241 MwSt-Konto in Vorversionen (Konzessionaer)
  
Description:
Wenn Berichtigungscode 2 oder 0 (Berichtigung oder Annulierung), und das MwSt-Konto ist von einem Konzessionär 
dann muss in der Vorversion auch das MwSt-Konto von einem Konzessionär sein oder umgekehrt.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
'the var_procedureType_standard_3' is the procedureType of HEADER
and the VATAccountPreviousVersion of HEADER isNotNull
and isAccountKonzessionaer( the VATAccount of HEADER ) of REFDATA is not isAccountKonzessionaer( the VATAccountPreviousVersion of HEADER ) of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_authorisation' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_VATAccount' , the name of this rule ) ;
  
  
 
Rule: R242 Zoll-Konto in Vorversionen (Konzessionaer)
  
Description:
Wenn Berichtigungscode 2 oder 0 (Berichtigung oder Annulierung), und das Zoll-Konto ist von keinem Konzessionär 
dann muss in der Vorversion auch das Zoll-Konto von keinem Konzessionär sein oder umgekehrt.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
'the var_procedureType_standard_3' is the procedureType of HEADER
and the customsAccountPreviousVersion of HEADER isNotNull
and isAccountKonzessionaer( the customsAccount of HEADER ) of REFDATA is not isAccountKonzessionaer( the customsAccountPreviousVersion of HEADER ) of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_authorisation' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_customsAccount' , the name of this rule ) ;
  
  
 
Rule: R243a MwSt-Konto nur dem Spediteur zugeordnet
  
Description:
Das MwSt.Konzessionärskonto darf genau nur dem angemeldeten Spediteur zugewiesen sein und muss den Status aktiv haben.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
'the var_procedureType_standard_3' is the procedureType of HEADER
and isKonzessionaerAccountOnlyRelatedToSpediteur( the VATAccount of HEADER ) of REFDATA is false
then
'the result' .setHeaderError( "1" , 'the check_authorisation' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_VATAccount' , the name of this rule ) ;
  
  
 
Rule: R243b Zoll-Konto nur dem Spediteur zugeordnet
  
Description:
Das Zoll-Konzessionärskonto darf genau nur dem angemeldeten Spediteur zugewiesen sein und muss den Status aktiv haben.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
'the var_procedureType_standard_3' is the procedureType of HEADER
and isKonzessionaerAccountOnlyRelatedToSpediteur( the customsAccount of HEADER ) of REFDATA is false
then
'the result' .setHeaderError( "1" , 'the check_authorisation' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_customsAccount' , the name of this rule ) ;
  
  
 
Rule: R244a MwSt Konzessionaerskonto aktiv
  
Description:
Wenn das MwSt.-Konzessionärskonto nicht aktiv ist, dann darf dieses für Erstübermittlungen nicht benutzt werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
'the var_procedureType_standard_3' is the procedureType of HEADER
and isKonzessionaerAccountActive( the VATAccount of HEADER ) of REFDATA is false
and 'the var_correctionCode_Erstuebermittlung_1' is the correctionCode of HEADER
then
'the result' .setHeaderError( "1" , 'the check_authorisation' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_VATAccount' , the name of this rule ) ;
  
  
 
Rule: R244b Zoll Konzessionaerskonto aktiv
  
Description:
Wenn das Zoll-Konzessionärskonto nicht aktiv ist, dann darf dieses für Erstübermittlungen nicht benutzt werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
'the var_procedureType_standard_3' is the procedureType of HEADER
and isKonzessionaerAccountActive( the customsAccount of HEADER ) of REFDATA is false
and 'the var_correctionCode_Erstuebermittlung_1' is the correctionCode of HEADER
then
'the result' .setHeaderError( "1" , 'the check_authorisation' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_customsAccount' , the name of this rule ) ;
  
  
 
Rule: R245 Vorpapier Art = IPV nur einmal
  
Description:
Vorpapier Art = ipv (Import Postverkehr) darf nur einmal pro Einfuhrzollanmeldung verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
false is plausi helpers.containsAtMostOnce( the previousDocumentsType_Lists of HEADER , "IPV" )
then
'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_previousDocument_type' , the name of this rule ) ;
  
  
 
Rule: R246 Barzahler
  
Description:
WENN die Veranlagungsart Post = standard (3) oder der Veranlagungsort =3 (nachträgliche Erfassung ED) ist, DANN darf die Konto Nr. 0 (Barzahler) nicht angemeldet werden (weder im Feld Konto Zoll noch im Feld Konto MWST)
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
( 'the var_procedureType_standard_3' is the procedureType of HEADER
and any of the following conditions is true :
- "0" is the customsAccount of HEADER
- "0" is the VATAccount of HEADER , )
or ( 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is the clearancelocation of HEADER
and any of the following conditions is true :
- "0" is the customsAccount of HEADER
- "0" is the VATAccount of HEADER , )
then
'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_VATAccount' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_customsAccount' , the name of this rule ) ;
  
  
 
Rule: R247 MWST-Code 92
  
Description:
Der Mehrwertsteuer-Code 92 darf nur bei Veranlagungstyp = 2 (Veredelungsverkehr), Verkehrsrichtung = 2 (passiv), Verfahrenstyp = 1 (ordentliches Verfahren), Abrechnungstyp = 1 (Nichterhebung), Zollansatz = 0.0SFr und Handelsware = 2 (nicht Handelsware).
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
'the var_VATCode_Nachtraegliche_Steuerveranlagung_92' is the VATCode of POSITION
and any of the following conditions is true :
- 'the var_customsClearanceType_Veredelungsverkehr_2' is not the customsClearanceType of POSITION
- 'the var_direction_passiv_2' is not the direction of POSITION
- ZERO is not the rate of POSITION
- 'the var_processType_Ordentlich_1' is not the processType of POSITION
- 'the var_commercialGood_Nichthandelsware_2' is not the commercialGood of POSITION
- 'the var_billingType_Nichterhebung_1' is not the billingType of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific2' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_direction' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_processType' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_rate' , the name of this rule ) ;
  
  
 
Rule: R249a MWST-Wert Tabak
  
Description:
Wenn die Tarifnummer 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.1100, 2403.1900, 2403.9910 oder 2403.9990 und der Statistische Schlüssel = 911 ist oder die Tarifnumer 3824.9999 und der Statistische Schlüssel 912 ist, dann darf der MWST-Wert nicht grösser als Fr. 1000.00 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
( ( 911 is the statisticalCode of POSITION
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" } )
or ( 912 is the statisticalCode of POSITION
and "3824.9999" is the commodityCode of POSITION ) )
and the amount of the VATValue of POSITION is more than 1000
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_VATValue' , the name of this rule ) ;
  
  
 
Rule: R249a MWST-Wert Tabak_old
  
Description:
Wenn die Tarifnummer 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.1100, 2403.1900, 2403.9910 oder 2403.9990 und der Statistische Schlüssel = 911 ist oder die Tarifnumer 3824.9098 und der Statistische Schlüssel 912 ist, dann darf der MWST-Wert nicht grösser als Fr. 1000.00 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
( ( 911 is the statisticalCode of POSITION
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" } )
or ( 912 is the statisticalCode of POSITION
and "3824.9098" is the commodityCode of POSITION ) )
and the amount of the VATValue of POSITION is more than 1000
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_VATValue' , the name of this rule ) ;
  
  
 
Rule: R249b Rohmasse Tabak
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.1100, 2403.1900, 2403.9910, 2403.9990 und der Statistische Schlüssel = 911 ist oder die Tarifnummer = 3824.9999 und der Statistische Schlüssel = 912, dann darf die Rohmasse nicht grösser als 10 kg sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
( ( 911 is the statisticalCode of POSITION
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" } )
or ( 912 is the statisticalCode of POSITION
and "3824.9999" is the commodityCode of POSITION ) )
and the grossMass of POSITION is more than 10
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_grossMass' , the name of this rule ) ;
  
  
 
Rule: R249b Rohmasse Tabak_old
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.1100, 2403.1900, 2403.9910, 2403.9990 und der Statistische Schlüssel = 911 ist oder die Tarifnummer = 3824.9098 und der Statistische Schlüssel = 912, dann darf die Rohmasse nicht grösser als 10 kg sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
( ( 911 is the statisticalCode of POSITION
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" } )
or ( 912 is the statisticalCode of POSITION
and "3824.9098" is the commodityCode of POSITION ) )
and the grossMass of POSITION is more than 10
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_grossMass' , the name of this rule ) ;
  
  
 
Rule: R249c Revers Tabak Stat Schlüssel = 911
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.1100, 2403.1900, 2403.9910 und 2403.9990 und der Statistische Schlüssel = 911 ist oder die Tarifnummer = 3824.9999 und der Statistische Schlüssel = 912 ist, dann darf der Bewilligungstyp 4 / Bewilligungsstelle 21 nicht angemeldet werden (Revers Tabak).
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit is the positions nr of POSITION ;
if
( 'the var_permitType_ReversTabak_4' is the permitType of PERMIT
and 'the var_permitAuthority_SektionTabakBierbesteuerung_21' is the permitAuthority of PERMIT )
and ( ( 911 is the statisticalCode of POSITION
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" } )
or ( 912 is the statisticalCode of POSITION
and "3824.9999" is the commodityCode of POSITION ) )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R249c Revers Tabak Stat Schlüssel = 911_old
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.1100, 2403.1900, 2403.9910 und 2403.9990 und der Statistische Schlüssel = 911 ist oder die Tarifnummer = 3824.9098 und der Statistische Schlüssel = 912 ist, dann darf der Bewilligungstyp 4 / Bewilligungsstelle 21 nicht angemeldet werden (Revers Tabak).
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit is the positions nr of POSITION ;
if
( 'the var_permitType_ReversTabak_4' is the permitType of PERMIT
and 'the var_permitAuthority_SektionTabakBierbesteuerung_21' is the permitAuthority of PERMIT )
and ( ( 911 is the statisticalCode of POSITION
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" } )
or ( 912 is the statisticalCode of POSITION
and "3824.9098" is the commodityCode of POSITION ) )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R249d Zollansatz Tabak
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000,  2403.1100, 2403.1900, 2403.9910 oder 2403.9990 und der Statistische Schlüssel = 911 ist oder die Tarifnummer = 3824.9999 und der Statistische Schlüssel = 912 ist, dann muss der Zollansatz Fr. 0.00 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
( the rate of POSITION isNull
or ZERO is not the rate of POSITION )
and ( ( 911 is the statisticalCode of POSITION
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" } )
or ( 912 is the statisticalCode of POSITION
and "3824.9999" is the commodityCode of POSITION ) )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_rate' , the name of this rule ) ;
  
  
 
Rule: R249d Zollansatz Tabak_old
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000,  2403.1100, 2403.1900, 2403.9910 oder 2403.9990 und der Statistische Schlüssel = 911 ist oder die Tarifnummer = 3824.9098 und der Statistische Schlüssel = 912 ist, dann muss der Zollansatz Fr. 0.00 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
( the rate of POSITION isNull
or ZERO is not the rate of POSITION )
and ( ( 911 is the statisticalCode of POSITION
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" } )
or ( 912 is the statisticalCode of POSITION
and "3824.9098" is the commodityCode of POSITION ) )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_rate' , the name of this rule ) ;
  
  
 
Rule: R249e Veranlagungstyp Tabak
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000,  2403.1100, 2403.1900, 2403.9910 oder 2403.9990 und der Statistische Schlüssel = 911 ist, dann muss der Veranlagungstyp 6 (Tabak) sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position
where 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of HEADER
and 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of HEADER ;
if
'the var_customsClearanceType_Tabak_6' is not the customsClearanceType of POSITION
and ( 911 is the statisticalCode of POSITION
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" } )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R249e Veranlagungstyp Tabak_old
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000,  2403.1100, 2403.1900, 2403.9910 oder 2403.9990 und der Statistische Schlüssel = 911 ist, dann muss der Veranlagungstyp 6 (Tabak) sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position
where 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of HEADER
and 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of HEADER ;
if
911 is the statisticalCode of POSITION
and 'the var_customsClearanceType_Tabak_6' is not the customsClearanceType of POSITION
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" }
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R250a Zusatzabgabe Zigarren
  
Description:
Wenn die Tarifnummer = 2402.1000 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 011 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
911 is the statisticalCode of POSITION
and "2402.1000" is the commodityCode of POSITION
and POSITION has any additionalTaxes is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R250b Zusatzabgabe Zigarren
  
Description:
Wenn die Tarifnummer = 2402.1000 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 011 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
911 is the statisticalCode of POSITION
and "2402.1000" is the commodityCode of POSITION
and any of the following conditions is true :
- 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADDITIONALTAX
- 'the var_addtionalTaxKey_011' is not the key of ADDITIONALTAX ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R251a Zusatzabgabe schwere Zigaretten
  
Description:
Wenn die Tarifnummer = 2402.2010 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 012 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
911 is the statisticalCode of POSITION
and "2402.2010" is the commodityCode of POSITION
and POSITION has any additionalTaxes is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R251b Zusatzabgabe schwere Zigaretten
  
Description:
Wenn die Tarifnummer = 2402.2010 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 012 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
911 is the statisticalCode of POSITION
and "2402.2010" is the commodityCode of POSITION
and any of the following conditions is true :
- 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADDITIONALTAX
- 'the var_addtionalTaxKey_012' is not the key of ADDITIONALTAX ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R252a Zusatzabgabe leichte Zigaretten
  
Description:
Wenn die Tarifnummer = 2402.2020 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 013 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
911 is the statisticalCode of POSITION
and "2402.2020" is the commodityCode of POSITION
and POSITION has any additionalTaxes is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R252b Zusatzabgabe leichte Zigaretten
  
Description:
Wenn die Tarifnummer = 2402.2020 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 013 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
911 is the statisticalCode of POSITION
and "2402.2020" is the commodityCode of POSITION
and any of the following conditions is true :
- 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADDITIONALTAX
- 'the var_addtionalTaxKey_013' is not the key of ADDITIONALTAX ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R253a Zusatzabgabe andere Tabakwaren
  
Description:
Wenn die Tarifnummer = 2402.9000 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 014 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
911 is the statisticalCode of POSITION
and "2402.9000" is the commodityCode of POSITION
and POSITION has any additionalTaxes is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R253b Zusatzabgabe andere Tabakwaren
  
Description:
Wenn die Tarifnummer = 2402.9000 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 014 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
911 is the statisticalCode of POSITION
and "2402.9000" is the commodityCode of POSITION
and any of the following conditions is true :
- 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADDITIONALTAX
- 'the var_addtionalTaxKey_014' is not the key of ADDITIONALTAX ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R254a Zusatzabgabe anderer Tabak
  
Description:
Wenn die Tarifnummer = 2403.1900 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 015 oder 017 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
911 is the statisticalCode of POSITION
and "2403.1900" is the commodityCode of POSITION
and POSITION has any additionalTaxes is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R254b Zusatzabgabe anderer Tabak
  
Description:
Wenn die Tarifnummer = 2403.1900 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 015 oder 017 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
911 is the statisticalCode of POSITION
and "2403.1900" is the commodityCode of POSITION
and any of the following conditions is true :
- 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADDITIONALTAX
- the key of ADDITIONALTAX is not one of { 'the var_addtionalTaxKey_017' , 'the var_addtionalTaxKey_015' } ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R254c Zusatzabgabe anderer Tabak Schluessel 017
  
Description:
Wenn die Tarifnummer = 2403.1100 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 017 ist.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
911 is the statisticalCode of POSITION
and "2403.1100" is the commodityCode of POSITION
and any of the following conditions is true :
- 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADDITIONALTAX
- 'the var_addtionalTaxKey_017' is not the key of ADDITIONALTAX ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R254d Zusatzabgabe anderer Tabak 36288
  
Description:
Wenn die Tarifnummer = 2403.9990 und der Statistische Schlüssel  = 911 is, dann muss die Zusatzabgabe Art 450 und der Schlüssel 015, 016 oder 017 sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
"2403.9990" is the commodityCode of POSITION
and 911 is the statisticalCode of POSITION
and any of the following conditions is true :
- 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADDITIONALTAX
- the key of ADDITIONALTAX is not one of { 'the var_addtionalTaxKey_015' , 'the var_addtionalTaxKey_016' , 'the var_addtionalTaxKey_017' } ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R255a Zusatzabgabe Kau- Rollen- und Schnupftabak
  
Description:
Wenn die Tarifnummer = 2403.9910 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 016 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
911 is the statisticalCode of POSITION
and "2403.9910" is the commodityCode of POSITION
and POSITION has any additionalTaxes is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R255b Zusatzabgabe Kau- Rollen- und Schnupftabak
  
Description:
Wenn die Tarifnummer = 2403.9910 und der Statistische Schlüssel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 016 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
911 is the statisticalCode of POSITION
and "2403.9910" is the commodityCode of POSITION
and any of the following conditions is true :
- 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADDITIONALTAX
- 'the var_addtionalTaxKey_016' is not the key of ADDITIONALTAX ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R256a Revers Tabak Bewilligungstyp=4 und Bewilligungsstellencode=21
  
Description:
Wenn die Tarifnummer 2402.1000 / 2402.2010 / 2402.2020 / 2402.9000 /  2403.1100 / 2403.1900 / 2403.9990 oder 2403.9910 ist und der Stat.Schlüssel ist 999, dann muss der Bewilligungstyp 4 / Bewilligungsstelle 21 angemeldet werden (Revers Tabak)
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
if
( all of the following conditions are true :
- 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of HEADER
- 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of HEADER , )
and 999 is the statisticalCode of POSITION
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.9910" , "2403.1100" , "2403.1900" , "2403.9990" }
and ( any of the following conditions is true :
- POSITION is has any bewilligungen is false
- isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_ReversTabak_4' , null string , 'the var_permitAuthority_SektionTabakBierbesteuerung_21' ) of POSITION is false , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R256a Revers Tabak Bewilligungstyp=4 und Bewilligungsstellencode=21_old
  
Description:
Wenn die Tarifnummer 2402.1000 / 2402.2010 / 2402.2020 / 2402.9000 /  2403.1100 / 2403.1900 / 2403.9990 oder 2403.9910 ist und der Stat.Schlüssel ist 999, dann muss der Bewilligungstyp 4 / Bewilligungsstelle 21 angemeldet werden (Revers Tabak)
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
if
( all of the following conditions are true :
- 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of HEADER
- 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of HEADER , )
and 999 is the statisticalCode of POSITION
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1000" , "2403.9910" , "2403.1100" , "2403.1900" , "2403.9990" }
and ( any of the following conditions is true :
- POSITION is has any bewilligungen is false
- isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_ReversTabak_4' , null string , 'the var_permitAuthority_SektionTabakBierbesteuerung_21' ) of POSITION is false , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R256b Revers Tabak Typ und Stellencode Prüfung 1
  
Description:
Wenn die Tarifnummer 2401.1010 / 2401.2010 / 2401.3010 ist und der Stat.Schlüssel ist 11, 12 oder 13 und die Eigenmasse ist grösser als 2.5 kg, dann muss der Bewilligungstyp 4 / Bewilligungsstelle 21 angemeldet werden (Revers Tabak)
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position
where 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of HEADER
and 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of HEADER ;
if
the statisticalCode of POSITION is one of { 11 , 12 , 13 }
and the commodityCode of POSITION is one of { "2401.1010" , "2401.2010" , "2401.3010" }
and the netMass of POSITION isNotNull
and the netMass of POSITION is more than 2.5
and ( any of the following conditions is true :
- POSITION is has any bewilligungen is false
- isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_ReversTabak_4' , null string , 'the var_permitAuthority_SektionTabakBierbesteuerung_21' ) of POSITION is false , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R256c Revers Tabak Typ und Stellencode Prüfung 2
  
Description:
Wenn die Tarifnummer 2403.9100 oder 2403.9940 ist und die Eigenmasse ist grösser als 5 kg, dann muss der Bewilligungstyp 4 / Bewilligungsstelle 21 angemeldet werden (Revers Tabak)
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position
where 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of HEADER
and 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of HEADER ;
if
the commodityCode of POSITION is one of { "2403.9100" , "2403.9940" }
and the netMass of POSITION isNotNull
and the netMass of POSITION is more than 5
and ( any of the following conditions is true :
- false is POSITION is has any bewilligungen
- isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_ReversTabak_4' , null string , 'the var_permitAuthority_SektionTabakBierbesteuerung_21' ) of POSITION is false , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R256d Revers Tabak Typ und Stellencode Prüfung 3
  
Description:
Wenn die Tarifnummer 3824.9999 ist und der Stat.Schlüssel ist 913 dann muss der Bewilligungstyp 4 / Bewilligungsstelle 21 angemeldet werden (Revers Tabak)
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position
where 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of HEADER
and 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of HEADER ;
if
913 is the statisticalCode of POSITION
and "3824.9999" is the commodityCode of POSITION
and ( any of the following conditions is true :
- POSITION is has any bewilligungen is false
- isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_ReversTabak_4' , null string , 'the var_permitAuthority_SektionTabakBierbesteuerung_21' ) of POSITION is false , )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R257 Revers Tabak Stat Schlüssel = 911 Zusatzinformationen
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.9910, 2403.1100, 2403.1900, 2403.9990 oder 3824.9999 und der Statistische Schlüssel = 911 oder 912  ist, dann dürfen keine Zusatzinformationen vorhanden sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
the statisticalCode of POSITION is one of { 911 , 912 }
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" , "3824.9999" }
and the number of elements in the waren detail namens of POSITION is more than 0
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R257 Revers Tabak Stat Schlüssel = 911 Zusatzinformationen_old
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.9910, 2403.1100, 2403.1900, 2403.9990 oder 3824.9098 und der Statistische Schlüssel = 911 oder 912  ist, dann dürfen keine Zusatzinformationen vorhanden sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
the statisticalCode of POSITION is one of { 911 , 912 }
and the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" , "3824.9098" }
and the number of elements in the waren detail namens of POSITION is more than 0
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R258 Zusatzabgabenart GTU CITES Fauna
  
Description:
Die Zusatzabgabenarten (290, 292) dürfen bei einer Position nicht zusammen angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
'the var_additionalTaxType_Grenztieraerztliche_Untersuchungsgebuehren_290' is one of the additionalTaxTypes of POSITION
and 'the var_addtionalTaxType_CITES_Fauna_Gebuehr_292' is one of the additionalTaxTypes of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R259 Zusatzabgabenart CO2-Abgaben
  
Description:
Die Zusatzabgabenart 700 darf nicht zusammen mit den Zusatzabgabenarten 740, 741, 742 oder 743 bei einer Position angemeldet werden
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADD_TAX' to an additional tax
where the positions nr of POSITION is the positions nr of this additional tax ;
if
'the var_addtionalTaxType_Lenkungsabgabe_VOC_700' is one of the additionalTaxTypes of POSITION
and any of the following conditions is true :
- 'the var_additionalTaxType_CO2_Abgabe_Heizoel_740' is one of the additionalTaxTypes of POSITION
- 'the var_additionalTaxType_CO2_Abgabe_Erdgas_741' is one of the additionalTaxTypes of POSITION
- 'the var_additionalTaxType_CO2_Abgabe_Andere_MineralOele_742' is one of the additionalTaxTypes of POSITION
- 'the var_additionalTaxType_CO2_Abgabe_KohlePetrolkoks_743' is one of the additionalTaxTypes of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R260 Verzollungsart Veranlagungsort
  
Description:
Wenn die Veranlagungsart Post = standard (3) ist dann muss der Veranlagungsort = Domizil (2) sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
'the var_procedureType_standard_3' is the procedureType of HEADER
and 'the var_clearanceLocation_Domizil_2' is not the clearancelocation of HEADER
then
'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_clearanceLocation' , the name of this rule ) ;
  
  
 
Rule: R261 Handelsware Veredlungsverkehr
  
Description:
Wenn der Veranlagungstyp = 2 (Veredelungsverkehr), die Verkehrsrichtung = 2 (passiv), der Verfahrenstyp = 2 (vereinfacht) und es keine Ausbesserung ist, dann muss Handelsware = 1 (Handelsware) sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_customsClearanceType_Veredelungsverkehr_2' is the customsClearanceType of this position
and 'the var_direction_passiv_2' is the direction of this position
and 'the var_processType_Vereinfacht_2' is the processType of this position
and 'the var_repair_no' is the repair of this position ;
if
'the var_commercialGood_Handelsware_1' is not the commercialGood of POSITION
or 'the var_billingType_Nichterhebung_1' is not the billingType of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_direction' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_processType' , the name of this rule ) ;
  
  
 
Rule: R262 Zusatzabgabe Biersteuer
  
Description:
Wenn Zusatzabgaben vom Typ 480 (Biersteuer) definiert wurden muss der Wert der Zusatzabgabenmenge 1% der Zusatzmenge entsprechen.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax isNotNull
and the positions nr of this additional tax is the positions nr of POSITION
and the additionalUnit of POSITION isNotNull ;
if
POSITION has any additionalTaxes is true
and 'the var_additionalTaxType_Biersteuer_480' is one of the additionalTaxTypes of POSITION
and compareEachAdditionalTaxQuantityWithAdditionalUnit( 'the var_additionalTaxType_Biersteuer_480' , 3 , 1 ) of POSITION is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R263 Bewilligung 9 96
  
Description:
WENN der Stat. Schlüssel gemäss Stammdaten als Biotreibstoff gekennzeichnet ist DANN muss der Bew.typ 9, der Bew.stellencode 96 UND die Bew.nummer gesetzt sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
isBiotreibstoff( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA is true
and isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_NachweisBioTreibstoff_9' , null string , 'the var_permitAuthority_EZVMinOest_96' ) of POSITION is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R264 Weinhandelskommission
  
Description:
Wenn der Meldesstellencode AL für die Kombination von Tarifnummer und Schluesselnummer in den Stammdaten vorhanden ist und der Verkehrszweig != 5 und die Handelsware = 1, dann muss der Versendername und die Versenderstadt vorhanden sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
if
all of the following conditions are true :
- "AL" is one of the meldestellencodes for tarif nr schluessel nrs of POSITION
- 'the var_transportMode_Postverkehr_5' is not the transportMode of HEADER
- 'the var_commercialGood_Handelsware_1' is the commercialGood of POSITION
- ( the consignorName of HEADER isNull
or 'the helper_def_empty_String' is the consignorName of HEADER
or the consignorCity of HEADER isNull
or 'the helper_def_empty_String' is the consignorCity of HEADER ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_consignor_name' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_consignor_city' , the name of this rule ) ;
  
  
 
Rule: R265 Zusatzmenge Bemessungscode Mittelwert 61
  
Description:
Wenn der Bemessungscode 61 (Mittelwert je Zusatzmenge) und der Richtigcode der Zusatzmenge = (0 oder null) und die Zusatzmenge = (0 oder null) ist dann ist das ein Fehler.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where this position is zusatz abgabe ac9 is not true ;
set 'REFDATA' to a ref data ;
if
all of the following conditions are true :
- "61" is getBemessungsCodeFromMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA
- ( the additonalUnitConfirmation of POSITION isNull
or "0" is the additonalUnitConfirmation of POSITION )
- ( the additionalUnit of POSITION isNull
or 0 is the additionalUnit of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalUnit' , the name of this rule ) ;
  
  
 
Rule: R266 Eigenmasse Bemessungscode Mittelwert 51
  
Description:
Wenn der Bemessungscode 51 (Mittelwert je Eigenmasse) und der Richtigcode der Eigenmasse = (0 oder null) und die Eigenmasse = (0 oder null) dann ist das ein Fehler.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where this position is zusatz abgabe ac9 is not true
and the commodityCode of this position isNotNull
and the statisticalCode of this position isNotNull ;
set 'REFDATA' to a ref data ;
if
all of the following conditions are true :
- "51" is getBemessungsCodeFromMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA
- ( the netMassConfirmation of POSITION isNull
or "0" is the netMassConfirmation of POSITION )
- ( the netMass of POSITION isNull
or 0 is the netMass of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_netMass' , the name of this rule ) ;
  
  
 
Rule: R267 Rohmasse Bemessungsgrundlagencode 1
  
Description:
Wenn der Bemessungsgrundlagencode = 1 (Zollabgaben = Rohmasse) und der Richtigcode der Rohmasse = (0 oder null) und die Rohmasse = (0 oder null) dann ist das ein Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where true is not this position is zusatz abgabe ac9 ;
set 'REFDATA' to a ref data ;
if
all of the following conditions are true :
- "1" is REFDATA .getBemessungsCodeTarif( the commodityCode of POSITION , the originCountry of POSITION , the customsFavourCode of POSITION , the preference of POSITION , the statisticalCode of POSITION )
- ( the grossMassConfirmation of POSITION isNull
or "0" is the grossMassConfirmation of POSITION )
- ( the grossMass of POSITION isNull
or 0 is the grossMass of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_grossMass' , the name of this rule ) ;
  
  
 
Rule: R268a Nullwerte Statistischer & MWST Wert
  
Description:
Wenn der statistischer Wert = (0 oder null) und der MWST-Wert = (0 oder null) dann ist das ein Fehler.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where this position is zusatz abgabe ac9 is not true ;
if
all of the following conditions are true :
- ( the statisticalValue of POSITION isNull
or ZERO is the statisticalValue of POSITION )
- ( the VATValue of POSITION isNull
or ZERO is the VATValue of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_statisticalValue' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_VATValue' , the name of this rule ) ;
  
  
 
Rule: R268b Nullwerte Zusatzmenge Roh- und Eigenmasse
  
Description:
Wenn die Rohmasse = (0 oder nulll) und [die Eigenmasse = (0 oder null) oder die Zusatzmenge = (0 oder null)] dann ist dioes ein Fehler.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where true is not this position is zusatz abgabe ac9 ;
if
( the grossMass of POSITION isNull
or 0 is the grossMass of POSITION )
and any of the following conditions is true :
- ( the netMass of POSITION isNull
or 0 is the netMass of POSITION )
- ( the additionalUnit of POSITION isNull
or 0 is the additionalUnit of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_grossMass' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_netMass' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalUnit' , the name of this rule ) ;
  
  
 
Rule: R269a Defaultspediteure Abfertigungsort
  
Description:
WENN Spediteurnummer ? Default Spediteurnummer

UND Veranlagungsort 3 (nachträgliche 
Erfassung ED) oder 4 (d'office Veranlagung an Zollstelle) 
ODER Position.getAbtertigungstyp

DANN Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
the declarantTraderIdentificationNumber of HEADER is not one of { 'the var_UID_000' , 'the var_UID_001' }
and any of the following conditions is true :
- 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is the clearancelocation of HEADER
- 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is the clearancelocation of HEADER ,
then
'the result' .setHeaderError( "1" , 'the check_authorisation' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_declarant_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: R269b Defaultspediteure Abfertigungstyp 9
  
Description:
WENN Spediteurnummer ? Default Spediteurnummer

UND Veranlagungsort 3 (nachträgliche 
Erfassung ED) oder 4 (d'office Veranlagung an Zollstelle) 
ODER Position.getAbtertigungstyp

DANN Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
if
the declarantTraderIdentificationNumber of HEADER is not one of { 'the var_UID_000' , 'the var_UID_001' }
and 'the var_customsClearanceType_Sonderfaelle_9' is the customsClearanceType of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_authorisation' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_declarant_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: R270a Bei UC80 (AC9) müssen Manuelle Abgaben vorhanden sein
  
Description:
Sicherstellen, dass die Positionen mindestens einen Eintrag (Manuelle Abgabe) besitzt
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where this position is zusatz abgabe ac9 is true ;
if
POSITION is manuelle abgaben not empty is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_authorisation' , the name of this rule ) ;
  
  
 
Rule: R270b Korrekter Zusatzabgabenschlüssel sicherstellen bei manuellen Zusatzabgaben
  
Description:
Korrekter Zusatzabgabenschlüssel sicherstellen bei manuellen Zusatzabgaben
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position
where this position is zusatz abgabe ac9 is true ;
if
POSITION is schluessel fuer zusatz abgabe ac9 vorhanden is false
and any of the following conditions is true :
- 'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is the clearancelocation of HEADER ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
  
  
 
Rule: R271 Zollstellennummer erforderlich
  
Description:
Zollstellennummer ist zwingend anzugeben
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where 'the var_clearanceLocation_e_dec_web_5' is not the clearancelocation of this header ;
if
the customsOfficeNumber of HEADER isNull
or the customsOfficeNumber of HEADER is empty
then
'the result' .setHeaderError( "1" , 'the check_required_attributes' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_customsOfficeNumber' , the name of this rule ) ;
  
  
 
Rule: R272 Versendungsland erforderlich
  
Description:
Versendungsland ist zwingend anzugeben.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
the dispatchCountry of HEADER isNull
or 'the helper_def_empty_String' is the dispatchCountry of HEADER
then
'the result' .setHeaderError( "1" , 'the check_required_attributes' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_dispatchCountry' , the name of this rule ) ;
  
  
 
Rule: R273 Importeur erforderlich
  
Description:
Importeur ist zwingend anzugeben
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
HEADER has importer is false
then
'the result' .setHeaderError( "1" , 'the check_required_attributes' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_importer_name' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_importer_postalCode' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_importer_city' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_importer_country' , the name of this rule ) ;
  
  
 
Rule: R274 Konto MWST und Konto Zoll sind erforderlich
  
Description:
Das Konto Zoll und Konto MWST ist zwingend anzugeben
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
any of the following conditions is true :
- the VATAccount of HEADER isNull
- the customsAccount of HEADER isNull
- 'the helper_def_empty_String' is the VATAccount of HEADER
- 'the helper_def_empty_String' is the customsAccount of HEADER ,
then
'the result' .setHeaderError( "1" , 'the check_required_attributes' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_VATAccount' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_customsAccount' , the name of this rule ) ;
  
  
 
Rule: R275 Ursprungsland und die Präferenz sind erforderlich
  
Description:
Das Ursprungsland und die Präferenz sind zwingend anzugeben
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
any of the following conditions is true :
- the originCountry of POSITION isNull
- 'the helper_def_empty_String' is the originCountry of POSITION
- the preference of POSITION isNull
- 'the helper_def_empty_String' is the preference of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_required_attributes' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_origin_preference' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_origin_country' , the name of this rule ) ;
  
  
 
Rule: R276 Zoll MWST Code und Zoll MWST Wert erforderlich
  
Description:
Der Zoll MWST Code und Zoll MWST Wert sind zwingend anzugeben
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
all of the following conditions are true :
- ( the VATCode of POSITION isNull
or 'the helper_def_empty_String' is the VATCode of POSITION )
- the VATValue of POSITION isNull ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_required_attributes' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_VATCode' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_VATValue' , the name of this rule ) ;
  
  
 
Rule: R277 Sicherstellung Bewilligung vorhanden bei Verlagerungsverfahren MWST
  
Description:
Plausibilitätsprüfung, welche sicher stellt, dass beim Verlagerungsverfahren MWST (MWST Code 90) eine Bewilligung angegeben wird
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
all of the following conditions are true :
- 'the var_VATCode_Verlagerungsverfahren_MWST_90' is the VATCode of POSITION
- isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_Verpflichtung_6' , null string , "80" ) of POSITION is false ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R281 Pruefen ob Abgabearten-Code gueltig ist
  
Description:
Hier wird geprüft, od die Abgabeart (Fall AC9) plausibel ist
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where this position is zusatz abgabe ac9 is true ;
if
POSITION is abgabe art ac9 plausibel is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
  
  
 
Rule: R282 Prüfen ob die Zusatzabageart (Fall AC9) 110(Zoll) und 130(MWSt) max nur einmal vorkommen
  
Description:
Hier wird geprüft, ob die Abgabearten 110 (Zoll) und 130 (MWSt) max. 1 mal pro Positioon vorkommen
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where true is this position is zusatz abgabe ac9 ;
if
POSITION is abgabe art mwst and zoll unique is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
  
  
 
Rule: R285 Veranlagungstyp 7
  
Description:
Wenn die Tarifnummer 9999.9999 (Mustersendung) deklariert wird dann muss Nichthandelsware (2) angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
all of the following conditions are true :
- 'the var_customsClearanceType_ZollfreieVeranlagung_gem_ ZG_7' is the customsClearanceType of POSITION
- 'the var_Mustersendung_9999_9999' is the commodityCode of POSITION
- 'the var_commercialGood_Nichthandelsware_2' is not the commercialGood of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific7' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_commodityCode' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_commercialGood' , the name of this rule ) ;
  
  
 
Rule: R286 RmbType nach Abrechnung definiert
  
Description:
Bei Berichtigungen nach Abrechnung (Phase 2) muss das Feld "Rechtsmittelbelehrung" definiert werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
all of the following conditions are true :
- 'the var_correctionCode_Korrektur_2' is the correctionCode of HEADER
- false is is correction from declarant of HEADER
- true is HEADER declaration state is/was 'abgerechnet' or 'korrigiert nach abrechnung'
- "0" is not the rmb type of HEADER
- "1" is not the rmb type of HEADER ,
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
  
  
 
Rule: R287 Rohmasse mit drei Stellen nach dem Komma
  
Description:
Wenn die Rohmasse 3 Stellen nach dem Komma hat, müssen die letzten 2 Stellen 0 sein. Also xxx.x00.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
import gross mass pattern of POSITION is like xx.x00 is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_statistics' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_grossMass' , the name of this rule ) ;
  
  
 
Rule: R288 Entwicklungslaender
  
Description:
WENN Versandvorgang Typ = 1 (Import) UND Anmeldungstyp = 2 (Provisorisch) UND Grund Provisorisch = 4 (Ursprungsnachweis für Entwicklungsländer) UND Ursprungsland ist kein Entwicklungsland DANN Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
all of the following conditions are true :
- 'the var_declarationType_provisorisch_2' is the declarationType of HEADER
- 'the var_reason_Ursprungsnachweis_Entwicklungslaender_4' is the reason of HEADER
- plausi helpers.contains( the all ursprungslaenders of HEADER , the Entwicklungslaender iso codes of REFDATA ) is false ,
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_reason' , the name of this rule ) ;
  
  
 
Rule: R289 Version kleiner 98
  
Description:
Wenn die Vorversion >= 98 ist und die eingehende Deklaration ist keine Annulation, dann Fehler.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
all of the following conditions are true :
- 'the var_correctionCode_Annullation_0' is not the correctionCode of HEADER
- the lastVersionNumber of HEADER greaterOrEqual 98 ,
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionCode' , the name of this rule ) ;
  
  
 
Rule: R290 Ursprungsnachweis
  
Description:
Bei Praeferenzveranlagungen aus Entwicklungslaendern darf als Ursprungsnachweis müssen APS-Ursprungszeugnis Code 865 oder Statement on Origin Code 866 angegeben werden
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
"1" is the serviceType of HEADER
and 'the var_preference_yes_1' is the preference of POSITION
and any of the following conditions is true :
- ( the originCountry of POSITION is one of the Entwicklungslaender iso codes of REFDATA
and 'the var_documentType_APS-Ursprungszeugnis_865' is not one of the documentTypes of POSITION
and 'the var_documentType_Statement_on_Origin_866' is not one of the documentTypes of POSITION )
- ( ( 'the var_documentType_APS-Ursprungszeugnis_865' is one of the documentTypes of POSITION
or 'the var_documentType_Statement_on_Origin_866' is one of the documentTypes of POSITION )
and the originCountry of POSITION is not one of the Entwicklungslaender iso codes of REFDATA ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_producedDocument' , the name of this rule ) ;
  
  
 
Rule: R290 Ursprungsnachweis_old
  
Description:
Bei Praeferenzveranlagungen aus Entwicklungslaendern darf als Ursprungsnachweis muss das APS-Ursprungszeugnis Code 865  angegeben werden
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
"1" is the serviceType of HEADER
and 'the var_preference_yes_1' is the preference of POSITION
and any of the following conditions is true :
- ( the originCountry of POSITION is one of the Entwicklungslaender iso codes of REFDATA
and 'the var_documentType_APS-Ursprungszeugnis_865' is not one of the documentTypes of POSITION )
- ( 'the var_documentType_APS-Ursprungszeugnis_865' is one of the documentTypes of POSITION
and the originCountry of POSITION is not one of the Entwicklungslaender iso codes of REFDATA ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_producedDocument' , the name of this rule ) ;
  
  
 
Rule: R291b Zusatzabgabe anderer Tabak 2
  
Description:
Wenn die Tarifnummer = 3824.9999 und der Statistische Schlüssel = 912 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 015 oder Zusatzabgabe Art = 700 und der Schlüssel 001 sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
"3824.9999" is the commodityCode of POSITION
and 912 is the statisticalCode of POSITION
and ( 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADDITIONALTAX
or 'the var_addtionalTaxKey_015' is not the key of ADDITIONALTAX )
and ( 'the var_addtionalTaxType_Lenkungsabgabe_VOC_700' is not the type of ADDITIONALTAX
or the key of ADDITIONALTAX is not one of { 'the var_addtionalTaxKey_001' , 'the var_addtionalTaxKey_002' } )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R291b Zusatzabgabe anderer Tabak 2_old
  
Description:
Wenn die Tarifnummer = 3824.9098 und der Statistische Schlüssel = 912 ist, dann muss die Zusatzabgabe Art = 450 und der Schlüssel = 015 oder Zusatzabgabe Art = 700 und der Schlüssel 001 sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
"3824.9098" is the commodityCode of POSITION
and 912 is the statisticalCode of POSITION
and ( 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADDITIONALTAX
or 'the var_addtionalTaxKey_015' is not the key of ADDITIONALTAX )
and ( 'the var_addtionalTaxType_Lenkungsabgabe_VOC_700' is not the type of ADDITIONALTAX
or the key of ADDITIONALTAX is not one of { 'the var_addtionalTaxKey_001' , 'the var_addtionalTaxKey_002' } )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R292 Berichtigungscode=7 bei Berichtigung einer prov Veranlagung nicht erlaubt
  
Description:
Berichtigungscode 7 (Umwandlung von provisorischer in definitive Anmeldung) bei der Berichtigung einer provisorischen Veranlagung (ohne Umwandlung) darf nicht verwendet werden. 
Der Code 7 darf nur bei der Umwandlung einer provisorischen in eine definitive Veranlagung verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
'the var_declarationType_provisorisch_2' is the declarationType of HEADER
and 'the var_correctionReason_provisorisch_zu_definitiv_7' is the correctionReason of HEADER
then
'the result' .setHeaderError( "1" , 'the check_origin' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionReason' , the name of this rule ) ;
  
  
 
Rule: R293 Rechnungswaehrungscode
  
Description:
Gueltiger Rechnungswaehrungscode gemaess Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the invoiceCurrencyType of HEADER isNotNull
and the invoiceCurrencyType of HEADER is not one of the refInvoiceCurrencyTypes of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_invoiceCurrencyType' , the name of this rule ) ;
  
  
 
Rule: R294 Mustersendungen 99999999 und Bemessungscode 0
  
Description:
WENN die Tarifnummer 9999.9999 ist 
UND der statistische Schlüssel ist nicht 0 und nicht NULL
DANN Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
"9999.9999" is the commodityCode of POSITION
and ( the statisticalCode of POSITION isNotNull
and 0 is not the statisticalCode of POSITION )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statisticalCode' , the name of this rule ) ;
  
  
 
Rule: R295a Richtigcode der Warennummer pruefen
  
Description:
Richtigcode muss bei Warennummer 3501.1090, 3501.9091,3501.9099,3502.1190,3502.1990 gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
( the commodityCodeConfirmation of POSITION isNull
or "0" is the commodityCodeConfirmation of POSITION )
and the commodityCode of POSITION is one of { "3501.1090" , "3501.9091" , "3501.9099" , "3502.1190" , "3502.1990" }
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_general_cross' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_commodityCode' , the name of this rule ) ;
  
  
 
Rule: R295b Richtigcode der Warennummer pruefen
  
Description:
Richtigcode darf nur bei Warennummer 3501.1090, 3501.9091,3501.9099,3502.1190,3502.1990 gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
( "1" is the commodityCodeConfirmation of POSITION )
and the commodityCode of POSITION is not one of { "3501.1090" , "3501.9091" , "3501.9099" , "3502.1190" , "3502.1990" , "2403.1900" }
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_general_cross' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_commodityCode' , the name of this rule ) ;
  
  
 
Rule: R296a Ueberpruefung nichtverwendbarer Felder
  
Description:
ENTITY  Attributes nicht verwendbar
Ladeort
Bestimmungsland
Bewilligter Warenort
Transfer ins Transit System
UCR
Security
Kennnummer für besondere Umstände
Transporteur/Name
Transporteur/Strasse und Hausnummer
Transporteur/Address Zusatz 1
Transporteur/Address Zusatz 2
Transporteur/Postleitzahl
Transporteur/Stadt
Transporteur/Land
Transporteur/TIN Nr Transporteur
Transporteur/Transporteurreferenz
EMPFINDLICHE WARE/Warencode
EMPFINDLICHE WARE/Menge
Rückerstattung/Rückerstattungstyp
Rückerstattung/VOC Menge
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where the acceptanceDate of this header isNotNull
and the acceptanceDate of this header is after or the same as 12/31/2011 ;
if
( the placeOfLoading of HEADER isNotNull
and 'the helper_def_empty_String' is not the placeOfLoading of HEADER )
or ( the deliveryDestination of HEADER isNotNull
and 'the helper_def_empty_String' is not the deliveryDestination of HEADER )
or ( the agreedLocationOfGoods of HEADER isNotNull
and 'the helper_def_empty_String' is not the agreedLocationOfGoods of HEADER )
or ( the transferToTransitSystem of HEADER isNotNull
and 'the helper_def_empty_String' is not the transferToTransitSystem of HEADER )
or ( the uniqueConsignmentReferenceNumber of HEADER isNotNull
and 'the helper_def_empty_String' is not the uniqueConsignmentReferenceNumber of HEADER )
or ( the security of HEADER isNotNull
and 'the helper_def_empty_String' is not the security of HEADER )
or ( the specificCircumstanceIndicator of HEADER isNotNull
and 'the helper_def_empty_String' is not the specificCircumstanceIndicator of HEADER )
or ( the carrierName of HEADER isNotNull
and 'the helper_def_empty_String' is not the carrierName of HEADER )
or ( the carrierStreet of HEADER isNotNull
and 'the helper_def_empty_String' is not the carrierStreet of HEADER )
or ( the carrierAddressSupplement1 of HEADER isNotNull
and 'the helper_def_empty_String' is not the carrierAddressSupplement1 of HEADER )
or ( the carrierAddressSupplement2 of HEADER isNotNull
and 'the helper_def_empty_String' is not the carrierAddressSupplement2 of HEADER )
or ( the carrierPostalCode of HEADER isNotNull
and 'the helper_def_empty_String' is not the carrierPostalCode of HEADER )
or ( the carrierCity of HEADER isNotNull
and 'the helper_def_empty_String' is not the carrierCity of HEADER )
or ( the carrierCountry of HEADER isNotNull
and 'the helper_def_empty_String' is not the carrierCountry of HEADER )
or ( the carrierTraderIdentificationNumber of HEADER isNotNull
and 'the helper_def_empty_String' is not the carrierTraderIdentificationNumber of HEADER )
or ( the carrierReference of HEADER isNotNull
and 'the helper_def_empty_String' is not the carrierReference of HEADER )
or ( HEADER has consignor security is true )
or ( HEADER has consignee security is true )
or ( the companyNumberTaxpayer of HEADER isNotNull
and 'the helper_def_empty_String' is not the companyNumberTaxpayer of HEADER )
then
'the result' .setHeaderError( "1" , 'the check header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_placeOfLoading' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_deliveryDestination' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_agreedLocationOfGoods' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_transferToTransitSystem' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_uniqueConsignmentReferenceNumber' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_security' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_specificCircumstanceIndicator' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_carrier' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_consignorSecurity' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_consigneeSecurity' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_companyNumberTaxpayer' , the name of this rule ) ;
  
  
 
Rule: R296b Ueberpruefung nichtverwendbarer Felder
  
Description:
ENTITY  Attributes nicht verwendbar
Ladeort
Bestimmungsland
Bewilligter Warenort
Transfer ins Transit System
UCR
Security
Kennnummer für besondere Umstände
Transporteur/Name
Transporteur/Strasse und Hausnummer
Transporteur/Address Zusatz 1
Transporteur/Address Zusatz 2
Transporteur/Postleitzahl
Transporteur/Stadt
Transporteur/Land
Transporteur/TIN Nr Transporteur
Transporteur/Transporteurreferenz
EMPFINDLICHE WARE/Warencode
EMPFINDLICHE WARE/Menge
Rückerstattung/Rückerstattungstyp
Rückerstattung/VOC Menge
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position
where the acceptanceDate of HEADER isNotNull
and the acceptanceDate of HEADER is after or the same as 12/31/2011 ;
if
( the refundType of POSITION isNotNull
and "" is not the refundType of POSITION )
or ( the VOCquantity of POSITION isNotNull
and 0 is not the VOCquantity of POSITION )
or ( the UNDangerousGoodsCode of POSITION isNotNull
and 'the helper_def_empty_String' is not the UNDangerousGoodsCode of POSITION )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_other_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_refund_type' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_refund_VOCQuantity' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_UNDangerousGoodsCode' , the name of this rule ) ;
  
  
 
Rule: R296c Ueberpruefung nichtverwendbarer Felder
  
Description:
ENTITY  Attributes nicht verwendbar
Ladeort
Bestimmungsland
Bewilligter Warenort
Transfer ins Transit System
UCR
Security
Kennnummer für besondere Umstände
Transporteur/Name
Transporteur/Strasse und Hausnummer
Transporteur/Address Zusatz 1
Transporteur/Address Zusatz 2
Transporteur/Postleitzahl
Transporteur/Stadt
Transporteur/Land
Transporteur/TIN Nr Transporteur
Transporteur/Transporteurreferenz
EMPFINDLICHE WARE/Warencode
EMPFINDLICHE WARE/Menge
Rückerstattung/Rückerstattungstyp
Rückerstattung/VOC Menge
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'SENSIBLE_GOOD' to a sensible good
where the acceptanceDate of HEADER isNotNull
and the acceptanceDate of HEADER is after or the same as 12/31/2011 ;
if
( the code of SENSIBLE_GOOD isNotNull
and 0 is not the code of SENSIBLE_GOOD )
or SENSIBLE_GOOD has quantity
then
'the result' .setPositionError( the positions nr of SENSIBLE_GOOD , "1" , 'the check_other_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of SENSIBLE_GOOD , 'the ref_goodsItem_sensibleGoods' , the name of this rule ) ;
  
  
 
Rule: R296d Ueberpruefung nichtverwendbarer Felder
  
Description:
ENTITY  Attributes nicht verwendbar
Ladeort
Bestimmungsland
Bewilligter Warenort
Transfer ins Transit System
UCR
Security
Kennnummer für besondere Umstände
Transporteur/Name
Transporteur/Strasse und Hausnummer
Transporteur/Address Zusatz 1
Transporteur/Address Zusatz 2
Transporteur/Postleitzahl
Transporteur/Stadt
Transporteur/Land
Transporteur/TIN Nr Transporteur
Transporteur/Transporteurreferenz
EMPFINDLICHE WARE/Warencode
EMPFINDLICHE WARE/Menge
Rückerstattung/Rückerstattungstyp
Rückerstattung/VOC Menge
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'GOODS ITEM DETAILS' to a goods item detail
where the acceptanceDate of HEADER isNotNull
and the acceptanceDate of HEADER is after or the same as 12/31/2011 ;
if
( 'GOODS ITEM DETAILS' isNotNull
and the name of 'GOODS ITEM DETAILS' isNotNull
and 'the helper_def_empty_String' is not the name of 'GOODS ITEM DETAILS'
and 'the var_goodsItemDetails_exportCode_27' is the name of 'GOODS ITEM DETAILS' )
or ( 'GOODS ITEM DETAILS' isNotNull
and the name of 'GOODS ITEM DETAILS' isNotNull
and 'the helper_def_empty_String' is not the name of 'GOODS ITEM DETAILS'
and 'the var_goodsItemDetails_lagerNr_26' is the name of 'GOODS ITEM DETAILS' )
then
'the result' .setPositionError( the positions nr of 'GOODS ITEM DETAILS' , "1" , 'the check_other_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of 'GOODS ITEM DETAILS' , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R298 Korrektur e-dec Web Zollanmeldung durch Spediteur
  
Description:
E-dec web Zollanmeldungen duerfen vom Zollkunden nur korrigiert werden, so lange die Deklaration noch nicht angenommen wurde und die Deklaration nicht bei einer Zollfachperson in Korrektur ist.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
'the var_clearanceLocation_e_dec_web_5' is the clearancelocation of HEADER
and 'the var_correctionCode_Korrektur_2' is the correctionCode of HEADER
and is state before correction of HEADER not per web dec empfangen
and is correction from declarant of HEADER
then
'the result' .setHeaderError( "1" , 'the check_authorisation' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionCode' , the name of this rule ) ;
  
  
 
Rule: R300 Korrekturgrund 15 nur fuer e-dec Web gueltig
  
Description:
Der Korrekturgrund "15 e-dec web korrigiert am Zollstellenterminal" darf nur von der Applikation e-dec Web verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
'the var_correctionReason_edec_web_korrigiert_am_Zollstellenterminal_15' is the correctionReason of HEADER
and ( 'the var_clearanceLocation_e_dec_web_5' is not the clearancelocation of HEADER
or is correction from declarant of HEADER is false )
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionReason' , the name of this rule ) ;
  
  
 
Rule: R301 Ausbesserungsverkehr nichtverwendbare Attribute
  
Description:
Bei Ausbesserung, und wenn der Veranlagungstyp nicht 2 ist, duerfen folgende Felder nicht verwendet werden:
- Veredelungstyp/RefinementType
- Verfahren/ProcessType
- Abrechnung/BillingType
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_repair_yes' is the repair of this position
and 'the var_customsClearanceType_Veredelungsverkehr_2' is not the customsClearanceType of this position ;
if
any of the following conditions is true :
- the refinementType of POSITION isNotNull
- the processType of POSITION isNotNull
- the billingType of POSITION isNotNull ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific3' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_refinementType' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_processType' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_billingType' , the name of this rule ) ;
  
  
 
Rule: R303 Veranlagungsort 5 darf nicht veraendert werden
  
Description:
Der Veranlagungsort 5 darf bei einer Korrektur oder Annullierung nicht verändert werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
( 'the var_correctionCode_Annullation_0' is the correctionCode of HEADER
or 'the var_correctionCode_Korrektur_2' is the correctionCode of HEADER )
and 'the var_clearanceLocation_e_dec_web_5' is the clearancelocationPreviousVersion of HEADER
and 'the var_clearanceLocation_e_dec_web_5' is not the clearancelocation of HEADER
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionCode' , the name of this rule ) ;
  
  
 
Rule: R305 Samnaun Empfaenger PLZ
  
Description:
WENN ServiceType = 1 (Import)                     
UND Empfänger PLZ = 7562 oder 7563              
DANN Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
the consigneePostalCode of HEADER isNotNull
and the consigneePostalCode of HEADER is one of { "7562" , "7563" }
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_consignee_postalCode' , the name of this rule ) ;
  
  
 
Rule: R306 Veranlagungsort beim ZE obligatorisch
  
Description:
Der ZE muss in der Rubrik Abladeort der EZA immer den Abladeort eingeben.

WENN Versandvorgang Typ = 1 (Import)  
UND Veranlagungsort = 2 "Domizil" 
DANN ist die Angabe des Abladeortes obligatorisch 
SONST Fehler 

Regel ist nur aktiv für Deklarationen mit Annahmedatum ab 28.10.2012.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where the acceptanceDate of this header isNotNull
and the acceptanceDate of this header is after or the same as 10/28/2012 ;
if
the clearancelocation of HEADER isNotNull
and the clearancelocation of HEADER is 'the var_clearanceLocation_Domizil_2'
and the placeOfUnloading of HEADER isNull
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_placeOfUnloading' , the name of this rule ) ;
  
  
 
Rule: R308 Obligatorisch ReserveSuisse
  
Description:
WENN die Bewilligungstelle gemäss Stammdaten 22 (RS) und die Rohmasse > der Toleranzmenge ist DANN muss der Bvewilligungstyp 2 und die Bewilligungstelle 22 sein SONST Fehler.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
getSummOfGrossMass( the commodityCode of POSITION , the statisticalCode of POSITION ) of HEADER isNotNull
and getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA isNotNull
and getSummOfGrossMass( the commodityCode of POSITION , the statisticalCode of POSITION ) of HEADER is more than getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA
and "22" is one of REFDATA .getObligatorischeBewilligungsstellencodes( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION )
and isBewilligungsTypAndNumberAndStellenCodeInList( 'the var_permitType_Generalbewilligung_2' , null string , 'the var_permitAuthority_Reservesuisse_22' ) of POSITION is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R309 MWST-Zusatz gesetzt
  
Description:
Wenn der MWST-Zusatz 1 ist, dann muss das Feld MWST Nr. eine UID enthalten (Format CHE+9 Ziffern), sonst Fehler.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
"1" is the VATSuffix of HEADER
and HEADER isVATNumberUID is false
then
'the result' .setHeaderError( "1" , 'the check_required_attributes' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_VATNumber' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_VATSuffix' , the name of this rule ) ;
  
  
 
Rule: R311 Bewilligungsdetail-Schlüssel gemaess Stammdaten
  
Description:
Der Bewilligungsdetail-Schlüssel (key) muss den Stammdaten entsprechen.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit equals the positions nr of POSITION ;
set 'PERMITITEMDETAIL' to a permit item detail
where the positions nr of PERMIT equals the positions nr of this permit item detail ;
set 'REFDATA' to a ref data common ;
if
the key of PERMITITEMDETAIL is not one of the refPermitDetailNames of REFDATA
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R312 permitItemDetailpraesenz im Block
  
Description:
Derselbe permitItemDetail key darf in einem Block permit nur einmal vorkommen.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit equals the positions nr of POSITION ;
if
false is plausi helpers.containsAtMostOncePermitItemDetailsKey( PERMIT )
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R313 nicht erlaubte eBewilligungstypen für Bewilligungsstellen
  
Description:
WENN Bewilligungsstellencode = (1, 2, 5, 6, 7, 8, 12, 15, 17, 18, 20, 21, 22, 23, 24, 80, 96, 97, 98, 99),
DANN Bewilligungstyp 11 (eEinzelbewilligung) und 12 (eGeneralbewilligung) nicht erlaubt.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit equals the positions nr of POSITION ;
if
the permitAuthority of PERMIT is one of { "1" , "2" , "5" , "6" , "7" , "8" , "12" , "15" , "17" , "18" , "20" , "21" , "22" , "23" , "24" , "80" , "96" , "97" , "98" , "99" }
and the permitType of PERMIT is one of { 'the var_eEinzelbewilligung_11' , 'the var_eGeneralbewilligung_12' }
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R314 Bewilligungsstellen und eEinzelbewilligungen
  
Description:
WENN Bewilligungstyp = 11 (eEinzelbewilligung) DANN muss Bewilligungsstelle = 3 (BWIP), 4 (BWKM), 11 (BLV-CITES) oder 26 (BLV) sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit equals the positions nr of POSITION ;
if
the permitType of PERMIT is 'the var_eEinzelbewilligung_11'
and the permitAuthority of PERMIT is not one of { 'the var_BWIP_SECO_3' , 'the var_BWKM_SECO_4' , 'the var_BLV_11' , 'the var_BLV_26' }
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R315 Bewilligungsstellen und eGeneralbewilligungen
  
Description:
WENN Bewilligungstyp = 12 (eGeneralbewilligung) ist, DANN muss Bewilligungsstelle = 3 (BWIP), 4 (BWKM) oder 26 (BLV) sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit equals the positions nr of POSITION ;
if
the permitType of PERMIT is 'the var_eGeneralbewilligung_12'
and the permitAuthority of PERMIT is not one of { 'the var_BWIP_SECO_3' , 'the var_BWKM_SECO_4' , 'the var_BLV_26' }
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R316 eBewilligungsstellen und eBewilligungstypen
  
Description:
WENN Bewilligungsstellencode gemäss Stammdaten = 3 (BWIP), 4 (BWKM) oder 26 (BLV)
DANN muss der Bewilligungstyp = 11 (eEinzelbewilligung) oder 12 (eGeneralbewilligung) sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit equals the positions nr of POSITION ;
if
the permitAuthority of PERMIT is one of { 'the var_BWIP_SECO_3' , 'the var_BWKM_SECO_4' , 'the var_BLV_26' }
and the permitType of PERMIT is not one of { 'the var_eEinzelbewilligung_11' , 'the var_eGeneralbewilligung_12' }
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R317Pilot_A eBewilligungsstellen und eBewilligungstypen mit Pilotspediteur (ECITES)
  
Description:
Temporäre Regel solange eBew Schnittstelle noch nicht aktiv: Wenn Bewilligungsstelle = 11 und Bewilligungstyp = 11 und Spednr. nicht ¿XYZ¿, dann Fehler.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'HEADER' to a header ;
set 'PERMIT' to a permit
where the positions nr of this permit equals the positions nr of POSITION ;
if
'the var_BLV_11' is the permitAuthority of PERMIT
and 'the var_eEinzelbewilligung_11' is the permitType of PERMIT
and the declarantTraderIdentificationNumber of HEADER is not one of { "9005" , "9020" , "9113" , "9929" , "9930" , "CHE359524129" , "9973" , "9997" , "1000011" , "1000117" , "1000796" , "1000797" , "CH323" , "CHE158474048" , "CHE359057174" , "CHE366808141" , "CHE108579260" , "CHE110202913" , "CHE106486759" , "CHE114642843" , "CHE380968387" , "CHE168591394" , "CHE234109995" , "CHE344707939" , "CHE374028470" , "CHE434279888" , "CHE411287575" , "CHE493031361" , "CHE339539926" , "CHE464142923" , "CHE211901641" , "CHE323323533" , "CHE491530765" , "CHE395364152" , "CHE205933294" , "CHE287995887" , "CHE345189332" , "CHE424293272" }
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R318 CITES-Zertifikat mit eEinzelbewilligung
  
Description:
WENN Bewilligungsstellencode gemäss Stammdaten = 11 (BVET) UND Bewilligungsnummer Ziffer 3 und 4 in Ländergruppe ¿e-CITES¿ enthalten ist,
DANN muss verwendeter Bewilligungstyp = 11 sein.

Regel ersetzt Pilotregel R317!
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'AREFDATA' to an abstract ref data ;
set 'PERMIT' to a permit
where the positions nr of this permit equals the positions nr of POSITION ;
if
the permitAuthority of PERMIT is 'the var_BLV_11'
and plausi helpers.stringContainsElement( the permitNumber of PERMIT , the all ECITESLaenders of AREFDATA ) is true
and the permitType of PERMIT is not 'the var_eEinzelbewilligung_11'
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_permit' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R319 Gueltige Stammdaten gemaess CITES
  
Description:
Wenn der Bewilligungsdetail Schlüssel 3 ist, muss der Bewilligungsdetail Wert in den Stammdaten "Warenart gem. CITES" vorhanden und gültig sein.
Wenn der Bewilligungsdetail Schlüssel 4 ist, muss der Bewilligungsdetail Wert in den Stammdaten "Wissenschaftliche Bezeichnung gem. CITES" vorhanden und gültig sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'PERMIT' to a permit
where the positions nr of this permit equals the positions nr of POSITION ;
set 'PERMITITEMDETAIL' to a permit item detail
where the positions nr of PERMIT equals the positions nr of this permit item detail ;
set 'REFDATA' to a ref data common ;
if
( "3" is the key of PERMITITEMDETAIL
and the value of PERMITITEMDETAIL is not one of the refPermitWarenartBVETs of REFDATA )
or ( "4" is the key of PERMITITEMDETAIL
and the value of PERMITITEMDETAIL is not one of the refPermitTierartBVETs of REFDATA )
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R322 Vorpapier Art = BAMU (Bandveranlagung Mülligen Urdorf)
  
Description:
WENN das Feld Vorpapier Art = BAMU (Identifikation Postverkehr) angemeldet wird
DANN muss die Spediteurnummer berechtigt sein
SONST Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
'the var_artenVorpapier_BAMU' is one of the previousDocumentsType_Lists of HEADER
and the declarantTraderIdentificationNumber of HEADER is not one of { 'the var_UID_002' , 'the var_UID_003' , 'the var_UID_004' , 'the var_UID_005' , 'the var_UID_006' , 'the var_UID_007' , 'the var_UID_008' , 'the var_UID_009' , 'the var_UID_010' , 'the var_UID_011' , 'the var_UID_012' , 'the var_UID_013' , 'the var_UID_014' , 'the var_UID_015' , 'the var_UID_016' , 'the var_UID_017' , 'the var_UID_018' , 'the var_UID_019' , 'the var_UID_020' , 'the var_UID_021' , 'the var_UID_022' , 'the var_UID_023' , 'the var_UID_024' , 'the var_UID_025' , 'the var_UID_026' , 'the var_UID_027' , 'the var_UID_028' , 'the var_UID_029' , 'the var_UID_030' , 'the var_UID_031' }
then
'the result' .setHeaderError( "1" , 'the check header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_previousDocument_type' , the name of this rule ) ;
  
  
 
Rule: R323 Vorpapierart = BAMU nur einmal
  
Description:
Vorpapier Art = BAMU (Bandveranlagung Mülligen Urdorf) darf nur einmal pro Einfuhrzollanmeldung verwendet werden (BAMU in Grossbuchstaben)
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
false is plausi helpers.containsAtMostOnce( the previousDocumentsType_Lists of HEADER , "BAMU" )
then
'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_previousDocument_type' , the name of this rule ) ;
  
  
 
Rule: R325 Rückwaren als Handelswaren
  
Description:
WENN Veranlagungstyp 10 oder 11 übermittelt 
UND WarenDetail ist nicht Name 28 "Freizonenverkehr" mit Wert 66 "Samnaun"
DANN muss die Handelsware = ja (1) sein SONST Fehler.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
the customsClearanceType of POSITION is one of { 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' }
and the commercialGood of POSITION is not 'the var_commercialGood_Handelsware_1'
and POSITION has WarenDetail( 'the var_goodsItemDetails_Freizonenverkehr_28' , "66" ) is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific4' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_commercialGood' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R326 Kombination Zusatzabgabenarten Flora und Fauna
  
Description:
Die Zusatzabgabenarten 792 (CITES-Flora) und 292 (CITES-Fauna) dürfen nicht gleichzeitig gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADD_TAX' to an additional tax
where the positions nr of POSITION is the positions nr of this additional tax ;
if
the additionalTaxTypes of POSITION contain 'the var_additionalTaxType_CITES_Flora_792'
and the additionalTaxTypes of POSITION contain 'the var_addtionalTaxType_CITES_Fauna_Gebuehr_292'
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R327 Kombination Zusatzabgabenarten GTU und Flora
  
Description:
Die Zusatzabgabenarten 290 (GTU) und 792 (CITES-FLORA) dürfen nicht gleichzeitig gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADD_TAX' to an additional tax
where the positions nr of POSITION is the positions nr of this additional tax ;
if
the additionalTaxTypes of POSITION contain 'the var_additionalTaxType_CITES_Flora_792'
and the additionalTaxTypes of POSITION contain 'the var_additionalTaxType_Grenztieraerztliche_Untersuchungsgebuehren_290'
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R328 Kombination Gebuehrenart Planzenschutz und Zusatzabgabenart Flora
  
Description:
Die Gebührenart 791 (Pflanzenschutz) und die Zusatzabgabenart 792 (CITES-Flora) dürfen nicht zusammen gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADD_TAX' to an additional tax
where the positions nr of POSITION is the positions nr of this additional tax ;
if
the FeeTypes of POSITION contain 'the var_feeType_Pflanzenschutz_791'
and the additionalTaxTypes of POSITION contain 'the var_additionalTaxType_CITES_Flora_792'
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R329 Kombination Gebuehrenart Planzenschutz und Zusatzabgabenart Fauna
  
Description:
Die Gebührenart 791 (Pflanzenschutz) und die Zusatzabgabenart 292 (CITES-Fauna) dürfen nicht zusammen gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADD_TAX' to an additional tax
where the positions nr of POSITION is the positions nr of this additional tax ;
if
the FeeTypes of POSITION contain 'the var_feeType_Pflanzenschutz_791'
and the additionalTaxTypes of POSITION contain 'the var_addtionalTaxType_CITES_Fauna_Gebuehr_292'
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_additional_tax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R330 Kombination Zusatzabgabenart Flora, Zusatzabgabenart Fauna und besondere Vermerke
  
Description:
Wenn die Zusatzabgabenart 792 (CITES-Flora) oder 292 (CITES-Fauna) übermittelt wird, muss in der Rubrik ¿Besondere Vermerke¿ auf Kopfdatenebene die entsprechende Kontrollstelle (CITES01, CITES02, CITES03, CITES04, CITES05 oder CITES07) angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'HEADER' to a header ;
if
( the additionalTaxTypes of POSITION contain 'the var_addtionalTaxType_CITES_Fauna_Gebuehr_292'
or the additionalTaxTypes of POSITION contain 'the var_additionalTaxType_CITES_Flora_792' )
and none of the following conditions are true :
- "CITES01" is one of the special mention texts of HEADER
- "CITES02" is one of the special mention texts of HEADER
- "CITES03" is one of the special mention texts of HEADER
- "CITES04" is one of the special mention texts of HEADER
- "CITES05" is one of the special mention texts of HEADER
- "CITES07" is one of the special mention texts of HEADER ,
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_specialMention' , the name of this rule ) ;
  
  
 
Rule: R330 Kombination Zusatzabgabenart Flora, Zusatzabgabenart Fauna und besondere Vermerke_old
  
Description:
Wenn die Zusatzabgabenart 792 (CITES-Flora) oder 292 (CITES-Fauna) übermittelt wird, muss in der Rubrik ¿Besondere Vermerke¿ auf Kopfdatenebene die entsprechende Kontrollstelle (CITES01, CITES02, CITES03, CITES04 oder CITES05, CITES06, CITES07) angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'HEADER' to a header ;
if
( the additionalTaxTypes of POSITION contain 'the var_addtionalTaxType_CITES_Fauna_Gebuehr_292'
or the additionalTaxTypes of POSITION contain 'the var_additionalTaxType_CITES_Flora_792' )
and none of the following conditions are true :
- "CITES01" is one of the special mention texts of HEADER
- "CITES02" is one of the special mention texts of HEADER
- "CITES03" is one of the special mention texts of HEADER
- "CITES04" is one of the special mention texts of HEADER
- "CITES05" is one of the special mention texts of HEADER
- "CITES06" is one of the special mention texts of HEADER
- "CITES07" is one of the special mention texts of HEADER ,
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_specialMention' , the name of this rule ) ;
  
  
 
Rule: R331a Plausibiliserung Produkthauptgruppe 1 oder 4
  
Description:
WENN Tarifnummer 2402.1000 und Schlüssel 999 DANN muss die Hauptgruppe 1 oder 4 sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'GOODS ITEM DETAIL' to a goods item detail
where the positions nr of this goods item detail is the positions nr of POSITION ;
if
"2402.1000" is the commodityCode of POSITION
and 999 is the statisticalCode of POSITION
and ( the name of 'GOODS ITEM DETAIL' isNotNull
and 'the var_goodsItemDetails_hauptgruppe_7' is the name of 'GOODS ITEM DETAIL'
and the code of 'GOODS ITEM DETAIL' is not one of { "1" , "4" } )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R331b Plausibilisierung Produkthauptgruppe 1 2 oder 4
  
Description:
Wenn TN 2402.2010, 2402.2020 oder 2402.9000 und Schlüssel 999, muss Hauptgruppe 1, 2 oder 4 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'GOODS ITEM DETAIL' to a goods item detail
where the positions nr of this goods item detail is the positions nr of POSITION ;
if
the commodityCode of POSITION is one of { "2402.2010" , "2402.2020" , "2402.9000" }
and 999 is the statisticalCode of POSITION
and ( the name of 'GOODS ITEM DETAIL' isNotNull
and 'the var_goodsItemDetails_hauptgruppe_7' is the name of 'GOODS ITEM DETAIL'
and the code of 'GOODS ITEM DETAIL' is not one of { "1" , "2" , "4" } )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R331c Plausibilisierung Produkthauptgruppe 3 oder 4
  
Description:
Wenn TN 2403.1100, 2403.1900 oder 2403.9910 und Schlüssel 999, muss Hauptgruppe 3 oder 4 sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'GOODS ITEM DETAIL' to a goods item detail
where the positions nr of this goods item detail is the positions nr of POSITION ;
if
the commodityCode of POSITION is one of { "2403.1100" , "2403.1900" , "2403.9910" }
and 999 is the statisticalCode of POSITION
and ( the name of 'GOODS ITEM DETAIL' isNotNull
and 'the var_goodsItemDetails_hauptgruppe_7' is the name of 'GOODS ITEM DETAIL'
and the code of 'GOODS ITEM DETAIL' is not one of { "3" , "4" } )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R331d Plausibilisierung Produkthauptgruppe 1 3 oder 4
  
Description:
Wenn TN 2403.9990 und Schlüssel 999, muss Hauptgruppe 1, 3 oder 4 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'GOODS ITEM DETAIL' to a goods item detail ;
if
"2403.9990" is the commodityCode of POSITION
and 999 is the statisticalCode of POSITION
and ( the name of 'GOODS ITEM DETAIL' isNotNull
and 'the var_goodsItemDetails_hauptgruppe_7' is the name of 'GOODS ITEM DETAIL'
and the code of 'GOODS ITEM DETAIL' is not one of { "1" , "3" , "4" } )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R332a Erlaubte Untergruppen fuer Hauptgruppe 1
  
Description:
Wenn Hauptgruppe 1, muss Untergruppe 01 bis 11 sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
if
the name of 'MAINGROUP GOODS ITEM DETAIL' isNotNull
and "1" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and ( the name of 'SUBGROUP GOODS ITEM DETAIL' isNotNull
and the code of 'SUBGROUP GOODS ITEM DETAIL' is not one of { "01" , "1" , "02" , "2" , "03" , "3" , "04" , "4" , "05" , "5" , "06" , "6" , "07" , "7" , "08" , "8" , "09" , "9" , "10" , "11" } )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R332b Erlaubte Untergruppen fuer Hauptgruppe 2
  
Description:
Wenn Hauptgruppe 2, muss Untergruppe 01 bis 07 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
if
the name of 'MAINGROUP GOODS ITEM DETAIL' isNotNull
and "2" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and ( the name of 'SUBGROUP GOODS ITEM DETAIL' isNotNull
and the code of 'SUBGROUP GOODS ITEM DETAIL' is not one of { "01" , "1" , "02" , "2" , "03" , "3" , "04" , "4" , "05" , "5" , "06" , "6" , "07" , "7" } )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R332c Erlaubte Untergruppen fuer Hauptgruppe 3
  
Description:
Wenn Hauptgruppe 3, muss Untergruppe 01 bis 06 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
if
the name of 'MAINGROUP GOODS ITEM DETAIL' isNotNull
and "3" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and ( the name of 'SUBGROUP GOODS ITEM DETAIL' isNotNull
and the code of 'SUBGROUP GOODS ITEM DETAIL' is not one of { "01" , "1" , "02" , "2" , "03" , "3" , "04" , "4" , "05" , "5" , "06" , "6" } )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R332d Erlaubte Untergruppen fuer Hauptgruppe 4
  
Description:
Wenn Hauptgruppe 4, muss Untergruppe 01 bis 03 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
if
the name of 'MAINGROUP GOODS ITEM DETAIL' isNotNull
and "4" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and ( the name of 'SUBGROUP GOODS ITEM DETAIL' isNotNull
and the code of 'SUBGROUP GOODS ITEM DETAIL' is not one of { "01" , "1" , "02" , "2" , "03" , "3" } )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R333a Hauptgruppe 1 Untergruppe 1 bis 10 Tabaksteuer Ansatz
  
Description:
Wenn Hauptgruppe 1 und Untergruppe 01 bis 10, muss der Ansatz der Zusatzabgabe Tabaksteuer dem Kleinhandelspreis X 10 + CHF 5,60, aufgerundet auf die nächsten 5 Rappen, entsprechen
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'KLEINHANDELSPREIS GOODS ITEM DETAIL' to a goods item detail
where "24" is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'TABAK ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and 'the var_additionalTaxType_TabakSteuer_450' is the type of this additional tax ;
set 'FACTOR' to 10 ;
set 'ADDITIONAL VALUE' to 5.6 ;
if
"1" is not the rateConfirmation of 'TABAK ADDTAX'
and "1" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and the code of 'SUBGROUP GOODS ITEM DETAIL' is one of { "01" , "1" , "02" , "2" , "03" , "3" , "04" , "4" , "05" , "5" , "06" , "6" , "07" , "7" , "08" , "8" , "09" , "9" , "10" }
and plausihelperstabak.roundUpToNextHigherFiveCentime( plausihelperstabak.calculateKleinhandelspreis( the code of 'KLEINHANDELSPREIS GOODS ITEM DETAIL' , FACTOR , 'ADDITIONAL VALUE' ) ) is not the rate of 'TABAK ADDTAX'
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R333b Hauptgruppe 1 Untergruppe 11 Tabaksteuer Ansatz
  
Description:
Wenn Hauptgruppe = 1 und Untergruppe = 11, dann muss der Ansatz der Zusatzabgabe Tabaksteuer 0 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'TABAK ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and 'the var_additionalTaxType_TabakSteuer_450' is the type of this additional tax ;
if
"1" is not the rateConfirmation of 'TABAK ADDTAX'
and "1" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and "11" is the code of 'SUBGROUP GOODS ITEM DETAIL'
and ZERO is not the rate of 'TABAK ADDTAX'
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R333c Hauptgruppe 1 Untergruppe 01 bis 07 Tabaksteuer Ansatz
  
Description:
Wenn Hauptgruppe 2 und Untergruppe 01 bis 07, dann muss der Ansatz der Zusatzabgabe Tabaksteuer dem Kleinhandelspreis x 1000 : 4 + CHF 118.32, aufgerundet auf die nächten 5 Rappen oder mindestens CHF 212.10 entsprechen.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'KLEINHANDELSPREIS GOODS ITEM DETAIL' to a goods item detail
where "24" is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'TABAK ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and 'the var_additionalTaxType_TabakSteuer_450' is the type of this additional tax ;
set 'FACTOR' to 1000 ;
set 'DIVIDEND' to 4 ;
set 'ADDITIONAL VALUE' to 118.32 ;
set 'MINIMAL VALUE' to 212.1 ;
if
"1" is not the rateConfirmation of 'TABAK ADDTAX'
and "2" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and the code of 'SUBGROUP GOODS ITEM DETAIL' is one of { "01" , "1" , "02" , "2" , "03" , "3" , "04" , "4" , "05" , "5" , "06" , "6" , "07" , "7" }
and plausihelperstabak.calculateRoundedKleinhandelspreisOrMinimum( the code of 'KLEINHANDELSPREIS GOODS ITEM DETAIL' , FACTOR , DIVIDEND , 'ADDITIONAL VALUE' , 'MINIMAL VALUE' ) is not the rate of 'TABAK ADDTAX'
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R333d Hauptgruppe 3 Untergruppe 01 03 06 Tabaksteuer Ansatz
  
Description:
Wenn Hauptgruppe 3 und Untergruppe 01, 03 oder 06, muss der Ansatz der Zusatzabgabe Tabaksteuer gleich dem Kleinhandelspreis x 0.12, aufgerundet auf die nächste 5 Rappen sein
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'KLEINHANDELSPREIS GOODS ITEM DETAIL' to a goods item detail
where "24" is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'TABAK ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and 'the var_additionalTaxType_TabakSteuer_450' is the type of this additional tax ;
set 'FACTOR' to 0.12 ;
set 'ADDITIONAL VALUE' to 0 ;
if
"1" is not the rateConfirmation of 'TABAK ADDTAX'
and "3" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and the code of 'SUBGROUP GOODS ITEM DETAIL' is one of { "01" , "1" , "03" , "3" , "06" , "6" }
and plausihelperstabak.roundUpToNextHigherFiveCentime( plausihelperstabak.calculateKleinhandelspreis( the code of 'KLEINHANDELSPREIS GOODS ITEM DETAIL' , FACTOR , 'ADDITIONAL VALUE' ) ) is not the rate of 'TABAK ADDTAX'
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R333e Hauptgruppe 3 Untergruppe 02 Tabaksteuer Ansatz
  
Description:
Wenn Hauptgruppe 3 und Untergruppe 02, muss der Ansatz der Zusatzabgabe Tabaksteuer gleich dem Kleinhandelspreis / 4 + CHF 38, aufgerundet auf die nächste 5 Rappen, oder mindestens CHF 80 sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'KLEINHANDELSPREIS GOODS ITEM DETAIL' to a goods item detail
where "24" is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'TABAK ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and 'the var_additionalTaxType_TabakSteuer_450' is the type of this additional tax ;
set 'FACTOR' to 1 ;
set 'DIVIDEND' to 4 ;
set 'ADDITIONAL VALUE' to 38 ;
set 'MINIMAL VALUE' to 80 ;
if
"1" is not the rateConfirmation of 'TABAK ADDTAX'
and "3" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and the code of 'SUBGROUP GOODS ITEM DETAIL' is one of { "02" , "2" }
and plausihelperstabak.calculateRoundedKleinhandelspreisOrMinimum( the code of 'KLEINHANDELSPREIS GOODS ITEM DETAIL' , FACTOR , DIVIDEND , 'ADDITIONAL VALUE' , 'MINIMAL VALUE' ) is not the rate of 'TABAK ADDTAX'
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R333f Hauptgruppe 3 Untergruppe 04 05 Tabaksteuer Ansatz
  
Description:
Wenn Hauptgruppe 3 und Untergruppe 04 oder 05, muss der Ansatz der Zusatzabgabe Tabaksteuer gleich dem Kleinhandelspreis x 0.06, aufgerundet auf die nächste 5 Rappen, sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'KLEINHANDELSPREIS GOODS ITEM DETAIL' to a goods item detail
where "24" is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'TABAK ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and 'the var_additionalTaxType_TabakSteuer_450' is the type of this additional tax ;
set 'FACTOR' to 0.06 ;
set 'ADDITIONAL VALUE' to 0 ;
if
"1" is not the rateConfirmation of 'TABAK ADDTAX'
and "3" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and the code of 'SUBGROUP GOODS ITEM DETAIL' is one of { "04" , "4" , "05" , "5" }
and plausihelperstabak.roundUpToNextHigherFiveCentime( plausihelperstabak.calculateKleinhandelspreis( the code of 'KLEINHANDELSPREIS GOODS ITEM DETAIL' , FACTOR , 'ADDITIONAL VALUE' ) ) is not the rate of 'TABAK ADDTAX'
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R334a Menge Zusatzabgaben Tabaksteuer = Zusatzmenge
  
Description:
Wenn TN 2402.1000, 2402.2010, 2402.2020, 2402.9000 und Schlüssel 999 sind, dann muss die Menge bei den Zusatzabgaben Tabaksteuer gleich der Zusatzmenge sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" }
and 999 is the statisticalCode of POSITION
and ( 'the var_additionalTaxType_TabakSteuer_450' is the type of ADDITIONALTAX
and the key of ADDITIONALTAX is one of { 'the var_addtionalTaxTypeKey_202' , 'the var_additionalTaxKey_002' }
and the quantity of ADDITIONALTAX does not equal the additionalUnit of POSITION )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R334b Menge Zusatzabgaben Tabaksteuer = Eigenmasse
  
Description:
Wenn TN 2403.1100, 2403.1900, 2403.9910, 2403.9990 und Schlüssel 999 sind, dann muss die Menge bei den Zusatzabgaben Tabaksteuer gleich der Eigenmasse sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
the commodityCode of POSITION is one of { "2403.1100" , "2403.1900" , "2403.9910" }
and 999 is the statisticalCode of POSITION
and ( 'the var_additionalTaxType_TabakSteuer_450' is the type of ADDITIONALTAX
and the key of ADDITIONALTAX is one of { "001" , "201" }
and the quantity of ADDITIONALTAX does not equal the netMass of POSITION )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R335 Menge Zusatzabgaben Tabaksteuer = Eigenmasse TN 2403_9990
  
Description:
Wenn TN 2403.9990 und Schlüssel 999 sind, dann muss die Menge bei den Zusatzabgaben Tabaksteuer gleich der Eigenmasse oder gleich der Zusatzmenge (450/002 bzw. 202) sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
if
( "1" is not the commodityCodeConfirmation of POSITION
and "1" is not the netMassConfirmation of POSITION )
and "2403.9990" is the commodityCode of POSITION
and 999 is the statisticalCode of POSITION
and ( ( 'the var_additionalTaxType_TabakSteuer_450' is the type of ADDITIONALTAX
and the key of ADDITIONALTAX is one of { "001" , "201" }
and the quantity of ADDITIONALTAX does not equal the netMass of POSITION )
or ( 'the var_additionalTaxType_TabakSteuer_450' is the type of ADDITIONALTAX
and the key of ADDITIONALTAX is one of { "002" , "202" }
and ( the additionalUnit of POSITION isNull
or the quantity of ADDITIONALTAX does not equal the additionalUnit of POSITION ) ) )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R336 Deklarationspflicht der Zusatzabgaben SOTA und Praevention
  
Description:
Wenn TN 2403.1900 oder 2403.1100, Schlüssel 999, Hauptgruppe 3, Untergruppe 2 oder 3, dann müssen die Zusatzabgaben SOTA und Prävention deklariert werden
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'ADDITIONALTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
if
"1" is not the commodityCodeConfirmation of POSITION
and the commodityCode of POSITION is one of { "2403.1900" , "2403.1100" }
and 999 is the statisticalCode of POSITION
and "3" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and the code of 'SUBGROUP GOODS ITEM DETAIL' is one of { "02" , "2" , "03" , "3" }
and ( ( the additionalTaxTypes of POSITION do not contain 'the var_additionalTaxTypeTabakpraeventionsfonds_470'
or the additionalTaxTypes of POSITION do not contain 'the var_additionalTaxType__SOTA_Gebuehren_465' )
or ( the type of ADDITIONALTAX is one of { 'the var_additionalTaxTypeTabakpraeventionsfonds_470' , 'the var_additionalTaxType__SOTA_Gebuehren_465' }
and the key of ADDITIONALTAX is not one of { 'the var_addtionalTaxTypeKey_202' , 'the var_additionalTaxKey_002' } ) )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R337a Menge Tabaksteuer = Menge Tabakpraevention TN 2402_2010 2402_2020
  
Description:
Wenn TN 2402.2010 und Schlüssel 999 sind, dann muss die Menge bei den Zusatzabgaben Tabaksteuer gleich der Menge bei Zusatzabgaben Tabakprävention sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'TABACCO_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType_TabakSteuer_450' ;
set 'PREVENTION_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxTypeTabakpraeventionsfonds_470' ;
if
the commodityCode of POSITION is one of { "2402.2010" }
and 999 is the statisticalCode of POSITION
and the key of TABACCO_ADDTAX is one of { "002" , "202" }
and the key of PREVENTION_ADDTAX is one of { "001" , "201" }
and ( the quantity of TABACCO_ADDTAX is not the quantity of PREVENTION_ADDTAX )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R337b Menge Tabaksteuer = Menge Tabakpraevention TN 2402_9000 Hauptgruppe 2
  
Description:
Wenn TN 2402.9000, Schlüssel 999 und Hauptgruppe 2 sind, dann muss die Menge bei den Zusatzabgaben Tabaksteuer gleich der Menge bei Zusatzabgaben Tabakprävention sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'TABACCO_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType_TabakSteuer_450' ;
set 'PREVENTION_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxTypeTabakpraeventionsfonds_470' ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
if
"2402.9000" is the commodityCode of POSITION
and 999 is the statisticalCode of POSITION
and "2" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and the key of TABACCO_ADDTAX is one of { "002" , "202" }
and the key of PREVENTION_ADDTAX is one of { "001" , "201" }
and ( the quantity of TABACCO_ADDTAX is not the quantity of PREVENTION_ADDTAX )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R337c Menge Tabaksteuer = MengeTabakpraevention TN 2403_1900 2403_9990 Hauptgruppe 3 Untergruppe 2
  
Description:
Wenn TN 2403.1900, Schlüssel 999, Hauptgruppe 3 und Untergruppe 2 sind, dann muss die Menge bei den Zusatzabgaben Tabaksteuer gleich der Menge bei Zusatzabgaben Tabakprävention sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'TABACCO_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType_TabakSteuer_450' ;
set 'PREVENTION_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxTypeTabakpraeventionsfonds_470' ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
if
the commodityCode of POSITION is one of { "2403.1900" }
and 999 is the statisticalCode of POSITION
and "3" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and the code of 'SUBGROUP GOODS ITEM DETAIL' is one of { "02" , "2" }
and the key of TABACCO_ADDTAX is one of { "001" , "201" }
and the key of PREVENTION_ADDTAX is one of { "002" , "202" }
and ( the quantity of TABACCO_ADDTAX is not the quantity of PREVENTION_ADDTAX )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R337d Menge Tabaksteuer = Menge Tabakpraevention TN 2402_2020
  
Description:
Wenn TN 2402.2020, Schlüssel 999 und Hauptgruppe 2, dann muss die Menge bei den Zusatzabgaben Tabaksteuer gleich die Menge bei Zusatzabgaben Tabakprävention sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'TABACCO_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType_TabakSteuer_450' ;
set 'PREVENTION_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxTypeTabakpraeventionsfonds_470' ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
if
"2402.2020" is the commodityCode of POSITION
and 999 is the statisticalCode of POSITION
and "2" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and the key of TABACCO_ADDTAX is one of { "002" , "202" }
and the key of PREVENTION_ADDTAX is one of { "001" , "201" }
and ( the quantity of TABACCO_ADDTAX is not the quantity of PREVENTION_ADDTAX )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R338a Menge Tabaksteuer = Menge SOTA TN 2402_2010 2402_2020
  
Description:
Wenn TN 2402.2010 und Schlüssel 999 sind, dann muss die Menge bei den Zusatzabgaben Tabaksteuer gleich der Menge bei Zusatzabgaben SOTA sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'TABACCO_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType_TabakSteuer_450' ;
set 'SOTA_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType__SOTA_Gebuehren_465' ;
if
the commodityCode of POSITION is one of { "2402.2010" }
and 999 is the statisticalCode of POSITION
and the key of TABACCO_ADDTAX is one of { "002" , "202" }
and the key of SOTA_ADDTAX is one of { "001" , "201" }
and ( the quantity of TABACCO_ADDTAX is not the quantity of SOTA_ADDTAX )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R338b Menge Tabaksteuer = Menge SOTA TN 2402_9000 Hauptgruppe 2
  
Description:
Wenn TN 2402.9000, Schlüssel 999 und Hauptgruppe 2 sind, dann muss die Menge bei den Zusatzabgaben Tabaksteuer gleich der Menge bei Zusatzabgaben SOTA sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'TABACCO_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType_TabakSteuer_450' ;
set 'SOTA_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType__SOTA_Gebuehren_465' ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
if
"2402.9000" is the commodityCode of POSITION
and 999 is the statisticalCode of POSITION
and "2" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and the key of TABACCO_ADDTAX is one of { "002" , "202" }
and the key of SOTA_ADDTAX is one of { "001" , "201" }
and ( the quantity of TABACCO_ADDTAX is not the quantity of SOTA_ADDTAX )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R338c Menge Tabaksteuer = Menge SOTA TN 2403_1900 2403_9990 Hauptgruppe 3 Untergruppe 2
  
Description:
Wenn TN 2403.1900, Schlüssel 999, Hauptgruppe 3 und Untergruppe 2 sind, dann muss die Menge bei den Zusatzabgaben Tabaksteuer gleich der Menge bei Zusatzabgaben SOTA sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'TABACCO_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType_TabakSteuer_450' ;
set 'SOTA_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType__SOTA_Gebuehren_465' ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
set 'SUBGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_8' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
if
the commodityCode of POSITION is one of { "2403.1900" }
and 999 is the statisticalCode of POSITION
and "3" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and the code of 'SUBGROUP GOODS ITEM DETAIL' is one of { "02" , "2" }
and the key of TABACCO_ADDTAX is one of { "001" , "201" }
and the key of SOTA_ADDTAX is one of { "002" , "202" }
and ( the quantity of TABACCO_ADDTAX is not the quantity of SOTA_ADDTAX )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R338d Menge Tabaksteuer = Menge SOTA TN 2402_2020
  
Description:
Wenn TN 2402.2020, Schlüssel 999 und Hauptgruppe 2, dann muss die Menge bei den Zusatzabgaben Tabaksteuer gleich die Menge bei Zusatzabgaben SOTA sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'TABACCO_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType_TabakSteuer_450' ;
set 'SOTA_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType__SOTA_Gebuehren_465' ;
set 'MAINGROUP GOODS ITEM DETAIL' to a goods item detail
where 'the var_goodsItemDetails_hauptgruppe_7' is the name of this goods item detail
and the positions nr of this goods item detail is the positions nr of POSITION ;
if
"2402.2020" is the commodityCode of POSITION
and 999 is the statisticalCode of POSITION
and "2" is the code of 'MAINGROUP GOODS ITEM DETAIL'
and the key of TABACCO_ADDTAX is one of { "002" , "202" }
and the key of SOTA_ADDTAX is one of { "001" , "201" }
and ( the quantity of TABACCO_ADDTAX is not the quantity of SOTA_ADDTAX )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_details' , the name of this rule ) ;
  
  
 
Rule: R339 Menge Tabaksteuer = Rohmasse
  
Description:
Wenn TN 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.1100, 2403.1900, 2403.9910, 2403.9990 und Schlüssel 911 sind, dann muss die Menge bei den Zusatzabgaben Tabaksteuer gleich der Rohmasse sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'TABACCO_ADDTAX' to an additional tax
where the positions nr of this additional tax is the positions nr of POSITION
and the type of this additional tax is 'the var_additionalTaxType_TabakSteuer_450' ;
if
the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" }
and 911 is the statisticalCode of POSITION
and the key of TABACCO_ADDTAX is one of { "011" , "012" , "013" , "014" , "015" , "016" , "017" }
and ( the quantity of TABACCO_ADDTAX is not the grossMass of POSITION )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific6' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R342 Importeur UID Ueberpruefung fuer GSD
  
Description:
Eine UID im Feld traderIdentificationNumber Importeur, die im Format CHE...9 ist, muss gemäss Stammdaten gültig sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'AREFDATA' to an abstract ref data ;
set 'HEADER' to a header ;
set 'TIN' to the importerTraderIdentificationNumber of HEADER ;
set 'nullString' to null string ;
if
any of the following conditions is true :
- ( the acceptanceDate of HEADER is after or the same as 1/1/2016
and TIN isNull )
- ( the acceptanceDate of HEADER is after or the same as 1/1/2016
and 'the helper_def_empty_String' is TIN )
- ( the acceptanceDate of HEADER is after or the same as 1/1/2016
and AREFDATA .allDeclarationUidsValid( nullString , nullString , nullString , nullString , nullString , nullString , TIN , the acceptanceDate of HEADER , true ) is false ) ,
then
'the result' .setHeaderError( "1" , 'the check header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_importer_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: R342 Importeur UID Ueberpruefung fuer GSD_old
  
Description:
Eine UID im Feld traderIdentificationNumber Importeur, die im Format CHE...9 ist, muss gemäss Stammdaten gültig sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'AREFDATA' to an abstract ref data ;
set 'HEADER' to a header ;
set 'nullString' to null string ;
if
AREFDATA .allDeclarationUidsValid( nullString , nullString , nullString , nullString , nullString , nullString , the importerTraderIdentificationNumber of HEADER , the acceptanceDate of HEADER , false ) is false
then
'the result' .setHeaderError( "1" , 'the check header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_importer_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: R343 Empfaenger UID Ueberpruefung fuer GSD
  
Description:
Eine UID im Feld traderIdentificationNumber Empfaenger, die im Format CHE...9 ist, muss gemäss Stammdaten gültig sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'AREFDATA' to an abstract ref data ;
set 'HEADER' to a header
where the acceptanceDate of this header is after or the same as 1/1/2016 ;
set 'TIN' to the consigneeTraderIdentificationNumber of HEADER ;
set 'nullString' to null string ;
if
any of the following conditions is true :
- ( the acceptanceDate of HEADER is after or the same as 1/1/2016
and TIN isNull )
- ( the acceptanceDate of HEADER is after or the same as 1/1/2016
and 'the helper_def_empty_String' is TIN )
- ( the acceptanceDate of HEADER is after or the same as 1/1/2016
and AREFDATA .allDeclarationUidsValid( nullString , nullString , TIN , nullString , nullString , nullString , nullString , the acceptanceDate of HEADER , true ) is false ) ,
then
'the result' .setHeaderError( "1" , 'the check header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_consignee_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: R343 Empfaenger UID Ueberpruefung fuer GSD_old
  
Description:
Eine UID im Feld traderIdentificationNumber Empfaenger, die im Format CHE...9 ist, muss gemäss Stammdaten gültig sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'AREFDATA' to an abstract ref data ;
set 'HEADER' to a header ;
set 'nullString' to null string ;
if
AREFDATA .allDeclarationUidsValid( nullString , nullString , the consigneeTraderIdentificationNumber of HEADER , nullString , nullString , nullString , nullString , the acceptanceDate of HEADER , false ) is false
then
'the result' .setHeaderError( "1" , 'the check header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_consignee_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: R344 Tarazuschlag wenn Eigenmasse = Rohmasse
  
Description:
WENN Verpackungscode (packagingType) 43, AA, LT, NA, NF, TK, TY, VG, VL, VO, VQ, VR, VY, WA, WC, WD, WF, WG, WH, WJ, WK, WL, WM, WN, WP, WQ, WR, WS, WT, WU, WV, WW, WX, WY, WZ, ZA, ZC, ZD, ZF, ZG, ZH, ZJ, ZK, ZL, ZM, ZN, ZP, ZQ, ZR, ZS, ZT, ZU, ZV, ZW, ZX, ZY, NE ODER NG ist
UND Bemessungsgrundlage = 1 (je 100kg brutto / Rohmasse)    
UND Zollansatz > 0    
UND Eigenmasse  = Rohmasse 
UND Tarifnummer = 1000.0000-1199.9999, 1500.0000-1599.9999, 1700.0000-1703.9999, 2200.0000-2299.9999, 2800.000-2999.9999 ODER 3800.0000-3914.9999 ist    
UND ein Tarazuschlag gemäss Stammdaten vorgesehen ist    
DANN muss FLAG Nettoveranlagung = 1 sein    
SONST Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'REFDATA' to a ref data ;
set 'POSITION' to a position ;
set 'PACKAGING' to a packaging
where the positions nr of this packaging equals the positions nr of POSITION
and the packagingType of this packaging is one of { "43" , "AA" , "LT" , "NA" , "NF" , "TK" , "TY" , "VG" , "VL" , "VO" , "VQ" , "VR" , "VY" , "WA" , "WC" , "WD" , "WF" , "WG" , "WH" , "WJ" , "WK" , "WL" , "WM" , "WN" , "WP" , "WQ" , "WR" , "WS" , "WT" , "WU" , "WV" , "WW" , "WX" , "WY" , "WZ" , "ZA" , "ZC" , "ZD" , "ZF" , "ZG" , "ZH" , "ZJ" , "ZK" , "ZL" , "ZM" , "ZN" , "ZP" , "ZQ" , "ZR" , "ZS" , "ZT" , "ZU" , "ZV" , "ZW" , "ZX" , "ZY" , "NE" , "NG" } ;
if
"1" is REFDATA .getBemessungsCodeTarif( the commodityCode of POSITION , the originCountry of POSITION , the customsFavourCode of POSITION , the preference of POSITION , the statisticalCode of POSITION )
and ( REFDATA .hasRateZero( the commodityCode of POSITION , the originCountry of POSITION , the customsFavourCode of POSITION , the preference of POSITION , the statisticalCode of POSITION ) is false
or ( the rate of POSITION is not null
and the rate of POSITION .isGreaterThan( ZERO ) ) )
and ( the netMass of POSITION isNotNull
and the grossMass of POSITION isNotNull
and the netMass of POSITION equals the grossMass of POSITION )
and ( plausi helpers.isInNumberRange( the commodityCode of POSITION , "1000.0000" , "1199.9999" )
or plausi helpers.isInNumberRange( the commodityCode of POSITION , "1500.0000" , "1599.9999" )
or plausi helpers.isInNumberRange( the commodityCode of POSITION , "1700.0000" , "1703.9999" )
or plausi helpers.isInNumberRange( the commodityCode of POSITION , "2200.0000" , "2299.9999" )
or plausi helpers.isInNumberRange( the commodityCode of POSITION , "2800.0000" , "2999.9999" )
or plausi helpers.isInNumberRange( the commodityCode of POSITION , "3800.0000" , "3914.9999" ) )
and 0 is not the number of elements in REFDATA .getTarazuschlaege( the commodityCode of POSITION )
and ( the netDuty of POSITION is null
or "1" is not the netDuty of POSITION )
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_net_duty' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_netDuty' , the name of this rule ) ;
  
  
 
Rule: R345 Widerspruch Angabe Kulturgut
  
Description:
WENN Tarifnummer 9701.0000 - 9706.9999 UND statistischer Schlüssel = 999 UND NZE-Artencode = 26 (Kulturgut) DANN Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
999 is the statisticalCode of POSITION
and plausi helpers.isInNumberRange( the commodityCode of POSITION , "9701.0000" , "9706.9999" )
and the nonCustomsLawTypes of POSITION contain "26"
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_non_customs_law' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_nonCustomsLaw' , the name of this rule ) ;
  
  
 
Rule: R346 Gueltiger ZO Code
  
Description:
Wenn im Feld Code ZO (PlaceOfUnloading) = CH und ZO vorhanden sind
DANN muss der Code ZO gemäss Stammdaten (ZKV) gültig sein
SONST Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'AREFDATA' to an abstract ref data ;
set 'HEADER' to a header ;
if
AREFDATA .isZOCodeValid( the placeOfUnloading of HEADER , "CH\\d{6}ZO\\d{4}N\\d{6}" , the acceptanceDate of HEADER ) is false
then
'the result' .setHeaderError( "1" , 'the check header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_placeOfUnloading' , the name of this rule ) ;
  
  
 
Rule: R347 Einfuhrzollanmeldung in Beanstandung
  
Description:
Wenn eine Einfuhrzollanmeldung in Beanstandung ist, dann darf der Berechtigungscode nicht 0 oder 2 sein
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
'the var_correctionCode_Erstuebermittlung_1' is not the correctionCode of HEADER
and "in Beanstandung" is the statusOfDeclaration of HEADER
then
'the result' .setHeaderError( "1" , 'the check_version' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionCode' , the name of this rule ) ;
  
  
 
Rule: R348 OHC Pruefung auf Strasse und TIN bei ZE
  
Description:
WENN Veranlagungsort = 2 (Domizil)
DANN muss der Adressblock <ZE>
UND das Feld <TraderIdentificationNumber> sowie das Feld <Strasse> im ZE-Adressblock ausgefuellt sein.
SONST Fehler
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where 'the var_clearanceLocation_Domizil_2' is the clearancelocation of this header
and 'the var_correctionCode_Erstuebermittlung_1' is the correctionCode of this header ;
if
any of the following conditions is true :
- ( the authorizedConsigneeTraderIdentificationNumber of HEADER isNull
or 'the helper_def_empty_String' is the authorizedConsigneeTraderIdentificationNumber of HEADER )
- ( the authorizedConsigneeStreet of HEADER isNull
or 'the helper_def_empty_String' is the authorizedConsigneeStreet of HEADER )
- ( the authorizedConsigneeCity of HEADER isNull
or 'the helper_def_empty_String' is the authorizedConsigneeCity of HEADER )
- ( the authorizedConsigneePostalCode of HEADER isNull
or 'the helper_def_empty_String' is the authorizedConsigneePostalCode of HEADER )
- ( the authorizedConsigneeCountry of HEADER isNull
or 'the helper_def_empty_String' is the authorizedConsigneeCountry of HEADER )
- ( the authorizedConsigneeName of HEADER isNull
or 'the helper_def_empty_String' is the authorizedConsigneeName of HEADER ) ,
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_authorizedConsignee_traderIdentificationNumber' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_authorizedConsignee_street' , the name of this rule ) ;
  
  
 
Rule: R349 ZE muss Rolle ZE haben
  
Description:
Es wird geprüft, ob der gemeldete ZE in der ZKV die Rolle ZE hat. Zu prüfen ist dies mit der UID (Feld <TraderIdentificationNumber> im ZE-Adressblock.
Status:
deployable
Locale:
en_US
 
definitions
set 'REFDATA' to a ref data ;
set 'HEADER' to a header ;
if
'the var_correctionCode_Erstuebermittlung_1' is the correctionCode of HEADER
and HEADER is has zugelassener empfaenger is true
and REFDATA .hasZugelassenerEmpfaengerWithZERole is false
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_authorizedConsignee_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: R350 ZO muss dem ZE zugewiesen sein
  
Description:
WENN ZO != CH00906ZO9999N000001 (Pseudo Code)
DANN wird geprüft, ob in der ZKV der ZO dem ZE zugewiesen ist
UND es wird in ZKV geprüft, ob die deklarierte Zollstelle der Kontrollzoll-stelle entspricht, welcher gem. ZKV der ZO zugewiesen ist.
Status:
deployable
Locale:
en_US
 
definitions
set 'REFDATA' to a ref data ;
set 'HEADER' to a header
where "CH009006ZO9999N000001" is not the placeOfUnloading of this header
and the placeOfUnloading of this header isNotNull
and 'the helper_def_empty_String' is not the placeOfUnloading of this header ;
if
'the var_correctionCode_Erstuebermittlung_1' is the correctionCode of HEADER
and REFDATA .isValidZOforZE( the placeOfUnloading of HEADER ) is false
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_placeOfUnloading' , the name of this rule ) ;
  
  
 
Rule: R351 SC3 Veredlung nur bei Import
  
Description:
Wenn keine Ausbesserung und der Veranlagungscode nicht 2 ist, darf der Ausbesserungsblock nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_repair_no' is the repair of this position
and 'the var_customsClearanceType_Veredelungsverkehr_2' is not the customsClearanceType of this position ;
if
any of the following conditions is true :
- the direction of POSITION isNotNull
- the refinementType of POSITION isNotNull
- the processType of POSITION isNotNull
- the billingType of POSITION isNotNull
- ( the repairReason of POSITION isNotNull
and 'the helper_def_empty_String' is not the repairReason of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_direction' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_refinementType' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_processType' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_billingType' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_repairReason' , the name of this rule ) ;
  
  
 
Rule: R352 SC1 Veredlung mit Veranlagungstyp 1
  
Description:
Bei Ausbesserung und Veranlagungstyp 1 duerfen der Zollbeguenstigungscode und die Warennummer 9999.9999 nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_repair_yes' is the repair of this position
and 'the var_customsClearanceType_Normalveranlagung_1' is the customsClearanceType of this position ;
if
any of the following conditions is true :
- ( the customsFavourCode of POSITION isNotNull
and "0" is not the customsFavourCode of POSITION )
- 'the var_Mustersendung_9999_9999' is the commodityCode of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_customsFavourCode' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_commodityCode' , the name of this rule ) ;
  
  
 
Rule: R353 SC4 Veredlung mit Veranlagungstyp 10 oder 11
  
Description:
Ausbesserung und Veranlagungsverfuegungen 10 und 11 duerfen nicht zusammen verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where the customsClearanceType of this position is one of { 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' } ;
if
'the var_repair_yes' is the repair of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R354 SC5 Veredlung mit Veranlagungstyp 5
  
Description:
Bei Ausbesserung und Veranlagungsverfuegung 5 darf die Warennummer 9999.9999 nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_repair_yes' is the repair of this position
and 'the var_customsClearanceType_Zollerleichterung_5' is the customsClearanceType of this position ;
if
'the var_Mustersendung_9999_9999' is the commodityCode of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_commodityCode' , the name of this rule ) ;
  
  
 
Rule: R355 SC6 Veredlung mit Veranlagungstyp 6
  
Description:
Bei Ausbesserung und Veranlagungsverfuegung 6 duerfen Zollbeguenstigungscode und die Warennummer 9999.9999 nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_repair_yes' is the repair of this position
and 'the var_customsClearanceType_Tabak_6' is the customsClearanceType of this position ;
if
any of the following conditions is true :
- ( the customsFavourCode of POSITION isNotNull
and "0" is not the customsFavourCode of POSITION )
- 'the var_Mustersendung_9999_9999' is the commodityCode of POSITION ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_customsFavourCode' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_commodityCode' , the name of this rule ) ;
  
  
 
Rule: R356 SC7 Veredlung mit Veranlagungstyp 7
  
Description:
Bei Ausbesserung und Veranlagungsverfuegung 7 duerfen Zollbeguenstigungscode und die Warennummer 9999.9999 nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position
where 'the var_repair_yes' is the repair of this position
and 'the var_customsClearanceType_ZollfreieVeranlagung_gem_ ZG_7' is the customsClearanceType of this position ;
if
any of the following conditions is true :
- 'the var_Mustersendung_9999_9999' is the commodityCode of POSITION
- ( the customsFavourCode of POSITION isNotNull
and "0" is not the customsFavourCode of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_customsFavourCode' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_commodityCode' , the name of this rule ) ;
  
  
 
Rule: R357 SC8 Veredlung mit Veranlagungstyp 8
  
Description:
Beim Veranlagungstyp 8 duerfen in den folgenden Feldern keine Angaben gemacht und die Warennummer 9999.9999 nicht verwendet werden:
- Statistischer Schluessel
- Zollnettogewicht
- Lagercode
- Zollbeguenstigungscode
- Nettoveranlagung
- Tarazuschlag
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_repair_yes' is the repair of this position
and 'the var_customsClearanceType_AbgabeFrei_8' is the customsClearanceType of this position ;
if
any of the following conditions is true :
- 0 is not the statisticalCode of POSITION
- ( the customsNetWeight of POSITION isNotNull
and 0 is not the customsNetWeight of POSITION )
- the storageType of POSITION isNotNull
- ( the customsFavourCode of POSITION isNotNull
and "0" is not the customsFavourCode of POSITION )
- ( the netDuty of POSITION isNotNull
and "0" is not the netDuty of POSITION )
- ( the tareSupplement of POSITION isNotNull
and 0 is not the tareSupplement of POSITION ) ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statisticalCode' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_customsNetWeight' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_storageType' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_customsFavourCode' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_netDuty' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_tareSupplement' , the name of this rule ) ;
  
  
 
Rule: R358 SC2 Veredlung mit Veranlagungstyp 2
  
Description:
Beim Veranlagungstyp 2 und Verkehrsrichtung "aktiv" muss das Feld Art der Veredelung/Ausbesserung ausgefuellt werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position
where 'the var_direction_activ_1' is the direction of this position
and 'the var_customsClearanceType_Veredelungsverkehr_2' is the customsClearanceType of this position ;
if
the repairReason of POSITION isNull
or 'the helper_def_empty_String' is the repairReason of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_repairReason' , the name of this rule ) ;
  
  
 
Rule: R359 SC3 Veredlung mit Veranlagungstyp 3
  
Description:
Veranlagungstyp 3 darf nicht mehr verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
'the var_customsClearanceType__Aussberungsverkehr_3' is the customsClearanceType of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R360 Erstuebermittlung Spediteurnummer
  
Description:
WENN Korrekturcode = 1 (Erstübermittlung)
UND dann muss die Spediteurnummer mit CHE beginnen
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
if
'the var_correctionCode_Erstuebermittlung_1' is the correctionCode of HEADER
and the declarantTraderIdentificationNumber of HEADER does not start with "CHE"
and the declarantTraderIdentificationNumber of HEADER is not one of { "9930" , "9130" , "9131" , "9132" , "9133" , "9929" , "1000067" , "1000068" , "1000121" , "1000900" , "1000901" }
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_declarant_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: R361 Verfahrenstyp Veredlungsverkehr
  
Description:
Wenn der Veranlagungstyp = 2 (Veredelungsverkehr) und die Verkehrsrichtung = 1 (aktiv) ist, dann darf der Verfahrenstyp nicht = 2 (vereinfacht) sein.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
'the var_customsClearanceType_Veredelungsverkehr_2' is the customsClearanceType of POSITION
and 'the var_direction_activ_1' is the direction of POSITION
and 'the var_processType_Vereinfacht_2' is the processType of POSITION
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_direction' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_repairAndRefinement_processType' , the name of this rule ) ;
  
  
 
Rule: R362 Bewilligung ASKeTI
  
Description:
Tarifnummern, die mit bestimmten Tarifnummer-Ziffern" starten und das Versendungsland nicht "EU" "EFTA" "CH" ist, dürfen nicht mit der Bewilligungsstelle ASKeti verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'POSITION' to a position
where the permitAuthorities of this position do not contain "26" ;
set 'PERMIT' to a permit ;
if
( plausi helpers.startsWithOneOf( the commodityCode of POSITION , { "0101" , "0106" , "02" , "03" , "04" , "0504" , "0505.90" , "0506" , "0511.10" , "1213.00" , "1501" , "1502" , "1503.00" , "1504" , "1505.00" , "1506.00" , "1516.10" , "16" , "1901.201" , "1901.901" , "1905.907" , "2301" , "3501" , "3502.11" , "3502.19" , "3502.20" } ) is true
or the commodityCode of POSITION is one of { "0502.1000" , "0505.1010" , "0507.1000" , "0511.9911" , "1214.9011" , "1702.1100" , "1904.9010" } )
and the dispatchCountry of HEADER is not one of { "AD" , "BE" , "BG" , "DK" , "DE" , "EE" , "FI" , "FR" , "GR" , "IE" , "IT" , "HR" , "LV" , "LT" , "LU" , "MT" , "NL" , "AT" , "PL" , "PT" , "RO" , "SE" , "SK" , "SI" , "SM" , "ES" , "CZ" , "HU" , "GB" , "CY" , "NO" , "IS" , "FO" , "CH" }
and the permitAuthority of PERMIT is not "26"
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_specific' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_commodityCode' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_dispatchCountry' , the name of this rule ) ;
  
  
 
Rule: R49 Veranlagungsort in Stammdaten
  
Description:
Gueltiger Veranlagungsort gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the clearancelocation of HEADER isNotNull
and the clearancelocation of HEADER is not one of the refClearanceLocations of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_clearanceLocation' , the name of this rule ) ;
  
  
 
Rule: R50 Anmeldungszeitpunkt in Stammdaten
  
Description:
Gueltiger Anmeldungszeitpunkt gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the declarationTime of HEADER isNotNull
and the declarationTime of HEADER is not one of the refDeclarationTimes of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_declarationTime' , the name of this rule ) ;
  
  
 
Rule: R51 Anmeldungstyp in Stammdaten
  
Description:
Gueltiger Anmeldungstyp gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to an abstract ref data ;
if
the declarationType of HEADER isNotNull
and the declarationType of HEADER is not one of the ref anmeldungs typens of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_declarationType' , the name of this rule ) ;
  
  
 
Rule: R52 Berichtigungscode in Stammdaten
  
Description:
Gueltiger Berichtigungscode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the correctionCode of HEADER isNotNull
and the correctionCode of HEADER is not one of the refCorrectionCodes of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionCode' , the name of this rule ) ;
  
  
 
Rule: R53 Berichtigungsgrund in Stammdaten
  
Description:
Gueltiger Berichtigungsgrund gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the correctionReason of HEADER isNotNull
and the correctionReason of HEADER is not one of the refCorrectionReasons of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_correctionReason' , the name of this rule ) ;
  
  
 
Rule: R54 Sprachencode in Stammdaten
  
Description:
Gueltiger Sprachencode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the language of HEADER isNotNull
and the language of HEADER is not one of the refLanguageCodes of REFDATA
then
'the result' .setHeaderError( "1" , 'the check header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_language' , the name of this rule ) ;
  
  
 
Rule: R55 Zollstellennummer in Stammdaten
  
Description:
Gueltige Zollstellennummer gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the customsOfficeNumber of HEADER isNotNull
and the customsOfficeNumber of HEADER is not one of the refCustomsOfficeNumbers of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_customsOfficeNumber' , the name of this rule ) ;
  
  
 
Rule: R56 Erzeugungsland in Stammdaten
  
Description:
Gueltiges Land gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the dispatchCountry of HEADER isNotNull
and the dispatchCountry of HEADER is not one of the refCountries of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_dispatchCountry' , the name of this rule ) ;
  
  
 
Rule: R57 Begruendung in Stammdaten
  
Description:
Gueltige Begruendung gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the reason of HEADER isNotNull
and the reason of HEADER is not one of the refReasons of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_reason' , the name of this rule ) ;
  
  
 
Rule: R58 Verkehrszweig in Stammdaten
  
Description:
Gueltiger Verkehrszweig gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the transportMode of HEADER isNotNull
and the transportMode of HEADER is not one of the refTransportModes of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_transportMeans_mode' , the name of this rule ) ;
  
  
 
Rule: R59 Transportmitteltyp in Stammdaten
  
Description:
Gueltiger Transportmitteltyp gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the transportationType of HEADER isNotNull
and the transportationType of HEADER is not one of the refTransportationTypes of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_transportMeans_type' , the name of this rule ) ;
  
  
 
Rule: R60 Transportmittelland in Stammdaten
  
Description:
Gueltiges Transportmittelland gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the transportationCountry of HEADER isNotNull
and the transportationCountry of HEADER is not one of the refCountries of REFDATA
and the transportationCountry of HEADER is not one of { "FL" , "LI" }
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_transportMeans_country' , the name of this rule ) ;
  
  
 
Rule: R61 Art Vorpapier in Stammdaten
  
Description:
Gueltige Arten Vorpapier gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data common ;
if
plausi helpers.containsAll( the previousDocumentsType_Lists of HEADER , the refPreviousDocumentTypes of REFDATA ) is false
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_previousDocument' , the name of this rule ) ;
  
  
 
Rule: R62 Versenderland in Stammdaten
  
Description:
Gueltiges Versenderland gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the consignorCountry of HEADER isNotNull
and the consignorCountry of HEADER is not one of the refCountries of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_dispatchCountry' , the name of this rule ) ;
  
  
 
Rule: R63 Importeurland in Stammdaten
  
Description:
Gueltiges Importeurland gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the importerCountry of HEADER isNotNull
and the importerCountry of HEADER is not one of the refCountries of REFDATA
and the importerCountry of HEADER is not one of { "LI" , "FL" }
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_importer_country' , the name of this rule ) ;
  
  
 
Rule: R64 ImporteurPLZ in Stammdaten
  
Description:
Gueltige Importeur-Postleitzahl gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
'the var_clearanceLocation_Erfassung_ab_Einheitsdokument_3' is not the clearancelocation of HEADER
and 'the var_clearanceLocation_Veranlagung_von_Amtes_wegen_4' is not the clearancelocation of HEADER
and the importerPostalCode of HEADER isNotNull
and the importerPostalCode of HEADER is not one of the refPostalCodes of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_importer_postalCode' , the name of this rule ) ;
  
  
 
Rule: R65 Empfaengerland in Stammdaten
  
Description:
Gueltiges Empfaengerland gem.  Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the consigneeCountry of HEADER isNotNull
and the consigneeCountry of HEADER is not one of the refCountries of REFDATA
and the consigneeCountry of HEADER is not one of { "LI" , "FL" }
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_consignee_country' , the name of this rule ) ;
  
  
 
Rule: R66 EmpfaengerPLZ in Stammdaten
  
Description:
Gueltige Empfaenger-Postleitzahl gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the consigneePostalCode of HEADER isNotNull
and the consigneePostalCode of HEADER is not one of the refPostalCodes of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_consignee_postalCode' , the name of this rule ) ;
  
  
 
Rule: R67 Spediteur in Stammdaten
  
Description:
Gueltige Spediteurnummer gemäss Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the declarantTraderIdentificationNumber of HEADER isNotNull
and the declarantTraderIdentificationNumber of HEADER is not one of the refTraderIdentificationNumbers of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_declarant_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: R68 Deklarantennummer in Stammdaten
  
Description:
Gueltige Deklarantennummer gem. Stammdaten und fuer verwendete Spediteurnummer möglich.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the declarantNumber of HEADER isNotNull
and the declarantNumber of HEADER is not one of the refDeclarantNumbers ( the declarantTraderIdentificationNumber of HEADER ) of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_declarant_number' , the name of this rule ) ;
  
  
 
Rule: R69 Deklarantenland in Stammdaten
  
Description:
Gueltiges Deklarantenland gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the declarantCountry of HEADER isNotNull
and the declarantCountry of HEADER is not one of the refCountries of REFDATA
and the declarantCountry of HEADER is not one of { "FL" , "LI" }
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_declarant_country' , the name of this rule ) ;
  
  
 
Rule: R70 Incoterms in Stammdaten
  
Description:
Gueltige Incoterms gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header ;
set 'REFDATA' to a ref data ;
if
the incoterms of HEADER isNotNull
and the incoterms of HEADER is not one of the refIncoTerms of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_incoterms' , the name of this rule ) ;
  
  
 
Rule: R71 KontoZoll in Stammdaten_old
  
Description:
Konto Zoll muss eine gültige Kontonummer gem. Stammdaten sein. Die Kontonummer 0 (Barzahler) ist nicht erlaubt.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where the customsAccount of this header is not 'the var_account_Barzahler_0' ;
set 'REFDATA' to a ref data ;
if
the customsAccount of HEADER isNotNull
and the customsAccount of HEADER is not one of the refAccountNumbers of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_customsAccount' , the name of this rule ) ;
  
  
 
Rule: R72 KontoMWST in Stammdaten_old
  
Description:
Konto MWST muss eine gültige Kontonummer gem. Stammdaten sein. Die Kontonummer 0 (Barzahler) ist nicht erlaubt.
Status:
deployable
Locale:
en_US
 
definitions
set 'HEADER' to a header
where the VATAccount of this header is not 'the var_account_Barzahler_0' ;
set 'REFDATA' to a ref data ;
if
the VATAccount of HEADER isNotNull
and the VATAccount of HEADER is not one of the refAccountNumbers of REFDATA
then
'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
'the result' .appendReferencedElement( 'the ref_business_VATAccount' , the name of this rule ) ;
  
  
 
Rule: R73 Veranlagungstyp in Stammdaten
  
Description:
Gueltiger Veranlagungstyp gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the customsClearanceType of POSITION isNotNull
and the customsClearanceType of POSITION is not one of the refCustomsClearanceTypes of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: R75 Ursprungsland in Stammdaten
  
Description:
Gueltiges Land gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the originCountry of POSITION isNotNull
and the originCountry of POSITION is not one of the refCountries of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_origin_country' , the name of this rule ) ;
  
  
 
Rule: R76 Warennummer in Stammdaten
  
Description:
Gueltige Warennummer gem. Stammdaten oder 9999.9999.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
if
"9999.9999" is not the commodityCode of POSITION
and the commodityCode of POSITION checkRefTarifNr is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_commodityCode' , the name of this rule ) ;
  
  
 
Rule: R77 Schluessel in Stammdaten
  
Description:
Gueltige Warennummer gem. Stammdaten oder 9999.9999.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
"9999.9999" is not the commodityCode of POSITION
and the statisticalCode of POSITION is not one of getRefTarifKeyNumber( the commodityCode of POSITION ) of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statisticalCode' , the name of this rule ) ;
  
  
 
Rule: R78 Lagercodes in Stammdaten
  
Description:
Gueltiger Lagercode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the storageType of POSITION isNotNull
and the storageType of POSITION is not one of the refStorageTypes of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_storageType' , the name of this rule ) ;
  
  
 
Rule: R80 Bewilligungspflichtcode in Stammdaten
  
Description:
Gueltiger Bewilligungspflichtcode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the permitObligation of POSITION isNotNull
and the permitObligation of POSITION is not one of the refPermitObligations of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permitObligation' , the name of this rule ) ;
  
  
 
Rule: R81 NZEPflichtcode in Stammdaten
  
Description:
Gueltiger NZE-Pflichtcode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the nonCustomsLawObligation of POSITION isNotNull
and the nonCustomsLawObligation of POSITION is not one of the refNZEPflichtCodes of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_nonCustomsLaw' , the name of this rule ) ;
  
  
 
Rule: R84 Verpackungscode in Stammdaten
  
Description:
Gueltiger Verpackungscode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'PACKAGING' to a packaging ;
set 'REFDATA' to a ref data ;
if
the packagingType of PACKAGING isNotNull
and the packagingType of PACKAGING is not one of the refPackagingCodes of REFDATA
then
'the result' .setPositionError( the positions nr of PACKAGING , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PACKAGING , 'the ref_goodsItem_packaging' , the name of this rule ) ;
  
  
 
Rule: R85 Art Unterlagencode in Stammdaten
  
Description:
Gueltige Art Unterlagencode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
plausi helpers.containsAll( the documentTypes of POSITION , the documentTypes of REFDATA ) is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_producedDocument' , the name of this rule ) ;
  
  
 
Rule: R86 Bewilligungstyp in Stammdaten
  
Description:
Gueltiger Bewilligungstyp gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'PERMIT' to a permit ;
set 'REFDATA' to an abstract ref data ;
if
the permitType of PERMIT isNotNull
and the permitType of PERMIT is not one of the refPermitTypes of REFDATA
then
'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of PERMIT , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R87 Bewilligungsstellencode in Stammdaten
  
Description:
Gueltiger Bewilligungsstellencode gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'PERMIT' to a permit ;
set 'REFDATA' to a ref data ;
if
the permitAuthority of PERMIT isNotNull
and the permitAuthority of PERMIT is not one of the refBewilligungsstellenCodes of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_permit' , the name of this rule ) ;
  
  
 
Rule: R88 NZEArtencode in Stammdaten
  
Description:
Gueltige NZE-Artencodes gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
plausi helpers.containsAll( the nonCustomsLawTypes of POSITION , the refNonCustomsLawTypes of REFDATA ) is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_nonCustomsLaw' , the name of this rule ) ;
  
  
 
Rule: R91 Zollbegcode in Stammdaten
  
Description:
Gueltiger Zollbeguenstigungscode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
all of the following conditions are true :
- the customsFavourCode of POSITION isNotNull
- the commodityCode of POSITION isNotNull
- the statisticalCode of POSITION isNotNull
- the customsFavourCode of POSITION is not refCustomsFavourCodes( the commodityCode of POSITION , the statisticalCode of POSITION , the customsFavourCode of POSITION ) of REFDATA ,
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_customsFavourCode' , the name of this rule ) ;
  
  
 
Rule: R92 MWST Code in Stammdaten
  
Description:
Gueltiger MWSt-Code gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
the VATCode of POSITION isNotNull
and the VATCode of POSITION is not one of the refVATCodes of REFDATA
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_valuation_VATCode' , the name of this rule ) ;
  
  
 
Rule: R93 Zusatzabgabenart in Stammdaten
  
Description:
Gueltige Zusatzabgabenarten gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
plausi helpers.containsAll( the additionalTaxTypes of POSITION , the refAdditionalTaxTypes of REFDATA ) is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R94 Zusatzabgabenschluessel in Stammdaten
  
Description:
Gueltige Zusatzabgabenschluessel gem. Stammdaten und fuer Zusatzabgabenart gueltig.
Status:
deployable
Locale:
en_US
 
definitions
set 'ADDITONALTAX' to an additional tax ;
set 'REFDATA' to a ref data ;
if
the type of ADDITONALTAX isNotNull
and the key of ADDITONALTAX isNotNull
and the key of ADDITONALTAX is not one of REFDATA .getRefZusatzabgabenSchluessel( the type of ADDITONALTAX )
then
'the result' .setPositionError( the positions nr of ADDITONALTAX , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of ADDITONALTAX , 'the ref_goodsItem_additionalTax' , the name of this rule ) ;
  
  
 
Rule: R95 Gebuehrenarten in Stammdaten
  
Description:
Gueltige Gebuehrenarten gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
set 'POSITION' to a position ;
set 'REFDATA' to a ref data ;
if
plausi helpers.containsAll( the FeeTypes of POSITION , the refFeeTypes of REFDATA ) is false
then
'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_reference_data' , the name of this rule ) ;
'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_fee' , the name of this rule ) ;