Ejemplo n.º 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())
Ejemplo n.º 2
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

    datas = Ferier.query()
    pagination = Pagination(
        css_framework="bootstrap3", page=page, total=datas.count(), search=search, record_name="Ferier"
    )
    datas = datas.order(-Ferier.date)
    if datas.count() > 10:
        if page == 1:
            offset = 0
        else:
            page -= 1
            offset = page * 10
        datas = datas.fetch(limit=10, offset=offset)

    return render_template("conge/jour_ferier.html", **locals())
Ejemplo n.º 3
0
def jour_ferier_edit(ferier_id=None):

    if ferier_id:
        feriers = Ferier.objects.get(id=ferier_id)
        form = FormFerier(obj=feriers)
    else:
        feriers = Ferier()
        form = FormFerier()

    success = False
    if form.validate_on_submit():
        date_field = datetime.datetime.combine(
            function.date_convert(form.date.data),
            datetime.datetime.min.time())
        feriers.date = date_field
        feriers.description = form.description.data

        feriers.save()

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

            if date_field <= function.datetime_convert(date_auto_nows):
                update = True

        flash('Enregistement effectue avec succes', 'success')
        success = True

    return render_template('conge/jour_ferier_edit.html', **locals())
Ejemplo n.º 4
0
def jour_ferier_edit(ferier_id=None):

    if ferier_id:
        feriers = Ferier.get_by_id(ferier_id)
        form = FormFerier(obj=feriers)
    else:
        feriers = Ferier()
        form = FormFerier()

    success = False
    if form.validate_on_submit():

        feriers.date = function.date_convert(form.date.data)
        feriers.description = form.description.data

        feriers.put()

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

            if function.date_convert(form.date.data) <= function.date_convert(date_auto_nows):
                update = True

        flash("Enregistement effectue avec succes", "success")
        success = True

    return render_template("conge/jour_ferier_edit.html", **locals())
Ejemplo n.º 5
0
def jour_ferier_delete(ferier_id):

    if request.args.get("confirmation"):
        return render_template("conge/jour_ferier_confirnation.html", **locals())

    ferier = Ferier.get_by_id(ferier_id)
    prest_ferier = Prestation.query(Prestation.sigle == "FER").get()

    # Ensemble des utilisateurs
    all_user = Users.query(Users.email != "*****@*****.**")

    day = function.date_convert(ferier.date).strftime("%d/%m/%Y")
    dt = datetime.datetime.strptime(day, "%d/%m/%Y")
    start = dt - timedelta(days=dt.weekday())
    end = start + timedelta(days=6)

    for user in all_user:

        tache_ferier = Tache.query(Tache.prestation_id == prest_ferier.key, Tache.user_id == user.key).get()

        if tache_ferier:

            the_temps_ferier = Temps.query(
                Temps.tache_id == tache_ferier.key, Temps.date_start == start, Temps.date_end == end
            ).get()

            if the_temps_ferier:

                all_detailTemps = DetailTemps.query(
                    DetailTemps.temps_id == the_temps_ferier.key, DetailTemps.date == function.date_convert(ferier.date)
                )

                for detailTemps in all_detailTemps:
                    detailTemps.key.delete()

                details = DetailTemps.query(DetailTemps.temps_id == the_temps_ferier.key).count()

                if details:
                    the_temps_ferier.key.delete()

    ferier.key.delete()
    flash("Suppression reussie", "success")
    return redirect(url_for("ferier.jour_ferier"))
Ejemplo n.º 6
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')
Ejemplo n.º 7
0
def exist_date(form, field):
    exist_ferier = Ferier.query(
        Ferier.date == function.date_convert(field.data)
    ).count()
    if exist_ferier:
        raise wtf.ValidationError('Cette date a deja ete cree')
Ejemplo n.º 8
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')
Ejemplo n.º 9
0
def jour_ferier_tache():

    # Ensemble des utilisateurs
    all_user = Users.query(Users.email != "*****@*****.**")
    prest_ferier = Prestation.query(Prestation.sigle == "FER").get()

    for user in all_user:

        exist_tache = Tache.query(Tache.prestation_id == prest_ferier.key, Tache.user_id == user.key).count()

        if not exist_tache:
            tache_conge = Tache()
            tache_conge.titre = "Tache pour suivre les jours feriers"
            tache_conge.prestation_id = prest_ferier.key
            tache_conge.user_id = user.key
            tache_conge = tache_conge.put()

    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.query(Ferier.date <= function.date_convert(date_auto_nows), Ferier.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.query(Tache.prestation_id == prest_ferier.key, Tache.user_id == user.key).get()

                temps = Temps.query(Temps.tache_id == tache.key, Temps.date_start == start, Temps.date_end == end).get()

                detail_fdt = DetailTemps()
                detail_fdt.date = function.date_convert(ferier.date)
                detail_fdt.description = ferier.description
                detail_fdt.heure = function.time_convert("08:00")

                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.key
                else:
                    temps = Temps()
                    temps.user_id = tache.user_id
                    temps.date_start = function.date_convert(start)
                    temps.date_end = function.date_convert(end)
                    temps.tache_id = tache.key
                    time = temps.put()
                    detail_fdt.temps_id = time

                ordre = 1
                exist_temps = DetailTemps.query(DetailTemps.temps_id == detail_fdt.temps_id).count()

                if exist_temps:
                    ordre += exist_temps

                detail_fdt.ordre = ordre

                detail_fdt.put()

            ferier.apply = True
            ferier.put()

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