[main] signale les montants négatifs après lecture des écritures (closes #268788)

authorNicolas Chauvat <nicolas.chauvat@logilab.fr>
changesetd3b2c9316895
branchdefault
phasepublic
hiddenno
parent revision#264fa1a4732e [test] corrige fragilité test en supprimant dépendance envers numéro de version
child revision#e5718ad7d2aa [package] prepare 0.9.1
files modified by this revision
lib/entities.py
main.py
# HG changeset patch
# User Nicolas Chauvat <nicolas.chauvat@logilab.fr>
# Date 1413556337 -7200
# Fri Oct 17 16:32:17 2014 +0200
# Node ID d3b2c93168959b836c33e422445c441be2eedf04
# Parent 264fa1a4732ebd99c900abe7e12e8930b2b8c42e
[main] signale les montants négatifs après lecture des écritures (closes #268788)

diff --git a/lib/entities.py b/lib/entities.py
@@ -113,10 +113,18 @@
1          for c, m in ecriture.debits :
2              debits[c] = debits.get(c,0) + m
3          self.debits = debits.items()
4          self.debits.sort()
5 
6 +    def montants_positifs(self):
7 +        for compte, montant in self.credits:
8 +            if montant < 0:
9 +                return False
10 +        for compte, montant in self.debits:
11 +            if montant < 0:
12 +                return False
13 +        return True
14 
15  # JOURNAL ######################################################################
16 
17  class Journal(object):
18      """
diff --git a/main.py b/main.py
@@ -44,10 +44,12 @@
19      """
20      msg = []
21      for ecrit in ecritures :
22          if not ecrit.est_equilibre() :
23              msg.append("Cette écriture n'est pas équilibrée\n%s" % ecrit)
24 +        if not ecrit.montants_positifs() :
25 +            msg.append("Cette écriture a des montants négatifs\n%s" % ecrit)
26          if not ecrit.entre(debut, fin) and not (ecrit.type == 'report' and ecrit.date < debut):
27              msg.append("Cette écriture a une date non comprise entre %s et %s\n%s"
28                         % (debut, fin, ecrit))
29      return msg
30