Generated on September 28, 2016 1:06:30 PM CEST
e-dec Plausi-Rules Report: IPV
 
 
 
Package: plausi_ruleset_ipv (152 rules)
  
  
 
Rule: P10 Containernummer nicht erlaubt
  
Description:
Das Feld Container Nummer darf nicht angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the number of elements in the containerNumbers of HEADER is not 0 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P100a Zusatzabgaben obligatorisch
  
Description:
Wenn kein Lagercode angegeben oder Lagercode 1 oder 2 und Zusatzabgabenart -schluessel und Ursprungsland gem. Stammdaten obligatorisch sind, muss Art, Schluessel und Menge angegeben werden und fuer Tarifnummer und Warenschluessel gueltig sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   the commodityCode of POSITION is not one of { "9999.9999" , "9898.9898" }
   and checkZusatzabgabenObli( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION , the additionalTaxes of POSITION ) of REFDATA is false 
   and ( the storageType of POSITION is one of { "1" , "2" }
   or the storageType of POSITION isNull )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P100b Zusatzabgaben Gruppenpflicht
  
Description:
Wenn kein Lagercode angegeben oder Lagercode 1 oder 2 und Zusatzabgabenart -schluessel und Ursprungsland gem. Stammdaten gruppenplichtig sind, muss eine Zusatzabgabe pro Gruppe und fuer Tarifnummer und Warenschluessel gueltig sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   the commodityCode of POSITION is not one of { "9999.9999" , "9898.9898" }
   and REFDATA .checkZusatzabgebenGruppenpflichten( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION , the additionalTaxes of POSITION ) is false 
   and ( the storageType of POSITION is one of { "1" , "2" }
   or the storageType of POSITION isNull )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P100c Richtigcode Zusatzabgabe obligatorisch
  
Description:
Wenn keine Zusatzabgaben gem. Stammdaten angebeben werden müssen und Zusatzabgaben vorhanden dann muss der Richtigcode für Zusatzabgabenansatz vorhanden sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'ADDTAX' to an additional tax ;
   set 'POSITION' to a position
      where the positions nr of this position is the positions nr of ADDTAX ;
   set 'REFDATA' to a ref data ;
if
   the commodityCode of POSITION is not one of { "9999.9999" , "9898.9898" }
   and isZusatzabgabenPreviewed( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION , the type of ADDTAX , the key of ADDTAX ) of REFDATA is false 
   and the rateConfirmation of ADDTAX isNull
