first commit
This commit is contained in:
2
modules/account_invoice_correction/__init__.py
Normal file
2
modules/account_invoice_correction/__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.
82
modules/account_invoice_correction/invoice.py
Normal file
82
modules/account_invoice_correction/invoice.py
Normal file
@@ -0,0 +1,82 @@
|
||||
# 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.model import ModelView, fields
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Eval
|
||||
from trytond.transaction import Transaction
|
||||
from trytond.wizard import Button, StateAction, StateView, Wizard
|
||||
|
||||
|
||||
class Invoice(metaclass=PoolMeta):
|
||||
__name__ = 'account.invoice'
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
cls._buttons.update({
|
||||
'correct': {
|
||||
'invisible': Eval('state') != 'posted',
|
||||
'depends': ['state', 'type'],
|
||||
},
|
||||
})
|
||||
|
||||
@classmethod
|
||||
@ModelView.button_action(
|
||||
'account_invoice_correction.wizard_invoice_correct')
|
||||
def correct(cls, invoices):
|
||||
pass
|
||||
|
||||
|
||||
class InvoiceCorrectStart(ModelView):
|
||||
__name__ = 'account.invoice.correct.start'
|
||||
|
||||
invoice = fields.Many2One('account.invoice', 'Invoice', readonly=True)
|
||||
lines = fields.Many2Many('account.invoice.line', None, None,
|
||||
'Invoice Lines',
|
||||
domain=[
|
||||
('invoice', '=', Eval('invoice', -1)),
|
||||
('type', '=', 'line'),
|
||||
])
|
||||
|
||||
|
||||
class InvoiceCorrect(Wizard):
|
||||
__name__ = 'account.invoice.correct'
|
||||
|
||||
start = StateView('account.invoice.correct.start',
|
||||
'account_invoice_correction.correct_start_view_form', [
|
||||
Button('Cancel', 'end', 'tryton-cancel'),
|
||||
Button('Correct', 'correct', 'tryton-ok', default=True),
|
||||
])
|
||||
correct = StateAction('account_invoice.act_invoice_form')
|
||||
|
||||
def default_start(self, fields):
|
||||
context = Transaction().context
|
||||
return {
|
||||
'invoice': context['active_id'],
|
||||
'lines': [],
|
||||
}
|
||||
|
||||
def do_correct(self, action):
|
||||
pool = Pool()
|
||||
Invoice = self.model
|
||||
Line = pool.get('account.invoice.line')
|
||||
|
||||
invoice = self.record
|
||||
with Transaction().set_context(_account_invoice_correction=True):
|
||||
correction, = Invoice.copy([invoice], default={
|
||||
'lines': [],
|
||||
})
|
||||
# Copy each line one by one to get negative and positive lines
|
||||
# following each other
|
||||
for line in self.start.lines:
|
||||
Line.copy([line], default={
|
||||
'invoice': correction.id,
|
||||
'quantity': -line.quantity,
|
||||
})
|
||||
Line.copy([line], default={
|
||||
'invoice': correction.id,
|
||||
})
|
||||
correction.update_taxes()
|
||||
data = {'res_id': [correction.id]}
|
||||
return action, data
|
||||
29
modules/account_invoice_correction/invoice.xml
Normal file
29
modules/account_invoice_correction/invoice.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?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="invoice_view_form">
|
||||
<field name="model">account.invoice</field>
|
||||
<field name="inherit" ref="account_invoice.invoice_view_form"/>
|
||||
<field name="name">invoice_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="correct_start_view_form">
|
||||
<field name="model">account.invoice.correct.start</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">correct_start_view_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.wizard" id="wizard_invoice_correct">
|
||||
<field name="name">Correct</field>
|
||||
<field name="wiz_name">account.invoice.correct</field>
|
||||
<field name="model">account.invoice</field>
|
||||
</record>
|
||||
<record model="ir.model.button" id="invoice_correct_button">
|
||||
<field name="model">account.invoice</field>
|
||||
<field name="name">correct</field>
|
||||
<field name="string">Correct</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
36
modules/account_invoice_correction/locale/bg.po
Normal file
36
modules/account_invoice_correction/locale/bg.po
Normal file
@@ -0,0 +1,36 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
35
modules/account_invoice_correction/locale/ca.po
Normal file
35
modules/account_invoice_correction/locale/ca.po
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Factura"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "Línies de factura"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr "Inici corregir factura"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Corregeix"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Corregeix"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "Tria les línies a corregir:"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Corregeix"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
36
modules/account_invoice_correction/locale/cs.po
Normal file
36
modules/account_invoice_correction/locale/cs.po
Normal file
@@ -0,0 +1,36 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
35
modules/account_invoice_correction/locale/de.po
Normal file
35
modules/account_invoice_correction/locale/de.po
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Rechnung"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "Rechnungspositionen"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr "Rechnungskorrektur Start"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Korrigieren"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Korrigieren"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "Positionen zur Korrektur auswählen:"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Korrigieren"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
35
modules/account_invoice_correction/locale/es.po
Normal file
35
modules/account_invoice_correction/locale/es.po
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Factura"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "Lineas de factura"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr "Inicio corregir factura"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Corregir"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Corregir"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "Elige las líneas a corregir:"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Corregir"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
35
modules/account_invoice_correction/locale/es_419.po
Normal file
35
modules/account_invoice_correction/locale/es_419.po
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
36
modules/account_invoice_correction/locale/et.po
Normal file
36
modules/account_invoice_correction/locale/et.po
Normal file
@@ -0,0 +1,36 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Arve"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "Arve read"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Paranda"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Paranda"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "Vali read, mida parandada"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Paranda"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Tühista"
|
||||
36
modules/account_invoice_correction/locale/fa.po
Normal file
36
modules/account_invoice_correction/locale/fa.po
Normal file
@@ -0,0 +1,36 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "صورت حساب"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "خطوط صورتحساب"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "صحیح"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "انتخاب خطوط برای اصلاح"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "اصلاح"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "انصراف"
|
||||
36
modules/account_invoice_correction/locale/fi.po
Normal file
36
modules/account_invoice_correction/locale/fi.po
Normal file
@@ -0,0 +1,36 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
35
modules/account_invoice_correction/locale/fr.po
Normal file
35
modules/account_invoice_correction/locale/fr.po
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Facture"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "Lignes de facture"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr "Correction de facture comptable début"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Corriger"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Corriger"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "Choisissez les lignes à corriger :"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Corriger"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
36
modules/account_invoice_correction/locale/hu.po
Normal file
36
modules/account_invoice_correction/locale/hu.po
Normal file
@@ -0,0 +1,36 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
35
modules/account_invoice_correction/locale/id.po
Normal file
35
modules/account_invoice_correction/locale/id.po
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Faktur"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "Baris Faktur"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Batal"
|
||||
35
modules/account_invoice_correction/locale/it.po
Normal file
35
modules/account_invoice_correction/locale/it.po
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Fattura"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "Righe Fattura"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Corretto"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Corretto"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "Scegli le righe da correggere:"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Corretto"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Annulla"
|
||||
37
modules/account_invoice_correction/locale/lo.po
Normal file
37
modules/account_invoice_correction/locale/lo.po
Normal file
@@ -0,0 +1,37 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "ໃບເກັບເງິນ"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "ລາຍການເກັບເງິນ"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "ເລືອກລາຍການທີ່ຈະກວດແກ້"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "ກວດແກ້"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "ຍົກເລີກ"
|
||||
36
modules/account_invoice_correction/locale/lt.po
Normal file
36
modules/account_invoice_correction/locale/lt.po
Normal file
@@ -0,0 +1,36 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Sąskaita faktūra"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "Sąskaitos faktūros eilutės"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Taisyti"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Taisyti"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "Pasirinkite eilutes taisymui"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Taisyti"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Atsisakyti"
|
||||
35
modules/account_invoice_correction/locale/nl.po
Normal file
35
modules/account_invoice_correction/locale/nl.po
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Factuur"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "Factuurregels"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr "Factuur correctie start"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Corrigeer"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Corrigeer"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "Kies regels om te corrigeren:"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Corrigeer"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
36
modules/account_invoice_correction/locale/pl.po
Normal file
36
modules/account_invoice_correction/locale/pl.po
Normal file
@@ -0,0 +1,36 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Faktura"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
35
modules/account_invoice_correction/locale/pt.po
Normal file
35
modules/account_invoice_correction/locale/pt.po
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Fatura"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "Linhas de Faturas"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Correto"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "Escolha linhas para corrigir:"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Correto"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
35
modules/account_invoice_correction/locale/ro.po
Normal file
35
modules/account_invoice_correction/locale/ro.po
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Factura"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "Rânduri Factura"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr "Factura Început Corect"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Corect"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Corect"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "Selecție rânduri de corectat:"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Corect"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Anulare"
|
||||
36
modules/account_invoice_correction/locale/ru.po
Normal file
36
modules/account_invoice_correction/locale/ru.po
Normal file
@@ -0,0 +1,36 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
35
modules/account_invoice_correction/locale/sl.po
Normal file
35
modules/account_invoice_correction/locale/sl.po
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr "Račun"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr "Postavke računa"
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Popravek"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Popravek"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr "Izberite vrstice za popravek:"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Popravi"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Prekliči"
|
||||
36
modules/account_invoice_correction/locale/tr.po
Normal file
36
modules/account_invoice_correction/locale/tr.po
Normal file
@@ -0,0 +1,36 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
35
modules/account_invoice_correction/locale/uk.po
Normal file
35
modules/account_invoice_correction/locale/uk.po
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
36
modules/account_invoice_correction/locale/zh_CN.po
Normal file
36
modules/account_invoice_correction/locale/zh_CN.po
Normal file
@@ -0,0 +1,36 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,invoice:"
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.invoice.correct.start,lines:"
|
||||
msgid "Invoice Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.invoice.correct.start,string:"
|
||||
msgid "Account Invoice Correct Start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_invoice_correct"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "model:ir.model.button,string:invoice_correct_button"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "view:account.invoice.correct.start:"
|
||||
msgid "Choose lines to correct:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:account.invoice.correct,start,correct:"
|
||||
msgid "Correct"
|
||||
msgstr "Correct"
|
||||
|
||||
msgctxt "wizard_button:account.invoice.correct,start,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
2
modules/account_invoice_correction/tests/__init__.py
Normal file
2
modules/account_invoice_correction/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,67 @@
|
||||
===========================
|
||||
Invoice Correction Scenario
|
||||
===========================
|
||||
|
||||
Imports::
|
||||
|
||||
>>> 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
|
||||
|
||||
Activate modules::
|
||||
|
||||
>>> config = activate_modules(
|
||||
... 'account_invoice_correction', create_company, create_chart)
|
||||
|
||||
Create fiscal year::
|
||||
|
||||
>>> fiscalyear = set_fiscalyear_invoice_sequences(
|
||||
... create_fiscalyear())
|
||||
>>> fiscalyear.click('create_period')
|
||||
|
||||
Get accounts::
|
||||
|
||||
>>> accounts = get_accounts()
|
||||
>>> revenue = accounts['revenue']
|
||||
|
||||
Create party::
|
||||
|
||||
>>> Party = Model.get('party.party')
|
||||
>>> party = Party(name='Party')
|
||||
>>> party.save()
|
||||
|
||||
Create invoice::
|
||||
|
||||
>>> Invoice = Model.get('account.invoice')
|
||||
>>> invoice = Invoice()
|
||||
>>> invoice.party = party
|
||||
>>> line = invoice.lines.new()
|
||||
>>> line.account = revenue
|
||||
>>> line.description = "Revenue 1"
|
||||
>>> line.quantity = 5
|
||||
>>> line.unit_price = Decimal('30')
|
||||
>>> line = invoice.lines.new()
|
||||
>>> line.account = revenue
|
||||
>>> line.description = "Revenue 2"
|
||||
>>> line.quantity = 10
|
||||
>>> line.unit_price = Decimal('40')
|
||||
>>> invoice.click('post')
|
||||
>>> invoice.state
|
||||
'posted'
|
||||
|
||||
Correct invoice::
|
||||
|
||||
>>> correct = invoice.click('correct')
|
||||
>>> correct.form.lines.extend(correct.form.lines.find(
|
||||
... [('description', '=', "Revenue 1")]))
|
||||
>>> correct.execute('correct')
|
||||
>>> invoices, = correct.actions
|
||||
>>> invoice, = invoices
|
||||
>>> [(l.quantity, l.unit_price) for l in invoice.lines]
|
||||
[(-5.0, Decimal('30')), (5.0, Decimal('30'))]
|
||||
12
modules/account_invoice_correction/tests/test_module.py
Normal file
12
modules/account_invoice_correction/tests/test_module.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# 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 ModuleTestCase
|
||||
|
||||
|
||||
class AccountInvoiceCorrectionTestCase(ModuleTestCase):
|
||||
'Test Account Invoice Correction module'
|
||||
module = 'account_invoice_correction'
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
@@ -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)
|
||||
14
modules/account_invoice_correction/tryton.cfg
Normal file
14
modules/account_invoice_correction/tryton.cfg
Normal file
@@ -0,0 +1,14 @@
|
||||
[tryton]
|
||||
version=7.8.0
|
||||
depends:
|
||||
ir
|
||||
account_invoice
|
||||
xml:
|
||||
invoice.xml
|
||||
|
||||
[register]
|
||||
model:
|
||||
invoice.Invoice
|
||||
invoice.InvoiceCorrectStart
|
||||
wizard:
|
||||
invoice.InvoiceCorrect
|
||||
@@ -0,0 +1,9 @@
|
||||
<?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 col="2">
|
||||
<image name="tryton-question" xexpand="0" xfill="0"/>
|
||||
<label string="Choose lines to correct:" id="choose"
|
||||
yalign="0.5" xalign="0.0" xexpand="1"/>
|
||||
<field name="lines" colspan="2" widget="multiselection"/>
|
||||
</form>
|
||||
8
modules/account_invoice_correction/view/invoice_form.xml
Normal file
8
modules/account_invoice_correction/view/invoice_form.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="//group[@id='buttons']" position="inside">
|
||||
<button name="correct" icon="tryton-launch"/>
|
||||
</xpath>
|
||||
</data>
|
||||
Reference in New Issue
Block a user