From f7236c7164d6db6ac5844e9068866f6c85c10362 Mon Sep 17 00:00:00 2001 From: Dan Dembinski Date: Wed, 15 Apr 2020 12:25:32 -0400 Subject: [PATCH] Reworked some of the mailing logic and what I believe to be current postage rates. Seems like even just pulling the component price is not fool proof. --- main.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/main.py b/main.py index 72e19a4..8a4de3b 100644 --- a/main.py +++ b/main.py @@ -3,14 +3,15 @@ from itertools import groupby import fitz import csv + doc = fitz.open("std.pdf") # doc = fitz.open("flyers.pdf") # doc = fitz.open("poster.pdf") ####### IMPORT MAILING RATE SECTION ######### -psFCrate = '.47' -psSCrate = '.25' -psFCcutoff = '500' +psFCrate = '.55' +psSCrate = '.44' +psFCcutoff = '200' count = doc.pageCount currentPage = 0 @@ -54,6 +55,7 @@ while currentPage < count: Totalrect = (559.75, 551.71728515625, 584.52099609375, 560.7664794921875) #compontent price not total price Mailingrect = (555.25, 172.9172821044922, 584.5245971679688, 181.9665069580078) #component price for mailing component + # Find the total job cost on each page total = [w for w in words if fitz.Rect(w[:4]).intersects(Totalrect)] total.sort(key=itemgetter(3, 0)) @@ -80,9 +82,9 @@ while currentPage < count: mailPerPeice = round(float(totalMail.strip('$'))/currentBreak,4) if includePostage is True: if currentBreak < int(psFCcutoff): - mailPerPeice = mailPerPeice + float(psFCrate) + mailPerPeice = round(mailPerPeice + float(psFCrate),4) elif currentBreak >= int(psFCcutoff): - mailPerPeice = mailPerPeice + float(psSCrate) + mailPerPeice = round(mailPerPeice + float(psSCrate),4) mailrow.append('\"' + str(mailPerPeice) + '\"') else: exit() @@ -90,8 +92,10 @@ while currentPage < count: currentBreak = currentBreak+breaks else: currentBreak = (currentBreak + breaks)-1 - currentPage = currentPage+1 + if checkMail is True and currentPage == 1: + currentBreak = currentBreak - 1 + currentPage = currentPage+1 # Add the weight sections after all the qty breaks qtyrow.append('Unit Weight') qtyrow.append('Tare Weight') @@ -101,6 +105,11 @@ costrow.append('\"'+str(.5039)+'\"') costrow.append('\"'+str(48)+'\"') costrow.append('\"'+str(400)+'\"') +if checkMail is True: + mailrow.append('\"0\"') + mailrow.append('\"0\"') + mailrow.append('\"0\"') + # csv.register_dialect('unixpwd', delimiter=',', quoting=csv.QUOTE_NONE) with open('pricetable.csv', 'w', newline='') as f: writer = csv.writer(f, quoting=csv.QUOTE_NONE, quotechar="")