mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[FIX] - don't play onchange date_start for old lines on contract template change
[FIX] - Fix stop post message [FIX] - Fix sale_contract_count should count all partner contract [FIX] - set recurring_next_date to False if contract line stoped at last date invoiced [FIX] - Group by next_invoice also considers dates in the past
This commit is contained in:
committed by
Francisco Ivan Anton Prieto
parent
5248e17bab
commit
5c8c875b61
@@ -183,7 +183,6 @@ class AccountAnalyticAccount(models.Model):
|
||||
)
|
||||
):
|
||||
self[field_name] = self.contract_template_id[field_name]
|
||||
self.recurring_invoice_line_ids._onchange_date_start()
|
||||
|
||||
@api.onchange('partner_id')
|
||||
def _onchange_partner_id(self):
|
||||
@@ -225,6 +224,7 @@ class AccountAnalyticAccount(models.Model):
|
||||
contract_line
|
||||
)
|
||||
new_lines += contract_line_model.new(vals)
|
||||
new_lines._onchange_date_start()
|
||||
return new_lines
|
||||
|
||||
@api.multi
|
||||
|
||||
@@ -658,8 +658,16 @@ class AccountAnalyticInvoiceLine(models.Model):
|
||||
rec.cancel()
|
||||
else:
|
||||
if not rec.date_end or rec.date_end > date_end:
|
||||
old_date_end = rec.date_end
|
||||
values = {
|
||||
'date_end': date_end,
|
||||
'is_auto_renew': False,
|
||||
'manual_renew_needed': manual_renew_needed,
|
||||
}
|
||||
if rec.last_date_invoiced == date_end:
|
||||
values['recurring_next_date'] = False
|
||||
rec.write(values)
|
||||
if post_message:
|
||||
old_date_end = rec.date_end
|
||||
msg = _(
|
||||
"""Contract line for <strong>{product}</strong>
|
||||
stopped: <br/>
|
||||
@@ -671,13 +679,6 @@ class AccountAnalyticInvoiceLine(models.Model):
|
||||
)
|
||||
)
|
||||
rec.contract_id.message_post(body=msg)
|
||||
rec.write(
|
||||
{
|
||||
'date_end': date_end,
|
||||
'is_auto_renew': False,
|
||||
"manual_renew_needed": manual_renew_needed,
|
||||
}
|
||||
)
|
||||
else:
|
||||
rec.write(
|
||||
{
|
||||
|
||||
@@ -16,14 +16,10 @@ class ResPartner(models.Model):
|
||||
|
||||
def _compute_contract_count(self):
|
||||
contract_model = self.env['account.analytic.account']
|
||||
today = fields.Date.today()
|
||||
fetch_data = contract_model.read_group(
|
||||
[
|
||||
('recurring_invoices', '=', True),
|
||||
('partner_id', 'child_of', self.ids),
|
||||
'|',
|
||||
('date_end', '=', False),
|
||||
('date_end', '>=', today),
|
||||
],
|
||||
['partner_id', 'contract_type'],
|
||||
['partner_id', 'contract_type'],
|
||||
|
||||
@@ -1807,3 +1807,9 @@ class TestContract(TestContractBase):
|
||||
self.contract.recurring_invoice_line_ids.cancel()
|
||||
self.contract.recurring_invoice_line_ids.unlink()
|
||||
self.assertFalse(self.contract.recurring_create_invoice())
|
||||
|
||||
def test_stop_at_last_date_invoiced(self):
|
||||
self.contract.recurring_create_invoice()
|
||||
self.assertTrue(self.acct_line.recurring_next_date)
|
||||
self.acct_line.stop(self.acct_line.last_date_invoiced)
|
||||
self.assertFalse(self.acct_line.recurring_next_date)
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
<group expand="0" string="Group By...">
|
||||
<filter name="next_invoice"
|
||||
string="Next Invoice"
|
||||
domain="[('recurring_next_date', '>=', time.strftime('%Y-%m-%d'))]"
|
||||
domain="[('recurring_next_date', '!=', False)]"
|
||||
context="{'group_by':'recurring_next_date'}"
|
||||
/>
|
||||
<filter name="date_end"
|
||||
|
||||
Reference in New Issue
Block a user