From 9f22df79408af0eab60f985f58036f1056d308fc Mon Sep 17 00:00:00 2001 From: bleeson Date: Fri, 5 Jul 2024 15:10:08 -0700 Subject: [PATCH] file encoding, email alerts --- source_ecommerce_file_alerts.py | 46 +++++++++++++++++++++++++++++++ source_ecommerce_load_shipping.py | 4 +-- source_ecommerce_make_order.py | 7 +++-- source_ecommerce_make_shipment.py | 2 +- 4 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 source_ecommerce_file_alerts.py diff --git a/source_ecommerce_file_alerts.py b/source_ecommerce_file_alerts.py new file mode 100644 index 0000000..f028039 --- /dev/null +++ b/source_ecommerce_file_alerts.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +""" +If daily processing crashed, files will be in +2 directories, trigger an email if a file is left over +""" +import pprint +import pathlib +import smtplib +from email.mime.multipart import MIMEMultipart +from email.mime.text import MIMEText + +THIS_DIRECTORY = pathlib.Path(__file__).parent + +INCOMING_DIRECTORY = THIS_DIRECTORY / "incoming_orders" +SHIPMENTS_DIRECTORY = THIS_DIRECTORY / "incoming_shipments" +SOH_IMPORT_DIRECTORY = THIS_DIRECTORY / "to_import_SOH" + +def main(): + #retrieve_x12_edi_files()#TODO remove this as it's handled by the earlier process + file_count = [] + for file in INCOMING_DIRECTORY.iterdir(): + if file.name[-4:] == '.csv': + file_count.append(file.name) + for file in SHIPMENTS_DIRECTORY.iterdir(): + if file.name[-4:] == '.csv': + file_count.append(file.name) + if file_count: + file_alert(file_count) + +def file_alert(file_list): + file_string = ', '.join(file_list) + msg = MIMEMultipart() + msg['Subject'] = 'Source ecommerce: Files Left Over' + msg['Precedence'] = 'bulk' + msg['From'] = 'x3report@stashtea.com' + msg['To'] = 'bleeson@stashtea.com' + #msg['CC'] = 'bleeson@stashtea.com' + emailtext = f'files: {file_string}' + msg.attach(MIMEText(emailtext, 'plain')) + with smtplib.SMTP_SSL("smtp.gmail.com", 465) as smtp: + smtp.login(user='x3reportmk2@yamamotoyama.com', password=r'n paramiko.SFTPClient: with paramiko.SSHClient() as ssh_client: @@ -101,7 +101,7 @@ def combine_zshpords(): ) def process_files(file): #I am assuming I am getting a sorted csv file by order number and line id from Source - with open(file) as source_file: + with open(file, encoding='utf8') as source_file: csv_reader = csv.reader(source_file) sales_order = SalesOrder() previous_order = '' @@ -120,6 +120,7 @@ def process_files(file): #I am assuming I am getting a sorted csv file by order sales_order.output(import_file) sales_order = SalesOrder() previous_order = current_order + pprint.pprint(current_order) shopify_order_info = get_details_from_shopify(current_order) shopify_line_dict = create_shopify_dict(shopify_order_info) for entry in shopify_line_dict: diff --git a/source_ecommerce_make_shipment.py b/source_ecommerce_make_shipment.py index f362565..f500e04 100644 --- a/source_ecommerce_make_shipment.py +++ b/source_ecommerce_make_shipment.py @@ -67,7 +67,7 @@ def find_so_from_po(cust_po): ).first()["SOHNUM_0"] def process_files(file): - with open(file) as source_file: + with open(file, encoding='utf8') as source_file: csv_reader = csv.reader(source_file) warehouse_shipment = WarehouseShipment() previous_order = ''