From 4ebe44ae45a546de91ddacd9452fab36dde8d22a Mon Sep 17 00:00:00 2001 From: sinergia Date: Mon, 21 Oct 2024 20:45:58 -0500 Subject: [PATCH] Fix: Autopep8 --- __init__.py | 3 +- configuration_statement.py | 29 +++---- sale.py | 29 +++---- statement.py | 130 ++++++++++++++++++++------------ statement.xml | 44 +++++------ tests/scenario_sale_payment.rst | 1 - tests/test_scenario.py | 3 +- tryton.cfg | 2 +- view/statement_line_form.xml | 0 view/statement_line_tree.xml | 9 --- 10 files changed, 137 insertions(+), 113 deletions(-) delete mode 100644 view/statement_line_form.xml delete mode 100644 view/statement_line_tree.xml diff --git a/__init__.py b/__init__.py index 661f84b..e7134da 100644 --- a/__init__.py +++ b/__init__.py @@ -8,9 +8,9 @@ from . import statement from . import user from . import configuration_statement + def register(): Pool.register( - configuration_statement.Configuration, statement.Journal, statement.Statement, statement.Line, @@ -27,6 +27,7 @@ def register(): statement.CloseStatementStart, statement.CloseStatementDone, statement.PayInvoiceSupplierStart, + configuration_statement.Configuration, module='sale_payment', type_='model') Pool.register( sale.WizardSalePayment, diff --git a/configuration_statement.py b/configuration_statement.py index c93b901..2708e56 100644 --- a/configuration_statement.py +++ b/configuration_statement.py @@ -6,6 +6,7 @@ from trytond.pyson import Eval from trytond.transaction import Transaction from trytond.pool import Pool + class Configuration(ModelSingleton, ModelView, ModelSQL): "Configuration Chas Closures" __name__ = 'sale.cash_closures' @@ -17,19 +18,21 @@ class Configuration(ModelSingleton, ModelView, ModelSQL): mismatch_limit = Monetary( "Mismatch Limit", currency='currency', digits='currency') - account_mismatch_charge = fields.Many2One('account.account', "Account Mismatch Charge", - domain=[ - ('company', '=', Eval('company', 0)), - ('type', '!=', None), - ('closed', '!=', True), - ],) + account_mismatch_charge = fields.Many2One( + 'account.account', "Account Mismatch Charge", + domain=[ + ('company', '=', Eval('company', 0)), + ('type', '!=', None), + ('closed', '!=', True), + ],) + account_mismatch_positive = fields.Many2One( + 'account.account', "Account Mismatch Positivo", + domain=[ + ('company', '=', Eval('company', 0)), + ('type', '!=', None), + ('closed', '!=', True), + ],) - account_mismatch_positive = fields.Many2One('account.account', "Account Mismatch Positivo", - domain=[ - ('company', '=', Eval('company', 0)), - ('type', '!=', None), - ('closed', '!=', True), - ],) @staticmethod def default_currency(): Company = Pool().get('company.company') @@ -39,4 +42,4 @@ class Configuration(ModelSingleton, ModelView, ModelSQL): @staticmethod def default_company(): - return Transaction().context.get('company') + return Transaction().context.get('company') diff --git a/sale.py b/sale.py index 301885b..a8d0614 100644 --- a/sale.py +++ b/sale.py @@ -162,16 +162,17 @@ class Sale(metaclass=PoolMeta): condition=(sale.id == payline.sale) ).select( sale.id, - where=((sale.total_amount_cache != None) & - (sale.state.in_([ - 'draft', - 'quotation', - 'confirmed', - 'processing', - 'done']))), + where=((sale.total_amount_cache) & ( + sale.state.in_([ + 'draft', + 'quotation', + 'confirmed', + 'processing', + 'done']))), group_by=(sale.id), - having=(Operator(sale.total_amount_cache - - Sum(Coalesce(payline.amount, 0)), value) + having=(Operator( + sale.total_amount_cache - Sum( + Coalesce(payline.amount, 0)), value) )) return [('id', 'in', query)] @@ -196,17 +197,17 @@ class Sale(metaclass=PoolMeta): class ChangePaymentMethodForm(ModelView): 'Change Payments Method form' __name__ = 'sale.change_payment_method.form' + sale = fields.Many2One('sale.sale', "Sale", required=True) statement = fields.Many2One('account.statement', 'Statement Journal', domain=[ ('id', 'in', Eval('statements', [])), - ], - depends=['journals'], required=True) + ], required=True) statements = fields.One2Many('account.statement', None, 'Allowed Statement', readonly=True) payment = fields.Many2One( 'account.statement.line', "Payment", required=True, - domain=[('sale.id', '=', Eval('sale'))]) + domain=[('sale', '=', Eval('sale'))]) class ChangePaymentMethod(Wizard): @@ -379,8 +380,8 @@ class WizardSaleReconcile(Wizard): if not payment.move: continue for line in payment.move.lines: - if (not line.reconciliation and - line.account == account): + if (not line.reconciliation and ( + line.account == account)): lines.append(line) amount += line.debit - line.credit if lines and amount == Decimal('0.0'): diff --git a/statement.py b/statement.py index 4a35ace..251f0c1 100644 --- a/statement.py +++ b/statement.py @@ -4,7 +4,8 @@ from trytond.model import fields, ModelView from trytond.pool import Pool, PoolMeta from trytond.transaction import Transaction -from trytond.wizard import Button, StateTransition, StateAction, StateView, Wizard +from trytond.wizard import ( + Button, StateTransition, StateAction, StateView, Wizard) from decimal import Decimal from trytond.i18n import gettext from trytond.modules.currency.fields import Monetary @@ -52,7 +53,7 @@ class Statement(metaclass=PoolMeta): query = statement.join( journal, condition=statement.journal == journal.id).join( - device_journal, + device_journal, condition=journal.id == device_journal.journal).join( device, condition=device_journal.device == device.id).join( user, condition=device.id == user.sale_device).select( @@ -121,6 +122,7 @@ class OpenStatementStart(ModelView): 'Open Statement' __name__ = 'open.statement.start' + class OpenStatementDone(ModelView): 'Open Statement' __name__ = 'open.statement.done' @@ -145,7 +147,7 @@ class OpenStatement(Wizard): return { 'result': self.result, } - + def transition_create_(self): pool = Pool() User = pool.get('res.user') @@ -172,7 +174,8 @@ class OpenStatement(Wizard): for journal in device.journals: if journal not in journals_of_draft_statements: values = { - 'name': '%s - %s' % (device.rec_name, journal.rec_name), + 'name': '%s - %s' % ( + device.rec_name, journal.rec_name), 'journal': journal.id, 'company': user.company.id, 'start_balance': start_balances.get(journal.id, @@ -185,8 +188,10 @@ class OpenStatement(Wizard): results.append(gettext('sale_payment.open_statement', statement=journal.rec_name)) else: - results.append(gettext('sale_payment.statement_already_opened', - statement=journal.rec_name)) + results.append( + gettext( + 'sale_payment.statement_already_opened', + statement=journal.rec_name)) statements.extend(Statement.create(vlist)) self.result = '\n'.join(results) else: @@ -202,7 +207,7 @@ class CloseStatementStart(ModelView): statementLines = fields.One2Many('statement.line', None, 'Lines Statement', states={'readonly': True}) - + class CloseStatementDone(ModelView): 'Close Statement' __name__ = 'close.statement.done' @@ -222,8 +227,7 @@ class CloseStatement(Wizard): 'sale_payment.close_statement_done', [ Button('Done', 'end', 'tryton-ok', default=True), ]) - - + def default_done(self, fields): return { 'result': self.result, @@ -232,7 +236,7 @@ class CloseStatement(Wizard): def default_start(self, fields): pool = Pool() User = pool.get('res.user') - StatementLine = pool.get('statement.line') + # StatementLine = pool.get('statement.line') Statement = pool.get('account.statement') statementLines = [] user = Transaction().user @@ -258,12 +262,13 @@ class CloseStatement(Wizard): 'journal': s.journal.id, 'start_balance': s.start_balance, 'balance': end_balance, - 'end_balance':end_balance+s.start_balance + 'end_balance': ( + end_balance + s.start_balance) } statementLines.append(line) default = {'statementLines': statementLines} - + return default def transition_validate(self): @@ -272,12 +277,12 @@ class CloseStatement(Wizard): Statement = pool.get('account.statement') StatementLine = pool.get('account.statement.line') ConfigurationClosure = pool.get('sale.cash_closures') - config = ConfigurationClosure(8) + config = ConfigurationClosure(8) user = Transaction().user user = User(user) employee_party = user.employee.party.id if user.employee else None device = user.sale_device - + if device: journals = [j.id for j in device.journals] draft_statements = { @@ -305,38 +310,45 @@ class CloseStatement(Wizard): if account and transfer: end_balance = abs(end_balance) - abs(transfer) statement.end_balance = end_balance - lines = statement.lines + # lines = statement.lines conciliation = tuple([StatementLine( date=datetime.today().date(), - amount= abs(transfer)*-1, + amount=abs(transfer) * -1, account=account.id)] ) statement.lines = statement.lines + conciliation if mismatch and mismatch.real > 0: pass - - if (config.mismatch_limit and config.account_mismatch_charge): - if mismatch and (abs(mismatch) >= abs(config.mismatch_limit.real)): - lines = statement.lines - if employee_party == None: - raise UserError(str("Debe definir un Empleado para el Usuario.")) + + if config.mismatch_limit and ( + config.account_mismatch_charge): + if mismatch and (abs(mismatch) >= abs( + config.mismatch_limit.real)): + # lines = statement.lines + if employee_party is None: + raise UserError(str( + "Debe definir un Empleado para el Usuario." + )) conciliation_mismatch = tuple([StatementLine( date=datetime.today().date(), amount=mismatch, account=config.account_mismatch_charge.id)] ) - statement.lines = statement.lines + conciliation_mismatch + statement.lines =\ + statement.lines + conciliation_mismatch end_balance = abs(end_balance) - abs(mismatch) - + statement.end_balance = end_balance statement.save() statements.append(statement) results.append(gettext('sale_payment.close_statement', statement=statement.rec_name)) elif statement: - results.append(gettext('sale_payment.statement_already_closed', - statement=statement.rec_name)) + results.append( + gettext( + 'sale_payment.statement_already_closed', + statement=statement.rec_name)) else: results.append(gettext('sale_payment.not_statement_found', journal=journal.rec_name)) @@ -362,11 +374,13 @@ class StatementLine(ModelView): currency = fields.Many2One( 'currency.currency', "Currency") start_balance = Monetary( - "Start Balance", currency='currency', digits='currency', states=_states) + "Start Balance", currency='currency', digits='currency', + states=_states) balance = Monetary( "Balance", currency='currency', digits='currency', states=_states) end_balance = Monetary( - "End Balance", currency='currency', digits='currency', readonly=True) + "End Balance", currency='currency', digits='currency', + readonly=True) transfer = Monetary( "Transfer", currency='currency', digits='currency') real_cash = Monetary( @@ -391,29 +405,35 @@ class StatementLine(ModelView): @staticmethod def default_company(): - return Transaction().context.get('company') + return Transaction().context.get('company') @fields.depends('end_balance', 'real_cash', 'mismatch') def on_change_real_cash(self): - self.mismatch = self.real_cash - self.end_balance + if self.real_cash and self.end_balance: + self.mismatch = self.real_cash - self.end_balance + class PayInvoiceSupplierStart(ModelView): 'Payment Invoice To Supplier' __name__ = 'pay_invoice.statement.start' - invoice_to_pay = fields.One2Many('line_invoice.pay', None, "Invoice To Pay") - + invoice_to_pay = fields.One2Many( + 'line_invoice.pay', None, "Invoice To Pay") + + class PayInvoiceSupplier(Wizard): 'Payment Invoice To Supplier' __name__ = 'pay_invoice.statement' - start = StateView('pay_invoice.statement.start', - 'sale_payment.pay_invoice_statement_start', [ - Button('Cancel', 'end', 'tryton-cancel'), - Button('Pay', 'pay', 'tryton-ok', default=True), - ]) + start = StateView( + 'pay_invoice.statement.start', + 'sale_payment.pay_invoice_statement_start', [ + Button('Cancel', 'end', 'tryton-cancel'), + Button('Pay', 'pay', 'tryton-ok', default=True), + ]) pay = StateAction('account_statement.act_statement_form') + def do_pay(self, action): pool = Pool() User = pool.get('res.user') @@ -438,17 +458,17 @@ class PayInvoiceSupplier(Wizard): party = pay.party amount = pay.amount statement = draft_statements.get(journal) - lines = statement.lines + # lines = statement.lines pay_to_add = tuple([StatementLine( date=datetime.today().date(), party=party, related_to=invoice, - amount= abs(amount)*-1, + amount=abs(amount) * -1, account=account.id)]) statement.lines = statement.lines + pay_to_add statement.save() - - + + class LinesInvoiceToPay(ModelView): "Lines Invoice To Pay" __name__ = 'line_invoice.pay' @@ -457,7 +477,8 @@ class LinesInvoiceToPay(ModelView): 'company.company', "Company", required=True) journal = fields.Many2One('account.statement.journal', 'Journal', required=True) - amount = Monetary("Amount", currency='currency', digits='currency', required=True) + amount = Monetary( + "Amount", currency='currency', digits='currency', required=True) party = fields.Many2One('party.party', "Party", required=True, context={'company': Eval('company', -1)},) invoice = fields.Reference( @@ -472,10 +493,10 @@ class LinesInvoiceToPay(ModelView): If(Bool(Eval('account')), ('account', '=', Eval('account')), ()), - If(Eval('statement_state') == 'draft', - ('state', '=', 'posted'), - ('state', '!=', '')), - ],}, + # If(Eval('statement_state') == 'draft', + # ('state', '=', 'posted'), + # ('state', '!=', '')), + ]}, context={'with_payment': False}) account = fields.Many2One('account.account', "Account", domain=[ @@ -484,17 +505,28 @@ class LinesInvoiceToPay(ModelView): ('closed', '!=', True), ],) description = fields.Char("Description") + currency = fields.Many2One( + 'currency.currency', 'Currency', required=True) @staticmethod def default_company(): return Transaction().context.get('company') - + + @classmethod + def default_currency(cls, **pattern): + pool = Pool() + Company = pool.get('company.company') + company = pattern.get('company') + if not company: + company = cls.default_company() + if company: + return Company(company).currency.id + @classmethod def _get_relations(cls): "Return a list of Model names for related_to Reference" - - return ['account.invoice'] + return ['account.invoice'] @classmethod def get_relations(cls): diff --git a/statement.xml b/statement.xml index 279f1f2..4e7911b 100644 --- a/statement.xml +++ b/statement.xml @@ -4,25 +4,6 @@ The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. --> - - Configuration Closures - sale.cash_closures - - - sale.cash_closures - form - configuration_closures_form - - - - - - - Statements account.statement @@ -87,11 +68,6 @@ copyright notices and license terms. --> Open Statements open.statement - - statement.line - form - statement_line_form - statement.line tree @@ -148,6 +124,26 @@ copyright notices and license terms. --> + + Configuration Closures + sale.cash_closures + + + sale.cash_closures + form + configuration_closures_form + + + + + + + + diff --git a/tests/scenario_sale_payment.rst b/tests/scenario_sale_payment.rst index dc1d39c..8753d1a 100644 --- a/tests/scenario_sale_payment.rst +++ b/tests/scenario_sale_payment.rst @@ -19,7 +19,6 @@ Imports:: >>> today = datetime.date.today() Install sale:: - >>> config = activate_modules(['party', 'sale_payment']) Create company:: diff --git a/tests/test_scenario.py b/tests/test_scenario.py index b5e24ad..5ba5993 100644 --- a/tests/test_scenario.py +++ b/tests/test_scenario.py @@ -20,4 +20,5 @@ def load_tests(loader, tests, pattern): optionflags=doctest.REPORT_ONLY_FIRST_FAILURE)) finally: os.chdir(cwd) - return tests \ No newline at end of file + + return tests diff --git a/tryton.cfg b/tryton.cfg index 621287f..d406979 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -4,8 +4,8 @@ depends: account_statement sale_shop xml: + statement.xml device.xml sale.xml - statement.xml user.xml message.xml diff --git a/view/statement_line_form.xml b/view/statement_line_form.xml deleted file mode 100644 index e69de29..0000000 diff --git a/view/statement_line_tree.xml b/view/statement_line_tree.xml deleted file mode 100644 index ed64a2f..0000000 --- a/view/statement_line_tree.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - -