Sortie temporaire : ajout date retour
This commit is contained in:
parent
8266ab8aeb
commit
fc526918f9
8 changed files with 159 additions and 4 deletions
|
|
@ -28,3 +28,9 @@
|
|||
{{/foreach}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
|
||||
{{if $module.config.loan_duration != null}}
|
||||
{{:assign loan_duration=$module.config.loan_duration}}
|
||||
{{else}}
|
||||
{{:assign loan_duration=$config_defaut.loan_duration}}
|
||||
{{/if}}
|
||||
|
|
|
|||
|
|
@ -33,5 +33,6 @@
|
|||
"label" : "Retour de Location/Emprunt",
|
||||
"type" : "retour"
|
||||
}
|
||||
]
|
||||
],
|
||||
"loan_duration" : "30"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
{{/load}}
|
||||
|
||||
{{* récupérer la config des entrées/sorties *}}
|
||||
{{:include file="../_get_config.html" keep="config, directions"}}
|
||||
{{:include file="../_get_config.html" keep="config, directions, loan_duration"}}
|
||||
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt_new.direction:$mvt_new.operation}}
|
||||
|
||||
{{* interdire de dupliquer un retour => utiliser le bouton « Retour » *}}
|
||||
|
|
@ -93,6 +93,11 @@
|
|||
{{:assign var="mvt_new.amount" value=$_POST.amount}}
|
||||
{{:assign var="mvt_new.date" value=$_POST.date|parse_date}}
|
||||
{{:assign var="mvt_new.comment" value=$_POST.comment}}
|
||||
{{if $_POST.set_return_date != null}}
|
||||
{{:assign return_date=$_POST.return_date}}
|
||||
{{else}}
|
||||
{{:assign return_date=null}}
|
||||
{{/if}}
|
||||
|
||||
{{*
|
||||
lister les mouvements
|
||||
|
|
@ -198,6 +203,7 @@
|
|||
user=$user.id
|
||||
storage=$_POST.storage
|
||||
transactions=$transactions
|
||||
return_date=$return_date|parse_date
|
||||
}}
|
||||
{{:redirect force="../equipment_history.html?ok=1&key=%s&prop=%s&msg=copie"|args:$eqpmt_key:$prop}}
|
||||
{{/form}}
|
||||
|
|
@ -272,6 +278,22 @@
|
|||
{{/if}}
|
||||
{{/if}}
|
||||
{{:input type="textarea" name="comment" label="Remarques" cols="40", rows="3" required=false default=$mvt_new.comment}}
|
||||
{{if $mvt_new.direction == "output" && $type_mvt == "temporaire"}}
|
||||
{{if $mvt_new.return_date != null}}
|
||||
{{:assign checked="checked"}}
|
||||
{{:assign visibility="visible"}}
|
||||
{{:assign return_date=$mvt_new.return_date}}
|
||||
{{else}}
|
||||
{{:assign visibility="hidden"}}
|
||||
{{:assign ts_sortie=$mvt_new.date|strtotime}}
|
||||
{{:assign ts_retour="%d+%d*(60*60*24)"|math:$ts_sortie:$loan_duration}}
|
||||
{{:assign return_date=$ts_retour|date_short}}
|
||||
{{/if}}
|
||||
{{:input id="set_return_date" type="checkbox" value=1 name="set_return_date" label="Fixer une date de retour" help="Cocher pour fixer une date de retour" checked="%s"|args:$checked}}
|
||||
<div id="div_return_date" style="visibility:{{$visibility}}">
|
||||
{{:input type="date" name="return_date" label="Date de retour" default=$return_date}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
|
|
@ -282,3 +304,14 @@
|
|||
</form>
|
||||
|
||||
{{:admin_footer}}
|
||||
|
||||
<script type="text/javascript" src="../scripts.js"></script>
|
||||
<script type="text/javascript">
|
||||
function changeVisibility(evt, idcheck = 'f_set_return_date_1', fields = ['div_return_date']) {
|
||||
toggleVisibility(idcheck, fields);
|
||||
}
|
||||
|
||||
(function () {
|
||||
document.getElementById('f_set_return_date_1').onclick = changeVisibility;
|
||||
})();
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
{{/load}}
|
||||
|
||||
{{* récupérer la config des entrées/sorties *}}
|
||||
{{:include file="../_get_config.html" keep="config, directions"}}
|
||||
{{:include file="../_get_config.html" keep="config, directions, loan_duration"}}
|
||||
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt_new.direction:$mvt_new.operation}}
|
||||
|
||||
{{if $mvt_new.direction == "input"}}
|
||||
|
|
@ -84,6 +84,11 @@
|
|||
{{:assign var="mvt_new.amount" value=$_POST.amount}}
|
||||
{{:assign var="mvt_new.date" value=$_POST.date|parse_date}}
|
||||
{{:assign var="mvt_new.comment" value=$_POST.comment}}
|
||||
{{if $_POST.set_return_date != null}}
|
||||
{{:assign return_date=$_POST.return_date}}
|
||||
{{else}}
|
||||
{{:assign return_date=null}}
|
||||
{{/if}}
|
||||
|
||||
{{*
|
||||
lister les mouvements
|
||||
|
|
@ -215,6 +220,7 @@
|
|||
user=$user_id
|
||||
storage=$_POST.storage
|
||||
transactions=$transactions
|
||||
return_date=$return_date|parse_date
|
||||
}}
|
||||
{{:redirect force="../equipment_history.html?ok=1&key=%s&prop=%s&msg=modification"|args:$eqpmt_key:$prop}}
|
||||
{{/form}}
|
||||
|
|
@ -298,6 +304,23 @@
|
|||
{{/if}}
|
||||
{{/if}}
|
||||
{{:input type="textarea" name="comment" label="Remarques" cols="40", rows="3" required=false default=$mvt_new.comment}}
|
||||
{{if $mvt_new.direction == "output" && $type_mvt == "temporaire"}}
|
||||
{{if $mvt_new.return_date != null}}
|
||||
{{:assign checked="checked"}}
|
||||
{{:assign visibility="visible"}}
|
||||
{{:assign return_date=$mvt_new.return_date}}
|
||||
{{else}}
|
||||
{{:assign visibility="hidden"}}
|
||||
{{:assign ts_sortie=$mvt_new.date|strtotime}}
|
||||
{{:assign ts_retour="%d+%d*(60*60*24)"|math:$ts_sortie:$loan_duration}}
|
||||
{{:assign return_date=$ts_retour|date_short}}
|
||||
{{/if}}
|
||||
{{:input id="set_return_date" type="checkbox" value=1 name="set_return_date" label="Fixer une date de retour" help="Cocher pour fixer une date de retour" checked="%s"|args:$checked}}
|
||||
<div id="div_return_date" style="visibility:{{$visibility}}">
|
||||
{{:input type="date" name="return_date" label="Date de retour" default=$return_date}}
|
||||
<input type="hidden" id="loan_duration" name="loan_duration" value="{{$loan_duration}}">
|
||||
</div>
|
||||
{{/if}}
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
|
|
@ -308,3 +331,22 @@
|
|||
</form>
|
||||
|
||||
{{:admin_footer}}
|
||||
|
||||
<script type="text/javascript" src="../scripts.js"></script>
|
||||
<script type="text/javascript">
|
||||
function changeVisibility(evt, idcheck = 'f_set_return_date_1', fields = ['div_return_date']) {
|
||||
toggleVisibility(idcheck, fields);
|
||||
}
|
||||
|
||||
function changeReturnDate(evt, id_date = 'f_date', id_return_date = 'f_return_date', id_loan_duration='loan_duration') {
|
||||
const loan_duration = document.getElementById(id_loan_duration).value;
|
||||
let nbsec = getDate(id_date) + loan_duration*24*60*60;
|
||||
const date_retour = new Date(nbsec * 1000);
|
||||
document.getElementById(id_return_date).value = date_retour.toLocaleDateString();
|
||||
}
|
||||
|
||||
(function () {
|
||||
document.getElementById('f_set_return_date_1').onclick = changeVisibility;
|
||||
document.getElementById('f_date').onchange = changeReturnDate;
|
||||
})();
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -46,6 +46,11 @@
|
|||
"items": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"return_date" : {
|
||||
"description": "Date de retour du matériel",
|
||||
"type" : ["null", "string"],
|
||||
"format" : "date"
|
||||
}
|
||||
},
|
||||
"required": ["type", "direction", "operation", "amount", "equipment", "date", "comment"]
|
||||
|
|
|
|||
|
|
@ -101,6 +101,10 @@
|
|||
{{else}}—
|
||||
{{/if}}
|
||||
</dd>
|
||||
{{if $mvt.return_date != null}}
|
||||
<dt>Date de retour</dt>
|
||||
<dd>{{$mvt.return_date|date_short}}</dd>
|
||||
{{/if}}
|
||||
</dl>
|
||||
|
||||
<form method="post" action="">
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
*}}
|
||||
|
||||
{{* récupérer la config des entrées/sorties *}}
|
||||
{{:include file="../_get_config.html" keep="config"}}
|
||||
{{:include file="../_get_config.html" keep="config, loan_duration"}}
|
||||
|
||||
{{* types de sorties *}}
|
||||
{{#foreach from=$config.output_nature key=key}}
|
||||
|
|
@ -31,6 +31,15 @@
|
|||
{{/if}}
|
||||
|
||||
{{:assign var="type_mvt" from="config.output_nature.%s.type"|args:$_POST.operation}}
|
||||
{{if $type_mvt != "temporaire" && $_POST.set_return_date != null}}
|
||||
{{:error message="On ne peut associer une date de retour qu'à une sortie temporaire"}}
|
||||
{{/if}}
|
||||
{{if $_POST.set_return_date != null}}
|
||||
{{:assign return_date=$_POST.return_date}}
|
||||
{{else}}
|
||||
{{:assign return_date=null}}
|
||||
{{/if}}
|
||||
|
||||
{{if $_POST.user|count > 1}}
|
||||
{{:error message="Un membre au plus peut être associé à une sortie"}}
|
||||
{{/if}}
|
||||
|
|
@ -142,6 +151,7 @@
|
|||
date=$_POST.date|parse_date
|
||||
comment=$_POST.remarques|trim
|
||||
user=$user.id
|
||||
return_date=$return_date|parse_date
|
||||
}}
|
||||
{{:redirect force="../equipment_history.html?ok=1&key=%s&prop=1&msg=sortie"|args:$_GET.key}}
|
||||
{{/form}}
|
||||
|
|
@ -156,6 +166,8 @@
|
|||
{{:assign dispo="%d-%d"|math:$equipment.stock:$equipment.out}}
|
||||
|
||||
{{if $dispo > 0}}
|
||||
{{:assign ts_retour="%d+%d*(60*60*24)"|math:$now:$loan_duration}}
|
||||
{{:assign date_retour=$ts_retour|date_short}}
|
||||
|
||||
{{* formulaire de sortie de matériel *}}
|
||||
<form method="post" action="">
|
||||
|
|
@ -194,6 +206,11 @@
|
|||
max=1
|
||||
}}
|
||||
{{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}}
|
||||
{{:input id="set_return_date" type="checkbox" value=1 name="set_return_date" label="Fixer une date de retour" help="Cocher pour fixer une date de retour"}}
|
||||
<div id="div_return_date" style="visibility:hidden">
|
||||
{{:input type="date" id="return_date" name="return_date" label="Date de retour" default=$date_retour}}
|
||||
<input type="hidden" id="loan_duration" name="loan_duration" value="{{$loan_duration}}">
|
||||
</div>
|
||||
</dl>
|
||||
</fieldset>
|
||||
<p class="submit">
|
||||
|
|
@ -206,3 +223,23 @@
|
|||
|
||||
{{:form_errors}}
|
||||
{{:admin_footer}}
|
||||
|
||||
<script type="text/javascript" src="../scripts.js"></script>
|
||||
<script type="text/javascript">
|
||||
function changeVisibility(evt, idcheck = 'f_set_return_date_1', fields = ['div_return_date']) {
|
||||
toggleVisibility(idcheck, fields);
|
||||
}
|
||||
|
||||
function changeReturnDate(evt, id_date = 'f_date', id_return_date = 'f_return_date', id_loan_duration='loan_duration') {
|
||||
const loan_duration = document.getElementById(id_loan_duration).value;
|
||||
let nbsec = getDate(id_date) + loan_duration*24*60*60;
|
||||
const date_retour = new Date(nbsec * 1000);
|
||||
document.getElementById(id_return_date).value = date_retour.toLocaleDateString();
|
||||
}
|
||||
|
||||
(function () {
|
||||
document.getElementById('f_set_return_date_1').checked = false;
|
||||
document.getElementById('f_set_return_date_1').onclick = changeVisibility;
|
||||
document.getElementById('f_date').onchange = changeReturnDate;
|
||||
})();
|
||||
</script>
|
||||
|
|
|
|||
27
scripts.js
27
scripts.js
|
|
@ -25,3 +25,30 @@ function disableColumSort(liste) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
function toggleVisibility(idcheck, fields) {
|
||||
const elem = document.getElementById(idcheck);
|
||||
for (let id of fields) {
|
||||
const field = document.getElementById(id);
|
||||
if (elem.checked) {
|
||||
field.style.visibility = "visible";
|
||||
} else {
|
||||
field.style.visibility = "hidden";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* renvoyer la valeur en secondes d'une date au format j/m/a
|
||||
* @param {string} date
|
||||
*/
|
||||
function str2sec(date) {
|
||||
const jma = date.split('/');
|
||||
const dd = new Date(jma[2], jma[1]-1, jma[0]);
|
||||
return dd.getTime()/1000;
|
||||
}
|
||||
|
||||
// renvoyer la valeur en secondes d'un champ date
|
||||
function getDate(idelem) {
|
||||
return str2sec(document.getElementById(idelem).value);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue