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)