Files
2023-06-22 10:34:18 +02:00

562 lines
19 KiB
XML

<metal:block use-macro="main_template">
<div metal:fill-slot="content">
<div tal:condition="message" tal:content="message" class="alert alert-danger" />
<form id="formule_edit-form" class="form-horizontal" action="${url}" method="post" tal:condition="item"
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-xs-4" for="FORMULE">Formule</label>
<div class="col-xs-8">
<input class="form-control" type="text" id="FORMULE" name="FORMULE" value="${item.FORMULE}"
placeholder="5 caractères maximum"
data-fv-notempty="true"
data-fv-notempty-message="La formule est obligatoire"
data-fv-stringlength="true"
data-fv-stringlength-max="10"
data-fv-stringlength-message=" caractères maximum" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="LIBELLE">Libellé</label>
<div class="col-xs-8">
<input class="form-control" type="text" id="LIBELLE" name="LIBELLE" value="${item.LIBELLE}"
placeholder="30 caractères maximum"
data-fv-notempty="true"
data-fv-notempty-message="Le libellé est obligatoire"
data-fv-stringlength="true"
data-fv-stringlength-max="30"
data-fv-stringlength-message="30 caractères maximum" />
</div>
</div>
<div class="form-group">
<div class="col-xs-offset-4 col-xs-3 checkbox">
<label><input type="checkbox" name="STAGE" value="item.STAGE" id="STAGE"
tal:attributes="checked item.STAGE != 0 and 'checked' or None">Formule stage
</label>
</div>
<div class="col-xs-5 checkbox">
<label><input type="checkbox" name="forfait_code" value="item.forfait_code" id="forfait_code"
tal:attributes="checked item.forfait_code != 0 and 'checked' or None">avec forfait code
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4">Type examen</label>
<div class="col-xs-8">
<select class="form-control" id="type_examen" name="type_examen">
<tal:block tal:repeat="type_exa types_exa">
<option value="${type_exa}" tal:attributes="selected type_exa==item.type_examen and 'selected' or None">${type_exa}</option>
</tal:block>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4">Filière</label>
<div class="col-xs-8">
<select class="form-control" id="FILIERE" name="FILIERE">
<tal:block tal:repeat="fil filieres">
<option value="${fil.code}" tal:attributes="selected fil.code==item.FILIERE and 'selected' or None">${fil.libelle}</option>
</tal:block>
</select>
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">Validité du code</label>
<div class="col-xs-8">
<div class="input-group">
<span class="input-group-addon">Jours</span>
<input class="form-control" type="text" id="DUREE_CODE" name="DUREE_CODE" value="${item.DUREE_CODE}"
data-fv-numeric="true"
data-fv-numeric-message="Le nombre est invalide" />
<span class="input-group-addon">0 = pas de limite.</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">Validité conduite</label>
<div class="col-xs-8">
<div class="input-group">
<span class="input-group-addon">Jours</span>
<input class="form-control" type="text" id="DUREE_COND" name="DUREE_COND" value="${item.DUREE_COND}"
data-fv-numeric="true"
data-fv-numeric-message="Le nombre est invalide" />
<span class="input-group-addon">0 = pas de limite.</span>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="DateDeb">Date début validité</label>
<div class="col-xs-8">
<div class="input-group date" id="DateDeb">
<input class="form-control" type="text" name="DateDeb" value="${item.DateDeb.strftime('%d-%m-%Y')}"
data-fv-notempty="true"
data-fv-notempty-message="La date de début est obligatoire"
data-fv-date="true"
data-fv-date-format="DD-MM-YYYY"
data-fv-date-message="La date n'est pas valide" />
<span class="input-group-addon add-on">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="DateFin">Date fin validité</label>
<div class="col-xs-8">
<div class="input-group date" id="DateFin">
<input class="form-control" type="text" name="DateFin" value="${item.DateFin.strftime('%d-%m-%Y')}"
data-fv-notempty="true"
data-fv-notempty-message="La date de fin est obligatoire"
data-fv-date="true"
data-fv-date-format="DD-MM-YYYY"
data-fv-date-message="La date n'est pas valide" />
<span class="input-group-addon add-on">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<h3 class="text-primary">Ce forfait comprend :</h3>
<div class="form-group">
<label class="col-xs-4 control-label">Présentation théorique</label>
<div class="col-xs-3">
<input class="form-control" type="text" id="NBPTGRATUIT" name="NBPTGRATUIT" value="${item.NBPTGRATUIT}"
data-fv-numeric="true"
data-fv-numeric-message="Le nombre est invalide" />
</div>
<label class="col-xs-2 control-label">Pratique</label>
<div class="col-xs-3">
<input class="form-control" type="text" id="NBPPGRATUIT" name="NBPPGRATUIT" value="${item.NBPPGRATUIT}"
data-fv-numeric="true"
data-fv-numeric-message="Le nombre est invalide" />
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">Heure de conduite</label>
<div class="col-xs-3">
<input class="form-control" type="text" id="NBHCGRATUIT" name="NBHCGRATUIT" value="${item.NBHCGRATUIT}"
data-fv-numeric="true"
data-fv-numeric-message="Le nombre est invalide" />
</div>
<label class="col-xs-2 control-label">valorisée à </label>
<div class="col-xs-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
<input class="form-control" type="text" id="VAL_HCG" name="VAL_HCG" value="${item.VAL_HCG}"
data-fv-numeric="true"
data-fv-numeric-message="Le montant est invalide" />
</div>
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">Séance de circuit</label>
<div class="col-xs-3">
<input class="form-control" type="text" id="NBCCGRATUIT" name="NBCCGRATUIT" value="${item.NBCCGRATUIT}"
data-fv-numeric="true"
data-fv-numeric-message="Le nombre est invalide" />
</div>
<label class="col-xs-2 control-label">valorisée à </label>
<div class="col-xs-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
<input class="form-control" type="text" id="VAL_CCG" name="VAL_CCG" value="${item.VAL_CCG}"
data-fv-numeric="true"
data-fv-numeric-message="Le montant est invalide" />
</div>
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">Examen blanc</label>
<div class="col-xs-3">
<input class="form-control" type="text" id="NBTAGRATUIT" name="NBTAGRATUIT" value="${item.NBTAGRATUIT}"
data-fv-numeric="true"
data-fv-numeric-message="Le nombre est invalide" />
</div>
<label class="col-xs-2 control-label">valorisée à </label>
<div class="col-xs-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
<input class="form-control" type="text" id="VAL_TAG" name="VAL_TAG" value="${item.VAL_TAG}"
data-fv-numeric="true"
data-fv-numeric-message="Le montant est invalide" />
</div>
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">RDV pédagogique</label>
<div class="col-xs-3">
<input class="form-control" type="text" id="NBRPGRATUIT" name="NBRPGRATUIT" value="${item.NBRPGRATUIT}"
data-fv-numeric="true"
data-fv-numeric-message="Le nombre est invalide" />
</div>
<label class="col-xs-2 control-label">valorisée à </label>
<div class="col-xs-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
<input class="form-control" type="text" id="VAL_RPG" name="VAL_RPG" value="${item.VAL_RPG}"
data-fv-numeric="true"
data-fv-numeric-message="Le montant est invalide" />
</div>
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">Heure de route</label>
<div class="col-xs-3">
<input class="form-control" type="text" id="NBHRGRATUIT" name="NBHRGRATUIT" value="${item.NBHRGRATUIT}"
data-fv-numeric="true"
data-fv-numeric-message="Le nombre est invalide" />
</div>
<label class="col-xs-2 control-label">valorisée à </label>
<div class="col-xs-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
<input class="form-control" type="text" id="VAL_HRG" name="VAL_HRG" value="${item.VAL_HRG}"
data-fv-numeric="true"
data-fv-numeric-message="Le montant est invalide" />
</div>
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">Nb heure(s) par séance</label>
<div class="col-xs-8">
<input class="form-control" type="text" id="HSeance" name="HSeance" value="${item.HSeance}"
data-fv-numeric="true"
data-fv-numeric-message="Le nombre est invalide" />
</div>
</div>
<h3 class="text-primary">Produits à débiter à l'instription</h3>
<div class="form-group">
<label class="col-xs-3 control-label">Réf. 1</label>
<div class="col-xs-4">
<input class="form-control" type="text" id="INS1" name="INS1" value="${item.INS1}" />
</div>
<label class="col-xs-2 control-label">valorisée à </label>
<div class="col-xs-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
<input class="form-control" type="text" id="MTVAL1" name="MTVAL1" value="${item.MTVAL1}"
data-fv-numeric="true"
data-fv-numeric-message="Le montant est invalide" />
</div>
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label">Réf. 2</label>
<div class="col-xs-4">
<input class="form-control" type="text" id="INS2" name="INS2" value="${item.INS2}" />
</div>
<label class="col-xs-2 control-label">valorisée à </label>
<div class="col-xs-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
<input class="form-control" type="text" id="MTVAL2" name="MTVAL2" value="${item.MTVAL2}"
data-fv-numeric="true"
data-fv-numeric-message="Le montant est invalide" />
</div>
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label">Réf. 3</label>
<div class="col-xs-4">
<input class="form-control" type="text" id="INS3" name="INS3" value="${item.INS3}" />
</div>
<label class="col-xs-2 control-label">valorisée à </label>
<div class="col-xs-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
<input class="form-control" type="text" id="MTVAL3" name="MTVAL3" value="${item.MTVAL3}"
data-fv-numeric="true"
data-fv-numeric-message="Le montant est invalide" />
</div>
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label">Réf. 4</label>
<div class="col-xs-4">
<input class="form-control" type="text" id="INS4" name="INS4" value="${item.INS4}" />
</div>
<label class="col-xs-2 control-label">valorisée à </label>
<div class="col-xs-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
<input class="form-control" type="text" id="MTVAL4" name="MTVAL4" value="${item.MTVAL4}"
data-fv-numeric="true"
data-fv-numeric-message="Le montant est invalide" />
</div>
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label">Réf. 5</label>
<div class="col-xs-4">
<input class="form-control" type="text" id="INS5" name="INS5" value="${item.INS5}" />
</div>
<label class="col-xs-2 control-label">valorisée à </label>
<div class="col-xs-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
<input class="form-control" type="text" id="MTVAL5" name="MTVAL5" value="${item.MTVAL5}"
data-fv-numeric="true"
data-fv-numeric-message="Le montant est invalide" />
</div>
</div>
</div>
<h3 class="text-primary">Produits à débiter pour :</h3>
<div class="form-group">
<label class="col-xs-4 control-label">Examen blanc</label>
<div class="col-xs-4">
<input class="form-control" type="text" id="TFISC" name="TFISC" value="${item.TFISC}" />
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">Présentation théorique</label>
<div class="col-xs-4">
<input class="form-control" type="text" id="P_THEOS" name="P_THEOS" value="${item.P_THEOS}" />
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">1ère présentation pratique</label>
<div class="col-xs-4">
<input class="form-control" type="text" id="P_PRATS1" name="P_PRATS1" value="${item.P_PRATS1}" />
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">Présentation pratique suivante</label>
<div class="col-xs-4">
<input class="form-control" type="text" id="P_PRATS" name="P_PRATS" value="${item.P_PRATS}" />
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">Heure de conduite</label>
<div class="col-xs-4">
<input class="form-control" type="text" id="HCONDUIT" name="HCONDUIT" value="${item.HCONDUIT}" />
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">Document formant le contrat</label>
<div class="col-xs-8">
<input class="form-control" type="text" id="CONTRAT1" name="CONTRAT1" value="${item.CONTRAT1}" readonly />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="access">Dernière modif.</label>
<div class="col-xs-7">
<p class="form-control-static" tal:condition="item.FORMULE != '0'">${item.modif_le.strftime('%d/%m/%Y - %H:%M')}</p>
</div>
</div>
<br />
<div class="form-group">
<div class="col-xs-offset-2 col-xs-10">
<div class="form-group">
<a class="btn btn-default" href="${request.application_url}/formules">
<span class="glyphicon glyphicon-chevron-left"></span> Annuler</a>
<button class="btn btn-primary" type="submit" name="form.submitted">
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
<button class="btn btn-warning" type="submit" name="form.deleted"
tal:condition="item.FORMULE != '0'">
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
</div>
</div>
</div>
</form>
<br />
<br />
<div metal:fill-slot="additional_scripts">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<!-- Bootstrap Datepicker plugin -->
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>
<script>
$(document).ready(function() {
$('#formule_edit-form').formValidation();
$('#DateDeb').datetimepicker({
format: 'DD-MM-YYYY',
allowInputToggle: true,
})
.on('dp.change', function(e) {
// Revalidate the date field
$('#formule_edit-form').formValidation('revalidateField', 'DateDeb');
});
$('#DateFin').datetimepicker({
format: 'DD-MM-YYYY',
allowInputToggle: true,
})
.on('dp.change', function(e) {
// Revalidate the date field
$('#formule_edit-form').formValidation('revalidateField', 'DateFin');
});
$('form input').on('keypress', function(e) {
return e.which !== 13;
});
$('#INS1').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_tarifs',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response( data );
},
});
},
minLength: 2,
});
$('#INS2').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_tarifs',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response( data );
},
});
},
minLength: 2,
});
$('#INS3').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_tarifs',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response( data );
},
});
},
minLength: 2,
});
$('#INS4').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_tarifs',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response( data );
},
});
},
minLength: 2,
});
$('#INS5').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_tarifs',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response( data );
},
});
},
minLength: 2,
});
$('#TFISC').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_tarifs',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response( data );
},
});
},
minLength: 2,
});
$('#P_THEOS').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_tarifs',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response( data );
},
});
},
minLength: 2,
});
$('#P_PRATS1').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_tarifs',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response( data );
},
});
},
minLength: 2,
});
$('#P_PRATS').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_tarifs',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response( data );
},
});
},
minLength: 2,
});
$('#HCONDUIT').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_tarifs',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response( data );
},
});
},
minLength: 2,
});
});
</script>
</div>
</div>
</metal:block>