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')
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')
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")
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)
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
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'] })