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())