Add control to cancel an invoice that closed journal and period
#041331
This commit is contained in:
parent
0e07d4e411
commit
b19d4873da
21
invoice.py
21
invoice.py
|
@ -28,17 +28,32 @@ class Invoice(metaclass=PoolMeta):
|
|||
|
||||
@classmethod
|
||||
def draft(cls, invoices):
|
||||
Move = Pool().get('account.move')
|
||||
pool = Pool()
|
||||
Move = pool.get('account.move')
|
||||
JournalPeriod = pool.get('account.journal.period')
|
||||
|
||||
moves = []
|
||||
for invoice in invoices:
|
||||
if invoice.move:
|
||||
# check period is closed
|
||||
if invoice.move.period.state == 'close':
|
||||
raise UserError(gettext(
|
||||
'account_invoice_posted2draft.draft_closed_period',
|
||||
'account_invoice_posted2draft.msg_draft_closed_period',
|
||||
invoice=invoice.rec_name,
|
||||
period=invoice.move.period.rec_name,
|
||||
))
|
||||
# check period and journal is closed
|
||||
journal_periods = JournalPeriod.search([
|
||||
('journal', '=', invoice.move.journal.id),
|
||||
('period', '=', invoice.move.period.id),
|
||||
], limit=1)
|
||||
if journal_periods:
|
||||
journal_period, = journal_periods
|
||||
if journal_period.state == 'close':
|
||||
raise UserError(gettext(
|
||||
'account_invoice_posted2draft.msg_modify_closed_journal_period',
|
||||
invoice=invoice.rec_name,
|
||||
journal_period=journal_period.rec_name))
|
||||
moves.append(invoice.move)
|
||||
if moves:
|
||||
with Transaction().set_context(draft_invoices=True):
|
||||
|
@ -55,7 +70,7 @@ class Invoice(metaclass=PoolMeta):
|
|||
for invoice in invoices:
|
||||
if invoice.type == 'out' and invoice.number:
|
||||
raise UserError(gettext(
|
||||
'account_invoice_posted2draft.cancel_invoice_with_number'))
|
||||
'account_invoice_posted2draft.msg_cancel_invoice_with_number'))
|
||||
|
||||
return super(Invoice, cls).cancel(invoices)
|
||||
|
||||
|
|
16
locale/ca.po
16
locale/ca.po
|
@ -2,12 +2,22 @@
|
|||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "model:ir.message,text:cancel_invoice_with_number"
|
||||
msgctxt "model:ir.message,text:msg_cancel_invoice_with_number"
|
||||
msgid "You cannot cancel an invoice with number"
|
||||
msgstr ""
|
||||
msgstr "No podeu cancel·lar una factura amb un número assignat."
|
||||
|
||||
msgctxt "model:ir.message,text:draft_closed_period"
|
||||
msgctxt "model:ir.message,text:msg_draft_closed_period"
|
||||
msgid ""
|
||||
"You can not set to draft invoice \"%(invoice)s\" because period "
|
||||
"\"%(period)s\" is closed."
|
||||
msgstr ""
|
||||
"No es pot passar a esborrany la factura \"%(invoice)s\" perquè el període "
|
||||
"\"%(period)s\" està tancat."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_modify_closed_journal_period"
|
||||
msgid ""
|
||||
"You can not set to draft invoice \"%(invoice)s\" on closed journal-period "
|
||||
"\"%(journal_period)s\"."
|
||||
msgstr ""
|
||||
"No es pot passar a esborrany la factura \"%(invoice)s\" perquè el diari-"
|
||||
"període \"%(journal_period)s\". està tancat."
|
||||
|
|
16
locale/es.po
16
locale/es.po
|
@ -2,12 +2,22 @@
|
|||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "model:ir.message,text:cancel_invoice_with_number"
|
||||
msgctxt "model:ir.message,text:msg_cancel_invoice_with_number"
|
||||
msgid "You cannot cancel an invoice with number"
|
||||
msgstr ""
|
||||
msgstr "No puede cancelar una factura con un número asignado."
|
||||
|
||||
msgctxt "model:ir.message,text:draft_closed_period"
|
||||
msgctxt "model:ir.message,text:msg_draft_closed_period"
|
||||
msgid ""
|
||||
"You can not set to draft invoice \"%(invoice)s\" because period "
|
||||
"\"%(period)s\" is closed."
|
||||
msgstr ""
|
||||
"No se puede pasar a borrador la factura \"%(invoice)s\" porqué el período "
|
||||
"\"%(period)s\" está cerrado."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_modify_closed_journal_period"
|
||||
msgid ""
|
||||
"You can not set to draft invoice \"%(invoice)s\" on closed journal-period "
|
||||
"\"%(journal_period)s\"."
|
||||
msgstr ""
|
||||
"No se puede pasar a borrador la factura \"%(invoice)s\" porqué el diario-"
|
||||
"período \"%(journal_period)s\" está cerrado."
|
||||
|
|
15
messages.xml
15
messages.xml
|
@ -3,11 +3,14 @@
|
|||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data grouped="1">
|
||||
<record model="ir.message" id="draft_closed_period">
|
||||
<field name="text">You can not set to draft invoice "%(invoice)s" because period "%(period)s" is closed.</field>
|
||||
</record>
|
||||
<record model="ir.message" id="cancel_invoice_with_number">
|
||||
<field name="text">You cannot cancel an invoice with number</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_draft_closed_period">
|
||||
<field name="text">You can not set to draft invoice "%(invoice)s" because period "%(period)s" is closed.</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_cancel_invoice_with_number">
|
||||
<field name="text">You cannot cancel an invoice with number</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_modify_closed_journal_period">
|
||||
<field name="text">You can not set to draft invoice "%(invoice)s" on closed journal-period "%(journal_period)s".</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
|
|
Loading…
Reference in New Issue