Example #1
0
def ks_get_date(ks_date_filter_selection, self, type):
    timezone = self._context.get('tz') or self.env.user.tz

    if not timezone:
        ks_tzone = os.environ.get('TZ')
        if ks_tzone:
            timezone = ks_tzone
        elif os.path.exists('/etc/timezone'):
            ks_tzone = open('/etc/timezone').read()
            timezone = ks_tzone[0:-1]
            try:
                datetime.now(pytz.timezone(timezone))
            except Exception as e:
                raise ValidationError(_("Please set the local timezone."))

        else:
            raise ValidationError(_("Please set the local timezone."))

    series = ks_date_filter_selection
    if ks_date_filter_selection in [
            't_fiscal_year', 'n_fiscal_year', 'ls_fiscal_year'
    ]:
        return eval("ks_date_series_" + series.split("_")[0])(
            series.split("_")[1], timezone, type, self)
    else:
        return eval("ks_date_series_" + series.split("_")[0])(
            series.split("_")[1], timezone, type)
Example #2
0
def ks_date_series_l(ks_date_selection, timezone, type):
    ks_date_data = {}
    date_filter_options = {
        'day': 0,
        'week': 7,
        'month': 30,
        'quarter': 90,
        'year': 365,
        'past': False,
        'future': False
    }
    end_time = datetime.strptime(
        datetime.now(pytz.timezone(timezone)).strftime("%Y-%m-%d 23:59:59"),
        '%Y-%m-%d %H:%M:%S')
    start_time = datetime.strptime(
        (datetime.now(pytz.timezone(timezone)) -
         timedelta(days=date_filter_options[ks_date_selection])
         ).strftime("%Y-%m-%d 00:00:00"), '%Y-%m-%d %H:%M:%S')
    if type == 'date':
        ks_date_data["selected_end_date"] = datetime.strptime(
            end_time.strftime("%Y-%m-%d"), '%Y-%m-%d')
        ks_date_data["selected_start_date"] = datetime.strptime(
            start_time.strftime("%Y-%m-%d"), '%Y-%m-%d')
    else:
        ks_date_data["selected_end_date"] = ks_convert_into_utc(
            end_time, timezone)
        ks_date_data["selected_start_date"] = ks_convert_into_utc(
            start_time, timezone)

    return ks_date_data
def ks_date_series_l(ks_date_selection):
    ks_date_data = {}
    date_filter_options = {
        'day': 0,
        'week': 7,
        'month': 30,
        'quarter': 90,
        'year': 365,
    }
    ks_date_data["selected_end_date"] = datetime.now().strftime("%Y-%m-%d 23:59:59")
    ks_date_data["selected_start_date"] = (datetime.now() - timedelta(
        days=date_filter_options[ks_date_selection])).strftime("%Y-%m-%d 00:00:00")
    return ks_date_data
def ks_get_date_range_from_month(date_state):
    ks_date_data = {}

    date = datetime.now()
    year = date.year
    month = date.month

    if date_state == "previous":
        month -= 1
        if month == 0:
            month = 12
            year -= 1
    elif date_state == "next":
        month += 1
        if month == 13:
            month = 1
            year += 1

    end_year = year
    end_month = month
    if month == 12:
        end_year += 1
        end_month = 1
    else:
        end_month += 1

    ks_date_data["selected_start_date"] = datetime(year, month, 1)
    ks_date_data["selected_end_date"] = datetime(end_year, end_month,
                                                 1) - timedelta(seconds=1)
    return ks_date_data
Example #5
0
def ks_get_date_range_from_week(date_state, timezone, type, self):
    ks_date_data = {}

    date = datetime.now(pytz.timezone(timezone))
    ks_week = 0
    if date_state == "previous":
        ks_week = ks_week - 1
    elif date_state == "next":
        ks_week = ks_week + 1

    date_iso = date.isocalendar()
    year = date_iso[0]
    week_no = date_iso[1]
    if type == 'date':
        start_date = datetime.strptime(
            '%s-W%s-1' % (year, week_no + (ks_week)), "%Y-W%W-%w")
        ks_date_data["selected_start_date"] = start_date
        end_date = start_date + timedelta(
            days=6, hours=23, minutes=59, seconds=59, milliseconds=59)
        ks_date_data["selected_end_date"] = end_date
    else:
        start_date = datetime.strptime(
            '%s-W%s-1' % (year, week_no + (ks_week)), "%Y-W%W-%w")
        ks_date_data["selected_start_date"] = ks_convert_into_utc(
            start_date, timezone)
        end_date = start_date + timedelta(
            days=6, hours=23, minutes=59, seconds=59, milliseconds=59)
        ks_date_data["selected_end_date"] = ks_convert_into_utc(
            end_date, timezone)
    return ks_date_data
