diff --git a/mondumas/models/parametres.py b/mondumas/models/parametres.py index f184bb5..a34999e 100644 --- a/mondumas/models/parametres.py +++ b/mondumas/models/parametres.py @@ -32,3 +32,25 @@ def get_last_emailing(request): results = request.dbsession.execute(query, {}) return results.fetchall() +def get_orphans_DE(request, societe): + + query = "SELECT * FROM devis WHERE societe = '%s' AND nochantier = 0 ORDER BY date desc LIMIT 50 ;" % (societe) + results = request.dbsession.execute(query).first() + return results + +def get_dossiers_byChantier(request, societe, name): + + query = "CALL spGET_DOSSIERS_byChantier('%s','%s','%s');" % (societe, 'DE', name.replace("'","''")) + results = request.dbsession.execute(query).fetchall() + return results + +def update_nochantier(request, societe, nodossier, nochantier): + x = nodossier.split('-') + type = x[0] + no_id = int(x[1]) + + if type == 'DE': + query = "UPDATE devis SET nochantier = :nochantier WHERE societe = :societe and no_id = :no_id;" + else: + query = "UPDATE facture SET nochantier = :nochantier WHERE societe = :societe and no_id = :no_id;" + execute_query(request, query, {'societe': societe, 'no_id': no_id, 'nochantier': nochantier}) diff --git a/mondumas/routes.py b/mondumas/routes.py index 4311cda..2b38ed4 100644 --- a/mondumas/routes.py +++ b/mondumas/routes.py @@ -15,5 +15,6 @@ def includeme(config): config.add_route('parametres', '/parametres') config.add_route('dashboard', '/dashboard') config.add_route('last_emailing', '/last_emailing') + config.add_route('orphans_de', '/orphans_de') config.add_route('user_edit', '/user_edit/{cd_uti}') config.add_route('users_list', '/users_list') diff --git a/mondumas/templates/layouts/global_layout.pt b/mondumas/templates/layouts/global_layout.pt index d02b8ab..a8081ba 100644 --- a/mondumas/templates/layouts/global_layout.pt +++ b/mondumas/templates/layouts/global_layout.pt @@ -14,6 +14,7 @@ + @@ -33,6 +34,7 @@ + diff --git a/mondumas/templates/parametres/orphans_de.pt b/mondumas/templates/parametres/orphans_de.pt new file mode 100644 index 0000000..ae37821 --- /dev/null +++ b/mondumas/templates/parametres/orphans_de.pt @@ -0,0 +1,156 @@ + +
+ +
+ +
+
+ +
+ +
+
+
+ + + +
+ +
+ + + + + + + + + +

CHANTIER

+

${devis.C_QUALITE} ${devis.C_NOM}

+ ${devis.C_ADR}
+ ${devis.C_ADR2}
+ ${devis.C_CP} ${devis.C_VILLE}
+
+ Police
+ Sinistre
+
+ ${devis.NOPOL}
+ ${devis.NOSIN}
+
+
+
+ + + + + +
+

CLIENT

+ NO DEVIS
+ DATE
+
+

${devis.NOMCLI}

+ ${devis.NO_ID}
+ ${devis.DATE.strftime('%d-%m-%Y')} +
+
+
+ +
+
+ +
+ +
+
+ +   (Veuillez cocher un ou plusieurs dossiers pour mettre à jour leur no de chantier) +
+
+
+ +
+ + + + + + + + + + + + + +
NuméroDateClientChantierMontantSinistreCh.
+
+
+
+ + + +
+ diff --git a/mondumas/templates/parametres/parametres.pt b/mondumas/templates/parametres/parametres.pt index 5bd4ec7..386968f 100644 --- a/mondumas/templates/parametres/parametres.pt +++ b/mondumas/templates/parametres/parametres.pt @@ -11,6 +11,10 @@

TABLEAU de BORD

+
+ +

DEVIS ORPHELINS

+


diff --git a/mondumas/views/parametres.py b/mondumas/views/parametres.py index 0a7ebd9..f413b56 100644 --- a/mondumas/views/parametres.py +++ b/mondumas/views/parametres.py @@ -22,6 +22,7 @@ import json from ..models.parametres import * from ..models.default import * +from ..views.default import * @view_config(route_name='parametres', renderer='../templates/parametres/parametres.pt', permission='manage') def parametres(request): @@ -163,3 +164,54 @@ def last_emailing(request): 'page_title': u'Liste des derniers emailing', 'dt_data': json.dumps(liste), } + +@view_config(route_name='orphans_de', renderer='../templates/parametres/orphans_de.pt', permission='manage') +def orphans_de(request): + + url = request.route_url('orphans_de') + message = u'' + societes = ['PE','ME','PL','PO','CD'] + societe = 'PE' + + # prendre en compte les paramètres de saisie + if 'societe' in request.params: + societe = request.params["societe"] + + if 'form.nochantier' in request.params: + message = '' + nochantier = request.params['nochantier'] + + # oui, NestedMultiDict([('form.submitted', u''), ('id0', u'271246'), ('id1', u'370929')]) + for param in request.params: + if param[:2] == 'id': + update_nochantier(request, societe, request.params[param], int(nochantier)) + message = u"Le numéro de chantier est mis à jour avec succès" + + # lire le premier devis orphelin + devis = get_orphans_DE(request, societe) + + # lire tous les dossiers de ce chantier + dossiers = get_dossiers_byChantier(request, societe, '%s;%s;%s' % (devis.C_NOM, devis.C_ADR, devis.C_VILLE)) + liste=[] + nochantiers=[] + # construire la liste + for item in dossiers: + dossier_id = '%s-%s' % (item.TYPE, item.numero) + if item.nochantier != 0: + nochantiers.append(item.nochantier) + nochantier = item.nochantier + d = (dossier_id, dossier_id, item.date.strftime('%d-%m-%Y'), item.nomcli, item.chantier, to_euro(item.montant), + item.nosin, item.nochantier) + liste.append(d) + + return { + 'page_title': u"DEVIS orphelins", + 'url': url, + 'message': message, + 'devis': devis, + 'dt_data': json.dumps(liste), + 'societes': societes, + 'societe': societe, + 'nochantiers': nochantiers, + 'nochantier': nochantier, + }