Compare commits
No commits in common. "17b8812f43675201f339677d168b8a0634d0ecf8" and "90276cb026f1a70544ad63fa3bd84cc73c417207" have entirely different histories.
17b8812f43
...
90276cb026
21 changed files with 227 additions and 253 deletions
|
|
@ -26,3 +26,9 @@
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
|
|
||||||
|
{{if $module.config.loan_duration != null}}
|
||||||
|
{{:assign loan_duration=$module.config.loan_duration}}
|
||||||
|
{{else}}
|
||||||
|
{{:assign loan_duration=$config_defaut.loan_duration}}
|
||||||
|
{{/if}}
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@
|
||||||
{{else}}
|
{{else}}
|
||||||
{{:assign prop="&prop=%s"|args:$selected_prop}}
|
{{:assign prop="&prop=%s"|args:$selected_prop}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<td>{{:link href="equipment_history.html?key=%s&prop=%s"|args:$key:$selected_prop label=$name}}</td>
|
<td>{{:link href="equipment_history.html?key=%s&prop=%s"|args:$key:$selected_prop" label=$name}}</td>
|
||||||
<td>{{$cat_name}}</td>
|
<td>{{$cat_name}}</td>
|
||||||
<td class="num">{{$stock}}</td>
|
<td class="num">{{$stock}}</td>
|
||||||
<td class="num">{{$col4}}</td>
|
<td class="num">{{$col4}}</td>
|
||||||
|
|
@ -120,8 +120,22 @@
|
||||||
<td class="num">{{$out}}</td>
|
<td class="num">{{$out}}</td>
|
||||||
<td class="num">{{$col7}}</td>
|
<td class="num">{{$col7}}</td>
|
||||||
<td class="actions">
|
<td class="actions">
|
||||||
|
{{*
|
||||||
|
{{if $col7 > 0}}
|
||||||
{{:linkbutton
|
{{:linkbutton
|
||||||
label="Mouvements"
|
label="Sortie"
|
||||||
|
shape="minus"
|
||||||
|
href="movements/output_equipment.html?key=%s"|args:$key
|
||||||
|
target="_dialog"}}
|
||||||
|
{{/if}}
|
||||||
|
{{:linkbutton
|
||||||
|
label="Entrée"
|
||||||
|
shape="plus"
|
||||||
|
href="movements/input_equipment.html?key=%s"|args:$key
|
||||||
|
target="_dialog"}}
|
||||||
|
*}}
|
||||||
|
{{:linkbutton
|
||||||
|
label="Historique"
|
||||||
href="equipment_history.html?key=%s&prop=1"|args:$key
|
href="equipment_history.html?key=%s&prop=1"|args:$key
|
||||||
shape="table"}}
|
shape="table"}}
|
||||||
{{:linkbutton
|
{{:linkbutton
|
||||||
|
|
|
||||||
46
_nav.html
46
_nav.html
|
|
@ -3,30 +3,14 @@
|
||||||
<nav class="tabs">
|
<nav class="tabs">
|
||||||
{{if $current == 'inventaire'}}
|
{{if $current == 'inventaire'}}
|
||||||
<aside>
|
<aside>
|
||||||
{{if $subcurrent == 'stock'}}
|
{{if $subcurrent == 'stock' && $cat == 0}}
|
||||||
{{if $cat == 0}}
|
|
||||||
{{:linkbutton label="Ajouter une catégorie" shape="plus" href="categories/add_category.html" target="_dialog"}}
|
{{:linkbutton label="Ajouter une catégorie" shape="plus" href="categories/add_category.html" target="_dialog"}}
|
||||||
{{else}}
|
{{else}}
|
||||||
|
{{if $subcurrent == 'stock'}}
|
||||||
{{:exportmenu right=true}}
|
{{:exportmenu right=true}}
|
||||||
|
{{/if}}
|
||||||
{{:linkbutton label="Ajouter un nouveau matériel" shape="plus" href="movements/add_new_equipment.html" target="_dialog"}}
|
{{:linkbutton label="Ajouter un nouveau matériel" shape="plus" href="movements/add_new_equipment.html" target="_dialog"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{elseif $subcurrent == "mouvements"}}
|
|
||||||
{{if $sortie != null}}
|
|
||||||
{{:linkbutton label="Sortie" shape="minus" href="movements/output_equipment.html?key=%s"|args:$key target="_dialog"}}
|
|
||||||
{{/if}}
|
|
||||||
{{:linkbutton label="Entrée" shape="plus" href="movements/input_equipment.html?key=%s"|args:$key target="_dialog"}}
|
|
||||||
{{/if}}
|
|
||||||
</aside>
|
|
||||||
{{elseif $current == 'config'}}
|
|
||||||
<aside>
|
|
||||||
{{if $subcurrent == 'categories'}}
|
|
||||||
{{:linkbutton label="Ajouter une catégorie" shape="plus" href="add_category.html" target="_dialog"}}
|
|
||||||
{{elseif $subcurrent == 'storage'}}
|
|
||||||
{{:linkbutton label="Ajouter un lieu de stockage" shape="plus" href="add_storage.html" target="_dialog"}}
|
|
||||||
{{elseif $subcurrent == 'typesES'}}
|
|
||||||
{{:linkbutton label="Ajouter un type d'entrée" shape="plus" href="config/add_movement_type.html?dir=input" target="_dialog"}}
|
|
||||||
{{:linkbutton label="Ajouter un type de sortie" shape="plus" href="config/add_movement_type.html?dir=output" target="_dialog"}}
|
|
||||||
{{/if}}
|
|
||||||
</aside>
|
</aside>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
|
@ -40,30 +24,44 @@
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
{{if $current == 'inventaire'}}
|
{{if $current == 'inventaire'}}
|
||||||
{{if $subcurrent == 'mouvements'}}
|
{{if $subcurrent == 'historique'}}
|
||||||
<ul class="sub">
|
<ul class="sub">
|
||||||
<li class="title"><strong>Mouvements — {{$eqpmt}} ({{$category}})</strong></li>
|
<li class="title"><strong>Historique — {{$eqpmt}} ({{$category}})</strong></li>
|
||||||
</ul>
|
</ul>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{elseif $current == 'prêt'}}
|
{{elseif $current == 'prêt'}}
|
||||||
<ul class="sub">
|
<ul class="sub">
|
||||||
<li {{if $subcurrent == 'encours'}} class="current"{{/if}}><a href="{{$module.url}}loan_history.html?output_type=loan">En cours</a></li>
|
<li {{if $subcurrent == 'encours'}} class="current"{{/if}}><a href="{{$module.url}}loan_history.html?output_type=loan">En cours</a></li>
|
||||||
<li {{if $subcurrent == 'historique'}} class="current"{{/if}}><a href="{{$module.url}}loan_movements.html?output_type=loan">Historique</a></li>
|
<li {{if $subcurrent == 'historique'}} class="current"{{/if}}><a href="{{$module.url}}loan_movements.html?output_type=loan">Historique</a></li>
|
||||||
<li {{if $subcurrent == 'membres'}} class="current"{{/if}}><a href="{{$module.url}}member_loan.html?output_type=loan">Prêts en cours aux membres</a></li>
|
<li {{if $subcurrent == 'membres'}} class="current"{{/if}}><a href="{{$module.url}}member_loan.html?output_type=loan">Membres</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
{{elseif $current == 'location'}}
|
{{elseif $current == 'location'}}
|
||||||
<ul class="sub">
|
<ul class="sub">
|
||||||
<li {{if $subcurrent == 'encours'}} class="current"{{/if}}><a href="{{$module.url}}loan_history.html?output_type=rent">En cours</a></li>
|
<li {{if $subcurrent == 'encours'}} class="current"{{/if}}><a href="{{$module.url}}loan_history.html?output_type=rent">En cours</a></li>
|
||||||
<li {{if $subcurrent == 'historique'}} class="current"{{/if}}><a href="{{$module.url}}loan_movements.html?output_type=rent">Historique</a></li>
|
<li {{if $subcurrent == 'historique'}} class="current"{{/if}}><a href="{{$module.url}}loan_movements.html?output_type=rent">Historique</a></li>
|
||||||
<li {{if $subcurrent == 'membres'}} class="current"{{/if}}><a href="{{$module.url}}member_loan.html?output_type=rent">Locations en cours aux membres</a></li>
|
<li {{if $subcurrent == 'membres'}} class="current"{{/if}}><a href="{{$module.url}}member_loan.html?output_type=rent">Membres</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
{{elseif $current == 'archives'}}
|
{{elseif $current == 'archives'}}
|
||||||
{{if $subcurrent == 'mouvements'}}
|
{{if $subsubcurrent == 'historique'}}
|
||||||
<ul class="sub">
|
<ul class="sub">
|
||||||
<li class="title"><strong>Historique — {{$eqpmt}} ({{$category}})</strong></li>
|
<li class="title"><strong>Historique — {{$eqpmt}} ({{$category}})</strong></li>
|
||||||
</ul>
|
</ul>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{elseif $current == 'config'}}
|
{{elseif $current == 'config'}}
|
||||||
|
{{if $subcurrent == 'categories'}}
|
||||||
|
<aside>
|
||||||
|
{{:linkbutton label="Ajouter une catégorie" shape="plus" href="add_category.html" target="_dialog"}}
|
||||||
|
</aside>
|
||||||
|
{{elseif $subcurrent == 'storage'}}
|
||||||
|
<aside>
|
||||||
|
{{:linkbutton label="Ajouter un lieu de stockage" shape="plus" href="add_storage.html" target="_dialog"}}
|
||||||
|
</aside>
|
||||||
|
{{elseif $subcurrent == 'typesES'}}
|
||||||
|
<aside>
|
||||||
|
{{:linkbutton label="Ajouter un type d'entrée" shape="plus" href="config/add_movement_type.html?dir=input" target="_dialog"}}
|
||||||
|
{{:linkbutton label="Ajouter un type de sortie" shape="plus" href="config/add_movement_type.html?dir=output" target="_dialog"}}
|
||||||
|
</aside>
|
||||||
|
{{/if}}
|
||||||
<ul class="sub">
|
<ul class="sub">
|
||||||
<li {{if $subcurrent == 'categories'}} class="current"{{/if}}><a href="{{$module.url}}categories/index.html">Catégories</a></li>
|
<li {{if $subcurrent == 'categories'}} class="current"{{/if}}><a href="{{$module.url}}categories/index.html">Catégories</a></li>
|
||||||
<li {{if $subcurrent == 'storage'}} class="current"{{/if}}><a href="{{$module.url}}storage/index.html">Lieux de stockage</a></li>
|
<li {{if $subcurrent == 'storage'}} class="current"{{/if}}><a href="{{$module.url}}storage/index.html">Lieux de stockage</a></li>
|
||||||
|
|
|
||||||
|
|
@ -66,11 +66,11 @@
|
||||||
}}
|
}}
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{:link href="equipment_history.html?key=%s&prop=1¤t=archives"|args:$key label=$name}}</td>
|
<td>{{$name}}</td>
|
||||||
<td>{{$col2}}</td>
|
<td>{{$col2}}</td>
|
||||||
<td class="actions">
|
<td class="actions">
|
||||||
{{:linkbutton
|
{{:linkbutton
|
||||||
label="Mouvements"
|
label="Historique"
|
||||||
href="equipment_history.html?key=%s&prop=1¤t=archives"|args:$key
|
href="equipment_history.html?key=%s&prop=1¤t=archives"|args:$key
|
||||||
shape="table"}}
|
shape="table"}}
|
||||||
{{:linkbutton
|
{{:linkbutton
|
||||||
|
|
|
||||||
|
|
@ -36,11 +36,6 @@
|
||||||
"type" : {
|
"type" : {
|
||||||
"type" : "string",
|
"type" : "string",
|
||||||
"enum" : ["définitif", "temporaire", "retour"]
|
"enum" : ["définitif", "temporaire", "retour"]
|
||||||
},
|
|
||||||
"fee" : {
|
|
||||||
"description" : "tarif sortie temporaire",
|
|
||||||
"type" : ["string", "null"],
|
|
||||||
"enum" : ["gratuit", "payant"]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@
|
||||||
{{#restrict block=true section="accounting" level="write"}}{{/restrict}}
|
{{#restrict block=true section="accounting" level="write"}}{{/restrict}}
|
||||||
|
|
||||||
{{#form on="save"}}
|
{{#form on="save"}}
|
||||||
{{* vérifier la validité de la durée saisie *}}
|
{{* vérifier la valisité de la durée saisie *}}
|
||||||
{{if $_POST.loan_duration < 0}}
|
{{if $_POST.loan_duration <= 0}}
|
||||||
{{:error message="Durée (%s) erronée ; doit être >= 0"|args:$_POST.loan_duration}}
|
{{:error message="Durée (%s) erronée ; doit être > 0"|args:$_POST.loan_duration}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{:save
|
{{:save
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Autres paramètres</legend>
|
<legend>Autres paramètres</legend>
|
||||||
<dl>
|
<dl>
|
||||||
{{:input type="number" name="loan_duration" label="Durée de prêt par défaut" min=0 default=$module.config.loan_duration help="Durée en nombre de jours ; mettre 0 pour supprimer la durée par défaut"}}
|
{{:input type="number" name="loan_duration" label="Durée de prêt par défaut" min=1 required=true default=$loan_duration help="Durée en nombre de jours"}}
|
||||||
</dl>
|
</dl>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<p class="submit">
|
<p class="submit">
|
||||||
|
|
|
||||||
12
default.json
12
default.json
|
|
@ -26,19 +26,13 @@
|
||||||
{
|
{
|
||||||
"key" : "c9ba00d9-26ee-448b-9f02-73e479ec2980",
|
"key" : "c9ba00d9-26ee-448b-9f02-73e479ec2980",
|
||||||
"label" : "Prêt",
|
"label" : "Prêt",
|
||||||
"type" : "temporaire",
|
"type" : "temporaire"
|
||||||
"fee" : "gratuit"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "5c6c20bf-53e9-49dc-bcd6-e3cac23a6786",
|
|
||||||
"label" : "Location",
|
|
||||||
"type" : "temporaire",
|
|
||||||
"fee" : "payant"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key" : "fefefa51-1a85-46ca-ab78-b594b10390ff",
|
"key" : "fefefa51-1a85-46ca-ab78-b594b10390ff",
|
||||||
"label" : "Retour de Location/Emprunt",
|
"label" : "Retour de Location/Emprunt",
|
||||||
"type" : "retour"
|
"type" : "retour"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"loan_duration" : "30"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,25 @@
|
||||||
{{else}}
|
{{else}}
|
||||||
{{:assign current="inventaire"}}
|
{{:assign current="inventaire"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{:include file="./_nav.html" current=$current subcurrent="historique" eqpmt=$equipment.name category=$category.name}}
|
||||||
|
|
||||||
|
{{if $_GET.ok}}
|
||||||
|
{{if $_GET.msg == "modification"}}
|
||||||
|
<p class="block confirm">Modification enregistrée</p>
|
||||||
|
{{elseif $_GET.msg == "copie"}}
|
||||||
|
<p class="block confirm">Mouvement copié</p>
|
||||||
|
{{elseif $_GET.msg == "retour"}}
|
||||||
|
<p class="block confirm">Retour enregistré</p>
|
||||||
|
{{elseif $_GET.msg == "suppression"}}
|
||||||
|
<p class="block confirm">Mouvement supprimé</p>
|
||||||
|
{{else}}
|
||||||
|
<p class="block confirm">Mouvement enregistré</p>
|
||||||
|
{{/if}}
|
||||||
|
{{elseif $_GET.err}}
|
||||||
|
{{if $_GET.msg == "suppression"}}
|
||||||
|
<p class="block error">Ce mouvement ne peut être supprimé</p>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{* récupérer la config des entrées/sorties *}}
|
{{* récupérer la config des entrées/sorties *}}
|
||||||
{{:include file="./_get_config.html" keep="config"}}
|
{{:include file="./_get_config.html" keep="config"}}
|
||||||
|
|
@ -229,29 +248,6 @@
|
||||||
{{:assign var="prop_options." value="1" label="Matériels propriété de l'association" href="?key=%s&prop=1"|args:$_GET.key}}
|
{{:assign var="prop_options." value="1" label="Matériels propriété de l'association" href="?key=%s&prop=1"|args:$_GET.key}}
|
||||||
{{:assign var="prop_options." value="0" label="Matériels NON propriété de l'association" href="?key=%s&prop=0"|args:$_GET.key}}
|
{{:assign var="prop_options." value="0" label="Matériels NON propriété de l'association" href="?key=%s&prop=0"|args:$_GET.key}}
|
||||||
|
|
||||||
{{if $dispo_final > 0 && $selected_prop == null || $selected_prop}}
|
|
||||||
{{:assign sortie="sortie"}}
|
|
||||||
{{/if}}
|
|
||||||
{{:include file="./_nav.html" current=$current subcurrent="mouvements" eqpmt=$equipment.name category=$category.name sortie=$sortie key=$_GET.key}}
|
|
||||||
|
|
||||||
{{if $_GET.ok}}
|
|
||||||
{{if $_GET.msg == "modification"}}
|
|
||||||
<p class="block confirm">Modification enregistrée</p>
|
|
||||||
{{elseif $_GET.msg == "copie"}}
|
|
||||||
<p class="block confirm">Mouvement copié</p>
|
|
||||||
{{elseif $_GET.msg == "retour"}}
|
|
||||||
<p class="block confirm">Retour enregistré</p>
|
|
||||||
{{elseif $_GET.msg == "suppression"}}
|
|
||||||
<p class="block confirm">Mouvement supprimé</p>
|
|
||||||
{{else}}
|
|
||||||
<p class="block confirm">Mouvement enregistré</p>
|
|
||||||
{{/if}}
|
|
||||||
{{elseif $_GET.err}}
|
|
||||||
{{if $_GET.msg == "suppression"}}
|
|
||||||
<p class="block error">Ce mouvement ne peut être supprimé</p>
|
|
||||||
{{/if}}
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<fieldset class="shortFormRight">
|
<fieldset class="shortFormRight">
|
||||||
<legend>Filtrer par appartenance</legend>
|
<legend>Filtrer par appartenance</legend>
|
||||||
{{:dropdown
|
{{:dropdown
|
||||||
|
|
@ -261,6 +257,17 @@
|
||||||
}}
|
}}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
{{if $current != "archives"}}
|
||||||
|
<nav class="tabs">
|
||||||
|
<aside>
|
||||||
|
{{if $dispo_final > 0 && $selected_prop == null || $selected_prop}}
|
||||||
|
{{:linkbutton label="Sortie" shape="minus" href="movements/output_equipment.html?key=%s"|args:$_GET.key target="_dialog"}}
|
||||||
|
{{/if}}
|
||||||
|
{{:linkbutton label="Entrée" shape="plus" href="movements/input_equipment.html?key=%s"|args:$_GET.key target="_dialog"}}
|
||||||
|
</aside>
|
||||||
|
</nav>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{* lister les mouvements du matériel passé en paramètre *}}
|
{{* lister les mouvements du matériel passé en paramètre *}}
|
||||||
{{#list
|
{{#list
|
||||||
type="movement"
|
type="movement"
|
||||||
|
|
@ -268,7 +275,6 @@
|
||||||
where="%s"|args:$prop_condition
|
where="%s"|args:$prop_condition
|
||||||
equipment=$equipment_key
|
equipment=$equipment_key
|
||||||
order=1
|
order=1
|
||||||
desc=true
|
|
||||||
}}
|
}}
|
||||||
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$direction:$operation}}
|
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$direction:$operation}}
|
||||||
{{:assign var="op_label" from="config.%s_nature.%s.label"|args:$direction:$operation}}
|
{{:assign var="op_label" from="config.%s_nature.%s.label"|args:$direction:$operation}}
|
||||||
|
|
@ -316,19 +322,12 @@
|
||||||
<td class="num">{{if $transactions|count > 0}}{{"Oui"}}{{/if}}</td>
|
<td class="num">{{if $transactions|count > 0}}{{"Oui"}}{{/if}}</td>
|
||||||
<td class="actions">
|
<td class="actions">
|
||||||
{{if $current != "archives"}}
|
{{if $current != "archives"}}
|
||||||
{{if $direction == "output" && $type_mvt == "retour"}}
|
|
||||||
{{:assign prop = 0}}
|
|
||||||
{{elseif $direction == "input" && $type_mvt == "temporaire"}}
|
|
||||||
{{:assign prop = 0}}
|
|
||||||
{{else}}
|
|
||||||
{{:assign prop = 1}}
|
|
||||||
{{/if}}
|
|
||||||
{{if $direction == "output" && $type_mvt == "temporaire"}}
|
{{if $direction == "output" && $type_mvt == "temporaire"}}
|
||||||
{{:assign var="temp_ext" from="reste.%s"|args:$key}}
|
{{:assign var="temp_ext" from="reste.%s"|args:$key}}
|
||||||
{{if $temp_ext != null && $temp_ext > 0}}
|
{{if $temp_ext != null && $temp_ext > 0}}
|
||||||
{{:linkbutton
|
{{:linkbutton
|
||||||
label="Retour"
|
label="Retour"
|
||||||
href="movements/output_return.html?key=%s&prop=%s"|args:$key:$prop
|
href="movements/output_return.html?key=%s&prop=%s"|args:$key:$selected_prop
|
||||||
shape="reset"
|
shape="reset"
|
||||||
target="_dialog"}}
|
target="_dialog"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
@ -338,14 +337,14 @@
|
||||||
{{if $temp_in != null && $temp_in > 0}}
|
{{if $temp_in != null && $temp_in > 0}}
|
||||||
{{:linkbutton
|
{{:linkbutton
|
||||||
label="Retour"
|
label="Retour"
|
||||||
href="movements/input_return.html?key=%s&prop=%s"|args:$key:$prop
|
href="movements/input_return.html?key=%s&prop=%s"|args:$key:$selected_prop
|
||||||
shape="reset"
|
shape="reset"
|
||||||
target="_dialog"}}
|
target="_dialog"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{:linkbutton
|
{{:linkbutton
|
||||||
label="Détails"
|
label="Détails"
|
||||||
href="movements/movement_details.html?key=%s&prop=%s&from=eh"|args:$key:$prop
|
href="movements/movement_details.html?key=%s&prop=%s&from=eh"|args:$key:$selected_prop
|
||||||
shape="eye"
|
shape="eye"
|
||||||
}}
|
}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
@ -353,6 +352,10 @@
|
||||||
</tr>
|
</tr>
|
||||||
{{/list}}
|
{{/list}}
|
||||||
|
|
||||||
|
{{if $dispo_final == 0 && $stock > 0 && $current != "archives"}}
|
||||||
|
<span class="help">Il n'y a aucun matériel disponible, il n'est donc pas possible d'effectuer une sortie</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{:admin_footer}}
|
{{:admin_footer}}
|
||||||
|
|
||||||
<script type="text/javascript" src="scripts.js"></script>
|
<script type="text/javascript" src="scripts.js"></script>
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,6 @@
|
||||||
{{else}}
|
{{else}}
|
||||||
{{#restrict block=true section="accounting" level="write"}}{{/restrict}}
|
{{#restrict block=true section="accounting" level="write"}}{{/restrict}}
|
||||||
|
|
||||||
{{#load type="category" count=true limit=1 assign="result"}}{{/load}}
|
|
||||||
{{:include file="_nav.html" current="inventaire" cat="%d"|args:$result.count subcurrent="stock"}}
|
|
||||||
|
|
||||||
{{if $_GET.ok}}
|
{{if $_GET.ok}}
|
||||||
{{if $_GET.msg == "ajout" }}
|
{{if $_GET.msg == "ajout" }}
|
||||||
<p class="block confirm">Ajout effectué</p>
|
<p class="block confirm">Ajout effectué</p>
|
||||||
|
|
@ -31,6 +28,9 @@
|
||||||
<p class="block error">Modification refusée</p>
|
<p class="block error">Modification refusée</p>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{#load type="category" count=true limit=1 assign="result"}}{{/load}}
|
||||||
|
{{:include file="_nav.html" current="inventaire" cat="%d"|args:$result.count subcurrent="stock"}}
|
||||||
|
|
||||||
{{if $result.count == 0}}
|
{{if $result.count == 0}}
|
||||||
<p class="block alert">Il n'y a aucune catégorie : vous devez en ajouter.</p>
|
<p class="block alert">Il n'y a aucune catégorie : vous devez en ajouter.</p>
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|
|
||||||
|
|
@ -99,6 +99,10 @@
|
||||||
}}
|
}}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
<div class="shortFormLeft">
|
||||||
|
<p class="help">{{$label|ucfirst}} de matériel en cours</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
{{:assign premier=true}}
|
{{:assign premier=true}}
|
||||||
{{#select
|
{{#select
|
||||||
users.nom AS nom,
|
users.nom AS nom,
|
||||||
|
|
|
||||||
|
|
@ -104,6 +104,10 @@
|
||||||
}}
|
}}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
<div class="shortFormLeft">
|
||||||
|
<p class="help">Historique des {{$label}}s</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
{{* lister les mouvements *}}
|
{{* lister les mouvements *}}
|
||||||
{{:assign premier=true}}
|
{{:assign premier=true}}
|
||||||
{{#select * FROM
|
{{#select * FROM
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,10 @@
|
||||||
{{:assign out_keys=$out_keys|implode:","}}
|
{{:assign out_keys=$out_keys|implode:","}}
|
||||||
{{:assign out_keys="("|cat:$out_keys|cat:")"}}
|
{{:assign out_keys="("|cat:$out_keys|cat:")"}}
|
||||||
|
|
||||||
|
<div class="shortFormLeft">
|
||||||
|
<p class="help">{{$label|ucfirst}}s aux membres</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
{{:assign premier=true}}
|
{{:assign premier=true}}
|
||||||
{{#select
|
{{#select
|
||||||
nom, user, GROUP_CONCAT(mat_name, ", ") AS materiel, SUM(remain) AS quantite
|
nom, user, GROUP_CONCAT(mat_name, ", ") AS materiel, SUM(remain) AS quantite
|
||||||
|
|
@ -86,20 +90,12 @@
|
||||||
<td>{{$materiel}}</td>
|
<td>{{$materiel}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{else}}
|
{{else}}
|
||||||
{{if $label == "prêt"}}
|
<p class="block alert">Aucun mouvement.</p>
|
||||||
<p class="block alert">Aucun {{$label}} en cours.</p>
|
|
||||||
{{elseif $label == "location"}}
|
|
||||||
<p class="block alert">Aucune {{$label}} en cours.</p>
|
|
||||||
{{/if}}
|
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
{{else}}
|
{{else}}
|
||||||
{{if $label == "prêt"}}
|
<p class="block alert">Aucun mouvement.</p>
|
||||||
<p class="block alert">Aucun {{$label}} en cours.</p>
|
|
||||||
{{elseif $label == "location"}}
|
|
||||||
<p class="block alert">Aucune {{$label}} en cours.</p>
|
|
||||||
{{/if}}
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{:admin_footer}}
|
{{:admin_footer}}
|
||||||
|
|
|
||||||
|
|
@ -150,7 +150,7 @@
|
||||||
</dl>
|
</dl>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Autres informations</legend>
|
<legend>Informations facultatives</legend>
|
||||||
<dl>
|
<dl>
|
||||||
{{if $storage != null}}
|
{{if $storage != null}}
|
||||||
{{:input type="select" name="storage" label="Lieu de stockage" default_empty="— Aucun —" options=$storage required=false}}
|
{{:input type="select" name="storage" label="Lieu de stockage" default_empty="— Aucun —" options=$storage required=false}}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
{{/load}}
|
{{/load}}
|
||||||
|
|
||||||
{{* récupérer la config des entrées/sorties *}}
|
{{* 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}}
|
{{: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 » *}}
|
{{* interdire de dupliquer un retour => utiliser le bouton « Retour » *}}
|
||||||
|
|
@ -95,12 +95,8 @@
|
||||||
{{:assign var="mvt_new.amount" value=$_POST.amount}}
|
{{:assign var="mvt_new.amount" value=$_POST.amount}}
|
||||||
{{:assign var="mvt_new.date" value=$_POST.date|parse_date}}
|
{{:assign var="mvt_new.date" value=$_POST.date|parse_date}}
|
||||||
{{:assign var="mvt_new.comment" value=$_POST.comment}}
|
{{:assign var="mvt_new.comment" value=$_POST.comment}}
|
||||||
|
{{if $_POST.set_return_date != null}}
|
||||||
{{if $_POST.return_date != null}}
|
{{:assign return_date=$_POST.return_date}}
|
||||||
{{:assign return_date=$_POST.return_date|parse_date}}
|
|
||||||
{{if $return_date < $_POST.date|parse_date}}
|
|
||||||
{{:error message="La date de retour doit être postérieure à la date de sortie !"}}
|
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
{{else}}
|
||||||
{{:assign return_date=null}}
|
{{:assign return_date=null}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
@ -209,7 +205,7 @@
|
||||||
user=$user.id
|
user=$user.id
|
||||||
storage=$_POST.storage
|
storage=$_POST.storage
|
||||||
transactions=$transactions
|
transactions=$transactions
|
||||||
return_date=$return_date
|
return_date=$return_date|parse_date
|
||||||
}}
|
}}
|
||||||
|
|
||||||
{{if $_GET.from|substr:0:1 == "l"}}
|
{{if $_GET.from|substr:0:1 == "l"}}
|
||||||
|
|
@ -244,6 +240,7 @@
|
||||||
-------------------- Préparer la saisie --------------------
|
-------------------- Préparer la saisie --------------------
|
||||||
*}}
|
*}}
|
||||||
|
|
||||||
|
{{* récupérer les infos de la catégorie *}}
|
||||||
{{#load key=$equipment.category assign="category"}}{{/load}}
|
{{#load key=$equipment.category assign="category"}}{{/load}}
|
||||||
{{:assign var="op_label" from="config.%s_nature.%s.label"|args:$mvt_new.direction:$mvt_new.operation}}
|
{{:assign var="op_label" from="config.%s_nature.%s.label"|args:$mvt_new.direction:$mvt_new.operation}}
|
||||||
|
|
||||||
|
|
@ -271,18 +268,17 @@
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Informations obligatoires</legend>
|
<legend>Informations obligatoires</legend>
|
||||||
<dl>
|
<dl>
|
||||||
{{:input type="date" name="date" label="Date" required=true default=$mvt_new.date}}
|
|
||||||
{{:input type="number" name="amount" label="Quantité" min=1 required=true default=$mvt_new.amount}}
|
|
||||||
{{if $mvt_new.direction == "input"}}
|
{{if $mvt_new.direction == "input"}}
|
||||||
{{:input type="select" name="operation" label="Type" required=true options=$input_labels|sort default=$mvt_new.operation}}
|
{{:input type="select" name="operation" label="Type" required=true options=$input_labels|sort default=$mvt_new.operation}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{:input type="select" name="operation" label="Type" required=true options=$output_labels|sort default=$mvt_new.operation}}
|
{{:input type="select" name="operation" label="Type" required=true options=$output_labels|sort default=$mvt_new.operation}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{:input type="date" name="date" label="Date" required=true default=$mvt_new.date}}
|
||||||
|
{{:input type="number" name="amount" label="Quantité" min=1 required=true default=$mvt_new.amount}}
|
||||||
</dl>
|
</dl>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset class="entree">
|
<fieldset class="entree">
|
||||||
<legend>Autres informations</legend>
|
<legend>Informations facultatives</legend>
|
||||||
<dl>
|
<dl>
|
||||||
{{if $prop == 1 && $mvt_new.direction == "output"}}
|
{{if $prop == 1 && $mvt_new.direction == "output"}}
|
||||||
{{:input
|
{{:input
|
||||||
|
|
@ -296,25 +292,27 @@
|
||||||
}}
|
}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{if $mvt_new.direction == "input" && $storage != null}}
|
{{if $mvt_new.direction == "input" && $storage != null}}
|
||||||
{{:input type="select" name="storage" label="Lieu de stockage" default=$mvt_new.storage default_empty="— Aucun —" options=$storage required=false}}
|
{{:input type="select" name="storage" default=$mvt_new.storage label="Lieu de stockage" default_empty="— Aucun —" options=$storage required=false}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{if $type_mvt != "retour"}}
|
{{if $type_mvt != "retour"}}
|
||||||
{{:input type="list" name="transactions" label="Écritures liées" target="!acc/transactions/selector.php" multiple=true help="par exemple écriture avec facture"}}
|
{{:input type="list" name="transactions" label="Écritures liées" target="!acc/transactions/selector.php" multiple=true help="par exemple écriture avec facture"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{:input type="textarea" name="comment" label="Remarques" cols="40" rows="3" required=false default=$mvt_new.comment}}
|
{{:input type="textarea" name="comment" label="Remarques" cols="40", rows="3" required=false default=$mvt_new.comment}}
|
||||||
{{if $mvt_new.direction == "output"}}
|
{{if $mvt_new.direction == "output" && $type_mvt == "temporaire"}}
|
||||||
{{if $mvt_new.return_date != null}}
|
{{if $mvt_new.return_date != null}}
|
||||||
|
{{:assign checked="checked"}}
|
||||||
|
{{:assign visibility="visible"}}
|
||||||
{{:assign return_date=$mvt_new.return_date}}
|
{{:assign return_date=$mvt_new.return_date}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{if $module.config.loan_duration != null && $module.config.loan_duration > 0}}
|
{{:assign visibility="hidden"}}
|
||||||
{{:assign ts_sortie=$mvt_new.date|strtotime}}
|
{{:assign ts_sortie=$mvt_new.date|strtotime}}
|
||||||
{{:assign ts_retour="%d+%d*(60*60*24)"|math:$ts_sortie:$module.config.loan_duration}}
|
{{:assign ts_retour="%d+%d*(60*60*24)"|math:$ts_sortie:$loan_duration}}
|
||||||
{{:assign return_date=$ts_retour|date_short}}
|
{{:assign return_date=$ts_retour|date_short}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/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">
|
<div id="div_return_date" style="visibility:{{$visibility}}">
|
||||||
{{:input type="date" name="return_date" label="Date de retour" default=$return_date}}
|
{{:input type="date" name="return_date" label="Date de retour" default=$return_date}}
|
||||||
<input type="hidden" id="loan_duration" name="loan_duration" value="{{$module.config.loan_duration}}">
|
<input type="hidden" id="loan_duration" name="loan_duration" value="{{$loan_duration}}">
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</dl>
|
</dl>
|
||||||
|
|
@ -329,17 +327,9 @@
|
||||||
{{:admin_footer}}
|
{{:admin_footer}}
|
||||||
|
|
||||||
<script type="text/javascript" src="../scripts.js"></script>
|
<script type="text/javascript" src="../scripts.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
let output_nature = {{$config.output_nature|json_encode|raw}};
|
function changeVisibility(evt, idcheck = 'f_set_return_date_1', fields = ['div_return_date']) {
|
||||||
|
toggleVisibility(idcheck, fields);
|
||||||
function changeVisibility(evt,
|
|
||||||
id_date = 'f_date',
|
|
||||||
id_type = 'f_operation',
|
|
||||||
div = 'div_return_date',
|
|
||||||
id_return_date = 'f_return_date')
|
|
||||||
{
|
|
||||||
toggleVisibility(id_date, id_type, div, id_return_date);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeReturnDate(evt, id_date = 'f_date', id_return_date = 'f_return_date', id_loan_duration='loan_duration')
|
function changeReturnDate(evt, id_date = 'f_date', id_return_date = 'f_return_date', id_loan_duration='loan_duration')
|
||||||
|
|
@ -348,8 +338,7 @@ function changeReturnDate(evt, id_date = 'f_date', id_return_date = 'f_return_da
|
||||||
}
|
}
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
document.getElementById('f_operation').onchange = changeVisibility;
|
document.getElementById('f_set_return_date_1').onclick = changeVisibility;
|
||||||
document.getElementById('f_date').onchange = changeReturnDate;
|
document.getElementById('f_date').onchange = changeReturnDate;
|
||||||
document.getElementById('f_operation').onchange();
|
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -173,7 +173,7 @@
|
||||||
{{else}}
|
{{else}}
|
||||||
{{* supprimer le matériel *}}
|
{{* supprimer le matériel *}}
|
||||||
{{:delete key=$curr_eqpmt.key}}
|
{{:delete key=$curr_eqpmt.key}}
|
||||||
{{:redirect force="../index.html?ok=1&msg=supprmvtmat"|args}}
|
{{:redirect force="%s?ok=1&msg=supprmvtmat%s"|args:$from:$param}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/form}}
|
{{/form}}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,7 @@
|
||||||
</dl>
|
</dl>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset class="entree">
|
<fieldset class="entree">
|
||||||
<legend>Autres informations</legend>
|
<legend>Informations facultatives</legend>
|
||||||
<dl>
|
<dl>
|
||||||
{{if $storage != null}}
|
{{if $storage != null}}
|
||||||
{{:input type="select" name="storage" label="Lieu de stockage" default_empty="— Aucun —" options=$storage required=false}}
|
{{:input type="select" name="storage" label="Lieu de stockage" default_empty="— Aucun —" options=$storage required=false}}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,22 @@
|
||||||
{{/load}}
|
{{/load}}
|
||||||
|
|
||||||
{{* récupérer la config des entrées/sorties *}}
|
{{* 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"}}
|
||||||
|
{{if $type_mvt == "temporaire"}}
|
||||||
|
{{:assign prop=0}}
|
||||||
|
{{else}}
|
||||||
|
{{:assign prop=1}}
|
||||||
|
{{/if}}
|
||||||
|
{{else}}
|
||||||
|
{{if $type_mvt == "retour"}}
|
||||||
|
{{:assign prop=0}}
|
||||||
|
{{else}}
|
||||||
|
{{:assign prop=1}}
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{* infos pour affichage *}}
|
{{* infos pour affichage *}}
|
||||||
{{:assign var="op_label" from="config.%s_nature.%s.label"|args:$mvt_new.direction:$mvt_new.operation}}
|
{{:assign var="op_label" from="config.%s_nature.%s.label"|args:$mvt_new.direction:$mvt_new.operation}}
|
||||||
|
|
@ -30,15 +45,25 @@
|
||||||
{{:error message="Aucun matériel avec la clé « %s »"|args:$eqpmt_key}}
|
{{:error message="Aucun matériel avec la clé « %s »"|args:$eqpmt_key}}
|
||||||
{{/load}}
|
{{/load}}
|
||||||
|
|
||||||
|
{{#foreach from=$directions key="direction"}}
|
||||||
|
{{:assign var="nature" from="config.%s_nature"|args:$direction}}
|
||||||
|
{{#foreach from=$nature key="key"}}
|
||||||
|
{{if $type_mvt != "retour" && $type != "retour" ||
|
||||||
|
$type_mvt == "retour" && $type == "retour"}}
|
||||||
|
{{:assign var="%s_labels.%s"|args:$direction:$key value=$label}}
|
||||||
|
{{/if}}
|
||||||
|
{{/foreach}}
|
||||||
|
{{/foreach}}
|
||||||
|
|
||||||
{{*
|
{{*
|
||||||
-------------------- Traiter la saisie --------------------
|
-------------------- Traiter la saisie --------------------
|
||||||
*}}
|
*}}
|
||||||
{{#form on="save"}}
|
{{#form on="save"}}
|
||||||
{{* vérifier la validité de la saisie *}}
|
|
||||||
{{if $_POST.amount <= 0}}
|
{{if $_POST.amount <= 0}}
|
||||||
{{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.amount}}
|
{{:error message="La quantité (%s) doit être strictement positive !!"|args:$_POST.amount}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{* vérifier validité des données *}}
|
||||||
{{if $_POST.date|parse_date|strtotime > $now}}
|
{{if $_POST.date|parse_date|strtotime > $now}}
|
||||||
{{:error message="Impossible de saisir une date dans le futur (%s)"|args:$_POST.date}}
|
{{:error message="Impossible de saisir une date dans le futur (%s)"|args:$_POST.date}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
@ -61,13 +86,8 @@
|
||||||
{{:assign var="mvt_new.amount" value=$_POST.amount}}
|
{{:assign var="mvt_new.amount" value=$_POST.amount}}
|
||||||
{{:assign var="mvt_new.date" value=$_POST.date|parse_date}}
|
{{:assign var="mvt_new.date" value=$_POST.date|parse_date}}
|
||||||
{{:assign var="mvt_new.comment" value=$_POST.comment}}
|
{{:assign var="mvt_new.comment" value=$_POST.comment}}
|
||||||
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt_new.direction:$mvt_new.operation}}
|
{{if $_POST.set_return_date != null}}
|
||||||
|
{{:assign return_date=$_POST.return_date}}
|
||||||
{{if $_POST.return_date != null}}
|
|
||||||
{{:assign return_date=$_POST.return_date|parse_date}}
|
|
||||||
{{if $return_date < $_POST.date|parse_date}}
|
|
||||||
{{:error message="La date de retour doit être postérieure à la date de sortie !"}}
|
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
{{else}}
|
||||||
{{:assign return_date=null}}
|
{{:assign return_date=null}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
@ -79,7 +99,10 @@
|
||||||
*}}
|
*}}
|
||||||
{{:assign insere=false}}
|
{{:assign insere=false}}
|
||||||
{{#load
|
{{#load
|
||||||
where="$$.type = 'movement' AND $$.equipment = :eqpmt_key"
|
where="
|
||||||
|
$$.type = 'movement'
|
||||||
|
AND
|
||||||
|
$$.equipment = :eqpmt_key"
|
||||||
:eqpmt_key=$eqpmt_key
|
:eqpmt_key=$eqpmt_key
|
||||||
order="$$.date"
|
order="$$.date"
|
||||||
assign="movement"
|
assign="movement"
|
||||||
|
|
@ -199,7 +222,7 @@
|
||||||
user=$user_id
|
user=$user_id
|
||||||
storage=$_POST.storage
|
storage=$_POST.storage
|
||||||
transactions=$transactions
|
transactions=$transactions
|
||||||
return_date=$return_date
|
return_date=$return_date|parse_date
|
||||||
}}
|
}}
|
||||||
|
|
||||||
{{if $_GET.from|substr:0:1 == "l"}}
|
{{if $_GET.from|substr:0:1 == "l"}}
|
||||||
|
|
@ -213,20 +236,6 @@
|
||||||
{{:assign suffix="movements"}}
|
{{:assign suffix="movements"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{if $mvt_new.direction == "input"}}
|
|
||||||
{{if $type_mvt == "temporaire"}}
|
|
||||||
{{:assign prop=0}}
|
|
||||||
{{else}}
|
|
||||||
{{:assign prop=1}}
|
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
|
||||||
{{if $type_mvt == "retour"}}
|
|
||||||
{{:assign prop=0}}
|
|
||||||
{{else}}
|
|
||||||
{{:assign prop=1}}
|
|
||||||
{{/if}}
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{if $_GET.from == "eh"}}
|
{{if $_GET.from == "eh"}}
|
||||||
{{:redirect force="../equipment_history.html?ok=1&key=%s&prop=%s&msg=modification"|args:$eqpmt_key:$prop}}
|
{{:redirect force="../equipment_history.html?ok=1&key=%s&prop=%s&msg=modification"|args:$eqpmt_key:$prop}}
|
||||||
{{elseif $suffix == null}}
|
{{elseif $suffix == null}}
|
||||||
|
|
@ -242,26 +251,14 @@
|
||||||
{{:assign mvt_label="sortie"}}
|
{{:assign mvt_label="sortie"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{:admin_header title="Modifier une %s"|args:$mvt_label custom_css="./../style.css" current="module_equipment"}}
|
{{:admin_header title="Modifier une %s"|args:$mvt_label custom_css="./../style.css" current="module_equipment"}}
|
||||||
{{:form_errors}}
|
|
||||||
|
|
||||||
|
{{:form_errors}}
|
||||||
{{*
|
{{*
|
||||||
-------------------- Préparer la saisie --------------------
|
-------------------- Préparer la saisie --------------------
|
||||||
*}}
|
*}}
|
||||||
|
|
||||||
{{#load key=$equipment.category assign="category"}}{{/load}}
|
{{#load key=$equipment.category assign="category"}}{{/load}}
|
||||||
|
|
||||||
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt_new.direction:$mvt_new.operation}}
|
|
||||||
{{#foreach from=$directions key="direction"}}
|
|
||||||
{{:assign var="nature" from="config.%s_nature"|args:$direction}}
|
|
||||||
{{#foreach from=$nature key="key"}}
|
|
||||||
{{if $type_mvt != "retour" && $type != "retour" ||
|
|
||||||
$type_mvt == "retour" && $type == "retour"}}
|
|
||||||
{{:assign var="%s_labels.%s"|args:$direction:$key value=$label}}
|
|
||||||
{{/if}}
|
|
||||||
{{/foreach}}
|
|
||||||
{{/foreach}}
|
|
||||||
|
|
||||||
|
|
||||||
{{if $mvt_new.user != null}}
|
{{if $mvt_new.user != null}}
|
||||||
{{#select id, !name as nom FROM users WHERE id=:id; !name=$config.user_fields.name_sql :id=$mvt_new.user}}
|
{{#select id, !name as nom FROM users WHERE id=:id; !name=$config.user_fields.name_sql :id=$mvt_new.user}}
|
||||||
{{:assign var="user.%s"|args:$id value=$nom}}
|
{{:assign var="user.%s"|args:$id value=$nom}}
|
||||||
|
|
@ -305,9 +302,9 @@
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset class="entree">
|
<fieldset class="entree">
|
||||||
<legend>Autres informations</legend>
|
<legend>Informations facultatives</legend>
|
||||||
<dl>
|
<dl>
|
||||||
{{if $mvt_new.direction == "output" && $type_mvt != "retour"}}
|
{{if $prop == 1 && $mvt_new.direction == "output"}}
|
||||||
{{:input
|
{{:input
|
||||||
type="list"
|
type="list"
|
||||||
name="user"
|
name="user"
|
||||||
|
|
@ -318,26 +315,30 @@
|
||||||
max=1
|
max=1
|
||||||
}}
|
}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{if $mvt_new.direction == "input" && $storage != null}}
|
{{if $mvt_new.direction == "input"}}
|
||||||
|
{{if $storage != null}}
|
||||||
{{:input type="select" name="storage" label="Lieu de stockage" default=$mvt_new.storage default_empty="— Aucun —" options=$storage required=false}}
|
{{:input type="select" name="storage" label="Lieu de stockage" default=$mvt_new.storage default_empty="— Aucun —" options=$storage required=false}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
{{if $type_mvt != "retour"}}
|
{{if $type_mvt != "retour"}}
|
||||||
{{:input type="list" name="transactions" label="Écritures liées" default=$mvt_new.transactions target="!acc/transactions/selector.php" multiple=true help="par exemple écriture avec facture"}}
|
{{:input type="list" name="transactions" default=$mvt_new.transactions label="Écritures liées" target="!acc/transactions/selector.php" multiple=true help="par exemple écriture avec facture"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{:input type="textarea" name="comment" label="Remarques" cols="40", rows="3" required=false default=$mvt_new.comment}}
|
{{:input type="textarea" name="comment" label="Remarques" cols="40", rows="3" required=false default=$mvt_new.comment}}
|
||||||
{{if $mvt_new.direction == "output"}}
|
{{if $mvt_new.direction == "output" && $type_mvt == "temporaire"}}
|
||||||
{{if $mvt_new.return_date != null}}
|
{{if $mvt_new.return_date != null}}
|
||||||
|
{{:assign checked="checked"}}
|
||||||
|
{{:assign visibility="visible"}}
|
||||||
{{:assign return_date=$mvt_new.return_date}}
|
{{:assign return_date=$mvt_new.return_date}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{if $module.config.loan_duration != null && $module.config.loan_duration > 0}}
|
{{:assign visibility="hidden"}}
|
||||||
{{:assign ts_sortie=$mvt_new.date|strtotime}}
|
{{:assign ts_sortie=$mvt_new.date|strtotime}}
|
||||||
{{:assign ts_retour="%d+%d*(60*60*24)"|math:$ts_sortie:$module.config.loan_duration}}
|
{{:assign ts_retour="%d+%d*(60*60*24)"|math:$ts_sortie:$loan_duration}}
|
||||||
{{:assign return_date=$ts_retour|date_short}}
|
{{:assign return_date=$ts_retour|date_short}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/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">
|
<div id="div_return_date" style="visibility:{{$visibility}}">
|
||||||
{{:input type="date" name="return_date" label="Date de retour" default=$return_date}}
|
{{:input type="date" name="return_date" label="Date de retour" default=$return_date}}
|
||||||
<input type="hidden" id="loan_duration" name="loan_duration" value="{{$module.config.loan_duration}}">
|
<input type="hidden" id="loan_duration" name="loan_duration" value="{{$loan_duration}}">
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</dl>
|
</dl>
|
||||||
|
|
@ -352,17 +353,9 @@
|
||||||
{{:admin_footer}}
|
{{:admin_footer}}
|
||||||
|
|
||||||
<script type="text/javascript" src="../scripts.js"></script>
|
<script type="text/javascript" src="../scripts.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
let output_nature = {{$config.output_nature|json_encode|raw}};
|
function changeVisibility(evt, idcheck = 'f_set_return_date_1', fields = ['div_return_date']) {
|
||||||
|
toggleVisibility(idcheck, fields);
|
||||||
function changeVisibility(evt,
|
|
||||||
id_date = 'f_date',
|
|
||||||
id_type = 'f_operation',
|
|
||||||
div = 'div_return_date',
|
|
||||||
id_return_date = 'f_return_date')
|
|
||||||
{
|
|
||||||
toggleVisibility(id_date, id_type, div, id_return_date);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeReturnDate(evt, id_date = 'f_date', id_return_date = 'f_return_date', id_loan_duration='loan_duration')
|
function changeReturnDate(evt, id_date = 'f_date', id_return_date = 'f_return_date', id_loan_duration='loan_duration')
|
||||||
|
|
@ -371,8 +364,7 @@ function changeReturnDate(evt, id_date = 'f_date', id_return_date = 'f_return_da
|
||||||
}
|
}
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
document.getElementById('f_operation').onchange = changeVisibility;
|
document.getElementById('f_set_return_date_1').onclick = changeVisibility;
|
||||||
document.getElementById('f_date').onchange = changeReturnDate;
|
document.getElementById('f_date').onchange = changeReturnDate;
|
||||||
document.getElementById('f_operation').onchange();
|
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
*}}
|
*}}
|
||||||
|
|
||||||
{{* récupérer la config des entrées/sorties *}}
|
{{* 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 *}}
|
{{* types de sorties *}}
|
||||||
{{#foreach from=$config.output_nature key=key}}
|
{{#foreach from=$config.output_nature key=key}}
|
||||||
|
|
@ -33,27 +33,22 @@
|
||||||
|
|
||||||
{{* Traiter l'envoi du formulaire *}}
|
{{* Traiter l'envoi du formulaire *}}
|
||||||
{{#form on="save"}}
|
{{#form on="save"}}
|
||||||
{{* vérifier la validité de la saisie *}}
|
|
||||||
|
|
||||||
{{* interdire date dans le futur *}}
|
{{* interdire date dans le futur *}}
|
||||||
{{if $_POST.date|parse_date|strtotime > $now}}
|
{{if $_POST.date|parse_date|strtotime > $now}}
|
||||||
{{:error message="Impossible de saisir une date dans le futur (%s)"|args:$_POST.date}}
|
{{:error message="Impossible de saisir une date dans le futur (%s)"|args:$_POST.date}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{* vérifier les infos saisies *}}
|
||||||
{{if $_POST.operation == ""}}
|
{{if $_POST.operation == ""}}
|
||||||
{{:error message="Vous devez choisir un type de sortie"}}
|
{{:error message="Vous devez choisir un type de sortie"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{:assign var="type_mvt" from="config.output_nature.%s.type"|args:$_POST.operation}}
|
{{:assign var="type_mvt" from="config.output_nature.%s.type"|args:$_POST.operation}}
|
||||||
{{if $type_mvt != "temporaire" && $_POST.return_date != null}}
|
{{if $type_mvt != "temporaire" && $_POST.set_return_date != null}}
|
||||||
{{:error message="On ne peut associer une date de retour qu'à une sortie temporaire"}}
|
{{:error message="On ne peut associer une date de retour qu'à une sortie temporaire"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{if $_POST.set_return_date != null}}
|
||||||
{{if $_POST.return_date != null}}
|
{{:assign return_date=$_POST.return_date}}
|
||||||
{{:assign return_date=$_POST.return_date|parse_date}}
|
|
||||||
{{if $return_date < $_POST.date|parse_date}}
|
|
||||||
{{:error message="La date de retour doit être postérieure à la date de sortie !"}}
|
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
{{else}}
|
||||||
{{:assign return_date=null}}
|
{{:assign return_date=null}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
@ -174,7 +169,7 @@
|
||||||
date=$_POST.date|parse_date
|
date=$_POST.date|parse_date
|
||||||
comment=$_POST.remarques|trim
|
comment=$_POST.remarques|trim
|
||||||
user=$user.id
|
user=$user.id
|
||||||
return_date=$return_date
|
return_date=$return_date|parse_date
|
||||||
transactions=$transactions
|
transactions=$transactions
|
||||||
}}
|
}}
|
||||||
{{:redirect force="../equipment_history.html?ok=1&key=%s&prop=1&msg=sortie"|args:$_GET.key}}
|
{{:redirect force="../equipment_history.html?ok=1&key=%s&prop=1&msg=sortie"|args:$_GET.key}}
|
||||||
|
|
@ -185,16 +180,13 @@
|
||||||
{{* barre de navigation *}}
|
{{* barre de navigation *}}
|
||||||
{{:include file="../_nav.html" current="sorties"}}
|
{{:include file="../_nav.html" current="sorties"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{:form_errors}}
|
|
||||||
|
|
||||||
{{#load key=$equipment.category assign="category"}}{{/load}}
|
{{#load key=$equipment.category assign="category"}}{{/load}}
|
||||||
{{:assign dispo="%d-%d"|math:$equipment.stock:$equipment.out}}
|
{{:assign dispo="%d-%d"|math:$equipment.stock:$equipment.out}}
|
||||||
|
|
||||||
{{if $dispo > 0}}
|
{{if $dispo > 0}}
|
||||||
{{if $module.config.loan_duration != null && $module.config.loan_duration > 0}}
|
{{:assign ts_retour="%d+%d*(60*60*24)"|math:$now:$loan_duration}}
|
||||||
{{:assign ts_retour="%d+%d*(60*60*24)"|math:$now:$module.config.loan_duration}}
|
|
||||||
{{:assign date_retour=$ts_retour|date_short}}
|
{{:assign date_retour=$ts_retour|date_short}}
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{* formulaire de sortie de matériel *}}
|
{{* formulaire de sortie de matériel *}}
|
||||||
<form method="post" action="">
|
<form method="post" action="">
|
||||||
|
|
@ -234,9 +226,10 @@
|
||||||
}}
|
}}
|
||||||
{{:input type="list" name="transactions" label="Écritures liées" target="!acc/transactions/selector.php" multiple=true help="par exemple écriture avec facture"}}
|
{{:input type="list" name="transactions" label="Écritures liées" target="!acc/transactions/selector.php" multiple=true help="par exemple écriture avec facture"}}
|
||||||
{{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}}
|
{{:input type="textarea" name="remarques" label="Remarques" cols="40" rows="3" required=false}}
|
||||||
<div id="div_return_date">
|
{{: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="date" id="return_date" name="return_date" label="Date de retour" default=$date_retour}}
|
||||||
<input type="hidden" id="loan_duration" name="loan_duration" value="{{$module.config.loan_duration}}">
|
<input type="hidden" id="loan_duration" name="loan_duration" value="{{$loan_duration}}">
|
||||||
</div>
|
</div>
|
||||||
</dl>
|
</dl>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -248,20 +241,16 @@
|
||||||
<p class="block error">Il n'y a aucune unité de ce matériel disponible à la date du {{$now|date_short}}</p>
|
<p class="block error">Il n'y a aucune unité de ce matériel disponible à la date du {{$now|date_short}}</p>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{:form_errors}}
|
||||||
{{:admin_footer}}
|
{{:admin_footer}}
|
||||||
|
|
||||||
<script type="text/javascript" src="../scripts.js"></script>
|
<script type="text/javascript" src="../scripts.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
let output_nature = {{$config.output_nature|json_encode|raw}};
|
var paid_keys = {{$paid_keys|json_encode|raw}};
|
||||||
|
|
||||||
function changeVisibility(evt,
|
function changeVisibility(evt, idcheck = 'f_set_return_date_1', fields = ['div_return_date']) {
|
||||||
id_date = 'f_date',
|
toggleVisibility(idcheck, fields);
|
||||||
id_type = 'f_operation',
|
|
||||||
div = 'div_return_date',
|
|
||||||
id_return_date = 'f_return_date')
|
|
||||||
{
|
|
||||||
toggleVisibility(id_date, id_type, div, id_return_date);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeReturnDate(evt, id_date = 'f_date', id_return_date = 'f_return_date', id_loan_duration='loan_duration')
|
function changeReturnDate(evt, id_date = 'f_date', id_return_date = 'f_return_date', id_loan_duration='loan_duration')
|
||||||
|
|
@ -270,8 +259,8 @@ function changeReturnDate(evt, id_date = 'f_date', id_return_date = 'f_return_da
|
||||||
}
|
}
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
document.getElementById('f_operation').onchange = changeVisibility;
|
document.getElementById('f_set_return_date_1').checked = false;
|
||||||
|
document.getElementById('f_set_return_date_1').onclick = changeVisibility;
|
||||||
document.getElementById('f_date').onchange = changeReturnDate;
|
document.getElementById('f_date').onchange = changeReturnDate;
|
||||||
document.getElementById('f_operation').onchange();
|
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -220,7 +220,7 @@
|
||||||
</dl>
|
</dl>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset class="entree">
|
<fieldset class="entree">
|
||||||
<legend>Autres informations</legend>
|
<legend>Informations facultatives</legend>
|
||||||
<dl>
|
<dl>
|
||||||
{{if $storage != null}}
|
{{if $storage != null}}
|
||||||
{{:input type="select" name="storage" label="Lieu de stockage" default_empty="— Aucun —" options=$storage required=false}}
|
{{:input type="select" name="storage" label="Lieu de stockage" default_empty="— Aucun —" options=$storage required=false}}
|
||||||
|
|
|
||||||
34
scripts.js
34
scripts.js
|
|
@ -26,6 +26,18 @@ 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
|
* renvoyer la valeur en secondes d'une date au format j/m/a
|
||||||
* @param {string} date
|
* @param {string} date
|
||||||
|
|
@ -47,29 +59,7 @@ function getDate(idelem) {
|
||||||
function setReturnDate(id_date, id_return_date, id_loan_duration)
|
function setReturnDate(id_date, id_return_date, id_loan_duration)
|
||||||
{
|
{
|
||||||
const loan_duration = document.getElementById(id_loan_duration).value;
|
const loan_duration = document.getElementById(id_loan_duration).value;
|
||||||
if (loan_duration !== undefined && loan_duration > 0) {
|
|
||||||
let nbsec = getDate(id_date) + loan_duration*24*60*60;
|
let nbsec = getDate(id_date) + loan_duration*24*60*60;
|
||||||
const date_retour = new Date(nbsec * 1000);
|
const date_retour = new Date(nbsec * 1000);
|
||||||
document.getElementById(id_return_date).value = date_retour.toLocaleDateString();
|
document.getElementById(id_return_date).value = date_retour.toLocaleDateString();
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* changer la visibilité de la date de retour
|
|
||||||
*/
|
|
||||||
function toggleVisibility(id_date, id_type, div, id_return_date)
|
|
||||||
{
|
|
||||||
const key = document.getElementById(id_type).value;
|
|
||||||
let type_sortie;
|
|
||||||
if (key !== undefined && key != '') {
|
|
||||||
type_sortie = output_nature[key].type;
|
|
||||||
}
|
|
||||||
const div_date = document.getElementById(div);
|
|
||||||
if (type_sortie == 'temporaire') {
|
|
||||||
div_date.style.visibility = "visible";
|
|
||||||
document.getElementById(id_date).onchange();
|
|
||||||
} else {
|
|
||||||
div_date.style.visibility = "hidden";
|
|
||||||
document.getElementById(id_return_date).value = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -135,9 +135,9 @@
|
||||||
{{if $retard < 0}}
|
{{if $retard < 0}}
|
||||||
{{:assign delai="abs(%d)"|math:$retard}}
|
{{:assign delai="abs(%d)"|math:$retard}}
|
||||||
{{"Reste %s jours"|args:$delai}}
|
{{"Reste %s jours"|args:$delai}}
|
||||||
{{elseif $retard > 0 }}
|
{{elseif $retard >0 }}
|
||||||
{{:tag color="darkred" label="Retard %s jours"|args:$retard}}
|
{{:tag color="darkred" label="Retard %s jours"|args:$retard}}
|
||||||
{{elseif $return_date != null}}
|
{{else}}
|
||||||
{{:tag color="darkgreen" label="À rendre aujourdh'ui"}}
|
{{:tag color="darkgreen" label="À rendre aujourdh'ui"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</td>
|
</td>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue