Initial import from Docker volume

This commit is contained in:
root
2025-12-26 13:11:43 +00:00
commit 4998dc066a
13336 changed files with 1767801 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
# 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
from . import invoice
__all__ = ['register']
def register():
Pool.register(
invoice.Invoice,
invoice.InvoiceCorrectStart,
module='account_invoice_correction', type_='model')
Pool.register(
invoice.InvoiceCorrect,
module='account_invoice_correction', type_='wizard')

View File

@@ -0,0 +1,84 @@
# 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(Invoice, cls).__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):
"Correct Invoice"
__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')),
('type', '=', 'line'),
])
class InvoiceCorrect(Wizard):
"Correct Invoice"
__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

View 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>

View 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,name:"
msgid "Correct Invoice"
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 ""

View 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,name:"
msgid "Correct Invoice"
msgstr "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"

View 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,name:"
msgid "Correct Invoice"
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 ""

View 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,name:"
msgid "Correct Invoice"
msgstr "Rechnung korrigieren"
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"

View 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,name:"
msgid "Correct Invoice"
msgstr "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"

View 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,name:"
msgid "Correct Invoice"
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 ""

View 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,name:"
msgid "Correct Invoice"
msgstr "Arve parandamine"
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"

View 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,name:"
msgid "Correct Invoice"
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 "انصراف"

View 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,name:"
msgid "Correct Invoice"
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 ""

View 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,name:"
msgid "Correct Invoice"
msgstr "Correction de facture"
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"

View 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,name:"
msgid "Correct Invoice"
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 ""

View 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,name:"
msgid "Correct Invoice"
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"

View 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,name:"
msgid "Correct Invoice"
msgstr "Correggi Fattura"
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"

View 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,name:"
msgid "Correct Invoice"
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 "ຍົກເລີກ"

View 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,name:"
msgid "Correct Invoice"
msgstr "Sąskaitos faktūros taisymas"
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"

View 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,name:"
msgid "Correct Invoice"
msgstr "Corrigeer factuur"
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"

View 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,name:"
msgid "Correct Invoice"
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"

View 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 "Fatura"
msgctxt "field:account.invoice.correct.start,lines:"
msgid "Invoice Lines"
msgstr "Linhas de Faturas"
msgctxt "model:account.invoice.correct.start,name:"
msgid "Correct Invoice"
msgstr "Fatura Correta"
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"
#, fuzzy
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"

View 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,name:"
msgid "Correct Invoice"
msgstr "Factura Corecta"
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"

View 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,name:"
msgid "Correct Invoice"
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 ""

View 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,name:"
msgid "Correct Invoice"
msgstr "Popravek računa"
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"

View 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,name:"
msgid "Correct Invoice"
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 ""

View 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,name:"
msgid "Correct Invoice"
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 ""

View 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,name:"
msgid "Correct Invoice"
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 ""

View 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.

View File

@@ -0,0 +1,73 @@
===========================
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, get_company
>>> from trytond.tests.tools import activate_modules
Activate modules::
>>> config = activate_modules('account_invoice_correction')
Create company::
>>> _ = create_company()
>>> company = get_company()
>>> company.party.save()
Create fiscal year::
>>> fiscalyear = set_fiscalyear_invoice_sequences(
... create_fiscalyear(company))
>>> fiscalyear.click('create_period')
Create chart of accounts::
>>> _ = create_chart(company)
>>> accounts = get_accounts(company)
>>> 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'))]

View 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

View 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)

View File

@@ -0,0 +1,7 @@
[tryton]
version=7.2.0
depends:
ir
account_invoice
xml:
invoice.xml

View File

@@ -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.0" xalign="0.0" xexpand="1"/>
<field name="lines" colspan="2" widget="multiselection"/>
</form>

View 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>