Example #6
0
def ks_get_date_range_from_quarter(date_state, timezone, type, self):
    ks_date_data = {}

    date = datetime.now(pytz.timezone(timezone))
    year = date.year
    quarter = int((date.month - 1) / 3) + 1

    if date_state == "previous":
        quarter -= 1
        if quarter == 0:
            quarter = 4
            year -= 1
    elif date_state == "next":
        quarter += 1
        if quarter == 5:
            quarter = 1
            year += 1

    start_date = datetime(year, 3 * quarter - 2, 1)

    month = 3 * quarter
    remaining = int(month / 12)
    end_date = datetime(year + remaining, month % 12 + 1,
                        1) - timedelta(seconds=1)
    if type == 'date':
        ks_date_data["selected_start_date"] = datetime.strptime(
            start_date.strftime("%Y-%m-%d"), '%Y-%m-%d')
        ks_date_data["selected_end_date"] = datetime.strptime(
            end_date.strftime("%Y-%m-%d"), '%Y-%m-%d')
    else:
        ks_date_data["selected_start_date"] = ks_convert_into_utc(
            start_date, timezone)
        ks_date_data["selected_end_date"] = ks_convert_into_utc(
            end_date, timezone)
    return ks_date_data
def ks_get_date_range_from_quarter(date_state):
    ks_date_data = {}

    date = datetime.now()
    year = date.year
    quarter = int((date.month - 1) / 3) + 1

    if date_state == "previous":
        quarter -= 1
        if quarter == 0:
            quarter = 4
            year -= 1
    elif date_state == "next":
        quarter += 1
        if quarter == 5:
            quarter = 1
            year += 1

    ks_date_data["selected_start_date"] = datetime(year, 3 * quarter - 2, 1)

    month = 3 * quarter
    remaining = int(month / 12)
    ks_date_data["selected_end_date"] = datetime(
        year + remaining, month % 12 + 1, 1) - timedelta(seconds=1)

    return ks_date_data
Example #8
0
def ks_get_date_range_from_month(date_state, timezone, type,self):
    ks_date_data = {}

    date = datetime.now(pytz.timezone(timezone))
    year = date.year
    month = date.month

    if date_state == "previous":
        month -= 1
        if month == 0:
            month = 12
            year -= 1
    elif date_state == "next":
        month += 1
        if month == 13:
            month = 1
            year += 1

    end_year = year
    end_month = month
    if month == 12:
        end_year += 1
        end_month = 1
    else:
        end_month += 1
    start_date = datetime(year, month, 1)
    end_date = datetime(end_year, end_month, 1) - timedelta(seconds=1)
    if type == 'date':
        ks_date_data["selected_start_date"] = start_date
        ks_date_data["selected_end_date"] = end_date
    else:
        ks_date_data["selected_start_date"] = ks_convert_into_utc(start_date, timezone)
        ks_date_data["selected_end_date"] = ks_convert_into_utc(end_date, timezone)
    return ks_date_data
def ks_get_date_range_from_future(date_state):
    ks_date_data = {}

    date = datetime.now()

    ks_date_data["selected_start_date"] = date
    ks_date_data["selected_end_date"] = False
    return ks_date_data
def ks_get_date_range_from_pastwithout(date_state):
    ks_date_data = {}
    date = datetime.now()
    hour = date.hour + 1
    date = date - timedelta(hours=hour)
    ks_date_data["selected_start_date"] = False
    ks_date_data["selected_end_date"] = date
    return ks_date_data
def ks_get_date_range_from_futurestarting(date_state):
    ks_date_data = {}
    date = datetime.now()
    hour = (24 - date.hour) + 1
    date = date + timedelta(hours=hour)
    ks_date_data["selected_start_date"] = date
    ks_date_data["selected_end_date"] = False
    return ks_date_data