then
   'the result' .setPositionError( the positions nr of ADDTAX , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P101 Bemessungscode 11
  
Description:
Wenn gem. Stammdaten für die angemeldete Tarifnummer/Schlüssel die Bemessungsgrundlage/Zusatzabgaben = 11 (je 100kg brutto) ist dann ist das Feld Rohmasse obligatorisch (> 0 / kein Defaultwert) und das Feld Rohmasse muss gleich gross sein wie das Feld Zusatzabgaben Menge.
Status:
deployable
Locale:
en_US
 
definitions
   set 'ADDTAX' to an additional tax ;
   set 'POSITION' to a position
      where the positions nr of this position is the positions nr of ADDTAX ;
   set 'REFDATA' to a ref data ;
if
   "11" is getBemessungsCodeZusatzabgabe( the type of ADDTAX , the key of ADDTAX ) of REFDATA 
   and ( the grossMass of POSITION isNull
   or the grossMass of POSITION is at most 0 
   or ( POSITION .getZusatzabgabenmengeProArt( the type of ADDTAX ) isNotNull
   and the grossMass of POSITION is not POSITION .getZusatzabgabenmengeProArt( the type of ADDTAX ) ) )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P102 Bemessungscode 24
  
Description:
Wenn gem. Stammdaten für die angemeldete Tarifnummer/Schlüssel die Bemessungsgrundlage/Zusatzabgaben = 24 (je 1000 kg Eigenmasse) ist, dann ist das Feld Eigenmasse obligatorisch und das Feld Eigenmasse muss gleich gross sein wie das Feld Zusatzabgaben Menge.
Status:
deployable
Locale:
en_US
 
definitions
   set 'ADDTAX' to an additional tax ;
   set 'POSITION' to a position
      where the positions nr of this position is the positions nr of ADDTAX ;
   set 'REFDATA' to a ref data ;
if
   "24" is getBemessungsCodeZusatzabgabe( the type of ADDTAX , the key of ADDTAX ) of REFDATA 
   and ( the netMass of POSITION isNull
   or the netMass of POSITION is at most 0 
   or ( POSITION .getZusatzabgabenmengeProArt( the type of ADDTAX ) isNotNull
   and the netMass of POSITION is not POSITION .getZusatzabgabenmengeProArt( the type of ADDTAX ) ) )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P104a Zusatzabgaben vollstaendig
  
Description:
Wenn Zusatzabgaben angegeben werden, muss die Art, die Menge und der Schluessel angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'ADD_TAX' to an additional tax ;
if
   ( the type of ADD_TAX isNotNull
   or ( the quantity of ADD_TAX isNotNull
   and the quantity of ADD_TAX is not 0 )
   or ( the key of ADD_TAX isNotNull
   and the key of ADD_TAX is not 'the helper_def_empty_String' ) )
   and ( the type of ADD_TAX isNull
   or the quantity of ADD_TAX isNull
   or the quantity of ADD_TAX is 0 
   or the key of ADD_TAX isNull
   or the key of ADD_TAX is 'the helper_def_empty_String' )
then
   'the result' .setPositionError( the positions nr of ADD_TAX , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P104b Zusatzabgabenart 280
  
Description:
Wenn die Zusatzabgabenart 280 ist, dann muss Volumenprozent gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'ADD_TAX' to an additional tax ;
if
   the type of ADD_TAX isNotNull
   and the type of ADD_TAX is 'the var_additionalTaxType_Monopolgebuehren_280' 
   and ( the alcoholLevel of ADD_TAX isNull
   or the alcoholLevel of ADD_TAX is 0 )
then
   'the result' .setPositionError( the positions nr of ADD_TAX , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P104c Zusatzabgaben ohne Volumenprozent
  
Description:
Wenn die Zusatzabgabenart gleich 290, 450, 460, 465, 470, 480, 600-640, 660, 700, 710, 720, 730, 790 oder 970 ist, dann darf Volumenprozent nicht angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'ADD_TAX' to an additional tax ;
if
   ( the type of ADD_TAX is one of { 'the var_additionalTaxType_Grenztieraerztliche_Untersuchungsgebuehren_290' , 'the var_additionalTaxType_TabakSteuer_450' , 'the var_additionalTaxType_Banderolensteuer_460' , 'the var_additionalTaxType__SOTA_Gebuehren_465' , 'the var_additionalTaxTypeTabakpraeventionsfonds_470' , 'the var_additionalTaxType_Biersteuer_480' , 'the var_additionalTaxType_Automobilsteuer_660' , 'the var_addtionalTaxType_Lenkungsabgabe_VOC_700' , 'the var_additionalTaxType_710' , 'the var_additionalTaxType_720' , 'the var_additionalTaxType_730' , 'the var_additionalTaxType_790' , 'the var_additionalTaxType_Vorgezogene_EntsorgungsGebuehr_GetraenkeVerpackung_Glas_970' }
   or ( the type of ADD_TAX isNotNull
   and the type of ADD_TAX is between 'the var_additionalTaxType_MineralOelSteuer_600' and 'the var_additionalTaxType_MineralOelSteuer_Brennstoffe_AndereMinaralOel_Produkte_640' ) )
   and the alcoholLevel of ADD_TAX isNotNull
   and the alcoholLevel of ADD_TAX is not 0 
then
   'the result' .setPositionError( the positions nr of ADD_TAX , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P105 Zusatzabgaben-Ansatz und Richtigcode
  
Description:
Wenn der Zusatzabgaben-Ansatz deklariert wird, dann muss der Richtigcode Zusatzabgaben-Ansatz gesetzt  (=1) sein. Sonst darf der Richtigcode nicht gesetzt werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'ADD_TAX' to an additional tax ;
if
   ( the rate of ADD_TAX isNotNull
   and "1" is not the rateConfirmation of ADD_TAX )
   or ( the rate of ADD_TAX isNull
   and "1" is the rateConfirmation of ADD_TAX )
then
   'the result' .setPositionError( the positions nr of ADD_TAX , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P106 Zusatzabgabenart 700
  
Description:
Wenn die Zusatzabgabenart 700 und die Eigenmasse angegeben ist, dann muss die Zusatzabgabenmenge kleiner oder gleich der Eigenmasse sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   true is POSITION has any additionalTaxes
   and 'the var_addtionalTaxType_Lenkungsabgabe_VOC_700' is one of the additionalTaxTypes of POSITION 
   and the netMass of POSITION isNotNull
   and the netMass of POSITION is not 0 
   and POSITION .getZusatzabgabenmengeProArt( 'the var_addtionalTaxType_Lenkungsabgabe_VOC_700' ) isNotNull
   and POSITION .getZusatzabgabenmengeProArt( 'the var_addtionalTaxType_Lenkungsabgabe_VOC_700' ) is more than the netMass of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P107 Zusatzabgabenart 280
  
Description:
Wenn die Zusatzabgabenart 280 und die Zusatzmenge angegeben ist, dann muss die Summe der Zusatzabgabenmengen gleich sein wie die Zusatzmenge.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   POSITION has any additionalTaxes is true 
   and 'the var_additionalTaxType_Monopolgebuehren_280' is one of the additionalTaxTypes of POSITION 
   and ( none of the following conditions are true :
         - the additionalUnit of POSITION isNull
         - the additionalUnit of POSITION is 0 , )
   and any of the following conditions is true :
         - POSITION .getZusatzabgabenmengeProArt( 'the var_additionalTaxType_Monopolgebuehren_280' ) is less than ( the additionalUnit of POSITION - 5 )
         - POSITION .getZusatzabgabenmengeProArt( 'the var_additionalTaxType_Monopolgebuehren_280' ) is more than ( the additionalUnit of POSITION + 5 ) ,
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P108a Zusatzabgaben nicht erlaubt
  
Description:
Wenn die Tarifnummer 9898.9898 oder 9999.9999 angemeldet wird, dann muss der Zollansatz = Fr. 0.- oder nicht vorhanden sein  und die Rubrik Zusatzabgaben darf nicht verwendet werden .
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'ADD TAX' to an additional tax ;
if
   the commodityCode of POSITION is one of { "9898.9898" , "9999.9999" }
   and the positions nr of 'ADD TAX' is the positions nr of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P108b Zusatzabgaben nicht erlaubt
  
Description:
Wenn die Tarifnummer 9898.9898 oder 9999.9999 angemeldet wird, dann muss der Zollansatz = Fr. 0.- oder nicht vorhanden sein  und die Rubrik Zusatzabgaben darf nicht verwendet werden .
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the commodityCode of POSITION is one of { "9898.9898" , "9999.9999" }
   and ( the rate of POSITION isNotNull
   and ZERO is not the rate of POSITION )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P109 Mustersendung
  
Description:
Wenn die Tarifnummer 9999.9999 angemeldet wird, dann darf nur der MWST-Code 3 (0%) verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the commodityCode of POSITION is "9999.9999" 
   and the VATCode of POSITION is not "3" 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P110a MwSt Konzessionaerskonto aktiv
  
Description:
Wenn das MwSt.-Konzessionärskonto nicht aktiv ist, dann darf dieses nicht benutzt werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'HEADER' to a header ;
if
   false is isKonzessionaerAccountActive( the VATAccount of HEADER ) of REFDATA 
   and 'the var_correctionCode_Erstuebermittlung_1' is the correctionCode of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P110b Zoll Konzessionaerskonto aktiv
  
Description:
Wenn das Zoll-Konzessionärskonto nicht aktiv ist, dann darf dieses nicht benutzt werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'HEADER' to a header ;
if
   isKonzessionaerAccountActive( the customsAccount of HEADER ) of REFDATA is false 
   and the correctionCode of HEADER is "1" 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P111a MWST-Wert Tabak
  
Description:
Wenn die Tarifnummer 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.1000, 2403.1100, 2403.1900, 2403.9910 oder 2403.9990 und der Stat.istische Schlüssel = 911 ist, dann darf der MWST-Wert nicht grösser als Fr. 1000.00 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" }
   and the statisticalCode of POSITION is 911 
   and the VATValue of POSITION .isGreaterThan( ONETHOUSAND )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P111b Rohmasse Tabak
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.1000, 2403.1100, 2403.1900, 2403.9910 oder 2403.9990 und der Statistische Schlüssel = 911 ist, dann darf die Rohmasse nicht grösser als 10 kg sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" }
   and the statisticalCode of POSITION isNotNull
   and the statisticalCode of POSITION is 911 
   and the grossMass of POSITION is more than 10 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P111c Revers Tabak Stat Schlüssel = 911
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.1000, 2403.1100, 2403.1900, 2403.9910 oder 2403.9990 und der Statistische Schlüssel = 911 ist, dann darf der Bewilligungstyp 4 / Bewilligungsstelle 21 nicht angemeldet werden (Revers Tabak).
Status:
deployable
Locale:
en_US
 
definitions
   set 'PERMIT' to a permit ;
   set 'POSITION' to a position
      where the positions nr of PERMIT is the positions nr of this position ;
if
   the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1000" , "2403.1100" , "2403.1900" , "2403.9990" , "2403.9910" }
   and the statisticalCode of POSITION is 911 
   and ( 'the var_permitType_ReversTabak_4' is the permitType of PERMIT 
   or 'the var_permitAuthority_SektionTabakBierbesteuerung_21' is the permitAuthority of PERMIT )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P111d Zollansatz Tabak
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.1000, 2403.1100, 2403.1900, 2403.9990 oder 2403.9910 und der Statistische Schlüssel = 911 ist, dann muss der Zollansatz Fr. 0.00 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1000" , "2403.1100" , "2403.1900" , "2403.9990" , "2403.9910" }
   and 911 is the statisticalCode of POSITION 
   and ZERO is not the rate of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P111e Veranlagungstyp Tabak
  
Description:
Wenn die Tarifnummer = 2402.1000, 2402.2010, 2402.2020, 2402.9000, 2403.1000, 2403.1100, 2403.1900, 2403.9910 oder 2403.9990 und der Statistische Schlüssel = 911 ist, dann muss der Veranlagungstyp 6 (Tabak) sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the commodityCode of POSITION is one of { "2402.1000" , "2402.2010" , "2402.2020" , "2402.9000" , "2403.1000" , "2403.1100" , "2403.1900" , "2403.9910" , "2403.9990" }
   and 911 is the statisticalCode of POSITION 
   and "6" is not the customsClearanceType of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P112a Zusatzabgabe Zigarren
  
Description:
Wenn die Tarifnummer = 2402.1000 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 011 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   "2402.1000" is the commodityCode of POSITION 
   and 911 is the statisticalCode of POSITION 
   and POSITION has any additionalTaxes is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P112b Zusatzabgabe Zigarren
  
Description:
Wenn die Tarifnummer = 2402.1000 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 011 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'ADD_TAX' to an additional tax
      where the positions nr of this additional tax is the positions nr of POSITION ;
if
   "2402.1000" is the commodityCode of POSITION 
   and 911 is the statisticalCode of POSITION 
   and ( 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADD_TAX 
   or 'the var_addtionalTaxKey_011' is not the key of ADD_TAX )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P113a Zusatzabgabe schwere Zigaretten
  
Description:
Wenn die Tarifnummer = 2402.2010 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 012 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   "2402.2010" is the commodityCode of POSITION 
   and 911 is the statisticalCode of POSITION 
   and POSITION has any additionalTaxes is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P113b Zusatzabgabe schwere Zigaretten
  
Description:
Wenn die Tarifnummer = 2402.2010 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 012 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'ADD_TAX' to an additional tax
      where the positions nr of this additional tax is the positions nr of POSITION ;
if
   "2402.2010" is the commodityCode of POSITION 
   and 911 is the statisticalCode of POSITION 
   and ( 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADD_TAX 
   or 'the var_addtionalTaxKey_012' is not the key of ADD_TAX )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P114a Zusatzabgabe leichte Zigaretten
  
Description:
Wenn die Tarifnummer = 2402.2020 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 013 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   "2402.2020" is the commodityCode of POSITION 
   and 911 is the statisticalCode of POSITION 
   and POSITION has any additionalTaxes is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P114b Zusatzabgabe leichte Zigaretten
  
Description:
Wenn die Tarifnummer = 2402.2020 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 013 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'ADD_TAX' to an additional tax
      where the positions nr of this additional tax is the positions nr of POSITION ;
if
   "2402.2020" is the commodityCode of POSITION 
   and 911 is the statisticalCode of POSITION 
   and ( 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADD_TAX 
   or 'the var_addtionalTaxKey_013' is not the key of ADD_TAX )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P115a Zusatzabgabe andere Tabakwaren
  
Description:
Wenn die Tarifnummer = 2402.9000 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 014 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   "2402.9000" is the commodityCode of POSITION 
   and 911 is the statisticalCode of POSITION 
   and POSITION has any additionalTaxes is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P115b Zusatzabgabe andere Tabakwaren
  
Description:
Wenn die Tarifnummer = 2402.9000 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 014 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'ADD_TAX' to an additional tax
      where the positions nr of this additional tax is the positions nr of POSITION ;
if
   "2402.9000" is the commodityCode of POSITION 
   and 911 is the statisticalCode of POSITION 
   and ( 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADD_TAX 
   or 'the var_addtionalTaxKey_014' is not the key of ADD_TAX )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P116a Zusatzabgabe anderer Tabak
  
Description:
Wenn die Tarifnummer = 2403.1000, 2403.1100, 2403.1900 oder 2403.9990 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 015 oder 017 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the commodityCode of POSITION is one of { "2403.1000" , "2403.1100" , "2403.1900" , "2403.9990" }
   and 911 is the statisticalCode of POSITION 
   and POSITION has any additionalTaxes is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P116b Zusatzabgabe anderer Tabak
  
Description:
Wenn die Tarifnummer = 2403.1000, 2403.1100, 2403.1900 oder 2403.9990 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 015 oder 017 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'ADD_TAX' to an additional tax
      where the positions nr of this additional tax is the positions nr of POSITION ;
if
   the commodityCode of POSITION is one of { "2403.1000" , "2403.1100" , "2403.1900" , "2403.9990" }
   and 911 is the statisticalCode of POSITION 
   and ( 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADD_TAX 
   or { 'the var_addtionalTaxKey_015' , 'the var_addtionalTaxKey_017' } do not contain the key of ADD_TAX )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P116c Zusatzabgabe anderer Tabak Schluessel 015
  
Description:
Wenn die Tarifnummer = 2403.1100 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 015 ist.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'ADD_TAX' to an additional tax
      where the positions nr of this additional tax is the positions nr of POSITION ;
if
   "2403.1100" is the commodityCode of POSITION 
   and 911 is the statisticalCode of POSITION 
   and ( 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADD_TAX 
   or 'the var_addtionalTaxKey_015' is not the key of ADD_TAX )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P117a Zusatzabgabe Kau- Rollen- und Schnupftabak
  
Description:
Wenn die Tarifnummer = 2403.9910 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 016 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   "2403.9910" is the commodityCode of POSITION 
   and 911 is the statisticalCode of POSITION 
   and POSITION has any additionalTaxes is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P117b Zusatzabgabe Kau- Rollen- und Schnupftabak
  
Description:
Wenn die Tarifnummer = 2403.9910 und der Statistische Schluessel = 911 ist, dann muss die Zusatzabgabe Art = 450 und der Schluessel = 016 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'ADD_TAX' to an additional tax
      where the positions nr of this additional tax is the positions nr of POSITION ;
if
   "2403.9910" is the commodityCode of POSITION 
   and 911 is the statisticalCode of POSITION 
   and ( 'the var_additionalTaxType_TabakSteuer_450' is not the type of ADD_TAX 
   or 'the var_addtionalTaxKey_016' is not the key of ADD_TAX )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P119 Zusatzabgabenart GTU CITES Fauna
  
Description:
Die Zusatzabgabenarten (290, 292) dürfen bei einer  Position nicht zusammen angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   'the var_additionalTaxType_Grenztieraerztliche_Untersuchungsgebuehren_290' is one of the additionalTaxTypes of POSITION 
   and 'the var_addtionalTaxType_CITES_Fauna_Gebuehr_292' is one of the additionalTaxTypes of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P12 Zollnettogewicht und Lagercode nicht erlaubt
  
Description:
Die Felder Zollnettogewicht und Lagercode dürfen nicht angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the customsNetWeight of POSITION isNotNull
   or the storageType of POSITION isNotNull
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P120 Zusatzabgabe Biersteuer
  
Description:
Wenn Zusatzabgaben vom Typ 480 (Biersteuer) definiert wurden muss der Wert der Zusatzabgabenmenge 1% der Zusatzmenge entsprechen.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'ADD_TAX' to an additional tax
      where the positions nr of POSITION is the positions nr of this additional tax ;
if
   POSITION has any additionalTaxes is true 
   and 'the var_additionalTaxType_Biersteuer_480' is one of the additionalTaxTypes of POSITION 
   and compareEachAdditionalTaxQuantityWithAdditionalUnit( 'the var_additionalTaxType_Biersteuer_480' , 3 , 1 ) of POSITION is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P123 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 correctionCode of HEADER is "2" 
   and false is is correction from declarant of HEADER 
   and HEADER declaration state is/was 'abgerechnet' or 'korrigiert nach abrechnung' is true 
   and the rmb type of HEADER is not one of { "0" , "1" }
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P124 Rohmasse mit drei Stellen nach dem Komma
  
Description:
Wenn die Rohmasse 3 Stellen nach dem Komma hat, müssen die letzten 2 Stellen 0 sein. Also xxx.x00.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   import gross mass pattern of POSITION is like xx.x00 is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P125 Zollstellennummer erforderlich
  
Description:
Zollstellennummer ist zwingend anzugeben
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the customsOfficeNumber of HEADER isNull
then
   'the result' .setHeaderError( "1" , 'the check_required_attributes' , the name of this rule ) ;
  
  
 
Rule: P127a Ueberpruefung nichtverwendbarer Felder
  
Description:
ENTITY  Attributes nicht verwendbar
Ladeort
Bestimmungsland
Bewilligter Warenort
Transfer ins Transit System
UCR
Security
Kennnummer für besondere Umstände
Transporteur/Name
Transporteur/Strasse und Hausnummer
Transporteur/Address Zusatz 1
Transporteur/Address Zusatz 2
Transporteur/Postleitzahl
Transporteur/Stadt
Transporteur/Land
Transporteur/TIN Nr Transporteur
Transporteur/Transporteurreferenz
EMPFINDLICHE WARE/Warencode
EMPFINDLICHE WARE/Menge
Rückerstattung/Rückerstattungstyp
Rückerstattung/VOC Menge
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header
      where the acceptanceDate of this header isNotNull
         and the acceptanceDate of this header is after or the same as 12/31/2011 ;
if
   ( the placeOfLoading of HEADER isNotNull
   and 'the helper_def_empty_String' is not the placeOfLoading of HEADER )
   or ( the deliveryDestination of HEADER isNotNull
   and 'the helper_def_empty_String' is not the deliveryDestination of HEADER )
   or ( the agreedLocationOfGoods of HEADER isNotNull
   and 'the helper_def_empty_String' is not the agreedLocationOfGoods of HEADER )
   or ( the transferToTransitSystem of HEADER isNotNull
   and 'the helper_def_empty_String' is not the transferToTransitSystem of HEADER )
   or ( the uniqueConsignmentReferenceNumber of HEADER isNotNull
   and 'the helper_def_empty_String' is not the uniqueConsignmentReferenceNumber of HEADER )
   or ( the security of HEADER isNotNull
   and 'the helper_def_empty_String' is not the security of HEADER )
   or ( the specificCircumstanceIndicator of HEADER isNotNull
   and 'the helper_def_empty_String' is not the specificCircumstanceIndicator of HEADER )
   or ( the carrierName of HEADER isNotNull
   and 'the helper_def_empty_String' is not the carrierName of HEADER )
   or ( the carrierStreet of HEADER isNotNull
   and 'the helper_def_empty_String' is not the carrierStreet of HEADER )
   or ( the carrierAddressSupplement1 of HEADER isNotNull
   and 'the helper_def_empty_String' is not the carrierAddressSupplement1 of HEADER )
   or ( the carrierAddressSupplement2 of HEADER isNotNull
   and 'the helper_def_empty_String' is not the carrierAddressSupplement2 of HEADER )
   or ( the carrierPostalCode of HEADER isNotNull
   and 'the helper_def_empty_String' is not the carrierPostalCode of HEADER )
   or ( the carrierCity of HEADER isNotNull
   and 'the helper_def_empty_String' is not the carrierCity of HEADER )
   or ( the carrierCountry of HEADER isNotNull
   and 'the helper_def_empty_String' is not the carrierCountry of HEADER )
   or ( the carrierTraderIdentificationNumber of HEADER isNotNull
   and 'the helper_def_empty_String' is not the carrierTraderIdentificationNumber of HEADER )
   or ( the carrierReference of HEADER isNotNull
   and 'the helper_def_empty_String' is not the carrierReference of HEADER )
   or ( HEADER has consignor security is true )
   or ( HEADER has consignee security is true )
   or ( the companyNumberTaxpayer of HEADER isNotNull
   and 'the helper_def_empty_String' is not the companyNumberTaxpayer of HEADER )
then
   'the result' .setHeaderError( "1" , 'the check header' , the name of this rule ) ;
  
  
 
Rule: P127b Ueberpruefung nichtverwendbarer Felder
  
Description:
ENTITY  Attributes nicht verwendbar
Ladeort
Bestimmungsland
Bewilligter Warenort
Transfer ins Transit System
UCR
Security
Kennnummer für besondere Umstände
Transporteur/Name
Transporteur/Strasse und Hausnummer
Transporteur/Address Zusatz 1
Transporteur/Address Zusatz 2
Transporteur/Postleitzahl
Transporteur/Stadt
Transporteur/Land
Transporteur/TIN Nr Transporteur
Transporteur/Transporteurreferenz
EMPFINDLICHE WARE/Warencode
EMPFINDLICHE WARE/Menge
Rückerstattung/Rückerstattungstyp
Rückerstattung/VOC Menge
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position
      where the acceptanceDate of HEADER isNotNull
         and the acceptanceDate of HEADER is after or the same as 12/31/2011 ;
if
   ( the refundType of POSITION isNotNull
   and "" is not the refundType of POSITION )
   or ( the VOCquantity of POSITION isNotNull
   and 0 is not the VOCquantity of POSITION )
   or ( the UNDangerousGoodsCode of POSITION isNotNull
   and 'the helper_def_empty_String' is not the UNDangerousGoodsCode of POSITION )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_other_data' , the name of this rule ) ;
  
  
 
Rule: P127c Ueberpruefung nichtverwendbarer Felder
  
Description:
ENTITY  Attributes nicht verwendbar
Ladeort
Bestimmungsland
Bewilligter Warenort
Transfer ins Transit System
UCR
Security
Kennnummer für besondere Umstände
Transporteur/Name
Transporteur/Strasse und Hausnummer
Transporteur/Address Zusatz 1
Transporteur/Address Zusatz 2
Transporteur/Postleitzahl
Transporteur/Stadt
Transporteur/Land
Transporteur/TIN Nr Transporteur
Transporteur/Transporteurreferenz
EMPFINDLICHE WARE/Warencode
EMPFINDLICHE WARE/Menge
Rückerstattung/Rückerstattungstyp
Rückerstattung/VOC Menge
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'SENSIBLE_GOOD' to a sensible good
      where the acceptanceDate of HEADER isNotNull
         and the acceptanceDate of HEADER is after or the same as 12/31/2011 ;
if
   ( the code of SENSIBLE_GOOD isNotNull
   and 0 is not the code of SENSIBLE_GOOD )
   or SENSIBLE_GOOD has quantity
then
   'the result' .setPositionError( the positions nr of SENSIBLE_GOOD , "1" , 'the check_other_data' , the name of this rule ) ;
  
  
 
Rule: P127d Ueberpruefung nichtverwendbarer Felder
  
Description:
ENTITY  Attributes nicht verwendbar
Ladeort
Bestimmungsland
Bewilligter Warenort
Transfer ins Transit System
UCR
Security
Kennnummer für besondere Umstände
Transporteur/Name
Transporteur/Strasse und Hausnummer
Transporteur/Address Zusatz 1
Transporteur/Address Zusatz 2
Transporteur/Postleitzahl
Transporteur/Stadt
Transporteur/Land
Transporteur/TIN Nr Transporteur
Transporteur/Transporteurreferenz
EMPFINDLICHE WARE/Warencode
EMPFINDLICHE WARE/Menge
Rückerstattung/Rückerstattungstyp
Rückerstattung/VOC Menge
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'GOODS ITEM DETAILS' to a goods item detail
      where the acceptanceDate of HEADER isNotNull
         and the acceptanceDate of HEADER is after or the same as 12/31/2011 ;
if
   ( 'GOODS ITEM DETAILS' isNotNull
   and the name of 'GOODS ITEM DETAILS' isNotNull
   and 'the helper_def_empty_String' is not the name of 'GOODS ITEM DETAILS' 
   and 'the var_goodsItemDetails_exportCode_27' is the name of 'GOODS ITEM DETAILS' )
   or ( 'GOODS ITEM DETAILS' isNotNull
   and the name of 'GOODS ITEM DETAILS' isNotNull
   and 'the helper_def_empty_String' is not the name of 'GOODS ITEM DETAILS' 
   and 'the var_goodsItemDetails_lagerNr_26' is the name of 'GOODS ITEM DETAILS' )
then
   'the result' .setPositionError( the positions nr of 'GOODS ITEM DETAILS' , "1" , 'the check_other_data' , the name of this rule ) ;
  
  
 
Rule: P128 Ursprungsland und die Präferenz sind erforderlich
  
Description:
Das Ursprungsland und die Präferenz sind zwingend anzugeben da IPV serviceType = 1
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the originCountry of POSITION isNull
   or 'the helper_def_empty_String' is the originCountry of POSITION 
   or the preference of POSITION isNull
   or 'the helper_def_empty_String' is the preference of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P129 Rechnungswaehrungscode
  
Description:
Gueltiger Rechnungswaehrungscode gemaess Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the invoiceCurrencyType of HEADER isNotNull
   and the invoiceCurrencyType of HEADER is not one of the refInvoiceCurrencyTypes of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_reference_data' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_business_invoiceCurrencyType' , the name of this rule ) ;
  
  
 
Rule: P13 Die Begruendung Abladeort und Veranlagungsbelege nicht erlaubt
  
Description:
Die Felder Begründung (bei provisorischer Veranlagung), Veranlagungsbelege und Abladeort dürfen nicht angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the reason of HEADER isNotNull
   or the injunctionType of HEADER isNotNull
   or the placeOfUnloading of HEADER isNotNull
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P130 Veranlagungsort 5 darf nicht veraendert werden
  
Description:
Gueltiger NZE-Pflichtcode gem. Stammdaten.
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: P131 Samnaun Empfaenger PLZ
  
Description:
WENN ServiceType = 1 (Import)                     
UND Empfänger PLZ = 7562 oder 7563              
DANN Fehler
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the consigneePostalCode of HEADER isNotNull
   and the consigneePostalCode of HEADER is one of { "7562" , "7563" }
then
   'the result' .setHeaderError( "1" , 'the check_other_header' , the name of this rule ) ;
   'the result' .appendReferencedElement( 'the ref_consignee_postalCode' , the name of this rule ) ;
  
  
 
Rule: P14 Reparatur- und Veredelungsverkehr nicht erlaubt
  
Description:
Die Felder Verkehrsrichtung, Veredelungstyp, Verfahrenstyp, Abrechnugnstyp, Form.11.71, Positionstyp, Ausfuhrwert, Lohnkosten, Fracht bis Grenze und Wert Neumaterial dürfen nicht angemeldet werden (Rubrik Veredelung / Ausbesserung).
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the direction of POSITION isNotNull
   or the refinementType of POSITION isNotNull
   or the processType of POSITION isNotNull
   or the billingType of POSITION isNotNull
   or the temporaryAdmission of POSITION isNotNull
   or the positionType of POSITION isNotNull
   or the exportValue of POSITION isNotNull
   or the labourCost of POSITION isNotNull
   or the freightToBorder of POSITION isNotNull
   or the newMaterialValue of POSITION isNotNull
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P15 Zusatzinformationen nicht erlaubt
  
Description:
Die Felder Zusatzinformationen Name und Zusatzinformationen Wert dürfen nicht angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'ITEM_DETAIL' to a goods item detail ;
if
   the code of ITEM_DETAIL isNotNull
   or the name of ITEM_DETAIL isNotNull
then
   'the result' .setPositionError( the positions nr of ITEM_DETAIL , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P16 Bewilligung nicht erlaubt
  
Description:
Die Felder Bewilligungstyp, Bewilligungsstellencode, Reversart Tabak, Bewilligungsnummer, Bewilligungsdatum und zusätzliche Angaben dürfen nicht angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'PERMIT' to a permit ;
if
   the permitType of PERMIT isNotNull
   or the permitAuthority of PERMIT isNotNull
   or the tobaccoPermitType of PERMIT isNotNull
   or the permitNumber of PERMIT isNotNull
   or the issueDate of PERMIT isNotNull
   or the additionalInformation of PERMIT isNotNull
then
   'the result' .setPositionError( the positions nr of PERMIT , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P17 Zoll - Mwst nicht erlaubt
  
Description:
Die Felder Tarazuschlag und  Richtigcode Tarazuschlag dürfen nicht angemeldet werden. Die Felder Zollbegünstigung und  Nettoveranlagung dürfen angemeldet werden, aber es darf nur der Wert 0 (nein) vorhanden ein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   ( the netDuty of POSITION isNotNull
   and the netDuty of POSITION is not "0" )
   or the tareSupplement of POSITION isNotNull
   or ( the tareSupplementConfirmation of POSITION isNotNull
   and the tareSupplementConfirmation of POSITION is not "0" )
   or ( the customsFavourCode of POSITION isNotNull
   and the customsFavourCode of POSITION is not "0" )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P18a Abfertigungsort = Domizil
  
Description:
Defaultwert Veranlagungsort = Domizil (1)
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   "2" is not the clearancelocation of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P18b Anmeldungstyp = Definitiv
  
Description:
Defaultwert Anmeldungstyp = Definitiv (1)
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   "1" is not the declarationType of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P18c Erzeugungsland = DE
  
Description:
Defaultwert Erzeugungsland = DE
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   "DE" is not the dispatchCountry of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P18d Transport in Container = nein
  
Description:
Defaultwert Transport in Container = nein (0)
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   "0" is not the transportInContainer of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P18e Pakete mit MWST-Wert ab CHF500
  
Description:
Defaultwert Handelsware = ja (1) für Pakete mit MWST-Wert ab Fr. 500.--
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position ;
if
   "2" is the postalShipmentType of HEADER 
   and ( 500 is less than the amount of the VATValue of POSITION 
   or 500 is the amount of the VATValue of POSITION )
   and "1" is not the commercialGood of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P18f Pakete mit MWST-Wert unter CHF500
  
Description:
Defaultwert Handelsware = nein (2) für Pakete mit MWST-Wert unter Fr. 500.--
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position ;
if
   "2" is the postalShipmentType of HEADER 
   and ( 500 is more than the amount of the VATValue of POSITION 
   or 500 is the amount of the VATValue of POSITION )
   and "2" is not the commercialGood of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P18g Statistischer Wert = 0
  
Description:
Defaultwert Statistischer Wert = 0
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the statisticalValue of POSITION isNotNull
   and 0 is not the amount of the statisticalValue of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P18h Bewilligungspflichtcode = nicht pflichtig
  
Description:
Defaultwert Bewilligungspflichtcode = 0 (nicht pflichtig)
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   "0" is not the permitObligation of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P18i Verpackungscode = PK
  
Description:
Defaultwert Verpackungscode = PK (Packung/Packstücke)
Status:
deployable
Locale:
en_US
 
definitions
   set 'PACKAGING' to a packaging ;
   set 'POSITION' to a position ;
if
   "PK" is not the packagingType of PACKAGING 
   and the positions nr of PACKAGING is the positions nr of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P18k Briefe Nichthandelsware
  
Description:
P018k Briefe Nichthandelsware
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position ;
if
   "1" is the postalShipmentType of HEADER 
   and "2" is not the commercialGood of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P19 Zollfreie Briefe
  
Description:
Wenn die Postverkehrsart = Briefpostverkehr (1) ist       
und die Veranlagungsart Post = reduziert zollfrei (1), dann muss die Tarifnummer = 9898.9898 angemeldet werden und die Rohmasse = 0 (Defaultwert) sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position ;
if
   "1" is the postalShipmentType of HEADER 
   and "1" is the procedureType of HEADER 
   and ( "9898.9898" is not the commodityCode of POSITION 
   or the grossMass of POSITION is not 0 )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P20 Zollfreie Pakete unter CHF500
  
Description:
Wenn die Postverkehrsart = Paketpostverkehr (2) ist und der MWST-Wert ist unter Fr. 500.- und die Veranlagungsart Post = reduziert zollfrei (1), dann muss die Tarifnummer = 9898.9898 angemeldet werden und die Rohmasse = 0 (Defaultwert) sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position ;
if
   "2" is the postalShipmentType of HEADER 
   and 500 is more than the amount of the VATValue of POSITION 
   and "1" is the procedureType of HEADER 
   and ( "9898.9898" is not the commodityCode of POSITION 
   or the grossMass of POSITION is not 0 )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P21 Zollzahlende Briefe
  
Description:
Wenn die Postverkehrsart = Briefpostverkehr (1) ist und die Veranlagungsart Post = reduziert zollzahlend (2) dann muss eine Tarifnummer gem. Stammdaten (ungleich 9898.9898) angemeldet werden und die Rohmasse muss > 0 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
   set 'POSITION' to a position ;
if
   "1" is the postalShipmentType of HEADER 
   and "2" is the procedureType of HEADER 
   and ( ( checkRefTarifNumber of REFDATA with the commodityCode of POSITION ) is false 
   or "9898.9898" is the commodityCode of POSITION 
   or the grossMass of POSITION is at most 0 )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P22 Zollzahlende Pakete bis CHF500
  
Description:
Wenn die Postverkehrsart = Paketpostverkehr (2), und die Veranlagungsart Post = reduziert zollzahlend (2) ist, dann muss eine Tarifnummer gem. Stammdaten (ungleich TN 9898.9898) angemeldet werden und die Rohmasse muss > 0 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
   set 'POSITION' to a position ;
if
   "2" is the postalShipmentType of HEADER 
   and "2" is the procedureType of HEADER 
   and ( ( checkRefTarifNumber of REFDATA with the commodityCode of POSITION ) is false 
   or "9898.9898" is the commodityCode of POSITION 
   or the grossMass of POSITION is at most 0 )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P24 Zollfreie Pakete ab CHF500
  
Description:
Wenn die Postverkehrsart = Paketpostverkehr (2), der MWST-Wert über Fr. 500.- und die Veranlagungsart Post = reduziert zollfrei (1) ist, dann muss eine Tarifnummer gem. Stammdaten (ungleich TN 9898.9898) angemeldet werden und die Rohmasse muss > 0 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
   set 'POSITION' to a position ;
if
   "2" is the postalShipmentType of HEADER 
   and ( the amount of the VATValue of POSITION isNotNull
   and the amount of the VATValue of POSITION is at least 500 )
   and "1" is the procedureType of HEADER 
   and ( ( checkRefTarifNumber of REFDATA with the commodityCode of POSITION ) is false 
   or "9898.9898" is the commodityCode of POSITION 
   or ( the grossMass of POSITION isNotNull
   and the grossMass of POSITION is at most 0 ) )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P25 Mwst-Code 90 und 91 und 92 nicht erlaubt
  
Description:
Die MWST-Codes  90 (Verlagerungsverfahren MWST),  91 (Lohnveredelung im Nichterhebungsverfahren MWST) oder 92 dürfen nicht angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the VATCode of POSITION isNotNull
   and the VATCode of POSITION is one of { "90" , "91" , "92" }
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P26 Mwst-Code bei TN 9898_9898
  
Description:
Wenn die TN 9898.9898 angemeldet wird, dann muss der MWST-Code 1, 2 oder 3 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   "9898.9898" is the commodityCode of POSITION 
   and the VATCode of POSITION is not one of { "1" , "2" , "3" }
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P27 Obligatorische Lagercodes nicht erlaubt
  
Description:
Es darf keine Tarifnummer verwendet werden, für die der Lagercode gem. Stammdaten obligatorisch ist.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'POSITION' to a position ;
if
   true is REFDATA .isLagercodeNecessary( the commodityCode of POSITION , the statisticalCode of POSITION )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P28a Obligatorische Bewilligungen nicht erlaubt
  
Description:
Es darf keine Tarifnummer verwendet werden, für die Bewilligungen gem. Stammdaten obligatorisch sind.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'POSITION' to a position
      where the originCountry of this position isNotNull
         and the statisticalCode of this position isNotNull ;
if
   "0" is getBewilligungObligatorisch( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P28b Zusatzabgaben Art - Schluessel nicht erlaubt
  
Description:
Die Zusatzabgeben Art/Schlüssel Paare 700/002 (VOC im Verpflichtungsverfahren) und 280/200 (MG mit Steueraussetzung) dürfen nicht angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'ADD_TAX' to an additional tax ;
if
   ( 700 is the type of ADD_TAX 
   and "002" is the key of ADD_TAX )
   or ( 280 is the type of ADD_TAX 
   and "200" is the key of ADD_TAX )
then
   'the result' .setPositionError( the positions nr of ADD_TAX , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P29 Zollbeguenstigung nicht erlaubt
  
Description:
Es darf keine Tarifnummer verwendet werden, für die der Zollbegünstigungscode gem. Stammdaten obligatorisch ist.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'POSITION' to a position ;
if
   "2" is REFDATA .getZBTypCode( the commodityCode of POSITION )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P30 Zusatzinformationen nicht vorhanden
  
Description:
Es darf keine Tarifnummer verwendet werden, für die Zusatzinformationen gem. Stammdaten obligatorisch sind.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'POSITION' to a position ;
if
   0 is less than the number of elements in getWarenDetailNamen( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P34 Zusatzmenge zwingend
  
Description:
Wenn die Zusatzmenge für dieTarifnummer 7101.1000 - 7118.9030 oder 9101.1100 - 9114.9000 obligatorisch ist gemäss die Stammdaten, dann ist das Feld Zusatzmenge zwingend  anzumelden und darf nicht 0 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   ( plausi helpers.isInNumberRange( the commodityCode of POSITION , "7101.1000" , "7118.9030" ) is true 
   or plausi helpers.isInNumberRange( the commodityCode of POSITION , "9101.110" , "9114.9000" ) is true )
   and 2 is one of ( getMengenCodeTypes( the commodityCode of POSITION , the statisticalCode of POSITION ) of REFDATA )
   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_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P35 Verzollungsart Vorversion
  
Description:
Wenn der Berichtigungscode 2 (Berichtigung) oder 0 (Annullation) ist, dann darf die Vorversion Veranlagungsart Post nicht = standard (3) sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the correctionCode of HEADER is one of { "2" , "0" }
   and "3" is the procedureTypePreviousVersion of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P36 MwSt-Konto in Vorversionen (Konzessionaer)
  
Description:
Wenn Berichtigungscode 2 (Berichtigung) oder 0 (Annulierung), und das MwSt-Konto ist von einem Konzessionär
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the VATAccountPreviousVersion of HEADER isNotNull
   and isAccountKonzessionaer( the VATAccount of HEADER ) of REFDATA is not isAccountKonzessionaer( the VATAccountPreviousVersion of HEADER ) of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P37 Zoll-Konto in Vorversionen (Konzessionaer)
  
Description:
Wenn Berichtigungscode 2 (Berichtigung) 2 oder 0 (Annulierung), und das Zoll-Konto ist von keinem Konzessionär
dann muss in der Vorversion auch das Zoll-Konto von keinem Konzessionär sein oder umgekehrt.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the customsAccountPreviousVersion of HEADER isNotNull
   and isAccountKonzessionaer( the customsAccount of HEADER ) of REFDATA is not isAccountKonzessionaer( the customsAccountPreviousVersion of HEADER ) of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P39 Bemessungsgrundlage = 7
  
Description:
Wenn gem. Stammdaten für die verwendete Tarifnummer/Schlüssel die Bemessungsgrundlage/Zollansatz = 7 (je 100 kg Eigenmasse) dann ist das Feld Eigenmasse obligatorisch.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'POSITION' to a position ;
if
   "7" is REFDATA .getBemessungsCodeTarif( the commodityCode of POSITION , the originCountry of POSITION , the customsFavourCode of POSITION , the preference of POSITION , the statisticalCode of POSITION )
   and the netMass of POSITION isNull
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P4 Zollansatz bei reduziert zahlend
  
Description:
Wenn Veranlagungsart Post = reduziert zollfrei (1), dann muss der Zollansatz Fr. 0.-  oder nicht vorhanden sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   "2" is the procedureType of HEADER 
   and ( ( the rate of POSITION isNotNull
   and ZERO .isGreaterThan( the rate of POSITION )
   or ZERO is the rate of POSITION )
   or ( the rate of POSITION isNull
   and REFDATA .hasRateZero( the commodityCode of POSITION , the originCountry of POSITION , the customsFavourCode of POSITION , the preference of POSITION , the statisticalCode of POSITION ) ) )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P40 Bemessungsgrundlage = 2 bis 6
  
Description:
Wenn gem. Stammdaten für die verwendete Tarifnummer/Schlüssel die Bemessungsgrundlage/Zollansatz =  2 - 6 (je Stück / je Anwendungseinheit / je Meter / je Liter / je MWh) dann ist das Feld Zusatzmenge obligatorisch und darf nicht 0 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'POSITION' to a position ;
if
   REFDATA .getBemessungsCodeTarif( the commodityCode of POSITION , the originCountry of POSITION , the customsFavourCode of POSITION , the preference of POSITION , the statisticalCode of POSITION ) is one of { "2" , "3" , "4" , "5" , "6" }
   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_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P41a MwSt-Konto nur dem Spediteur zugeordnet
  
Description:
Das  MwSt.Konzessionärskonto darf genau nur dem verwendeten Spediteur zugewiesen sein und muss den Status aktiv haben.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'HEADER' to a header ;
if
   isKonzessionaerAccountOnlyRelatedToSpediteur( the VATAccount of HEADER ) of REFDATA is false 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P41b Zoll-Konto nur dem Spediteur zugeordnet
  
Description:
Das Zoll
Konzessionärskonto darf genau nur dem verwendeten Spediteur zugewiesen sein und muss den Status aktiv haben.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'HEADER' to a header ;
if
   isKonzessionaerAccountOnlyRelatedToSpediteur( the customsAccount of HEADER ) of REFDATA is false 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P42 Abfertigungstyp
  
Description:
Wenn der Veranlagungstyp 10 (Rückwaren gemäss Zollrecht) oder 11 (Rückwaren gemäss Zoll-/MWST-Recht) angemeldet wird, dann darf der Veranlagungstyp 1 (Normalveranlagung) oder 6 (Tabak) nicht verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'POSITION' to a position ;
if
   ( 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11_int' is one of the abfertigungs typens of HEADER 
   or 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10_int' is one of the abfertigungs typens of HEADER )
   and ( the customsClearanceType of POSITION is 'the var_customsClearanceType_Tabak_6' 
   or the customsClearanceType of POSITION is 'the var_customsClearanceType_Normalveranlagung_1' )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P43 Richtigcode MWST-Code = 0
  
Description:
Wenn die Tarifnummer gem. Stammdaten angemeldet ist und nicht 9898.9898 oder 9999.9999 ist und der angemeldete MWST-Code ist gem. 
Stammdaten für die verwendeteTarifnummer vorgesehen ist, dann muss der Richtigcode MWST-Code = 0 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   the commodityCode of POSITION is not one of { "9898.9898" , "9999.9999" }
   and checkRefTarifNumber of REFDATA with the commodityCode of POSITION is true 
   and the VATCode of POSITION is one of REFDATA .getAllMwstCodes( the commodityCode of POSITION )
   and "1" is the VATCodeConfirmation of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P44 Richtigcode MWST-Code = 1
  
Description:
Wenn die Tarifnummer gem. Stammdaten angemeldet ist und nicht 9898.9898 oder 9999.9999 ist und der angemeldete MWST-Code ist gem.
Stammdaten für die verwendete Tarifnummer nicht vorgesehen ist, dann muss der Richtigcode MWST-Code = 1 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   the commodityCode of POSITION is not one of { "9898.9898" , "9999.9999" }
   and checkRefTarifNumber of REFDATA with the commodityCode of POSITION is true 
   and the VATCode of POSITION is not one of REFDATA .getAllMwstCodes( the commodityCode of POSITION )
   and "1" is not the VATCodeConfirmation of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P45 Roh- und Eigenmasse
  
Description:
Wenn der Richtigcode Rohmasse = 0 und die Eigenmasse angemeldet ist, dann muss die Rohmasse >= Eigenmasse und die Rohmasse anders als Defaultwert = 0 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the netMass of POSITION isNotNull
   and ( the grossMassConfirmation of POSITION isNull
   or the netMassConfirmation of POSITION is "0" )
   and ( the grossMass of POSITION is less than the netMass of POSITION 
   or the grossMass of POSITION is 0 )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P46 Konto Zoll
  
Description:
Konto Zoll muss eine gültige Kontonummer gem. Stammdaten sein. Die Kontonummer 0 (Barzahler) ist nicht erlaubt.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the customsAccount of HEADER is not one of the refAccountNumbers of REFDATA 
   or "0" is the customsAccount of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P47 Konto MWST
  
Description:
Konto MWST muss eine gültige Kontonummer gem. Stammdaten sein. Die Kontonummer 0 (Barzahler) ist nicht erlaubt.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the VATAccount of HEADER is not one of the refAccountNumbers of REFDATA 
   or "0" is the VATAccount of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P48 Zollbeguenstigung nicht moeglich
  
Description:
Wenn Veranlagungstyp = (1 oder 6) und Ursprungsland = CH dann darf keine Präferenz angegeben werden.
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_Tabak_6' }
   and "CH" is the originCountry of POSITION 
   and "1" is the preference of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P49 Gueltige Tarifnummer
  
Description:
Gültige Tarifnummer gemäss Stammdaten oder 9999.9999 oder 9898.9898
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'POSITION' to a position ;
if
   checkRefTarifNumber of REFDATA with the commodityCode of POSITION is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P5 Abfertigungstyp
  
Description:
Der Veranlagungstyp muss Normalveranlagung (1), Tabak (6), Rueckwaren gemaess Zollrecht (10) oder Rueckwaren gemaess Zoll-/MWST-Recht (11) sein
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   "1" is not the customsClearanceType of POSITION 
   and "10" is not the customsClearanceType of POSITION 
   and "11" is not the customsClearanceType of POSITION 
   and "6" is not the customsClearanceType of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P50a Zollansatz ohne Richtigcode
  
Description:
Wenn der Zollansatz gesetzt ist, muss der Richtigcode Zollansatz gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position
      where the customsClearanceType of this position is not one of { 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' , 'the var_customsClearanceType_AbgabeFrei_8' } ;
if
   the rate of POSITION isNotNull
   and ( the rateConfirmation of POSITION isNull
   or "0" is the rateConfirmation of POSITION )
   or the rate of POSITION isNull
   and "1" is the rateConfirmation of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P50b Zollansatz eindeutig
  
Description:
Wenn der Veranlagungstyp 10 oder 11 und der Zollansatz fuer eine Warennummer, ein Ursprungsland, einen Zolbeguenstigungscode und eine Praeferenz nicht eindeutig ist gem. Stammdaten, muss er angegeben werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position
      where 'the var_customsClearanceType_AbgabeFrei_8' is not the customsClearanceType of this position ;
   set 'REFDATA' to a ref data ;
if
   the customsClearanceType of POSITION is not one of { 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' }
   and the rate of POSITION isNull
   and REFDATA .checkRefIsZollansatzUnique( the commodityCode of POSITION , the originCountry of POSITION , the customsFavourCode of POSITION , the preference of POSITION , the statisticalCode of POSITION ) is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P51 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 'POSITION' to a position ;
   set 'HEADER' to a header ;
if
   ( the detail ID of POSITION isNull
   or the detail ID of POSITION is "" )
   or ( the correctionCode of HEADER is "1" 
   and detail IDs are unique of HEADER is false )
   or ( the correctionCode of HEADER is "2" 
   and is correction from declarant of HEADER is true 
   and detail IDs are unique of HEADER is false )
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P52 Anmeldungszeitpunkt in Stammdaten1
  
Description:
Gueltiger Anmeldungszeitpunkt gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the declarationTime of HEADER isNotNull
   and the declarationTime of HEADER is not one of the refDeclarationTimes of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P53 Berichtigungscode in Stammdaten
  
Description:
Gueltiger Berichtigungscode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the correctionCode of HEADER isNotNull
   and the correctionCode of HEADER is not one of the refCorrectionCodes of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P54 Berichtigungsgrund in Stammdaten
  
Description:
Gueltiger Berichtigungsgrund gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the correctionReason of HEADER isNotNull
   and the correctionReason of HEADER is not one of the refCorrectionReasons of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P55 Sprachencode in Stammdaten
  
Description:
Gueltiger Sprachencode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the language of HEADER isNotNull
   and the language of HEADER is not one of the refLanguageCodes of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P56 Zollstellennummer in Stammdaten
  
Description:
Gueltige Zollstellennummer gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the customsOfficeNumber of HEADER isNotNull
   and the customsOfficeNumber of HEADER is not one of the refCustomsOfficeNumbers of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P57 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 ;
if
   plausi helpers.containsAll( the previousDocumentsType_Lists of HEADER , the refPreviousDocumentTypes of REFDATA ) is false 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P58 Versenderland in Stammdaten
  
Description:
Gueltiges Versenderland gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the consignorCountry of HEADER isNotNull
   and the consignorCountry of HEADER is not one of the refCountries of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P59 Importeurland in Stammdaten
  
Description:
Gueltiges Importeurland gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the importerCountry of HEADER isNotNull
   and the importerCountry of HEADER is not one of the refCountries of REFDATA 
   and the importerCountry of HEADER is not one of { "FL" , "LI" }
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P6 Verkehrszweig = Postverkehr
  
Description:
Der Verkehrszweig muss Postverkehr (5) sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   "5" is not the transportMode of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P60 ImporteurPLZ in Stammdaten
  
Description:
Gueltige Importeur-Postleitzahl gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the importerPostalCode of HEADER isNotNull
   and the importerPostalCode of HEADER is not one of the refPostalCodes of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P61 Empfaengerland in Stammdaten
  
Description:
Gueltiges Empfaengerland gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the consigneeCountry of HEADER isNotNull
   and the consigneeCountry of HEADER is not one of the refCountries of REFDATA 
   and the consigneeCountry of HEADER is not one of { "FL" , "LI" }
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P62 EmpfaengerPLZ in Stammdaten
  
Description:
Gueltige Empfaenger-Postleitzahl gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the consigneePostalCode of HEADER isNotNull
   and the consigneePostalCode of HEADER is not one of the refPostalCodes of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P63 Spediteur in Stammdaten
  
Description:
Gueltige Spediteurnummer gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the declarantTraderIdentificationNumber of HEADER isNotNull
   and the declarantTraderIdentificationNumber of HEADER is not one of the refTraderIdentificationNumbers of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P64 Deklarantennummer in Stammdaten
  
Description:
Gueltige Deklarantennummer gem. Stammdaten und für die angemeldete Spediteurnummer möglich.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the declarantNumber of HEADER isNotNull
   and the declarantNumber of HEADER is not one of the refDeclarantNumbers ( the declarantTraderIdentificationNumber of HEADER ) of REFDATA 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P65 Deklarantenland in Stammdaten
  
Description:
Gueltiges Deklarantenland gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
   set 'REFDATA' to a ref data ;
if
   the declarantCountry of HEADER isNotNull
   and the declarantCountry of HEADER is not one of the refCountries of REFDATA 
   and the declarantCountry of HEADER is not one of { "FL" , "LI" }
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P66 Veranlagungstyp in Stammdaten
  
Description:
Gueltiger Veranlagungstyp gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   the customsClearanceType of POSITION isNotNull
   and the customsClearanceType of POSITION is not one of the refCustomsClearanceTypes of REFDATA 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P67 Ursprungsland in Stammdaten
  
Description:
Gueltiges Land gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   the originCountry of POSITION isNotNull
   and the originCountry of POSITION is not one of the refCountries of REFDATA 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P68 Schluessel in Stammdaten
  
Description:
Gültiger Schlüssel gem. Stammdaten UND für Warennummer gültig
UND Warennummer <> 9999.9999 oder 9898.9898.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   the statisticalCode of POSITION is not one of getRefTarifKeyNumber( the commodityCode of POSITION ) of REFDATA 
   and the commodityCode of POSITION is not one of { "9999.9999" , "9898.9898" }
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P69 Art Unterlagencode in Stammdaten
  
Description:
Gueltige Art Unterlagencode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   plausi helpers.containsAll( the documentTypes of POSITION , the documentTypes of REFDATA ) is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P7 Vorpapier Art = IPV
  
Description:
Wenn das Feld Vorpapier Art = IPV (Import Postverkehr) ist, dann muss die Spediteurnummer (8200, 5906, 9007, 9013, 7081, 7082, 9405, 9406, 9407, 1000779, 1000780, 1000781, 1000782, 1000871, 7083, 9408, 1000557,1000334 8199, 9411, 9412, 8197, 8198 oder 1000711) sein.
Wenn die Spediteurnummer (8200, 5906, 9007, 9013, 7081, 7082, 9405, 9406, 9407, 1000779, 1000780, 1000781, 1000782, 1000871, 7083, 1000557,1000334,  8199, 9411, 9412, 8197, 8198 oder 1000711)  angemeldet wird, dann muss das Feld Vorpapier Art = IPV (Import Postverkehr) sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   ( 'the var_artenVorpapier_IPV' is one of the previousDocumentsType_Lists of HEADER 
   and the declarantTraderIdentificationNumber of HEADER is not one of { "5906" , "7081" , "7082" , "7083" , "8199" , "8200" , "9007" , "9013" , "9405" , "9406" , "9407" , "9408" , "1000557" , "1000711" , "1000779" , "1000780" , "1000781" , "1000782" , "1000871" , "1000334" , "9411" , "9412" , "8197" , "8198" } )
   or ( 'the var_artenVorpapier_IPV' is not one of the previousDocumentsType_Lists of HEADER 
   and the declarantTraderIdentificationNumber of HEADER is one of { "5906" , "7081" , "7082" , "7083" , "8199" , "8200" , "9007" , "9013" , "9405" , "9406" , "9407" , "9408" , "1000557" , "1000711" , "1000779" , "1000780" , "1000781" , "1000782" , "1000871" , "1000334" , "9411" , "9412" , "8197" , "8198" } )
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P70 MWST Code in Stammdaten
  
Description:
Gueltiger MWSt-Code gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   the VATCode of POSITION isNotNull
   and the VATCode of POSITION is not one of the refVATCodes of REFDATA 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P71 Zusatzabgabenart in Stammdaten
  
Description:
Gueltige Zusatzabgabenarten gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   plausi helpers.containsAll( the additionalTaxTypes of POSITION , the refAdditionalTaxTypes of REFDATA ) is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P72 Zusatzabgabenschluessel in Stammdaten
  
Description:
Gueltige Zusatzabgabenschluessel gem. Stammdaten und fuer Zusatzabgabenart gueltig.
Status:
deployable
Locale:
en_US
 
definitions
   set 'ADD_TAX' to an additional tax ;
   set 'REFDATA' to a ref data ;
if
   the key of ADD_TAX isNotNull
   and the key of ADD_TAX is not one of REFDATA .getRefZusatzabgabenSchluessel( the type of ADD_TAX )
then
   'the result' .setPositionError( the positions nr of ADD_TAX , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P73 Gebuehrenarten in Stammdaten
  
Description:
Gueltige Gebuehrenarten gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   plausi helpers.containsAll( the FeeTypes of POSITION , the refFeeTypes of REFDATA ) is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P75a Zollstelle falsch
  
Description:
Gueltige Versions- und Zollstellennummer.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the lastCorrectionCode of HEADER isNotNull
   and the customsOfficeNumber of HEADER isNotNull
   and the customsOfficeNumber of HEADER is not the lastVersionCustomsOfficeNumber of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P75b Annulation
  
Description:
Gueltige Versions- und Zollstellennummer.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   "0" is the lastCorrectionCode of HEADER 
   and the customsOfficeNumber of HEADER is the lastVersionCustomsOfficeNumber of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P75c 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_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P76 Einfuhrzollanmeldung in Intervention
  
Description:
Wenn die Einfuhrzollanmeldung in Intervention ist, dann darf kein Berichtigungscode (Berichtigung) 0 oder 2 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_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P77 Zollanmeldung in Berichtigung
  
Description:
Wenn eine Einfuhrzollanmeldung in Berichtigung ist, dann darf der Berichtigungscode (Berichtigung) nicht 0 oder 2 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   'the var_correctionCode_Erstuebermittlung_1' is not the correctionCode of HEADER 
   and "in Korrektur" is the statusOfDeclaration of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P78 Einfuhrzollanmeldung in Berichtigungsanfrage
  
Description:
Wenn eine Einfuhrzollanmeldung in Berichtigungsanfrage ist, dann darf der Berichtigungscode 2 (Berichtigung) nicht 0 oder 2 sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   'the var_correctionCode_Erstuebermittlung_1' is not the correctionCode of HEADER 
   and "wartend auf Akzeptanz" is the statusOfDeclaration of HEADER 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P79 Berichtigungsgrund
  
Description:
Wenn der Berichtigungscode (Berichtigung) gleich 0 oder gleich 2 ist, dann ist ein Berichtigungsgrund notwendig, sonst darf kein Berichtigungsgrund verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   ( the correctionCode of HEADER isNotNull
   and the correctionCode of HEADER is one of { "0" , "2" }
   and the correctionReason of HEADER isNull )
   or ( "1" is the correctionCode of HEADER 
   and the correctionReason of HEADER isNotNull )
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P81 Sperrcode Konto Zoll
  
Description:
Der Sperrcode fürs Konto darf nicht "1" sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'HEADER' to a header ;
if
   "1" is REFDATA .getRefLockCodeAccount( the customsAccount of HEADER )
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P82 Sperrcode Konto MWST
  
Description:
Der Sperrcode fürs Konto darf nicht "1" sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'HEADER' to a header ;
if
   "1" is REFDATA .getRefLockCodeAccount( the customsAccount of HEADER )
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P83 Empfaengerland CH
  
Description:
Das Empfaengerland muss CH oder FL oder LI sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the consigneeCountry of HEADER isNotNull
   and the consigneeCountry of HEADER is not one of { "CH" , "FL" , "LI" }
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P84 Importeurland CH
  
Description:
Das Importeurland muss CH oder FL oder LI sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the importerCountry of HEADER isNotNull
   and the importerCountry of HEADER is not one of { "CH" , "FL" , "LI" }
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P85 Vorpapier Art = IPV nur einmal
  
Description:
Vorpapier Art = IPV (Import Postverkehr) darf nur einmal pro Einfuhrzollanmeldung verwendet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   plausi helpers.containsAtMostOnce( the previousDocumentsType_Lists of HEADER , 'the var_artenVorpapier_IPV' ) is false 
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P86 VVM vor Abrechnung nicht definiert
  
Description:
Wenn Berichtigungscode (Berichtigung) 2 oder 0 (Annullierung oder Berichtigung) und Berichtigung vom Zoll vor Abrechung, dann darf die VVM nicht neu ausgestellt werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header
      where this header create new VAT debit isNotNull ;
if
   the correctionCode of HEADER isNotNull
   and the correctionCode of HEADER is one of { 'the var_correctionCode_Annullation_0' , 'the var_correctionCode_Korrektur_2' }
   and false is is correction from declarant of HEADER 
   and false is HEADER declaration state is/was 'abgerechnet' or 'korrigiert nach abrechnung'
   and ( HEADER create new VAT debit is true 
   or HEADER create new VAT debit is false )
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P87 VVM nach Abrechnung definiert
  
Description:
Wenn Berichtigungscode (Berichtigung) 2 oder 0 Berichtigung oder Annulierung), und Berichtigung vom Zoll nach Abrechung, dann muss angegeben werden, ob eine VVM neu ausgestellt werden soll oder nicht.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   all of the following conditions are true :
         - the correctionCode of HEADER is one of { 'the var_correctionCode_Annullation_0' , 'the var_correctionCode_Korrektur_2' }
         - is correction from declarant of HEADER is false 
         - HEADER declaration state is/was 'abgerechnet' or 'korrigiert nach abrechnung' is true 
         - HEADER create new VAT debit isNull ,
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P88 Unterlagen bei Praeferenz
  
Description:
Wenn die Praeferenz gleich 1 ist, muss entweder der Unterlagencode 3, 861, 862, 865 oder 954 angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   "1" is the preference of POSITION 
   and all of the following conditions are true :
         - 'the var_documentType_Qualitaetzeugnis_3' is one of the documentTypes of POSITION is false 
         - 'the var_documentType_861_Ursprungszeugnis' is one of the documentTypes of POSITION is false 
         - 'the var_documentType_862_Ursprungserklaerung' is one of the documentTypes of POSITION is false 
         - 'the var_documentType_APS-Ursprungszeugnis_865' is one of the documentTypes of POSITION is false 
         - 'the var_documentType_EUR1_Warenverkehrsbescheinigung_954' is one of the documentTypes of POSITION is false ,
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P89 Praeferenzansatz vorhanden
  
Description:
Wenn der Veranlagungstyp 10 oder 11und die Präferenzveranlagung beantragt wird (Flag origin/preference = 1) und Ursprungsland (origin/orignCountry) nicht Schweiz oder Lichtenstein ist, muss Praeferenzansatz gem. Stammdaten vorhanden sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   all of the following conditions are true :
         - the customsClearanceType of POSITION is not one of { 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' }
         - "1" is the preference of POSITION 
         - the originCountry of POSITION is not one of { "CH" , "FL" , "LI" }
         - checkRefPraeferenz( the commodityCode of POSITION , the originCountry of POSITION , the customsFavourCode of POSITION , the statisticalCode of POSITION ) of REFDATA is false ,
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P9 Befoerderungsmittel nicht erlaubt
  
Description:
Die Felder Transportmitteltyp, Transportmittelland, Transportmittel Kennzeichen dürfen nicht angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'HEADER' to a header ;
if
   the transportationType of HEADER isNotNull
   or the transportationCountry of HEADER isNotNull
   or the transportationNumber of HEADER isNotNull
then
   'the result' .setHeaderError( "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P90a Richtigcode bei Unterlagen ohne Praeferenz
  
Description:
Wenn Art-Unterlagencode = 865 (APS), 954 (EUR.1), 861 (Ursprungszeugnis), 862 (Ursprungserklärung) oder 3 (Qualitätszeugnis), dann muss die Praeferenz = 1 (ja) sein, ausser der Richtigcode Praeferenz ist gesetzt.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   "1" is not the preference of POSITION 
   and "1" is not the preferenceConfirmation of POSITION 
   and ( 'the var_documentType_Qualitaetzeugnis_3' is one of the documentTypes of POSITION is true 
   or 'the var_documentType_861_Ursprungszeugnis' is one of the documentTypes of POSITION is true 
   or 'the var_documentType_862_Ursprungserklaerung' is one of the documentTypes of POSITION is true 
   or 'the var_documentType_APSUrsprungszeugnis_865' is one of the documentTypes of POSITION is true 
   or 'the var_documentType_EUR1_Warenverkehrsbescheinigung_954' is one of the documentTypes of POSITION is true )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P90b Richtigcode ohne Praeferenz ohne Unterlagen
  
Description:
Wenn Präferenz = 0, null (nicht gesetzt) und Richtigcode Präferenz = 1 (ja), dann müssen Unterlagen vorgelegt werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   "1" is not the preference of POSITION 
   and "1" is the preferenceConfirmation of POSITION 
   and 0 is the number of elements in the documentTypes of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P91 Vorgelegte Unterlagen vollstaendig
  
Description:
Wenn Art-Unterlagencode = 865 (APS), 954 (EUR.1), 861 (Ursprungszeugnis), 862 (Ursprungserklärung), 864 (Präferenz-Ursprungsnachweis) oder 3 (Qualitätszeugnis), dann müssen Datum und Referenz der Dokumente übermittelt werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'PROD_DOCS' to a produced documents ;
if
   the documentType of PROD_DOCS is one of { 'the var_documentType_Qualitaetzeugnis_3' , 'the var_documentType_861_Ursprungszeugnis' , 'the var_documentType_862_Ursprungserklaerung' , 'the var_documentType_PraeferenzUrsprungsnachweis_864' , 'the var_documentType_APSUrsprungszeugnis_865' , 'the var_documentType_EUR1_Warenverkehrsbescheinigung_954' }
   and ( the issueDate of PROD_DOCS isNull
   or the issueDate of PROD_DOCS is "" 
   or the documentReferenceNumber of PROD_DOCS isNull
   or the documentReferenceNumber of PROD_DOCS is "" )
then
   'the result' .setPositionError( the positions nr of PROD_DOCS , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P92 SC4 Ursprungsland
  
Description:
Wenn Veranlagungstyp 10 (Rückwaren gemäss Zollrecht) oder 11 (Rückwaren gemäss Zoll-/MWST-Recht) angemeldet werden, dann muss das Ursprungsland CH sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the customsClearanceType of POSITION is one of { 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' }
   and the originCountry of POSITION is not "CH" 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P93 SC4 Zollansatz
  
Description:
Wenn Veranlagungstyp 10 (Rückwaren gemäss Zollrecht) oder 11 (Rückwaren gemäss Zoll-/MWST-Recht) angemeldet werden, dann muss der Zollansatz angegeben sein und der Richtigcode muss gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   ( the rate of POSITION isNull
   or "1" is not the rateConfirmation of POSITION )
   and the customsClearanceType of POSITION is one of { 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' }
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P94 SC4 Zollansatz 0 und Praeferenz
  
Description:
Wenn Veranlagungstyp 10 (Rückwaren gemäss Zollrecht) oder 11 (Rückwaren gemäss Zoll-/MWST-Recht) angemeldet werden und der Zollansatz nicht Fr. 0.00 ist, dann darf die Praeferenz nicht gesetzt sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
if
   the customsClearanceType of POSITION is one of { 'the var_customsClearanceType_Rueckwaren_gemaess_Zoll_MWST_Recht_11' , 'the var_customsClearanceType_Rueckwaren_gemaess_Zollrecht_10' }
   and ZERO is not the rate of POSITION 
   and "1" is the preference of POSITION 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P95 Gebuehren vollstaendig
  
Description:
Wenn eine Gebuehr angegeben ist, dann muss die Art, die Menge und der Ansatz angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'FEE' to a fee ;
if
   ( the type of FEE isNotNull
   or ( the quantity of FEE isNotNull
   and the quantity of FEE is not 0 )
   or ( the rate of FEE isNotNull
   and ZERO is not the rate of FEE ) )
   and ( the type of FEE isNull
   or ( the quantity of FEE isNull
   or 0 is the quantity of FEE )
   or ( the rate of FEE isNull
   or ZERO is the rate of FEE ) )
then
   'the result' .setPositionError( the positions nr of FEE , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P96 Gebuehren 950 991 992 994 nicht erlaubt
  
Description:
Gebührenart 950, 991, 992, 994, 958, 956 oder 670 darf nicht angemeldet werden.
Status:
deployable
Locale:
en_US
 
definitions
   set 'FEE' to a fee ;
if
   the type of FEE is one of { 'the var_feeType_TotalBussenverteilerKreisdirektion_950' , 'the var_feeType_885' , 'the var_feeType_Rueckerstattungsgebuehr_980' , 'the var_feeType_BarhinterlagenAbt_991' , 'the var_feeType_BarhinterlagenAusgang_992' , 'the var_feeType_Rueckerstattungen_994' , 'the var_feeType_Artenschutz_Bussen_958' , 'the var_feeType_Tierseuchenges_Bussen_956' , 'the var_feeType_670' }
then
   'the result' .setPositionError( the positions nr of FEE , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P97a NZE-Pflicht 0
  
Description:
Gültiger NZE-Pflichtcode: Pflichtcode 0 (ohne Kontrolle) nur möglich, wenn weder fakultative noch obligatorische NZE-Artencodes in Stammdaten existieren.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a 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 originCountry of POSITION ) of REFDATA is not 0 
   or the number of elements in getNZEFakultativArtenCodes( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA is not 0 )
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P97b NZE-Pflicht 2
  
Description:
Gültiger NZE-Pflichtcode: Pflichtcode 2 (ohne Kontrolle gem. Deklarant) nur möglich, wenn fakultative  NZE-Artencodes in Stammdaten existieren.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   'the var_nonCustomsLawObligation_ohne_Kontrolle_gem_Deklarant_2' is the nonCustomsLawObligation of POSITION 
   and 0 is the number of elements in getNZEFakultativArtenCodes( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P97c 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 { 'the var_nonCustomsLawObligation_ohne_Kontrolle_0' , 'the var_nonCustomsLawObligation_ohne_Kontrolle_gem_Deklarant_2' }
   and the number of elements in the nonCustomsLawTypes of POSITION is not 0 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P98a NZE-Pflicht 1
  
Description:
Wenn der NZE-Pflichtcode 1 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 the number of elements in the nonCustomsLawTypes of POSITION is 0 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P98b NZE-Artencodes obligatorisch
  
Description:
Wenn NZE-Artencode gem. Stammdaten obligatorisch, dann müssen die entsprechenden Artencodes angegeben sein.
Status:
deployable
Locale:
en_US
 
definitions
   set 'REFDATA' to a ref data ;
   set 'POSITION' to a position ;
if
   plausi helpers.containsAll( getNZEObliArtenCodes( the commodityCode of POSITION , the statisticalCode of POSITION , the originCountry of POSITION ) of REFDATA , the nonCustomsLawTypes of POSITION ) is false 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;
  
  
 
Rule: P99 NZEPflichtcode in Stammdaten
  
Description:
Gueltiger NZE-Pflichtcode gem. Stammdaten.
Status:
deployable
Locale:
en_US
 
definitions
   set 'POSITION' to a position ;
   set 'REFDATA' to a ref data ;
if
   the nonCustomsLawObligation of POSITION isNotNull
   and the nonCustomsLawObligation of POSITION is not one of the refNZEPflichtCodes of REFDATA 
then
   'the result' .setPositionError( the positions nr of POSITION , "1" , 'the check_postal_shipment' , the name of this rule ) ;