retouche get tarifs
This commit is contained in:
@@ -108,19 +108,20 @@ def delete_membre(request, cd_uti):
|
|||||||
query = "DELETE FROM p_users WHERE cd_uti = :cd_uti ;"
|
query = "DELETE FROM p_users WHERE cd_uti = :cd_uti ;"
|
||||||
execute_query(request, query, {'cd_uti': cd_uti})
|
execute_query(request, query, {'cd_uti': cd_uti})
|
||||||
|
|
||||||
def get_article(request, type, libelle):
|
def get_article(request, type, groupe, libelle):
|
||||||
if type == 'TX':
|
if type == 'LIB':
|
||||||
query = "SELECT * FROM articles WHERE fam='T' and libart like :libelle;"
|
if groupe == 'TEXTE':
|
||||||
results = request.dbsession.execute(query, {'libelle': libelle + "%"}).fetchall()
|
# lire tous les textes dont le libelle commençe par
|
||||||
elif type == 'AR':
|
query = "SELECT * FROM tarifs WHERE groupe='TEXTE' and libelle like :libelle;"
|
||||||
query = "SELECT * FROM articles WHERE ref_cli2 like :libelle;"
|
results = request.dbsession.execute(query, {'libelle': libelle + "%"}).fetchall()
|
||||||
results = request.dbsession.execute(query, {'libelle': libelle + "%"}).fetchall()
|
else:
|
||||||
elif type == 'REF':
|
# lire tous les tarifs du grupe dont le ref commençe par libelle
|
||||||
query = "SELECT * FROM articles WHERE ref = :ref;"
|
query = "SELECT * FROM tarifs WHERE groupe=:groupe and ref like :libelle;"
|
||||||
results = request.dbsession.execute(query, {'ref': libelle}).first()
|
results = request.dbsession.execute(query, {'groupe': groupe, 'libelle': libelle + "%"}).fetchall()
|
||||||
else:
|
else:
|
||||||
query = "SELECT * FROM articles WHERE ref_cli2 = :ref;"
|
# lire tous les tarif du grupe dont le ref est égale à
|
||||||
results = request.dbsession.execute(query, {'ref': libelle}).first()
|
query = "SELECT * FROM tarifs WHERE groupe=:groupe and ref = :libelle;"
|
||||||
|
results = request.dbsession.execute(query, {'groupe': groupe, 'libelle': libelle}).first()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_codespostaux(request, codep):
|
def get_codespostaux(request, codep):
|
||||||
|
|||||||
@@ -241,7 +241,16 @@ def update_tarif(request, ref, new_values):
|
|||||||
query = "UPDATE tarifs SET %s WHERE ref = :ref;" % s
|
query = "UPDATE tarifs SET %s WHERE ref = :ref;" % s
|
||||||
execute_query(request, query, new_values)
|
execute_query(request, query, new_values)
|
||||||
|
|
||||||
def delete_tarifs(request, ref):
|
def delete_tarif(request, ref):
|
||||||
query = "DELETE FROM tarifs WHERE ref = :ref ;"
|
query = "DELETE FROM tarifs WHERE ref = :ref ;"
|
||||||
execute_query(request, query, {'ref': ref})
|
execute_query(request, query, {'ref': ref})
|
||||||
|
|
||||||
|
def get_tarifs_byGroupe(request, groupe):
|
||||||
|
query = "SELECT * FROM tarifs WHERE groupe = :groupe;"
|
||||||
|
results = request.dbsession.execute(query, {'groupe': groupe}).fetchall()
|
||||||
|
return results
|
||||||
|
|
||||||
|
def get_tarif(request, groupe, ref):
|
||||||
|
query = "SELECT * FROM tarifs WHERE groupe = :groupe and ref = :ref;"
|
||||||
|
results = request.dbsession.execute(query, {'groupe': groupe, 'ref': ref}).first()
|
||||||
|
return results
|
||||||
|
|||||||
@@ -68,8 +68,8 @@ def includeme(config):
|
|||||||
config.add_route('text_edit', '/text_edit/{text_id}')
|
config.add_route('text_edit', '/text_edit/{text_id}')
|
||||||
config.add_route('text_list', '/text_list')
|
config.add_route('text_list', '/text_list')
|
||||||
config.add_route('text_view', '/text_view/{text_id}')
|
config.add_route('text_view', '/text_view/{text_id}')
|
||||||
config.add_route('tarif_edit', '/tarif_edit/{ref}')
|
config.add_route('tarif_edit', '/tarif_edit/{groupe}/{ref}')
|
||||||
config.add_route('tarifs', '/tarifs')
|
config.add_route('tarifs', '/tarifs/{groupe}')
|
||||||
config.add_route('tarifs_import', '/tarifs_import')
|
config.add_route('tarifs_import', '/tarifs_import')
|
||||||
config.add_route('user_edit', '/user_edit/{cd_uti}')
|
config.add_route('user_edit', '/user_edit/{cd_uti}')
|
||||||
config.add_route('users', '/users')
|
config.add_route('users', '/users')
|
||||||
|
|||||||
@@ -119,6 +119,7 @@
|
|||||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
groupe = "${dossier.groupe}"
|
||||||
// validate the form
|
// validate the form
|
||||||
$('#devis_ligne-form').formValidation({
|
$('#devis_ligne-form').formValidation({
|
||||||
framework: 'bootstrap',
|
framework: 'bootstrap',
|
||||||
@@ -146,12 +147,14 @@ $(document).ready(function() {
|
|||||||
$('#libelle').autocomplete({
|
$('#libelle').autocomplete({
|
||||||
minLength: 3,
|
minLength: 3,
|
||||||
appendTo: "#TX",
|
appendTo: "#TX",
|
||||||
|
|
||||||
source: function (request, response) {
|
source: function (request, response) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url:'/ajax_texte',
|
url:'/ajax_texte',
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
data: {
|
data: {
|
||||||
recherche: 'TX' + request.term,
|
groupe: 'TEXTE',
|
||||||
|
libelle: request.term,
|
||||||
},
|
},
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
response( data );
|
response( data );
|
||||||
@@ -167,7 +170,8 @@ $(document).ready(function() {
|
|||||||
url:'/ajax_texte',
|
url:'/ajax_texte',
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
data: {
|
data: {
|
||||||
recherche: 'AR' + request.term,
|
groupe: groupe,
|
||||||
|
libelle: request.term,
|
||||||
},
|
},
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
response( data );
|
response( data );
|
||||||
@@ -180,7 +184,10 @@ $(document).ready(function() {
|
|||||||
// lecture de l'article
|
// lecture de l'article
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '/ajax_article',
|
url: '/ajax_article',
|
||||||
data: {ref:ref},
|
data: {
|
||||||
|
groupe: groupe,
|
||||||
|
ref:ref
|
||||||
|
},
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success:function(response){
|
success:function(response){
|
||||||
var len = response.length;
|
var len = response.length;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<h4>ARTICLES</h4>
|
<h4>ARTICLES</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
<a href="${request.application_url}/tarifs"><span class="glyphicon glyphicon-list-alt logo-primary"></span></a>
|
<a href="${request.application_url}/tarifs/AXA"><span class="glyphicon glyphicon-list-alt logo-primary"></span></a>
|
||||||
<h4>TARIFS</h4>
|
<h4>TARIFS</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
|
|||||||
@@ -12,125 +12,44 @@
|
|||||||
<div id="tarif" class="tab-pane fade in active">
|
<div id="tarif" class="tab-pane fade in active">
|
||||||
<br />
|
<br />
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-2" for="REF">Référence</label>
|
<label class="control-label col-xs-2" for="access">Groupe</label>
|
||||||
|
<div class="col-xs-7">
|
||||||
|
<p class="form-control-static">${item.groupe}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-xs-2" for="ref">Référence</label>
|
||||||
<div class="col-xs-6">
|
<div class="col-xs-6">
|
||||||
<input class="form-control" type="text" id="REF" name="REF" value="${item.REF}"
|
<input class="form-control" type="text" id="ref" name="ref" value="${item.ref}"
|
||||||
placeholder="10 caractères maximum"
|
placeholder="20 caractères maximum"
|
||||||
data-fv-notempty="true"
|
data-fv-notempty="true"
|
||||||
data-fv-notempty-message="La référence est obligatoire"
|
data-fv-notempty-message="La référence est obligatoire"
|
||||||
data-fv-stringlength="true"
|
data-fv-stringlength="true"
|
||||||
data-fv-stringlength-max="10"
|
|
||||||
data-fv-stringlength-message="10 caractères maximum" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-2">Famille</label>
|
|
||||||
<div class="col-xs-6">
|
|
||||||
<select class="form-control" id="FAM" name="FAM">
|
|
||||||
<tal:block tal:repeat="famille familles">
|
|
||||||
<option value="${famille}" tal:attributes="selected famille[0]==item.FAM and 'selected' or None">${famille}</option>
|
|
||||||
</tal:block>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-2" for="LIBART">Libellé</label>
|
|
||||||
<div class="col-xs-6">
|
|
||||||
<input class="form-control" type="text" id="LIBART" name="LIBART" value="${item.LIBART}"
|
|
||||||
placeholder="45 caractères maximum"
|
|
||||||
data-fv-notempty="true"
|
|
||||||
data-fv-notempty-message="Le libellé est obligatoire"
|
|
||||||
data-fv-stringlength="true"
|
|
||||||
data-fv-stringlength-max="45"
|
|
||||||
data-fv-stringlength-message="45 caractères maximum" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-2" for="LIBCOMPL1">Libellé compl. 1</label>
|
|
||||||
<div class="col-xs-6">
|
|
||||||
<input class="form-control" type="text" id="LIBCOMPL1" name="LIBCOMPL1" value="${item.LIBCOMPL1}"
|
|
||||||
placeholder="45 caractères maximum"
|
|
||||||
data-fv-stringlength="true"
|
|
||||||
data-fv-stringlength-max="45"
|
|
||||||
data-fv-stringlength-message="45 caractères maximum" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-2" for="LIBCOMPL2">Libellé compl. 2</label>
|
|
||||||
<div class="col-xs-6">
|
|
||||||
<input class="form-control" type="text" id="LIBCOMPL2" name="LIBCOMPL2" value="${item.LIBCOMPL2}"
|
|
||||||
placeholder="45 caractères maximum"
|
|
||||||
data-fv-stringlength="true"
|
|
||||||
data-fv-stringlength-max="45"
|
|
||||||
data-fv-stringlength-message="45 caractères maximum" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-2" for="LIBCOMPL3">Libellé compl. 3</label>
|
|
||||||
<div class="col-xs-6">
|
|
||||||
<input class="form-control" type="text" id="LIBCOMPL3" name="LIBCOMPL3" value="${item.LIBCOMPL3}"
|
|
||||||
placeholder="45 caractères maximum"
|
|
||||||
data-fv-stringlength="true"
|
|
||||||
data-fv-stringlength-max="45"
|
|
||||||
data-fv-stringlength-message="45 caractères maximum" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-2" for="LIBCOMPL4">Libellé compl. 4</label>
|
|
||||||
<div class="col-xs-6">
|
|
||||||
<input class="form-control" type="text" id="LIBCOMPL4" name="LIBCOMPL4" value="${item.LIBCOMPL4}"
|
|
||||||
placeholder="45 caractères maximum"
|
|
||||||
data-fv-stringlength="true"
|
|
||||||
data-fv-stringlength-max="45"
|
|
||||||
data-fv-stringlength-message="45 caractères maximum" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="col-xs-2 control-label">Prix HT 1</label>
|
|
||||||
<div class="col-xs-6">
|
|
||||||
<div class="input-group">
|
|
||||||
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
|
|
||||||
<input class="form-control" type="text" id="PRIXHT1" name="PRIXHT1" value="${item.PRIXHT1}"
|
|
||||||
data-fv-numeric="true"
|
|
||||||
data-fv-numeric-message="Le montant est invalide" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="col-xs-2 control-label">Prix HT 2</label>
|
|
||||||
<div class="col-xs-6">
|
|
||||||
<div class="input-group">
|
|
||||||
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
|
|
||||||
<input class="form-control" type="text" id="PRIXHT2" name="PRIXHT2" value="${item.PRIXHT2}"
|
|
||||||
data-fv-numeric="true"
|
|
||||||
data-fv-numeric-message="Le montant est invalide" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-2" for="ref_cli1">Réf. client 1</label>
|
|
||||||
<div class="col-xs-6">
|
|
||||||
<input class="form-control" type="text" id="ref_cli1" name="ref_cli1" value="${item.ref_cli1}"
|
|
||||||
placeholder="20 caractères maximum"
|
|
||||||
data-fv-stringlength="true"
|
|
||||||
data-fv-stringlength-max="20"
|
data-fv-stringlength-max="20"
|
||||||
data-fv-stringlength-message="20 caractères maximum" />
|
data-fv-stringlength-message="20 caractères maximum" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-2" for="ref_cli2">Réf. client 2</label>
|
<label class="control-label col-xs-2" for="libelle">Libellé</label>
|
||||||
<div class="col-xs-6">
|
<div class="col-xs-8">
|
||||||
<input class="form-control" type="text" id="ref_cli2" name="ref_cli2" value="${item.ref_cli2}"
|
<textarea class="form-control" rows="6" cols="40" id="libelle" name="libelle">${item.libelle}</textarea>
|
||||||
placeholder="20 caractères maximum"
|
|
||||||
data-fv-stringlength="true"
|
|
||||||
data-fv-stringlength-max="20"
|
|
||||||
data-fv-stringlength-message="20 caractères maximum" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-xs-2 control-label">Prix HT</label>
|
||||||
|
<div class="col-xs-6">
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
|
||||||
|
<input class="form-control" type="text" id="prixht" name="prixht" value="${item.prixht}"
|
||||||
|
data-fv-numeric="true"
|
||||||
|
data-fv-numeric-message="Le montant est invalide" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-2" for="access">Dernière modif.</label>
|
<label class="control-label col-xs-2" for="access">Dernière modif.</label>
|
||||||
<div class="col-xs-7">
|
<div class="col-xs-7">
|
||||||
<p class="form-control-static" tal:condition="item.REF != '0'">${item.modif_le.strftime('%d/%m/%Y - %H:%M')}</p>
|
<p class="form-control-static" tal:condition="item.ref != '0'">${item.modif_le.strftime('%d/%m/%Y - %H:%M')}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
@@ -138,12 +57,12 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-xs-offset-2 col-xs-10">
|
<div class="col-xs-offset-2 col-xs-10">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<a class="btn btn-default" href="${request.application_url}/articles">
|
<a class="btn btn-default" href="${request.application_url}/tarifs/${item.groupe}">
|
||||||
<span class="glyphicon glyphicon-chevron-left"></span> Annuler</a>
|
<span class="glyphicon glyphicon-chevron-left"></span> Annuler</a>
|
||||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
|
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
|
||||||
<button class="btn btn-warning" type="submit" name="form.deleted"
|
<button class="btn btn-warning" type="submit" name="form.deleted"
|
||||||
tal:condition="item.REF != '0'">
|
tal:condition="item.ref != '0'">
|
||||||
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
|
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,11 +3,11 @@
|
|||||||
|
|
||||||
<form method="POST" id="frm" class="form-horizontal">
|
<form method="POST" id="frm" class="form-horizontal">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-md-1">Famille : </label>
|
<label class="control-label col-md-1">groupe : </label>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<select class="form-control" id="famille" name="famille" onChange="$('#frm').submit()">
|
<select class="form-control" id="groupe" name="groupe" onChange="$('#frm').submit()">
|
||||||
<tal:block tal:repeat="item familles">
|
<tal:block tal:repeat="item groupes">
|
||||||
<option value="${item}" tal:attributes="selected famille==item and 'selected' or None">${item}</option>
|
<option value="${item}" tal:attributes="selected groupe==item and 'selected' or None">${item}</option>
|
||||||
</tal:block>
|
</tal:block>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
<p>
|
<p>
|
||||||
<a href="${request.application_url}/parametres" class="btn btn-default" role="button">
|
<a href="${request.application_url}/parametres" class="btn btn-default" role="button">
|
||||||
<span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
|
<span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
|
||||||
<a href="${request.application_url}/article_edit/0" class="btn btn-success" role="button">
|
<a href="${request.application_url}/tarif_edit/${groupe}/0" class="btn btn-success" role="button">
|
||||||
<span class="glyphicon glyphicon-plus"></span> Nouvel tarif</a>
|
<span class="glyphicon glyphicon-plus"></span> Nouvel tarif</a>
|
||||||
<a href="${request.application_url}/tarifs_import" class="btn btn-primary" role="button">
|
<a href="${request.application_url}/tarifs_import" class="btn btn-primary" role="button">
|
||||||
<span class="glyphicon glyphicon-import"></span> Import tarifs</a>
|
<span class="glyphicon glyphicon-import"></span> Import tarifs</a>
|
||||||
@@ -27,11 +27,9 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>Référence</th>
|
<th>Référence</th>
|
||||||
<th>Libellé</th>
|
<th>Libellé</th>
|
||||||
<th>Libellé 2</th>
|
<th>Unité</th>
|
||||||
<th class="text-right">Prix HT 1</th>
|
<th class="text-right">Prix HT 1</th>
|
||||||
<th class="text-right">Prix HT 2</th>
|
<th>Modif le</th>
|
||||||
<th>Réf. client 1</th>
|
|
||||||
<th>Réf. client 2</th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
</table>
|
</table>
|
||||||
@@ -41,6 +39,7 @@
|
|||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var dataSet = ${dt_data};
|
var dataSet = ${dt_data};
|
||||||
|
var groupe = '${groupe}';
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$.fn.dataTable.moment('DD-MM-YYYY HH:mm');
|
$.fn.dataTable.moment('DD-MM-YYYY HH:mm');
|
||||||
@@ -48,16 +47,16 @@
|
|||||||
data: dataSet,
|
data: dataSet,
|
||||||
pageLength: 100,
|
pageLength: 100,
|
||||||
bLengthChange: false,
|
bLengthChange: false,
|
||||||
searching: false,
|
searching: true,
|
||||||
language: {
|
language: {
|
||||||
url: 'https://cdn.datatables.net/plug-ins/1.10.16/i18n/French.json'
|
url: 'https://cdn.datatables.net/plug-ins/1.10.16/i18n/French.json'
|
||||||
},
|
},
|
||||||
columnDefs: [
|
columnDefs: [
|
||||||
{ className: "text-right", "targets": [3,4] },
|
{ className: "text-right", "targets": [3] },
|
||||||
{ targets: 0,
|
{ targets: 0,
|
||||||
render: function (data, type, full, meta) {
|
render: function (data, type, full, meta) {
|
||||||
// ajouter un link vers le formulaire
|
// ajouter un link vers le formulaire
|
||||||
return '<a href="/article_edit/' + data + '">' + data + '</a>';
|
return '<a href="/tarif_edit/' + groupe + '/' + data + '">' + data + '</a>';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -302,36 +302,37 @@ def ajax_client(request):
|
|||||||
|
|
||||||
@view_config(route_name='ajax_texte')
|
@view_config(route_name='ajax_texte')
|
||||||
def ajax_texte(request):
|
def ajax_texte(request):
|
||||||
recherche = request.GET['recherche']
|
groupe = request.GET['groupe']
|
||||||
type = recherche[:2]
|
libelle = request.GET['libelle']
|
||||||
lib = recherche[2:]
|
|
||||||
# import pdb;pdb.set_trace()
|
# import pdb;pdb.set_trace()
|
||||||
|
|
||||||
# lire les articles commencant par
|
# lire les articles commencant par
|
||||||
items = get_article(request, type, lib)
|
items = get_article(request, 'LIB', groupe, libelle)
|
||||||
|
|
||||||
liste=[]
|
liste=[]
|
||||||
for row in items:
|
for row in items:
|
||||||
if type == 'AR':
|
if groupe == 'TEXTE':
|
||||||
d = '%s | %s | %s' % (row.ref_cli2, row.LIBART, to_euro(row.PRIXHT2))
|
d = row.libelle
|
||||||
else:
|
else:
|
||||||
d = row.LIBART
|
d = '%s | %s | %s' % (row.ref, row.libelle, to_euro(row.prixht))
|
||||||
liste.append(d)
|
liste.append(d)
|
||||||
|
|
||||||
return Response(json.dumps(liste))
|
return Response(json.dumps(liste))
|
||||||
|
|
||||||
@view_config(route_name='ajax_article')
|
@view_config(route_name='ajax_article')
|
||||||
def ajax_article(request):
|
def ajax_article(request):
|
||||||
|
groupe = request.GET['groupe']
|
||||||
ref = request.GET['ref']
|
ref = request.GET['ref']
|
||||||
|
|
||||||
# lire l'article
|
# lire l'article
|
||||||
items = get_article(request, 'REF2', ref)
|
items = get_article(request, 'REF', groupe, ref)
|
||||||
# puis retourne son libellé et son prixht
|
# puis retourne son libellé et son prixht
|
||||||
liste=[]
|
liste=[]
|
||||||
d = {}
|
d = {}
|
||||||
d['ref'] = items.ref_cli2
|
d['ref'] = items.ref
|
||||||
d['libelle'] = items.libelle
|
d['libelle'] = items.libelle
|
||||||
d['prixht'] = "%.2f" % items.PRIXHT2
|
d['prixht'] = "%.2f" % items.prixht
|
||||||
liste.append(d)
|
liste.append(d)
|
||||||
|
|
||||||
return Response(json.dumps(liste))
|
return Response(json.dumps(liste))
|
||||||
|
|||||||
@@ -805,65 +805,58 @@ def societe_edit(request):
|
|||||||
|
|
||||||
@view_config(route_name='tarifs', renderer='../templates/parametres/tarifs.pt', permission='manage')
|
@view_config(route_name='tarifs', renderer='../templates/parametres/tarifs.pt', permission='manage')
|
||||||
def tarifs(request):
|
def tarifs(request):
|
||||||
|
|
||||||
familles = ["Article", "Texte"]
|
groupe = request.matchdict['groupe']
|
||||||
groupes = ["AXA", "MAIF", "TEXTE"]
|
groupes = ["AXA", "MAIF", "TEXTE"]
|
||||||
|
|
||||||
# si table a changé
|
# si table a changé
|
||||||
if 'famille' in request.params:
|
if 'groupe' in request.params:
|
||||||
groupe = request.params["groupe"]
|
groupe = request.params["groupe"]
|
||||||
|
|
||||||
# lire les articles
|
# lire les articles
|
||||||
items = get_tarifs_byGroupe(request, groupe)
|
items = get_tarifs_byGroupe(request, groupe)
|
||||||
|
|
||||||
# construire la liste
|
# construire la liste
|
||||||
liste=[]
|
liste=[]
|
||||||
for item in items:
|
for item in items:
|
||||||
d = (item.ref, item.libelle, item.unite, to_euro(item.prixht), item.modif_le.strftime("%d-%m-%Y"))
|
d = (item.ref, item.libelle, item.unite, to_euro(item.prixht), item.modif_le.strftime("%d-%m-%Y"))
|
||||||
liste.append(d)
|
liste.append(d)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': 'Liste des tarifs',
|
'page_title': 'Liste des tarifs',
|
||||||
'dt_data': json.dumps(liste),
|
'dt_data': json.dumps(liste),
|
||||||
'familles': familles,
|
'groupes': groupes,
|
||||||
'groupe': groupe,
|
'groupe': groupe,
|
||||||
}
|
}
|
||||||
|
|
||||||
@view_config(route_name='tarif_edit', renderer='../templates/parametres/tarif_edit.pt', permission='manage')
|
@view_config(route_name='tarif_edit', renderer='../templates/parametres/tarif_edit.pt', permission='manage')
|
||||||
|
def tarif_edit(request):
|
||||||
groupe = request.matchdict['groupe']
|
groupe = request.matchdict['groupe']
|
||||||
ref = request.matchdict['ref']
|
ref = request.matchdict['ref']
|
||||||
url = request.route_url('tarif_edit', groupe=groupe, ref=ref)
|
url = request.route_url('tarif_edit', groupe=groupe, ref=ref)
|
||||||
logged_in = request.authenticated_userid
|
logged_in = request.authenticated_userid
|
||||||
message = ''
|
message = ''
|
||||||
|
|
||||||
familles = ["Article", "Texte"]
|
|
||||||
|
|
||||||
if ref == '0':
|
if ref == '0':
|
||||||
# nouveau
|
# nouveau
|
||||||
item = {}
|
item = {}
|
||||||
item['REF'] = '0'
|
item['groupe'] = groupe
|
||||||
item['FAM'] = 'A'
|
item['ref'] = '0'
|
||||||
item['LIBART'] = ''
|
item['libelle'] = ''
|
||||||
item['PRIXHT1'] = 0
|
item['prixht'] = 0
|
||||||
item['PRIXHT2'] = 0
|
|
||||||
item['ref_cli1'] = ''
|
|
||||||
item['ref_cli2'] = ''
|
|
||||||
item['LIBCOMPL1'] = ''
|
|
||||||
item['LIBCOMPL2'] = ''
|
|
||||||
item['LIBCOMPL3'] = ''
|
|
||||||
item['LIBCOMPL4'] = ''
|
|
||||||
page_title= 'Nouveau tarif'
|
page_title= 'Nouveau tarif'
|
||||||
else:
|
else:
|
||||||
# lire l'article
|
# lire le tarif
|
||||||
item = get_tarif(request, groupe, ref)
|
item = get_tarif(request, groupe, ref)
|
||||||
if not item:
|
if not item:
|
||||||
request.session.flash("article non trouvé : %s" % ref, 'warning')
|
request.session.flash("Tarif non trouvé : %s" % ref, 'warning')
|
||||||
return HTTPFound(location=request.route_url('articles'))
|
return HTTPFound(location=request.route_url('tarifs', groupe=groupe))
|
||||||
|
|
||||||
page_title= "Tarif : %s" %(item.ref)
|
page_title= "Tarif : %s" %(item.ref)
|
||||||
|
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
new_ref = request.params["ref"]
|
new_ref = request.params["ref"]
|
||||||
if new_ref == '0':
|
if new_ref == '0':
|
||||||
message = "Veuillez saisir un code tarif valide."
|
message = "Veuillez saisir un code tarif valide."
|
||||||
else:
|
else:
|
||||||
new_values = {}
|
new_values = {}
|
||||||
@@ -871,21 +864,21 @@ def tarif_edit(request):
|
|||||||
if param in request.params and request.params[param] != db_value:
|
if param in request.params and request.params[param] != db_value:
|
||||||
new_values[param] = request.params[param]
|
new_values[param] = request.params[param]
|
||||||
|
|
||||||
if new_values:
|
if new_values:
|
||||||
update_article(request, ref, new_values)
|
new_values['groupe'] = groupe
|
||||||
request.session.flash("Le article a été mis à jour avec succès.", 'success')
|
update_tarif(request, ref, new_values)
|
||||||
|
request.session.flash("Le tarif a été mis à jour avec succès.", 'success')
|
||||||
return HTTPFound(location=request.route_url('tarifs', groupe=groupe))
|
return HTTPFound(location=request.route_url('tarifs', groupe=groupe))
|
||||||
|
|
||||||
if 'form.deleted' in request.params:
|
if 'form.deleted' in request.params:
|
||||||
delete_tarif(request, ref)
|
delete_tarif(request, ref)
|
||||||
request.session.flash("Le article a été supprimé avec succès.", 'success')
|
request.session.flash("Le article a été supprimé avec succès.", 'success')
|
||||||
return HTTPFound(location=request.route_url('tarifs', groupe=groupe))
|
return HTTPFound(location=request.route_url('tarifs', groupe=groupe))
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': page_title,
|
'page_title': page_title,
|
||||||
'url': url,
|
'url': url,
|
||||||
'message': message,
|
'message': message,
|
||||||
'item': item,
|
|
||||||
'item': item,
|
'item': item,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user