示例#1
0
 def testdateformat(self):
     self.assertEqual(None,transform.dateformat(''),'test dateformat')
     self.assertEqual(None,transform.dateformat(None),'test dateformat')
     self.assertEqual(u'102',transform.dateformat('12345678'),'test dateformat')
     #~ #self.assertEqual(None,transform.dateformat('123456789'),'test dateformat')
     self.assertRaises(botslib.BotsError,transform.dateformat,'123456789') 
     #~ #self.assertEqual(None,transform.dateformat('1234567'),'test dateformat')
     self.assertRaises(botslib.BotsError,transform.dateformat,'1234567') 
     self.assertEqual(u'203',transform.dateformat('123456789012'),'test dateformat')
     self.assertEqual(u'718',transform.dateformat('1234567890123456'),'test dateformat')
示例#2
0
 def testdateformat(self):
     self.assertEqual(None, transform.dateformat(''), 'test dateformat')
     self.assertEqual(None, transform.dateformat(None), 'test dateformat')
     self.assertEqual(u'102', transform.dateformat('12345678'),
                      'test dateformat')
     #~ #self.assertEqual(None,transform.dateformat('123456789'),'test dateformat')
     self.assertRaises(botslib.BotsError, transform.dateformat, '123456789')
     #~ #self.assertEqual(None,transform.dateformat('1234567'),'test dateformat')
     self.assertRaises(botslib.BotsError, transform.dateformat, '1234567')
     self.assertEqual(u'203', transform.dateformat('123456789012'),
                      'test dateformat')
     self.assertEqual(u'718', transform.dateformat('1234567890123456'),
                      'test dateformat')
示例#3
0
 def testdateformat(self):
     self.assertEqual(None, transform.dateformat(""), "test dateformat")
     self.assertEqual(None, transform.dateformat(None), "test dateformat")
     self.assertEqual("102", transform.dateformat("12345678"),
                      "test dateformat")
     # ~ #self.assertEqual(None,transform.dateformat('123456789'),'test dateformat')
     self.assertRaises(botslib.BotsError, transform.dateformat, "123456789")
     # ~ #self.assertEqual(None,transform.dateformat('1234567'),'test dateformat')
     self.assertRaises(botslib.BotsError, transform.dateformat, "1234567")
     self.assertEqual("203", transform.dateformat("123456789012"),
                      "test dateformat")
     self.assertEqual("718", transform.dateformat("1234567890123456"),
                      "test dateformat")
示例#4
0
 def testdateformat(self):
     self.assertEqual(None,transform.dateformat(''),'test dateformat')
     self.assertEqual(None,transform.dateformat(None),'test dateformat')
     self.assertEqual(u'102',transform.dateformat('12345678'),'test dateformat')
     self.assertEqual(None,transform.dateformat('123456789'),'test dateformat')
     self.assertEqual(None,transform.dateformat('1234567'),'test dateformat')
     self.assertEqual(u'203',transform.dateformat('123456789012'),'test dateformat')
     self.assertEqual(u'718',transform.dateformat('1234567890123456'),'test dateformat')
