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 #@ModelView.button_action('sale_fast_food.report_customer_order') def kitchen(cls, records): pool = Pool() Report = pool.get('sale.customer_order', type='report') context = Transaction().context #customer_order = Report.execute(records, context) data = {"content": "Esto es una pruebas"} url = "http://localhost:5000/print_ticket" response = requests.post(url, json=json.dumps(data), headers={'Content-Type': 'application/json'}) #response = requests.post(url, json={"content": customer_order[1]}) raise UserError(str(response)) if response.status_code == 200: message = response.Text raise UserError(str(message)) 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