From 56722752acb85d95361bea872814013c44319e66 Mon Sep 17 00:00:00 2001
From: Dan Dembinski
Date: Sat, 20 Mar 2021 00:25:58 -0400
Subject: [PATCH] Added shipping information. Pulls list of all documentIDs per
Order. Looks up individual DocumentID information. Added Address Block and
Item Detail Block to Invoice HTML. Added BCC and CC testing addresses.
---
InvoiceDatabase.py | 27 +++++++++++++++
sendEmail.py | 85 +++++++++++++++++++++++++++++++++++++++++-----
2 files changed, 103 insertions(+), 9 deletions(-)
diff --git a/InvoiceDatabase.py b/InvoiceDatabase.py
index 0527cde..685c50f 100644
--- a/InvoiceDatabase.py
+++ b/InvoiceDatabase.py
@@ -98,4 +98,31 @@ def record_lookup(record):
result.append(lookup.ChargeCode)
result.append(lookup.InvoiceNumber)
result.append(lookup.InvoiceEmailAddress)
+ result.append(lookup.ShippingCompany)
+ result.append(lookup.ShippingFirstName)
+ result.append(lookup.ShippingLastName)
+ result.append(lookup.ShippingAddress1)
+ result.append(lookup.ShippingAddress2)
+ result.append(lookup.ShippingCity)
+ result.append(lookup.ShippingState)
+ result.append(lookup.ShippingPostalCode)
+ result.append(lookup.ShippingCharges)
+ result.append(lookup.DuePayment)
+ return result
+
+
+def all_items(orderId):
+ all = []
+ for items in session.query(ItemDetail).filter(ItemDetail.OrderID == orderId):
+ all.append(items.DocumentID)
+ return all
+
+
+def item_lookup(item):
+ result = []
+ for lookup in session.query(ItemDetail).filter(ItemDetail.DocumentID == item):
+ result.append(lookup.Quantity)
+ result.append(lookup.DocumentID)
+ result.append(lookup.ProductName)
+ result.append(lookup.ItemPrice)
return result
diff --git a/sendEmail.py b/sendEmail.py
index e708ef9..e819a5c 100644
--- a/sendEmail.py
+++ b/sendEmail.py
@@ -14,16 +14,78 @@ def send_email(test, record):
orders = InvoiceDatabase.just_work()
for each in orders:
info = InvoiceDatabase.record_lookup(each)
- print(info)
+
OrderNumber = info[0]
OrderDate = info[1]
UserLogon = info[2]
- Name = info[3] + ' ' + info[4]
+ Name = info[3] + ' ' + info[4]
ChargeCode = info[5]
InvoiceNumber = info[6]
InvoiceEmailAddress = info[7]
+ ShippingCharges = info[16]
+ BalanceDue = info[17]
InvoiceDate = datetime.today().strftime('%m/%d/%Y')
+ #shipping information
+ ShippingCompany = info[8]
+ ShippingFirstName = info[9]
+ ShippingLastName = info[10]
+ ShippingAddress1 = info[11]
+ ShippingAddress2 = info[12]
+ ShippingCity = info[13]
+ ShippingState = info[14]
+ ShippingPostalCode = info[15]
+
+
+ # if ShippingCompany != 'None' and ShippingAddress2 == 'None':
+ block = '''
+
{name}
+
{ShippingAddress1}
+
{ShippingCity}, {ShippingState} {ShippingZip}
+
+
+
+ '''
+ addressBlock = block.format(name=Name, ShippingAddress1=ShippingAddress1, ShippingCity=ShippingCity,
+ ShippingState=ShippingState, ShippingZip=ShippingPostalCode)
+
+
+ itemDetailBlock = '''
+
+ | Quantity | Document ID |
+ Product Name | Sales |
+ '''
+
+ items = InvoiceDatabase.all_items(OrderNumber)
+ for eachItem in items:
+ info = InvoiceDatabase.item_lookup(eachItem)
+ Quantity = info[0]
+ DocumentID = info[1]
+ ProductName = info[2]
+ ItemPrice = info[3]
+
+ addItem = '''
+
+ | {Quantity} |
+ {DocumentID} |
+ {ProductName} |
+
+ ${ItemPrice:,.2f} |
+
+ '''
+
+ itemDetailBlock = itemDetailBlock + addItem.format(Quantity=Quantity, DocumentID=DocumentID,
+ ProductName=ProductName, ItemPrice=ItemPrice)
+ addItem = '''
+ | Shipping:
+ ${ShippingCharges:,.2f} |
| Invoice Total
+ ${BalanceDue:,.2f}
+ |
+ '''
+ itemDetailBlock = itemDetailBlock + addItem.format(ShippingCharges=ShippingCharges, BalanceDue=BalanceDue)
body = '''
@@ -61,11 +123,14 @@ def send_email(test, record):
- |
- Address Block |
+
Shipment Address
+ {addressBlock}
+ |
Make Checks Payable To: Great Lakes Integrated 4246 Hudson Dr. Stow, Ohio 44224 |
-
+
+
|
+
|
@@ -90,6 +155,7 @@ def send_email(test, record):
|
The order consists of the following items:
+ {itemDetailBlock}
|
@@ -97,8 +163,8 @@ def send_email(test, record):