trytonpsk-hotel/invoice.py

48 lines
1.6 KiB
Python

# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.pool import PoolMeta
# from trytond.model import fields
# from trytond.pyson import Eval
class Invoice(metaclass=PoolMeta):
__name__ = 'account.invoice'
# boxes = fields.Float('Boxes', digits=(6, 2))
# packing_qty = fields.Float('Pieces', digits=(6, 2))
# quantity = fields.Float('Quantity', digits=(6, 2))
# unit_qty = fields.Float('Stems', digits=(6, 2))
@classmethod
def post(cls, invoices):
super(Invoice, cls).post(invoices)
# qty = self.quantity
# if self.purchase.invoice_method != 'manual':
# print(' qty ', qty)
for invoice in invoices:
if invoice.type == 'out':
cls.set_advances_from_origin(invoice)
@classmethod
def set_advances_from_origin(cls, invoice):
advances_to_add = []
vouchers = []
for line in invoice.lines:
if line.origin and line.origin.__name__ == 'hotel.booking':
booking = line.origin
if not booking.vouchers:
continue
for voucher in booking.vouchers:
if invoice.party.id == voucher.party.id:
vouchers.append(voucher)
if vouchers:
invoice.create_move_advance(set(vouchers))
class InvoiceLine(metaclass=PoolMeta):
__name__ = 'account.invoice.line'
@classmethod
def _get_origin(cls):
return super(InvoiceLine, cls)._get_origin() + [
'hotel.booking'
]