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:
24
main.py
24
main.py
@@ -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><?xml version="1.0"?> <PFWebFilter:UserFilter xmlns:PFWebFilter="http://www.pageflex.com/schemas/2004/Storefront/UserFilters/20040817" filterClass="Items"> <PFWebFilter:Step publicFieldName="Order ID" query="ExactEquals" minValue=\"""" + z + """\" maxValue="" /> </PFWebFilter:UserFilter></filterNameOrXml>"""
|
||||
# report_filter = """<filterNameOrXml><?xml version="1.0"?> <PFWebFilter:UserFilter xmlns:PFWebFilter="http://www.pageflex.com/schemas/2004/Storefront/UserFilters/20040817" filterClass="Items"> <PFWebFilter:Step publicFieldName="Order ID" query="ExactEquals" minValue=\"""" + z + """\" maxValue="" /> </PFWebFilter:UserFilter></filterNameOrXml>"""
|
||||
report_filter = """<filterNameOrXml><?xml version="1.0"?> <PFWebFilter:UserFilter xmlns:PFWebFilter="http://www.pageflex.com/schemas/2004/Storefront/UserFilters/20040817" filterClass="Items"> <PFWebFilter:Step publicFieldName="Order ID" query="ExactEquals" minValue=\"""" + z + """\" maxValue="" /> <PFWebFilter:Step publicFieldName="Item Status" query="ExactEquals" minValue=\"Shipped" maxValue="" /> </PFWebFilter:UserFilter></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():
|
||||
|
||||
|
||||
Reference in New Issue
Block a user