def main(inn,out):
    #process the lines in a loop (of course)
    headerwritten = False
    for lin in inn.getloop({'BOTSID':'HEA'}):
        if not headerwritten:
            out.ta_info['frompartner'] = lin.get({'BOTSID':'HEA','EANZENDER':None})
            out.ta_info['topartner'] = lin.get({'BOTSID':'HEA','EANONTVANGER':None})
            out.put({'BOTSID':'UNH','0062':out.ta_info['reference'],'S009.0065':'ORDERS','S009.0052':'D','S009.0054':'96A','S009.0051':'UN','S009.0057':'EAN008'})
            out.put({'BOTSID':'UNH'},{'BOTSID':'UNS','0081':'S'})
            out.put({'BOTSID':'UNH'},{'BOTSID':'BGM','1004':lin.get({'BOTSID':'HEA','ORDERNUMMER':None})})
            out.put({'BOTSID':'UNH'},{'BOTSID':'BGM','C002.1001':lin.get({'BOTSID':'HEA','SOORTORDER':None})})
            out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'BO','C506.1154':lin.get({'BOTSID':'HEA','RAAMORDERNUMMER':None})})
            out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'PD','C506.1154':lin.get({'BOTSID':'HEA','ACTIENUMMER':None})})
            out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'BY','C082.3055':'9','C082.3039':lin.get({'BOTSID':'HEA','EANAFNEMER':None})})
            out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'SU','C082.3055':'9','C082.3039':lin.get({'BOTSID':'HEA','EANLEVERANCIER':None})})
            out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'DP','C082.3055':'9','C082.3039':lin.get({'BOTSID':'HEA','EANAFLEVER':None})})
            out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'SF','C082.3055':'9','C082.3039':lin.get({'BOTSID':'HEA','EANHAALADRES':None})})
            out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'UC','C082.3055':'9','C082.3039':lin.get({'BOTSID':'HEA','EANEINDBESTEMMING':None})})
            out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'IV','C082.3055':'9','C082.3039':lin.get({'BOTSID':'HEA','EANFACTUUR':None})})
                
            out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'137','C507.2379':'102','C507.2380':time.strftime('%Y%m%d')})
            date = lin.get({'BOTSID':'HEA','LEVERDATUM':None})
            out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'2','C507.2379':transform.dateformat(date),'C507.2380':date})
            date = lin.get({'BOTSID':'HEA','VLEVERDATUM':None})
            out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'64','C507.2379':transform.dateformat(date),'C507.2380':date})
            date = lin.get({'BOTSID':'HEA','LLEVERDATUM':None})
            out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'63','C507.2379':transform.dateformat(date),'C507.2380':date})
                
            headerwritten = True

        lou = out.putloop({'BOTSID':'UNH'},{'BOTSID':'LIN'})
        lou.put({'BOTSID':'LIN','1082':lin.get({'BOTSID':'HEA','REGEL':None})})
        lou.put({'BOTSID':'LIN','C212.7143':'EN','C212.7140':lin.get({'BOTSID':'HEA','ARTIKEL':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'QTY','C186.6063':'21','C186.6060':lin.get({'BOTSID':'HEA','BESTELDAANTAL':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'RFF','C506.1153':'PD','C506.1154':lin.get({'BOTSID':'HEA','PROMOTIECODE':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'IMD','C960.4294':lin.get({'BOTSID':'HEA','ARTIKELOMSCHRIJVING':None})})

    out.put({'BOTSID':'UNH'},{'BOTSID':'UNT','0074':out.getcount()+1,'0062':out.ta_info['reference']})  #last line (counts the segments produced in out-message
def main(inn,out):
    out.put({'BOTSID':'UNH'},{'BOTSID':'UNS','0081':'S'})
    out.put({'BOTSID':'UNH','0062':out.ta_info['reference'],'S009.0065':'INVOIC','S009.0052':'D','S009.0054':'96A','S009.0051':'UN','S009.0057':'EAN008'})
    out.put({'BOTSID':'UNH'},{'BOTSID':'BGM','1225':'9','1004':inn.get({'BOTSID':'HEA','FACTUURNUMMER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'BGM','C002.1001':inn.get({'BOTSID':'HEA','SOORTFACTUUR':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'BGM','4343':inn.get({'BOTSID':'HEA','ACCIJNSVRIJ':None})})
        
    date = inn.get({'BOTSID':'HEA','LEVERDATUM':None})
    out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'35','C507.2379':transform.dateformat(date),'C507.2380':date})
    out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'137','C507.2379':'102','C507.2380':time.strftime('%Y%m%d')})
        
    out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'AAK','C506.1154':inn.get({'BOTSID':'HEA','VERZENDBERICHTNUMMER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'ON','C506.1154':inn.get({'BOTSID':'HEA','ORDERNUMMERAFNEMER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'IV','C506.1154':inn.get({'BOTSID':'HEA','CORFACTUURNUMMER':None})})
        
    if out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'BY','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANAFNEMER':None})}):
        out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'BY'},{'BOTSID':'RFF','C506.1153':'VA','C506.1154':inn.get({'BOTSID':'HEA','BTWAFNEMER':None})})
    if out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'SU','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANLEVERANCIER':None})}):
        out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'SU'},{'BOTSID':'RFF','C506.1153':'VA','C506.1154':inn.get({'BOTSID':'HEA','BTWLEVERANCIER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'DP','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANAFLEVER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'SF','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANHAALADRES':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'UC','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANEINDBESTEMMING':None})})
    if out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'IV','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANFACTUUR':None})}):
        out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'IV'},{'BOTSID':'RFF','C506.1153':'VA','C506.1154':inn.get({'BOTSID':'HEA','BTWFACTUUR':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'PE','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANBONTVANGER':None})})
        
    out.put({'BOTSID':'UNH'},{'BOTSID':'CUX','C504#1.6347':'2','C504#1.6343':'4','C504#1.6345':inn.get({'BOTSID':'HEA','VALUTA':None})})
        
    for count in range(1,4):
        DAGEN = inn.getnozero({'BOTSID':'HEA','DAGNAFACTUUR%s'%count:None})
        if DAGEN:
            pat = out.putloop({'BOTSID':'UNH'},{'BOTSID':'PAT'})
            pat.put({'BOTSID':'PAT','4279':'22','C112.2475':'5','C112.2009':'3','C112.2151':'D','C112.2152':DAGEN})
            pat.put({'BOTSID':'PAT'},{'BOTSID':'PCD','C501.5245':'12','C501.5482':inn.get({'BOTSID':'HEA','PERCENTKORTING%s'%count:None})})
    
    for alc in inn.getloop({'BOTSID':'HEA'},{'BOTSID':'HAL'}):
        hal = out.putloop({'BOTSID':'UNH'},{'BOTSID':'ALC'})
        hal.put({'BOTSID':'ALC','5463':alc.get({'BOTSID':'HAL','KORTINGTOESLAG':None})})
        hal.put({'BOTSID':'ALC','C214.7161':alc.get({'BOTSID':'HAL','SOORTKORTING':None})})
        hal.put({'BOTSID':'ALC'},{'BOTSID':'MOA','C516.5025':'8','C516.5004':alc.get({'BOTSID':'HAL','KORTINGSBEDRAG':None})})
        hal.put({'BOTSID':'ALC'},{'BOTSID':'TAX','5283':'7','C241.5153':'VAT','C243.5278':alc.get({'BOTSID':'HAL','BTWPERCENTAGE':None})})
        hal.put({'BOTSID':'ALC'},{'BOTSID':'TAX','5283':'7','C241.5153':'VAT','5305':alc.get({'BOTSID':'HAL','BTWTARIEF':None})})

    for lin in inn.getloop({'BOTSID':'HEA'},{'BOTSID':'LIN'}):
        lou = out.putloop({'BOTSID':'UNH'},{'BOTSID':'LIN'})
        lou.put({'BOTSID':'LIN','1082':lin.get({'BOTSID':'LIN','REGEL':None})})
        lou.put({'BOTSID':'LIN','C212.7143':'EN','C212.7140':lin.get({'BOTSID':'LIN','ARTIKEL':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'QTY','C186.6063':'47','C186.6060':lin.get({'BOTSID':'LIN','GEFACTAANTAL':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'QTY','C186.6063':'12','C186.6060':lin.get({'BOTSID':'LIN','GELEVERDAANTAL':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'RFF','C506.1153':'PD','C506.1154':lin.get({'BOTSID':'LIN','PROMOTIECODE':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'IMD','C960.4294':lin.get({'BOTSID':'LIN','ARTIKELOMSCHRIJVING':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'MOA','C516.5025':'203','C516.5004':lin.get({'BOTSID':'LIN','NETTOREGELBEDRAG':None})})
        if lou.put({'BOTSID':'LIN'},{'BOTSID':'PRI','C509.5125':'INV','C509.5118':lin.get({'BOTSID':'LIN','PRIJS':None})}):
            lou.put({'BOTSID':'LIN'},{'BOTSID':'PRI','C509.5125':'INV','C509.5284':lin.getnozero({'BOTSID':'LIN','AANTALPRIJSBASIS':None})})
            lou.put({'BOTSID':'LIN'},{'BOTSID':'PRI','C509.5125':'INV','C509.6411':lin.get({'BOTSID':'LIN','EENHEIDPRIJSBASIS':None})})
        if lou.put({'BOTSID':'LIN'},{'BOTSID':'TAX','5283':'7','C241.5153':'VAT','5305':lin.get({'BOTSID':'LIN','BTWTARIEF':None})}):
            lou.put({'BOTSID':'LIN'},{'BOTSID':'TAX','5283':'7','C241.5153':'VAT','C243.5278':lin.get({'BOTSID':'LIN','BTWPERCENTAGE':None})})

        for alc in lin.getloop({'BOTSID':'LIN'},{'BOTSID':'LAL'}):
            lal = lou.putloop({'BOTSID':'LIN'},{'BOTSID':'ALC'})
            lal.put({'BOTSID':'ALC','5463':alc.get({'BOTSID':'LAL','KORTINGTOESLAG':None})})
            lal.put({'BOTSID':'ALC','C214.7161':alc.get({'BOTSID':'LAL','SOORTKORTING':None})})
            lal.put({'BOTSID':'ALC'},{'BOTSID':'MOA','C516.5025':'8','C516.5004':alc.get({'BOTSID':'LAL','KORTINGSBEDRAG':None})})
            if lal.put({'BOTSID':'ALC'},{'BOTSID':'TAX','5283':'7','C241.5153':'VAT','5305':alc.get({'BOTSID':'LAL','BTWTARIEF':None})}):
                lal.put({'BOTSID':'ALC'},{'BOTSID':'TAX','5283':'7','C241.5153':'VAT','C243.5278':alc.get({'BOTSID':'LAL','BTWPERCENTAGE':None})})

    out.put({'BOTSID':'UNH'},{'BOTSID':'UNS','0081':'S'})
    out.put({'BOTSID':'UNH'},{'BOTSID':'UNS'},{'BOTSID':'MOA','C516.5025':'79','C516.5004':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','TOTAALREGEL':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'UNS'},{'BOTSID':'MOA','C516.5025':'131','C516.5004':inn.getnozero({'BOTSID':'HEA'},{'BOTSID':'TOT','TOTAALFACTUURKORTING':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'UNS'},{'BOTSID':'MOA','C516.5025':'176','C516.5004':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','TOTAALBTW':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'UNS'},{'BOTSID':'MOA','C516.5025':'77','C516.5004':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','TOTAALFACTUUR':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'UNS'},{'BOTSID':'MOA','C516.5025':'129','C516.5004':inn.getnozero({'BOTSID':'HEA'},{'BOTSID':'TOT','GRONDSLAGBETKORTING':None})})
    for count in range(1,5):
        BTWTARIEF = inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','BTWTARIEF%s'%count:None})
        if BTWTARIEF:
            tax = out.putloop({'BOTSID':'UNH'},{'BOTSID':'UNS'},{'BOTSID':'TAX'})
            tax.put({'BOTSID':'TAX','5283':'7','C241.5153':'VAT','5305':BTWTARIEF})
            tax.put({'BOTSID':'TAX','5283':'7','C241.5153':'VAT','C243.5278':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','BTWPERCENTAGE%s'%count:None})})
            tax.put({'BOTSID':'TAX','5283':'7','C241.5153':'VAT'},{'BOTSID':'MOA','C516.5025':'125','C516.5004':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','BTWGRONDSLAG%s'%count:None})})
            tax.put({'BOTSID':'TAX','5283':'7','C241.5153':'VAT'},{'BOTSID':'MOA','C516.5025':'124','C516.5004':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','BTWBEDRAG%s'%count:None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'UNT','0074':out.getcount()+1,'0062':out.ta_info['reference']})
def main(inn,out):
    out.put({'BOTSID':'UNH'},{'BOTSID':'UNS','0081':'S'})
    out.put({'BOTSID':'UNH','0062':out.ta_info['reference'],'S009.0065':'INVOIC','S009.0052':'D','S009.0054':'96A','S009.0051':'UN','S009.0057':'EAN008'})
    out.put({'BOTSID':'UNH'},{'BOTSID':'BGM','1225':'9','1004':inn.get({'BOTSID':'HEA','FACTUURNUMMER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'BGM','C002.1001':inn.get({'BOTSID':'HEA','SOORTFACTUUR':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'BGM','4343':inn.get({'BOTSID':'HEA','ACCIJNSVRIJ':None})})
    
    LEVERDATUM = inn.get({'BOTSID':'HEA','LEVERDATUM':None})
    out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'35','C507.2380':LEVERDATUM,'C507.2379':transform.dateformat(LEVERDATUM)})
    out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'137','C507.2379':'102','C507.2380':transform.strftime('%Y%m%d')})
    
    if out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'BY','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANAFNEMER':None})}):
        out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'BY'},{'BOTSID':'RFF','C506.1153':'VA','C506.1154':inn.get({'BOTSID':'HEA','BTWAFNEMER':None})})
    if out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'SU','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANLEVERANCIER':None})}):
        out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'SU'},{'BOTSID':'RFF','C506.1153':'VA','C506.1154':inn.get({'BOTSID':'HEA','BTWLEVERANCIER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'DP','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANAFLEVER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'SF','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANHAALADRES':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'UC','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANEINDBESTEMMING':None})})
    if out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'IV','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANFACTUUR':None})}):
        out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'IV'},{'BOTSID':'RFF','C506.1153':'VA','C506.1154':inn.get({'BOTSID':'HEA','BTWFACTUUR':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'PE','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANBONTVANGER':None})})
    
    out.put({'BOTSID':'UNH'},{'BOTSID':'CUX','C504#1.6347':'2','C504#1.6343':'4','C504#1.6345':inn.get({'BOTSID':'HEA','VALUTA':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'AAK','C506.1154':inn.get({'BOTSID':'HEA','VERZENDBERICHTNUMMER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'ON','C506.1154':inn.get({'BOTSID':'HEA','ORDERNUMMERAFNEMER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'IV','C506.1154':inn.get({'BOTSID':'HEA','CORFACTUURNUMMER':None})})
    
    #charges/allowances on invoice level
    for alc in inn.getloop({'BOTSID':'HEA'},{'BOTSID':'HAL'}):
        hal = out.putloop({'BOTSID':'UNH'},{'BOTSID':'ALC'})
        hal.put({'BOTSID':'ALC','5463':alc.get({'BOTSID':'HAL','KORTINGTOESLAG':None})})
        hal.put({'BOTSID':'ALC','C214.7161':alc.get({'BOTSID':'HAL','SOORTKORTING':None})})
        hal.put({'BOTSID':'ALC'},{'BOTSID':'MOA','C516.5025':'8','C516.5004':alc.get({'BOTSID':'HAL','KORTINGSBEDRAG':None})})
        hal.put({'BOTSID':'ALC'},{'BOTSID':'TAX','5283':'7','C241.5153':'VAT','C243.5278':alc.get({'BOTSID':'HAL','BTWPERCENTAGE':None})})
        hal.put({'BOTSID':'ALC'},{'BOTSID':'TAX','5283':'7','C241.5153':'VAT','5305':alc.get({'BOTSID':'HAL','BTWTARIEF':None})})

    #lines
    for lin in inn.getloop({'BOTSID':'HEA'},{'BOTSID':'LIN'}):
        lou = out.putloop({'BOTSID':'UNH'},{'BOTSID':'LIN'})
        lou.put({'BOTSID':'LIN','1082':lin.get({'BOTSID':'LIN','REGEL':None})})
        lou.put({'BOTSID':'LIN','C212.7143':'EN','C212.7140':lin.get({'BOTSID':'LIN','ARTIKEL':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'QTY','C186.6063':'47','C186.6060':lin.get({'BOTSID':'LIN','GEFACTAANTAL':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'QTY','C186.6063':'12','C186.6060':lin.get({'BOTSID':'LIN','GELEVERDAANTAL':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'RFF','C506.1153':'PD','C506.1154':lin.get({'BOTSID':'LIN','PROMOTIECODE':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'IMD','C960.4294':lin.get({'BOTSID':'LIN','ARTIKELOMSCHRIJVING':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'MOA','C516.5025':'203','C516.5004':lin.get({'BOTSID':'LIN','NETTOREGELBEDRAG':None})})
        if lou.put({'BOTSID':'LIN'},{'BOTSID':'PRI','C509.5125':'INV','C509.5118':lin.get({'BOTSID':'LIN','PRIJS':None})}):
            lou.put({'BOTSID':'LIN'},{'BOTSID':'PRI','C509.5125':'INV','C509.5284':lin.getnozero({'BOTSID':'LIN','AANTALPRIJSBASIS':None})})
            lou.put({'BOTSID':'LIN'},{'BOTSID':'PRI','C509.5125':'INV','C509.6411':lin.get({'BOTSID':'LIN','EENHEIDPRIJSBASIS':None})})
        if lou.put({'BOTSID':'LIN'},{'BOTSID':'TAX','5283':'7','C241.5153':'VAT','5305':lin.get({'BOTSID':'LIN','BTWTARIEF':None})}):
            lou.put({'BOTSID':'LIN'},{'BOTSID':'TAX','5283':'7','C241.5153':'VAT','C243.5278':lin.get({'BOTSID':'LIN','BTWPERCENTAGE':None})})
        
        #charges/allowances on line level
        for alc in lin.getloop({'BOTSID':'LIN'},{'BOTSID':'LAL'}):
            lal = lou.putloop({'BOTSID':'LIN'},{'BOTSID':'ALC'})
            lal.put({'BOTSID':'ALC','5463':alc.get({'BOTSID':'LAL','KORTINGTOESLAG':None})})
            lal.put({'BOTSID':'ALC','C214.7161':alc.get({'BOTSID':'LAL','SOORTKORTING':None})})
            lal.put({'BOTSID':'ALC'},{'BOTSID':'MOA','C516.5025':'8','C516.5004':alc.get({'BOTSID':'LAL','KORTINGSBEDRAG':None})})
            if lal.put({'BOTSID':'ALC'},{'BOTSID':'TAX','5283':'7','C241.5153':'VAT','5305':alc.get({'BOTSID':'LAL','BTWTARIEF':None})}):
                lal.put({'BOTSID':'ALC'},{'BOTSID':'TAX','5283':'7','C241.5153':'VAT','C243.5278':alc.get({'BOTSID':'LAL','BTWPERCENTAGE':None})})

    out.put({'BOTSID':'UNH'},{'BOTSID':'UNS','0081':'S'})
    #amounts in 'trailer'
    out.put({'BOTSID':'UNH'},{'BOTSID':'MOA','C516.5025':'79','C516.5004':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','TOTAALREGEL':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'MOA','C516.5025':'131','C516.5004':inn.getnozero({'BOTSID':'HEA'},{'BOTSID':'TOT','TOTAALFACTUURKORTING':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'MOA','C516.5025':'176','C516.5004':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','TOTAALBTW':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'MOA','C516.5025':'77','C516.5004':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','TOTAALFACTUUR':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'MOA','C516.5025':'129','C516.5004':inn.getnozero({'BOTSID':'HEA'},{'BOTSID':'TOT','GRONDSLAGBETKORTING':None})})
    #use BOTSIDnr here because UNH-TAX is mroe than once in branching diagram (use 2nd one) 
    out.put({'BOTSID':'UNH'},{'BOTSID':'TAX','BOTSIDnr':'2','5283':'7','C241.5153':'VAT','5305':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','BTWTARIEF1':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'TAX','BOTSIDnr':'2','5283':'7','C241.5153':'VAT','C243.5278':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','BTWPERCENTAGE1':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'TAX','BOTSIDnr':'2','5283':'7','C241.5153':'VAT'},{'BOTSID':'MOA','C516.5025':'125','C516.5004':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','BTWGRONDSLAG1':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'TAX','BOTSIDnr':'2','5283':'7','C241.5153':'VAT'},{'BOTSID':'MOA','C516.5025':'124','C516.5004':inn.get({'BOTSID':'HEA'},{'BOTSID':'TOT','BTWBEDRAG1':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'UNT','0074':out.getcount()+1,'0062':out.ta_info['reference']})
def main(inn,out):
    out.put({'BOTSID':'UNH','0062':out.ta_info['reference'],'S009.0065':'DESADV','S009.0052':'D','S009.0054':'96A','S009.0051':'UN','S009.0057':'EAN005'})
    
    out.put({'BOTSID':'UNH'},{'BOTSID':'BGM','C002.1001':inn.get({'BOTSID':'message','docsrt':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'BGM','1004':inn.get({'BOTSID':'message','docnum':None})})
        
    date = inn.get({'BOTSID':'message','docdtm':None})
    out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'137','C507.2379':transform.dateformat(date),'C507.2380':date})
    date = inn.get({'BOTSID':'message','deldtm':None})
    out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'17','C507.2379':transform.dateformat(date),'C507.2380':date})
    date = inn.get({'BOTSID':'message','earldeldtm':None})
    out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'64','C507.2379':transform.dateformat(date),'C507.2380':date})
    date = inn.get({'BOTSID':'message','latedeldtm':None})
    out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'63','C507.2379':transform.dateformat(date),'C507.2380':date})
    date = inn.get({'BOTSID':'message','despatchdtm':None})
    out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'11','C507.2379':transform.dateformat(date),'C507.2380':date})
    date = inn.get({'BOTSID':'message','askeddeldtm':None})
    out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'2','C507.2379':transform.dateformat(date),'C507.2380':date})

    out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'ON','C506.1154':inn.get({'BOTSID':'message','byordnum':None})})
    if out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'VN','C506.1154':inn.get({'BOTSID':'message','suordnum':None})}):
        date = inn.get({'BOTSID':'message','suorddtm':None})
        out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'VN'},{'BOTSID':'DTM','C507.2005':'171','C507.2379':transform.dateformat(date),'C507.2380':date})
    
    for party in inn.getloop({'BOTSID':'message'},{'BOTSID':'partys'},{'BOTSID':'party'}):
        nad = out.putloop({'BOTSID':'UNH'},{'BOTSID':'NAD'})
        nad.put({'BOTSID':'NAD','3035':party.get({'BOTSID':'party','qual':None})})
        nad.put({'BOTSID':'NAD','C082.3055':'9','C082.3039':party.get({'BOTSID':'party','gln':None})})
        nad.put({'BOTSID':'NAD','C080.3036#1':party.get({'BOTSID':'party','name1':None})})
        nad.put({'BOTSID':'NAD','C080.3036#2':party.get({'BOTSID':'party','name2':None})})
        nad.put({'BOTSID':'NAD','C059.3042#1':party.get({'BOTSID':'party','address1':None})})
        nad.put({'BOTSID':'NAD','C059.3042#2':party.get({'BOTSID':'party','address2':None})})
        nad.put({'BOTSID':'NAD','C059.3042#3':party.get({'BOTSID':'party','address3':None})})
        nad.put({'BOTSID':'NAD','3164':party.get({'BOTSID':'party','city':None})})
        nad.put({'BOTSID':'NAD','3251':party.get({'BOTSID':'party','pcode':None})})
        nad.put({'BOTSID':'NAD','3207':party.get({'BOTSID':'party','country':None})})
        nad.put({'BOTSID':'NAD'},{'BOTSID':'RFF','C506.1153':'VA','C506.1154':party.get({'BOTSID':'party','vatnum':None})})
        nad.put({'BOTSID':'NAD'},{'BOTSID':'RFF','C506.1153':'API','C506.1154':party.get({'BOTSID':'party','externalID':None})})
        nad.put({'BOTSID':'NAD'},{'BOTSID':'RFF','C506.1153':'IT','C506.1154':party.get({'BOTSID':'party','internalID':None})})
        
        
    for cps in inn.getloop({'BOTSID':'message'},{'BOTSID':'cpss'},{'BOTSID':'cps'}):
        verzendregel  = out.putloop({'BOTSID':'UNH'},{'BOTSID':'CPS'})
        cpsline = cps.get({'BOTSID':'cps','line':None}) or '1'
        verzendregel.put({'BOTSID':'CPS','7164':cpsline})
        verzendregel.put({'BOTSID':'CPS','7166':cps.get({'BOTSID':'cps','subline':None})})

        for pac in cps.getloop({'BOTSID':'cps'},{'BOTSID':'pacs'},{'BOTSID':'pac'}):
            verpakking = verzendregel.putloop({'BOTSID':'CPS'},{'BOTSID':'PAC'})
            verpakking.put({'BOTSID':'PAC','7224':pac.get({'BOTSID':'pac','qua':None})})
            verpakking.put({'BOTSID':'PAC','C202.7065':pac.get({'BOTSID':'pac','iso':None})})
            verpakking.put({'BOTSID':'PAC'},{'BOTSID':'PCI','4233':'17'},{'BOTSID':'GIN','7405':'EU','C208#1.7402#1':pac.get({'BOTSID':'pac','gtin':None})})
            verpakking.put({'BOTSID':'PAC'},{'BOTSID':'PCI','4233':'33E'},{'BOTSID':'GIN','7405':'BJ','C208#1.7402#1':pac.get({'BOTSID':'pac','sscc':None})})
            verpakking.put({'BOTSID':'PAC'},{'BOTSID':'MEA','6311':'PD','C502.6313':'AAD','C174.6411':'KGM','C174.6314':pac.get({'BOTSID':'pac','brutweight':None})})
            #~ verpakking.put({'BOTSID':'PAC'},{'BOTSID':'MEA','6311':'PD','C502.6313':'AAD','C174.6411':'KGM','C174.6314':pac.get({'BOTSID':'pac','brutweight':None})})   #DE: per pac
            verpakking.put({'BOTSID':'PAC'},{'BOTSID':'MEA','6311':'PD','C502.6313':'AAW','C174.6411':'LTR','C174.6314':pac.get({'BOTSID':'pac','brutvolume':None})})
            verpakking.put({'BOTSID':'PAC'},{'BOTSID':'MEA','6311':'PD','C502.6313':'WD','C174.6411':'MTR','C174.6314':pac.get({'BOTSID':'pac','width':None})})
            verpakking.put({'BOTSID':'PAC'},{'BOTSID':'MEA','6311':'PD','C502.6313':'LN','C174.6411':'MTR','C174.6314':pac.get({'BOTSID':'pac','length':None})})
            verpakking.put({'BOTSID':'PAC'},{'BOTSID':'MEA','6311':'PD','C502.6313':'HT','C174.6411':'MTR','C174.6314':pac.get({'BOTSID':'pac','height':None})})
                
        for lin in cps.getloop({'BOTSID':'cps'},{'BOTSID':'lines'},{'BOTSID':'line'}):
            regel = verzendregel.putloop({'BOTSID':'CPS'},{'BOTSID':'LIN'})
            regel.put({'BOTSID':'LIN','1082':lin.get({'BOTSID':'line','num':None})})
            regel.put({'BOTSID':'LIN','C212.7143':'EN','C212.7140':lin.get({'BOTSID':'line','gtin':None})})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'PIA','4347':'1','C212#1.7143':'SA','C212#1.7140':lin.get({'BOTSID':'line','suart':None})})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'PIA','4347':'1','C212#1.7143':'IN','C212#1.7140':lin.get({'BOTSID':'line','byart':None})})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'PIA','4347':'1','C212#1.7143':'NB','C212#1.7140':lin.get({'BOTSID':'line','batchnum':None})})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'PIA','4347':'1','C212#1.7143':'SN','C212#1.7140':lin.get({'BOTSID':'line','serialnum':None})})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'IMD','7077':'F','C273.7008#1':lin.get({'BOTSID':'line','desc':None})})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'QTY','C186.6063':'12','C186.6060':lin.get({'BOTSID':'line','delqua':None})})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'QTY','C186.6063':'21','C186.6411':lin.get({'BOTSID':'line','ordunit':None})})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'QTY','C186.6063':'192','C186.6060':lin.get({'BOTSID':'line','freequa':None})})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'QTY','C186.6063':'21','C186.6060':lin.get({'BOTSID':'line','ordqua':None})})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'QTY','C186.6063':'21','C186.6411':lin.get({'BOTSID':'line','ordunit':None})})
            date = lin.get({'BOTSID':'line','productiondtm':None})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'DTM','C507.2005':'94','C507.2379':transform.dateformat(date),'C507.2380':date})
            date = lin.get({'BOTSID':'line','expirydtm':None})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'PCI','4233':'17'},{'BOTSID':'DTM','C507.2005':'36','C507.2379':transform.dateformat(date),'C507.2380':date})
            date = lin.get({'BOTSID':'line','bestbeforedtm':None})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'PCI','4233':'17'},{'BOTSID':'DTM','C507.2005':'23E','C507.2379':transform.dateformat(date),'C507.2380':date})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'PCI','4233':'17'},{'BOTSID':'DTM','C507.2005':'361','C507.2379':transform.dateformat(date),'C507.2380':date})
            regel.put({'BOTSID':'LIN'},{'BOTSID':'PCI','4233':'36E'},{'BOTSID':'GIN','7405':'BX','C208#1.7402#1':lin.get({'BOTSID':'line','batchnumpac':None})})
    
    out.put({'BOTSID':'UNH'},{'BOTSID':'UNT','0074':out.getcount()+1,'0062':out.ta_info['reference']})  #last line (counts the segments produced in out-message)