def ks_date_series_l(ks_date_selection):
    ks_date_data = {}
    date_filter_options = {
        'day': 0,
        'week': 7,
        'month': 30,
        'quarter': 90,
        'year': 365,
        'past': False,
        'future': False
    }
    ks_date_data["selected_end_date"] = datetime.strptime(
        datetime.now().strftime("%Y-%m-%d 23:59:59"), '%Y-%m-%d %H:%M:%S')
    ks_date_data["selected_start_date"] = datetime.strptime(
        (datetime.now() -
         timedelta(days=date_filter_options[ks_date_selection])
         ).strftime("%Y-%m-%d 00:00:00"), '%Y-%m-%d %H:%M:%S')
    return ks_date_data
Example #13
0
def ks_get_date_range_from_future(date_state, self_tz, type,self):
    ks_date_data = {}
    date = datetime.now(pytz.timezone(self_tz))
    ks_date_data["selected_end_date"] = False
    if type == 'date':
        ks_date_data["selected_start_date"] = date
    else:
        ks_date_data["selected_start_date"] = ks_convert_into_utc(date,self_tz)
    return ks_date_data
Example #14
0
def ks_get_date_range_from_past(date_state, self_tz, type, self):
    ks_date_data = {}
    date = datetime.now(pytz.timezone(self_tz))
    if type == 'date':
        ks_date_data["selected_end_date"] = datetime.strptime(
            date.strftime("%Y-%m-%d"), '%Y-%m-%d')
    else:
        ks_date_data["selected_end_date"] = ks_convert_into_utc(date, self_tz)
    ks_date_data["selected_start_date"] = False
    return ks_date_data
Example #15
0
def ks_get_date_range_from_futurestarting(date_state, self_tz):
    ks_date_data = {}
    date = datetime.now()
    hour = (24 - date.hour) + 1
    date = date + timedelta(hours=hour)
    start_date = datetime(date.year, date.month, date.day)
    ks_date_data["selected_start_date"] = ks_convert_into_utc(
        start_date, self_tz)
    ks_date_data["selected_end_date"] = False
    return ks_date_data
def ks_get_date_range_from_day(date_state):
    ks_date_data = {}

    date = datetime.now()

    if date_state=="previous":
        date = date-timedelta(days=1)

    ks_date_data["selected_start_date"] = datetime(date.year,date.month,date.day)
    ks_date_data["selected_end_date"] = datetime(date.year, date.month, date.day) + timedelta(days=1, seconds=-1)
    return ks_date_data
Example #17
0
def ks_get_date_range_from_futurestarting(date_state, self_tz, type,self):
    ks_date_data = {}
    date = datetime.now(pytz.timezone(self_tz))
    date = date + timedelta(days=1)
    start_date = datetime.strptime(date.strftime("%Y-%m-%d 00:00:00"), '%Y-%m-%d %H:%M:%S')
    if type == 'date':
        ks_date_data["selected_start_date"] = start_date
        ks_date_data["selected_end_date"] = False
    else:
        ks_date_data["selected_start_date"] = ks_convert_into_utc(start_date, self_tz)
        ks_date_data["selected_end_date"] = False
    return ks_date_data
Example #18
0
def ks_get_date_range_from_pastwithout(date_state, self_tz, type,self):
    ks_date_data = {}
    date = datetime.now(pytz.timezone(self_tz))
    hour = date.hour + 1
    date = date - timedelta(hours=hour)
    date = datetime.strptime(date.strftime("%Y-%m-%d 23:59:59"), '%Y-%m-%d %H:%M:%S')
    ks_date_data["selected_start_date"] = False
    if type == 'date':
        ks_date_data["selected_end_date"] = date
    else:
        ks_date_data["selected_end_date"] = ks_convert_into_utc(date, self_tz)
    return ks_date_data
def ks_get_date_range_from_year(date_state):
    ks_date_data = {}

    date = datetime.now()
    year = date.year

    if date_state=="previous":
        year -= 1

    ks_date_data["selected_start_date"] = datetime(year, 1, 1)
    ks_date_data["selected_end_date"] = datetime(year+1, 1, 1)-timedelta(seconds=1)

    return ks_date_data
