fix: se limpia la casa
This commit is contained in:
parent
6565be82a2
commit
dcd88381ee
67
sale.py
67
sale.py
@ -14,25 +14,24 @@ from trytond.i18n import gettext
|
||||
from trytond.exceptions import UserError
|
||||
from trytond.modules.currency.fields import Monetary
|
||||
|
||||
from trytond.exceptions import UserError
|
||||
|
||||
__all__ = ['Sale', 'SalePaymentForm', 'WizardSalePayment',
|
||||
'WizardSaleReconcile']
|
||||
'WizardSaleReconcile']
|
||||
|
||||
|
||||
class Sale(metaclass=PoolMeta):
|
||||
__name__ = 'sale.sale'
|
||||
payments = fields.One2Many('account.statement.line', 'sale', 'Payments')
|
||||
paid_amount = fields.Function(fields.Numeric('Paid Amount', readonly=True),
|
||||
'get_paid_amount')
|
||||
'get_paid_amount')
|
||||
residual_amount = fields.Function(fields.Numeric('Residual Amount'),
|
||||
'get_residual_amount', searcher='search_residual_amount')
|
||||
'get_residual_amount',
|
||||
searcher='search_residual_amount')
|
||||
sale_device = fields.Many2One('sale.device', 'Sale Device',
|
||||
domain=[('shop', '=', Eval('shop'))],
|
||||
depends=['shop'], states={
|
||||
'readonly': Eval('state') != 'draft',
|
||||
}
|
||||
)
|
||||
domain=[('shop', '=', Eval('shop'))],
|
||||
depends=['shop'], states={
|
||||
'readonly': Eval('state') != 'draft',
|
||||
})
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
@ -68,7 +67,7 @@ class Sale(metaclass=PoolMeta):
|
||||
to_post = set()
|
||||
for sale in sales:
|
||||
grouping = getattr(sale.party, 'sale_invoice_grouping_method',
|
||||
False)
|
||||
False)
|
||||
if getattr(sale, 'invoices', None) and not grouping:
|
||||
for invoice in sale.invoices:
|
||||
if not invoice.state == 'draft':
|
||||
@ -98,7 +97,7 @@ class Sale(metaclass=PoolMeta):
|
||||
if not sale.invoices and sale.invoice_method == 'order':
|
||||
raise UserError(gettext(
|
||||
'sale_payment.not_customer_invoice',
|
||||
reference=sale.reference))
|
||||
reference=sale.reference))
|
||||
|
||||
to_post = cls.set_invoices_to_be_posted(sales)
|
||||
if to_post:
|
||||
@ -143,7 +142,7 @@ class Sale(metaclass=PoolMeta):
|
||||
@classmethod
|
||||
def get_residual_amount(cls, sales, name):
|
||||
return {s.id: s.total_amount - s.paid_amount if s.state != 'cancelled'
|
||||
else Decimal(0) for s in sales}
|
||||
else Decimal(0) for s in sales}
|
||||
|
||||
@classmethod
|
||||
def search_residual_amount(cls, name, clause):
|
||||
@ -163,16 +162,16 @@ class Sale(metaclass=PoolMeta):
|
||||
).select(
|
||||
sale.id,
|
||||
where=((sale.total_amount_cache != None) &
|
||||
(sale.state.in_([
|
||||
'draft',
|
||||
'quotation',
|
||||
'confirmed',
|
||||
'processing',
|
||||
'done']))),
|
||||
(sale.state.in_([
|
||||
'draft',
|
||||
'quotation',
|
||||
'confirmed',
|
||||
'processing',
|
||||
'done']))),
|
||||
group_by=(sale.id),
|
||||
having=(Operator(sale.total_amount_cache -
|
||||
Sum(Coalesce(payline.amount, 0)), value)
|
||||
))
|
||||
Sum(Coalesce(payline.amount, 0)), value)
|
||||
))
|
||||
return [('id', 'in', query)]
|
||||
|
||||
@classmethod
|
||||
@ -192,14 +191,14 @@ class SalePaymentForm(ModelView):
|
||||
'Sale Payment Form'
|
||||
__name__ = 'sale.payment.form'
|
||||
journal = fields.Many2One('account.statement.journal', 'Statement Journal',
|
||||
domain=[
|
||||
('id', 'in', Eval('journals', [])),
|
||||
],
|
||||
depends=['journals'], required=True)
|
||||
domain=[
|
||||
('id', 'in', Eval('journals', [])),
|
||||
],
|
||||
depends=['journals'], required=True)
|
||||
journals = fields.One2Many('account.statement.journal', None,
|
||||
'Allowed Statement Journals')
|
||||
'Allowed Statement Journals')
|
||||
payment_amount = Monetary('Payment amount', required=True,
|
||||
currency='currency', digits='currency')
|
||||
currency='currency', digits='currency')
|
||||
party = fields.Many2One('party.party', 'Party', readonly=True)
|
||||
currency = fields.Many2One('currency.currency', 'Currency', readonly=True)
|
||||
|
||||
@ -208,10 +207,10 @@ class WizardSalePayment(Wizard):
|
||||
'Wizard Sale Payment'
|
||||
__name__ = 'sale.payment'
|
||||
start = StateView('sale.payment.form',
|
||||
'sale_payment.sale_payment_view_form', [
|
||||
Button('Cancel', 'end', 'tryton-cancel'),
|
||||
Button('Pay', 'pay_', 'tryton-ok', default=True),
|
||||
])
|
||||
'sale_payment.sale_payment_view_form', [
|
||||
Button('Cancel', 'end', 'tryton-cancel'),
|
||||
Button('Pay', 'pay_', 'tryton-ok', default=True),
|
||||
])
|
||||
pay_ = StateTransition()
|
||||
|
||||
def default_start(self, fields):
|
||||
@ -225,10 +224,10 @@ class WizardSalePayment(Wizard):
|
||||
raise UserError(gettext('sale_payment.not_sale_device'))
|
||||
return {
|
||||
'journal': sale_device.journal.id
|
||||
if sale_device.journal else None,
|
||||
if sale_device.journal else None,
|
||||
'journals': [j.id for j in sale_device.journals],
|
||||
'payment_amount': sale.total_amount - sale.paid_amount
|
||||
if sale.paid_amount else sale.total_amount,
|
||||
if sale.paid_amount else sale.total_amount,
|
||||
'currency': sale.currency and sale.currency.id,
|
||||
'party': sale.party.id,
|
||||
}
|
||||
@ -247,7 +246,7 @@ class WizardSalePayment(Wizard):
|
||||
], order=[('date', 'DESC')])
|
||||
if not statements:
|
||||
raise UserError(gettext('sale_payment.not_draft_statement',
|
||||
journal=form.journal.name))
|
||||
journal=form.journal.name))
|
||||
|
||||
if not sale.number:
|
||||
Sale.set_number([sale])
|
||||
@ -258,7 +257,7 @@ class WizardSalePayment(Wizard):
|
||||
if not account:
|
||||
raise UserError(gettext(
|
||||
'sale_payment.party_without_account_receivable',
|
||||
party=sale.party.name))
|
||||
party=sale.party.name))
|
||||
|
||||
if form.payment_amount:
|
||||
return StatementLine(
|
||||
|
Loading…
Reference in New Issue
Block a user