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()
|
||||
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):
|
||||
# les rapports deRDF
|
||||
query = "SELECT * FROM dem_rdf;"
|
||||
# les rapports de RDF encours (non encore facturés)
|
||||
query = "SELECT * FROM dem_rdf where date_facture IS NULL;"
|
||||
results = request.dbsession.execute(query, ).fetchall()
|
||||
return results
|
||||
|
||||
@@ -247,3 +252,9 @@ def delete_rapport(request, no_id):
|
||||
def validate_rapport(request, no_id):
|
||||
query = "UPDATE dem_rdf SET date_relu=CURRENT_DATE WHERE 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_selected', '/dossier_selected/{goto}/{date}/{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_imgdel','/rdf_imgdel/{nochantier}/{norapport}/{nomfic}')
|
||||
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>
|
||||
<button class="btn btn-warning" type="submit" name="form.generate">
|
||||
<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>
|
||||
|
||||
@@ -658,3 +658,41 @@ def rdf_imgdel(request):
|
||||
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))
|
||||
|
||||
@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