diff --git a/gestion/config/factures.py b/gestion/config/factures.py index 81d7afb5..a5fc5687 100644 --- a/gestion/config/factures.py +++ b/gestion/config/factures.py @@ -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}, } diff --git a/gestion/gest_crans.py b/gestion/gest_crans.py index 12272233..c2848939 100755 --- a/gestion/gest_crans.py +++ b/gestion/gest_crans.py @@ -108,7 +108,7 @@ def set_bases(adher): no, res = dialog(arg) if no: return 1 - + err += _set_chbre(adher, result[3]) # Des erreurs ? @@ -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 @@ -1075,19 +1068,14 @@ def set_vente(proprio): comment = comment[0] else: comment = None - - 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: + return (f,paiement,comment) + + 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) @@ -1106,14 +1094,14 @@ def set_vente(proprio): arg += u'--msgbox "%s\n" 0 0' % error dialog(arg) return 1 - + f = choose_items() if isinstance(f, int): return f 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) @@ -2132,7 +2120,7 @@ def select(clas, quoi, mde=''): arg += u'--msgbox "Il faut au moins une condition.\n\n\n" 0 0' dialog(arg) continue - + ### Recherche try: if mde == 'ro':