correction liens devis en att et facture en att
This commit is contained in:
@@ -233,4 +233,10 @@ def update_devis_cloture(request, nodevis, status, logged_in):
|
|||||||
nochantier = int(nodevis[5:])
|
nochantier = int(nodevis[5:])
|
||||||
# met le montant regle à 1 centime pour terminé le dossier
|
# 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;"
|
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})
|
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
|
||||||
@@ -339,12 +339,6 @@ def get_status_by_id(request, code):
|
|||||||
results = request.dbsession.execute(query, {'code': code}).first()
|
results = request.dbsession.execute(query, {'code': code}).first()
|
||||||
return results
|
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):
|
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
|
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;"""
|
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;"""
|
||||||
|
|||||||
@@ -27,6 +27,12 @@ def includeme(config):
|
|||||||
config.add_route('devis_web', '/devis_web/{nodevis}')
|
config.add_route('devis_web', '/devis_web/{nodevis}')
|
||||||
config.add_route('devis_view', '/devis_view/{nodevis}')
|
config.add_route('devis_view', '/devis_view/{nodevis}')
|
||||||
config.add_route('devis_preview', '/devis_preview/{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
|
# dossier
|
||||||
config.add_route('demandes','/demandes')
|
config.add_route('demandes','/demandes')
|
||||||
config.add_route('demandes_dl','/demandes_dl/{societe}/{email_from}/{email_uid}')
|
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_img', '/upload_img/{norapport}/{origine}')
|
||||||
config.add_route('upload_om', '/upload_om')
|
config.add_route('upload_om', '/upload_om')
|
||||||
config.add_route('dem_devis','/dem_devis')
|
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
|
# parametres
|
||||||
config.add_route('parametres', '/parametres')
|
config.add_route('parametres', '/parametres')
|
||||||
config.add_route('article_edit', '/article_edit/{ref}')
|
config.add_route('article_edit', '/article_edit/{ref}')
|
||||||
|
|||||||
@@ -393,3 +393,122 @@ def devis_lig_mv(request):
|
|||||||
move_devis_ligne(request, nodevis, int(nolig), move)
|
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')
|
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))
|
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))
|
||||||
@@ -1573,70 +1573,4 @@ def dem_devis(request):
|
|||||||
'dt_data': json.dumps(liste),
|
'dt_data': json.dumps(liste),
|
||||||
'societe': societe,
|
'societe': societe,
|
||||||
'order_option': order_option,
|
'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,
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user