supprime compta analytique (closes #257020)

authorNicolas Chauvat <nicolas.chauvat@logilab.fr>
changeset999925d443e0
branchdefault
phasedraft
hiddenyes
parent revision#add27f3a4e09 Export du grand livre au format CSV (closes #256948)
child revision#c6867471f9a2 rapports configurables (closes #257021)
files modified by this revision
ChangeLog
doc/xml/plan-comptable.xml
examples/MaPetiteEntreprise/2003/plan-comptable.xml
lib/comptas.py
lib/entities.py
lib/render.py
main.py
test/smoketest.py
xsl/pilote2html.xsl
# HG changeset patch
# User Nicolas Chauvat <nicolas.chauvat@logilab.fr>
# Date 1405458427 -7200
# Tue Jul 15 23:07:07 2014 +0200
# Node ID 999925d443e03c1ebe313d250765a5b06935ca9f
# Parent add27f3a4e0924d3c0f77135b4fd8eda8c75403f
supprime compta analytique (closes #257020)

diff --git a/ChangeLog b/ChangeLog
@@ -2,14 +2,14 @@
1  ======================
2 
3   -- 0.7.0
4      * add graphical user interface
5 
6 -	
7 +
8  2006-09-13  -- 0.6.3
9      * use matplotlib for diagrams
10 -	
11 +
12  2006-09-06  --  0.6.2
13      * many refactorings
14      * 14289 compt2html.xsl missing in package
15 
16 
@@ -24,41 +24,41 @@
17      * 10391 add link to "journal banque"
18      * 14052 grand livre et balance pr�visionnels
19      * 10058 tracer courbe tr�sorerie jour par jour
20      * 12782 ajouter un exemple
21      * 14122 changement organisation donn�es
22 -	
23 +
24  2005-11-04  --  0.5.0
25 
26      * #9975 add column to "bilan"
27      * #9890 check "bilan" and "resultat" consistency
28 -    * #1152 monthly income table 
29 +    * #1152 monthly income table
30      * #9800 g�n�rer journal rapprochement banque
31 -	
32 +
33  2005-06-14  --  0.4.2
34      * if diagram crashes, go on
35 
36 -	
37 +
38  2005-04-07  --  0.4.1
39      * behave correctly when command-line argument is missing
40 
41      * added to __pkginfo__ journal-banque2html that was missing
42 -	
43 -	
44 +
45 +
46  2005-03-31  --  0.4.0
47      * remove site specific modification of sys.path
48 
49      * add reportlab-imaging dependency
50 
51      * begining of analytical accounts
52 
53      * page to help with bank account verification
54 -	
55 +
56      * various bugfixes
57 
58      * more tests
59 -	
60 +
61  2004-04-07  --  0.3.1
62      * remove leaked info in plan-comptable.xml
63 
64      * improved packaging
65 
diff --git a/doc/xml/plan-comptable.xml b/doc/xml/plan-comptable.xml
@@ -1,7 +1,7 @@
66  <?xml version="1.0" encoding="iso-8859-1"?>
67 -<!DOCTYPE plan-comptable [ <!ENTITY analytique "plan-comptable-analytique.xml"> ] >
68 +<!DOCTYPE plan-comptable []>
69 
70  <plan-comptable>
71 
72  <!-- CLASSE 1 - CAPITAUX -->
73 
@@ -1233,7 +1233,6 @@
74  <compte numero="796" nom="Transferts de charges financi�res"/>
75  <compte numero="797" nom="Transferts de charges exceptionnelles"/>
76  </compte>
77  </compte>
78  </classe>
79 -&analytique;
80  </plan-comptable>
diff --git a/examples/MaPetiteEntreprise/2003/plan-comptable.xml b/examples/MaPetiteEntreprise/2003/plan-comptable.xml
@@ -1,7 +1,7 @@
81  <?xml version="1.0" encoding="iso-8859-1"?>
82 -<!DOCTYPE plan-comptable [ <!ENTITY analytique "plan-comptable-analytique.xml"> ] >
83 +<!DOCTYPE plan-comptable []>
84 
85  <plan-comptable>
86 
87    <!-- CLASSE 1 - CAPITAUX -->
88 
@@ -1233,7 +1233,6 @@
89  	<compte numero="796" nom="Transferts de charges financi�res"/>
90  	<compte numero="797" nom="Transferts de charges exceptionnelles"/>
91        </compte>
92      </compte>
93    </classe>
94 -  &analytique;
95  </plan-comptable>
diff --git a/lib/comptas.py b/lib/comptas.py
@@ -37,23 +37,10 @@
96          while date <= fin :
97              dates.append(date)
98              date += RelativeDateTime(months=+1, day=1)
99          return dates
100 
101 -class ComptaAnalytique(AbstractCompta):
102 -
103 -    def __init__(self, debut, fin, ecritures, nom="") :
104 -        self.debut = debut
105 -        self.fin = fin
106 -        self.nom = nom
107 -        self.journal = Journal(ecritures)
108 -        self.glivre = GrandLivre(self.journal)
109 -        self.balance = Balance(self.glivre)
110 -
111 -    def get_cibles(self):
112 -        return self.CIBLES[:3]
113 -
114  class SousComptabilite(AbstractCompta) :
115      """
116      Journal, livre et balance d'un sous-ensemble des écritures, par
117      exemple sous-compta paye ou sous-compta clients.
118      """
@@ -63,14 +50,10 @@
119          self.nom = nom
120          self.journal = Journal(ecritures)
121          self.glivre = GrandLivre(self.journal)
122          self.balance = Balance(self.glivre)
123 
124 -        # compta analytique
125 -        ana_ecritures = self.journal.get_ecritures_analytique()
126 -        self.analytique = ComptaAnalytique(debut, fin, ana_ecritures)
127 -
128      def get_cibles(self):
129          return self.CIBLES[:3]
130 
131      def get_reports(self) :
132          """
@@ -124,15 +107,10 @@
133          else :
134              toutes_ecritures = ecritures
135          self.banque_journal = Journal( self.get_banque(toutes_ecritures) )
136          self.banque_glivre = GrandLivre(self.banque_journal)
137 
138 -        # compta analytique
139 -        journal_sans_paye = Journal(ecritures+amort)
140 -        ana_ecritures = journal_sans_paye.get_ecritures_analytique()
141 -        self.analytique = ComptaAnalytique(debut, fin, ana_ecritures)
142 -
143          self._cache = {}
144 
145      def get_cibles(self):
146          if self.paye:
147              return self.CIBLES
diff --git a/lib/entities.py b/lib/entities.py
@@ -207,32 +207,10 @@
148          for e in self.get_ecritures(debut, fin) :
149              total_c += sum([m for c,m in e.credits])
150              total_d += sum([m for c,m in e.debits])
151          return total_c, total_d
152 
153 -    def get_ecritures_analytique(self) :
154 -        """génère écritures pour compta analytique à
155 -        partir des écritures de charges et de produits
156 -        """
157 -        ecritures = []
158 -        for e in self.ecritures :
159 -            for c, m in e.credits :
160 -                if c.startswith('7') :
161 -                    ecr = Ecriture(e.date)
162 -                    ecr.libelle = e.libelle
163 -                    ecr.add_debit('produits', m)
164 -                    ecr.add_credit(e.groupe, m)
165 -                    ecritures.append(ecr)
166 -            for c, m in e.debits :
167 -                if c.startswith('6') :
168 -                    ecr = Ecriture(e.date)
169 -                    ecr.libelle = e.libelle
170 -                    ecr.add_credit('charges', m)
171 -                    ecr.add_debit(e.groupe, m)
172 -                    ecritures.append(ecr)
173 -        return ecritures
174 -
175  # COMPTE #######################################################################
176 
177  class Compte(object):
178      """
179      Compte du plan comptable
diff --git a/lib/render.py b/lib/render.py
@@ -43,32 +43,10 @@
180      xsl = 'balance2report.xslt'
181      target = absjoin(config['repertoire_cible'], 'ecritures-report.xml')
182      xslt(src, xsl, target)
183      log('OK\n')
184 
185 -def output_report_analytique(config) :
186 -    """
187 -    Génère écriture report à partir de balance
188 -    """
189 -    src = absjoin(config['repertoire_cible'], 'balance.xml')
190 -    xsl = 'balance2report.xslt'
191 -    target = absjoin(config['repertoire_cible'], 'analytique.ecritures-report.xml')
192 -    xslt(src, xsl, target)
193 -    log('.')
194 -
195 -def output_analytique(config, compta, suffix, debut, fin) :
196 -    """
197 -    Génère écriture report à partir de balance
198 -    """
199 -    target_dir = absjoin(config['repertoire_cible'],'analytique')
200 -    if not osp.exists(target_dir):
201 -        os.makedirs(target_dir)
202 -    target = absjoin(target_dir, 'ecritures%s.xml'%suffix)
203 -    visitors.write_ecritures(file(target,'w'), compta.analytique.journal.ecritures)
204 -    target = absjoin(target_dir, 'balance%s.xml'%suffix)
205 -    visitors.write_balance(file(target,'w'), compta.analytique.balance, debut, fin)
206 -
207 
208  def write_xml(config, compta, date_ext, debut, fin, debug=False):
209      """
210      Ecrit tout en xml
211      """
@@ -92,35 +70,10 @@
212      visitors.write_grand_livre(file(BG+'xml','w'), compta.banque_glivre, debut, fin)
213      visitors.write_historique_comptes(file(CT+'xml','w'), compta.glivre, debut, fin, '5')
214      visitors.write_historique_comptes(file(CP+'xml','w'), compta.glivre, debut, fin, '7')
215 
216 
217 -
218 -def compute_analytique(config, compta, compta_prev, debug=False) :
219 -    dates_recap = compta.get_dates()
220 -    if compta_prev :
221 -        dates_prev = compta_prev.get_dates(compta.fin)
222 -    else :
223 -        dates_prev = []
224 -
225 -    params = get_params(config)
226 -    target_dir = absjoin(config['repertoire_cible'],'analytique')
227 -    config.data['repertoire_cible'] = target_dir
228 -    log("Génération xml...")
229 -    write_xml(config, compta, '', compta.debut, compta.fin, debug)
230 -    if compta_prev:
231 -        write_xml(config, compta, '.prev', compta_prev.debut, compta_prev.fin, debug)
232 -    output_report_analytique(config)
233 -    log('. OK\n')
234 -    log("Génération html...")
235 -    write_html(config, compta, '', compta.debut, compta.fin)
236 -    fname = config.destpath('balance.paye.')
237 -    xslt(fname+'xml', HTML_XSL['balance'], fname+'html', params)
238 -    if compta_prev:
239 -        write_html(config, compta_prev, '.prev', compta_prev.debut, compta_prev.fin)
240 -    log('. OK\n')
241 -
242  def output_xml(config, compta, compta_prev, debug=False) :
243      """
244      Calcule compta et produit résultat en HTML et XML.
245      """
246      # dates
@@ -144,23 +97,10 @@
247      write_xml(config, compta, '', compta.debut, compta.fin, debug)
248      if compta_prev:
249          write_xml(config, compta_prev, '.prev', compta_prev.debut, compta_prev.fin, debug)
250      output_report(config)
251 
252 -    log("Génération écritures pour compta analytique...")
253 -    output_analytique(config, compta, '', compta.debut, compta.fin)
254 -    if compta_prev:
255 -        output_analytique(config, compta_prev, '.prev', compta_prev.debut, compta_prev.fin)
256 -    if compta.paye:
257 -        output_analytique(config, compta.paye, '.paye', compta.debut, compta.fin)
258 -        if compta_prev and compta_prev.paye:
259 -            output_analytique(config, compta_prev.paye, '.paye.prev', compta_prev.debut, compta_prev.fin)
260 -    if osp.exists(config.srcpath('analytique.ecritures-report.xml')):
261 -        os.system('cp %s %s'%(config.srcpath('analytique.ecritures-report.xml'),
262 -                              config.destpath('analytique/ecritures-report.xml')))
263 -    log('OK\n')
264 -
265      # état facturation
266      xslt(config.destpath('journal.xml'),
267           'journal2facturation.xslt',
268           config.destpath('facturation.xml'),
269           params)
diff --git a/main.py b/main.py
@@ -18,11 +18,11 @@
270      set_color_formatter()
271 
272  from pycompta import FIN, absjoin, log
273  from pycompta import RelativeDateTime, Date
274  from pycompta.lib import entities, xmlreader, render
275 -from pycompta.lib.comptas import Comptabilite, SousComptabilite, ComptaAnalytique
276 +from pycompta.lib.comptas import Comptabilite, SousComptabilite
277  from pycompta.lib.config import get_config
278 
279  def make_date(s, day_in_month=1) :
280      """renvoie objet date à partir de chaîne du type 200306"""
281      return Date(int(s[:4]), int(s[4:]), day_in_month)
@@ -49,29 +49,10 @@
282          if not ecrit.entre(debut, fin) and not (ecrit.type == 'report' and ecrit.date < debut):
283              msg.append("Cette écriture a une date non comprise entre %s et %s\n%s"
284                         % (debut, fin, ecrit))
285      return msg
286 
287 -def mk_compta_analytique(config, debut, fin, prev):
288 -    """
289 -    Lit fichiers ecritures dans targetdir/analytique et
290 -    renvoit compta analytique calculée
291 -    """
292 -    log("Comptabilité Analytique\n")
293 -    log("   lecture fichiers...")
294 -    target_dir = absjoin(config['repertoire_cible'], 'analytique')
295 -    ecritures = read_ecritures(target_dir, 'ecriture')
296 -    log(".")
297 -    for msg in check_ecritures(ecritures, debut, fin+RelativeDateTime(days=+1)):
298 -        logging.warning(msg)
299 -    log(".")
300 -    compta = ComptaAnalytique(debut, fin, ecritures, [])
301 -    log(" OK (%s ecritures lues)\n" % len(ecritures))
302 -    if prev :
303 -        logging.info('previsions pour compta analytique sont pas encore calculables')
304 -    return compta, None
305 -
306  def mk_comptas(config, debut, fin, prev) :
307      """
308      Lit fichiers et calcule comptabilités
309      """
310      # comptabilité
@@ -151,12 +132,10 @@
311  ## MAIN ########################################################################
312 
313  def mk_optparser():
314      usage = "usage: %prog [options] <source> <target>"
315      parser = optparse.OptionParser(usage)
316 -    parser.add_option('--analytique', action='store_true', default=False,
317 -                      help=u'calcule compta analytique')
318      parser.add_option('--xml', action='store_true', default=True,
319                        help=u'écrit la compta en XML [defaut]')
320      parser.add_option('--no-xml', action='store_false', dest='xml',
321                        help=u'ne pas regénérer le XML')
322      parser.add_option('--html', action='store_true', default=True,
@@ -175,22 +154,10 @@
323                        help=u"ignore les prévisions si il y en a")
324      parser.add_option('--profile', action='store_true', default=False,
325                        help=u"run and print profiling information")
326      return parser
327 
328 -
329 -def run_analytique(config, debut, fin, prev, options):
330 -    try:
331 -        compta, compta_prev = mk_compta_analytique(config, debut, fin, prev)
332 -        if options.no_prev:
333 -            compta_prev = None
334 -        render.compute_analytique(config, compta, compta_prev)
335 -    except entities.ExceptionEcriture, exc:
336 -        msg = "Ecriture non equilibree dans le fichier %s\n" % path
337 -        log(msg+str(exc)+'\n')
338 -        return 1
339 -
340  def run_standard(config, debut, fin, prev, options):
341      try:
342          compta, compta_prev = mk_comptas(config, debut, fin, prev)
343          if options.no_prev:
344              compta_prev = None
@@ -251,13 +218,11 @@
345          prev = make_date(config['fin_prev'], -1)
346      else :
347          prev = None
348 
349      # run
350 -    if options.analytique :
351 -        return run_analytique(config, debut, fin, prev, options)
352 -    elif options.profile:
353 +    if options.profile:
354          log('*** profiled run ***\n')
355          from hotshot import Profile, stats
356          prof = Profile('stones.prof')
357          prof.runcall(run_standard, config, debut, fin, prev, options)
358          prof.close()
diff --git a/test/smoketest.py b/test/smoketest.py
@@ -181,59 +181,19 @@
359      def test_bilan(self) :
360          """v�rifie bilan"""
361          self.assertEqual( self.compta.bilan.get_bilan(self.debut, self.fin),
362                            (335488,335488) )
363 
364 -    def test_analytique(self):
365 -        for ecr in self.compta.analytique.journal.ecritures:
366 -            for item in ecr.credits + ecr.debits:
367 -                assert item[0] in ['aaa','charges','produits']
368 -
369  class CasBrico2(CasBrico) :
370      """
371      le m�me qui charge les donn�es depuis XML
372      """
373 -    def _setUp(self): # XXXFIME: reactiver
374 +    def skip_setUp(self): # XXXFIME: reactiver
375          self.debut = Date(2002,1,1)
376          self.fin = Date(2002,1,31)
377          self.filepath = osp.join(osp.abspath(osp.dirname(__file__)),
378                                   'data/casbrico/ecritures.xml')
379          self.ecritures = xmlreader.get_ecritures(file(self.filepath))
380          self.compta = Comptabilite(self.debut, self.fin, self.ecritures,[])
381 
382 -class ExampleTC(testlib.TestCase):
383 -
384 -    def setUp(self):
385 -        self.dirpath = osp.join(osp.abspath(osp.dirname(__file__)),
386 -                                '../examples/MaPetiteEntreprise/2003/')
387 -        self.tmpdir = tempfile.mkdtemp()
388 -        self.anadir = osp.join(self.tmpdir,'analytique')
389 -
390 -    def tearDown(self):
391 -        os.system('rm -rf %s'%self.tmpdir)
392 -
393 -    def test_main(self):
394 -        main.run([self.dirpath, self.tmpdir])
395 -        anadir = osp.join(self.tmpdir,'analytique')
396 -        assert osp.isdir(self.anadir)
397 -        self.assertEqual(set(os.listdir(self.anadir)),
398 -                         set(['balance.xml','ecritures.xml',
399 -                              'balance.prev.xml','ecritures.prev.xml',
400 -                              'ecritures-report.xml']))
401 -        tree = ET.parse(osp.join(self.anadir,'balance.xml'))
402 -        root = tree.getroot()
403 -        self.assertEqual(root.tag, 'balance')
404 -        nums = [child.get('numero') for child in root]
405 -        self.assertItemsEqual(nums, ['aaa','charges','produits',''])
406 -
407 -        main.run(['--analytique', self.dirpath, self.tmpdir])
408 -
409 -    def test_main_noprev(self):
410 -        main.run(['--no-prev', self.dirpath, self.tmpdir])
411 -        assert osp.isdir(self.anadir)
412 -        self.assertEqual(set(os.listdir(self.anadir)),
413 -                         set(['balance.xml','ecritures.xml',
414 -                              'ecritures-report.xml']))
415 -        main.run(['--no-prev', '--analytique', self.dirpath, self.tmpdir])
416 -
417  if __name__ == '__main__':
418      testlib.unittest_main()
diff --git a/xsl/pilote2html.xsl b/xsl/pilote2html.xsl
@@ -58,14 +58,10 @@
419  -->
420 
421  <xsl:if test="pilote/previsions/mensualite">
422  <h2>Pr�visions</h2>
423 
424 -<!--
425 -<p>Analytique : <a href="analytique/grand-livre.prev.html">Grand Livre</a> - <a href="analytique/balance.prev.html">Balance</a></p>
426 --->
427 -
428  <table align="center" cellpadding="5" class="pycompta">
429      <tr>
430      <th></th>
431      <th><a href="journal.prev.html">Journal</a></th>
432      <th><a href="grand-livre.prev.html">Grand Livre</a></th>
@@ -109,11 +105,11 @@
433 
434    <xsl:apply-templates select="pilote/recapitulatif/mensualite"/>
435 
436  </table>
437 
438 -<p><a href="plan-comptable.html">Plan Comptable</a> - Compta Analytique : <a href="analytique/grand-livre.html">Grand Livre</a> - <a href="analytique/balance.html">Balance</a></p>
439 +<p><a href="plan-comptable.html">Plan Comptable</a></p>
440 
441  <h2>Graphiques</h2>
442 
443  <!--
444  <p align="center"><img border="1" src="comptes.png"/></p>