first commit
This commit is contained in:
2
modules/account_payment_clearing/__init__.py
Normal file
2
modules/account_payment_clearing/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
Binary file not shown.
Binary file not shown.
BIN
modules/account_payment_clearing/__pycache__/ir.cpython-311.pyc
Normal file
BIN
modules/account_payment_clearing/__pycache__/ir.cpython-311.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
48
modules/account_payment_clearing/account.py
Normal file
48
modules/account_payment_clearing/account.py
Normal file
@@ -0,0 +1,48 @@
|
||||
# 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 Pool, PoolMeta
|
||||
from trytond.tools import grouped_slice
|
||||
|
||||
|
||||
class Move(metaclass=PoolMeta):
|
||||
__name__ = 'account.move'
|
||||
|
||||
@classmethod
|
||||
def _get_origin(cls):
|
||||
models = super()._get_origin()
|
||||
return models + ['account.payment']
|
||||
|
||||
|
||||
def _payments_to_update(reconciliations):
|
||||
pool = Pool()
|
||||
Payment = pool.get('account.payment')
|
||||
Reconciliation = pool.get('account.move.reconciliation')
|
||||
|
||||
moves = set()
|
||||
others = set()
|
||||
for reconciliation in reconciliations:
|
||||
for line in reconciliation.lines:
|
||||
moves.add(line.move)
|
||||
others.update(line.reconciliations_delegated)
|
||||
|
||||
payments = set()
|
||||
for sub_moves in grouped_slice(moves):
|
||||
payments.update(Payment.search([
|
||||
('clearing_move', 'in', [m.id for m in sub_moves]),
|
||||
], order=[]))
|
||||
if others:
|
||||
payments.update(_payments_to_update(Reconciliation.browse(others)))
|
||||
|
||||
return payments
|
||||
|
||||
|
||||
class MoveReconciliation(metaclass=PoolMeta):
|
||||
__name__ = 'account.move.reconciliation'
|
||||
|
||||
@classmethod
|
||||
def on_modification(cls, mode, reconciliations, field_names=None):
|
||||
pool = Pool()
|
||||
Payment = pool.get('account.payment')
|
||||
super().on_modification(mode, reconciliations, field_names=field_names)
|
||||
Payment.__queue__.update_reconciled(
|
||||
list(_payments_to_update(reconciliations)))
|
||||
14
modules/account_payment_clearing/ir.py
Normal file
14
modules/account_payment_clearing/ir.py
Normal file
@@ -0,0 +1,14 @@
|
||||
# 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
|
||||
|
||||
|
||||
class Cron(metaclass=PoolMeta):
|
||||
__name__ = 'ir.cron'
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
cls.method.selection.append(
|
||||
('account.payment.journal|cron_post_clearing_moves',
|
||||
"Post Clearing Moves"))
|
||||
137
modules/account_payment_clearing/locale/bg.po
Normal file
137
modules/account_payment_clearing/locale/bg.po
Normal file
@@ -0,0 +1,137 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Succeed Payments"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
146
modules/account_payment_clearing/locale/ca.po
Normal file
146
modules/account_payment_clearing/locale/ca.po
Normal file
@@ -0,0 +1,146 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Compte"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "Assentament de liquidació"
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Liquidació conciliada"
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr "Línies d'extracte"
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Liquidació conciliada"
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr "Línies d'extracte"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr "Compte de liquidació"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr "Diari de liquidació"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr "Retràs comptabilització liquidació"
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Data"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr "Defineix el compte a utilitzar pel moviment de liquidació."
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr "Marcat si l'apunt de liquidació s'ha conciliat."
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr "Tots els pagaments del grup s'han conciliat."
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
"Comptabilitza automàticament els asentaments de liquidació desprès del retràs.\n"
|
||||
"Deixeu-ho en blanc per no comptabilitzar."
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr "Inici marcar pagaments amb éxit"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Grups amb èxit"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Marca pagaments amb èxit"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
"Per liquidar el pagament \"%(payment)s\" heu de configurar un compte de "
|
||||
"reeemplaç pel compte \"%(account)s\"."
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
"Per liquidar el pagament \"%(payment)s\" heu de configurar un compte de "
|
||||
"reemplaç pel compte \"%(account)s\" o un compte actiu pel diari de pagaments"
|
||||
" \"%(journal)s\"."
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
"Per liquidar el pagament \"%(payment)s\" heu de configurar un compte a pagar"
|
||||
" pel tercer \"%(party)s\"."
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
"Per liquidar el pagament \"%(payment)s\" heu de configurar un compte a "
|
||||
"cobrar pel tercer \"%(party)s\"."
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Amb èxit"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Amb èxit"
|
||||
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Comptabilitza assentaments de liquidació"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr "Liquidació"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Amb èxit"
|
||||
137
modules/account_payment_clearing/locale/cs.po
Normal file
137
modules/account_payment_clearing/locale/cs.po
Normal file
@@ -0,0 +1,137 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Succeed Payments"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
146
modules/account_payment_clearing/locale/de.po
Normal file
146
modules/account_payment_clearing/locale/de.po
Normal file
@@ -0,0 +1,146 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Konto"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "Abstimmungsbuchungssatz"
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Zahlungsausgleich abgestimmt"
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr "Kontoauszugspositionen"
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Zahlungsausgleich abgestimmt"
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr "Kontoauszugspositionen"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr "Konto Zahlungsausgleich"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr "Journal Zahlungsausgleich"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr "Verzögerung des Zahlungsausgleichs"
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr "Definieren des Kontos für die Ausgleichsbuchungssätze."
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr "Ausgewählt wenn Zahlungsausgleichsbuchung abgestimmt ist."
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr "Alle Zahlungen in der Gruppe sind abgestimmt."
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
"Automatisches Verbuchen der Ausgleichsbuchungssätze mit Verzögerung.\n"
|
||||
"Leer lassen, um keine Buchungssätze zu erzeugen."
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"'payment_group': Zahlungsgruppe"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr "Buchhaltung Zahlung Erfolgreich Start"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Zahlungsläufe als erfolgreich markieren"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Erfolgreiche Zahlungen"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
"Um die Zahlung \"%(payment)s\" auszugleichen muss ein Ersatzkonto für "
|
||||
"\"%(account)s\" konfiguriert werden."
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
"Um die Zahlung \"%(payment)s\" auszugleichen, muss ein Ersatzkonto für "
|
||||
"\"%(account)s\" konfiguriert oder ein aktives Konto auf dem Zahlungsjournal "
|
||||
"\"%(journal)s\" erfasst werden."
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
"Um die Zahlung \"%(payment)s\" auszugleichen muss ein Verbindlichkeitenkonto"
|
||||
" für die Partei \"%(party)s\" konfiguriert werden."
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
"Um die Zahlung \"%(payment)s\" auszugleichen, muss ein Forderungskonto für "
|
||||
"die Partei \"%(party)s\" konfiguriert werden."
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Erfolgreich markieren"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Erfolgreich markieren"
|
||||
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Ausgleichsbuchungssätze erstellen"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr "Zahlungsausgleich"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Erfolgreich"
|
||||
146
modules/account_payment_clearing/locale/es.po
Normal file
146
modules/account_payment_clearing/locale/es.po
Normal file
@@ -0,0 +1,146 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Cuenta"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "Asiento de liquidación"
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Liquidación conciliada"
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr "Líneas de extracto"
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Liquidación conciliada"
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr "Líneas de extracto"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr "Cuenta de liquidación"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr "Diario de liquidación"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr "Retraso contabilización liquidación"
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Fecha"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr "Define la cuenta a utilizar para el asiento de liquidación."
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr "Marcado si el apunte de liquidación se ha conciliado."
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr "Todos los pagos del grupo se han conciliado."
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
"Contabiliza automáticamente los apuntes de liquidación después del retraso.\n"
|
||||
"Dejar en blanco para no contabilizar."
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr "Inicio marcar pagos con éxito"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Grupos con éxito"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Marcar pagos con éxito"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
"Para liquidar el pago \"%(payment)s\" debes configurar una cuenta de "
|
||||
"reemplazo para la cuenta \"%(account)s\"."
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
"Para liquidar el pago \"%(payment)s\" debes configurar una cuenta de "
|
||||
"remplazo para la cuenta \"%(account)s\" o una cuenta activa para el diario "
|
||||
"de pagos \"%(journal)s\"."
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
"Para liquidar el pago \"%(payment)s\" debes configurar una cuenta a pagar "
|
||||
"para el tercero \"%(party)s\"."
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
"Para liquidar el pago \"%(payment)s\" debes configurar una cuenta a cobrar "
|
||||
"para el tercero \"%(party)s\"."
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Con éxito"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Con éxito"
|
||||
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Contabilizar asientos de liquidación"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr "Liquidación"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Con éxito"
|
||||
139
modules/account_payment_clearing/locale/es_419.po
Normal file
139
modules/account_payment_clearing/locale/es_419.po
Normal file
@@ -0,0 +1,139 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "Asiento de compensación"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Asiento de compensación"
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Asiento de compensación"
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr "Cuenta de compensación"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr "Libro diario de compensación"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Fecha"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr "Grupo de pago"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Exitoso"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Pago exitoso"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Exitoso"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Exitoso"
|
||||
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr "Compensación"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Exitoso"
|
||||
140
modules/account_payment_clearing/locale/et.po
Normal file
140
modules/account_payment_clearing/locale/et.po
Normal file
@@ -0,0 +1,140 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Konto"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "Arvelduse kanne"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Arvelduse kanne"
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Arvelduse kanne"
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr "Arvelduse konto"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr "Arvelduse päevaraamat"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr "Arvelduse postitamise viivitus"
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Kuupäev"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr "Määra konto, mida kasutada arveldamise kandel."
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
"Postita automaatselt arvelduse kanded pärast viivitust.Jäta tühjaks kui ei "
|
||||
"soovi postitada."
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr "Tasumise grupp"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Õnnestunud"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Tasumised õnnestusid"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Õnnestunud"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Õnnestunud"
|
||||
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Postita tasumise kanded"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr "Tasumine"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Tühista"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Õnnestunud"
|
||||
141
modules/account_payment_clearing/locale/fa.po
Normal file
141
modules/account_payment_clearing/locale/fa.po
Normal file
@@ -0,0 +1,141 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "حساب"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "تسویه جابجایی"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "تسویه جابجایی"
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "تسویه جابجایی"
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr "تسویه حساب"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr "تسویه روزنامه"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr "تسویه تاخیر ارسال"
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "تاریخ"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr "تعریف حساب برای استفاده تسویه جابجایی."
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
"ارسال تسویه جابجایی ها بعداز تأخییر بطورخودکار.\n"
|
||||
"برای بدون ارسال خالی بگذارید."
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr "گروه پرداخت"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "پرداخت های موفق"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr "تسویه"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "انصراف"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "موفق شد"
|
||||
137
modules/account_payment_clearing/locale/fi.po
Normal file
137
modules/account_payment_clearing/locale/fi.po
Normal file
@@ -0,0 +1,137 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Succeed Payments"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
146
modules/account_payment_clearing/locale/fr.po
Normal file
146
modules/account_payment_clearing/locale/fr.po
Normal file
@@ -0,0 +1,146 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Compte"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "Mouvement de compensation"
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Compensation réconciliée"
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr "Lignes de relevé"
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Compensation réconciliée"
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr "Lignes de relevé"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr "Compte de compensation"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr "Journal de compensation"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr "Délai de comptabilisation de compensation"
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Date"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr "Définit le compte à utiliser pour le mouvement de compensation."
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr "Coché si la ligne de compensation est réconciliée."
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr "Tous les paiements du groupe sont réconciliés."
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
"Comptabilise automatiquement les mouvements de compensation après le délai.\n"
|
||||
"Laissez vide pour ne pas comptabiliser."
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr "Paiement comptable réussi début"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Groupes réussis"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Réussir les paiements"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
"Pour compenser le paiement « %(payment)s », vous devez configurer un compte "
|
||||
"de remplacement pour « %(account)s »."
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
"Pour compenser le paiement « %(payment)s », vous devez configurer un compte "
|
||||
"de remplacement pour « %(account)s » ou un compte actif dans le journal des "
|
||||
"paiements « %(journal)s »."
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
"Pour compenser le paiement « %(payment)s », vous devez configurer un compte "
|
||||
"à payer pour le tiers « %(party)s »."
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
"Pour compenser le paiement « %(payment)s », vous devez configurer un compte "
|
||||
"client pour le tiers « %(party)s »."
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Réussir"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Réussir"
|
||||
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Comptabiliser les mouvements de compensation"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr "Compensation"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Réussir"
|
||||
137
modules/account_payment_clearing/locale/hu.po
Normal file
137
modules/account_payment_clearing/locale/hu.po
Normal file
@@ -0,0 +1,137 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Succeed Payments"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
133
modules/account_payment_clearing/locale/id.po
Normal file
133
modules/account_payment_clearing/locale/id.po
Normal file
@@ -0,0 +1,133 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Akun"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Tanggal"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Batal"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr ""
|
||||
137
modules/account_payment_clearing/locale/it.po
Normal file
137
modules/account_payment_clearing/locale/it.po
Normal file
@@ -0,0 +1,137 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Conto"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "Movimento di compensazione"
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Movimento di compensazione"
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr "Conto di compensazione"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr "Registro di compensazione"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Data"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr "Raggruppamento pagamenti"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Riusciti"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Pagamenti avvenuti con successo"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Riusciti"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Riusciti"
|
||||
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr "Compensazione"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Annulla"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Riusciti"
|
||||
140
modules/account_payment_clearing/locale/lo.po
Normal file
140
modules/account_payment_clearing/locale/lo.po
Normal file
@@ -0,0 +1,140 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "ຊໍາລະເຄື່ອນຍ້າຍ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "ຊໍາລະເຄື່ອນຍ້າຍ"
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "ຊໍາລະເຄື່ອນຍ້າຍ"
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr "ບັນຊີສະສາງ"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr "ບັນຊີສະສາງປະຈຳວັນ"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "ວັນທີ"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr "ໝວດການຈ່າຍ"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Succeed Payments"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr "ການຊໍາລະ"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "ຍົກເລີກ"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "ສຳເລັດແລ້ວ"
|
||||
137
modules/account_payment_clearing/locale/lt.po
Normal file
137
modules/account_payment_clearing/locale/lt.po
Normal file
@@ -0,0 +1,137 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Koresponduojanti sąskaita"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Data"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr "Mokėjimų grupė"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Sėkmingai"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Sėkmingai apmokėta"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Sėkmingai"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Sėkmingai"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Atsisakyti"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Sėkmingai"
|
||||
146
modules/account_payment_clearing/locale/nl.po
Normal file
146
modules/account_payment_clearing/locale/nl.po
Normal file
@@ -0,0 +1,146 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Rekening"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "tegenboeking"
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Compensatieboeking afgeletterd"
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr "Afschrift regels"
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Compensatieboeking afgeletterd"
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr "Afschrift regels"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr "tegen rekening"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr "tegen dagboek"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr "tegenboeking vertraging"
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr "definieer de rekening om te gebruiken voor de tegenboekingen."
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr "Aangevinkt als de compensatieboekingsregel is afgeletterd."
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr "Alle betalingen in de groep zijn afgeletterd."
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
"maak automatisch de tegenboeking na de vertraging (delay).\n"
|
||||
"Laat leeg om geen boekingen te maken."
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"'betalingsgroep'"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr "Betaling succesvol start"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Geslaagde groepen"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "geslaagde betalingen"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
"Om de betaling \"%(payment)s\" te verwerken, moet er een vervangende "
|
||||
"rekening geconfigureerd worden voor \"%(account)s\"."
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
"Om de betaling \"%(payment)s\" te verwerken, moet er een vervangend account "
|
||||
"geconfigureerd worden voor \"%(account)s\" of een actieve rekening van het "
|
||||
"betalingsdagboek \"%(journal)s\"."
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
"Om de betaling \"%(payment)s\" te verwerken, moet er een crediteurenrekening"
|
||||
" geconfigureerd worden voor relatie \"%(party)s\"."
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
"Om de betaling \"%(payment)s\" te verwerken, moet er een debiteurenrekening "
|
||||
"geconfigureerd worden voor relatie \"%(party)s\"."
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succesvol"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "geslaagd"
|
||||
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Maak tegenboekingen"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr "tegenboeking"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleer"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "geslaagd"
|
||||
137
modules/account_payment_clearing/locale/pl.po
Normal file
137
modules/account_payment_clearing/locale/pl.po
Normal file
@@ -0,0 +1,137 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Konto"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Data"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Succeed Payments"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
141
modules/account_payment_clearing/locale/pt.po
Normal file
141
modules/account_payment_clearing/locale/pt.po
Normal file
@@ -0,0 +1,141 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Conta"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "Movimento de Compensação"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Movimento de Compensação"
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Movimento de Compensação"
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr "Conta de Compensação"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr "Diário de Compensação"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Data"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr "Define a conta usada para o movimento de compensação."
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"'pagamento_agrupado'"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Succeed Payments"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr "Compensação"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Sucesso"
|
||||
135
modules/account_payment_clearing/locale/ro.po
Normal file
135
modules/account_payment_clearing/locale/ro.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Cont"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "Ștergerea Mișcării"
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Data"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr "Toate plățile din grup sunt reconciliate."
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Anulare"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr ""
|
||||
137
modules/account_payment_clearing/locale/ru.po
Normal file
137
modules/account_payment_clearing/locale/ru.po
Normal file
@@ -0,0 +1,137 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Succeed Payments"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
140
modules/account_payment_clearing/locale/sl.po
Normal file
140
modules/account_payment_clearing/locale/sl.po
Normal file
@@ -0,0 +1,140 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr "Konto"
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr "Klirinška knjižba"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Klirinška knjižba"
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr "Klirinška knjižba"
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr "Klirinški konto"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr "Klirinški dnevnik"
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr "Konto za knjiženje klirinškega prometa"
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr "Plačilna skupina"
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Succeed Payments"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr "Kliring"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Prekliči"
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Zaključi"
|
||||
137
modules/account_payment_clearing/locale/tr.po
Normal file
137
modules/account_payment_clearing/locale/tr.po
Normal file
@@ -0,0 +1,137 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Succeed Payments"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
133
modules/account_payment_clearing/locale/uk.po
Normal file
133
modules/account_payment_clearing/locale/uk.po
Normal file
@@ -0,0 +1,133 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr ""
|
||||
137
modules/account_payment_clearing/locale/zh_CN.po
Normal file
137
modules/account_payment_clearing/locale/zh_CN.po
Normal file
@@ -0,0 +1,137 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.payment,account:"
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_move:"
|
||||
msgid "Clearing Move"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,clearing_reconciled:"
|
||||
msgid "Clearing Reconciled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.group,statement_lines:"
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_account:"
|
||||
msgid "Clearing Account"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_journal:"
|
||||
msgid "Clearing Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.journal,clearing_posting_delay:"
|
||||
msgid "Clearing Posting Delay"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.payment.succeed.start,date:"
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,account:"
|
||||
msgid "Define the account to use for clearing move."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment,clearing_reconciled:"
|
||||
msgid "Checked if clearing line is reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.group,clearing_reconciled:"
|
||||
msgid "All payments in the group are reconciled."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.payment.journal,clearing_posting_delay:"
|
||||
msgid ""
|
||||
"Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:account.statement.rule,description:"
|
||||
msgid ""
|
||||
"\n"
|
||||
"'payment_group'"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.payment.succeed.start,string:"
|
||||
msgid "Account Payment Succeed Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_payment_group_succeed"
|
||||
msgid "Succeed Groups"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_succeed"
|
||||
msgid "Succeed Payments"
|
||||
msgstr "Succeed Payments"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_missing_journal"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a replacement "
|
||||
"account for \"%(account)s\" or an active account on the payment journal "
|
||||
"\"%(journal)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_payment_clearing_account_payable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a payable account "
|
||||
"for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt ""
|
||||
"model:ir.message,text:msg_payment_clearing_account_receivable_missing"
|
||||
msgid ""
|
||||
"To clear the payment \"%(payment)s\" you must configure a receivable account"
|
||||
" for party \"%(party)s\"."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:payment_group_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
msgctxt "model:ir.model.button,string:payment_succeed_wizard_button"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:ir.cron,method:"
|
||||
msgid "Post Clearing Moves"
|
||||
msgstr "Post Clearing Moves"
|
||||
|
||||
msgctxt "view:account.payment.journal:"
|
||||
msgid "Clearing"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.payment.succeed,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.payment.succeed,start,succeed:"
|
||||
msgid "Succeed"
|
||||
msgstr "Succeed"
|
||||
20
modules/account_payment_clearing/message.xml
Normal file
20
modules/account_payment_clearing/message.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data grouped="1">
|
||||
<record model="ir.message" id="msg_payment_clearing_account_missing">
|
||||
<field name="text">To clear the payment "%(payment)s" you must configure a replacement account for "%(account)s".</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_payment_clearing_account_missing_journal">
|
||||
<field name="text">To clear the payment "%(payment)s" you must configure a replacement account for "%(account)s" or an active account on the payment journal "%(journal)s".</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_payment_clearing_account_payable_missing">
|
||||
<field name="text">To clear the payment "%(payment)s" you must configure a payable account for party "%(party)s".</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_payment_clearing_account_receivable_missing">
|
||||
<field name="text">To clear the payment "%(payment)s" you must configure a receivable account for party "%(party)s".</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
||||
14
modules/account_payment_clearing/party.py
Normal file
14
modules/account_payment_clearing/party.py
Normal file
@@ -0,0 +1,14 @@
|
||||
# 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
|
||||
|
||||
|
||||
class PartyReceptionDirectDebit(metaclass=PoolMeta):
|
||||
__name__ = 'party.party.reception_direct_debit'
|
||||
|
||||
def get_balance_pending_payment_domain(self):
|
||||
return [
|
||||
super().get_balance_pending_payment_domain(),
|
||||
('clearing_move', '=', None),
|
||||
]
|
||||
526
modules/account_payment_clearing/payment.py
Normal file
526
modules/account_payment_clearing/payment.py
Normal file
@@ -0,0 +1,526 @@
|
||||
# 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 collections import defaultdict
|
||||
from functools import wraps
|
||||
|
||||
from sql import Null
|
||||
from sql.aggregate import BoolAnd, Min
|
||||
from sql.conditionals import Coalesce
|
||||
|
||||
from trytond import backend
|
||||
from trytond.i18n import gettext
|
||||
from trytond.model import ModelView, Workflow, fields
|
||||
from trytond.modules.account.exceptions import AccountMissing
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Bool, Eval, If, TimeDelta
|
||||
from trytond.tools import grouped_slice, reduce_ids
|
||||
from trytond.transaction import Transaction
|
||||
from trytond.wizard import Button, StateTransition, StateView, Wizard
|
||||
|
||||
|
||||
class Journal(metaclass=PoolMeta):
|
||||
__name__ = 'account.payment.journal'
|
||||
clearing_account = fields.Many2One('account.account', 'Clearing Account',
|
||||
domain=[
|
||||
('company', '=', Eval('company', -1)),
|
||||
('type', '!=', None),
|
||||
('closed', '!=', True),
|
||||
('party_required', '=', False),
|
||||
],
|
||||
states={
|
||||
'required': Bool(Eval('clearing_journal')),
|
||||
})
|
||||
clearing_journal = fields.Many2One('account.journal', 'Clearing Journal',
|
||||
states={
|
||||
'required': Bool(Eval('clearing_account')),
|
||||
},
|
||||
context={
|
||||
'company': Eval('company', None),
|
||||
})
|
||||
clearing_posting_delay = fields.TimeDelta(
|
||||
"Clearing Posting Delay",
|
||||
domain=['OR',
|
||||
('clearing_posting_delay', '=', None),
|
||||
('clearing_posting_delay', '>=', TimeDelta()),
|
||||
],
|
||||
help="Post automatically the clearing moves after the delay.\n"
|
||||
"Leave empty for no posting.")
|
||||
|
||||
@classmethod
|
||||
def cron_post_clearing_moves(cls, date=None):
|
||||
pool = Pool()
|
||||
Date = pool.get('ir.date')
|
||||
Move = pool.get('account.move')
|
||||
if date is None:
|
||||
date = Date.today()
|
||||
moves = []
|
||||
journals = cls.search([
|
||||
('company', '=', Transaction().context.get('company')),
|
||||
('clearing_posting_delay', '!=', None),
|
||||
])
|
||||
for journal in journals:
|
||||
move_date = date - journal.clearing_posting_delay
|
||||
moves.extend(Move.search([
|
||||
('date', '<=', move_date),
|
||||
('origin.journal.id', '=', journal.id,
|
||||
'account.payment'),
|
||||
('state', '=', 'draft'),
|
||||
('company', '=', journal.company.id),
|
||||
]))
|
||||
Move.post(moves)
|
||||
|
||||
|
||||
def cancel_clearing_move(func):
|
||||
@wraps(func)
|
||||
def wrapper(cls, payments, *args, **kwargs):
|
||||
pool = Pool()
|
||||
Move = pool.get('account.move')
|
||||
Line = pool.get('account.move.line')
|
||||
Reconciliation = pool.get('account.move.reconciliation')
|
||||
|
||||
result = func(cls, payments, *args, **kwargs)
|
||||
|
||||
to_delete = []
|
||||
to_reconcile = defaultdict(lambda: defaultdict(list))
|
||||
to_unreconcile = []
|
||||
for payment in payments:
|
||||
if payment.clearing_move:
|
||||
if payment.clearing_move.state == 'draft':
|
||||
to_delete.append(payment.clearing_move)
|
||||
for line in payment.clearing_move.lines:
|
||||
if line.reconciliation:
|
||||
to_unreconcile.append(line.reconciliation)
|
||||
else:
|
||||
cancel_move = payment.clearing_move.cancel()
|
||||
for line in (payment.clearing_move.lines
|
||||
+ cancel_move.lines):
|
||||
if line.reconciliation:
|
||||
to_unreconcile.append(line.reconciliation)
|
||||
if line.account.reconcile:
|
||||
to_reconcile[payment.party][line.account].append(
|
||||
line)
|
||||
|
||||
# Remove clearing_move before delete
|
||||
# in case reconciliation triggers use it.
|
||||
cls.write(payments, {'clearing_move': None})
|
||||
|
||||
if to_unreconcile:
|
||||
Reconciliation.delete(to_unreconcile)
|
||||
if to_delete:
|
||||
Move.delete(to_delete)
|
||||
for party in to_reconcile:
|
||||
for lines in to_reconcile[party].values():
|
||||
Line.reconcile(lines)
|
||||
cls.update_reconciled(payments)
|
||||
return result
|
||||
return wrapper
|
||||
|
||||
|
||||
class Payment(metaclass=PoolMeta):
|
||||
__name__ = 'account.payment'
|
||||
account = fields.Many2One(
|
||||
'account.account', "Account", ondelete='RESTRICT',
|
||||
domain=[
|
||||
('closed', '!=', True),
|
||||
('company', '=', Eval('company', -1)),
|
||||
['OR',
|
||||
('second_currency', '=', Eval('currency', None)),
|
||||
[
|
||||
('company.currency', '=', Eval('currency', None)),
|
||||
('second_currency', '=', None),
|
||||
],
|
||||
],
|
||||
If(Eval('line'),
|
||||
('id', '=', None),
|
||||
()),
|
||||
],
|
||||
states={
|
||||
'readonly': Eval('state') != 'draft',
|
||||
'invisible': Eval('line') & ~Eval('account'),
|
||||
},
|
||||
help="Define the account to use for clearing move.")
|
||||
clearing_move = fields.Many2One('account.move', 'Clearing Move',
|
||||
readonly=True)
|
||||
clearing_reconciled = fields.Boolean(
|
||||
"Clearing Reconciled", readonly=True,
|
||||
states={
|
||||
'invisible': ~Eval('clearing_move'),
|
||||
},
|
||||
help="Checked if clearing line is reconciled.")
|
||||
|
||||
@property
|
||||
def amount_line_paid(self):
|
||||
amount = super().amount_line_paid
|
||||
|
||||
if self.clearing_move:
|
||||
clearing_lines = [
|
||||
l for l in self.clearing_move.lines
|
||||
if l.account == self.clearing_account]
|
||||
if clearing_lines:
|
||||
clearing_line = clearing_lines[0]
|
||||
if (not self.line.reconciliation
|
||||
and clearing_line.reconciliation):
|
||||
if self.line.second_currency:
|
||||
payment_amount = abs(self.line.amount_second_currency)
|
||||
else:
|
||||
payment_amount = abs(
|
||||
self.line.credit - self.line.debit)
|
||||
amount -= max(min(self.amount, payment_amount), 0)
|
||||
return amount
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
line_invisible = Eval('account') & ~Eval('line')
|
||||
if 'invisible' in cls.line.states:
|
||||
cls.line.states['invisible'] &= line_invisible
|
||||
else:
|
||||
cls.line.states['invisible'] = line_invisible
|
||||
cls._buttons.update({
|
||||
'succeed_wizard': cls._buttons['succeed'],
|
||||
})
|
||||
cls.account.domain = [
|
||||
cls.account.domain,
|
||||
cls._account_type_domain(),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def _account_type_domain(cls):
|
||||
return If(Eval('state') == 'draft',
|
||||
If(Eval('kind') == 'receivable',
|
||||
('type.receivable', '=', True),
|
||||
('type.payable', '=', True),
|
||||
),
|
||||
())
|
||||
|
||||
@fields.depends('party', 'kind', 'date')
|
||||
def on_change_party(self):
|
||||
super().on_change_party()
|
||||
if self.kind == 'receivable':
|
||||
if self.party:
|
||||
with Transaction().set_context(date=self.date):
|
||||
self.account = self.party.account_receivable_used
|
||||
else:
|
||||
self.account = None
|
||||
|
||||
@classmethod
|
||||
@ModelView.button_action('account_payment_clearing.wizard_succeed')
|
||||
def succeed_wizard(cls, payments):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('succeeded')
|
||||
def succeed(cls, payments):
|
||||
pool = Pool()
|
||||
Line = pool.get('account.move.line')
|
||||
|
||||
super().succeed(payments)
|
||||
|
||||
cls.set_clearing_move(payments)
|
||||
to_reconcile = []
|
||||
for payment in payments:
|
||||
if (payment.line
|
||||
and not payment.line.reconciliation
|
||||
and payment.clearing_move):
|
||||
lines = [l for l in payment.clearing_move.lines
|
||||
if l.account == payment.line.account] + [payment.line]
|
||||
if not sum(l.debit - l.credit for l in lines):
|
||||
to_reconcile.append(lines)
|
||||
Line.reconcile(*to_reconcile)
|
||||
cls.reconcile_clearing(payments)
|
||||
cls.update_reconciled(payments)
|
||||
|
||||
@property
|
||||
def clearing_account(self):
|
||||
transaction = Transaction()
|
||||
context = transaction.context
|
||||
with transaction.set_context(date=context.get('clearing_date')):
|
||||
if self.line:
|
||||
account = self.line.account.current()
|
||||
if not account:
|
||||
raise AccountMissing(gettext(
|
||||
'account_payment_clearing'
|
||||
'.msg_payment_clearing_account_missing',
|
||||
payment=self.rec_name,
|
||||
account=self.line.account.rec_name))
|
||||
elif self.account:
|
||||
account = self.account.current()
|
||||
if not account:
|
||||
raise AccountMissing(gettext(
|
||||
'account_payment_clearing'
|
||||
'.msg_payment_clearing_account_missing',
|
||||
payment=self.rec_name,
|
||||
account=self.account.rec_name))
|
||||
elif self.kind == 'payable':
|
||||
account = self.party.account_payable_used
|
||||
if not account:
|
||||
raise AccountMissing(gettext(
|
||||
'account_payment_clearing'
|
||||
'.msg_payment_clearing_account_payable_missing',
|
||||
payment=self.rec_name,
|
||||
party=self.party.rec_name))
|
||||
elif self.kind == 'receivable':
|
||||
account = self.party.account_receivable_used
|
||||
if not account:
|
||||
raise AccountMissing(gettext(
|
||||
'account_payment_clearing'
|
||||
'.msg_payment_clearing_account_receivable_missing',
|
||||
payment=self.rec_name,
|
||||
party=self.party.rec_name))
|
||||
return account
|
||||
|
||||
@property
|
||||
def clearing_party(self):
|
||||
if self.line:
|
||||
return self.line.party
|
||||
else:
|
||||
return self.party
|
||||
|
||||
@classmethod
|
||||
def set_clearing_move(cls, payments):
|
||||
pool = Pool()
|
||||
Move = pool.get('account.move')
|
||||
moves = []
|
||||
for payment in payments:
|
||||
move = payment._get_clearing_move()
|
||||
if move and not payment.clearing_move:
|
||||
payment.clearing_move = move
|
||||
moves.append(move)
|
||||
if moves:
|
||||
Move.save(moves)
|
||||
cls.save(payments)
|
||||
|
||||
def _get_clearing_move(self, date=None):
|
||||
pool = Pool()
|
||||
Move = pool.get('account.move')
|
||||
Line = pool.get('account.move.line')
|
||||
Currency = pool.get('currency.currency')
|
||||
Period = pool.get('account.period')
|
||||
Date = pool.get('ir.date')
|
||||
|
||||
if (not self.journal.clearing_account
|
||||
or not self.journal.clearing_journal):
|
||||
return
|
||||
if self.clearing_move:
|
||||
return self.clearing_move
|
||||
|
||||
if date is None:
|
||||
date = Transaction().context.get('clearing_date')
|
||||
if date is None:
|
||||
with Transaction().set_context(company=self.company.id):
|
||||
date = Date.today()
|
||||
period = Period.find(self.company, date=date)
|
||||
|
||||
local_currency = self.journal.currency == self.company.currency
|
||||
if not local_currency:
|
||||
with Transaction().set_context(date=self.date):
|
||||
local_amount = Currency.compute(
|
||||
self.journal.currency, self.amount, self.company.currency)
|
||||
else:
|
||||
local_amount = self.amount
|
||||
|
||||
move = Move(journal=self.journal.clearing_journal, origin=self,
|
||||
date=date, period=period, company=self.company)
|
||||
line = Line()
|
||||
if self.kind == 'payable':
|
||||
line.debit, line.credit = local_amount, 0
|
||||
else:
|
||||
line.debit, line.credit = 0, local_amount
|
||||
line.account = self.clearing_account
|
||||
if not local_currency:
|
||||
line.amount_second_currency = self.amount.copy_sign(
|
||||
line.debit - line.credit)
|
||||
line.second_currency = self.journal.currency
|
||||
|
||||
line.party = (self.clearing_party
|
||||
if line.account.party_required else None)
|
||||
counterpart = Line()
|
||||
if self.kind == 'payable':
|
||||
counterpart.debit, counterpart.credit = 0, local_amount
|
||||
else:
|
||||
counterpart.debit, counterpart.credit = local_amount, 0
|
||||
counterpart.account = self.journal.clearing_account.current(date)
|
||||
if not counterpart.account:
|
||||
raise AccountMissing(gettext(
|
||||
'account_payment_clearing'
|
||||
'.msg_payment_clearing_account_missing_journal',
|
||||
payment=self.rec_name,
|
||||
account=self.journal.clearing_account.rec_name,
|
||||
journal=self.journal.rec_name))
|
||||
if not local_currency:
|
||||
counterpart.amount_second_currency = self.amount.copy_sign(
|
||||
counterpart.debit - counterpart.credit)
|
||||
counterpart.second_currency = self.journal.currency
|
||||
move.lines = (line, counterpart)
|
||||
return move
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('processing')
|
||||
@cancel_clearing_move
|
||||
def proceed(cls, payments):
|
||||
super().proceed(payments)
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('failed')
|
||||
@cancel_clearing_move
|
||||
def fail(cls, payments):
|
||||
super().fail(payments)
|
||||
|
||||
@classmethod
|
||||
def update_reconciled(cls, payments):
|
||||
for payment in payments:
|
||||
if payment.clearing_move:
|
||||
payment.clearing_reconciled = all(
|
||||
l.reconciliation for l in payment.clearing_lines)
|
||||
else:
|
||||
payment.clearing_reconciled = False
|
||||
cls.save(payments)
|
||||
|
||||
@classmethod
|
||||
def reconcile_clearing(cls, payments):
|
||||
pool = Pool()
|
||||
MoveLine = pool.get('account.move.line')
|
||||
Group = pool.get('account.payment.group')
|
||||
to_reconcile = []
|
||||
for payment in payments:
|
||||
if not payment.clearing_move:
|
||||
continue
|
||||
clearing_account = payment.journal.clearing_account
|
||||
if not clearing_account or not clearing_account.reconcile:
|
||||
continue
|
||||
lines = [l for l in payment.clearing_lines if not l.reconciliation]
|
||||
if lines and not sum((l.debit - l.credit) for l in lines):
|
||||
to_reconcile.append(lines)
|
||||
if to_reconcile:
|
||||
MoveLine.reconcile(*to_reconcile)
|
||||
Group.reconcile_clearing(
|
||||
Group.browse(list({p.group for p in payments if p.group})))
|
||||
|
||||
@property
|
||||
def clearing_lines(self):
|
||||
clearing_account = self.journal.clearing_account
|
||||
if self.clearing_move:
|
||||
for line in self.clearing_move.lines:
|
||||
if line.account == clearing_account:
|
||||
yield line
|
||||
|
||||
@classmethod
|
||||
def copy(cls, payments, default=None):
|
||||
if default is None:
|
||||
default = {}
|
||||
else:
|
||||
default = default.copy()
|
||||
default.setdefault('clearing_move')
|
||||
return super().copy(payments, default=default)
|
||||
|
||||
|
||||
class Group(metaclass=PoolMeta):
|
||||
__name__ = 'account.payment.group'
|
||||
|
||||
clearing_reconciled = fields.Function(fields.Boolean(
|
||||
"Clearing Reconciled",
|
||||
help="All payments in the group are reconciled."),
|
||||
'get_reconciled', searcher='search_reconciled')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
cls._buttons.update({
|
||||
'succeed_wizard': cls._buttons['succeed'],
|
||||
})
|
||||
|
||||
@classmethod
|
||||
def get_reconciled(cls, groups, name):
|
||||
pool = Pool()
|
||||
Payment = pool.get('account.payment')
|
||||
payment = Payment.__table__()
|
||||
cursor = Transaction().connection.cursor()
|
||||
result = defaultdict(lambda: None)
|
||||
column = Coalesce(payment.clearing_reconciled, False)
|
||||
if backend.name == 'sqlite':
|
||||
column = Min(column)
|
||||
else:
|
||||
column = BoolAnd(column)
|
||||
for sub_groups in grouped_slice(groups):
|
||||
cursor.execute(*payment.select(
|
||||
payment.group, column,
|
||||
where=reduce_ids(payment.group, sub_groups),
|
||||
group_by=payment.group))
|
||||
result.update(cursor)
|
||||
return result
|
||||
|
||||
@classmethod
|
||||
def search_reconciled(cls, name, clause):
|
||||
pool = Pool()
|
||||
Payment = pool.get('account.payment')
|
||||
payment = Payment.__table__()
|
||||
|
||||
_, operator, value = clause
|
||||
Operator = fields.SQL_OPERATORS[operator]
|
||||
column = Coalesce(payment.clearing_reconciled, False)
|
||||
if backend.name == 'sqlite':
|
||||
column = Min(column)
|
||||
else:
|
||||
column = BoolAnd(column)
|
||||
|
||||
query = payment.select(
|
||||
payment.group,
|
||||
where=payment.group != Null,
|
||||
having=Operator(column, value),
|
||||
group_by=payment.group)
|
||||
return [('id', 'in', query)]
|
||||
|
||||
@classmethod
|
||||
@ModelView.button_action(
|
||||
'account_payment_clearing.wizard_payment_group_succeed')
|
||||
def succeed_wizard(cls, groups):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def reconcile_clearing(cls, groups):
|
||||
pool = Pool()
|
||||
MoveLine = pool.get('account.move.line')
|
||||
to_reconcile = []
|
||||
for group in groups:
|
||||
clearing_account = group.journal.clearing_account
|
||||
if not clearing_account or not clearing_account.reconcile:
|
||||
continue
|
||||
lines = [l for l in group.clearing_lines if not l.reconciliation]
|
||||
if lines and not sum((l.debit - l.credit) for l in lines):
|
||||
to_reconcile.append(lines)
|
||||
if to_reconcile:
|
||||
MoveLine.reconcile(*to_reconcile)
|
||||
|
||||
@property
|
||||
def clearing_lines(self):
|
||||
for payment in self.payments:
|
||||
yield from payment.clearing_lines
|
||||
|
||||
|
||||
class Succeed(Wizard):
|
||||
__name__ = 'account.payment.succeed'
|
||||
start = StateView('account.payment.succeed.start',
|
||||
'account_payment_clearing.succeed_start_view_form', [
|
||||
Button('Cancel', 'end', 'tryton-cancel'),
|
||||
Button('Succeed', 'succeed', 'tryton-ok', default=True),
|
||||
])
|
||||
succeed = StateTransition()
|
||||
|
||||
def transition_succeed(self):
|
||||
with Transaction().set_context(clearing_date=self.start.date):
|
||||
self.model.succeed(self.records)
|
||||
return 'end'
|
||||
|
||||
|
||||
class SucceedStart(ModelView):
|
||||
__name__ = 'account.payment.succeed.start'
|
||||
date = fields.Date("Date", required=True)
|
||||
|
||||
@classmethod
|
||||
def default_date(cls):
|
||||
pool = Pool()
|
||||
Date = pool.get('ir.date')
|
||||
return Date.today()
|
||||
73
modules/account_payment_clearing/payment.xml
Normal file
73
modules/account_payment_clearing/payment.xml
Normal file
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="payment_journal_view_form">
|
||||
<field name="model">account.payment.journal</field>
|
||||
<field name="inherit"
|
||||
ref="account_payment.payment_journal_view_form"/>
|
||||
<field name="name">payment_journal_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="payment_view_form">
|
||||
<field name="model">account.payment</field>
|
||||
<field name="inherit" ref="account_payment.payment_view_form"/>
|
||||
<field name="name">payment_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="payment_view_list">
|
||||
<field name="model">account.payment</field>
|
||||
<field name="inherit" ref="account_payment.payment_view_list"/>
|
||||
<field name="name">payment_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="payment_group_view_form">
|
||||
<field name="model">account.payment.group</field>
|
||||
<field name="inherit" ref="account_payment.payment_group_view_form"/>
|
||||
<field name="name">payment_group_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="payment_group_view_list">
|
||||
<field name="model">account.payment.group</field>
|
||||
<field name="inherit" ref="account_payment.payment_group_view_list"/>
|
||||
<field name="name">payment_group_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.button" id="payment_group_succeed_wizard_button">
|
||||
<field name="model">account.payment.group</field>
|
||||
<field name="name">succeed_wizard</field>
|
||||
<field name="string">Succeed</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.wizard" id="wizard_payment_group_succeed">
|
||||
<field name="name">Succeed Groups</field>
|
||||
<field name="wiz_name">account.payment.succeed</field>
|
||||
<field name="model">account.payment.group</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.wizard" id="wizard_succeed">
|
||||
<field name="name">Succeed Payments</field>
|
||||
<field name="wiz_name">account.payment.succeed</field>
|
||||
<field name="model">account.payment</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="succeed_start_view_form">
|
||||
<field name="model">account.payment.succeed.start</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">succeed_start_form</field>
|
||||
</record>
|
||||
<record model="ir.model.button" id="payment_succeed_wizard_button">
|
||||
<field name="model">account.payment</field>
|
||||
<field name="name">succeed_wizard</field>
|
||||
<field name="string">Succeed</field>
|
||||
</record>
|
||||
</data>
|
||||
<data noupdate="1">
|
||||
<record model="ir.cron" id="cron_post_clearing_moves">
|
||||
<field name="method">account.payment.journal|cron_post_clearing_moves</field>
|
||||
<field name="interval_number" eval="1"/>
|
||||
<field name="interval_type">days</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
233
modules/account_payment_clearing/statement.py
Normal file
233
modules/account_payment_clearing/statement.py
Normal file
@@ -0,0 +1,233 @@
|
||||
# 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 sql import Null
|
||||
from sql.operators import Concat
|
||||
|
||||
from trytond.model import fields
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Eval, If
|
||||
from trytond.transaction import Transaction
|
||||
|
||||
|
||||
class Payment(metaclass=PoolMeta):
|
||||
__name__ = 'account.payment'
|
||||
|
||||
statement_lines = fields.One2Many(
|
||||
'account.statement.line', 'related_to', "Statement Lines",
|
||||
readonly=True)
|
||||
|
||||
@property
|
||||
def clearing_lines(self):
|
||||
clearing_account = self.journal.clearing_account
|
||||
yield from super().clearing_lines
|
||||
for statement_line in self.statement_lines:
|
||||
if statement_line.move:
|
||||
for line in statement_line.move.lines:
|
||||
if line.account == clearing_account:
|
||||
yield line
|
||||
|
||||
|
||||
class PaymentGroup(metaclass=PoolMeta):
|
||||
__name__ = 'account.payment.group'
|
||||
|
||||
statement_lines = fields.One2Many(
|
||||
'account.statement.line', 'related_to', "Statement Lines",
|
||||
readonly=True)
|
||||
|
||||
@property
|
||||
def clearing_lines(self):
|
||||
clearing_account = self.journal.clearing_account
|
||||
yield from super().clearing_lines
|
||||
for statement_line in self.statement_lines:
|
||||
if statement_line.move:
|
||||
for line in statement_line.move.lines:
|
||||
if line.account == clearing_account:
|
||||
yield line
|
||||
|
||||
|
||||
class Statement(metaclass=PoolMeta):
|
||||
__name__ = 'account.statement'
|
||||
|
||||
@classmethod
|
||||
def _process_payments(cls, moves):
|
||||
pool = Pool()
|
||||
Payment = pool.get('account.payment')
|
||||
|
||||
payments = super()._process_payments(moves)
|
||||
|
||||
if payments:
|
||||
Payment.__queue__.reconcile_clearing(payments)
|
||||
return payments
|
||||
|
||||
def _group_key(self, line):
|
||||
key = super()._group_key(line)
|
||||
if hasattr(line, 'payment'):
|
||||
key += (('payment', line.payment),)
|
||||
return key
|
||||
|
||||
|
||||
class StatementLine(metaclass=PoolMeta):
|
||||
__name__ = 'account.statement.line'
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
cls.related_to.domain['account.payment'] = [
|
||||
cls.related_to.domain.get('account.payment', []),
|
||||
If(Eval('statement_state') == 'draft',
|
||||
('clearing_reconciled', '!=', True),
|
||||
()),
|
||||
]
|
||||
cls.related_to.domain['account.payment.group'] = [
|
||||
('company', '=', Eval('company', -1)),
|
||||
If(Eval('second_currency'),
|
||||
('currency', '=', Eval('second_currency', -1)),
|
||||
('currency', '=', Eval('currency', -1))),
|
||||
If(Eval('statement_state') == 'draft',
|
||||
('clearing_reconciled', '!=', True),
|
||||
()),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def __register__(cls, module):
|
||||
table = cls.__table__()
|
||||
|
||||
super().__register__(module)
|
||||
|
||||
table_h = cls.__table_handler__(module)
|
||||
cursor = Transaction().connection.cursor()
|
||||
|
||||
# Migration from 6.2: replace payment by related_to
|
||||
if table_h.column_exist('payment'):
|
||||
cursor.execute(*table.update(
|
||||
[table.related_to],
|
||||
[Concat('account.payment,', table.payment)],
|
||||
where=table.payment != Null))
|
||||
table_h.drop_column('payment')
|
||||
|
||||
# Migration from 6.2: replace payment_group by related_to
|
||||
if table_h.column_exist('payment_group'):
|
||||
cursor.execute(*table.update(
|
||||
[table.related_to],
|
||||
[Concat('account.payment.group,', table.payment_group)],
|
||||
where=table.payment_group != Null))
|
||||
table_h.drop_column('payment_group')
|
||||
|
||||
@classmethod
|
||||
def _get_relations(cls):
|
||||
return super()._get_relations() + ['account.payment.group']
|
||||
|
||||
@property
|
||||
@fields.depends('related_to')
|
||||
def payment_group(self):
|
||||
pool = Pool()
|
||||
PaymentGroup = pool.get('account.payment.group')
|
||||
related_to = getattr(self, 'related_to', None)
|
||||
if isinstance(related_to, PaymentGroup) and related_to.id >= 0:
|
||||
return related_to
|
||||
|
||||
@payment_group.setter
|
||||
def payment_group(self, value):
|
||||
self.related_to = value
|
||||
|
||||
@fields.depends(methods=['payment', 'payment_group'])
|
||||
def on_change_related_to(self):
|
||||
super().on_change_related_to()
|
||||
if self.payment:
|
||||
clearing_account = self.payment.journal.clearing_account
|
||||
if clearing_account:
|
||||
self.account = clearing_account
|
||||
if self.payment_group:
|
||||
self.party = None
|
||||
clearing_account = self.payment_group.journal.clearing_account
|
||||
if clearing_account:
|
||||
self.account = clearing_account
|
||||
|
||||
def payments(self):
|
||||
yield from super().payments()
|
||||
if self.payment_group:
|
||||
yield self.payment_group.kind, self.payment_group.payments
|
||||
|
||||
@fields.depends('party', methods=['payment'])
|
||||
def on_change_party(self):
|
||||
super().on_change_party()
|
||||
if self.party:
|
||||
self.payment_group = None
|
||||
|
||||
@fields.depends('account', methods=['payment', 'payment_group'])
|
||||
def on_change_account(self):
|
||||
super().on_change_account()
|
||||
if self.payment:
|
||||
clearing_account = self.payment.journal.clearing_account
|
||||
elif self.payment_group:
|
||||
clearing_account = self.payment_group.journal.clearing_account
|
||||
else:
|
||||
return
|
||||
if self.account != clearing_account:
|
||||
self.payment = None
|
||||
|
||||
@classmethod
|
||||
def post_move(cls, lines):
|
||||
pool = Pool()
|
||||
Move = pool.get('account.move')
|
||||
super().post_move(lines)
|
||||
Move.post([l.payment.clearing_move for l in lines
|
||||
if l.payment
|
||||
and l.payment.clearing_move
|
||||
and l.payment.clearing_move.state == 'draft'])
|
||||
|
||||
|
||||
class StatementRule(metaclass=PoolMeta):
|
||||
__name__ = 'account.statement.rule'
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
cls.description.help += "\n'payment_group'"
|
||||
|
||||
|
||||
class StatementRuleLine(metaclass=PoolMeta):
|
||||
__name__ = 'account.statement.rule.line'
|
||||
|
||||
def _get_related_to(self, origin, keywords, party=None, amount=0):
|
||||
return super()._get_related_to(
|
||||
origin, keywords, party=party, amount=amount) | {
|
||||
self._get_payment_group(origin, keywords),
|
||||
}
|
||||
|
||||
def _get_account_from(self, related_to):
|
||||
pool = Pool()
|
||||
Payment = pool.get('account.payment')
|
||||
PaymentGroup = pool.get('account.payment.group')
|
||||
account = super()._get_account_from(related_to)
|
||||
if isinstance(related_to, (Payment, PaymentGroup)):
|
||||
account = related_to.journal.clearing_account
|
||||
return account
|
||||
|
||||
@classmethod
|
||||
def _get_payment_domain(cls, payment, origin):
|
||||
return [
|
||||
super()._get_payment_domain(payment, origin),
|
||||
('clearing_reconciled', '!=', True),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def _get_payment_group_domain(cls, payment_group, origin):
|
||||
return [
|
||||
('rec_name', '=', payment_group),
|
||||
('company', '=', origin.company.id),
|
||||
('currency', '=', origin.currency.id),
|
||||
('clearing_reconciled', '!=', True),
|
||||
]
|
||||
|
||||
def _get_payment_group(self, origin, keywords):
|
||||
pool = Pool()
|
||||
PaymentGroup = pool.get('account.payment.group')
|
||||
if keywords.get('payment_group'):
|
||||
domain = self._get_payment_group_domain(
|
||||
keywords['payment_group'], origin)
|
||||
groups = PaymentGroup.search(domain)
|
||||
if len(groups) == 1:
|
||||
group, = groups
|
||||
return group
|
||||
2
modules/account_payment_clearing/tests/__init__.py
Normal file
2
modules/account_payment_clearing/tests/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,109 @@
|
||||
==================================
|
||||
Negative Payment Clearing Scenario
|
||||
==================================
|
||||
|
||||
Imports::
|
||||
|
||||
>>> import datetime as dt
|
||||
>>> from decimal import Decimal
|
||||
|
||||
>>> from proteus import Model, Wizard
|
||||
>>> from trytond.modules.account.tests.tools import (
|
||||
... create_chart, create_fiscalyear, get_accounts)
|
||||
>>> from trytond.modules.company.tests.tools import create_company
|
||||
>>> from trytond.tests.tools import activate_modules
|
||||
|
||||
>>> today = dt.date.today()
|
||||
|
||||
Activate modules::
|
||||
|
||||
>>> config = activate_modules(
|
||||
... 'account_payment_clearing', create_company, create_chart)
|
||||
|
||||
Create fiscal year::
|
||||
|
||||
>>> fiscalyear = create_fiscalyear()
|
||||
>>> fiscalyear.click('create_period')
|
||||
|
||||
Get accounts::
|
||||
|
||||
>>> accounts = get_accounts()
|
||||
>>> receivable = accounts['receivable']
|
||||
>>> payable = accounts['payable']
|
||||
>>> cash = accounts['cash']
|
||||
>>> expense = accounts['expense']
|
||||
|
||||
>>> Account = Model.get('account.account')
|
||||
>>> bank_clearing = Account(parent=payable.parent)
|
||||
>>> bank_clearing.name = 'Bank Clearing'
|
||||
>>> bank_clearing.type = payable.type
|
||||
>>> bank_clearing.reconcile = True
|
||||
>>> bank_clearing.deferral = True
|
||||
>>> bank_clearing.save()
|
||||
|
||||
>>> Journal = Model.get('account.journal')
|
||||
>>> expense_journal, = Journal.find([('code', '=', 'EXP')])
|
||||
|
||||
Create payment journal::
|
||||
|
||||
>>> PaymentJournal = Model.get('account.payment.journal')
|
||||
>>> payment_journal = PaymentJournal(name='Manual',
|
||||
... process_method='manual', clearing_journal=expense_journal,
|
||||
... clearing_account=bank_clearing)
|
||||
>>> payment_journal.save()
|
||||
|
||||
Create parties::
|
||||
|
||||
>>> Party = Model.get('party.party')
|
||||
>>> supplier = Party(name='Supplier')
|
||||
>>> supplier.save()
|
||||
|
||||
Create payable move::
|
||||
|
||||
>>> Move = Model.get('account.move')
|
||||
>>> move = Move()
|
||||
>>> move.journal = expense_journal
|
||||
>>> line = move.lines.new(
|
||||
... account=payable, party=supplier, maturity_date=today,
|
||||
... debit=Decimal('-50.00'))
|
||||
>>> line = move.lines.new(account=expense, credit=Decimal('-50.00'))
|
||||
>>> move.click('post')
|
||||
>>> payable.reload()
|
||||
>>> payable.balance
|
||||
Decimal('-50.00')
|
||||
|
||||
Pay the line::
|
||||
|
||||
>>> Payment = Model.get('account.payment')
|
||||
>>> line, = [l for l in move.lines if l.account == payable]
|
||||
>>> pay_line = Wizard('account.move.line.pay', [line])
|
||||
>>> pay_line.execute('next_')
|
||||
>>> pay_line.form.journal = payment_journal
|
||||
>>> pay_line.execute('next_')
|
||||
>>> payment, = Payment.find([('state', '=', 'draft')])
|
||||
>>> payment.amount
|
||||
Decimal('50.00')
|
||||
>>> payment.click('submit')
|
||||
>>> payment.click('approve')
|
||||
>>> payment.state
|
||||
'approved'
|
||||
>>> process_payment = payment.click('process_wizard')
|
||||
>>> payment.state
|
||||
'processing'
|
||||
|
||||
Succeed payment::
|
||||
|
||||
>>> succeed = payment.click('succeed_wizard')
|
||||
>>> succeed.execute('succeed')
|
||||
>>> payment.state
|
||||
'succeeded'
|
||||
>>> payment.clearing_move.state
|
||||
'draft'
|
||||
>>> payable.reload()
|
||||
>>> payable.balance
|
||||
Decimal('0.00')
|
||||
>>> bank_clearing.reload()
|
||||
>>> bank_clearing.balance
|
||||
Decimal('-50.00')
|
||||
>>> bool(payment.line.reconciliation)
|
||||
True
|
||||
@@ -0,0 +1,476 @@
|
||||
=========================
|
||||
Payment Clearing Scenario
|
||||
=========================
|
||||
|
||||
Imports::
|
||||
|
||||
>>> import datetime as dt
|
||||
>>> from decimal import Decimal
|
||||
|
||||
>>> from proteus import Model, Wizard
|
||||
>>> from trytond.modules.account.tests.tools import (
|
||||
... create_chart, create_fiscalyear, get_accounts)
|
||||
>>> from trytond.modules.account_invoice.tests.tools import (
|
||||
... set_fiscalyear_invoice_sequences)
|
||||
>>> from trytond.modules.company.tests.tools import create_company, get_company
|
||||
>>> from trytond.modules.currency.tests.tools import get_currency
|
||||
>>> from trytond.tests.tools import activate_modules, assertEqual
|
||||
|
||||
>>> today = dt.date.today()
|
||||
>>> yesterday = today - dt.timedelta(days=1)
|
||||
>>> first = today + dt.timedelta(days=1)
|
||||
|
||||
Activate modules::
|
||||
|
||||
>>> config = activate_modules(
|
||||
... ['account_payment_clearing', 'account_statement'],
|
||||
... create_company, create_chart)
|
||||
|
||||
Get company::
|
||||
|
||||
>>> company = get_company()
|
||||
|
||||
Create fiscal year::
|
||||
|
||||
>>> fiscalyear = set_fiscalyear_invoice_sequences(
|
||||
... create_fiscalyear(today=(yesterday, first)))
|
||||
>>> fiscalyear.click('create_period')
|
||||
|
||||
Get accounts::
|
||||
|
||||
>>> accounts = get_accounts()
|
||||
>>> receivable = accounts['receivable']
|
||||
>>> revenue = accounts['revenue']
|
||||
>>> expense = accounts['expense']
|
||||
>>> payable = accounts['payable']
|
||||
>>> cash = accounts['cash']
|
||||
|
||||
>>> Account = Model.get('account.account')
|
||||
>>> bank_clearing = Account(parent=payable.parent)
|
||||
>>> bank_clearing.name = 'Bank Clearing'
|
||||
>>> bank_clearing.type = payable.type
|
||||
>>> bank_clearing.reconcile = True
|
||||
>>> bank_clearing.deferral = True
|
||||
>>> bank_clearing.save()
|
||||
|
||||
>>> Journal = Model.get('account.journal')
|
||||
>>> expense_journal, = Journal.find([('code', '=', 'EXP')])
|
||||
>>> revenue_journal, = Journal.find([('code', '=', 'REV')])
|
||||
|
||||
Create payment journal::
|
||||
|
||||
>>> PaymentJournal = Model.get('account.payment.journal')
|
||||
>>> payment_journal = PaymentJournal(name='Manual',
|
||||
... process_method='manual',
|
||||
... clearing_journal=expense_journal,
|
||||
... clearing_account=bank_clearing,
|
||||
... clearing_posting_delay=dt.timedelta(1))
|
||||
>>> payment_journal.save()
|
||||
|
||||
Create parties::
|
||||
|
||||
>>> Party = Model.get('party.party')
|
||||
>>> supplier = Party(name='Supplier')
|
||||
>>> supplier.save()
|
||||
>>> customer = Party(name='Customer')
|
||||
>>> customer.save()
|
||||
|
||||
Create payable move::
|
||||
|
||||
>>> Move = Model.get('account.move')
|
||||
>>> move = Move()
|
||||
>>> move.journal = expense_journal
|
||||
>>> line = move.lines.new(
|
||||
... account=payable, party=supplier, maturity_date=today,
|
||||
... credit=Decimal('50.00'))
|
||||
>>> line = move.lines.new(account=expense, debit=Decimal('50.00'))
|
||||
>>> move.click('post')
|
||||
>>> payable.reload()
|
||||
>>> payable.balance
|
||||
Decimal('-50.00')
|
||||
|
||||
Partially pay the line::
|
||||
|
||||
>>> Payment = Model.get('account.payment')
|
||||
>>> line, = [l for l in move.lines if l.account == payable]
|
||||
>>> pay_line = Wizard('account.move.line.pay', [line])
|
||||
>>> pay_line.execute('next_')
|
||||
>>> pay_line.form.journal = payment_journal
|
||||
>>> pay_line.execute('next_')
|
||||
>>> payment, = Payment.find()
|
||||
>>> payment.amount = Decimal('30.0')
|
||||
>>> payment.click('submit')
|
||||
>>> payment.click('approve')
|
||||
>>> payment.state
|
||||
'approved'
|
||||
>>> process_payment = payment.click('process_wizard')
|
||||
>>> payment.state
|
||||
'processing'
|
||||
|
||||
Succeed payment::
|
||||
|
||||
>>> succeed = payment.click('succeed_wizard')
|
||||
>>> succeed.form.date = first
|
||||
>>> succeed.execute('succeed')
|
||||
>>> payment.state
|
||||
'succeeded'
|
||||
>>> assertEqual(payment.clearing_move.date, first)
|
||||
>>> payment.clearing_move.state
|
||||
'draft'
|
||||
>>> bool(payment.clearing_reconciled)
|
||||
False
|
||||
>>> payable.reload()
|
||||
>>> payable.balance
|
||||
Decimal('-20.00')
|
||||
>>> bank_clearing.reload()
|
||||
>>> bank_clearing.balance
|
||||
Decimal('-30.00')
|
||||
>>> payment.line.reconciliation
|
||||
|
||||
Fail payment::
|
||||
|
||||
>>> payment.click('fail')
|
||||
>>> payment.state
|
||||
'failed'
|
||||
>>> payment.clearing_move
|
||||
>>> bool(payment.clearing_reconciled)
|
||||
False
|
||||
>>> payment.line.reconciliation
|
||||
>>> payable.reload()
|
||||
>>> payable.balance
|
||||
Decimal('-50.00')
|
||||
>>> bank_clearing.reload()
|
||||
>>> bank_clearing.balance
|
||||
Decimal('0.00')
|
||||
|
||||
Pay the line::
|
||||
|
||||
>>> line, = [l for l in move.lines if l.account == payable]
|
||||
>>> pay_line = Wizard('account.move.line.pay', [line])
|
||||
>>> pay_line.execute('next_')
|
||||
>>> pay_line.form.journal = payment_journal
|
||||
>>> pay_line.execute('next_')
|
||||
>>> payment, = Payment.find([('state', '=', 'draft')])
|
||||
>>> payment.amount
|
||||
Decimal('50.00')
|
||||
>>> payment.click('submit')
|
||||
>>> payment.click('approve')
|
||||
>>> payment.state
|
||||
'approved'
|
||||
>>> process_payment = payment.click('process_wizard')
|
||||
>>> payment.state
|
||||
'processing'
|
||||
|
||||
Succeed payment::
|
||||
|
||||
>>> succeed = payment.click('succeed_wizard')
|
||||
>>> succeed.execute('succeed')
|
||||
>>> payment.state
|
||||
'succeeded'
|
||||
>>> payment.clearing_move.state
|
||||
'draft'
|
||||
>>> payable.reload()
|
||||
>>> payable.balance
|
||||
Decimal('0.00')
|
||||
>>> bank_clearing.reload()
|
||||
>>> bank_clearing.balance
|
||||
Decimal('-50.00')
|
||||
>>> bool(payment.line.reconciliation)
|
||||
True
|
||||
|
||||
Fail payment::
|
||||
|
||||
>>> payment.click('fail')
|
||||
>>> payment.state
|
||||
'failed'
|
||||
>>> payment.clearing_move
|
||||
>>> payment.line.reconciliation
|
||||
|
||||
Succeed payment and post clearing::
|
||||
|
||||
>>> succeed = payment.click('succeed_wizard')
|
||||
>>> succeed.form.date = yesterday
|
||||
>>> succeed.execute('succeed')
|
||||
>>> payment.state
|
||||
'succeeded'
|
||||
|
||||
>>> Cron = Model.get('ir.cron')
|
||||
>>> Company = Model.get('company.company')
|
||||
>>> cron_post_clearing_moves, = Cron.find([
|
||||
... ('method', '=',
|
||||
... 'account.payment.journal|cron_post_clearing_moves'),
|
||||
... ])
|
||||
>>> cron_post_clearing_moves.companies.append(Company(company.id))
|
||||
>>> cron_post_clearing_moves.click('run_once')
|
||||
|
||||
>>> payment.reload()
|
||||
>>> clearing_move = payment.clearing_move
|
||||
>>> clearing_move.state
|
||||
'posted'
|
||||
|
||||
Fail payment with posted clearing::
|
||||
|
||||
>>> payment.click('fail')
|
||||
>>> payment.state
|
||||
'failed'
|
||||
>>> payment.clearing_move
|
||||
>>> bool(payment.clearing_reconciled)
|
||||
False
|
||||
>>> payment.line.reconciliation
|
||||
>>> clearing_move.reload()
|
||||
>>> line, = [l for l in clearing_move.lines
|
||||
... if l.account == payment.line.account]
|
||||
>>> bool(line.reconciliation)
|
||||
True
|
||||
|
||||
Succeed payment to use on statement::
|
||||
|
||||
>>> succeed = payment.click('succeed_wizard')
|
||||
>>> succeed.execute('succeed')
|
||||
>>> payment.state
|
||||
'succeeded'
|
||||
|
||||
Create statement::
|
||||
|
||||
>>> StatementJournal = Model.get('account.statement.journal')
|
||||
>>> Statement = Model.get('account.statement')
|
||||
|
||||
>>> account_journal, = Journal.find([('code', '=', 'STA')], limit=1)
|
||||
>>> statement_journal = StatementJournal(name='Test',
|
||||
... journal=account_journal,
|
||||
... account=cash,
|
||||
... )
|
||||
>>> statement_journal.save()
|
||||
|
||||
>>> statement = Statement(name='test',
|
||||
... journal=statement_journal,
|
||||
... start_balance=Decimal('0.00'),
|
||||
... end_balance=Decimal('-50.00'),
|
||||
... )
|
||||
|
||||
Create a line for the payment::
|
||||
|
||||
>>> line = statement.lines.new(date=today)
|
||||
>>> line.amount = Decimal('-50.00')
|
||||
>>> line.related_to = payment
|
||||
>>> assertEqual(line.party, supplier)
|
||||
>>> assertEqual(line.account, bank_clearing)
|
||||
|
||||
Remove the party must remove payment::
|
||||
|
||||
>>> line.party = None
|
||||
>>> line.related_to
|
||||
|
||||
>>> line.related_to = payment
|
||||
|
||||
Change account must remove payment::
|
||||
|
||||
>>> line.account = receivable
|
||||
>>> line.related_to
|
||||
|
||||
>>> line.account = None
|
||||
>>> line.related_to = payment
|
||||
|
||||
Validate statement::
|
||||
|
||||
>>> statement.click('validate_statement')
|
||||
>>> statement.state
|
||||
'validated'
|
||||
>>> line, = statement.lines
|
||||
>>> move_line, = [l for l in line.move.lines
|
||||
... if l.account == bank_clearing]
|
||||
>>> bool(move_line.reconciliation)
|
||||
True
|
||||
>>> bank_clearing.reload()
|
||||
>>> bank_clearing.balance
|
||||
Decimal('0.00')
|
||||
>>> payment.reload()
|
||||
>>> bool(payment.clearing_reconciled)
|
||||
True
|
||||
>>> bool(payment.group.clearing_reconciled)
|
||||
True
|
||||
|
||||
Unreconcile payment clearing to allow reimbursement::
|
||||
|
||||
>>> move_line.reconciliation.delete()
|
||||
>>> payment.reload()
|
||||
>>> bool(payment.clearing_reconciled)
|
||||
False
|
||||
>>> bool(payment.group.clearing_reconciled)
|
||||
False
|
||||
|
||||
Create a statement that reimburse the payment group::
|
||||
|
||||
>>> statement = Statement(name='test',
|
||||
... journal=statement_journal,
|
||||
... start_balance=Decimal('-50.00'),
|
||||
... end_balance=Decimal('0.00'),
|
||||
... )
|
||||
>>> line = statement.lines.new(date=today)
|
||||
>>> line.related_to = payment.group
|
||||
>>> assertEqual(line.account, bank_clearing)
|
||||
>>> line.amount = Decimal('50.00')
|
||||
|
||||
>>> statement.click('validate_statement')
|
||||
>>> statement.state
|
||||
'validated'
|
||||
|
||||
Payment must be failed::
|
||||
|
||||
>>> payment.reload()
|
||||
>>> payment.state
|
||||
'failed'
|
||||
|
||||
|
||||
Payment in a foreign currency
|
||||
-----------------------------
|
||||
|
||||
Create a payment journal in Euro::
|
||||
|
||||
>>> euro = get_currency('EUR')
|
||||
>>> euro_payment_journal = PaymentJournal(
|
||||
... name='Euro Payments', process_method='manual', currency=euro,
|
||||
... clearing_journal=expense_journal, clearing_account=bank_clearing)
|
||||
>>> euro_payment_journal.save()
|
||||
|
||||
Create a payable move::
|
||||
|
||||
>>> move = Move()
|
||||
>>> move.journal = expense_journal
|
||||
>>> line = move.lines.new(
|
||||
... account=payable, party=supplier, maturity_date=today,
|
||||
... credit=Decimal('20.00'),
|
||||
... amount_second_currency=Decimal('-40.00'), second_currency=euro)
|
||||
>>> line = move.lines.new(
|
||||
... account=expense, debit=Decimal('20.00'),
|
||||
... amount_second_currency=Decimal('40.00'), second_currency=euro)
|
||||
>>> move.click('post')
|
||||
|
||||
Pay the line::
|
||||
|
||||
>>> line, = [l for l in move.lines if l.account == payable]
|
||||
>>> pay_line = Wizard('account.move.line.pay', [line])
|
||||
>>> pay_line.execute('next_')
|
||||
>>> pay_line.form.journal = euro_payment_journal
|
||||
>>> pay_line.execute('next_')
|
||||
>>> payment, = Payment.find([('state', '=', 'draft')])
|
||||
>>> payment.amount
|
||||
Decimal('40.00')
|
||||
>>> payment.click('submit')
|
||||
>>> payment.click('approve')
|
||||
>>> process_payment = payment.click('process_wizard')
|
||||
>>> payment.state
|
||||
'processing'
|
||||
|
||||
Succeed payment::
|
||||
|
||||
>>> succeed = payment.click('succeed_wizard')
|
||||
>>> succeed.execute('succeed')
|
||||
>>> debit_line, = [l for l in payment.clearing_move.lines if l.debit > 0]
|
||||
>>> debit_line.debit
|
||||
Decimal('20.00')
|
||||
>>> debit_line.amount_second_currency
|
||||
Decimal('40.00')
|
||||
|
||||
Create receivable move::
|
||||
|
||||
>>> move = Move()
|
||||
>>> move.journal = revenue_journal
|
||||
>>> line = move.lines.new(
|
||||
... account=receivable, party=customer, maturity_date=today,
|
||||
... debit=Decimal('50.00'), second_currency=euro,
|
||||
... amount_second_currency=Decimal('100.0'))
|
||||
>>> line = move.lines.new(account=revenue, credit=Decimal('50.00'))
|
||||
>>> move.click('post')
|
||||
>>> receivable.reload()
|
||||
>>> receivable.balance
|
||||
Decimal('50.00')
|
||||
|
||||
Pay the line::
|
||||
|
||||
>>> Payment = Model.get('account.payment')
|
||||
>>> line, = [l for l in move.lines if l.account == receivable]
|
||||
>>> pay_line = Wizard('account.move.line.pay', [line])
|
||||
>>> pay_line.execute('next_')
|
||||
>>> pay_line.form.journal = euro_payment_journal
|
||||
>>> pay_line.execute('next_')
|
||||
>>> payment, = Payment.find([('state', '=', 'draft')])
|
||||
>>> payment.amount
|
||||
Decimal('100.0')
|
||||
>>> payment.click('submit')
|
||||
>>> process_payment = payment.click('process_wizard')
|
||||
>>> payment.state
|
||||
'processing'
|
||||
|
||||
Succeed payment::
|
||||
|
||||
>>> succeed = payment.click('succeed_wizard')
|
||||
>>> succeed.execute('succeed')
|
||||
>>> credit_line, = [l for l in payment.clearing_move.lines if l.credit > 0]
|
||||
>>> credit_line.credit
|
||||
Decimal('50.00')
|
||||
>>> credit_line.amount_second_currency
|
||||
Decimal('-100.0')
|
||||
|
||||
Validate Statement with processing payment
|
||||
--------------------------------------------
|
||||
|
||||
Create a payable move::
|
||||
|
||||
>>> move = Move()
|
||||
>>> move.journal = expense_journal
|
||||
>>> line = move.lines.new(
|
||||
... account=payable, party=supplier, maturity_date=today,
|
||||
... credit=Decimal('50.00'))
|
||||
>>> line = move.lines.new(account=expense, debit=Decimal('50.00'))
|
||||
>>> move.click('post')
|
||||
|
||||
Create a processing payment for the move::
|
||||
|
||||
>>> Payment = Model.get('account.payment')
|
||||
>>> line, = [l for l in move.lines if l.account == payable]
|
||||
>>> pay_line = Wizard('account.move.line.pay', [line])
|
||||
>>> pay_line.execute('next_')
|
||||
>>> pay_line.form.journal = payment_journal
|
||||
>>> pay_line.execute('next_')
|
||||
>>> payment, = Payment.find([('line', '=', line.id)])
|
||||
>>> payment.click('submit')
|
||||
>>> payment.click('approve')
|
||||
>>> payment.state
|
||||
'approved'
|
||||
>>> process_payment = payment.click('process_wizard')
|
||||
>>> payment.state
|
||||
'processing'
|
||||
|
||||
Create statement for the payment::
|
||||
|
||||
>>> statement = Statement(name='test',
|
||||
... journal=statement_journal,
|
||||
... start_balance=Decimal('0.00'),
|
||||
... end_balance=Decimal('-50.00'))
|
||||
>>> line = statement.lines.new(date=yesterday)
|
||||
>>> line.amount = Decimal('-50.00')
|
||||
>>> line.related_to = payment
|
||||
>>> assertEqual(line.party, supplier)
|
||||
>>> assertEqual(line.account, bank_clearing)
|
||||
>>> statement.save()
|
||||
|
||||
Validate statement and check the payment is confirmed::
|
||||
|
||||
>>> statement.click('validate_statement')
|
||||
>>> statement.state
|
||||
'validated'
|
||||
>>> line, = statement.lines
|
||||
>>> move_line, = [l for l in line.move.lines
|
||||
... if l.account == bank_clearing]
|
||||
>>> bool(move_line.reconciliation)
|
||||
True
|
||||
>>> payment.reload()
|
||||
>>> payment.state
|
||||
'succeeded'
|
||||
>>> bool(payment.clearing_reconciled)
|
||||
True
|
||||
>>> debit_line, = [l for l in payment.clearing_move.lines if l.debit > 0]
|
||||
>>> debit_line.debit
|
||||
Decimal('50.00')
|
||||
>>> assertEqual(debit_line.date, yesterday)
|
||||
@@ -0,0 +1,169 @@
|
||||
======================================
|
||||
Payment Clearing Invoice Amount to Pay
|
||||
======================================
|
||||
|
||||
Imports::
|
||||
|
||||
>>> from decimal import Decimal
|
||||
|
||||
>>> from proteus import Model, Wizard
|
||||
>>> from trytond.modules.account.tests.tools import (
|
||||
... create_chart, create_fiscalyear, get_accounts)
|
||||
>>> from trytond.modules.account_invoice.tests.tools import (
|
||||
... set_fiscalyear_invoice_sequences)
|
||||
>>> from trytond.modules.company.tests.tools import create_company
|
||||
>>> from trytond.tests.tools import activate_modules
|
||||
|
||||
Activate modules::
|
||||
|
||||
>>> config = activate_modules(
|
||||
... ['account_payment_clearing', 'account_invoice'],
|
||||
... create_company, create_chart)
|
||||
|
||||
Create fiscal year::
|
||||
|
||||
>>> fiscalyear = set_fiscalyear_invoice_sequences(
|
||||
... create_fiscalyear())
|
||||
>>> fiscalyear.click('create_period')
|
||||
|
||||
Get accounts::
|
||||
|
||||
>>> accounts = get_accounts()
|
||||
>>> receivable = accounts['receivable']
|
||||
>>> revenue = accounts['revenue']
|
||||
>>> expense = accounts['expense']
|
||||
>>> payable = accounts['payable']
|
||||
>>> cash = accounts['cash']
|
||||
|
||||
>>> Account = Model.get('account.account')
|
||||
>>> bank_clearing = Account(parent=payable.parent)
|
||||
>>> bank_clearing.name = 'Bank Clearing'
|
||||
>>> bank_clearing.type = payable.type
|
||||
>>> bank_clearing.reconcile = True
|
||||
>>> bank_clearing.deferral = True
|
||||
>>> bank_clearing.save()
|
||||
|
||||
>>> Journal = Model.get('account.journal')
|
||||
>>> expense_journal, = Journal.find([('code', '=', 'EXP')])
|
||||
>>> revenue_journal, = Journal.find([('code', '=', 'REV')])
|
||||
|
||||
Create payment journal::
|
||||
|
||||
>>> PaymentJournal = Model.get('account.payment.journal')
|
||||
>>> payment_journal = PaymentJournal(name='No Clearing',
|
||||
... process_method='manual')
|
||||
>>> payment_journal.save()
|
||||
>>> clearing_journal = PaymentJournal(name='Clearing',
|
||||
... process_method='manual',
|
||||
... clearing_journal=expense_journal,
|
||||
... clearing_account=bank_clearing)
|
||||
>>> clearing_journal.save()
|
||||
|
||||
Create parties::
|
||||
|
||||
>>> Party = Model.get('party.party')
|
||||
>>> supplier = Party(name='Supplier')
|
||||
>>> supplier.save()
|
||||
>>> customer = Party(name='Customer')
|
||||
>>> customer.save()
|
||||
|
||||
Create and pay an invoice without clearing::
|
||||
|
||||
>>> Invoice = Model.get('account.invoice')
|
||||
>>> invoice = Invoice()
|
||||
>>> invoice.party = customer
|
||||
>>> line = invoice.lines.new()
|
||||
>>> line.account = revenue
|
||||
>>> line.quantity = 1
|
||||
>>> line.unit_price = Decimal('100')
|
||||
>>> invoice.save()
|
||||
>>> invoice.click('post')
|
||||
>>> invoice.amount_to_pay
|
||||
Decimal('100.00')
|
||||
|
||||
>>> paid_line, = [l for l in invoice.move.lines if l.account == receivable]
|
||||
>>> pay_line = Wizard('account.move.line.pay', [paid_line])
|
||||
>>> pay_line.execute('next_')
|
||||
>>> pay_line.form.journal = payment_journal
|
||||
>>> pay_line.execute('next_')
|
||||
|
||||
>>> Payment = Model.get('account.payment')
|
||||
>>> payment, = Payment.find()
|
||||
>>> payment.click('submit')
|
||||
>>> payment.state
|
||||
'submitted'
|
||||
>>> process_payment = payment.click('process_wizard')
|
||||
>>> succeed = payment.click('succeed_wizard')
|
||||
>>> succeed.execute('succeed')
|
||||
|
||||
>>> invoice.reload()
|
||||
>>> invoice.state
|
||||
'posted'
|
||||
>>> invoice.amount_to_pay
|
||||
Decimal('0.00')
|
||||
|
||||
Create an invoice and pay it::
|
||||
|
||||
>>> invoice1 = Invoice()
|
||||
>>> invoice1.party = customer
|
||||
>>> line = invoice1.lines.new()
|
||||
>>> line.account = revenue
|
||||
>>> line.quantity = 1
|
||||
>>> line.unit_price = Decimal('100')
|
||||
>>> invoice1.save()
|
||||
>>> invoice1.click('post')
|
||||
>>> invoice1.amount_to_pay
|
||||
Decimal('100.00')
|
||||
|
||||
>>> paid_line, = [l for l in invoice1.move.lines if l.account == receivable]
|
||||
>>> pay_line = Wizard('account.move.line.pay', [paid_line])
|
||||
>>> pay_line.execute('next_')
|
||||
>>> pay_line.form.journal = clearing_journal
|
||||
>>> pay_line.execute('next_')
|
||||
|
||||
>>> payment, = Payment.find([('state', '=', 'draft')])
|
||||
>>> payment.click('submit')
|
||||
>>> payment.state
|
||||
'submitted'
|
||||
>>> process_payment = payment.click('process_wizard')
|
||||
>>> succeed = payment.click('succeed_wizard')
|
||||
>>> succeed.execute('succeed')
|
||||
|
||||
>>> invoice1.reload()
|
||||
>>> invoice1.state
|
||||
'paid'
|
||||
>>> invoice1.amount_to_pay
|
||||
Decimal('0')
|
||||
|
||||
Unreconcile the payment line and check the amount to pay::
|
||||
|
||||
>>> other_line, = [l for l in paid_line.reconciliation.lines
|
||||
... if l != paid_line]
|
||||
>>> unreconcile = Wizard('account.move.unreconcile_lines', [paid_line])
|
||||
>>> invoice1.reload()
|
||||
>>> invoice1.state
|
||||
'posted'
|
||||
>>> invoice1.amount_to_pay
|
||||
Decimal('0.00')
|
||||
|
||||
Create a second invoice and reconcile its line to pay with the payment::
|
||||
|
||||
>>> invoice2 = Invoice()
|
||||
>>> invoice2.party = customer
|
||||
>>> line = invoice2.lines.new()
|
||||
>>> line.account = revenue
|
||||
>>> line.quantity = 1
|
||||
>>> line.unit_price = Decimal('100')
|
||||
>>> invoice2.save()
|
||||
>>> invoice2.click('post')
|
||||
|
||||
>>> inv2_line, = [l for l in invoice2.move.lines if l.account == receivable]
|
||||
>>> reconcile = Wizard(
|
||||
... 'account.move.reconcile_lines', [inv2_line, other_line])
|
||||
|
||||
>>> invoice1.reload()
|
||||
>>> invoice1.amount_to_pay
|
||||
Decimal('100.00')
|
||||
>>> invoice2.reload()
|
||||
>>> invoice2.amount_to_pay
|
||||
Decimal('0')
|
||||
@@ -0,0 +1,144 @@
|
||||
=====================================================
|
||||
Account Payment Clearing with Statement Rule Scenario
|
||||
=====================================================
|
||||
|
||||
Imports::
|
||||
|
||||
>>> import datetime as dt
|
||||
>>> from decimal import Decimal
|
||||
|
||||
>>> from proteus import Model
|
||||
>>> from trytond.modules.account.tests.tools import (
|
||||
... create_chart, create_fiscalyear, get_accounts)
|
||||
>>> from trytond.modules.account_invoice.tests.tools import (
|
||||
... set_fiscalyear_invoice_sequences)
|
||||
>>> from trytond.modules.company.tests.tools import create_company
|
||||
>>> from trytond.tests.tools import activate_modules, assertEqual
|
||||
|
||||
>>> today = dt.date.today()
|
||||
|
||||
Activate modules::
|
||||
|
||||
>>> config = activate_modules(
|
||||
... ['account_payment_clearing',
|
||||
... 'account_statement', 'account_statement_rule'],
|
||||
... create_company, create_chart)
|
||||
|
||||
>>> Account = Model.get('account.account')
|
||||
>>> AccountJournal = Model.get('account.journal')
|
||||
>>> Party = Model.get('party.party')
|
||||
>>> Payment = Model.get('account.payment')
|
||||
>>> PaymentJournal = Model.get('account.payment.journal')
|
||||
>>> Statement = Model.get('account.statement')
|
||||
>>> StatementJournal = Model.get('account.statement.journal')
|
||||
>>> StatementRule = Model.get('account.statement.rule')
|
||||
|
||||
|
||||
Create fiscal year::
|
||||
|
||||
>>> fiscalyear = set_fiscalyear_invoice_sequences(
|
||||
... create_fiscalyear())
|
||||
>>> fiscalyear.click('create_period')
|
||||
|
||||
Get accounts::
|
||||
|
||||
>>> accounts = get_accounts()
|
||||
|
||||
>>> bank_clearing = Account(parent=accounts['payable'].parent)
|
||||
>>> bank_clearing.name = "Bank Clearing"
|
||||
>>> bank_clearing.type = accounts['payable'].type
|
||||
>>> bank_clearing.reconcile = True
|
||||
>>> bank_clearing.deferral = True
|
||||
>>> bank_clearing.save()
|
||||
|
||||
Create journals::
|
||||
|
||||
>>> expense_journal, = AccountJournal.find([('code', '=', 'EXP')])
|
||||
|
||||
>>> payment_journal = PaymentJournal(
|
||||
... name="Manual",
|
||||
... process_method='manual',
|
||||
... clearing_journal=expense_journal,
|
||||
... clearing_account=bank_clearing)
|
||||
>>> payment_journal.save()
|
||||
|
||||
>>> account_journal, = AccountJournal.find([('code', '=', 'STA')], limit=1)
|
||||
|
||||
>>> statement_journal = StatementJournal(
|
||||
... name="Statement",
|
||||
... journal=account_journal,
|
||||
... validation='amount',
|
||||
... account=accounts['cash'])
|
||||
>>> statement_journal.save()
|
||||
|
||||
Create parties::
|
||||
|
||||
>>> customer = Party(name="Customer")
|
||||
>>> customer.save()
|
||||
|
||||
Create statement rules for payment and group::
|
||||
|
||||
>>> statement_rule = StatementRule(name="Rule Payment")
|
||||
>>> statement_rule.description = r"Payment: *(?P<payment>.*)"
|
||||
>>> statement_line = statement_rule.lines.new()
|
||||
>>> statement_line.amount = "pending"
|
||||
>>> statement_rule.save()
|
||||
|
||||
>>> statement_rule = StatementRule(name="Rule Payment Group")
|
||||
>>> statement_rule.description = r"Payment Group: *(?P<payment_group>.*)"
|
||||
>>> statement_line = statement_rule.lines.new()
|
||||
>>> statement_line.amount = "pending"
|
||||
>>> statement_rule.save()
|
||||
|
||||
Receive 2 payments::
|
||||
|
||||
>>> payment1 = Payment(kind='receivable')
|
||||
>>> payment1.journal = payment_journal
|
||||
>>> payment1.party = customer
|
||||
>>> payment1.amount = Decimal('100.00')
|
||||
>>> payment1.click('submit')
|
||||
>>> process1_payment = payment1.click('process_wizard')
|
||||
>>> payment1.state
|
||||
'processing'
|
||||
|
||||
>>> payment2 = Payment(kind='receivable')
|
||||
>>> payment2.journal = payment_journal
|
||||
>>> payment2.party = customer
|
||||
>>> payment2.amount = Decimal('200.00')
|
||||
>>> payment2.click('submit')
|
||||
>>> process2_payment = payment2.click('process_wizard')
|
||||
>>> payment2.state
|
||||
'processing'
|
||||
|
||||
Create a statement with payment and group as origins::
|
||||
|
||||
>>> statement = Statement(
|
||||
... name="001",
|
||||
... journal=statement_journal,
|
||||
... total_amount=Decimal('300.00'))
|
||||
>>> origin = statement.origins.new()
|
||||
>>> origin.date = today
|
||||
>>> origin.amount = Decimal('100.00')
|
||||
>>> origin.description = "Payment: %s" % payment1.rec_name
|
||||
>>> origin = statement.origins.new()
|
||||
>>> origin.date = today
|
||||
>>> origin.amount = Decimal('200.00')
|
||||
>>> origin.description = "Payment Group: %s" % payment2.group.rec_name
|
||||
>>> statement.click('apply_rules')
|
||||
>>> line1, line2 = statement.lines
|
||||
>>> assertEqual(line1.account, bank_clearing)
|
||||
>>> assertEqual(line1.related_to, payment1)
|
||||
>>> assertEqual(line1.account, bank_clearing)
|
||||
>>> assertEqual(line2.related_to, payment2.group)
|
||||
|
||||
Check payments are succeeded after validation::
|
||||
|
||||
>>> statement.click('validate_statement')
|
||||
>>> statement.state
|
||||
'validated'
|
||||
>>> payment1.reload()
|
||||
>>> payment1.state
|
||||
'succeeded'
|
||||
>>> payment2.reload()
|
||||
>>> payment2.state
|
||||
'succeeded'
|
||||
14
modules/account_payment_clearing/tests/test_module.py
Normal file
14
modules/account_payment_clearing/tests/test_module.py
Normal file
@@ -0,0 +1,14 @@
|
||||
# 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.modules.company.tests import CompanyTestMixin
|
||||
from trytond.tests.test_tryton import ModuleTestCase
|
||||
|
||||
|
||||
class AccountPaymentTestCase(CompanyTestMixin, ModuleTestCase):
|
||||
'Test Account Payment module'
|
||||
module = 'account_payment_clearing'
|
||||
extras = ['account_statement', 'account_statement_rule']
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
8
modules/account_payment_clearing/tests/test_scenario.py
Normal file
8
modules/account_payment_clearing/tests/test_scenario.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# 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.tests.test_tryton import load_doc_tests
|
||||
|
||||
|
||||
def load_tests(*args, **kwargs):
|
||||
return load_doc_tests(__name__, __file__, *args, **kwargs)
|
||||
38
modules/account_payment_clearing/tryton.cfg
Normal file
38
modules/account_payment_clearing/tryton.cfg
Normal file
@@ -0,0 +1,38 @@
|
||||
[tryton]
|
||||
version=7.8.0
|
||||
depends:
|
||||
company
|
||||
account
|
||||
account_payment
|
||||
ir
|
||||
extras_depend:
|
||||
account_statement
|
||||
account_statement_rule
|
||||
xml:
|
||||
payment.xml
|
||||
message.xml
|
||||
|
||||
[register]
|
||||
model:
|
||||
ir.Cron
|
||||
party.PartyReceptionDirectDebit
|
||||
payment.Journal
|
||||
payment.Payment
|
||||
payment.Group
|
||||
payment.SucceedStart
|
||||
account.Move
|
||||
account.MoveReconciliation
|
||||
wizard:
|
||||
payment.Succeed
|
||||
|
||||
[register account_statement]
|
||||
model:
|
||||
statement.Payment
|
||||
statement.PaymentGroup
|
||||
statement.Statement
|
||||
statement.StatementLine
|
||||
|
||||
[register account_statement_rule]
|
||||
model:
|
||||
statement.StatementRule
|
||||
statement.StatementRuleLine
|
||||
18
modules/account_payment_clearing/view/payment_form.xml
Normal file
18
modules/account_payment_clearing/view/payment_form.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="/form/field[@name='line']" position="after">
|
||||
<label name="account"/>
|
||||
<field name="account"/>
|
||||
<newline/>
|
||||
</xpath>
|
||||
<xpath expr="/form/notebook/page[@id='info']/field[@name='group']"
|
||||
position="after">
|
||||
<label name="clearing_move"/>
|
||||
<field name="clearing_move"/>
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='succeed']" position="replace_attributes">
|
||||
<button name="succeed_wizard"/>
|
||||
</xpath>
|
||||
</data>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="//button[@name='succeed']" position="replace_attributes">
|
||||
<button name="succeed_wizard"/>
|
||||
</xpath>
|
||||
</data>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="//field[@name='payment_complete']" position="after">
|
||||
<field name="clearing_reconciled"/>
|
||||
</xpath>
|
||||
</data>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="/form/field[@name='process_method']" position="after">
|
||||
<separator id="clearing" string="Clearing" colspan="4"/>
|
||||
<label name="clearing_account"/>
|
||||
<field name="clearing_account"/>
|
||||
<label name="clearing_journal"/>
|
||||
<field name="clearing_journal" widget="selection"/>
|
||||
<label name="clearing_posting_delay"/>
|
||||
<field name="clearing_posting_delay"/>
|
||||
</xpath>
|
||||
</data>
|
||||
8
modules/account_payment_clearing/view/payment_list.xml
Normal file
8
modules/account_payment_clearing/view/payment_list.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="//field[@name='state']" position="after">
|
||||
<field name="clearing_reconciled"/>
|
||||
</xpath>
|
||||
</data>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<form>
|
||||
<label name="date"/>
|
||||
<field name="date"/>
|
||||
</form>
|
||||
Reference in New Issue
Block a user