trytondo-sale_fast_food/sale.py
2023-07-11 19:26:23 +00:00

93 lines
2.8 KiB
Python

from trytond.pool import Pool, PoolMeta
from trytond.model import ModelView, fields
from trytond.transaction import Transaction
from trytond.exceptions import UserError
import requests
import json
class Sale(metaclass=PoolMeta):
"Sale Fast Food"
__name__ = 'sale.sale'
pizza_number = fields.Integer("Number pizza")
@classmethod
def __setup__(cls):
super(Sale, cls).__setup__()
cls._buttons.update({
'add_pizza': {},
'kitchen': {},
'bar': {}
})
@classmethod
def default_pizza_number(cls):
return 0
@classmethod
@ModelView.button
def add_pizza(cls, records):
pool = Pool()
saleLine = pool.get('sale.line')
for record in records:
record.pizza_number +=1
record.lines += (saleLine(type="title",
description="Pizza Combinada"),)
record.save()
@classmethod
@ModelView.button
def kitchen(cls, records):
pool = Pool()
Report = pool.get('sale.customer_order', type='report')
context = Transaction().context
customer_order = Report.execute(records, context)
content = {'content': customer_order[1].decode('utf-8')}
headers = {"accept": 'application/json', 'Content-Type': 'application/json'}
url = "http://localhost:5000/order_kitchen"
response = requests.post(url, data=json.dumps(content), headers=headers)
return response.status_code
@classmethod
@ModelView.button
def bar(cls, records):
pool = Pool()
Report = pool.get('sale.customer_order', type='report')
context = Transaction().context
customer_order = Report.execute(records, context)
content = {'content': customer_order[1].decode('utf-8')}
headers = {"accept": 'application/json', 'Content-Type': 'application/json'}
url = "http://localhost:5000/order_bar"
response = requests.post(url, data=json.dumps(content), headers=headers)
return response.status_code
class Line(metaclass=PoolMeta):
"Sale Line Fast Food"
__name__ = 'sale.line'
pizza = fields.Integer("Pizza")
@fields.depends('product', 'unit', 'sale',
'_parent_sale.party', '_parent_sale.invoice_party',
'_parent_sale.pizza_number',
methods=['compute_taxes', 'compute_unit_price',
'on_change_with_amount'])
def on_change_product(self):
super(Line, self).on_change_product()
if self.product.pizza:
self.pizza = self.sale.pizza_number
def get_production(self):
"Return production for the sale line"
Production = super(Line, self).get_production()
#Production.bom = self.product.template.boms.id
return Production