[FIX] membership: optional dates

Fix comparisons with optional date field & replace previous fix which
would try to store `'0000-00-00'` in the database which is rejected by
postgres.
This commit is contained in:
David Vidal
2017-10-19 15:51:39 +02:00
committed by xmo-odoo
parent b23c5b2aa9
commit 5d561ec934
2 changed files with 6 additions and 6 deletions
+4 -4
View File
@@ -36,7 +36,7 @@ class AccountInvoiceLine(models.Model):
# Product line has changed to a membership product
date_from = line.product_id.membership_date_from
date_to = line.product_id.membership_date_to
if line.invoice_id.date_invoice > date_from and line.invoice_id.date_invoice < date_to:
if line.invoice_id.date_invoice > (date_from or '0000-00-00') and line.invoice_id.date_invoice < (date_to or '0000-00-00'):
date_from = line.invoice_id.date_invoice
MemberLine.create({
'partner': line.invoice_id.partner_id.id,
@@ -60,9 +60,9 @@ class AccountInvoiceLine(models.Model):
invoice_line.product_id.membership and \
not MemberLine.search([('account_invoice_line', '=', invoice_line.id)]):
# Product line is a membership product
date_from = invoice_line.product_id.membership_date_from or '0000-00-00'
date_to = invoice_line.product_id.membership_date_to or '0000-00-00'
if date_from < (invoice_line.invoice_id.date_invoice or '0000-00-00') < date_to:
date_from = invoice_line.product_id.membership_date_from
date_to = invoice_line.product_id.membership_date_to
if date_from and date_from < (invoice_line.invoice_id.date_invoice or '0000-00-00') < (date_to or '0000-00-00'):
date_from = invoice_line.invoice_id.date_invoice
MemberLine.create({
'partner': invoice_line.invoice_id.partner_id.id,
+2 -2
View File
@@ -108,7 +108,7 @@ class Partner(models.Model):
s = 4
if partner.member_lines:
for mline in partner.member_lines:
if mline.date_to >= today and mline.date_from <= today:
if (mline.date_to or '0000-00-00') >= today and (mline.date_from or '0000-00-00') <= today:
if mline.account_invoice_line.invoice_id:
mstate = mline.account_invoice_line.invoice_id.state
if mstate == 'paid':
@@ -126,7 +126,7 @@ class Partner(models.Model):
s = 3
if s == 4:
for mline in partner.member_lines:
if mline.date_from < today and mline.date_to < today and mline.date_from <= mline.date_to and mline.account_invoice_line and mline.account_invoice_line.invoice_id.state == 'paid':
if (mline.date_from or '0000-00-00') < today and (mline.date_to or '0000-00-00') < today and (mline.date_from or '0000-00-00') <= (mline.date_to or '0000-00-00') and mline.account_invoice_line and mline.account_invoice_line.invoice_id.state == 'paid':
s = 5
else:
s = 6