Commit c9ac505d authored by Maxime Bombar's avatar Maxime Bombar

Si on a déjà réadhéré on peut quand même venir au wei, et on ne paye que la différence

parent 3a61bf2f
......@@ -16,7 +16,7 @@ import mail
import BaseFonctions
import ExceptionsNote
import ReadDatabase
from ServeurFonctions import _badparam, _pasledroit, _private_adhesion, _un_transfert
from ServeurFonctions import _badparam, _pasledroit, _private_adhesion, _un_transfert, _une_transaction
import ServeurFonctions
def wei_main(self):
......@@ -87,8 +87,8 @@ def wei_get_info(self, idwei):
# On ouvre une conneexion avec la base de données
con, cur = BaseFonctions.getcursor()
cur.execute("SELECT *, infos AS pbsante, dept AS section, note AS pseudo FROM wei_1a WHERE idwei = %s;", (idwei,))
infowei = cur.fetchall()
......@@ -142,7 +142,7 @@ def wei_get_listes(self, data):
cur.execute("SELECT COUNT(*) FROM wei_1a WHERE genre='N';")
nonbin = cur.fetchone()['count']
cur.execute("SELECT COUNT(*) FROM wei_1a WHERE dept='A0';")
infos = cur.fetchone()['count']
......@@ -314,35 +314,73 @@ def wei_readherer(self, data):
cur.execute("SELECT count(*) AS nb FROM adhesions WHERE idbde=%s AND annee=%s;", (inscr["idbde"], annee))
nb = cur.fetchone()['nb']
if inscr["readhere"] or nb > 0:
# La réadhésion a déjà été faite
self._send(None, 14, u"L'adhérent a déjà été réadhéré pour l'année %d" % annee)
return
readh_data = {
'idbde' : inscr["idbde"],
'section' : "%s%s" % (inscr["annee"], inscr["dept"],),
'wei' : True,
}
if inscr["paiement"] == "soge":
pay = {
'type' : 'soge',
'commentaire' : u"Réadhésion",
}
readh_data["pay"] = pay
if inscr["readhere"] or nb > 0:
# La réadhésion a déjà été faite, on fait juste payer le WEI.
# On récupère les infos pertinentes et on prépare à logguer
idbde = inscr["idbde"]
log_ids = [idbde]
if idbde <= 0:
self._debug(3, u"Paiement du wei de %s failed: idbde < 0." % (idbde,))
self._send(None, 15, u"Ce compte ne peut pas venir au WEI.")
return
# On récupère le montant payé à l'adhésion
cur.execute("SELECT t.montant FROM adhesions AS a, transactions AS t WHERE a.idtransaction = t.id AND idbde=%s AND annee=%s;" % (idbde, annee))
montant_adhesion = cur.fetchone()['montant']
# On récupère le prix du wei
cur.execute("""SELECT prix_wei_normalien, prix_wei_non_normalien
FROM configurations
WHERE used;""")
prix_wei_normalien, prix_wei_non_normalien = cur.fetchone()
cur.execute("SELECT normalien FROM comptes WHERE idbde=%s;", (idbde,))
normalien = cur.fetchone()["normalien"]
if normalien:
debit = prix_wei_normalien - montant_adhesion
else:
debit = prix_wei_non_normalien - montant_adhesion
if (not inscr["normalien"]) or (inscr["conge"]):
cur.execute("UPDATE comptes SET normalien = FALSE WHERE idbde=%s;", (inscr["idbde"],))
_, idtransaction = _une_transaction(self, u'bouton', idbde, 0, 1, debit, "WEI %s (Adhésion déjà payée)" % (annee), doitanyway=True, cur=cur)
log_ids.append(idtransaction)
# On n'oublie pas de logguer...
self._log("wei_readhere", cur, readh_data, log_ids)
if (not inscr["normalien"]) or (inscr["conge"]):
cur.execute("UPDATE comptes SET normalien = FALSE WHERE idbde=%s;", (inscr["idbde"],))
cur.execute("COMMIT;")
else:
cur.execute("UPDATE comptes SET normalien = TRUE WHERE idbde=%s;", (inscr["idbde"],))
cur.execute("COMMIT;")
cur.execute("UPDATE wei_vieux SET (readhere, payé) = (TRUE, TRUE) WHERE idwei=%s;", (idwei,))
cur.execute("COMMIT;")
else:
cur.execute("UPDATE comptes SET normalien = TRUE WHERE idbde=%s;", (inscr["idbde"],))
cur.execute("COMMIT;")
if inscr["paiement"] == "soge":
pay = {
'type' : 'soge',
'commentaire' : u"Réadhésion",
}
readh_data["pay"] = pay
self.readherer(readh_data)
if (not inscr["normalien"]) or (inscr["conge"]):
cur.execute("UPDATE comptes SET normalien = FALSE WHERE idbde=%s;", (inscr["idbde"],))
cur.execute("COMMIT;")
else:
cur.execute("UPDATE comptes SET normalien = TRUE WHERE idbde=%s;", (inscr["idbde"],))
cur.execute("COMMIT;")
cur.execute("UPDATE wei_vieux SET (readhere, payé) = (TRUE, TRUE) WHERE idwei=%s;", (idwei,))
cur.execute("COMMIT;")
self.readherer(readh_data)
cur.execute("UPDATE wei_vieux SET (readhere, payé) = (TRUE, TRUE) WHERE idwei=%s;", (idwei,))
cur.execute("COMMIT;")
def wei_search(self, data):
"""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment