correction liens devis en att et facture en att

This commit is contained in:
thienan
2021-07-13 15:16:35 +02:00
parent fe2c58f65f
commit c142e0ccb6
7 changed files with 132 additions and 75 deletions

View File

@@ -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})
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

View File

@@ -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;"""

View File

@@ -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}')

View File

@@ -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))

View File

@@ -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,
}