Dplacement d'actions communes dans crans_backend.
Noms de fichiers fournis en utf8. darcs-hash:20050701103051-061a7-abe55bc3fb263b414968e5029796086c702f2795.gz
This commit is contained in:
parent
cc55d751ad
commit
274bced934
2 changed files with 104 additions and 127 deletions
|
@ -8,8 +8,8 @@
|
|||
# Structure lineaire :
|
||||
# 1) Preliminaires
|
||||
# 2) Recuperation des donnees de l'utilisateur
|
||||
# 3) Nettoyage du fichier
|
||||
# 4) Calcul du prix de l'impression
|
||||
# 3) Calcul du prix de l'impression
|
||||
# 4) Formulation du mail
|
||||
# 5) Envoi du mail
|
||||
|
||||
import sys
|
||||
|
@ -25,25 +25,15 @@ resource.setrlimit(resource.RLIMIT_RSS, (1024*1024*50, 1024*1024*50))
|
|||
|
||||
## 1) Preliminaires :
|
||||
|
||||
if len(sys.argv) == 1 :
|
||||
print '%s devis "Crans" "Mail un devis au demandeur"' % sys.argv[0]
|
||||
sys.exit(0)
|
||||
|
||||
if len(sys.argv) not in (6, 7) :
|
||||
sys.stderr.write("ERROR: %s job-id user title copies options [file]\n" % sys.argv[0])
|
||||
sys.exit(1) # Cela stoppe l'imprimante
|
||||
|
||||
if sys.argv[-1].find('/') != -1 :
|
||||
# Fichier fourni
|
||||
entree = open(sys.argv[-1])
|
||||
else :
|
||||
# Lecture sur stdin
|
||||
entree = sys.stdin
|
||||
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 :
|
||||
|
||||
utilisateur = crans_backend.utilisateur(sys.argv[1],sys.argv[2],0)
|
||||
utilisateur = crans_backend.utilisateur(sys.argv[2],0)
|
||||
|
||||
# Recuperation de l'adresse mail
|
||||
adrmail = utilisateur.mail()
|
||||
|
@ -53,62 +43,63 @@ adrmail = adrmail.encode("iso8859-15")
|
|||
sys.stderr.write("DEBUG: Utilisateur %s recupere.\n" % utilisateur.Nom())
|
||||
|
||||
|
||||
## 3) Nettoyage du fichier :
|
||||
|
||||
fic = crans_backend.fichier(entree)
|
||||
nom_fic = fic.name
|
||||
sys.stderr.write("DEBUG: Fichier %s nettoye.\n" % nom_fic)
|
||||
|
||||
|
||||
## 4) Calcul du prix de l'impression :
|
||||
## 3) Calcul du prix de l'impression :
|
||||
|
||||
if "media=transparency" in sys.argv:
|
||||
prix = crans_backend.calcul_prix(nom_fic, "transparency")
|
||||
prix = crans_backend.calcul_prix(nom_fic, "transparent")
|
||||
else:
|
||||
prix = crans_backend.calcul_prix(nom_fic, "")
|
||||
sys.stderr.write("DEBUG: Prix calcule.\n" )
|
||||
sys.stderr.write("DEBUG: Prix calcule : %s euros\n" % prix.c_total_euros)
|
||||
|
||||
|
||||
## 4) Formulation du mail au vue des resultats
|
||||
|
||||
# Formulation du mail au vue des resultats
|
||||
if prix.c_total_euros > (utilisateur.solde() - impression.decouvert) :
|
||||
possible = u"Désolé, je crois que cela ne va pas être possible d'imprimer.\nVous devez alimenter votre compte impression pour pouvoir imprimer ce document."
|
||||
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"""
|
||||
else :
|
||||
possible = u"Il vous sera possible d'imprimer ce document sur Laserjet."
|
||||
possible = u"""
|
||||
L'impression que vous avez demandé vous coûterait la modique somme
|
||||
de %(prix)s.
|
||||
|
||||
Il vous sera possible d'imprimer ce document sur Laserjet.
|
||||
|
||||
Voici le détail de votre devis, 100 unités correspondant à un
|
||||
remplissage total d'une face A4 :
|
||||
|
||||
* Format : %(format)s
|
||||
* Pour une copie :
|
||||
Noir : %(noir)s unités
|
||||
Couleur : %(couleur)s unités
|
||||
Nombre de faces : %(faces)s
|
||||
Nombre de pages : %(pages)s
|
||||
* Nombre de copies : %(copies)s
|
||||
|
||||
Prix total : %(prix)s"""
|
||||
|
||||
if prix.format=="NON_VALIDE":
|
||||
possible = u"ATTENTION : Le format de papier que vous avez choisi n'est pas valide\n"
|
||||
possible += u"Il ne vous sera pas possible d'imprimer ce document sur Laserjet.\n"
|
||||
possible += u"Rappel : Si vous utilisez lp il faut définir l'option PageSize"
|
||||
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"""
|
||||
|
||||
## 5) Envoi du mail :
|
||||
sujet=u"Devis d'impression n°%(numero)s : %(fichier)s" % {'numero' : sys.argv[1], 'fichier' : sys.argv[3]}
|
||||
sujet=u"Devis d'impression n°%(numero)s : %(fichier)s" % {'numero' : sys.argv[1], 'fichier' : unicode(sys.argv[3],"utf-8" ,'replace')}
|
||||
|
||||
mail = u"""
|
||||
Bonjour,
|
||||
|
||||
L'impression que vous avez demandé vous sera facturé
|
||||
la modique somme de %%(prix)s.
|
||||
|
||||
Votre compte impression est actuellement crédité de %(solde)s euros.
|
||||
|
||||
Rappel : votre compte est bloqué à %(blocage)s euros
|
||||
|
||||
%(possible)s
|
||||
|
||||
Voici le détail de votre devis
|
||||
|
||||
Résultats de l'analyse :
|
||||
Noir (par face) : %%(noir)s%%%%
|
||||
Couleur (par face) : %%(couleur)s%%%%
|
||||
Nombre de faces (par copie) : %%(faces)s
|
||||
Nombre de pages (par copie) : %%(pages)s
|
||||
Nombre de copies : %%(copies)s
|
||||
Format : %%(format)s
|
||||
Prix total : %%(prix)s
|
||||
|
||||
--
|
||||
L'imprimante devis
|
||||
""" % {'solde' : utilisateur.solde(), 'blocage' : str(impression.decouvert), 'possible' : possible}
|
||||
""" % {'solde' : utilisateur.solde(), 'possible' : possible}
|
||||
|
||||
sys.stderr.write("DEBUG: Tentative d'envoi du mail.\n" )
|
||||
|
||||
## 5) Envoi du mail :
|
||||
|
||||
try:
|
||||
prix.send_mail("%(nom)s <%(adrmail)s>" % {'nom' : utilisateur.Nom(), 'adrmail' : adrmail}, sujet, mail )
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue