Beispiel #1
0
def index(projet_id):
    menu = 'projet'
    submenu = 'projet'
    context = 'frais'
    title_page = 'Projets - Frais'

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

    projet = Projet.get_by_id(projet_id)
    datas = FraisProjet.query(FraisProjet.projet_id == projet.key)
    pagination = Pagination(css_framework='bootstrap3', page=page, total=datas.count(), search=search, record_name='Projets')

    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('frais/frais_projet.html', **locals())
Beispiel #2
0
def edit(projet_id, frais_projet_id=None):

    projet = Projet.get_by_id(projet_id)
    if frais_projet_id:
        frais_projet = FraisProjet.get_by_id(frais_projet_id)
        form = FormFraisProjet(obj=frais_projet)
        form.frais_id.data = frais_projet.frais_id.get().key.id()
        if frais_projet.frais_id.get().factu:
            form.facturable.data = '1'
        else:
            form.facturable.data = '2'
    else:
        frais_projet = FraisProjet()
        form = FormFraisProjet()

    form.frais_id.choices = [(0, 'Selectionnez un frais')]
    for frais in Frais.query():
        form.frais_id.choices.append((frais.key.id(), frais.libelle))

    if form.frais_id.data:
        frais = Frais.get_by_id(int(form.frais_id.data))
        list_factu = {}
        if frais.nfactu:
            list_factu[2] = 'Non Facturable'
        if frais.factu:
            list_factu[1] = 'Facturable'

    success = False
    if form.validate_on_submit():

        frais_projet.projet_id = projet.key

        frais = Frais.get_by_id(int(form.frais_id.data))
        frais_projet.frais_id = frais.key

        if form.facturable.data == '2':
            frais_projet.facturable = False
        if form.facturable.data == '1':
            frais_projet.facturable = True

        frais_projet.montant = form.montant.data
        frais_projet.put()

        success = True

    return render_template('frais/frais_projet_edit.html', **locals())
Beispiel #3
0
def delete(frais_id):
    fraiss = Frais.get_by_id(frais_id)

    frais_projet = FraisProjet.query(
        FraisProjet.frais_id == fraiss.key
    ).count()

    if frais_projet:
        flash('Impossible de supprimer cet element', 'danger')
    else:
        fraiss.key.delete()
        flash('Suppression reussie', 'success')
    return redirect(url_for('frais.index'))
Beispiel #4
0
def delete(frais_projet_id):
    frais = FraisProjet.get_by_id(frais_projet_id)

    projet_id = frais.projet_id.get().key.id()

    frais_tache = DetailFrais.query(
        DetailFrais.frais_projet_id == frais.key
    )

    if frais_tache.count():
        flash('Impossible de supprimer', 'danger')
    else:
        flash('Enregistrement effectue avec succes', 'success')
        frais.key.delete()
    return redirect(url_for('frais_projet.index', projet_id=projet_id))
Beispiel #5
0
def edit(tache_id, detail_frais_id=None):

    tache = Tache.get_by_id(tache_id)

    if detail_frais_id:
        detail_frais = DetailFrais.get_by_id(detail_frais_id)
        form = FormFraisTache(obj=detail_frais)
        form.frais_projet_id.data = detail_frais.frais_projet_id.get().key.id()
        if detail_frais.detail_fdt:
            form.detail_fdt.data = detail_frais.detail_fdt.get().key.id()
    else:
        detail_frais = DetailFrais()
        form = FormFraisTache()

    form.frais_projet_id.choices = [(0, 'Selectionnez le frais applique')]
    for frais in FraisProjet.query(FraisProjet.projet_id == tache.projet_id):
        form.frais_projet_id.choices.append((frais.key.id(), frais.frais_id.get().libelle))

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


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

    form.detail_fdt.choices = [(0, 'Selectionnez la FDT concernee')]
    if temps:
        for frais in DetailTemps.query(DetailTemps.temps_id == temps.key):
            form.detail_fdt.choices.append((frais.key.id(), frais.description))

    success = False
    if form.validate_on_submit():

        detail_frais.date = function.date_convert(form.date.data)
        detail_frais.montant = form.montant.data
        detail_frais.description = form.description.data

        frais_projet = FraisProjet.get_by_id(form.frais_projet_id.data)
        detail_frais.frais_projet_id = frais_projet.key

        if form.detail_fdt.data:
            details_DFT = DetailTemps.get_by_id(form.detail_fdt.data)
            detail_frais.detail_fdt = details_DFT.key

        if temps:
            detail_frais.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_frais.temps_id = time

        detail_frais.put()

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

    return render_template('frais/frais_tache_edit.html', **locals())