X3 customer codes are now looked up in table instead of local dict.

master
bleeson 2025-02-13 14:44:31 -08:00
parent 6092eaa532
commit 7af3cb1f81
1 changed files with 23 additions and 5 deletions

View File

@ -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]