From 5ddbc49fec5f11a1c0404a4ed8cf07dc87f2d1b6 Mon Sep 17 00:00:00 2001 From: Phuoc CAO Date: Wed, 13 May 2020 15:40:29 +0200 Subject: [PATCH] ajout changement de client d'un rdf --- mondumas/models/dossier.py | 17 +++- mondumas/routes.py | 2 + mondumas/templates/agenda/agenda.pt | 2 +- mondumas/templates/agenda/rdv_edit.pt | 16 ++-- mondumas/templates/dossier/dossier_view.pt | 4 +- mondumas/templates/dossier/rdf_client.pt | 91 ++++++++++++++++++++++ mondumas/templates/dossier/rdf_view.pt | 58 +++++++------- mondumas/templates/dossier/suivi_edit.pt | 2 +- mondumas/views/agenda.py | 2 +- mondumas/views/default.py | 18 ++++- mondumas/views/dossier.py | 36 ++++++++- 11 files changed, 197 insertions(+), 51 deletions(-) create mode 100644 mondumas/templates/dossier/rdf_client.pt diff --git a/mondumas/models/dossier.py b/mondumas/models/dossier.py index 9f62edd..db032f7 100644 --- a/mondumas/models/dossier.py +++ b/mondumas/models/dossier.py @@ -45,6 +45,11 @@ def get_dossier_by_sinistre(request,societe, nosin): results = request.dbsession.execute(query).first() return results +def get_clients_byName(request, societe, nom): + query = "SELECT * FROM clients WHERE societe = '%s' and nom LIKE '%s';" % (societe, nom + '%'); + results = request.dbsession.execute(query).fetchall() + return results + def get_devis_by_no(request,nodossier): societe = nodossier[0:2] @@ -281,10 +286,16 @@ 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): +def update_rapport_client(request, norapport, nomClient, codeClient): + societe = codeClient[0:2] + cd_cli = int(codeClient[3:]) + query = "UPDATE dem_rdf SET CD_CLI = :cd_cli, NOMCLI = :nomClient WHERE no_id = :norapport" + execute_query(request, query, {'norapport': norapport, 'cd_cli': cd_cli, 'nomClient': nomClient}) + +def insert_facture_rdf(request, societe, nochantier, cd_cli, nomcli, 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}) + query = "CALL spINS_FACTURE_RDF(:societe, :nochantier, :cd_cli, :nomcli, :user, :ref, :date_rapport)" + execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'cd_cli': cd_cli, 'nomcli': nomcli, 'user': user, 'ref': ref, 'date_rapport': date_rapport}) def insert_dossier(request, societe, cd_cli, c_nom, c_adr, c_adr2, c_cp, c_ville, c_telp, nosin, c_obs, tx_trav): # créer une dem_devis selon l'email de l'OS diff --git a/mondumas/routes.py b/mondumas/routes.py index b7e5cb9..1a00f45 100644 --- a/mondumas/routes.py +++ b/mondumas/routes.py @@ -7,6 +7,7 @@ def includeme(config): # default config.add_route('home', '/') config.add_route('affiche_message','/affiche_message/{login}') + config.add_route('ajax_client', '/ajax_client') config.add_route('ajax_codepostal', '/ajax_codepostal') config.add_route('ajax_lookup', '/ajax_lookup') config.add_route('changer_mdp', '/changer_mdp') @@ -26,6 +27,7 @@ def includeme(config): 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_client','/rdf_client/{no_id}') config.add_route('rdf_edit','/rdf_edit/{nodossier}/{date_inter}') config.add_route('rdf_list','/rdf_list') config.add_route('rdf_rapport','/rdf_rapport/{no_id}') diff --git a/mondumas/templates/agenda/agenda.pt b/mondumas/templates/agenda/agenda.pt index befc729..7fbeea4 100644 --- a/mondumas/templates/agenda/agenda.pt +++ b/mondumas/templates/agenda/agenda.pt @@ -65,7 +65,7 @@
- +
diff --git a/mondumas/templates/agenda/rdv_edit.pt b/mondumas/templates/agenda/rdv_edit.pt index 2e8584c..11f592a 100644 --- a/mondumas/templates/agenda/rdv_edit.pt +++ b/mondumas/templates/agenda/rdv_edit.pt @@ -59,15 +59,13 @@
-
- - Annuler - - -
+ + Annuler + +
diff --git a/mondumas/templates/dossier/dossier_view.pt b/mondumas/templates/dossier/dossier_view.pt index 11c1e72..d0e167c 100644 --- a/mondumas/templates/dossier/dossier_view.pt +++ b/mondumas/templates/dossier/dossier_view.pt @@ -249,7 +249,7 @@ Date interv. Date rapport Chantier - No sinistre + Client Modif le @@ -260,7 +260,7 @@ ${rapport.date_rapport.strftime('%d-%m-%Y')} ${rapport.C_QUALITE} ${rapport.C_NOM} - ${rapport.NOSIN} + ${rapport.NOMCLI} ${rapport.modif_le.strftime('%d-%m-%Y')} - ${rapport.auteur_code} diff --git a/mondumas/templates/dossier/rdf_client.pt b/mondumas/templates/dossier/rdf_client.pt new file mode 100644 index 0000000..3d3514c --- /dev/null +++ b/mondumas/templates/dossier/rdf_client.pt @@ -0,0 +1,91 @@ + +
+ +
+
+ +
+
+ +
+ +
+

