Generated on April 19, 2017 7:56:46 AM CEST
e-dec Plausi-Rules Report: Export
 
 
 
Package: plausi_ruleset_export (165 rules)
  
  
 
Rule: E001 Vorgelegte Unterlagen vollstaendig
  
Description:
Wenn Art-Unterlagencode = 865 (APS), 866 (SOO), 954 (EUR.1), 862 (Ursprungserklärung) oder 3 (Qualitätszeugnis), dann müssen Datum und Referenz der Dokumente angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'PRODUCEDDOCUMENTS' to a produced documents
      where the documentType of this produced documents is not null ;
if
   ( any of the following conditions is true :
         - 'the var_documentType_Qualitätszeugnis_3' is the documentType of PRODUCEDDOCUMENTS 
         - 'the var_documentType_Ursprungserklaerung_862' is the documentType of PRODUCEDDOCUMENTS 
         - 'the var_documentType_APS-Ursprungszeugnis_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 , )
   and ( ( the issueDate of PRODUCEDDOCUMENTS isNull
   or 'the helper_def_Space_String' is the issueDate of PRODUCEDDOCUMENTS )
   or ( the documentReferenceNumber of PRODUCEDDOCUMENTS isNull
   or '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: E002 Detail ID und Positionen
  
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 helper_def_empty_String' is the detail ID of POSITION )
   or ( 'the var_correctionCode_Erstuebermittlung_1' is the correctionCode of HEADER 
   and detail IDs are unique of HEADER is false )
   or ( 'the var_correctionCode_Korrektur_2' is the correctionCode of HEADER 
   and is correction from declarant of HEADER is true 
   and detail IDs are unique of HEADER is false )
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: E003 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: E004 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_Space_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: E006 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 " " 
   or the containerNumbers of HEADER contain "" ) )
then
   'the result' .setHeaderError( "1" , 'the check_dependency' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_container' , the name of this rule ) ;
  
  
 
Rule: E008 Bestimmungsland CH
  
Description:
Das Bestimmungsland darf nicht CH, wenn Handelsware = 1 (Handelsware) ist.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position ;
if
   the deliveryDestination of HEADER isNotNull
   and ( "CH" is the deliveryDestination of HEADER 
   and 'the var_commercialGood_Nichthandelsware_2' is not the commercialGood 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_deliveryDestination' , the name of this rule ) ;
  
  
 
Rule: E009a 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 previous version is selected of HEADER is true 
   and ( the customsOfficeNumber of HEADER isNull
   or the lastVersionCustomsOfficeNumber of HEADER is not the customsOfficeNumber 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: E009b Annullation
  
Description:
Gueltige Versions- und Zollstellennummer.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   'the var_correctionCode_Annullation_0' is the lastCorrectionCode of HEADER 
   and the lastVersionCustomsOfficeNumber of HEADER is the customsOfficeNumber 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: E009c 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: E010 Zollanmeldung in Intervention
  
Description:
Wenn die Ausfuhrzollanmeldung in Intervention ist, dann darf kein Berichtigungscode 0 (Annullation) oder 2 (Korrektur) gesetzt 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 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: E011 Zollanmeldung in Berichtigung
  
Description:
Wenn eine Ausfuhrzollanmeldung in Berechtigung ist, dann darf der Berechtigungscode nicht 0 (Annullation) oder 2 (Korrektur) 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: E012 Zollanmeldung in Berichtigungsanfrage
  
Description:
Wenn eine Ausfuhrzollanmeldung in wartend auf Annahme ist, dann darf der Berichtigungscode nicht 0 (Annullation) oder 2 (Korrektur) 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 Annahme" 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: E013a 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 'POSITION' to a position ;
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   'the var_nonCustomsLawObligation_ohne_Kontrolle_0' is the nonCustomsLawObligation of POSITION 
   and ( the number of elements in getNZEObliArtenCodes( the commodityCode of POSITION , the statisticalCode of POSITION , the deliveryDestination of HEADER ) of REFDATA is more than 0 
   or the number of elements in getNZEFakultativArtenCodes( the commodityCode of POSITION , the statisticalCode of POSITION , the deliveryDestination of HEADER ) of REFDATA is more than 0 )
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: E013b NZE-Pflicht 2
  
Description:
Gueltiger NZE-Pflichtcode: Pflichtcode 2 (ohne Kontrolle gem. Deklarant) nur moeglich, wenn fakultative  NZE-Artencodes in Stammdaten existieren.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position ;
   set 'REFDATA' to an export ref data ;
if
   'the var_nonCustomsLawObligation_ohne_Kontrolle_gem_Deklarant_2' is the nonCustomsLawObligation of POSITION 
   and the number of elements in getNZEFakultativArtenCodes( the commodityCode of POSITION , the statisticalCode of POSITION , the deliveryDestination of HEADER ) of REFDATA is 0 
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: E013c Keine NZE bei 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.
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 more than 0 
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: E014a NZE-Pflicht 1
  
Description:
Wenn der NZE-Pflichtcode 1 (mit Kontrolle vor Freigabe der Ware) ist, muss der NZE-Artencode angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   'the var_nonCustomsLawObligation_mit_Kontrolle_vor_Freigabe_1' is the nonCustomsLawObligation of POSITION 
   and 0 is 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: E014b 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 ;
   set 'REFDATA' to an export ref data ;
if
   plausi helpers.containsAll( getNZEObliArtenCodes( the commodityCode of POSITION , the statisticalCode of POSITION , the deliveryDestination of HEADER ) 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: E015a 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 ;
   set 'REFDATA' to an export ref data ;
if
   ( the statisticalValueConfirmation of POSITION isNull
   or "0" is the statisticalValueConfirmation of POSITION )
   and ( the additionalUnit of POSITION isNotNull
   and the additionalUnit of POSITION is not 0 )
   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 isNotNull
   and the amount of the statisticalValue of POSITION .divide( the additionalUnit of POSITION , 2 , 1 ) isNotNull
   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 isNotNull
   and the amount of the statisticalValue of POSITION .divide( the additionalUnit of POSITION , 2 , 1 ) isNotNull
   and 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: E015b 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 the statisticalValue of this position isNotNull ;
   set 'REFDATA' to an export ref data ;
if
   ( the statisticalValueConfirmation of POSITION isNull
   or "0" is the statisticalValueConfirmation of POSITION )
   and ( the netMass of POSITION isNotNull
   and the netMass of POSITION is not 0 )
   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 isNotNull
   and the amount of the statisticalValue of POSITION .divide( the netMass of POSITION , 2 , 1 ) isNotNull
   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 isNotNull
   and the amount of the statisticalValue of POSITION .divide( the netMass of POSITION , 2 , 1 ) isNotNull
   and 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: E016a Rohmasse - Eigenmasse
  
Description:
Wenn der Richtigcode Rohmasse nicht gesetzt ist: Wenn Rohmasse kleiner als Eigenmasse dann Fehler.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position
      where 'the var_grossMassConfirmation_gesetzt_1' is not the grossMassConfirmation of this position ;
if
   the grossMass of POSITION isNotNull
   and the netMass of POSITION isNotNull
   and the grossMass of POSITION is less than 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_grossMass' , the name of this rule ) ;
  
  
 
Rule: E018 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 ;
   set 'REFDATA' to an export 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 getUnteresStaffelgewicht( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA is more than 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: E019 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 ;
   set 'REFDATA' to an export ref data ;
if
   'the var_additionalUnit_Zusatzmenge_2' is one of getMengenCodeTypes( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA 
   and the additionalUnit of POSITION isNull
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: E020a 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 ;
   set 'REFDATA' to an export ref data ;
if
   the statisticalCode of POSITION isNotNull
   and the netMass of POSITION isNotNull
   and the commodityCode of POSITION isNotNull
   and getStaffelgewichtscode( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA 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 'the var_additionalUnitConfirmation_1' is not the additonalUnitConfirmation of POSITION 
   and ( the additionalUnit of POSITION isNotNull
   and 0 is not the additionalUnit of POSITION )
   and 'the var_Staffelgewichtscode_2' is getStaffelgewichtscode( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA 
   and ( plausi helpers.divide( the netMass of POSITION , the additionalUnit of POSITION , 3 , 1 ) is less than getUnteresStaffelgewicht( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA 
   or plausi helpers.divide( the netMass of POSITION , the additionalUnit of POSITION , 3 , 1 ) is more than getOberesStaffelgewicht( 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: E020b Staffelgewichtscode Zusatzmenge 0
  
Description:
Wenn Staffelgewichtscode = 2 (Verhaeltnis 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 ;
   set 'REFDATA' to an export ref data ;
if
   'the var_additionalUnitConfirmation_1' is not the additonalUnitConfirmation of POSITION 
   and the additionalUnit of POSITION isNotNull
   and the additionalUnit of POSITION is 0 
   and 'the var_Staffelgewichtscode_2' is getStaffelgewichtscode( 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: E021a Packstuecke
  
Description:
Wenn der Verpackungscode VG, VL, VO, VQ, VR ,VY oder VS ist, dann ist das Zeichen optional und die Anzahl darf keinen Wert enthalten. 

E021 Packaging Export Spezifikation vom Zoll:
http://www.ezv.admin.ch/themen/00476/02544/02657/index.html?lang=de
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   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 { "VG" , "VL" , "VO" , "VQ" , "VR" , "VY" , "VS" }
   and the quantity of PACKAGING isNotNull
   and 'the helper_def_empty_String' is not 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: E021b Packstuecke
  
Description:
Packstuecke mit Verpackungscode "NE", "NG" und "NF" darf die Anzahl nicht null oder 0 sein.

E021 Packaging Export Spezifikation vom Zoll:
http://www.ezv.admin.ch/themen/00476/02544/02657/index.html?lang=de
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   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" , "NG" , "NF" }
   and ( the quantity of PACKAGING isNull
   or "0" 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: E021c Packstuecke
  
Description:
Bei anderen Verpackungscodes muss das Zeichen und die Anzahl angegeben werden.

E021 Packaging Export Spezifikation vom Zoll:
http://www.ezv.admin.ch/themen/00476/02544/02657/index.html?lang=de
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   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" , "NF" , "NG" , "VG" , "VL" , "VO" , "VQ" , "VR" , "VY" , "VS" }
   and ( the packagingReference of PACKAGING isNull
   or 'the helper_def_empty_String' is the packagingReference of PACKAGING 
   or the quantity of PACKAGING isNull
   or '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: E021d Beipack
  
Description:
In erster Warenposition darf es kein Beipack geben.

E021 Packaging Export Spezifikation vom Zoll:
http://www.ezv.admin.ch/themen/00476/02544/02657/index.html?lang=de
Status:
deployable
Locale:
en_US
 
definitions
   set 'PACKAGING' to a packaging ;
if
   the packagingType of PACKAGING is not one of { "VG" , "VL" , "VO" , "VQ" , "VR" , "VY" , "VS" , "NE" , "NG" , "NF" }
   and "9999" is the quantity of PACKAGING 
then
   print "This rule is implemented in e-dec Core and only for documentation in the rule engine" ;
  
  
 
Rule: E022 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 ;
   set 'REFDATA' to an export ref data ;
if
   "61" is getBemessungsCodeFromMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA 
   and ( the additonalUnitConfirmation of POSITION isNull
   or "0" is the additonalUnitConfirmation of POSITION )
   and ( the additionalUnit of POSITION isNull
   or the additionalUnit of POSITION is 0 )
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: E023 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 ;
   set 'REFDATA' to an export ref data ;
if
   "51" is getBemessungsCodeFromMittelwert( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA 
   and ( the netMassConfirmation of POSITION isNull
   or "0" is the netMassConfirmation of POSITION )
   and ( the netMass of POSITION isNull
   or the netMass of POSITION is 0 )
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: E025a Nullwerte Statistischer und MWST Wert
  
Description:
Wenn der statistischer Wert = (0 oder null) , dann ist das ein Fehler.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the statisticalValue of POSITION isNull
   or ZERO is the statisticalValue 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 ) ;
  
  
 
Rule: E025b 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 dies ein Fehler.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   ( the grossMass of POSITION isNull
   or the grossMass of POSITION is 0 )
   and ( ( the netMass of POSITION isNull
   or the netMass of POSITION is 0 )
   or ( the additionalUnit of POSITION isNull
   or the additionalUnit of POSITION is 0 ) )
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 ) ;
   '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_grossMass' , the name of this rule ) ;
  
  
 
Rule: E027a SC8 Abgabenbefreiung
  
Description:
Wenn der Veranlagungstyp 8 (Abgabenfrei) ist, dann der Handelswarencode 2 (Nichthandelsware) sein. 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
   'the var_commercialGood_Nichthandelsware_2' is not the commercialGood of POSITION 
   or the grossMass of POSITION isNull
   or the grossMass of POSITION is 0 
   or the statisticalValue of POSITION isNull
   or the statisticalValue of POSITION is ZERO 
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: E027b SC8 Abgabenbefreiung
  
Description:
Bei Veranlagungstyp 8 darf das Zollnettogewicht 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
   ( the customsNetWeight of POSITION isNotNull
   and 0 is not the customsNetWeight 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: E028 Veranlagungsort in Stammdaten
  
Description:
Gueltiger Veranlagungsort gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export 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: E029 Anmeldungszeitpunkt in Stammdaten
  
Description:
Gueltiger Anmeldungszeitpunkt gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the declarationTime of HEADER is not null
   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: E030 Anmeldungstyp in Stammdaten
  
Description:
Gueltiger Anmeldungstyp gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the declarationType of HEADER isNotNull
   and the declarationType of HEADER is not one of the refDeclarationTypes 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: E031 Berichtigungscode in Stammdaten
  
Description:
GueltigerBerichtigungscode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the correctionCode of HEADER is not null
   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: E032 Berichtigungsgrund in Stammdaten
  
Description:
Gueltiger Berichtigungsgrund gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the correctionReason of HEADER is not null
   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: E033 Sprachencode in Stammdaten
  
Description:
Gueltiger Sprachencode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the language of HEADER is not null
   and the language of HEADER is not one of the refLanguageCodes of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_language' , the name of this rule ) ;
  
  
 
Rule: E034 Zollstellennummer in Stammdaten
  
Description:
Gueltige Zollstellennummer gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the customsOfficeNumber of HEADER is not null
   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: E036 Erzeugungsland in Stammdaten
  
Description:
Gueltiges Land gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export 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: E037 Begruendung in Stammdaten
  
Description:
Gueltige Begruendung gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export 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: E038 Verkehrszweig in Stammdaten
  
Description:
Gueltiger Verkehrszweig gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the transportMode of HEADER is not null
   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: E039 Transportmittelland in Stammdaten
  
Description:
Gueltiges Transportmittelland gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the transportationCountry of HEADER is not null
   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: E040 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: E041 Versenderland in Stammdaten
  
Description:
Das Land Versender/Ausführer muss CH sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the consignorCountry of HEADER is not null
   and the consignorCountry of HEADER is not one of { "CH" , "LI" }
then
   'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_consignor_country' , the name of this rule ) ;
  
  
 
Rule: E042 VersenderPLZ in Stammdaten
  
Description:
Gueltige "PLZ" Versender / Ausfuehrer gem. Stammdaten
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the consignorPostalCode of HEADER isNotNull
   and the consignorPostalCode 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_consignor_postalCode' , the name of this rule ) ;
  
  
 
Rule: E043 Empfaengerland in Stammdaten
  
Description:
Gueltiges Empfaengerland gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the consigneeCountry of HEADER is not null
   and the consigneeCountry 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_consignee_country' , the name of this rule ) ;
  
  
 
Rule: E044 Transporteur in Stammdaten
  
Description:
Gueltige Transporteurnummer gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the carrierTraderIdentificationNumber of HEADER isNotNull
   and the carrierTraderIdentificationNumber of HEADER is not one of the reTransporteurNrs of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_carrier_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: E045 Spediteur in Stammdaten
  
Description:
Gueltige Spediteurnummer gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the declarantTraderIdentificationNumber of HEADER is not null
   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: E046 Deklarantennummer in Stammdaten
  
Description:
Gueltige Deklarantennummer gem. Stammdaten und fuer verwendete Spediteurnummer moeglich.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the declarantNumber of HEADER is not null
   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: E047 Deklarantenland in Stammdaten
  
Description:
Das Deklarantland muss falls angegeben CH sein.
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 declarantCountry of HEADER is not null
   and the declarantCountry of HEADER is not one of { "CH" , "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: E048 Incoterms in Stammdaten
  
Description:
Gueltige Incoterms gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the incoterms of HEADER is not null
   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: E049 Veranlagungstyp in Stammdaten
  
Description:
Gueltiger Veranlagungstyp gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export 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: E050 Warennummer in Stammdaten
  
Description:
Gueltige Warennummer gem. Stammdaten oder 9999.9999.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export ref data ;
if
   the commodityCode of POSITION is not 'the var_Mustersendung_9999_9999' 
   and checkRefTarifNumber of REFDATA with the commodityCode of POSITION 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: E051 Schluessel in Stammdaten
  
Description:
Gueltiger Schluessel gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export ref data ;
if
   the statisticalCode of POSITION is not one of getRefTarifKeyNumber( the commodityCode of POSITION ) of REFDATA 
   and 'the var_Mustersendung_9999_9999' is not 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_statisticalCode' , the name of this rule ) ;
  
  
 
Rule: E053 Bewilligungspflichtcode in Stammdaten
  
Description:
Gueltiger Bewilligungspflichtcode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export 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: E054 NZEPflichtcode in Stammdaten
  
Description:
Gueltiger NZE-Pflichtcode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export 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_nonCustomsLawObligation' , the name of this rule ) ;
  
  
 
Rule: E055 Verpackungscode in Stammdaten
  
Description:
Gueltiger Verpackungscode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to an abstract ref data ;
   set 'PACKAGING' to a packaging ;
if
   the packagingType of PACKAGING isNotNull
   and the packagingType of PACKAGING is not one of the refPackagingTypes 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: E056 Art Unterlagencode in Stammdaten
  
Description:
Gueltige Art Unterlagencode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export 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: E057 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: E058 Bewilligungsstellencode in Stammdaten
  
Description:
Gueltiger Bewilligungsstellencode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'PERMIT' to a permit ;
   set 'REFDATA' to an export 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 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: E059 NZEArtencode in Stammdaten
  
Description:
Gueltige NZE-Artencodes gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export 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: E060 Verkehrsrichtung in Stammdaten
  
Description:
Gueltige Verkehrsrichtung gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export 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: E061 Veredelungstyp in Stammdaten
  
Description:
Gueltiger Veredelungstyp gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export 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: E062 Verfahrenstyp in Stammdaten
  
Description:
Gueltiger Verfahrenstyp gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export 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: E063 Abrechnungstyp in Stammdaten
  
Description:
Gueltiger Abrechnungstyp gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export 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: E066 Bestimmungsland in Stammdaten
  
Description:
Gueltige Bestimmungsland gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the deliveryDestination of HEADER isNotNull
   and the deliveryDestination 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_deliveryDestination' , the name of this rule ) ;
  
  
 
Rule: E067a Sensible Goods
  
Description:
Ungueltiger Sensible Goods, die Code muss 0 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'SENSIBLEGOOD' to a sensible good
      where the clearancelocation of HEADER is not 'the var_clearanceLocation_e_dec_web_5' ;
if
   the good nummer of SENSIBLEGOOD is one of { "0207.12" , "0207.14" , "1701.12" , "1701.13" , "1701.14" , "1701.91" , "1701.99" , "2208.20" , "2208.30" , "2208.40" , "2208.50" , "2208.60" , "2208.70" , "2208.90" , "2402.20" , "2403.11" , "2403.19" }
   and the good nummer of SENSIBLEGOOD is not "2208.90" 
   and the code of SENSIBLEGOOD isNotNull
   and the code of SENSIBLEGOOD is not 0 
then
   'the result' .setPositionError( the positions nr of SENSIBLEGOOD , "1" , 'the check_specific8' , the name of this rule ) ;
   'the result' .appendReferencedElement( the positions nr of SENSIBLEGOOD , 'the ref_goodsItem_sensibleGoods' , the name of this rule ) ;
  
  
 
Rule: E067b Sensible Goods
  
Description:
Ungültiger Sensible Goods Code
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'SENSIBLEGOOD' to a sensible good
      where the clearancelocation of HEADER is not 'the var_clearanceLocation_e_dec_web_5' ;
if
   the good nummer of SENSIBLEGOOD is one of { "0207.12" , "0207.14" , "1701.12" , "1701.13" , "1701.14" , "1701.91" , "1701.99" , "2208.20" , "2208.30" , "2208.40" , "2208.50" , "2208.60" , "2208.70" , "2208.90" , "2402.20" , "2403.11" , "2403.19" }
   and the good nummer of SENSIBLEGOOD is "2208.90" 
   and ( ( ( the code of SENSIBLEGOOD isNull
   or the code of SENSIBLEGOOD is 0 )
   and SENSIBLEGOOD has quantity is true )
   or ( the code of SENSIBLEGOOD isNotNull
   and the code of SENSIBLEGOOD is not 0 
   and SENSIBLEGOOD has quantity is false ) )
then
   'the result' .setPositionError( the positions nr of SENSIBLEGOOD , "1" , 'the check_specific8' , the name of this rule ) ;
   'the result' .appendReferencedElement( the positions nr of SENSIBLEGOOD , 'the ref_goodsItem_sensibleGoods' , the name of this rule ) ;
  
  
 
Rule: E067c Sensible Goods
  
Description:
Bei Waren die Sensible Goods Angaben gem. Stammdaten erfordern, muessen diese auch gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position
      where the clearancelocation of HEADER is not 'the var_clearanceLocation_e_dec_web_5' ;
if
   the commodityCode6digit of POSITION is one of { "0207.12" , "0207.14" , "1701.12" , "1701.13" , "1701.14" , "1701.91" , "1701.99" , "2208.20" , "2208.30" , "2208.40" , "2208.50" , "2208.60" , "2208.70" , "2208.90" , "2402.20" , "2403.11" , "2403.19" }
   and the number of elements in the sensible goods of POSITION is 0 
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_sensibleGoods' , the name of this rule ) ;
  
  
 
Rule: E067d Nicht SensibleGoods
  
Description:
Nur empfindliche Waren dürfen als solche deklariert werden alle anderen nicht.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position
      where the clearancelocation of HEADER is not 'the var_clearanceLocation_e_dec_web_5' ;
if
   the commodityCode6digit of POSITION is not one of { "0207.12" , "0207.14" , "1701.12" , "1701.13" , "1701.14" , "1701.91" , "1701.99" , "2208.20" , "2208.30" , "2208.40" , "2208.50" , "2208.60" , "2208.70" , "2208.90" , "2402.20" , "2403.11" , "2403.19" }
   and the number of elements in the sensible goods of POSITION is more than 0 
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_sensibleGoods' , the name of this rule ) ;
  
  
 
Rule: E067e Sensible Goods Menge groesser als null
  
Description:
Wenn der Warencode 1 oder 0 angegeben wurde, dann darf die empfindliche Warenmenge nicht null sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'SENSIBLEGOOD' to a sensible good
      where the clearancelocation of HEADER is not 'the var_clearanceLocation_e_dec_web_5' ;
if
   the code of SENSIBLEGOOD is one of { 1 , 0 }
   and ( the quantity of SENSIBLEGOOD equals 0 
   or the quantity of SENSIBLEGOOD is less than 0 )
then
   'the result' .setPositionError( the positions nr of SENSIBLEGOOD , "1" , 'the check_specific8' , the name of this rule ) ;
   'the result' .appendReferencedElement( the positions nr of SENSIBLEGOOD , 'the ref_goodsItem_sensibleGoods' , the name of this rule ) ;
  
  
 
Rule: E068 Zusatzinformationen
  
Description:
Gueltige Zusatzinformationen gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'GOODS ITEM DETAILS' to a goods item detail ;
   set 'REFDATA' to an export ref data ;
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 code of 'GOODS ITEM DETAILS' is not 'the helper_def_empty_String' )
   and ( the name of 'GOODS ITEM DETAILS' isNull
   or the name of 'GOODS ITEM DETAILS' is 'the helper_def_empty_String' ) )
   or ( the number of elements in getGoodsItemCodes( the name of 'GOODS ITEM DETAILS' ) of REFDATA is 0 
   and ( the code of 'GOODS ITEM DETAILS' isNull
   or the code of 'GOODS ITEM DETAILS' is 'the helper_def_empty_String' ) )
   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: E071a Bewilligungspflicht 0
  
Description:
Wenn die Summe der Rohmassen mit der gleichen Tarifnummer/Schlüssel > Bewilligungstoleranzmenge gem. Stammdaten ist und Bewilligung gem. Stammdaten obligatorisch,
dann darf der Bewilligungspflichtcode nicht 0 sein
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
   set 'POSITION' to a position ;
if
   getSummOfGrossMass( the commodityCode of POSITION , the statisticalCode of POSITION ) of HEADER isNotNull
   and getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the deliveryDestination of HEADER ) 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 deliveryDestination of HEADER ) of REFDATA 
   and "0" is the permitObligation of POSITION 
   and getBewilligungObligatorisch( the commodityCode of POSITION , the statisticalCode of POSITION , the deliveryDestination of HEADER ) of REFDATA is one of { "0" , "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_permitObligation' , the name of this rule ) ;
  
  
 
Rule: E071b Bewilligungspflicht 2
  
Description:
Wenn eine Bewilligung obligatorisch, oder für eine Ware gar nicht vorgesehen, dann darf der Bewilligungspflichtcode 2 (bew. Frei gem. Deklarant) nicht übermittelt werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
   set 'POSITION' to a position ;
if
   getSummOfGrossMass( the commodityCode of POSITION , the statisticalCode of POSITION ) of HEADER isNotNull
   and getToleranzMenge( the commodityCode of POSITION , the statisticalCode of POSITION , the deliveryDestination of HEADER ) 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 deliveryDestination of HEADER ) of REFDATA 
   and "2" is the permitObligation of POSITION 
   and ( getBewilligungObligatorisch( the commodityCode of POSITION , the statisticalCode of POSITION , the deliveryDestination of HEADER ) of REFDATA isNull
   or "0" is getBewilligungObligatorisch( the commodityCode of POSITION , the statisticalCode of POSITION , the deliveryDestination of HEADER ) of REFDATA )
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_permitObligation' , the name of this rule ) ;
  
  
 
Rule: E071c Obligatorische Bewilligunsstellencodes
  
Description:
Wenn eine Bewilligungsstelle obligatorisch ist, dann muss eine Bewilligung uebermittelt werden. Ausnahme: Berechtigte Spediteurnummer und übermittelte Bewilligungsstelle = 25 (armasuisse)
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
   set 'POSITION' to a position
      where the declarantTraderIdentificationNumber of HEADER is not one of { 'the var_UID_032' , 'the var_UID_033' , 'the var_UID_036' , 'the var_UID_043' , 'the var_UID_044' , 'the var_UID_045' , 'the var_UID_046' , 'the var_UID_047' }
         or the permitAuthorities of this position do not contain "25" ;
if
   "0" is getBewilligungObligatorisch( the commodityCode of POSITION , the statisticalCode of POSITION , the deliveryDestination of HEADER ) of REFDATA 
   and plausi helpers.containsAll( getObligatorischeBewilligungsstellencodes( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA , the permitAuthorities 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: E072 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 var_permitObligation_bewilligungspflichtig_1' is the permitObligation of POSITION 
   and false is isBewilligungsTypAndNumberAndStellenCodeInList( null string , null string , null string ) of POSITION 
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: E073a nicht erlaubte eBewilligungstypen für Bewilligungsstellen
  
Description:
WENN Bewilligungsstellencode = (1, 2, 5, 6, 7, 8, 12, 15, 17, 18, 20, 21, 22, 23, 24, 26, 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" , "26" , "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: E073b Bewilligungsstellen und eEinzelbewilligungen
  
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' , '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: E073c Bewilligungsstellen und eGeneralbewilligungen
  
Description:
WENN Bewilligungstyp = 12 (eGeneralbewilligung) ist, DANN muss Bewilligungsstelle = 3 (BWIP) oder 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: E073d eBewilligungsstellen und eBewilligungstypen
  
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: E073fPilot_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: E075a 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: E083 Bestimmungsland erforderlich
  
Description:
Das Bestimmungsland muss im Export immer vorhanden sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the deliveryDestination of HEADER isNull
then
   'the result' .setHeaderError( "1" , 'the check_required_attributes' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_deliveryDestination' , the name of this rule ) ;
  
  
 
Rule: E086 Versender erforderlich
  
Description:
Der Versender muss im Export immer mit Name, Land, PLZ, Stadt und Strasse vorhanden sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   HEADER hasConsignor is false 
   or ( HEADER hasConsignor is true 
   and ( the consignorStreet of HEADER isNull
   or 'the helper_def_empty_String' is the consignorStreet of HEADER ) )
then
   'the result' .setHeaderError( "1" , 'the check_required_attributes' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_consignor_street' , the name of this rule ) ;
  
  
 
Rule: E092 Mwst-Nummer erforderlich
  
Description:
Die Mwst-Nummer muss im Export immer vorhanden sein.
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 VATNumber of HEADER isNull
   or 'the helper_def_empty_String' is the VATNumber of HEADER 
   or "0" is the VATNumber of HEADER 
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 ) ;
  
  
 
Rule: E096 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 ;
   set 'REFDATA' to an export ref data ;
if
   'the var_quantityCode_netMass_1' is one of getMengenCodeTypes( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA 
   and ( the netMass of POSITION isNull
   or the netMass of POSITION is 0 )
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: E115 SC1 nicht erlaubte Angaben
  
Description:
Bei Abfertigungstyp 1 ohne Ausbesserung darf die Warennummer darf nicht 9999.9999 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position
      where 'the var_processType_Ordentlich_1' 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_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: E118 ZV Autorisierung KontrollzollAmt
  
Description:
Wenn die Clearance Location 2 (domizil)  ist, dann muss Dienststellennummer (CustomOfficeNumber) in der Liste der authorisierten Kontrollzollaemter sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   ( 'the var_clearanceLocation_Domizil_2' is the clearancelocation of HEADER 
   and the customsOfficeNumber of HEADER isNull )
   or ( 'the var_clearanceLocation_Domizil_2' is the clearancelocation of HEADER 
   and the customsOfficeNumber of HEADER is not one of the refZVKontrollzollaemters of REFDATA )
then
   'the result' .setHeaderError( "1" , 'the check_authorisation' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_clearanceLocation' , the name of this rule ) ;
  
  
 
Rule: E123 Warennummer 9999_9999
  
Description:
WENN Tarifnummer = 9999.9999 DANN Nichhandelswarencode 2 SONNST Fehler.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   'the var_Mustersendung_9999_9999' is the commodityCode of POSITION 
   and 'the var_commercialGood_Nichthandelsware_2' is not the commercialGood 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_commercialGood' , the name of this rule ) ;
  
  
 
Rule: E127a Veranlagungscode 1 VOC-Menge
  
Description:
WENN Veranlagungstyp = 1 mit Rückerstattungstyp 1 oder Veranalgungstyp = 2 mit Rückerstattungstyp 1 DANN = Eingabe der VOC-Menge in kg in Feld ¿VOCQuantity¿ SONST = Fehler
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the customsClearanceType of POSITION is one of { 'the var_customsClearanceType_Normalveranlagung_1' , 'the var_customsClearanceType_Veredelungsverkehr_2' }
   and 'the var_refundType_VOC_1' is the refundType of POSITION 
   and ( the VOCquantity of POSITION isNull
   or 0 is the VOCquantity 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_refund_VOCQuantity' , the name of this rule ) ;
  
  
 
Rule: E127b VOC-Menge groesser Eigenmasse
  
Description:
WENN VOC-Menge > Eigenmasse DANN = Fehler
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the VOCquantity of POSITION isNotNull
   and the netMass of POSITION isNotNull
   and the VOCquantity of POSITION is not 0 
   and the VOCquantity of POSITION is more than the netMass 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_refund_VOCQuantity' , the name of this rule ) ;
  
  
 
Rule: E128a VOC-Menge Veranlagungscode 1
  
Description:
WENN Eingabe der VOC-Menge in kg in Feld VOCQuantity DANN Rückerstattungstyp 1 SONST = Fehler
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the VOCquantity of POSITION isNotNull
   and 'the var_refundType_VOC_1' is not the refundType 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_refund_VOCQuantity' , the name of this rule ) ;
  
  
 
Rule: E131 Ausbesserungsverkehr
  
Description:
WENN Abfertigungstyp = 2 UND Verfahrenstyp = 1 DANN ist der Bewilligungstyp und die Warennummer obligatorisch und die Bewilligungstelle muss 98 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_processType_Ordentlich_1' is the processType of POSITION 
   and isBewilligungstypAndBewilligungsnrNotNull( 'the var_bewilligungsstelle_98' ) 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: E132 Veredelungsverkehr Abrechnungstyp
  
Description:
WENN Veranlagungstyp 2 UND Verkehrsrichtung 2 (passiv) DANN Abrechnungstyp = "Nichterhebung" SONST Fehler
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_passiv_2' is the direction of POSITION 
   and 'the var_billingType_Nichterhebung_1' is not the billingType 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_repairAndRefinement_billingType' , the name of this rule ) ;
  
  
 
Rule: E133 Veredelungsverkehr besonderes Verfahren
  
Description:
WENN Veranlagungstyp 2 UND Verfahren 3 (besonderer V) DANN Verkehrsrichtung  = 1 (aktiv) und Veredelungstyp = 1 (Eigenveredelung) und Abrechnungstyp = 2 (Rueckerstattung) SONST Fehler
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_processType_Besonders_3' is the processType of POSITION 
   and ( 'the var_direction_activ_1' is not the direction of POSITION 
   or 'the var_refinementType_Eigenveredelung_1' is not the refinementType of POSITION 
   or 'the var_billingType_Rueckerstattung_2' is not the billingType 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_repairAndRefinement_billingType' , 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: E134 Veredelungsverkehr
  
Description:
Wenn Veranlagungstyp = 2 und keine Ausbesserung, dann muss der Handelswarecode 1 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_Veredelungsverkehr_2' is the customsClearanceType of this position ;
if
   'the var_commercialGood_Handelsware_1' is not the commercialGood 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_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: E135 Veredelungsverkehr vereinfachtes Verfahren
  
Description:
WENN Veranlagungstyp 2 UND Verfahren = "vereinfacht" DANN muss die Verkehrsrichtung = 2 (passiv) sein
SONST Fehler
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_processType_Vereinfacht_2' is the processType of POSITION 
   and 'the var_direction_passiv_2' is not the direction 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_repairAndRefinement_direction' , the name of this rule ) ;
  
  
 
Rule: E136 Veredelungsverkehr ordentliches Verfahren
  
Description:
Wenn Veranlagungstyp = 2 UND Verfahrenstyp 1 (Ordentliches Verfahren) DANN muss eine gueltige Zollstellennummer gemaess Stammdaten deklariert sein SONST Fehler
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export ref data ;
if
   'the var_customsClearanceType_Veredelungsverkehr_2' is the customsClearanceType of POSITION 
   and 'the var_processType_Ordentlich_1' is the processType of POSITION 
   and ( the number of elements in the notificationCodes of POSITION is 0 
   or isMeldestellenCodeInDienststellen( the notificationCodes of POSITION ) of REFDATA 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_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: E138 Ausbesserungsverkehr
  
Description:
Bei Ausbesserung muss die Handelsware = 2 (nein) sein, und die Felder Verkehrsrichtung und Art der Ausbesserung muessen ausgefüllt sein.
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 var_commercialGood_Nichthandelsware_2' is not the commercialGood of POSITION 
         - the direction of POSITION isNull
         - ( 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_statistics' , the name of this rule ) ;
   'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: E149 ZV TransferToTransit
  
Description:
Wenn TransferToTransit in einer Vorversion den Wert 1 (Yes/Ja) zugewiesen wurde DANN darf der Wert nicht mehr veraendert werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   'the var_clearanceLocation_Domizil_2' is the clearancelocation of HEADER 
   and the customsOfficeNumber of HEADER isNotNull
   and "1" is the transferToTransitSystemPreviousVersion of HEADER 
   and ( the transferToTransitSystem of HEADER isNull
   or "0" is the transferToTransitSystem of HEADER )
then
   'the result' .setHeaderError( "1" , 'the check_version' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_transferToTransitSystem' , the name of this rule ) ;
  
  
 
Rule: E150 Keine Korrektur bei warten auf Selektion
  
Description:
Wenn die Ausfuhrzollanmeldung in wartend auf Selektion ist, dann darf kein Berichtigungscode 0 (Annullation) gesetzt sein.   
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   "0" is the correctionCode of HEADER 
   and "wartend auf Selektion" 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: E151 Nicht ZV TransferToTransit
  
Description:
Ein nicht ZV darf keine Zollanmeldung ans TransferToTransit System schicken.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   'the var_clearanceLocation_Zollstelle_1' is the clearancelocation of HEADER 
   and 'the var_transferToTransit_1' is the transferToTransitSystem of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_authorisation' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_transferToTransitSystem' , the name of this rule ) ;
  
  
 
Rule: E152 ZWILA Versender
  
Description:
Nur bestimmte Versender sind für Zwila zulaessig.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   'the var_warehouseCoded_Type_2' is the warehouseCoded of HEADER 
   and the consignorTraderIdentificationNumber of HEADER is not one of { 'the var_UID_034' , 'the var_UID_035' , 'the var_UID_037' }
then
   'the result' .setHeaderError( "1" , 'the check_version' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_consignor_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: E152 ZWILA Versender_old
  
Description:
Nur bestimmte Versender sind für Zwila zulaessig.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   'the var_warehouseCoded_Type_2' is the warehouseCoded of HEADER 
   and the consignorTraderIdentificationNumber of HEADER is not one of { 'the var_UID_034' , 'the var_UID_035' , 'the var_UID_037' , 'the var_UID_038' , 'the var_UID_039' , 'the var_UID_040' , 'the var_UID_041' , 'the var_UID_005' , 'the var_UID_042' }
then
   'the result' .setHeaderError( "1" , 'the check_version' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_consignor_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: E153 NCTS Korrekturzaehler
  
Description:
Bei NCTS sind maximal 9 Korrekturen moeglich.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header
      where the lastNCTSVersion of this header isNotNull ;
if
   the lastNCTSVersion of HEADER is more than 8 
   and 'the var_correctionCode_Annullation_0' is not 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: E155 Abfertigungsort und Anmeldungszeitpunkt
  
Description:
Bei Veranlagungsort = 1 (Zollstelle) darf  der Anmeldungszeitpunkt entweder 1 (Gestellung) oder 3 (Nachträgliche Anmeldung) sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   'the var_clearanceLocation_Zollstelle_1' is the clearancelocation of HEADER 
   and ( 'the var_declarationTime_Gestellung_1' is not the declarationTime of HEADER 
   and 'the var_declarationTime_nachtraeglicheAnmeldung_3' is not the declarationTime of HEADER )
then
   'the result' .setHeaderError( "1" , 'the check_authorisation' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_clearanceLocation' , the name of this rule ) ;
  
  
 
Rule: E159 Versender security
  
Description:
Der Versender Security muss im Export immer mit Name, Land, PLZ, Stadt und Strasse vorhanden sein, wenn Security verlangt ist. Wenn Security nicht angegeben ist, duerfen die Felder nicht benutzt werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   ( 'the var_security_yes_1' is the security of HEADER 
   and ( HEADER has consignor security is false 
   or the consignorSecurityStreet of HEADER isNull
   or the consignorSecurityStreet of HEADER is 'the helper_def_empty_String' ) )
   or ( 'the var_security_yes_1' is not the security of HEADER 
   and ( HEADER has consignor security is true 
   or ( the consignorSecurityStreet of HEADER isNotNull
   and the consignorSecurityStreet of HEADER is not 'the helper_def_empty_String' ) ) )
then
   'the result' .setHeaderError( "1" , 'the check_required_attributes' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_consignor_street' , the name of this rule ) ;
  
  
 
Rule: E160 Empfaenger security
  
Description:
Der Empfaenger Security muss im Export immer mit Name, Land, PLZ und Stadt  Strasse vorhanden sein, wenn Security verlangt ist. Wenn Security nicht angegeben ist, dürfen die Felder nicht benutzt werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   ( 'the var_security_yes_1' is the security of HEADER 
   and ( HEADER has consignee security is false 
   or the consigneeSecurityStreet of HEADER isNull
   or the consigneeSecurityStreet of HEADER is 'the helper_def_empty_String' ) )
   or ( 'the var_security_yes_1' is not the security of HEADER 
   and ( HEADER has consignee security is true 
   or ( the consigneeSecurityStreet of HEADER isNotNull
   and the consigneeSecurityStreet of HEADER is not 'the helper_def_empty_String' ) ) )
then
   'the result' .setHeaderError( "1" , 'the check_required_attributes' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_consigneeSecurity_country' , the name of this rule ) ;
  
  
 
Rule: E161 Dienstellennummer Deklaration
  
Description:
Die Zollstellennummer darf bei Erstanmeldung nicht deklariert werden, wenn Veranlagungsort=1 (Zollstelle).
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   'the var_clearanceLocation_Zollstelle_1' is the clearancelocation of HEADER 
   and 'the var_correctionCode_Erstuebermittlung_1' is the correctionCode of HEADER 
   and the customsOfficeNumber of HEADER isNotNull
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: E162 Versender security PLZ
  
Description:
Bei Security muss Versender Security inklusive PLZ angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the consignorSecurityPostalCode of HEADER isNotNull
   and the consignorSecurityPostalCode 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_consignorSecurity_postalCode' , the name of this rule ) ;
  
  
 
Rule: E163 Versender security Land
  
Description:
Bei Security muss Versender Security inklusive Land angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the consignorSecurityCountry of HEADER isNotNull
   and the consignorSecurityCountry 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_consignorSecurity_country' , the name of this rule ) ;
  
  
 
Rule: E164 Empfaenger security land
  
Description:
Bei Security muss Empfänger Security inklusive Land angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the consigneeSecurityCountry of HEADER isNotNull
   and the consigneeSecurityCountry 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_consigneeSecurity_country' , the name of this rule ) ;
  
  
 
Rule: E165 Bestimmungland nicht Sicherheitszone security
  
Description:
WENN das Bestimmungsland != ein Sicherheitszone-Land DANN muss das Feld "Security"  = 1 sein SONST muss das Feld ¿Security¿ = 0 (nein) sein
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/20/2010 ;
   set 'REFDATA' to an export ref data ;
if
   ( 'the var_Laendergruppe_Sicherheitszone_300001' is not one of getRefLaendergruppen( the deliveryDestination of HEADER ) of REFDATA 
   and 'the var_security_yes_1' is not the security of HEADER )
   or ( 'the var_Laendergruppe_Sicherheitszone_300001' is one of getRefLaendergruppen( the deliveryDestination of HEADER ) of REFDATA 
   and 'the var_security_yes_1' is the security of HEADER )
then
   'the result' .setHeaderError( "1" , 'the check_export_additional_information' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_deliveryDestination' , the name of this rule ) ;
  
  
 
Rule: E169 NCTS Produced Documents
  
Description:
Gueltiger Art Unterlage Code gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'PRODUCED DOCUMENTS' to a produced documents ;
   set 'REFDATA' to an export ref data ;
if
   the documentType of 'PRODUCED DOCUMENTS' is not one of the refValidDocumentTypes of REFDATA 
then
   'the result' .setPositionError( the positions nr of 'PRODUCED DOCUMENTS' , "1" , 'the check_specific8' , the name of this rule ) ;
   'the result' .appendReferencedElement( the positions nr of 'PRODUCED DOCUMENTS' , 'the ref_goodsItem_producedDocument' , the name of this rule ) ;
  
  
 
Rule: E170 NCTS Produced Documents Reference Number
  
Description:
Die Zeichen Unterlagen muss verschieden als null sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to an export ref data ;
   set 'PRODUCED DOCUMENTS' to a produced documents ;
if
   the documentType of 'PRODUCED DOCUMENTS' is one of the refValidDocumentTypes of REFDATA 
   and ( the documentReferenceNumber of 'PRODUCED DOCUMENTS' isNull
   or 'the helper_def_Space_String' is the documentReferenceNumber of 'PRODUCED DOCUMENTS' 
   or 'the helper_def_empty_String' is the documentReferenceNumber of 'PRODUCED DOCUMENTS' )
then
   'the result' .setPositionError( the positions nr of 'PRODUCED DOCUMENTS' , "1" , 'the check_specific8' , the name of this rule ) ;
   'the result' .appendReferencedElement( the positions nr of 'PRODUCED DOCUMENTS' , 'the ref_goodsItem_producedDocument' , the name of this rule ) ;
  
  
 
Rule: E172 NCTS accept only locale DE FR IT
  
Description:
Es werden nur die Sprachen DE, FR, IT akzeptiert.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the serviceType of HEADER is 'the var_serviceType_export_2' 
   and the language of HEADER is not one of { "DE" , "de" , "FR" , "fr" , "IT" , "it" }
then
   'the result' .setHeaderError( "1" , 'the check_authorisation' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_language' , the name of this rule ) ;
  
  
 
Rule: E174 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
   'the var_correctionCode_Korrektur_2' is the correctionCode of HEADER 
   and is correction from declarant of HEADER is false 
   and HEADER VV bezogen is true 
   and ( the rmb type of HEADER isNull
   or the rmb type of HEADER is not one of { "0" , "1" } )
then
   'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
  
  
 
Rule: E175 Gueltiger Rueckerstattungstyp gem Stammdaten
  
Description:
Gueltiger Rueckerstattungstyp gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to an export ref data ;
if
   the refundType of POSITION isNotNull
   and the refundType of POSITION is not one of the refRefundTypes 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_refund' , the name of this rule ) ;
  
  
 
Rule: E176 Rueckerstattungstyp 6 und Veranlagungstyp1 nicht gueltig
  
Description:
Bei Rueckerstattungstyp 6 (Rueckerstattung andere) sind folgende Veranlagungstypen nicht erlaubt: 1(Normalveranlagung) , 2 (Veredelungsverkehr), 6 (Tabak) oder 8 (AbgabeFrei).
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   'the var_refundType_Rueckerstattung_andere_6' is the refundType of POSITION 
   and the customsClearanceType of POSITION is one of { 'the var_customsClearanceType_Normalveranlagung_1' , 'the var_customsClearanceType_Veredelungsverkehr_2' , 'the var_customsClearanceType_Tabak_6' , 'the var_customsClearanceType_AbgabeFrei_8' }
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_refund' , the name of this rule ) ;
  
  
 
Rule: E178 Versandvorgang Kennnummer fuer besondere Umstaende
  
Description:
WENN der Code Security = 1
DANN ist die Kennnummer für besondere Umstaende = O
SONST darf das Feld nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   "1" is not the security of HEADER 
   and the specificCircumstanceIndicator of HEADER isNotNull
then
   'the result' .setHeaderError( "1" , 'the check_export_additional_information' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_specificCircumstanceIndicator' , the name of this rule ) ;
  
  
 
Rule: E179a Versandvorgang UCR
  
Description:
WENN der Code "Security" = 1
UND das Feld "Kennnummer für  besondere Umstände" nicht A (Post & Expressgutsendungen) ist
DANN ist das Feld "UCR" = M
SONST ist das Feld "UCR" = O
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   "1" is the security of HEADER 
   and "A" is not the specificCircumstanceIndicator of HEADER 
   and the uniqueConsignmentReferenceNumber of HEADER isNull
then
   'the result' .setHeaderError( "1" , 'the check_export_additional_information' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_uniqueConsignmentReferenceNumber' , the name of this rule ) ;
  
  
 
Rule: E179b Versandvorgang UCR
  
Description:
WENN der Code Security nicht 1 ist
DANN darf das Feld nicht benutzt werden
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   "1" is not the security of HEADER 
   and the uniqueConsignmentReferenceNumber of HEADER isNotNull
then
   'the result' .setHeaderError( "1" , 'the check_export_additional_information' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_uniqueConsignmentReferenceNumber' , the name of this rule ) ;
  
  
 
Rule: E180 Kennnummer fuer besondere Umstaender gemaess Stammdaten
  
Description:
Gueltige Kennnumer für besondere Umstaende gemaess Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export ref data ;
if
   the specificCircumstanceIndicator of HEADER isNotNull
   and the specificCircumstanceIndicator of HEADER is not one of the refSpecificCircumstanceIndicators of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_export_additional_information' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_specificCircumstanceIndicator' , the name of this rule ) ;
  
  
 
Rule: E182 Kennnummer fuer besondere Umstaender darf nicht E sein
  
Description:
E182 Kennnummer fuer besondere Umstaender darf nicht E sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   "E" is the specificCircumstanceIndicator of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_export_additional_information' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_specificCircumstanceIndicator' , the name of this rule ) ;
  
  
 
Rule: E183 ZollstellenNummer Vorversion
  
Description:
Wenn eine Zollstellennummer in der Vorversion angegeben ist, dann darf die Zollstellennummer nicht geändern werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the customsOfficeNumber of HEADER isNotNull
   and the lastVersionCustomsOfficeNumber 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_customsOfficeNumber' , the name of this rule ) ;
  
  
 
Rule: E184 EmpfaengerStrasse erforderlich
  
Description:
Der Empfaenger muss im Export immer eine Strasse und eine Stadt angegeben haben.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the consigneeStreet of HEADER isNull
   or the consigneeStreet of HEADER is 'the helper_def_empty_String' 
   or the consigneeStreet of HEADER is 'the helper_def_Space_String' 
   or the consigneeCity of HEADER isNull
   or the consigneeCity of HEADER is 'the helper_def_empty_String' 
   or the consigneeCity of HEADER is 'the helper_def_Space_String' 
then
   'the result' .setHeaderError( "1" , 'the check_required_attributes' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_consignee_street' , the name of this rule ) ;
  
  
 
Rule: E186 Empfänger Security TIN
  
Description:
WENN der Code Security = 1
UND Kennnummer für besondere Umstände = E (AEO)
UND die zwei ersten Charakter der Zollstellennummer != EU-Land
DANN ist das Feld "TIN-Nr" Empfänger Security = M
SONST darf das Feld "TIN-Nr" Empfänger Security nicht benutzt werden
SONST
WENN der Code "Security" nicht 1
DANN darf das Feld "TIN-Nr" Empfänger Security nicht benutzt werden
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   ( "1" is the security of HEADER 
   and "E" is the specificCircumstanceIndicator of HEADER 
   and the consigneeSecurityTraderIdentificationNumber of HEADER isNull )
   or ( "1" is not the security of HEADER 
   and the consigneeSecurityTraderIdentificationNumber of HEADER isNotNull )
   or ( "E" is not the specificCircumstanceIndicator of HEADER 
   and the consigneeSecurityTraderIdentificationNumber of HEADER isNotNull )
then
   'the result' .setHeaderError( "1" , 'the check_export_additional_information' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_consigneeSecurity_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: E187 AnzahlWarenpositionen
  
Description:
Wenn Anzahl Positionen >999 Positionen dann Fehler
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the numberOfPositions of HEADER is more than 'the var_max_numberOfPositions_999' 
then
   'the result' .setHeaderError( "1" , 'the check_statistics' , the name of this rule ) ;
  
  
 
Rule: E188 Postversand nicht erlaubt
  
Description:
Wenn die Felder für Postversand nicht leer sind dann Fehler.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the postalShipmentType of HEADER isNotNull
   or the inspectionCode of HEADER isNotNull
   or the procedureType of HEADER isNotNull
then
   'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_postalShipment_type' , the name of this rule ) ;
  
  
 
Rule: E189 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
   'the var_correctionCode_Annullation_0' is not the correctionCode of HEADER 
   and 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: E190 Rechnungswaehrungscode
  
Description:
Gueltiger Rechnungswaehrungscode gemaess Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to an export 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: E191 Versendungsland nicht erlaubt
  
Description:
Das Feld Versendungsland (dispatchCountry) darf für Exportveranlagung nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the dispatchCountry of HEADER isNotNull
   and "" is not the dispatchCountry of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_specific' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_dispatchCountry' , the name of this rule ) ;
  
  
 
Rule: E192 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: E193 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: E194 Veranlagungstyp 3 (Aussbesserungsverkehr)
  
Description:
Bei Veranlagungstyp ungleich 2 und ohne Ausbesserung darf der Block Veredelung/Ausbesserung nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position
      where 'the var_customsClearanceType_Veredelungsverkehr_2' is not 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 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_specific3' , 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: E195 Veranlagungsort 5 darf nicht veraendert werden
  
Description:
WENN (Korrekturcode = 2 oder 0) und Veranlagungsort der Vorversion = 5 DANN muss der Veranlagungsort der Korrektur resp. Annullierung auch 5 sein SONST Fehler.
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: E196 LagernummerMinoest und Firmennummer Steuerpflichtiger
  
Description:
WENN Export Code = 11, 12, 13 oder 14 DANN sind Lagernummer und Firmennummer Steuerpflichtiger obligatorisch SONST Fehler
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position ;
   set 'GOODS ITEM DETAILS' to a goods item detail ;
if
   ( 'the var_goodsItemDetails_exportCode_27' is the name of 'GOODS ITEM DETAILS' 
   and ( 'the var_goodsItemDetails_exportCode_11' is the code of 'GOODS ITEM DETAILS' 
   or 'the var_goodsItemDetails_exportCode_12' is the code of 'GOODS ITEM DETAILS' 
   or 'the var_goodsItemDetails_exportCode_13' is the code of 'GOODS ITEM DETAILS' 
   or 'the var_goodsItemDetails_exportCode_14' is the code of 'GOODS ITEM DETAILS' ) )
   and ( the companyNumberTaxpayer of HEADER isNull
   or 'the var_goodsItemDetails_lagerNr_26' is not one of the waren detail namens of POSITION )
then
   'the result' .setPositionError( the positions nr of 'GOODS ITEM DETAILS' , "1" , 'the check_mineral_oil_tax' , 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: E198 Keine Zollstellennummer wenn Veranlagungsort 1
  
Description:
Wenn der Veranlagungsort 1 (Zollstelle) ist, dann darf bei der Korrektur keine Zollstellennummer angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   'the var_clearanceLocation_Zollstelle_1' is the clearancelocation of HEADER 
   and 'the var_correctionCode_Korrektur_2' is the correctionCode of HEADER 
   and the lastVersionCustomsOfficeNumber of HEADER isNull
   and the customsOfficeNumber of HEADER isNotNull
then
   'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_customsOfficeNumber' , the name of this rule ) ;
  
  
 
Rule: E199 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: E201 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: E202 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: E203 Lagercode nicht erlaubt
  
Description:
Das Feld "Lagercode" (storageType) darf beim Export nicht angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the storageType of POSITION is not null
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_service_type' , the name of this rule ) ;
   'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_storageType' , the name of this rule ) ;
  
  
 
Rule: E205 Rückwaren als Handelswaren
  
Description:
WENN Veranlagungstyp 4 übermittelt DANN muss die Handelsware = ja (1) sein SONST Fehler.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position
      where the commodityCode of this position is not 'the var_commodityCode_9999_9999' ;
if
   'the var_customsClearanceType_Rueckwaren_4' is the customsClearanceType of POSITION 
   and 'the var_commercialGood_Handelsware_1' is not the commercialGood of POSITION 
   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: E208 Versender UID Ueberpruefung fuer GSD
  
Description:
Eine UID im Feld traderIdentificationNumber Versender, 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 consignorTraderIdentificationNumber 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( TIN , nullString , nullString , 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_consignor_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: E208 Versender UID Ueberpruefung fuer GSD_old
  
Description:
Eine UID im Feld traderIdentificationNumber Versender, 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( the consignorTraderIdentificationNumber of HEADER , nullString , nullString , 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_consignor_traderIdentificationNumber' , the name of this rule ) ;
  
  
 
Rule: E209 Rueckerstattungstypen
  
Description:
Der gewählte Rückerstattungstyp darf lediglich für "Normalveranlagung" (Veranlagungstyp 1) und "Veredelungsverkehr" (Veranalgungstyp 2) verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the refundType of POSITION is one of { 'the var_refundType_VOC_1' , 'the var_refundType_Ausfuhrbeitraege_2' , 'the var_refundType_Alkohol_3' , 'the var_refundType_1to3_4' , 'the var_refundType_Biersteuer_5' }
   and the customsClearanceType of POSITION is one of { 'the var_customsClearanceType_Ausbesserungsverkehr_3' , 'the var_customsClearanceType_Rueckwaren_4' , 'the var_customsClearanceType_Tabak_6' , 'the var_customsClearanceType_AbgabeFrei_8' }
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_refund_type' , the name of this rule ) ;
   'the result' .appendReferencedElement( the positions nr of POSITION , 'the ref_goodsItem_statistic_customsClearanceType' , the name of this rule ) ;
  
  
 
Rule: E210 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 placeOfLoading 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_placeOfLoading' , the name of this rule ) ;
  
  
 
Rule: E211 Bewilligungsstelle 25 nur Armasuisse oder Ruag erlaubt
  
Description:
WENN Bewilligungsstelle = 25 (armasuisse) UND Spediteurnummer nicht berechtigt DANN  Fehler
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 equals the positions nr of POSITION ;
if
   "25" is the permitAuthority of PERMIT 
   and the declarantTraderIdentificationNumber of HEADER is not one of { 'the var_UID_032' , 'the var_UID_033' , 'the var_UID_036' , 'the var_UID_043' , 'the var_UID_044' , 'the var_UID_045' , 'the var_UID_046' , 'the var_UID_047' }
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: E212 Zollanmeldung in Beanstandung
  
Description:
Wenn eine Ausfuhrzollanmeldung in Beanstandung ist, dann darf der Berechtigungscode nicht 0 (Annullation) oder 2 (Korrektur) 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: E213 Zolllager Erwerber und Einlagerer nicht gefuellt
  
Description:
WENN <Bezeichnung des Lagers> = Zollager (Warehouse-Coded Code 1)
DANN müssen die Adressblöcke <Erwerber> und <Einlagerer> ausgefüllt sein
SONST Fehler
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header
      where the warehouseCoded of this header isNotNull ;
if
   'the var_warehouseCoded_Type_1' is the warehouseCoded of HEADER 
   and ( HEADER has einlagerer is false 
   or HEADER has erwerber is false )
then
   'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_vendee' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_bailor' , the name of this rule ) ;
  
  
 
Rule: E214 Nicht Zolllager Erwerber und Einlagerer gefuellt
  
Description:
WENN <Bezeichnung des Lagers> != Zollager (Warehouse-Coded Code 1) ODER <Bezeichnung des Lagers> ist in der Zollanmeldung nicht vorhanden
DANN dürfen die Adressblöcke <Erwerber> und <Einlagerer> nicht verwendet sein SONST Fehler
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   ( the warehouseCoded of HEADER isNull
   or 'the var_warehouseCoded_Type_1' is not the warehouseCoded of HEADER )
   and ( HEADER has einlagerer is true 
   or HEADER has erwerber is true )
then
   'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_vendee' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_bailor' , the name of this rule ) ;
  
  
 
Rule: E215 Erwerberland
  
Description:
WENN Adressblock <Erwerber> angegeben
DANN Erwerber-Land != CH oder FL
SONST Fehler
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the vendeeCountry of HEADER isNotNull
   and the vendeeCountry of HEADER is one of { "CH" , "FL" }
then
   'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_vendee_country' , the name of this rule ) ;
  
  
 
Rule: E216 SC8 Veranlagungstyp 8
  
Description:
Beim Veranlagungstyp 8 (abgabenfrei) mit Ausbesserung darf das Feld Gewicht 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_AbgabeFrei_8' is the customsClearanceType of this position ;
if
   ( the customsNetWeight of POSITION isNotNull
   and 0 is not the customsNetWeight 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_customsNetWeight' , the name of this rule ) ;
  
  
 
Rule: E217 SC1 Veranlagungstyp 1
  
Description:
Beim Veranlagungstyp 1 (Normalveranlagung) darf 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 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: E218 SC3 Veranlagungstyp 4 und 6
  
Description:
Bei einer Ausbesserung, die nicht im Veredelungsverkehr ausgeführt wird, dürfen die Felder Veredelungstyp, Verfahrenstyp und Abrechnungstyp 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_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_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 ) ;
   '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: E219 SC2 Veranlagungstyp 2
  
Description:
Bei Ausbesserug und Veranlagungstyp 2 muessen die Felder Verkehrsrichtung, Veredlungstyp, Verfahrenstyp und Abrechnungstyp ausgefuellt 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
   any of the following conditions is true :
         - the direction of POSITION isNull
         - the refinementType of POSITION isNull
         - the processType of POSITION isNull
         - the billingType of POSITION isNull ,
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 ) ;
  
  
 
Rule: E220 SC4 Veranlagungstyp 4
  
Description:
Bei Veranlagungstyp 4 darf Ausbesserung nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position
      where the customsClearanceType of this position is 'the var_customsClearanceType_Rueckwaren_4' ;
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: E221 SC2 Veranlagungstyp 2
  
Description:
Beim Veranlagungstyp 2 und Verkehrsrichtung 2 (passiv) muss das Feld Art der Veredelung/Ausbesserung ausgefuellt werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position
      where 'the var_direction_passiv_2' 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: E222 SC3 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: E223 OHC Bei Erwerber muss Strasse angegeben sein
  
Description:
WENN Adressblock <Erwerber> angegeben ist,
DANN muss dort die Strasse angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header
      where this header has erwerber is true ;
if
   'the helper_def_empty_String' is the vendeeStreet of HEADER 
   or the vendeeStreet of HEADER isNull
then
   'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
  
  
 
Rule: E224 OHC Bei Einlagerer muss Strasse angegeben sein
  
Description:
WENN Adressblock <Einlagerer> angegeben ist,
DANN muss dort die Strasse angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header
      where this header has einlagerer is true ;
if
   'the helper_def_empty_String' is the bailorStreet of HEADER 
   or the bailorStreet of HEADER isNull
then
   'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_bailor_street' , the name of this rule ) ;
  
  
 
Rule: E225 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 ) ;