def get_project_members_month(date): """指定月の案件メンバー全部取得する。 :param date 指定月 :return """ first_day = common.get_first_day_by_month(date) today = datetime.date.today() if date.year == today.year and date.month == today.month: first_day = today last_day = common.get_last_day_by_month(date) return models.ProjectMember.objects.public_filter(end_date__gte=first_day, end_date__lte=last_day, project__status=4, status=2)
def get_working_members(date=None): """稼働中のメンバー :param date: 対象年月 :return: """ if not date: first_day = last_day = datetime.date.today() else: first_day = common.get_first_day_by_month(date) last_day = common.get_last_day_by_month(date) members = get_sales_members().filter(projectmember__start_date__lte=last_day, projectmember__end_date__gte=first_day, projectmember__is_deleted=False, projectmember__status=2).distinct() return members
def get_next_change_list(): """入退場リスト :return: """ first_day = common.get_first_day_current_month() last_day = common.get_last_day_by_month(first_day) next_first_day = common.get_first_day_by_month(common.add_months(first_day, 1)) next_last_day = common.get_last_day_by_month(next_first_day) members = models.Member.objects.public_filter(Q(projectmember__end_date__gte=first_day, projectmember__end_date__lte=last_day, projectmember__is_deleted=False, projectmember__status=2) | Q(projectmember__start_date__gte=next_first_day, projectmember__start_date__lte=next_last_day, projectmember__is_deleted=False, projectmember__status=2)).distinct() return members.filter(section__is_on_sales=True)