|
|
@@ -308,7 +308,7 @@ class DatabaseQuery(object): |
|
|
|
if f.operator.lower() == 'between' and \ |
|
|
|
(f.fieldname in ('creation', 'modified') or (df and (df.fieldtype=="Date" or df.fieldtype=="Datetime"))): |
|
|
|
|
|
|
|
value = get_between_date_filter(f.value) |
|
|
|
value = get_between_date_filter(f.value, df) |
|
|
|
fallback = "'0000-00-00 00:00:00'" |
|
|
|
|
|
|
|
elif df and df.fieldtype=="Date": |
|
|
@@ -584,20 +584,27 @@ def is_parent_only_filter(doctype, filters): |
|
|
|
|
|
|
|
return only_parent_doctype |
|
|
|
|
|
|
|
def get_between_date_filter(value): |
|
|
|
def get_between_date_filter(value, df=None): |
|
|
|
''' |
|
|
|
return the formattted date as per the given example |
|
|
|
[u'2017-11-01', u'2017-11-03'] => '2017-11-01 00:00:00.000000' AND '2017-11-04 00:00:00.000000' |
|
|
|
''' |
|
|
|
from_date = None |
|
|
|
to_date = None |
|
|
|
date_format = "%Y-%m-%d %H:%M:%S.%f" |
|
|
|
|
|
|
|
if df: |
|
|
|
date_format = "%Y-%m-%d %H:%M:%S.%f" if df.fieldtype == 'Datetime' else "%Y-%m-%d" |
|
|
|
|
|
|
|
if value and isinstance(value, (list, tuple)): |
|
|
|
if len(value) >= 1: from_date = value[0] |
|
|
|
if len(value) >= 2: to_date = value[1] |
|
|
|
|
|
|
|
if not df or (df and df.fieldtype == 'Datetime'): |
|
|
|
to_date = add_to_date(to_date,days=1) |
|
|
|
|
|
|
|
data = "'%s' AND '%s'" % ( |
|
|
|
get_datetime(from_date).strftime("%Y-%m-%d %H:%M:%S.%f"), |
|
|
|
add_to_date(get_datetime(to_date),days=1).strftime("%Y-%m-%d %H:%M:%S.%f")) |
|
|
|
get_datetime(from_date).strftime(date_format), |
|
|
|
get_datetime(to_date).strftime(date_format)) |
|
|
|
|
|
|
|
return data |