${rapport.no_id}

+
+ +
+

${rapport.date_inter.strftime('%d-%m-%Y')}

+
+
+
+ +
+

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

+
+
+
+ +
+

${rapport.NOMCLI}

+
+
+
+ +
+ +
+
+ +
+
+ + Annuler + +
+
+
+
+
+
+
+ +
+
+ + + + +
+ diff --git a/mondumas/templates/dossier/rdf_view.pt b/mondumas/templates/dossier/rdf_view.pt index 8a307d3..af8e0d8 100644 --- a/mondumas/templates/dossier/rdf_view.pt +++ b/mondumas/templates/dossier/rdf_view.pt @@ -18,41 +18,35 @@ : ${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}
+

+

+ [ Changer le client ] +

+

- - - - - -
-

-

${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}
-

-
-
+
diff --git a/mondumas/views/agenda.py b/mondumas/views/agenda.py index edf0b44..5998cbf 100644 --- a/mondumas/views/agenda.py +++ b/mondumas/views/agenda.py @@ -44,7 +44,7 @@ def rdv_edit(request): rdv['C_QUALITE'] = '' rdv['C_NOM'] = '' rdv['rdv_debut'] = datetime.today() - rdv['COMMENT'] = 'RDV DEVIS' + rdv['COMMENT'] = '' rdv['LISTE'] = logged_in rdv['DATEMAJ'] = date.today() rdv['USERMAJ'] = logged_in diff --git a/mondumas/views/default.py b/mondumas/views/default.py index 3513ea9..4a8f2d1 100644 --- a/mondumas/views/default.py +++ b/mondumas/views/default.py @@ -27,7 +27,8 @@ import json from ..models.default import * from ..models.agenda import * from ..models.dossier import ( - get_chantiers_byName + get_chantiers_byName, + get_clients_byName ) def to_decimal(x): @@ -295,4 +296,19 @@ def ajax_lookup(request): return Response(json.dumps(liste)) +@view_config(route_name='ajax_client') +def ajax_client(request): + recherche = request.GET['recherche'] + societe = recherche[:2] # 1er car. + name = recherche[2:] + + # lire les clients + clients = get_clients_byName(request, societe, name) + liste=[] + for row in clients: + d = "%s | %s-%s"% (row.NOM, societe, row.CD_CLI) + liste.append(d) + + return Response(json.dumps(liste)) + diff --git a/mondumas/views/dossier.py b/mondumas/views/dossier.py index fb7cce2..5ce3208 100644 --- a/mondumas/views/dossier.py +++ b/mondumas/views/dossier.py @@ -540,6 +540,40 @@ def rdf_list(request): 'dt_data': json.dumps(liste), } +@view_config(route_name='rdf_client', renderer='../templates/dossier/rdf_client.pt', permission='view') +def rdf_client(request): + logged_in = request.authenticated_userid.upper() + norapport = request.matchdict['no_id'] + message = '' + + # lire code accès du user + access = get_userAccess(request, logged_in) + if access == 0: + request.session.flash("Vous n'avez pas les droits nécessaires pour changer de client.", 'danger') + return HTTPFound(location=request.route_url('rdf_view', no_id=norapport)) + + url = request.route_url('rdf_client', no_id=norapport) + + # lire le rapport + rapport = get_rapport_by_no_id(request, norapport) + nodossier = 'PL-' + str(rapport.nochantier) + + if 'form.submitted' in request.params: + nomClient = request.params['name'].split(' | ') + update_rapport_client(request, norapport, nomClient[0], nomClient[1]) + request.session.flash("Le client du rapporta été modifié avec succès.", 'success') + return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier)) + + + return { + 'page_title': "Changer le client du RDF n° %s" % norapport, + 'url': url, + 'message': message, + 'access': access, + 'norapport': norapport, + 'rapport': rapport, + } + @view_config(route_name='rdf_view', renderer='../templates/dossier/rdf_view.pt', permission='view') def rdf_view(request): logged_in = request.authenticated_userid.upper() @@ -706,7 +740,7 @@ def rdf_bill(request): 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_inter.strftime('%d-%m-%Y')) + insert_facture_rdf(request, 'PL', rapport.nochantier, rapport.CD_CLI, rapport.NOMCLI, logged_in, article, rapport.date_inter.strftime('%d-%m-%Y')) request.session.flash("Le rapport a été généré avec succès.", 'success') return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))