Rorganisation des formulations de mails en cas d'erreur.
darcs-hash:20050702174847-061a7-53f7f1d0666630ca32a84bafc818b70d1a69b369.gz
This commit is contained in:
parent
bd825ec95a
commit
9084722529
2 changed files with 126 additions and 88 deletions
|
@ -28,7 +28,6 @@ resource.setrlimit(resource.RLIMIT_RSS, (1024*1024*50, 1024*1024*50))
|
|||
description = '%s devis "Crans" "Mail un devis au demandeur"' % sys.argv[0]
|
||||
fic = crans_backend.preliminaires(sys.argv, description)
|
||||
nom_fic = fic.name
|
||||
sys.stderr.write("DEBUG: Fichier %s nettoye.\n" % nom_fic)
|
||||
|
||||
|
||||
## 2) Recuperation de l'utilisateur et de son mail en lecture seule :
|
||||
|
@ -40,27 +39,54 @@ adrmail = utilisateur.mail()
|
|||
if adrmail.find('@') == -1 :
|
||||
adrmail += "@crans.org"
|
||||
adrmail = adrmail.encode("iso8859-15")
|
||||
sys.stderr.write("DEBUG: Utilisateur %s recupere.\n" % utilisateur.Nom())
|
||||
|
||||
To = "%s <%s>" % (utilisateur.Nom(), adrmail)
|
||||
|
||||
## 3) Calcul du prix de l'impression :
|
||||
|
||||
if "media=transparency" in sys.argv:
|
||||
prix = crans_backend.calcul_prix(nom_fic, "transparent")
|
||||
else:
|
||||
prix = crans_backend.calcul_prix(nom_fic, "")
|
||||
sys.stderr.write("DEBUG: Prix calcule : %s euros\n" % prix.c_total_euros)
|
||||
prix = crans_backend.calcul_prix(nom_fic,sys.argv)
|
||||
|
||||
|
||||
## 4) Formulation du mail au vue des resultats
|
||||
|
||||
sujet=u"Devis d'impression n°%(numero)s : %(fichier)s" % {'numero' : sys.argv[1], 'fichier' : unicode(sys.argv[3],"utf-8" ,'replace')}
|
||||
|
||||
if prix.c_total_euros > (utilisateur.solde() - impression.decouvert) :
|
||||
|
||||
# Probleme de taille de papier
|
||||
if prix.erreur=="Taille invalide":
|
||||
sys.stderr.write(("ERROR: Erreur : utilisateur : %s, format invalide : %s" % (utilisateur.Nom(), prix.taille)).encode('latin-1'))
|
||||
possible = u"""
|
||||
Le format de papier que vous avez choisi (%(taille)s) n'est pas valide.
|
||||
|
||||
Cela ne va pas être possible d'imprimer ce document sur Laserjet.
|
||||
|
||||
Rappel : Si vous utilisez lp, il faut définir l'option PageSize
|
||||
""" % {'taille' : prix.taille}
|
||||
|
||||
# Postscript mal formatte
|
||||
elif prix.erreur:
|
||||
sys.stderr.write(("ERROR: Erreur : utilisateur : %s, raison : %s" % (utilisateur.Nom(), prix.erreur)).encode('latin-1'))
|
||||
possible = u"""
|
||||
Il y a malheureusement eu une erreur lors de votre impression.
|
||||
|
||||
Le message d'erreur est le suivant :
|
||||
%(erreur)s
|
||||
|
||||
Si l'erreur se reproduit, envoyez un mail à %(adresse_imprimante)s
|
||||
""" % { 'erreur' : prix.erreur, "adresse_imprimante" : impression.From_imprimante}
|
||||
|
||||
# Compte non suffisamment approvisionné :
|
||||
elif prix.c_total_euros > (utilisateur.solde() - impression.decouvert) :
|
||||
sys.stderr.write("DEBUG: Pas d'impression : Compte trop bas")
|
||||
possible = u"""
|
||||
Désolé, je crois que cela ne va pas être possible d'imprimer.
|
||||
|
||||
Vous devez alimenter votre compte impression pour pouvoir imprimer
|
||||
ce document"""
|
||||
ce document.
|
||||
"""
|
||||
|
||||
# Tout est OK
|
||||
else :
|
||||
possible = u"""
|
||||
template =u"""
|
||||
L'impression que vous avez demandé vous coûterait la modique somme
|
||||
de %(prix)s.
|
||||
|
||||
|
@ -77,16 +103,11 @@ remplissage total d'une face A4 :
|
|||
Nombre de pages : %(pages)s
|
||||
* Nombre de copies : %(copies)s
|
||||
|
||||
Prix total : %(prix)s"""
|
||||
|
||||
if prix.taille=="NON_VALIDE":
|
||||
possible = u"""
|
||||
ATTENTION : Le format de papier que vous avez choisi n'est pas valide.
|
||||
Il ne vous sera pas possible d'imprimer ce document sur Laserjet.
|
||||
|
||||
Rappel : Si vous utilisez lp, il faut définir l'option PageSize"""
|
||||
|
||||
sujet=u"Devis d'impression n°%(numero)s : %(fichier)s" % {'numero' : sys.argv[1], 'fichier' : unicode(sys.argv[3],"utf-8" ,'replace')}
|
||||
Prix total : %(prix)s
|
||||
"""
|
||||
possible = prix.remplis_template(template)
|
||||
|
||||
## 5) Envoi du mail :
|
||||
|
||||
mail = u"""
|
||||
Bonjour,
|
||||
|
@ -98,12 +119,9 @@ Votre compte impression est actuellement cr
|
|||
L'imprimante devis
|
||||
""" % {'solde' : utilisateur.solde(), 'possible' : possible}
|
||||
|
||||
|
||||
## 5) Envoi du mail :
|
||||
|
||||
try:
|
||||
prix.send_mail("%(nom)s <%(adrmail)s>" % {'nom' : utilisateur.Nom(), 'adrmail' : adrmail}, sujet, mail )
|
||||
sys.stderr.write("DEBUG: Mail envoye ; Fin du devis...\n" )
|
||||
crans_backend.send_email(prix.From, To, sujet, mail )
|
||||
sys.stderr.write("INFO: Mail envoye ; Fin du devis...\n" )
|
||||
except:
|
||||
sys.stderr.write("ERROR: Erreur : Impossible d'envoyer le mail a l'adresse <%s>" % adrmail)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue