ajout facturer rapport de RDF
This commit is contained in:
@@ -204,9 +204,14 @@ def get_rapport_by_no_id(request,no_id):
|
|||||||
results = request.dbsession.execute(query, {'no_id': no_id}).first()
|
results = request.dbsession.execute(query, {'no_id': no_id}).first()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
def get_articles_by_fam(request, fam):
|
||||||
|
query = "SELECT * FROM articles WHERE FAM = :fam;"
|
||||||
|
results = request.dbsession.execute(query, {'fam': fam}).fetchall()
|
||||||
|
return results
|
||||||
|
|
||||||
def get_rapport_rdf(request):
|
def get_rapport_rdf(request):
|
||||||
# les rapports deRDF
|
# les rapports de RDF encours (non encore facturés)
|
||||||
query = "SELECT * FROM dem_rdf;"
|
query = "SELECT * FROM dem_rdf where date_facture IS NULL;"
|
||||||
results = request.dbsession.execute(query, ).fetchall()
|
results = request.dbsession.execute(query, ).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
@@ -247,3 +252,9 @@ def delete_rapport(request, no_id):
|
|||||||
def validate_rapport(request, no_id):
|
def validate_rapport(request, no_id):
|
||||||
query = "UPDATE dem_rdf SET date_relu=CURRENT_DATE WHERE no_id = :no_id"
|
query = "UPDATE dem_rdf SET date_relu=CURRENT_DATE WHERE no_id = :no_id"
|
||||||
execute_query(request, query, {'no_id': no_id})
|
execute_query(request, query, {'no_id': no_id})
|
||||||
|
|
||||||
|
def insert_facture_rdf(request, societe, nochantier, 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})
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ def includeme(config):
|
|||||||
config.add_route('dossier_select', '/dossier_select/{date}')
|
config.add_route('dossier_select', '/dossier_select/{date}')
|
||||||
config.add_route('dossier_selected', '/dossier_selected/{goto}/{date}/{nodossier}')
|
config.add_route('dossier_selected', '/dossier_selected/{goto}/{date}/{nodossier}')
|
||||||
config.add_route('dossier_view', '/dossier_view/{nodossier}')
|
config.add_route('dossier_view', '/dossier_view/{nodossier}')
|
||||||
|
config.add_route('rdf_bill','/rdf_bill/{no_id}')
|
||||||
config.add_route('rdf_edit','/rdf_edit/{nodossier}/{date_inter}')
|
config.add_route('rdf_edit','/rdf_edit/{nodossier}/{date_inter}')
|
||||||
config.add_route('rdf_imgdel','/rdf_imgdel/{nochantier}/{norapport}/{nomfic}')
|
config.add_route('rdf_imgdel','/rdf_imgdel/{nochantier}/{norapport}/{nomfic}')
|
||||||
config.add_route('rdf_list','/rdf_list')
|
config.add_route('rdf_list','/rdf_list')
|
||||||
|
|||||||
78
mondumas/templates/dossier/rdf_bill.pt
Normal file
78
mondumas/templates/dossier/rdf_bill.pt
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
<metal:block use-macro="main_template">
|
||||||
|
<div metal:fill-slot="content">
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label">N° dossier</label> : ${nodossier}<br />
|
||||||
|
<label class="control-label">N° rapport</label> : ${norapport}<br />
|
||||||
|
<label class="control-label">Date d'intervention</label> : ${rapport.date_inter.strftime('%d-%m-%Y')}<br />
|
||||||
|
<label class="control-label" for="rapport">Compte-rendu : </label>
|
||||||
|
<label class="radio-inline">
|
||||||
|
<input type="radio" name="rapport" value="Définitif" disabled="disabled"
|
||||||
|
tal:attributes="checked rapport.rapport=='Définitif'">Définitif
|
||||||
|
</label>
|
||||||
|
<label class="radio-inline">
|
||||||
|
<input type="radio" name="rapport" value="Provisoire" disabled="disabled"
|
||||||
|
tal:attributes="checked rapport.rapport=='Provisoire'">Provisoire
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<h4 class="text-center text-primary">ADRESSE d'INTERVENTION</h4>
|
||||||
|
<br />
|
||||||
|
<table class="table table-condensed ">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<h4>${rapport.C_QUALITE} ${rapport.C_NOM}</h4>
|
||||||
|
${rapport.C_ADR}<br />
|
||||||
|
<span tal:condition="rapport.C_ADR2">${rapport.C_ADR2}<br /></span>
|
||||||
|
${rapport.C_CP} ${rapport.C_VILLE}<br />
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
Assureur : <b>${rapport.NOMCLI}</b><br />
|
||||||
|
No Sinistre : ${rapport.NOSIN}
|
||||||
|
<br />
|
||||||
|
Téléphone : ${rapport.C_TEL1}<br />
|
||||||
|
Mobile: ${rapport.C_TELP}<br />
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
<form id="rdv_edit-form" class="form-horizontal" action="${url}" method="post"
|
||||||
|
data-fv-framework="bootstrap"
|
||||||
|
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||||
|
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||||
|
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-4" for="article">Sélectionner l'article à facturer</label>
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<select class="form-control" name="article">
|
||||||
|
<div tal:repeat="item articles">
|
||||||
|
<option value="${item.REF}" tal:attributes="selected article==item.LIBART and 'selected' or None">${item.LIBART} ${item.PRIXHT1} €</option>
|
||||||
|
</div>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="col-sm-offset-4 col-sm-8">
|
||||||
|
<a class="btn btn-default" href="${request.route_url('rdf_view', no_id=rapport.no_id)}">
|
||||||
|
<span class="glyphicon glyphicon-arrow-left"></span> Retour rapport</a>
|
||||||
|
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||||
|
<span class="glyphicon glyphicon-remove"></span> Générer la facture</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div metal:fill-slot="additional_scripts">
|
||||||
|
</div>
|
||||||
|
</metal:block>
|
||||||
@@ -353,6 +353,8 @@
|
|||||||
<span class="glyphicon glyphicon-file"></span> Aperçu PDF</a>
|
<span class="glyphicon glyphicon-file"></span> Aperçu PDF</a>
|
||||||
<button class="btn btn-warning" type="submit" name="form.generate">
|
<button class="btn btn-warning" type="submit" name="form.generate">
|
||||||
<span class="glyphicon glyphicon-file"></span> Générer PDF</button>
|
<span class="glyphicon glyphicon-file"></span> Générer PDF</button>
|
||||||
|
<a class="btn btn-primary" href="/rdf_bill/${rapport.no_id}">
|
||||||
|
<span class="glyphicon glyphicon-fith-listle"></span> Générer Facture</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -601,7 +601,7 @@ def rdf_view(request):
|
|||||||
|
|
||||||
if 'form.delete' in request.params:
|
if 'form.delete' in request.params:
|
||||||
delete_rapport(request, norapport)
|
delete_rapport(request, norapport)
|
||||||
request.session.flash(u"Le rapporta été supprimé avec succès.", 'success')
|
request.session.flash(u"Le rapport a été supprimé avec succès.", 'success')
|
||||||
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -658,3 +658,41 @@ def rdf_imgdel(request):
|
|||||||
request.session.flash(u"La photo %s a été supprimé avec succès" % (nomfic), 'success')
|
request.session.flash(u"La photo %s a été supprimé avec succès" % (nomfic), 'success')
|
||||||
return HTTPFound(location=request.route_url("upload_img", norapport=norapport))
|
return HTTPFound(location=request.route_url("upload_img", norapport=norapport))
|
||||||
|
|
||||||
|
@view_config(route_name='rdf_bill', renderer='../templates/dossier/rdf_bill.pt', permission='view')
|
||||||
|
def rdf_bill(request):
|
||||||
|
logged_in = request.authenticated_userid.upper()
|
||||||
|
norapport = request.matchdict['no_id']
|
||||||
|
url = request.route_url('rdf_bill', no_id=norapport)
|
||||||
|
|
||||||
|
# lire le rapport
|
||||||
|
rapport = get_rapport_by_no_id(request, norapport)
|
||||||
|
nodossier = 'PL-' + str(rapport.nochantier)
|
||||||
|
|
||||||
|
if not rapport.date_rapport:
|
||||||
|
request.session.flash(u"Le rapport n'a été encore généré. Facturation impossible", 'danger')
|
||||||
|
return HTTPFound(location=request.route_url('rdf_view', no_id=norapport))
|
||||||
|
|
||||||
|
# lire tous les articles RDF
|
||||||
|
articles = get_articles_by_fam(request, 'RDF')
|
||||||
|
article = 'RDF1'
|
||||||
|
|
||||||
|
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_rapport.strftime('%d-%m-%Y'))
|
||||||
|
|
||||||
|
request.session.flash(u"Le rapport a été généré avec succès.", 'success')
|
||||||
|
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
||||||
|
|
||||||
|
return {
|
||||||
|
'page_title': "Générer une facture pour le rapport du %s" % (rapport.date_inter.strftime('%d-%m-%Y')),
|
||||||
|
'url': url,
|
||||||
|
'pt_name': 'rdf_view',
|
||||||
|
'logged_in': logged_in,
|
||||||
|
'rapport': rapport,
|
||||||
|
'nodossier': nodossier,
|
||||||
|
'nochantier': rapport.nochantier,
|
||||||
|
'norapport': norapport,
|
||||||
|
'articles': articles,
|
||||||
|
'article' : article,
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user