5 Commits

Author SHA1 Message Date
6ad6f9965b move register from __init__ to tryton.cfg 2026-07-02 19:21:02 -05:00
f4b99e0ea9 Update version to 8.0.0 2026-07-02 17:14:33 -05:00
e130ae7f9d chore 2026-01-05 21:09:03 -05:00
5e18fa68a3 fix: tests warning 2025-11-06 13:58:37 -05:00
d0f414550b feat: insert sale_device in the context 2025-10-30 17:13:09 -05:00
6 changed files with 45 additions and 52 deletions

View File

@@ -1,39 +0,0 @@
# This file is part of the sale_payment module for Tryton.
# The COPYRIGHT file at the top level of this repository contains the full
# copyright notices and license terms.
from trytond.pool import Pool
from . import device
from . import sale
from . import statement
from . import user
from . import configuration_statement
def register():
Pool.register(
statement.Journal,
statement.Statement,
statement.Line,
statement.StatementLine,
statement.LinesInvoiceToPay,
device.SaleDevice,
user.User,
device.SaleDeviceStatementJournal,
sale.Sale,
sale.SalePaymentForm,
sale.ChangePaymentMethodForm,
statement.OpenStatementStart,
statement.OpenStatementDone,
statement.CloseStatementStart,
statement.CloseStatementDone,
statement.PayInvoiceSupplierStart,
configuration_statement.Configuration,
module='sale_payment', type_='model')
Pool.register(
sale.WizardSalePayment,
sale.ChangePaymentMethod,
sale.WizardSaleReconcile,
statement.OpenStatement,
statement.CloseStatement,
statement.PayInvoiceSupplier,
module='sale_payment', type_='wizard')

View File

@@ -19,7 +19,7 @@ class SaleDevice(ModelSQL, ModelView):
journals = fields.Many2Many('sale.device.account.statement.journal', journals = fields.Many2Many('sale.device.account.statement.journal',
'device', 'journal', 'Journals', depends=['company'], 'device', 'journal', 'Journals', depends=['company'],
domain=[ domain=[
('company', '=', Eval('company')), ('company', '=', Eval('company', -1)),
] ]
) )
journal = fields.Many2One('account.statement.journal', "Default Journal", journal = fields.Many2One('account.statement.journal', "Default Journal",

11
sale.py
View File

@@ -30,7 +30,7 @@ class Sale(metaclass=PoolMeta):
'get_residual_amount', 'get_residual_amount',
searcher='search_residual_amount') searcher='search_residual_amount')
sale_device = fields.Many2One('sale.device', 'Sale Device', sale_device = fields.Many2One('sale.device', 'Sale Device',
domain=[('shop', '=', Eval('shop'))], domain=[('shop', '=', Eval('shop', -1))],
depends=['shop'], states={ depends=['shop'], states={
'readonly': Eval('state') != 'draft', 'readonly': Eval('state') != 'draft',
}) })
@@ -40,8 +40,11 @@ class Sale(metaclass=PoolMeta):
super(Sale, cls).__setup__() super(Sale, cls).__setup__()
cls._buttons.update({ cls._buttons.update({
'wizard_sale_payment': { 'wizard_sale_payment': {
'invisible': Eval('state') == 'done', 'invisible': (Eval('state') == 'done') | (Eval(
'readonly': Not(Bool(Eval('lines'))), 'residual_amount', 0) == 0),
'readonly': Not(Bool(Eval('lines'))) | (Eval(
'residual_amount', 0) == 0),
'depends': ['state', 'residual_amount']
}, },
'wizard_change_payment_method': {}, 'wizard_change_payment_method': {},
}) })
@@ -225,7 +228,7 @@ class ChangePaymentMethodForm(ModelView):
'Allowed Statement', readonly=True) 'Allowed Statement', readonly=True)
payment = fields.Many2One( payment = fields.Many2One(
'account.statement.line', "Payment", required=True, 'account.statement.line', "Payment", required=True,
domain=[('sale', '=', Eval('sale'))]) domain=[('sale', '=', Eval('sale', -1))])
class ChangePaymentMethod(Wizard): class ChangePaymentMethod(Wizard):

View File

@@ -13,7 +13,7 @@ copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_payment_form"> <record model="ir.action.act_window" id="act_payment_form">
<field name="name">Payments</field> <field name="name">Payments</field>
<field name="res_model">account.statement.line</field> <field name="res_model">account.statement.line</field>
<field name="domain" eval="[If(Eval('active_ids', []) == [Eval('active_id')], ('sale', '=', Eval('active_id')), ('sale', 'in', Eval('active_ids')))]" pyson="1"/> <field name="domain" eval="[If(Eval('active_ids', []) == [Eval('active_id'), -1], ('sale', '=', Eval('active_id', -1)), ('sale', 'in', Eval('active_ids', [])))]" pyson="1"/>
</record> </record>
<record model="ir.action.keyword" id="act_open_payment_keyword1"> <record model="ir.action.keyword" id="act_open_payment_keyword1">
<field name="keyword">form_relate</field> <field name="keyword">form_relate</field>

View File

@@ -1,5 +1,5 @@
[tryton] [tryton]
version=7.6.0 version=8.0.0
depends: depends:
account_statement account_statement
sale_shop sale_shop
@@ -9,3 +9,31 @@ xml:
sale.xml sale.xml
user.xml user.xml
message.xml message.xml
[register]
model:
statement.Journal
statement.Statement
statement.Line
statement.StatementLine
statement.LinesInvoiceToPay
device.SaleDevice
user.User
device.SaleDeviceStatementJournal
sale.Sale
sale.SalePaymentForm
sale.ChangePaymentMethodForm
statement.OpenStatementStart
statement.OpenStatementDone
statement.CloseStatementStart
statement.CloseStatementDone
statement.PayInvoiceSupplierStart
configuration_statement.Configuration
wizards:
sale.WizardSalePayment
sale.ChangePaymentMethod
sale.WizardSaleReconcile
statement.OpenStatement
statement.CloseStatement
statement.PayInvoiceSupplier

View File

@@ -12,14 +12,15 @@ __all__ = ['User']
class User(metaclass=PoolMeta): class User(metaclass=PoolMeta):
__name__ = "res.user" __name__ = "res.user"
sale_device = fields.Many2One('sale.device', 'Sale Device', sale_device = fields.Many2One(
domain=[('shop', '=', Eval('shop'))], 'sale.device', 'Sale Device', domain=[
depends=['shop'] ('shop', '=', Eval('shop', -1))
) ], depends=['shop'])
@classmethod @classmethod
def __setup__(cls): def __setup__(cls):
super(User, cls).__setup__() super(User, cls).__setup__()
cls._context_fields.insert(0, 'sale_device')
if 'sale_device' not in cls._preferences_fields: if 'sale_device' not in cls._preferences_fields:
cls._preferences_fields.extend([ cls._preferences_fields.extend([
'sale_device', 'sale_device',