def normalize_should_start_after(start_after, tender): if submission_search(QUICK, tender): return start_after date = tender.enquiryPeriod and tender.enquiryPeriod.startDate or get_now() if NORMALIZE_SHOULD_START_AFTER < date: return calc_normalized_datetime(start_after, ceil=True) return start_after
def calculate_period_start_date(date_obj, timedelta_obj, normalized_from_date_obj, tender=None): tender_date = get_first_revision_date(tender, default=get_now()) if tender_date > normalized_from_date_obj: return calc_normalized_datetime(date_obj, ceil=timedelta_obj > timedelta()) else: return date_obj
def calculate_clarifications_business_date(date_obj, timedelta_obj, tender=None, working_days=False, calendar=WORKING_DAYS): accelerator = get_tender_accelerator(tender) if accelerator: return calc_datetime(date_obj, timedelta_obj, accelerator) tender_date = get_first_revision_date(tender, default=get_now()) if tender_date > NORMALIZED_CLARIFICATIONS_PERIOD_FROM: source_date_obj = calc_normalized_datetime(date_obj, ceil=timedelta_obj > timedelta()) else: source_date_obj = date_obj return calculate_tender_date(source_date_obj, timedelta_obj, tender, working_days, calendar)
def calculate_normalized_business_date(date_obj, timedelta_obj, accelerator=None): if accelerator: return calc_datetime(date_obj, timedelta_obj, accelerator) normalized_date = calc_normalized_datetime( date_obj, ceil=timedelta_obj > timedelta()) return calc_working_datetime(normalized_date, timedelta_obj, midnight=True, calendar=WORKING_DAYS)
def calculate_framework_date(date_obj, timedelta_obj, framework=None, working_days=False, calendar=WORKING_DAYS, ceil=False): date_obj = calc_normalized_datetime(date_obj, ceil=ceil) if working_days: return calc_working_datetime(date_obj, timedelta_obj, calendar=calendar) else: return calc_datetime(date_obj, timedelta_obj)