From fd77619c62d77783b69c09749c704ee4d09c71d2 Mon Sep 17 00:00:00 2001 From: Phuoc CAO Date: Mon, 29 Apr 2019 21:20:28 +0200 Subject: [PATCH] ajout facturer rapport de RDF --- mondumas/models/dossier.py | 15 ++++- mondumas/routes.py | 1 + mondumas/templates/dossier/rdf_bill.pt | 78 ++++++++++++++++++++++++++ mondumas/templates/dossier/rdf_view.pt | 2 + mondumas/views/dossier.py | 40 ++++++++++++- 5 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 mondumas/templates/dossier/rdf_bill.pt diff --git a/mondumas/models/dossier.py b/mondumas/models/dossier.py index ebdd795..23d7517 100644 --- a/mondumas/models/dossier.py +++ b/mondumas/models/dossier.py @@ -204,9 +204,14 @@ def get_rapport_by_no_id(request,no_id): results = request.dbsession.execute(query, {'no_id': no_id}).first() return results +def get_articles_by_fam(request, fam): + query = "SELECT * FROM articles WHERE FAM = :fam;" + results = request.dbsession.execute(query, {'fam': fam}).fetchall() + return results + def get_rapport_rdf(request): - # les rapports deRDF - query = "SELECT * FROM dem_rdf;" + # les rapports de RDF encours (non encore facturés) + query = "SELECT * FROM dem_rdf where date_facture IS NULL;" results = request.dbsession.execute(query, ).fetchall() return results @@ -247,3 +252,9 @@ def delete_rapport(request, no_id): def validate_rapport(request, no_id): query = "UPDATE dem_rdf SET date_relu=CURRENT_DATE WHERE no_id = :no_id" execute_query(request, query, {'no_id': no_id}) + +def insert_facture_rdf(request, societe, nochantier, user, ref, date_rapport): + # créer une facture vierge à partir du dossier + query = "CALL spINS_FACTURE_RDF(:societe, :nochantier, :user, :ref, :date_rapport)" + execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'user': user, 'ref': ref, 'date_rapport': date_rapport}) + diff --git a/mondumas/routes.py b/mondumas/routes.py index 8c3cdd2..2e0ae12 100644 --- a/mondumas/routes.py +++ b/mondumas/routes.py @@ -19,6 +19,7 @@ def includeme(config): config.add_route('dossier_select', '/dossier_select/{date}') config.add_route('dossier_selected', '/dossier_selected/{goto}/{date}/{nodossier}') config.add_route('dossier_view', '/dossier_view/{nodossier}') + config.add_route('rdf_bill','/rdf_bill/{no_id}') config.add_route('rdf_edit','/rdf_edit/{nodossier}/{date_inter}') config.add_route('rdf_imgdel','/rdf_imgdel/{nochantier}/{norapport}/{nomfic}') config.add_route('rdf_list','/rdf_list') diff --git a/mondumas/templates/dossier/rdf_bill.pt b/mondumas/templates/dossier/rdf_bill.pt new file mode 100644 index 0000000..2e52d8c --- /dev/null +++ b/mondumas/templates/dossier/rdf_bill.pt @@ -0,0 +1,78 @@ + +
+ +
+
+ : ${nodossier}
+ : ${norapport}
+ : ${rapport.date_inter.strftime('%d-%m-%Y')}
+ + + +
+ +
+

ADRESSE d'INTERVENTION

+
+ + + + + +
+

+

${rapport.C_QUALITE} ${rapport.C_NOM}

+ ${rapport.C_ADR}
+ ${rapport.C_ADR2}
+ ${rapport.C_CP} ${rapport.C_VILLE}
+

+
+

+ Assureur : ${rapport.NOMCLI}
+ No Sinistre : ${rapport.NOSIN} +
+ Téléphone : ${rapport.C_TEL1}
+ Mobile: ${rapport.C_TELP}
+

+
+
+
+ +
+ +
+ +
+
+
+
+
+ + Retour rapport + +
+
+
+
+
+
+ +
+
+
+
diff --git a/mondumas/templates/dossier/rdf_view.pt b/mondumas/templates/dossier/rdf_view.pt index b3026f0..e7155c5 100644 --- a/mondumas/templates/dossier/rdf_view.pt +++ b/mondumas/templates/dossier/rdf_view.pt @@ -353,6 +353,8 @@ Aperçu PDF + + Générer Facture diff --git a/mondumas/views/dossier.py b/mondumas/views/dossier.py index 6abb809..2670f25 100644 --- a/mondumas/views/dossier.py +++ b/mondumas/views/dossier.py @@ -601,7 +601,7 @@ def rdf_view(request): if 'form.delete' in request.params: delete_rapport(request, norapport) - request.session.flash(u"Le rapporta été supprimé avec succès.", 'success') + request.session.flash(u"Le rapport a été supprimé avec succès.", 'success') return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier)) return { @@ -658,3 +658,41 @@ def rdf_imgdel(request): request.session.flash(u"La photo %s a été supprimé avec succès" % (nomfic), 'success') return HTTPFound(location=request.route_url("upload_img", norapport=norapport)) +@view_config(route_name='rdf_bill', renderer='../templates/dossier/rdf_bill.pt', permission='view') +def rdf_bill(request): + logged_in = request.authenticated_userid.upper() + norapport = request.matchdict['no_id'] + url = request.route_url('rdf_bill', no_id=norapport) + + # lire le rapport + rapport = get_rapport_by_no_id(request, norapport) + nodossier = 'PL-' + str(rapport.nochantier) + + if not rapport.date_rapport: + request.session.flash(u"Le rapport n'a été encore généré. Facturation impossible", 'danger') + return HTTPFound(location=request.route_url('rdf_view', no_id=norapport)) + + # lire tous les articles RDF + articles = get_articles_by_fam(request, 'RDF') + article = 'RDF1' + + if 'form.submitted' in request.params: + # lire article à facturer + article = request.params['article'] + insert_facture_rdf(request, 'PL', rapport.nochantier, logged_in, article, rapport.date_rapport.strftime('%d-%m-%Y')) + + request.session.flash(u"Le rapport a été généré avec succès.", 'success') + return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier)) + + return { + 'page_title': "Générer une facture pour le rapport du %s" % (rapport.date_inter.strftime('%d-%m-%Y')), + 'url': url, + 'pt_name': 'rdf_view', + 'logged_in': logged_in, + 'rapport': rapport, + 'nodossier': nodossier, + 'nochantier': rapport.nochantier, + 'norapport': norapport, + 'articles': articles, + 'article' : article, + }