[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:
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user