diff --git a/edi_867_to_table.py b/edi_867_to_table.py index 4941de5..d641d01 100644 --- a/edi_867_to_table.py +++ b/edi_867_to_table.py @@ -149,7 +149,7 @@ INSERT_SHIPMENT_DETAIL = """\ # "EC" : "EA" #} #NAME_ADDRESS_CITY_TERRITORY_POSTAL : X3 Customer Code -X3_CUSTOMER_MAPPING = { +X3_CUSTOMER_MAPPING_OLD = { 'AVRI1000_AVRIQC' : 'AVRI0001', 'BULK1000_BULKAU' : 'BULK0001', 'COOP2000_190148' : 'FEDE0006', @@ -207,19 +207,37 @@ X3_CUSTOMER_MAPPING = { 'ISLA1000_0000' : 'ISLA0005', 'PURI1000_0000' : 'PURI0002', 'AVRI1000_AVRIGR' : 'AVRI0001', + 'VANH1000_VANH1000' : 'VANH0001', } def main(): """ Do it! """ + x3_customer_mapping = get_customer_map() for edi_filename in X12_DIRECTORY.iterdir(): if SOURCE_867_FILENAME_RE.match(edi_filename.name): - process_file(edi_filename) + process_file(edi_filename, x3_customer_mapping) shutil.copy(edi_filename, EDI_997_DIRECTORY / edi_filename.name) shutil.move(edi_filename, THIS_DIRECTORY / "processed_867s" / edi_filename.name) #They go in here so we can use them in the dashboard script, 2024-08 dashboard no longer needed +def get_customer_map(): + customer_map = {} + with yamamotoyama.get_connection() as database: + result = database.query( + """ + SELECT + [shandex_key] + ,[x3_customer] + FROM [staging].[dbo].[shandex_customer_map] + """, + ).all() + for record in result: + customer_map[record['shandex_key']] = record['x3_customer'] + return customer_map + + def missing_customer_alert(customer_key): msg = MIMEMultipart() msg['Subject'] = 'Shandex 867 - Missing X3 Customer' @@ -314,7 +332,7 @@ def get_product_from_gtin(gtin): ).first() return result -def process_file(edi_filename: pathlib.Path): +def process_file(edi_filename: pathlib.Path, x3_customer_mapping): """ Convert a specific EDI file into an import file. """ @@ -367,11 +385,11 @@ def process_file(edi_filename: pathlib.Path): customer_key = warehouse_shipment.create_customer_key(shandex_code_part2, shandex_code_part1) if customer_key == 'SAMP1000_0000': #flag sample orders better warehouse_shipment.header.bpdnam = 'SMP: ' + warehouse_shipment.header.bpdnam - if customer_key not in X3_CUSTOMER_MAPPING.keys(): + if customer_key not in x3_customer_mapping.keys(): pprint.pprint(customer_key + ' not found.') warehouse_shipment.header.bpcord = '' else: - warehouse_shipment.header.bpcord = X3_CUSTOMER_MAPPING[customer_key] + warehouse_shipment.header.bpcord = x3_customer_mapping[customer_key] if fields[0] == "QTY": #QTY*39*10*CA _, _, qty_str, uom = fields[:4]