line/book: sequence für zeilen-nummerierung

This commit is contained in:
Frederik Jaeckel 2022-08-16 16:24:07 +02:00
parent 5fdbb0ce89
commit a801775880
8 changed files with 128 additions and 17 deletions

41
line.py
View file

@ -54,6 +54,7 @@ class Line(Workflow, ModelSQL, ModelView):
states=STATES, depends=DEPENDS)
month = fields.Function(fields.Integer(string='Month', readonly=True),
'on_change_with_month', searcher='search_month')
number = fields.Char(string='Number', readonly=True)
description = fields.Text(string='Description',
states=STATES, depends=DEPENDS)
category = fields.Many2One(string='Category',
@ -218,6 +219,7 @@ class Line(Workflow, ModelSQL, ModelView):
Line2 = pool.get('cashbook.line')
to_create_line = []
to_write_line = []
for line in lines:
# deny if date is in range of existing reconciliation
# allow cashbook-line at range-limits
@ -259,6 +261,18 @@ class Line(Workflow, ModelSQL, ModelView):
'reference': line.id,
})
# add number to line
if line.cashbook.number_atcheck == True:
if len(line.number or '') == 0:
to_write_line.extend([
[line],
{
'number': line.cashbook.number_sequ.get()
}])
if len(to_write_line) > 0:
Line2.write(*to_write_line)
if len(to_create_line) > 0:
new_lines = Line2.create(to_create_line)
Line2.wfcheck(new_lines)
@ -269,7 +283,20 @@ class Line(Workflow, ModelSQL, ModelView):
def wfdone(cls, lines):
""" line is done
"""
pass
Line2 = Pool().get('cashbook.line')
to_write_line = []
for line in lines:
# add number to line
if len(line.number or '') == 0:
to_write_line.extend([
[line],
{
'number': line.cashbook.number_sequ.get()
}])
if len(to_write_line) > 0:
Line2.write(*to_write_line)
@classmethod
def default_state(cls):
@ -508,6 +535,18 @@ class Line(Workflow, ModelSQL, ModelView):
raise ValueError('invalid "bookingtype"')
return {}
@classmethod
def copy(cls, lines, default=None):
""" reset values
"""
if default is None:
default = {}
else:
default = default.copy()
default.setdefault('number', None)
default.setdefault('state', cls.default_state())
return super(Line, cls).copy(moves, default=default)
@classmethod
def create(cls, vlist):
""" add debit/credit