Improvements as per feedback
This commit is contained in:
parent
773b8f48e7
commit
3fbfa32f73
@ -188,6 +188,12 @@ class AccountSpread(models.Model):
|
|||||||
else:
|
else:
|
||||||
if self.invoice_type in ['out_invoice', 'out_refund']:
|
if self.invoice_type in ['out_invoice', 'out_refund']:
|
||||||
self.invoice_type = 'in_invoice'
|
self.invoice_type = 'in_invoice'
|
||||||
|
if self.template_id.period_number:
|
||||||
|
self.period_number = self.template_id.period_number
|
||||||
|
if self.template_id.period_type:
|
||||||
|
self.period_type = self.template_id.period_type
|
||||||
|
if self.template_id.start_date:
|
||||||
|
self.spread_date = self.template_id.start_date
|
||||||
|
|
||||||
@api.onchange('invoice_type', 'company_id')
|
@api.onchange('invoice_type', 'company_id')
|
||||||
def onchange_invoice_type(self):
|
def onchange_invoice_type(self):
|
||||||
@ -326,7 +332,11 @@ class AccountSpread(models.Model):
|
|||||||
spread_date = self._next_line_date(month_day, spread_date)
|
spread_date = self._next_line_date(month_day, spread_date)
|
||||||
|
|
||||||
self.write({'line_ids': commands})
|
self.write({'line_ids': commands})
|
||||||
self.message_post(body=_("Spread table created."))
|
invoice_type_selection = dict(self.fields_get(
|
||||||
|
allfields=['invoice_type']
|
||||||
|
)['invoice_type']['selection'])[self.invoice_type]
|
||||||
|
msg_body = _("Spread table '%s' created.") % invoice_type_selection
|
||||||
|
self.message_post(body=msg_body)
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
def _get_number_of_periods(self, month_day):
|
def _get_number_of_periods(self, month_day):
|
||||||
@ -398,8 +408,29 @@ class AccountSpread(models.Model):
|
|||||||
for spread in self:
|
for spread in self:
|
||||||
spread_mls = spread.line_ids.mapped('move_id.line_ids')
|
spread_mls = spread.line_ids.mapped('move_id.line_ids')
|
||||||
spread_mls.remove_move_reconcile()
|
spread_mls.remove_move_reconcile()
|
||||||
|
inv_link = '<a href=# data-oe-model=account.invoice ' \
|
||||||
|
'data-oe-id=%d>%s</a>' % (
|
||||||
|
spread.invoice_id.id, _("Invoice"))
|
||||||
|
msg_body = _("Unlinked invoice line '%s' (view %s).") % (
|
||||||
|
spread.invoice_line_id.name, inv_link)
|
||||||
|
spread.message_post(body=msg_body)
|
||||||
spread.write({'invoice_line_ids': [(5, 0, 0)]})
|
spread.write({'invoice_line_ids': [(5, 0, 0)]})
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def unlink(self):
|
||||||
|
for spread in self:
|
||||||
|
if spread.invoice_line_id:
|
||||||
|
raise UserError(
|
||||||
|
_('Cannot delete spread(s) that are linked '
|
||||||
|
'to an invoice line.'))
|
||||||
|
posted_line_ids = self.line_ids.filtered(
|
||||||
|
lambda x: x.move_id.state == 'posted')
|
||||||
|
if posted_line_ids:
|
||||||
|
raise ValidationError(
|
||||||
|
_('Cannot delete spread(s): there are some '
|
||||||
|
'posted Journal Entries.'))
|
||||||
|
return super().unlink()
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
def reconcile_spread_moves(self):
|
def reconcile_spread_moves(self):
|
||||||
for spread in self:
|
for spread in self:
|
||||||
|
@ -34,7 +34,10 @@ class AccountInvoiceSpreadLine(models.Model):
|
|||||||
|
|
||||||
if created_moves:
|
if created_moves:
|
||||||
post_msg = _("Created move(s) ")
|
post_msg = _("Created move(s) ")
|
||||||
post_msg += ", ".join(str(id) for id in created_moves.ids)
|
post_msg += ", ".join(
|
||||||
|
'<a href=# data-oe-model=account.move data-oe-id=%d'
|
||||||
|
'>%s</a>' % (move.id, move.name)
|
||||||
|
for move in created_moves)
|
||||||
spread.message_post(body=post_msg)
|
spread.message_post(body=post_msg)
|
||||||
|
|
||||||
spread._reconcile_spread_moves(created_moves)
|
spread._reconcile_spread_moves(created_moves)
|
||||||
|
@ -27,6 +27,15 @@ class AccountSpreadTemplate(models.Model):
|
|||||||
'account.account',
|
'account.account',
|
||||||
string='Spread Balance Sheet Account',
|
string='Spread Balance Sheet Account',
|
||||||
required=True)
|
required=True)
|
||||||
|
period_number = fields.Integer(
|
||||||
|
string='Number of Repetitions',
|
||||||
|
help="Define the number of spread lines")
|
||||||
|
period_type = fields.Selection([
|
||||||
|
('month', 'Month'),
|
||||||
|
('quarter', 'Quarter'),
|
||||||
|
('year', 'Year')],
|
||||||
|
help="Period length for the entries")
|
||||||
|
start_date = fields.Date()
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def default_get(self, fields):
|
def default_get(self, fields):
|
||||||
@ -74,5 +83,12 @@ class AccountSpreadTemplate(models.Model):
|
|||||||
invoice_type = 'in_invoice'
|
invoice_type = 'in_invoice'
|
||||||
spread_vals['credit_account_id'] = self.spread_account_id.id
|
spread_vals['credit_account_id'] = self.spread_account_id.id
|
||||||
|
|
||||||
|
if self.period_number:
|
||||||
|
spread_vals['period_number'] = self.period_number
|
||||||
|
if self.period_type:
|
||||||
|
spread_vals['period_type'] = self.period_type
|
||||||
|
if self.start_date:
|
||||||
|
spread_vals['spread_date'] = self.start_date
|
||||||
|
|
||||||
spread_vals['invoice_type'] = invoice_type
|
spread_vals['invoice_type'] = invoice_type
|
||||||
return spread_vals
|
return spread_vals
|
||||||
|
1
account_spread_cost_revenue/readme/ROADMAP.rst
Normal file
1
account_spread_cost_revenue/readme/ROADMAP.rst
Normal file
@ -0,0 +1 @@
|
|||||||
|
* Add option to post all spread lines in one click
|
@ -16,6 +16,9 @@
|
|||||||
<group>
|
<group>
|
||||||
<field name="spread_type"/>
|
<field name="spread_type"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
|
<field name="period_number"/>
|
||||||
|
<field name="period_type"/>
|
||||||
|
<field name="start_date"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="spread_account_id" domain="[('company_id', '=', company_id), ('deprecated', '=', False)]" options="{'no_create': True}"/>
|
<field name="spread_account_id" domain="[('company_id', '=', company_id), ('deprecated', '=', False)]" options="{'no_create': True}"/>
|
||||||
|
@ -147,6 +147,7 @@ class AccountSpreadInvoiceLineLinkWizard(models.TransientModel):
|
|||||||
spread_vals = self.template_id._prepare_spread_from_template()
|
spread_vals = self.template_id._prepare_spread_from_template()
|
||||||
|
|
||||||
date_invoice = self.invoice_id.date_invoice
|
date_invoice = self.invoice_id.date_invoice
|
||||||
|
date_invoice = date_invoice or self.template_id.start_date
|
||||||
date_invoice = date_invoice or fields.Date.today()
|
date_invoice = date_invoice or fields.Date.today()
|
||||||
spread_vals['spread_date'] = date_invoice
|
spread_vals['spread_date'] = date_invoice
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user