From c142e0ccb69eb71ce4c8a6dc9b8712a12a169b5a Mon Sep 17 00:00:00 2001 From: thienan Date: Tue, 13 Jul 2021 15:16:35 +0200 Subject: [PATCH] correction liens devis en att et facture en att --- mondumas/models/devis.py | 8 +- mondumas/models/dossier.py | 6 - mondumas/routes.py | 8 +- .../{dossier => devis}/devis_en_att.pt | 0 .../{dossier => devis}/factures_en_att.pt | 0 mondumas/views/devis.py | 119 ++++++++++++++++++ mondumas/views/dossier.py | 66 ---------- 7 files changed, 132 insertions(+), 75 deletions(-) rename mondumas/templates/{dossier => devis}/devis_en_att.pt (100%) rename mondumas/templates/{dossier => devis}/factures_en_att.pt (100%) diff --git a/mondumas/models/devis.py b/mondumas/models/devis.py index 24034f4..3e7d4ad 100644 --- a/mondumas/models/devis.py +++ b/mondumas/models/devis.py @@ -233,4 +233,10 @@ def update_devis_cloture(request, nodevis, status, logged_in): nochantier = int(nodevis[5:]) # met le montant regle à 1 centime pour terminé le dossier query = "UPDATE devis SET STATUS = :status, USERMAJ = :logged_in WHERE societe=:societe AND no_id=:nochantier;" - execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'status': status, 'logged_in': logged_in}) \ No newline at end of file + execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'status': status, 'logged_in': logged_in}) + +def get_devis_en_att(request, societe): + query = """SELECT d.date, LPAD(d.no_id,6,'0') AS numero, d.nomcli, CONCAT(d.c_nom,'; ',d.c_adr,'; ',d.c_ville) AS chantier, d.totalht AS montant, d.status, s.libelle, d.nosin, d.nopol, d.usermaj + FROM devis d JOIN p_statuts s ON d.STATUS = s.CODE WHERE d.societe=:societe AND d.STATUS < 4 ORDER BY d.societe, d.STATUS, d.nomcli;""" + results = request.dbsession.execute(query, {'societe': societe}).fetchall() + return results \ No newline at end of file diff --git a/mondumas/models/dossier.py b/mondumas/models/dossier.py index 670a15c..35d3bd3 100644 --- a/mondumas/models/dossier.py +++ b/mondumas/models/dossier.py @@ -339,12 +339,6 @@ def get_status_by_id(request, code): results = request.dbsession.execute(query, {'code': code}).first() return results -def get_devis_en_att(request, societe): - query = """SELECT d.date, LPAD(d.no_id,6,'0') AS numero, d.nomcli, CONCAT(d.c_nom,'; ',d.c_adr,'; ',d.c_ville) AS chantier, d.totalht AS montant, d.status, s.libelle, d.nosin, d.nopol, d.usermaj - FROM devis d JOIN p_statuts s ON d.STATUS = s.CODE WHERE d.societe=:societe AND d.STATUS < 4 ORDER BY d.societe, d.STATUS, d.nomcli;""" - results = request.dbsession.execute(query, {'societe': societe}).fetchall() - return results - def get_factures_en_att(request, societe): query = """SELECT f.date, LPAD(f.no_id,6,'0') AS numero, f.nomcli, CONCAT(f.c_nom,'; ',f.c_adr,'; ',f.c_ville) AS chantier, f.totalht AS montant, f.status, s.libelle, f.nosin, f.nopol, f.usermaj FROM facture f JOIN p_statuts s ON f.STATUS = s.CODE WHERE f.societe=:societe AND f.STATUS < 8 ORDER BY f.societe, f.STATUS, f.nomcli;""" diff --git a/mondumas/routes.py b/mondumas/routes.py index 9704fe2..eabd1d2 100644 --- a/mondumas/routes.py +++ b/mondumas/routes.py @@ -27,6 +27,12 @@ def includeme(config): config.add_route('devis_web', '/devis_web/{nodevis}') config.add_route('devis_view', '/devis_view/{nodevis}') config.add_route('devis_preview', '/devis_preview/{nodevis}') + config.add_route('devis_en_att','/devis_en_att') + config.add_route('devis_select', '/devis_select/{date}') + config.add_route('devis_selected', '/devis_selected/{goto}/{date}/{nodevis}') + config.add_route('factures_en_att','/factures_en_att') + config.add_route('facture_select', '/facture_select/{date}') + config.add_route('facture_selected', '/facture_selected/{goto}/{date}/{nofacture}') # dossier config.add_route('demandes','/demandes') config.add_route('demandes_dl','/demandes_dl/{societe}/{email_from}/{email_uid}') @@ -48,8 +54,6 @@ def includeme(config): config.add_route('upload_img', '/upload_img/{norapport}/{origine}') config.add_route('upload_om', '/upload_om') config.add_route('dem_devis','/dem_devis') - config.add_route('devis_en_att','/devis_en_att') - config.add_route('factures_en_att','/factures_en_att') # parametres config.add_route('parametres', '/parametres') config.add_route('article_edit', '/article_edit/{ref}') diff --git a/mondumas/templates/dossier/devis_en_att.pt b/mondumas/templates/devis/devis_en_att.pt similarity index 100% rename from mondumas/templates/dossier/devis_en_att.pt rename to mondumas/templates/devis/devis_en_att.pt diff --git a/mondumas/templates/dossier/factures_en_att.pt b/mondumas/templates/devis/factures_en_att.pt similarity index 100% rename from mondumas/templates/dossier/factures_en_att.pt rename to mondumas/templates/devis/factures_en_att.pt diff --git a/mondumas/views/devis.py b/mondumas/views/devis.py index 99be898..9ff31c0 100644 --- a/mondumas/views/devis.py +++ b/mondumas/views/devis.py @@ -393,3 +393,122 @@ def devis_lig_mv(request): move_devis_ligne(request, nodevis, int(nolig), move) request.session.flash(u"La ligne de devis a été déplacée avec succès.", 'success') return HTTPFound(location=request.route_url("devis_web", nodevis=nodevis)) + +@view_config(route_name='devis_en_att', renderer='../templates/devis/devis_en_att.pt', permission='view') +@view_config(route_name='devis_select', renderer='../templates/devis/devis_en_att.pt', permission='view') +def devis_en_att(request): + + if 'devis_select' in request.current_route_path() : + # récupérer les paramètres de l'appel de la view + datePlan = request.matchdict['date'] + # sélectionner devis -> goto planning + goto_url = '/devis_selected/agenda/%s/' % datePlan + url = request.route_url('devis_selected', date=datePlan) + else: + # recherche devis en att -> goto fiche devis + goto_url = '/devis_selected/devis_view/%s/' % date.today().strftime('%Y-%m-%d') + url = request.route_url('devis_en_att') + + logged_in = request.authenticated_userid.upper() + url = request.route_url('devis_en_att') + member = get_member_by_id(request, logged_in) + societe_defaut = member.societe + societe = societe_defaut + access_defaut = member.access + liste=[] + + if 'form.submitted' in request.params: + societe = request.params['societe'] + + list_devis_en_att = get_devis_en_att(request, societe) + + for item in list_devis_en_att: + d = ('%s-DE%s' % (societe, item.numero),item.date.strftime('%d-%m-%Y'), item.nomcli, item.chantier, to_euro(item.montant), + item.nosin, item.libelle, item.usermaj) + liste.append(d) + + order_option = 'desc' + + return { + 'page_title': "Devis en attente d'acceptation", + 'url': url, + 'goto_url': goto_url, + 'dt_data': json.dumps(liste), + 'societe': societe, + 'order_option': order_option, + } + +@view_config(route_name='devis_selected', permission='view') +def devis_selected(request): + + # récupérer les paramètres de l'appel de la view + goto = request.matchdict['goto'] + datePlan = request.matchdict['date'] + nodevis = request.matchdict['nodevis'] + + # fiche dossier + devis = get_devis_by_no(request, nodevis) + if goto == 'devis_view': + return HTTPFound(location=request.route_url('devis_view', nodevis=nodevis)) + else: + return HTTPFound(location=request.route_url('agenda', date=datePlan)) + +@view_config(route_name='factures_en_att', renderer='../templates/devis/factures_en_att.pt', permission='view') +@view_config(route_name='facture_select', renderer='../templates/devis/factures_en_att.pt', permission='view') +def factures_en_att(request): + + if 'facture_select' in request.current_route_path() : + # récupérer les paramètres de l'appel de la view + datePlan = request.matchdict['date'] + # sélectionner devis -> goto planning + goto_url = '/facture_selected/agenda/%s/' % datePlan + url = request.route_url('devis_selected', date=datePlan) + else: + # recherche devis en att -> goto fiche devis + goto_url = '/facture_selected/devis_view/%s/' % date.today().strftime('%Y-%m-%d') + url = request.route_url('factures_en_att') + + logged_in = request.authenticated_userid.upper() + url = request.route_url('factures_en_att') + member = get_member_by_id(request, logged_in) + societe_defaut = member.societe + societe = societe_defaut + access_defaut = member.access + liste=[] + + if 'form.submitted' in request.params: + societe = request.params['societe'] + + list_factures_en_att = get_factures_en_att(request, societe) + + for item in list_factures_en_att: + d = ('%s-FA%s' % (societe, item.numero),item.date.strftime('%d-%m-%Y'), item.nomcli, item.chantier, to_euro(item.montant), + item.nosin, item.libelle, item.usermaj) + liste.append(d) + + order_option = 'desc' + + + return { + 'page_title': "Factures en attente de réglement", + 'url': url, + 'goto_url': goto_url, + 'dt_data': json.dumps(liste), + 'societe': societe, + 'order_option': order_option, + } + +@view_config(route_name='facture_selected', permission='view') +def facture_selected(request): + + # récupérer les paramètres de l'appel de la view + goto = request.matchdict['goto'] + datePlan = request.matchdict['date'] + nofacture = request.matchdict['nofacture'] + + # fiche dossier + facture = get_facture_by_no(request, nofacture) + if goto == 'devis_view': + return HTTPFound(location=request.route_url('devis_view', nodevis=nofacture)) + else: + return HTTPFound(location=request.route_url('agenda', date=datePlan)) \ No newline at end of file diff --git a/mondumas/views/dossier.py b/mondumas/views/dossier.py index e88d7bf..912caba 100644 --- a/mondumas/views/dossier.py +++ b/mondumas/views/dossier.py @@ -1573,70 +1573,4 @@ def dem_devis(request): 'dt_data': json.dumps(liste), 'societe': societe, 'order_option': order_option, - } - -@view_config(route_name='devis_en_att', renderer='../templates/dossier/devis_en_att.pt', permission='view') -def devis_en_att(request): - logged_in = request.authenticated_userid.upper() - goto_url = '/dossier_selected/dossier_view/%s/' % date.today().strftime('%Y-%m-%d') - url = request.route_url('devis_en_att') - member = get_member_by_id(request, logged_in) - societe_defaut = member.societe - societe = societe_defaut - access_defaut = member.access - liste=[] - - if 'form.submitted' in request.params: - societe = request.params['societe'] - - list_devis_en_att = get_devis_en_att(request, societe) - - for item in list_devis_en_att: - d = ('%s-DE%s' % (societe, item.numero),item.date.strftime('%d-%m-%Y'), item.nomcli, item.chantier, to_euro(item.montant), - item.nosin, item.libelle, item.usermaj) - liste.append(d) - - order_option = 'desc' - - - return { - 'page_title': "Devis en attente d'acceptation", - 'url': url, - 'goto_url': goto_url, - 'dt_data': json.dumps(liste), - 'societe': societe, - 'order_option': order_option, - } - -@view_config(route_name='factures_en_att', renderer='../templates/dossier/factures_en_att.pt', permission='view') -def factures_en_att(request): - logged_in = request.authenticated_userid.upper() - goto_url = '/dossier_selected/dossier_view/%s/' % date.today().strftime('%Y-%m-%d') - url = request.route_url('factures_en_att') - member = get_member_by_id(request, logged_in) - societe_defaut = member.societe - societe = societe_defaut - access_defaut = member.access - liste=[] - - if 'form.submitted' in request.params: - societe = request.params['societe'] - - list_factures_en_att = get_factures_en_att(request, societe) - - for item in list_factures_en_att: - d = ('%s-FA%s' % (societe, item.numero),item.date.strftime('%d-%m-%Y'), item.nomcli, item.chantier, to_euro(item.montant), - item.nosin, item.libelle, item.usermaj) - liste.append(d) - - order_option = 'desc' - - - return { - 'page_title': "Factures en attente de réglement", - 'url': url, - 'goto_url': goto_url, - 'dt_data': json.dumps(liste), - 'societe': societe, - 'order_option': order_option, } \ No newline at end of file