diff --git a/gestion/config/factures.py b/gestion/config/factures.py index a5fc5687..4e2b5af8 100644 --- a/gestion/config/factures.py +++ b/gestion/config/factures.py @@ -6,4 +6,6 @@ items = { '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}, + 'DEV~ADHESION':{'designation': u'Adhésion à L\'association pour un an', 'pu':20, 'imprimeur': False}, + 'SOLDE':{'designation': u'Rechargement du solde', 'pu':'*', 'imprimeur': False}, } diff --git a/gestion/gest_crans.py b/gestion/gest_crans.py index bb087996..1427fa02 100755 --- a/gestion/gest_crans.py +++ b/gestion/gest_crans.py @@ -983,7 +983,10 @@ def set_vente(proprio): 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 value['pu'] != '*': + checklist.append(u'"%s" "%s (%s€)" "%s"' % (key, value['designation'], value['pu'], on_off(False))) + else: + checklist.append(u'"%s" "%s" "%s"' % (key, value['designation'], on_off(False))) if not checklist: # Il n'y a rien de modifiable @@ -1005,19 +1008,34 @@ def set_vente(proprio): for key in items.keys(): if '%s\n' % key in result: while 1: - arg = u'--title "Nombre de %s ?" ' % items[key]['designation'] - arg += u'--inputbox "" 0 0 "1" ' - annul, res = dialog(arg) - if annul: return 1 - - try: - nombre=int(res[0]) - break - except ValueError, c: - arg = u'--title "Opération impossible" ' - arg += u'--msgbox "%s\n\n\n" 0 0' % to_unicode(c.args[0]) - dialog(arg) - f.ajoute({'nombre': nombre, 'code': key, 'designation': items[key]['designation'], 'pu': items[key]['pu']}) + if items[key]['pu'] != '*': + arg = u'--title "Nombre de %s ?" ' % items[key]['designation'] + arg += u'--inputbox "" 0 0 "1" ' + annul, res = dialog(arg) + if annul: return 1 + try: + nombre=int(res[0]) + break + except ValueError, c: + arg = u'--title "Opération impossible" ' + arg += u'--msgbox "%s\n\n\n" 0 0' % to_unicode(c.args[0]) + dialog(arg) + else: + arg = u'--title "Montant pour %s ?" ' % items[key]['designation'] + arg += u'--inputbox "" 0 0 "1" ' + annul, res = dialog(arg) + if annul: return 1 + try: + nombre=float(res[0]) + break + except ValueError, c: + arg = u'--title "Opération impossible" ' + arg += u'--msgbox "%s\n\n\n" 0 0' % to_unicode(c.args[0]) + dialog(arg) + if items[key]['pu'] != '*': + f.ajoute({'nombre': nombre, 'code': key, 'designation': items[key]['designation'], 'pu': items[key]['pu']}) + else: + f.ajoute({'nombre': 1, 'code': key, 'designation': items[key]['designation'], 'pu': nombre}) texte = [] for art in f.articles(): diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index f969e4df..1d230d63 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -3812,15 +3812,15 @@ class Facture(BaseClasseCrans): # on crédite les articles for art in self._articles(): - # solde impression + # solde impression (on débite d'abord si jamais quelqu'un s'amuse à recharger son solde avec son solde) + if self.modePaiement() == 'solde': + proprio = self.proprietaire() + proprio.solde(operation=0.0 - self.total(), comment="Facture n°%s" % self.numero()) + proprio.save() if art["code"] == "SOLDE": proprio = self.proprietaire() proprio.solde(operation=art['nombre']*art["pu"], comment="Facture n°%s : %s" % (self.numero(), art['designation'])) proprio.save() - elif self.modePaiement() == 'solde': - proprio = self.proprietaire() - proprio.solde(operation=0.0 - self.total(), comment="Facture n°%s" % self.numero()) - proprio.save() def _frais(self): """