Generated on April 19, 2017 7:59:53 AM CEST
e-dec Plausi-Rules Report: Import
 
 
 
Package: plausi_ruleset_import (342 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, 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: R314 Bewilligungsstellen und eEinzelbewilligungen_old
  
Description:
WENN Bewilligungstyp = 11 (eEinzelbewilligung) DANN muss Bewilligungsstelle = 3 (BWIP), 4 (BWKM) oder 11 (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' }
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: R315 Bewilligungsstellen und eGeneralbewilligungen_old
  
Description:
WENN Bewilligungstyp = 12 (eGeneralbewilligung) ist, DANN muss Bewilligungsstelle = 3 (BWIP), 4 (BWKM) 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' }
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: R316 eBewilligungsstellen und eBewilligungstypen_old
  
Description:
WENN Bewilligungsstellencode gemäss Stammdaten = 3 (BWIP) oder 4 (BWKM)
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' }
   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 muss der Verfahrenstyp = 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: 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 ) ;