Since there was some varience between clients on the order of the headers, I reworked some sections to work off header names instead of hardcoded column letter/numbers

This commit is contained in:
Dan Dembinski
2019-06-28 13:24:25 -04:00
parent a287e7386f
commit 17894e82ea
3 changed files with 298 additions and 266 deletions

24
main.py
View File

@@ -1,7 +1,7 @@
import requests
from bs4 import BeautifulSoup as bs
from openpyxl import workbook
from openpyxl.utils import get_column_letter
from WriteReport import *
from ClientSpecific import *
@@ -140,8 +140,6 @@ def Run_Report(ticket, URL, HOST, REPORT_FIELDS, wb, ws, ws2, DETAIL_REPORT_FIEL
for w in y.find_all('fval'):
shippingcost.append(float(w.text))
### THIS IS WHERE THE EXTRA SUMMARY TAB SECTION WAS ###
# Add columns to Summary Tab
ws.insert_cols(2)
@@ -160,12 +158,21 @@ def Run_Report(ticket, URL, HOST, REPORT_FIELDS, wb, ws, ws2, DETAIL_REPORT_FIEL
count = count + 1
# Production and Adjustment Charges
ItemPrice = 0
for x in detail_SSheader:
if x != "Item Price":
ItemPrice += 1
else:
break
ItemPrice += 1
ItemPriceColumn = get_column_letter(ItemPrice)
count = 1
for row in ws:
if count != 1:
# value = "=SUMIF(A:A,'Item Detail'!A:A,'Item Detail'!H:H)"
value = "=SUMIF('item Detail'!A:A,A" + str(count) + ",'Item Detail'!H:H)"
value = "=SUMIF('item Detail'!A:A,A" + str(count) + ",'Item Detail'!" + ItemPriceColumn + ":" + ItemPriceColumn + ")"
ws.cell(column=5, row=count, value=value)
value = "=H" + str(count) + "-E" + str(count) + "-F" + str(count)
ws.cell(column=7, row=count, value = value)
@@ -178,7 +185,9 @@ def Run_Report(ticket, URL, HOST, REPORT_FIELDS, wb, ws, ws2, DETAIL_REPORT_FIEL
print("Getting Item Detail")
for z in ExternalID:
report_filter = """<filterNameOrXml>&lt;?xml version="1.0"?&gt; &lt;PFWebFilter:UserFilter xmlns:PFWebFilter="http://www.pageflex.com/schemas/2004/Storefront/UserFilters/20040817" filterClass="Items"&gt; &lt;PFWebFilter:Step publicFieldName="Order ID" query="ExactEquals" minValue=\"""" + z + """\" maxValue="" /&gt; &lt;/PFWebFilter:UserFilter&gt;</filterNameOrXml>"""
# report_filter = """<filterNameOrXml>&lt;?xml version="1.0"?&gt; &lt;PFWebFilter:UserFilter xmlns:PFWebFilter="http://www.pageflex.com/schemas/2004/Storefront/UserFilters/20040817" filterClass="Items"&gt; &lt;PFWebFilter:Step publicFieldName="Order ID" query="ExactEquals" minValue=\"""" + z + """\" maxValue="" /&gt; &lt;/PFWebFilter:UserFilter&gt;</filterNameOrXml>"""
report_filter = """<filterNameOrXml>&lt;?xml version="1.0"?&gt; &lt;PFWebFilter:UserFilter xmlns:PFWebFilter="http://www.pageflex.com/schemas/2004/Storefront/UserFilters/20040817" filterClass="Items"&gt; &lt;PFWebFilter:Step publicFieldName="Order ID" query="ExactEquals" minValue=\"""" + z + """\" maxValue="" /&gt; &lt;PFWebFilter:Step publicFieldName="Item Status" query="ExactEquals" minValue=\"Shipped" maxValue="" /&gt; &lt;/PFWebFilter:UserFilter&gt;</filterNameOrXml>"""
send = """<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
@@ -223,6 +232,7 @@ def Run_Report(ticket, URL, HOST, REPORT_FIELDS, wb, ws, ws2, DETAIL_REPORT_FIEL
count += 1
# Add Quantity and Item Price columns. Populate both based using SUMIF off of the Item Detail Tab
ws3['A1'] = "Product Name"
ws3['B1'] = "Quantity"
ws3['C1'] = "Item Price"
@@ -244,7 +254,7 @@ def Run_Report(ticket, URL, HOST, REPORT_FIELDS, wb, ws, ws2, DETAIL_REPORT_FIEL
# Finalize Spreadsheet and save
Format_Report(ws, summary_SSheader, summary_columnFormat)
Format_Report(ws2, detail_SSheader, detail_columnFormat)
Save_Report(wb, ws, ws2, ws3, summary_SSheader, summary_columnFormat)
Save_Report(wb, ws, ws2, ws3, summary_SSheader, detail_SSheader, summary_columnFormat)
def loadMenu():