def ks_get_date_range_from_week(date_state):
    ks_date_data = {}

    date = datetime.now()

    if date_state=="previous":
        date = date-timedelta(days=7)

    date_iso = date.isocalendar()
    year = date_iso[0]
    week_no = date_iso[1]

    ks_date_data["selected_start_date"] = datetime.strptime('%s-W%s-1'%(year,week_no-1), "%Y-W%W-%w")
    ks_date_data["selected_end_date"] = ks_date_data["selected_start_date"] + timedelta(days=6,hours=23,minutes=59,seconds=59,milliseconds=59)
    return ks_date_data
Example #21
0
def ks_get_date_range_from_day(date_state, timezone):
    ks_date_data = {}

    date = datetime.now()

    if date_state == "previous":
        date = date - timedelta(days=1)
    elif date_state == "next":
        date = date + timedelta(days=1)
    start_date = datetime(date.year, date.month, date.day)
    end_date = datetime(date.year, date.month, date.day) + timedelta(
        days=1, seconds=-1)
    ks_date_data["selected_start_date"] = ks_convert_into_utc(
        start_date, timezone)
    ks_date_data["selected_end_date"] = ks_convert_into_utc(end_date, timezone)
    return ks_date_data
Example #22
0
def ks_get_date_range_from_year(date_state, timezone):
    ks_date_data = {}

    date = datetime.now()
    year = date.year

    if date_state == "previous":
        year -= 1
    elif date_state == "next":
        year += 1
    start_date = datetime(year, 1, 1)
    end_date = datetime(year + 1, 1, 1) - timedelta(seconds=1)
    ks_date_data["selected_start_date"] = ks_convert_into_utc(
        start_date, timezone)
    ks_date_data["selected_end_date"] = ks_convert_into_utc(end_date, timezone)
    return ks_date_data
Example #23
0
def ks_get_date_range_from_year(date_state, timezone, type,self):
    ks_date_data = {}

    date = datetime.now(pytz.timezone(timezone))
    year = date.year

    if date_state == "previous":
        year -= 1
    elif date_state == "next":
        year += 1
    start_date = datetime(year, 1, 1)
    end_date = datetime(year + 1, 1, 1) - timedelta(seconds=1)
    if type == 'date':
        ks_date_data["selected_start_date"] = start_date
        ks_date_data["selected_end_date"] = end_date
    else:
        ks_date_data["selected_start_date"] = ks_convert_into_utc(start_date, timezone)
        ks_date_data["selected_end_date"] = ks_convert_into_utc(end_date, timezone)
    return ks_date_data
Example #24
0
def ks_get_date_range_from_day(date_state, timezone, type, self):
    ks_date_data = {}

    date = datetime.now(pytz.timezone(timezone))

    if date_state == "previous":
        date = date - timedelta(days=1)
    elif date_state == "next":
        date = date + timedelta(days=1)
    start_date = datetime(date.year, date.month, date.day)
    end_date = datetime(date.year, date.month, date.day) + timedelta(
        days=1, seconds=-1)
    if type == 'date':
        ks_date_data["selected_start_date"] = datetime.strptime(
            start_date.strftime("%Y-%m-%d"), '%Y-%m-%d')
        ks_date_data["selected_end_date"] = end_date
        ks_date_data["selected_end_date"] = datetime.strptime(
            end_date.strftime("%Y-%m-%d"), '%Y-%m-%d')
    else:
        ks_date_data["selected_start_date"] = ks_convert_into_utc(
            start_date, timezone)
        ks_date_data["selected_end_date"] = ks_convert_into_utc(
            end_date, timezone)
    return ks_date_data
Example #25
0
def ks_get_date_range_from_past(date_state, self_tz):
    ks_date_data = {}
    date = datetime.now()
    ks_date_data["selected_start_date"] = False
    ks_date_data["selected_end_date"] = date
    return ks_date_data
Example #26
0
def ks_get_date_range_from_past(date_state, self_tz, type):
    ks_date_data = {}
    date = datetime.now(pytz.timezone(self_tz))
    ks_date_data["selected_start_date"] = False
    ks_date_data["selected_end_date"] = ks_convert_into_utc(date, self_tz)
    return ks_date_data