fix: clean home

This commit is contained in:
sinergia 2023-08-13 15:14:22 -05:00
parent 4e0c39fd78
commit b737a14857

129
sale.py
View File

@ -1,11 +1,11 @@
from trytond.pool import Pool, PoolMeta from trytond.pool import Pool, PoolMeta
from trytond.model import ModelView, fields from trytond.model import ModelView, fields
from trytond.transaction import Transaction from trytond.transaction import Transaction
from trytond.exceptions import UserError
import requests import requests
import json import json
class Sale(metaclass=PoolMeta): class Sale(metaclass=PoolMeta):
"Sale Fast Food" "Sale Fast Food"
__name__ = 'sale.sale' __name__ = 'sale.sale'
@ -23,7 +23,6 @@ class Sale(metaclass=PoolMeta):
'impreso': {}, 'impreso': {},
}) })
@classmethod @classmethod
def default_pizza_number(cls): def default_pizza_number(cls):
return 0 return 0
@ -32,12 +31,13 @@ class Sale(metaclass=PoolMeta):
if subtype: if subtype:
resolution = subtype.sequence.invoice_resolution resolution = subtype.sequence.invoice_resolution
if resolution: if resolution:
return dict([('resolution_number', resolution.resolution_number), return dict([
('resolution_prefix', resolution.prefix), ('resolution_number', resolution.resolution_number),
('valid_date_time_from', str(resolution.valid_date_time_from)), ('resolution_prefix', resolution.prefix),
('valid_date_time_to', str(resolution.valid_date_time_to)), ('valid_date_time_from', str(resolution.valid_date_time_from)),
('from_number', resolution.from_number), ('valid_date_time_to', str(resolution.valid_date_time_to)),
('to_number', resolution.to_number)]) ('from_number', resolution.from_number),
('to_number', resolution.to_number)])
@classmethod @classmethod
def get_invoice(cls, record): def get_invoice(cls, record):
@ -50,7 +50,6 @@ class Sale(metaclass=PoolMeta):
data = {} data = {}
data['invoice_number'] = invoice.number data['invoice_number'] = invoice.number
subtype = invoice.subtype subtype = invoice.subtype
#raise UserError(str(subtype))
data['resolution'] = cls.get_invoice_resolution(subtype) data['resolution'] = cls.get_invoice_resolution(subtype)
return data return data
@ -63,14 +62,11 @@ class Sale(metaclass=PoolMeta):
pool = Pool() pool = Pool()
ctx = Transaction().context ctx = Transaction().context
record = records[0] record = records[0]
User = pool.get('res.user')
Shop = pool.get('sale.shop') Shop = pool.get('sale.shop')
data = {} data = {}
user = User(Transaction().user)
shop = Shop.search([('id', '=', ctx["shop"])])[0] shop = Shop.search([('id', '=', ctx["shop"])])[0]
data["shop_name"] = shop.name data["shop_name"] = shop.name
data["shop_address"] = shop.address.street data["shop_address"] = shop.address.street
#data["user"] = user.name
data['invoice'] = cls.get_invoice(record) data['invoice'] = cls.get_invoice(record)
data["party"] = record.party.name data["party"] = record.party.name
data["tax_identifier_type"] = record.party.tax_identifier.type_string data["tax_identifier_type"] = record.party.tax_identifier.type_string
@ -79,12 +75,14 @@ class Sale(metaclass=PoolMeta):
data["city"] = record.invoice_address.subdivision_municipality.name data["city"] = record.invoice_address.subdivision_municipality.name
data["zone"] = record.zone.name if record.zone else "" data["zone"] = record.zone.name if record.zone else ""
data["table"] = record.table.name if record.table else "" data["table"] = record.table.name if record.table else ""
data["lines"] = [{'type': line.type, data["lines"] = [{
"product": line.product.name if line.type != 'title' else None, 'type': line.type,
"quantity": line.quantity if line.type != 'title' else None, "product": line.product.name if line.type != 'title' else None,
"uom": line.unit.symbol if line.type != 'title' else None, "quantity": line.quantity if line.type != 'title' else None,
"unit_price": str(line.amount_w_tax) if line.type != 'title' else None, "uom": line.unit.symbol if line.type != 'title' else None,
"taxes": str(round(line.taxes[0].rate * 100, 2))+'%' if line.type != 'title' and line.taxes else None "unit_price": str(line.amount_w_tax) if line.type != 'title' else None,
"taxes": str(round(line.taxes[0].rate * 100, 2))+'%'
if line.type != 'title' and line.taxes else None
} for line in record.lines] } for line in record.lines]
data["untaxed_amount"] = str(record.untaxed_amount) data["untaxed_amount"] = str(record.untaxed_amount)
@ -92,8 +90,9 @@ class Sale(metaclass=PoolMeta):
data["total"] = str(record.total_amount) data["total"] = str(record.total_amount)
if record.payments: if record.payments:
data['payments'] = [{"statement": payment.statement.journal.name, data['payments'] = [{
"amount": str(payment.amount)} for payment in record.payments] "statement": payment.statement.journal.name,
"amount": str(payment.amount)} for payment in record.payments]
return data return data
@ -101,14 +100,8 @@ class Sale(metaclass=PoolMeta):
if not records: if not records:
return return
pool = Pool()
ctx = Transaction().context
report = records[0] report = records[0]
User = pool.get('res.user')
data = {} data = {}
user = User(Transaction().user)
#raise UserError(str(Transaction().user))
#data["user"] = user.name
data["party"] = report.party.name data["party"] = report.party.name
data["tax_identifier_type"] = report.party.tax_identifier.type_string data["tax_identifier_type"] = report.party.tax_identifier.type_string
data["tax_identifier_code"] = report.party.tax_identifier.code data["tax_identifier_code"] = report.party.tax_identifier.code
@ -116,26 +109,29 @@ class Sale(metaclass=PoolMeta):
data["city"] = report.invoice_address.subdivision_municipality.name data["city"] = report.invoice_address.subdivision_municipality.name
data["zone"] = report.zone.name if report.zone else "" data["zone"] = report.zone.name if report.zone else ""
data["table"] = report.table.name if report.table else "" data["table"] = report.table.name if report.table else ""
data["lines"] = [{'type': line.type, data["lines"] = [{
"product": line.product.name if line.type != 'title' else None, 'type': line.type,
"quantity": line.quantity if line.type != 'title' else None, "product": line.product.name if line.type != 'title' else None,
"uom": line.unit.name if line.type != 'title' else None} for line in report.lines] "quantity": line.quantity if line.type != 'title' else None,
"uom": line.unit.name if line.type != 'title' else None}
for line in report.lines]
data["lines"] = [{'type': line.type, data["lines"] = [{
"product": line.product.name if line.type != 'title' else None, 'type': line.type,
"quantity": line.quantity if line.type != 'title' else None, "product": line.product.name if line.type != 'title' else None,
"uom": line.unit.name if line.type != 'title' else None} for line in report.lines if line.impreso == False] "quantity": line.quantity if line.type != 'title' else None,
"uom": line.unit.name if line.type != 'title' else None}
for line in report.lines if not line.impreso]
return data return data
@classmethod @classmethod
@ModelView.button @ModelView.button
def add_pizza(cls, records): def add_pizza(cls, records):
pool = Pool() pool = Pool()
saleLine = pool.get('sale.line') saleLine = pool.get('sale.line')
for record in records: for record in records:
record.pizza_number +=1 record.pizza_number += 1
record.lines += (saleLine(type="title", record.lines += (saleLine(type="title",
description="Pizza Combinada"),) description="Pizza Combinada"),)
record.save() record.save()
@ -145,7 +141,7 @@ class Sale(metaclass=PoolMeta):
def impreso(cls, records): def impreso(cls, records):
record = records[0] record = records[0]
for line in record.lines: for line in record.lines:
#line.analytic_accounts = tuple() line.analytic_accounts = tuple()
line.impreso = True line.impreso = True
line.save() line.save()
record.save() record.save()
@ -157,17 +153,22 @@ class Sale(metaclass=PoolMeta):
context = Transaction().context context = Transaction().context
shop = context['shop'] shop = context['shop']
Printer = pool.get('sale.printer') Printer = pool.get('sale.printer')
printers = Printer.search([('zone', '=', 'reception'), ('shop', '=', shop)]) printers = Printer.search([
('zone', '=', 'reception'),
('shop', '=', shop)])
if not printers: if not printers:
return return
printer = printers[0] printer = printers[0]
url = f"http://{printer.api.ip_address}/print_bill" url = f"http://{printer.api.ip_address}/print_bill"
bill = cls.report_bill(records) bill = cls.report_bill(records)
content = {"content": str(json.dumps(bill)), "ip_printer": str(printer.ip_address)} user_name = context['employee.rec_name']
headers = {"accept": 'application/json', 'Content-Type': 'application/json'} content = {"content": str(json.dumps(bill)),
"ip_printer": str(printer.ip_address),
"user_name": user_name}
headers = {"accept": 'application/json',
'Content-Type': 'application/json'}
response = requests.post(url, data=json.dumps(content), headers=headers) response = requests.post(url, data=json.dumps(content), headers=headers)
@ -178,24 +179,25 @@ class Sale(metaclass=PoolMeta):
context = Transaction().context context = Transaction().context
shop = context['shop'] shop = context['shop']
Printer = pool.get('sale.printer') Printer = pool.get('sale.printer')
printers = Printer.search([('zone', '=', 'kitchen'), ('shop', '=', shop)]) printers = Printer.search([('zone', '=', 'kitchen'),
('shop', '=', shop)])
record = records[0] record = records[0]
#raise UserError(str(printers))
if not printers: if not printers:
return return
printer = printers[0] printer = printers[0]
url = f"http://{printer.api.ip_address}/order_kitchen" url = f"http://{printer.api.ip_address}/order_kitchen"
customer_order = cls.report_customer_order(records) customer_order = cls.report_customer_order(records)
content = {"content": str(json.dumps(customer_order)), "ip_printer": str(printer.ip_address)} user_name = context['employee.rec_name']
headers = {"accept": 'application/json', 'Content-Type': 'application/json'} content = {"content": str(json.dumps(customer_order)),
"ip_printer": str(printer.ip_address),
"user_name": user_name}
headers = {"accept": 'application/json',
'Content-Type': 'application/json'}
cls.impreso([record]) cls.impreso([record])
response = requests.post(url, data=json.dumps(content),
response = requests.post(url, data=json.dumps(content), headers=headers) headers=headers)
#return response.status_code
@classmethod @classmethod
@ModelView.button @ModelView.button
@ -204,7 +206,8 @@ class Sale(metaclass=PoolMeta):
context = Transaction().context context = Transaction().context
shop = context['shop'] shop = context['shop']
Printer = pool.get('sale.printer') Printer = pool.get('sale.printer')
printers = Printer.search([('zone', '=', 'bar'), ('shop', '=', shop)]) printers = Printer.search([('zone', '=', 'bar'),
('shop', '=', shop)])
record = records[0] record = records[0]
if not printers: if not printers:
@ -212,17 +215,16 @@ class Sale(metaclass=PoolMeta):
printer = printers[0] printer = printers[0]
url = f"http://{printer.api.ip_address}/order_bar" url = f"http://{printer.api.ip_address}/order_bar"
customer_order = cls.report_customer_order(records) customer_order = cls.report_customer_order(records)
cls.impreso([record]) cls.impreso([record])
user_name = context['employee.rec_name']
#cls.impreso(records) content = {"content": str(json.dumps(customer_order)),
"ip_printer": str(printer.ip_address),
content = {"content": str(json.dumps(customer_order)), "ip_printer": str(printer.ip_address)} "user_name": user_name}
headers = {"accept": 'application/json', 'Content-Type': 'application/json'} headers = {"accept": 'application/json',
'Content-Type': 'application/json'}
response = requests.post(url, data=json.dumps(content), headers=headers) response = requests.post(url, data=json.dumps(content),
headers=headers)
class Line(metaclass=PoolMeta): class Line(metaclass=PoolMeta):
@ -233,10 +235,10 @@ class Line(metaclass=PoolMeta):
impreso = fields.Boolean("Impreso") impreso = fields.Boolean("Impreso")
@fields.depends('product', 'unit', 'sale', @fields.depends('product', 'unit', 'sale',
'_parent_sale.party', '_parent_sale.invoice_party', '_parent_sale.party', '_parent_sale.invoice_party',
'_parent_sale.pizza_number', '_parent_sale.pizza_number',
methods=['compute_taxes', 'compute_unit_price', methods=['compute_taxes', 'compute_unit_price',
'on_change_with_amount']) 'on_change_with_amount'])
def on_change_product(self): def on_change_product(self):
super(Line, self).on_change_product() super(Line, self).on_change_product()
if self.product and self.product.pizza: if self.product and self.product.pizza:
@ -245,6 +247,5 @@ class Line(metaclass=PoolMeta):
def get_production(self): def get_production(self):
"Return production for the sale line" "Return production for the sale line"
Production = super(Line, self).get_production() Production = super(Line, self).get_production()
#Production.bom = self.product.template.boms.id
return Production return Production