Esempio n. 1
0
def edit(user_id, page, current_year, budget_id=None):

    user = Users.get_by_id(user_id)

    if budget_id:
        budget = Budget.get_by_id(budget_id)

        disponible = budget.heure

        prest1 = BudgetPrestation.query(
            BudgetPrestation.budget_id == budget.key
        )

        for pres in prest1:

            if pres.prestation_id.get().sigle == 'FOR':
                formation = pres.heure
            if pres.prestation_id.get().sigle == 'DEV':
                developpement = pres.heure
            if pres.prestation_id.get().sigle == 'ADM':
                administration = pres.heure
            if pres.prestation_id.get().sigle == 'PRO':
                production = pres.heure
    else:
        budget = Budget()

    success = False
    dispo = 0.0
    dispo2 = 0.0

    if request.method == 'POST':

        disponible = request.form['disponible']
        production = request.form['production']
        formation = request.form['formation']
        developpement = request.form['developpement']
        administration = request.form['administration']

        dispo = float(request.form['disponible']) - float(request.form['administration'])
        dispo -= float(request.form['production'])
        dispo -= float(request.form['formation'])
        dispo -= float(request.form['developpement'])
        dispo = round(dispo,1)

        error = False
        if dispo > 0.0:
            error = True
            message = 'La somme des heures de prestation n\'est pas egale aux heures disponibles'
        if dispo < 0.0:
            error = True
            message = 'La somme des heures de prestation est superieure aux heures disponibles '+str(dispo)

        if not error:
            if not budget_id:
                budget.date_start = datetime.date(current_year, 1, 1)
                budget.user_id = user.key

            budget.heure = float(request.form['disponible'])
            bud_id = budget.put()

            prest = Prestation.query(
                Prestation.sigle != None
            )

            for pres in prest:

                presti = BudgetPrestation.query(
                    BudgetPrestation.prestation_id == pres.key,
                    BudgetPrestation.budget_id == bud_id
                ).get()

                if presti:

                    if pres.sigle == 'FOR':
                        presti.heure = float(request.form['formation'])
                    if pres.sigle == 'DEV':
                        presti.heure = float(request.form['developpement'])
                    if pres.sigle == 'ADM':
                        presti.heure = float(request.form['administration'])
                    if pres.sigle == 'PRO':
                        presti.heure = float(request.form['production'])

                    presti.budget_id = bud_id
                    presti.prestation_id = pres.key
                    presti.put()

                else:

                    prestis = BudgetPrestation()

                    if pres.sigle == 'FOR':
                        prestis.heure = float(request.form['formation'])
                    if pres.sigle == 'DEV':
                        prestis.heure = float(request.form['developpement'])
                    if pres.sigle == 'ADM':
                        prestis.heure = float(request.form['administration'])
                    if pres.sigle == 'PRO':
                        prestis.heure = float(request.form['production'])

                    prestis.budget_id = bud_id
                    prestis.prestation_id = pres.key
                    prestis.put()

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

    return render_template('budget/edit.html', **locals())