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.
This commit is contained in:
21
main.py
21
main.py
@@ -3,14 +3,15 @@ from itertools import groupby
|
|||||||
import fitz
|
import fitz
|
||||||
import csv
|
import csv
|
||||||
|
|
||||||
|
|
||||||
doc = fitz.open("std.pdf")
|
doc = fitz.open("std.pdf")
|
||||||
# doc = fitz.open("flyers.pdf")
|
# doc = fitz.open("flyers.pdf")
|
||||||
# doc = fitz.open("poster.pdf")
|
# doc = fitz.open("poster.pdf")
|
||||||
|
|
||||||
####### IMPORT MAILING RATE SECTION #########
|
####### IMPORT MAILING RATE SECTION #########
|
||||||
psFCrate = '.47'
|
psFCrate = '.55'
|
||||||
psSCrate = '.25'
|
psSCrate = '.44'
|
||||||
psFCcutoff = '500'
|
psFCcutoff = '200'
|
||||||
|
|
||||||
count = doc.pageCount
|
count = doc.pageCount
|
||||||
currentPage = 0
|
currentPage = 0
|
||||||
@@ -54,6 +55,7 @@ while currentPage < count:
|
|||||||
Totalrect = (559.75, 551.71728515625, 584.52099609375, 560.7664794921875) #compontent price not total price
|
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
|
Mailingrect = (555.25, 172.9172821044922, 584.5245971679688, 181.9665069580078) #component price for mailing component
|
||||||
|
|
||||||
|
|
||||||
# Find the total job cost on each page
|
# Find the total job cost on each page
|
||||||
total = [w for w in words if fitz.Rect(w[:4]).intersects(Totalrect)]
|
total = [w for w in words if fitz.Rect(w[:4]).intersects(Totalrect)]
|
||||||
total.sort(key=itemgetter(3, 0))
|
total.sort(key=itemgetter(3, 0))
|
||||||
@@ -80,9 +82,9 @@ while currentPage < count:
|
|||||||
mailPerPeice = round(float(totalMail.strip('$'))/currentBreak,4)
|
mailPerPeice = round(float(totalMail.strip('$'))/currentBreak,4)
|
||||||
if includePostage is True:
|
if includePostage is True:
|
||||||
if currentBreak < int(psFCcutoff):
|
if currentBreak < int(psFCcutoff):
|
||||||
mailPerPeice = mailPerPeice + float(psFCrate)
|
mailPerPeice = round(mailPerPeice + float(psFCrate),4)
|
||||||
elif currentBreak >= int(psFCcutoff):
|
elif currentBreak >= int(psFCcutoff):
|
||||||
mailPerPeice = mailPerPeice + float(psSCrate)
|
mailPerPeice = round(mailPerPeice + float(psSCrate),4)
|
||||||
mailrow.append('\"' + str(mailPerPeice) + '\"')
|
mailrow.append('\"' + str(mailPerPeice) + '\"')
|
||||||
else:
|
else:
|
||||||
exit()
|
exit()
|
||||||
@@ -90,8 +92,10 @@ while currentPage < count:
|
|||||||
currentBreak = currentBreak+breaks
|
currentBreak = currentBreak+breaks
|
||||||
else:
|
else:
|
||||||
currentBreak = (currentBreak + breaks)-1
|
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
|
# Add the weight sections after all the qty breaks
|
||||||
qtyrow.append('Unit Weight')
|
qtyrow.append('Unit Weight')
|
||||||
qtyrow.append('Tare Weight')
|
qtyrow.append('Tare Weight')
|
||||||
@@ -101,6 +105,11 @@ costrow.append('\"'+str(.5039)+'\"')
|
|||||||
costrow.append('\"'+str(48)+'\"')
|
costrow.append('\"'+str(48)+'\"')
|
||||||
costrow.append('\"'+str(400)+'\"')
|
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)
|
# csv.register_dialect('unixpwd', delimiter=',', quoting=csv.QUOTE_NONE)
|
||||||
with open('pricetable.csv', 'w', newline='') as f:
|
with open('pricetable.csv', 'w', newline='') as f:
|
||||||
writer = csv.writer(f, quoting=csv.QUOTE_NONE, quotechar="")
|
writer = csv.writer(f, quoting=csv.QUOTE_NONE, quotechar="")
|
||||||
|
|||||||
Reference in New Issue
Block a user