file encoding, email alerts

master
bleeson 2024-07-05 15:10:08 -07:00
parent 28f6f627f5
commit 9f22df7940
4 changed files with 53 additions and 6 deletions

View File

@ -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</W<7fr"VD~\2&[pZc5')
smtp.send_message(msg)
if __name__ == "__main__":
main()

View File

@ -75,10 +75,10 @@ def retrieve_x12_edi_files():
def process_files(file): def process_files(file):
with open(file) as source_file: with open(file, encoding='utf8') as source_file:
with yamamotoyama.get_connection() as db_connection: with yamamotoyama.get_connection() as db_connection:
with db_connection.transaction() as _: with db_connection.transaction() as _:
with open(ORDER_DIRECTORY / f'sorted_{file.name}', 'w',newline='') as output: with open(ORDER_DIRECTORY / f'sorted_{file.name}', 'w',newline='',encoding='utf8') as output:
csv_reader = csv.reader(source_file) csv_reader = csv.reader(source_file)
csv_writer = csv.writer(output) csv_writer = csv.writer(output)
csv_writer.writerow(next(csv_reader, None)) #skip header csv_writer.writerow(next(csv_reader, None)) #skip header

View File

@ -44,9 +44,9 @@ def main():
continue continue
else: else:
process_files(file) process_files(file)
#shutil.move(file, SHIPMENTS_DIRECTORY / file.name) shutil.move(file, SHIPMENTS_DIRECTORY / file.name)
# archives are in the shipping folder # archives are in the shipping folder
#combine_zshpords() combine_zshpords()
def sftp_server() -> paramiko.SFTPClient: def sftp_server() -> paramiko.SFTPClient:
with paramiko.SSHClient() as ssh_client: 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 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) csv_reader = csv.reader(source_file)
sales_order = SalesOrder() sales_order = SalesOrder()
previous_order = '' 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.output(import_file)
sales_order = SalesOrder() sales_order = SalesOrder()
previous_order = current_order previous_order = current_order
pprint.pprint(current_order)
shopify_order_info = get_details_from_shopify(current_order) shopify_order_info = get_details_from_shopify(current_order)
shopify_line_dict = create_shopify_dict(shopify_order_info) shopify_line_dict = create_shopify_dict(shopify_order_info)
for entry in shopify_line_dict: for entry in shopify_line_dict:

View File

@ -67,7 +67,7 @@ def find_so_from_po(cust_po):
).first()["SOHNUM_0"] ).first()["SOHNUM_0"]
def process_files(file): def process_files(file):
with open(file) as source_file: with open(file, encoding='utf8') as source_file:
csv_reader = csv.reader(source_file) csv_reader = csv.reader(source_file)
warehouse_shipment = WarehouseShipment() warehouse_shipment = WarehouseShipment()
previous_order = '' previous_order = ''