-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
113 lines (87 loc) · 4.9 KB
/
main.py
File metadata and controls
113 lines (87 loc) · 4.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# This Python file uses the following encoding: utf-8
"""
Fichier principal à lancer pour faire tourner le logiciel
Usage:
main.py [options]
Options:
-h --help Affiche le présent message
--entrees <chemin> Chemin des fichiers d'entrée
--sansgraphiques Pas d'interface graphique
"""
import sys
from docopt import docopt
from importes import Client, Acces, CoefMachine, CoefPrest, Compte, Livraison, Machine, Prestation, Reservation, DossierSource, DossierDestination
from outils import Outils
from parametres import Edition, Generaux
from traitement import Annexes, BilanMensuel, Facture, Sommes, Verification
from prod2qual import Prod2Qual
from latex import Latex
arguments = docopt(__doc__)
plateforme = sys.platform
if arguments["--sansgraphiques"]:
Outils.interface_graphique(False)
if arguments["--entrees"] :
dossier_data = arguments["--entrees"]
else:
dossier_data = Outils.choisir_dossier(plateforme)
dossier_source = DossierSource(dossier_data)
edition = Edition(dossier_source)
acces = Acces(dossier_source)
clients = Client(dossier_source)
coefmachines = CoefMachine(dossier_source)
coefprests = CoefPrest(dossier_source)
comptes = Compte(dossier_source)
livraisons = Livraison(dossier_source)
machines = Machine(dossier_source)
prestations = Prestation(dossier_source)
reservations = Reservation(dossier_source)
generaux = Generaux(dossier_source)
verification = Verification()
if verification.verification_date(edition, acces, clients, coefmachines, coefprests, comptes, livraisons, machines,
prestations, reservations) > 0:
sys.exit("Erreur dans les dates")
if verification.verification_cohérence(generaux, edition, acces, clients, coefmachines, coefprests, comptes, livraisons,
machines, prestations, reservations) > 0:
sys.exit("Erreur dans la cohérence")
dossier_enregistrement = Outils.chemin_dossier([generaux.chemin, edition.annee,
Outils.mois_string(edition.mois)], plateforme, generaux)
dossier_lien = Outils.lien_dossier([generaux.lien, edition.annee, Outils.mois_string(edition.mois)],
plateforme, generaux)
livraisons.calcul_montants(prestations, coefprests, comptes, clients, verification)
reservations.calcul_montants(machines, coefmachines, comptes, clients, verification)
acces.calcul_montants(machines, coefmachines, comptes, clients, verification)
sommes = Sommes(verification, generaux)
sommes.calculer_toutes(livraisons, reservations, acces, prestations, comptes, clients)
if edition.version == '0':
dossier_csv = Outils.chemin_dossier([dossier_enregistrement, "csv_0"], plateforme, generaux)
else:
dossier_csv = Outils.chemin_dossier([dossier_enregistrement, "csv_" + edition.version + "_" +
edition.client_unique], plateforme, generaux)
dossier_destination = DossierDestination(dossier_csv)
annexes = "annexes"
dossier_annexes = Outils.chemin_dossier([dossier_enregistrement, annexes], plateforme, generaux)
lien_annexes = Outils.lien_dossier([dossier_lien, annexes], plateforme, generaux)
annexes_techniques = "annexes_techniques"
dossier_annexes_techniques = Outils.chemin_dossier([dossier_enregistrement, annexes_techniques], plateforme, generaux)
lien_annexes_techniques = Outils.lien_dossier([dossier_lien, annexes_techniques], plateforme, generaux)
facture_prod = Facture()
facture_prod.factures(sommes, dossier_destination, edition, generaux, clients, comptes,
lien_annexes, lien_annexes_techniques, annexes, annexes_techniques)
prod2qual = Prod2Qual(dossier_source)
if prod2qual.actif:
facture_qual = Facture(prod2qual)
generaux_qual = Generaux(dossier_source, prod2qual)
facture_qual.factures(sommes, dossier_destination, edition, generaux_qual, clients, comptes,
lien_annexes, lien_annexes_techniques, annexes, annexes_techniques)
if Latex.possibles():
Annexes.annexes_techniques(sommes, clients, edition, livraisons, acces, machines, reservations, prestations,
comptes, dossier_annexes_techniques, plateforme, coefprests, coefmachines, generaux)
Annexes.annexes(sommes, clients, edition, livraisons, acces, machines, reservations, prestations, comptes,
dossier_annexes, plateforme, coefprests, coefmachines, generaux)
BilanMensuel.bilan(dossier_destination, edition, sommes, clients, generaux, acces,
reservations, livraisons, comptes)
for fichier in [acces.nom_fichier, clients.nom_fichier, coefmachines.nom_fichier, coefprests.nom_fichier,
comptes.nom_fichier, livraisons.nom_fichier, machines.nom_fichier, prestations.nom_fichier,
reservations.nom_fichier, generaux.nom_fichier, edition.nom_fichier]:
dossier_destination.ecrire(fichier, dossier_source.lire(fichier))
Outils.affiche_message("OK !!!")