import json
import math
from bottle import get, post, run, template, request
class Summary:
def __init__(self, template):
self.CUTTING = 1
class Costs:
def __init__(self, template):
self.CUTTING = 1
self.GLUING = 2.5
self.currency = 'zl'
self.template = template
def costOfGluing(self):
return (math.ceil(float(self.template.sumGlue() / float(1000)))*self.GLUING)
class FurnitureBoard:
def __init__(self):
self.width = 2800
self.height = 2070
self.weight = 7.3
self.area = self.width * self.height
self.thickness = 18
class RawTemplate:
def __init__(self, id, width, height, unit, veneer):
self.id = id
if(unit == 'cm'):
self.width = int(width * 10)
self.height = int(height * 10)
self.unit = 'mm'
else:
self.width = int(width)
self.height = int(height)
self.unit = unit
self.area = self.width * self.height
self.glues = []
self.sumOfSides = 2 * self.width + 2 * self.height
self.areaWithWaste = float(1.1 * self.area)
if veneer["top"] == True:
self.glues.append(self.width)
if veneer["left"] == True:
self.glues.append(self.height)
if veneer["bottom"] == True:
self.glues.append(self.width)
if veneer["right"] == True:
self.glues.append(self.height)
def sumGlue(self):
return int(sum(self.glues))
def __str__(self):
return '''---------------
Id: {}
Height: {}
Width: {}
Unit: {}
Glue: {}
Area: {}n'''.format(self.id, self.height, self.width, self.unit, self.glues, self.area)
@post('/api/save/order')
def save_order():
order = request.json
# create user detail variable
firstName = order['firstName']
lastName = order['lastName']
# table that contain areas for each template
areas = []
# contains border lenghts which will be taped
border = []
sumGlues = []
# container for templates objects
templates = []
for p in order['templates']:
template = RawTemplate(p['id'], p['width'],
p['height'], p['unit'], p['veneer'])
templates.append(template)
cost = Costs(template)
# get area form thah template which is calculated in object
area = template.area
# adding area of that template to table
areas.append(area)
# add sum of border which will be taped on that template
sumGlues.append(template.sumGlue())
# print("Venree cost: " +
# str(int(math.ceil(float(template.sumOfSides / float(1000))))))
print("Venree cost: " + str(cost.costOfGluing()))
# summary value of each templte areas
furnitureBoard = FurnitureBoard()
sumOfAreas = float(sum(areas))
areasWithWaste = sumOfAreas * 1.1
boardToBuy = math.ceil(float(areasWithWaste / float(furnitureBoard.area)))
summaryWeight = boardToBuy * furnitureBoard.weight
print(areas)
print("Sum of areas including waste: " + str(sumOfAreas))
print(furnitureBoard.area)
print(float(sumOfAreas / float(furnitureBoard.area)))
print()
for o in templates:
print(o)
with open("order.json", "w") as json_file:
json.dump(order, json_file)
run(host='localhost', port=3000)