def main(inn, out):
    out.put({
        'BOTSID': 'UNH',
        '0062': out.ta_info['reference'],
        'S009.0065': 'INVOIC',
        'S009.0052': 'D',
        'S009.0054': '96A',
        'S009.0051': 'UN',
        'S009.0057': 'EAN008'
    })

    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'BGM',
        'C002.1001': inn.get({
            'BOTSID': 'message',
            'docsrt': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'BGM',
        '1004': inn.get({
            'BOTSID': 'message',
            'docnum': None
        })
    })

    date = inn.get({'BOTSID': 'message', 'docdtm': None})
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'DTM',
        'C507.2005': '137',
        'C507.2379': transform.dateformat(date),
        'C507.2380': date
    })
    date = inn.get({'BOTSID': 'message', 'deldtm': None})
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'DTM',
        'C507.2005': '35',
        'C507.2379': transform.dateformat(date),
        'C507.2380': date
    })

    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'RFF',
        'C506.1153': 'ON',
        'C506.1154': inn.get({
            'BOTSID': 'message',
            'byordnum': None
        })
    })
    if out.put({'BOTSID': 'UNH'}, {
            'BOTSID': 'RFF',
            'C506.1153': 'VN',
            'C506.1154': inn.get({
                'BOTSID': 'message',
                'suordnum': None
            })
    }):
        date = inn.get({'BOTSID': 'message', 'suorddtum': None})
        out.put({'BOTSID': 'UNH'}, {
            'BOTSID': 'RFF',
            'C506.1153': 'VN'
        }, {
            'BOTSID': 'DTM',
            'C507.2005': '171',
            'C507.2379': transform.dateformat(date),
            'C507.2380': date
        })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'RFF',
        'C506.1153': 'AAK',
        'C506.1154': inn.get({
            'BOTSID': 'message',
            'sudesnum': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'RFF',
        'C506.1153': 'IV',
        'C506.1154': inn.get({
            'BOTSID': 'message',
            'oriinvoicnum': None
        })
    })

    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'TAX',
        '5283': '7',
        'C241.5153': 'VAT',
        '5305': inn.get({
            'BOTSID': 'message',
            'vatrate': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'TAX',
        '5283': '7',
        'C241.5153': 'VAT',
        'C243.5278': inn.get({
            'BOTSID': 'message',
            'vatper': None
        })
    })

    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'CUX',
        'C504#1.6347': '2',
        'C504#1.6343': '4',
        'C504#1.6345': inn.get({
            'BOTSID': 'message',
            'currency': None
        })
    })

    for party in inn.getloop({'BOTSID': 'message'}, {'BOTSID': 'partys'},
                             {'BOTSID': 'party'}):
        nad = out.putloop({'BOTSID': 'UNH'}, {'BOTSID': 'NAD'})
        nad.put({
            'BOTSID': 'NAD',
            '3035': party.get({
                'BOTSID': 'party',
                'qual': None
            })
        })
        nad.put({
            'BOTSID': 'NAD',
            'C082.3055': '9',
            'C082.3039': party.get({
                'BOTSID': 'party',
                'gln': None
            })
        })
        nad.put({
            'BOTSID': 'NAD',
            'C080.3036#1': party.get({
                'BOTSID': 'party',
                'name1': None
            })
        })
        nad.put({
            'BOTSID': 'NAD',
            'C080.3036#2': party.get({
                'BOTSID': 'party',
                'name2': None
            })
        })
        nad.put({
            'BOTSID': 'NAD',
            'C059.3042#1': party.get({
                'BOTSID': 'party',
                'address1': None
            })
        })
        nad.put({
            'BOTSID': 'NAD',
            'C059.3042#2': party.get({
                'BOTSID': 'party',
                'address2': None
            })
        })
        nad.put({
            'BOTSID': 'NAD',
            'C059.3042#3': party.get({
                'BOTSID': 'party',
                'address3': None
            })
        })
        nad.put({
            'BOTSID': 'NAD',
            '3164': party.get({
                'BOTSID': 'party',
                'city': None
            })
        })
        nad.put({
            'BOTSID': 'NAD',
            '3251': party.get({
                'BOTSID': 'party',
                'pcode': None
            })
        })
        nad.put({
            'BOTSID': 'NAD',
            '3207': party.get({
                'BOTSID': 'party',
                'country': None
            })
        })
        nad.put({'BOTSID': 'NAD'}, {
            'BOTSID': 'RFF',
            'C506.1153': 'VA',
            'C506.1154': party.get({
                'BOTSID': 'party',
                'vatnum': None
            })
        })
        nad.put({'BOTSID': 'NAD'}, {
            'BOTSID': 'RFF',
            'C506.1153': 'API',
            'C506.1154': party.get({
                'BOTSID': 'party',
                'externalID': None
            })
        })
        nad.put({'BOTSID': 'NAD'}, {
            'BOTSID': 'RFF',
            'C506.1153': 'IT',
            'C506.1154': party.get({
                'BOTSID': 'party',
                'internalID': None
            })
        })

    for falc in inn.getloop({'BOTSID': 'message'}, {'BOTSID': 'alcs'},
                            {'BOTSID': 'alc'}):
        alc = out.putloop({'BOTSID': 'UNH'}, {'BOTSID': 'ALC'})
        alc.put({
            'BOTSID': 'ALC',
            '5463': falc.get({
                'BOTSID': 'alc',
                'sign': None
            })
        })
        alc.put({
            'BOTSID': 'ALC',
            'C214.7161': falc.get({
                'BOTSID': 'alc',
                'srt': None
            })
        })
        alc.put({
            'BOTSID':
            'ALC',
            '1227':
            falc.get({
                'BOTSID': 'alc',
                'calculationsequence': None
            })
        })
        alc.put({'BOTSID': 'ALC'}, {
            'BOTSID': 'MOA',
            'C516.5025': '8',
            'C516.5004': falc.get({
                'BOTSID': 'alc',
                'mon': None
            })
        })
        alc.put({'BOTSID': 'ALC'}, {
            'BOTSID': 'MOA',
            'C516.5025': '25',
            'C516.5004': falc.get({
                'BOTSID': 'alc',
                'basemon': None
            })
        })
        alc.put({'BOTSID': 'ALC'}, {
            'BOTSID': 'PCD',
            'C501.5245': '1',
            'C501.5482': falc.get({
                'BOTSID': 'alc',
                'per': None
            })
        })
        alc.put({'BOTSID': 'ALC'}, {
            'BOTSID': 'TAX',
            '5283': '7',
            'C241.5153': 'VAT',
            '5305': falc.get({
                'BOTSID': 'alc',
                'vatrate': None
            })
        })
        alc.put({'BOTSID': 'ALC'}, {
            'BOTSID': 'TAX',
            '5283': '7',
            'C241.5153': 'VAT',
            'C243.5278': falc.get({
                'BOTSID': 'alc',
                'vatper': None
            })
        })

    for lin in inn.getloop({'BOTSID': 'message'}, {'BOTSID': 'lines'},
                           {'BOTSID': 'line'}):
        regel = out.putloop({'BOTSID': 'UNH'}, {'BOTSID': 'LIN'})
        regel.put({
            'BOTSID': 'LIN',
            '1082': lin.get({
                'BOTSID': 'line',
                'linenum': None
            })
        })
        regel.put({
            'BOTSID': 'LIN',
            'C212.7143': 'EN',
            'C212.7140': lin.get({
                'BOTSID': 'line',
                'gtin': None
            })
        })

        regel.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'PIA',
            '4347': '1',
            'C212#1.7143': 'SA',
            'C212#1.7140': lin.get({
                'BOTSID': 'line',
                'suart': None
            })
        })
        regel.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'PIA',
            '4347': '1',
            'C212#1.7143': 'BP',
            'C212#1.7140': lin.get({
                'BOTSID': 'line',
                'byart': None
            })
        })

        regel.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'IMD',
            '7077': 'F',
            'C273.7008#1': lin.get({
                'BOTSID': 'line',
                'desc': None
            })
        })

        delunit = lin.get({'BOTSID': 'line', 'delunit': None}) or 'PCE'
        regel.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'QTY',
            'C186.6063': '12',
            'C186.6411': delunit,
            'C186.6060': lin.get({
                'BOTSID': 'line',
                'delqua': None
            })
        })
        regel.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'QTY',
            'C186.6063': '192',
            'C186.6411': delunit,
            'C186.6060': lin.get({
                'BOTSID': 'line',
                'freequa': None
            })
        })

        priunit = lin.get({'BOTSID': 'line', 'priunit': None}) or 'PCE'
        regel.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'QTY',
            'C186.6063': '47',
            'C186.6411': priunit,
            'C186.6060': lin.get({
                'BOTSID': 'line',
                'invqua': None
            })
        })
        regel.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'PRI',
            'C509.5125': 'AAB',
            'C509.6411': priunit,
            'C509.5284': '1',
            'C509.5118': lin.get({
                'BOTSID': 'line',
                'pricebrut': None
            })
        })
        regel.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'PRI',
            'C509.5125': 'AAA',
            'C509.6411': priunit,
            'C509.5284': '1',
            'C509.5118': lin.get({
                'BOTSID': 'line',
                'pricenet': None
            })
        })

        regel.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'MOA',
            'C516.5025': '203',
            'C516.5004': lin.get({
                'BOTSID': 'line',
                'netmon': None
            })
        })

        regel.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'TAX',
            '5283': '7',
            'C241.5153': 'VAT',
            '5305': lin.get({
                'BOTSID': 'line',
                'vatrate': None
            })
        })
        regel.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'TAX',
            '5283': '7',
            'C241.5153': 'VAT',
            'C243.5278': lin.get({
                'BOTSID': 'line',
                'vatper': None
            })
        })

        for lalc in lin.getloop({'BOTSID': 'line'}, {'BOTSID': 'alcs'},
                                {'BOTSID': 'alc'}):
            alc = regel.putloop({'BOTSID': 'LIN'}, {'BOTSID': 'ALC'})
            alc.put({
                'BOTSID': 'ALC',
                '5463': lalc.get({
                    'BOTSID': 'alc',
                    'sign': None
                })
            })
            alc.put({
                'BOTSID': 'ALC',
                'C214.7161': lalc.get({
                    'BOTSID': 'alc',
                    'srt': None
                })
            })
            alc.put({
                'BOTSID':
                'ALC',
                '1227':
                lalc.get({
                    'BOTSID': 'alc',
                    'calculationsequence': None
                })
            })
            alc.put({'BOTSID': 'ALC'}, {
                'BOTSID': 'MOA',
                'C516.5025': '8',
                'C516.5004': lalc.get({
                    'BOTSID': 'alc',
                    'mon': None
                })
            })
            alc.put({'BOTSID': 'ALC'}, {
                'BOTSID': 'MOA',
                'C516.5025': '25',
                'C516.5004': lalc.get({
                    'BOTSID': 'alc',
                    'basemon': None
                })
            })
            alc.put({'BOTSID': 'ALC'}, {
                'BOTSID': 'PCD',
                'C501.5245': '1',
                'C501.5482': lalc.get({
                    'BOTSID': 'alc',
                    'per': None
                })
            })
            alc.put({'BOTSID': 'ALC'}, {
                'BOTSID': 'TAX',
                '5283': '7',
                'C241.5153': 'VAT',
                '5305': lalc.get({
                    'BOTSID': 'alc',
                    'vatrate': None
                })
            })
            alc.put({'BOTSID': 'ALC'}, {
                'BOTSID': 'TAX',
                '5283': '7',
                'C241.5153': 'VAT',
                'C243.5278': lalc.get({
                    'BOTSID': 'alc',
                    'vatper': None
                })
            })

    out.put({'BOTSID': 'UNH'}, {'BOTSID': 'UNS', '0081': 'S'})

    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'MOA',
        'C516.5025': '79',
        'C516.5004': inn.get({
            'BOTSID': 'message',
            'netmon': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'MOA',
        'C516.5025': '131',
        'C516.5004': inn.get({
            'BOTSID': 'message',
            'alcmon': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'MOA',
        'C516.5025': '176',
        'C516.5004': inn.get({
            'BOTSID': 'message',
            'vatmon': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'MOA',
        'C516.5025': '124',
        'C516.5004': inn.get({
            'BOTSID': 'message',
            'vatmon': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'MOA',
        'C516.5025': '77',
        'C516.5004': inn.get({
            'BOTSID': 'message',
            'invmon': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'MOA',
        'C516.5025': '125',
        'C516.5004': inn.get({
            'BOTSID': 'message',
            'vatbasemon': None
        })
    })

    for sub in inn.getloop({'BOTSID': 'message'}, {'BOTSID': 'subs'},
                           {'BOTSID': 'sub'}):
        tax = out.putloop({'BOTSID': 'UNH'}, {
            'BOTSID': 'TAX',
            'BOTSIDnr': '2',
            '5283': '7',
            'C241.5153': 'VAT'
        })
        tax.put({
            'BOTSID': 'TAX',
            'BOTSIDnr': '2',
            '5305': sub.get({
                'BOTSID': 'sub',
                'vatrate': None
            })
        })
        tax.put({
            'BOTSID': 'TAX',
            'BOTSIDnr': '2',
            'C243.5278': sub.get({
                'BOTSID': 'sub',
                'vatper': None
            })
        })
        tax.put({
            'BOTSID': 'TAX',
            'BOTSIDnr': '2'
        }, {
            'BOTSID': 'MOA',
            'C516.5025': '125',
            'C516.5004': sub.get({
                'BOTSID': 'sub',
                'vatbasemon': None
            })
        })
        tax.put({
            'BOTSID': 'TAX',
            'BOTSIDnr': '2'
        }, {
            'BOTSID': 'MOA',
            'C516.5025': '124',
            'C516.5004': sub.get({
                'BOTSID': 'sub',
                'vatmon': None
            })
        })

    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'UNT',
        '0074': out.getcount() + 1,
        '0062': out.ta_info['reference']
    })  #last line (counts the segments produced in out-message)
示例#10
0
def main(inn,out):
    out.put({'BOTSID':'UNH','0062':out.ta_info['reference'],'S009.0065':'DESADV','S009.0052':'D','S009.0054':'96A','S009.0051':'UN','S009.0057':'EAN005'})
    out.put({'BOTSID':'UNH'},{'BOTSID':'BGM','1004':inn.get({'BOTSID':'HEA','BERICHTNUMMER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'BGM','C002.1001':'351','1225':'9'})
    
    out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'137','C507.2379':'102','C507.2380':transform.strftime('%Y%m%d')})
    LEVERDATUM = inn.get({'BOTSID':'HEA','LEVERDATUM':None})
    out.put({'BOTSID':'UNH'},{'BOTSID':'DTM','C507.2005':'17','C507.2380':LEVERDATUM,'C507.2379':transform.dateformat(LEVERDATUM)})
    
    out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'ON','C506.1154':inn.get({'BOTSID':'HEA','ORDERNUMMERAFNEMER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'RFF','C506.1153':'ZZZ','C506.1154':'EANNL1'})
    
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'BY','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANAFNEMER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'SU','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANLEVERANCIER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'DP','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANAFLEVER':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'SF','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANHAALADRES':None})})
    out.put({'BOTSID':'UNH'},{'BOTSID':'NAD','3035':'UC','C082.3055':'9','C082.3039':inn.get({'BOTSID':'HEA','EANEINDBESTEMMING':None})})
    
    if inn.get({'BOTSID':'HEA','BACKHAULING':None}):
        out.put({'BOTSID':'UNH'},{'BOTSID':'TOD','4055':'4'})
    
    #write CPS (assume there are always lines in inhouse file)
    out.put({'BOTSID':'UNH'},{'BOTSID':'CPS','7164':'1'})
    
    #handle lines
    for regel in inn.getloop({'BOTSID':'HEA'},{'BOTSID':'LIN'}):
        lou = out.putloop({'BOTSID':'UNH'},{'BOTSID':'CPS'},{'BOTSID':'LIN'})
        lou.put({'BOTSID':'LIN','1082':regel.get({'BOTSID':'LIN','REGEL':None})})
        lou.put({'BOTSID':'LIN','C212.7143':'EN','C212.7140':regel.get({'BOTSID':'LIN','ARTIKEL':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'QTY','C186.6063':'12','C186.6060':regel.get({'BOTSID':'LIN','AANTAL':None})})
        lou.put({'BOTSID':'LIN'},{'BOTSID':'IMD','C960.4294':regel.get({'BOTSID':'LIN','ARTIKELOMSCHRIJVING':None})})

    out.put({'BOTSID':'UNH'},{'BOTSID':'UNT','0074':out.getcount()+1,'0062':out.ta_info['reference']})  #last line (counts the segments produced in out-out
示例#11
0
def main(inn, out):
    out.put({'BOTSID': 'UNH'}, {'BOTSID': 'UNS', '0081': 'S'})
    out.put({
        'BOTSID': 'UNH',
        '0062': out.ta_info['reference'],
        'S009.0065': 'INVOIC',
        'S009.0052': 'D',
        'S009.0054': '96A',
        'S009.0051': 'UN',
        'S009.0057': 'EAN008'
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'BGM',
        '1225': '9',
        '1004': inn.get({
            'BOTSID': 'HEA',
            'FACTUURNUMMER': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'BGM',
        'C002.1001': inn.get({
            'BOTSID': 'HEA',
            'SOORTFACTUUR': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'BGM',
        '4343': inn.get({
            'BOTSID': 'HEA',
            'ACCIJNSVRIJ': None
        })
    })

    LEVERDATUM = inn.get({'BOTSID': 'HEA', 'LEVERDATUM': None})
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'DTM',
        'C507.2005': '35',
        'C507.2380': LEVERDATUM,
        'C507.2379': transform.dateformat(LEVERDATUM)
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'DTM',
        'C507.2005': '137',
        'C507.2379': '102',
        'C507.2380': transform.strftime('%Y%m%d')
    })

    if out.put({'BOTSID': 'UNH'}, {
            'BOTSID': 'NAD',
            '3035': 'BY',
            'C082.3055': '9',
            'C082.3039': inn.get({
                'BOTSID': 'HEA',
                'EANAFNEMER': None
            })
    }):
        out.put({'BOTSID': 'UNH'}, {
            'BOTSID': 'NAD',
            '3035': 'BY'
        }, {
            'BOTSID': 'RFF',
            'C506.1153': 'VA',
            'C506.1154': inn.get({
                'BOTSID': 'HEA',
                'BTWAFNEMER': None
            })
        })
    if out.put({'BOTSID': 'UNH'}, {
            'BOTSID': 'NAD',
            '3035': 'SU',
            'C082.3055': '9',
            'C082.3039': inn.get({
                'BOTSID': 'HEA',
                'EANLEVERANCIER': None
            })
    }):
        out.put({'BOTSID': 'UNH'}, {
            'BOTSID': 'NAD',
            '3035': 'SU'
        }, {
            'BOTSID': 'RFF',
            'C506.1153': 'VA',
            'C506.1154': inn.get({
                'BOTSID': 'HEA',
                'BTWLEVERANCIER': None
            })
        })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'NAD',
        '3035': 'DP',
        'C082.3055': '9',
        'C082.3039': inn.get({
            'BOTSID': 'HEA',
            'EANAFLEVER': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'NAD',
        '3035': 'SF',
        'C082.3055': '9',
        'C082.3039': inn.get({
            'BOTSID': 'HEA',
            'EANHAALADRES': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'NAD',
        '3035': 'UC',
        'C082.3055': '9',
        'C082.3039': inn.get({
            'BOTSID': 'HEA',
            'EANEINDBESTEMMING': None
        })
    })
    if out.put({'BOTSID': 'UNH'}, {
            'BOTSID': 'NAD',
            '3035': 'IV',
            'C082.3055': '9',
            'C082.3039': inn.get({
                'BOTSID': 'HEA',
                'EANFACTUUR': None
            })
    }):
        out.put({'BOTSID': 'UNH'}, {
            'BOTSID': 'NAD',
            '3035': 'IV'
        }, {
            'BOTSID': 'RFF',
            'C506.1153': 'VA',
            'C506.1154': inn.get({
                'BOTSID': 'HEA',
                'BTWFACTUUR': None
            })
        })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'NAD',
        '3035': 'PE',
        'C082.3055': '9',
        'C082.3039': inn.get({
            'BOTSID': 'HEA',
            'EANBONTVANGER': None
        })
    })

    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'CUX',
        'C504#1.6347': '2',
        'C504#1.6343': '4',
        'C504#1.6345': inn.get({
            'BOTSID': 'HEA',
            'VALUTA': None
        })
    })
    out.put(
        {'BOTSID': 'UNH'}, {
            'BOTSID': 'RFF',
            'C506.1153': 'AAK',
            'C506.1154': inn.get({
                'BOTSID': 'HEA',
                'VERZENDBERICHTNUMMER': None
            })
        })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'RFF',
        'C506.1153': 'ON',
        'C506.1154': inn.get({
            'BOTSID': 'HEA',
            'ORDERNUMMERAFNEMER': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'RFF',
        'C506.1153': 'IV',
        'C506.1154': inn.get({
            'BOTSID': 'HEA',
            'CORFACTUURNUMMER': None
        })
    })

    #charges/allowances on invoice level
    for alc in inn.getloop({'BOTSID': 'HEA'}, {'BOTSID': 'HAL'}):
        hal = out.putloop({'BOTSID': 'UNH'}, {'BOTSID': 'ALC'})
        hal.put({
            'BOTSID': 'ALC',
            '5463': alc.get({
                'BOTSID': 'HAL',
                'KORTINGTOESLAG': None
            })
        })
        hal.put({
            'BOTSID': 'ALC',
            'C214.7161': alc.get({
                'BOTSID': 'HAL',
                'SOORTKORTING': None
            })
        })
        hal.put({'BOTSID': 'ALC'}, {
            'BOTSID': 'MOA',
            'C516.5025': '8',
            'C516.5004': alc.get({
                'BOTSID': 'HAL',
                'KORTINGSBEDRAG': None
            })
        })
        hal.put({'BOTSID': 'ALC'}, {
            'BOTSID': 'TAX',
            '5283': '7',
            'C241.5153': 'VAT',
            'C243.5278': alc.get({
                'BOTSID': 'HAL',
                'BTWPERCENTAGE': None
            })
        })
        hal.put({'BOTSID': 'ALC'}, {
            'BOTSID': 'TAX',
            '5283': '7',
            'C241.5153': 'VAT',
            '5305': alc.get({
                'BOTSID': 'HAL',
                'BTWTARIEF': None
            })
        })

    #lines
    for lin in inn.getloop({'BOTSID': 'HEA'}, {'BOTSID': 'LIN'}):
        lou = out.putloop({'BOTSID': 'UNH'}, {'BOTSID': 'LIN'})
        lou.put({
            'BOTSID': 'LIN',
            '1082': lin.get({
                'BOTSID': 'LIN',
                'REGEL': None
            })
        })
        lou.put({
            'BOTSID': 'LIN',
            'C212.7143': 'EN',
            'C212.7140': lin.get({
                'BOTSID': 'LIN',
                'ARTIKEL': None
            })
        })
        lou.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'QTY',
            'C186.6063': '47',
            'C186.6060': lin.get({
                'BOTSID': 'LIN',
                'GEFACTAANTAL': None
            })
        })
        lou.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'QTY',
            'C186.6063': '12',
            'C186.6060': lin.get({
                'BOTSID': 'LIN',
                'GELEVERDAANTAL': None
            })
        })
        lou.put({'BOTSID': 'LIN'}, {
            'BOTSID': 'RFF',
            'C506.1153': 'PD',
            'C506.1154': lin.get({
                'BOTSID': 'LIN',
                'PROMOTIECODE': None
            })
        })
        lou.put({'BOTSID': 'LIN'}, {
            'BOTSID':
            'IMD',
            'C960.4294':
            lin.get({
                'BOTSID': 'LIN',
                'ARTIKELOMSCHRIJVING': None
            })
        })
        lou.put(
            {'BOTSID': 'LIN'}, {
                'BOTSID': 'MOA',
                'C516.5025': '203',
                'C516.5004': lin.get({
                    'BOTSID': 'LIN',
                    'NETTOREGELBEDRAG': None
                })
            })
        if lou.put({'BOTSID': 'LIN'}, {
                'BOTSID': 'PRI',
                'C509.5125': 'INV',
                'C509.5118': lin.get({
                    'BOTSID': 'LIN',
                    'PRIJS': None
                })
        }):
            lou.put({'BOTSID': 'LIN'}, {
                'BOTSID':
                'PRI',
                'C509.5125':
                'INV',
                'C509.5284':
                lin.getnozero({
                    'BOTSID': 'LIN',
                    'AANTALPRIJSBASIS': None
                })
            })
            lou.put({'BOTSID': 'LIN'}, {
                'BOTSID':
                'PRI',
                'C509.5125':
                'INV',
                'C509.6411':
                lin.get({
                    'BOTSID': 'LIN',
                    'EENHEIDPRIJSBASIS': None
                })
            })
        if lou.put({'BOTSID': 'LIN'}, {
                'BOTSID': 'TAX',
                '5283': '7',
                'C241.5153': 'VAT',
                '5305': lin.get({
                    'BOTSID': 'LIN',
                    'BTWTARIEF': None
                })
        }):
            lou.put(
                {'BOTSID': 'LIN'}, {
                    'BOTSID': 'TAX',
                    '5283': '7',
                    'C241.5153': 'VAT',
                    'C243.5278': lin.get({
                        'BOTSID': 'LIN',
                        'BTWPERCENTAGE': None
                    })
                })

        #charges/allowances on line level
        for alc in lin.getloop({'BOTSID': 'LIN'}, {'BOTSID': 'LAL'}):
            lal = lou.putloop({'BOTSID': 'LIN'}, {'BOTSID': 'ALC'})
            lal.put({
                'BOTSID': 'ALC',
                '5463': alc.get({
                    'BOTSID': 'LAL',
                    'KORTINGTOESLAG': None
                })
            })
            lal.put({
                'BOTSID':
                'ALC',
                'C214.7161':
                alc.get({
                    'BOTSID': 'LAL',
                    'SOORTKORTING': None
                })
            })
            lal.put(
                {'BOTSID': 'ALC'}, {
                    'BOTSID': 'MOA',
                    'C516.5025': '8',
                    'C516.5004': alc.get({
                        'BOTSID': 'LAL',
                        'KORTINGSBEDRAG': None
                    })
                })
            if lal.put({'BOTSID': 'ALC'}, {
                    'BOTSID': 'TAX',
                    '5283': '7',
                    'C241.5153': 'VAT',
                    '5305': alc.get({
                        'BOTSID': 'LAL',
                        'BTWTARIEF': None
                    })
            }):
                lal.put({'BOTSID': 'ALC'}, {
                    'BOTSID':
                    'TAX',
                    '5283':
                    '7',
                    'C241.5153':
                    'VAT',
                    'C243.5278':
                    alc.get({
                        'BOTSID': 'LAL',
                        'BTWPERCENTAGE': None
                    })
                })

    out.put({'BOTSID': 'UNH'}, {'BOTSID': 'UNS', '0081': 'S'})
    #amounts in 'trailer'
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID':
        'MOA',
        'C516.5025':
        '79',
        'C516.5004':
        inn.get({'BOTSID': 'HEA'}, {
            'BOTSID': 'TOT',
            'TOTAALREGEL': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID':
        'MOA',
        'C516.5025':
        '131',
        'C516.5004':
        inn.getnozero({'BOTSID': 'HEA'}, {
            'BOTSID': 'TOT',
            'TOTAALFACTUURKORTING': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID':
        'MOA',
        'C516.5025':
        '176',
        'C516.5004':
        inn.get({'BOTSID': 'HEA'}, {
            'BOTSID': 'TOT',
            'TOTAALBTW': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID':
        'MOA',
        'C516.5025':
        '77',
        'C516.5004':
        inn.get({'BOTSID': 'HEA'}, {
            'BOTSID': 'TOT',
            'TOTAALFACTUUR': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID':
        'MOA',
        'C516.5025':
        '129',
        'C516.5004':
        inn.getnozero({'BOTSID': 'HEA'}, {
            'BOTSID': 'TOT',
            'GRONDSLAGBETKORTING': None
        })
    })
    #use BOTSIDnr here because UNH-TAX is mroe than once in branching diagram (use 2nd one)
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID':
        'TAX',
        'BOTSIDnr':
        '2',
        '5283':
        '7',
        'C241.5153':
        'VAT',
        '5305':
        inn.get({'BOTSID': 'HEA'}, {
            'BOTSID': 'TOT',
            'BTWTARIEF1': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID':
        'TAX',
        'BOTSIDnr':
        '2',
        '5283':
        '7',
        'C241.5153':
        'VAT',
        'C243.5278':
        inn.get({'BOTSID': 'HEA'}, {
            'BOTSID': 'TOT',
            'BTWPERCENTAGE1': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'TAX',
        'BOTSIDnr': '2',
        '5283': '7',
        'C241.5153': 'VAT'
    }, {
        'BOTSID':
        'MOA',
        'C516.5025':
        '125',
        'C516.5004':
        inn.get({'BOTSID': 'HEA'}, {
            'BOTSID': 'TOT',
            'BTWGRONDSLAG1': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'TAX',
        'BOTSIDnr': '2',
        '5283': '7',
        'C241.5153': 'VAT'
    }, {
        'BOTSID':
        'MOA',
        'C516.5025':
        '124',
        'C516.5004':
        inn.get({'BOTSID': 'HEA'}, {
            'BOTSID': 'TOT',
            'BTWBEDRAG1': None
        })
    })
    out.put({'BOTSID': 'UNH'}, {
        'BOTSID': 'UNT',
        '0074': out.getcount() + 1,
        '0062': out.ta_info['reference']
    })