[Ventes] Les câbleurs peuvent vendre + utilisation des bonnes interfaces dialog.
* Les câbleurs ne peuvent pas toucher au solde Crans, ni vendre de reliure, mais le reste ils peuvent faire ; * Les checkbox c'est bien quand on a plus d'un choix ; * Stuff.
This commit is contained in:
parent
60bae0afe6
commit
4e33352623
2 changed files with 32 additions and 44 deletions
|
@ -3,7 +3,7 @@
|
|||
|
||||
# Les clef sont un code article
|
||||
items = {
|
||||
'CABLE' : {'designation': u'Cable Ethernet 5m', 'pu': 3},
|
||||
'ADAPTATEUR' : {'designation': u'Adaptateur Ethernet/USB', 'pu': 17},
|
||||
'RELIURE': {'designation': u'Reliure plastique', 'pu': 0.12},
|
||||
'CABLE' : {'designation': u'Cable Ethernet 5m', 'pu': 3, 'imprimeur': False},
|
||||
'ADAPTATEUR' : {'designation': u'Adaptateur Ethernet/USB', 'pu': 17, 'imprimeur': False},
|
||||
'RELIURE': {'designation': u'Reliure plastique', 'pu': 0.12, 'imprimeur': False},
|
||||
}
|
||||
|
|
|
@ -971,7 +971,7 @@ def set_solde(clas):
|
|||
|
||||
def set_vente(proprio):
|
||||
u"""
|
||||
Vent un objet à l'adherent : génère la facture associée.
|
||||
Vend un objet à l'adherent : génère la facture associée.
|
||||
"""
|
||||
from config.factures import items
|
||||
|
||||
|
@ -980,7 +980,9 @@ def set_vente(proprio):
|
|||
checklist = []
|
||||
texte = []
|
||||
|
||||
for key,value in items.items():
|
||||
for key, value in items.iteritems():
|
||||
if value['imprimeur'] and not isimprimeur:
|
||||
continue
|
||||
checklist.append(u'"%s" "%s (%s€)" "%s"' % (key, value['designation'], value['pu'], on_off(False)))
|
||||
|
||||
if not checklist:
|
||||
|
@ -1029,44 +1031,35 @@ def set_vente(proprio):
|
|||
|
||||
|
||||
def choose_paiement(f):
|
||||
checklist = []
|
||||
menu = []
|
||||
texte = []
|
||||
|
||||
checklist.append(u'"1" "Espèce" "%s"' % (on_off(False)))
|
||||
checklist.append(u'"2" "Chèque" "%s"' % (on_off(False)))
|
||||
checklist.append(u'"3" "Solde Crans (actuel : %s€)" "%s"' % (proprio.solde(), on_off(False)))
|
||||
|
||||
menu.append(u'"Spc" "Espèces" ')
|
||||
menu.append(u'"Chq" "Chèque" ')
|
||||
if isimprimeur:
|
||||
menu.append(u'"Sol" "Solde Crans (actuel : %s€)" ' % (proprio.solde()))
|
||||
|
||||
# Il y a qqch de modifiable, on construit la checklist
|
||||
arg = u'--title "Vente de consomables à %s" ' % proprio.Nom()
|
||||
arg += u'--separate-output '
|
||||
arg += u'--checklist "" 0 0 0 '
|
||||
arg += u' '.join(checklist)
|
||||
arg += u'--menu "Mode de paiement : " 0 0 0 '
|
||||
arg += u''.join(menu)
|
||||
|
||||
while True:
|
||||
annul, result = dialog(arg)
|
||||
if annul: return 1
|
||||
|
||||
if len(result) != 1 or not result[0]:
|
||||
arg_err = u'--title "Opération impossible" '
|
||||
arg_err += u'--msgbox "Merci de choisir un seul mode de paiement\n\n\n" 0 0'
|
||||
dialog(arg_err)
|
||||
else:
|
||||
break
|
||||
print result
|
||||
annul, result = dialog(arg)
|
||||
if annul: return 1
|
||||
#print result
|
||||
|
||||
# Ajout du commentaire
|
||||
arg = u'--title "Crédit / débit du compte de %s" ' % proprio.Nom()
|
||||
arg += u'--inputbox "Commentaire à insérer ?" 0 0'
|
||||
if "1\n" in result:
|
||||
if result[0] == "Spc":
|
||||
f.modePaiement('liquide')
|
||||
paiement=u"Espèce"
|
||||
annul, comment = dialog(arg)
|
||||
elif "2\n" in result:
|
||||
elif result[0] == "Chq":
|
||||
f.modePaiement('cheque')
|
||||
paiement=u"Chèque"
|
||||
annul, comment = dialog(arg)
|
||||
elif "3\n" in result:
|
||||
elif result[0] == "Sol" and isimprimeur:
|
||||
f.modePaiement('solde')
|
||||
paiement=u"Solde Crans"
|
||||
comment = None
|
||||
|
@ -1078,16 +1071,11 @@ def set_vente(proprio):
|
|||
|
||||
return (f,paiement,comment)
|
||||
|
||||
def comfirm_and_pay((f,paiement,comment)):
|
||||
|
||||
arg = u'--title "Validation du paiement" '
|
||||
arg += u'--separate-output '
|
||||
arg += u'--checklist "Le paiement de %s€ a-t-il bien été reçu en %s ?\n" 0 0 0 ' % (f.total(), paiement)
|
||||
arg += ' '.join([u'"P" "Paiement de %s€ reçu" "%s"' % (f.total(), on_off(False))])
|
||||
annul, result = dialog(arg)
|
||||
if annul: return 1
|
||||
|
||||
if not "P\n" in result:
|
||||
def confirm_and_pay((f,paiement,comment)):
|
||||
arg = u'--title "Validation du paiement" '
|
||||
arg += u'--yesno "Le paiement de %s€ a-t-il bien été reçu (mode : %s) ?\n" 0 0 ' % (f.total(), paiement)
|
||||
no, result = dialog(arg)
|
||||
if no:
|
||||
arg = u'--title "Annulation de la vente" '
|
||||
arg += u'--msgbox "Le paiement n\'ayant pas été reçue\nla vente est annulée\n" 0 0'
|
||||
dialog(arg)
|
||||
|
@ -1113,7 +1101,7 @@ def set_vente(proprio):
|
|||
ret = choose_paiement(f)
|
||||
if isinstance(ret, int):
|
||||
return ret
|
||||
return comfirm_and_pay(ret)
|
||||
return confirm_and_pay(ret)
|
||||
|
||||
|
||||
def confirm(clas):
|
||||
|
@ -1863,7 +1851,7 @@ def modif_adher(adher):
|
|||
arg += u'"Blackliste" "Modifier la blackliste de cet adhérent" '
|
||||
if isimprimeur:
|
||||
arg += u'"Solde" "Effectuer un débit/crédit pour cet adhérent" '
|
||||
arg += u'"Vente" "Vendre un cable ou adaptateur ethernet ou autre" '
|
||||
arg += u'"Vente" "Vendre un cable ou adaptateur ethernet ou autre" '
|
||||
|
||||
annul, res = dialog(arg)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue