Пример #1
0
def jour_ferier():

    title_page = 'Parametre - Jour Ferier'
    menu = 'societe'
    submenu = 'ferier'

    time_zones = pytz.timezone('Africa/Douala')
    date_auto_nows = datetime.datetime.now(time_zones)

    year = date_auto_nows.year

    search = False
    q = request.args.get('q')
    if q:
        search = True
    try:
        page = int(request.args.get('page', 1))
    except ValueError:
        page = 1

    offset = 0
    limit = 10
    if page > 1:
        offset = ((page - 1) * 10)

    datas = Ferier.objects().order_by('-date').skip(offset).limit(limit)
    count = Ferier.objects().count()
    pagination = Pagination(css_framework='bootstrap3',
                            page=page,
                            total=count,
                            search=search,
                            record_name='Ferier')

    return render_template('conge/jour_ferier.html', **locals())
Пример #2
0
def exist_date(form, field):
    date_field = datetime.datetime.combine(function.date_convert(field.data),
                                           datetime.datetime.min.time())
    exist_ferier = Ferier.objects(date=date_field)
    if len(exist_ferier):
        raise wtf.ValidationError('Cette date a deja ete cree')
Пример #3
0
def jour_ferier_tache():

    # Ensemble des utilisateurs
    all_user = Users.objects(email__ne='*****@*****.**')
    prest_ferier = Prestation.objects(sigle='FER').first()

    for user in all_user:

        exist_tache = Tache.objects(
            Q(prestation_id=prest_ferier.id) & Q(user_id=user.id))

        if not exist_tache:
            tache_conge = Tache()
            tache_conge.titre = 'Tache pour suivre les jours feriers'
            tache_conge.prestation_id = prest_ferier.id
            tache_conge.user_id = user.id
            tache_conge = tache_conge.save()

    time_zones = pytz.timezone('Africa/Douala')
    date_auto_nows = datetime.datetime.now(time_zones).strftime(
        "%Y-%m-%d %H:%M:%S")

    all_jour_ferier = Ferier.objects(
        Q(date__lte=function.datetime_convert(date_auto_nows))
        & Q(apply=False))

    for ferier in all_jour_ferier:

        day = ferier.date.strftime('%d/%m/%Y')
        dt = datetime.datetime.strptime(day, '%d/%m/%Y')

        if dt.weekday() < 5:

            start = dt - timedelta(days=dt.weekday())
            end = start + timedelta(days=6)

            for user in all_user:

                tache = Tache.objects(
                    Q(prestation_id=prest_ferier.id)
                    & Q(user_id=user.id)).first()

                temps = Temps.objects(
                    Q(tache_id=tache.id) & Q(date_start=start)
                    & Q(date_end=end)).first()

                detail_fdt = DetailTemps()
                detail_fdt.date = datetime.datetime.combine(
                    function.date_convert(ferier.date),
                    datetime.datetime.min.time())
                detail_fdt.description = ferier.description
                detail_fdt.heure = datetime.datetime(2000, 1, 1, 8, 0, 0)

                time = '08:00'
                time = time.split(':')

                conversion = 0.0

                if int(time[0]) > 0:
                    conversion += float(time[0])

                if int(time[1]) > 0:
                    min = float(time[1]) / 60
                    conversion += min

                detail_fdt.conversion = conversion

                if temps:
                    detail_fdt.temps_id = temps
                else:
                    temps = Temps()
                    temps.user_id = tache.user_id
                    temps.date_start = datetime.datetime.combine(
                        function.date_convert(start),
                        datetime.datetime.min.time())
                    temps.date_end = datetime.datetime.combine(
                        function.date_convert(end),
                        datetime.datetime.min.time())
                    temps.tache_id = tache
                    time = temps.save()
                    detail_fdt.temps_id = time

                ordre = 1
                exist_temps = DetailTemps.objects(
                    Q(temps_id=detail_fdt.temps_id.id))

                if len(exist_temps):
                    ordre += exist_temps

                detail_fdt.ordre = ordre

                detail_fdt.save()

            ferier.apply = True
            ferier.save()

    if request.args.get('return'):
        return redirect(url_for('ferier.jour_ferier'))
    else:
        return render_template('401.html')