Interdire la modification et la suppression des types de mouvement prédéfinis

This commit is contained in:
Jean-Christophe Engel 2026-02-09 14:49:28 +01:00
parent 546a9ea677
commit 03d278ab2c
4 changed files with 53 additions and 22 deletions

View file

@ -60,9 +60,7 @@
<ul class="sub">
<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 == 'typesES'}} class="current"{{/if}}><a href="{{$module.url}}config.html">Types d'entrées/sorties</a></li>
*}}
<li {{if $subcurrent == 'divers'}} class="current"{{/if}}><a href="{{$module.url}}config/misc.html">Divers</a></li>
</ul>
{{/if}}

View file

@ -12,14 +12,21 @@
{{/if}}
{{* lecture config (défaut ou enregistrée) *}}
{{:include file="./_get_config.html" keep="config, directions"}}
{{:include file="./_get_config.html" keep="config_defaut, config, directions"}}
{{* interdire la modification et la suppression des types de mouvement prédéfinis *}}
{{#foreach from=$directions key="direction"}}
{{:assign var="nature" from="config_defaut.%ss"|args:$direction}}
{{#foreach from=$nature item="elem"}}
{{:assign var="default_keys." value=$key}}
{{/foreach}}
{{/foreach}}
{{#foreach from=$directions key="direction" item="item"}}
{{* types de mouvements qui ne peuvent être supprimés *}}
{{#load type="movement" where="$$.direction='%s'"|args:$direction group="$$.operation"}}
{{:assign var="op_label" from="config.%s_nature.%s.label"|args:$direction:$operation}}
{{:assign var="locked_%ss."|args:$direction value=$op_label}}
{{:assign var="locked." value=$operation}}
{{/load}}
<h2 class="ruler">{{$item|ucfirst}}s</h2>
@ -38,11 +45,12 @@
<td>{{$label}}</td>
<td>{{$type}}</td>
<td class="actions">
{{:assign var="locked" from="locked_%ss"|args:$direction}}
{{if ! $locked|has:$label}}
{{if ! $default_keys|has:$key && ! $locked|has:$key}}
{{:linkbutton label="Supprimer" shape="delete" href="config/delete_movement_type.html?dir=%s&op_key=%s"|args:$direction:$key target="_dialog"}}
{{/if}}
{{if ! $default_keys|has:$key}}
{{:linkbutton label="Modifier" shape="edit" href="config/modify_movement_type.html?dir=%s&op_key=%s"|args:$direction:$key target="_dialog"}}
{{/if}}
</td>
</tr>
{{/foreach}}

View file

@ -10,16 +10,28 @@
{{* lecture config (défaut ou enregistrée) *}}
{{:include file="../_get_config.html" keep="config, directions"}}
{{:include file="../_get_config.html" keep="config_defaut, config, directions"}}
{{if ! $directions|has_key:$_GET.dir}}
{{:error message="Direction « %s » inconnue !"|args:$_GET.dir}}
{{/if}}
{{* interdire la suppression des types de mouvement prédéfinis *}}
{{:assign var="nature" from="config_defaut.%ss"|args:$_GET.dir}}
{{#foreach from=$nature item="elem"}}
{{:assign var="default_keys." value=$key}}
{{/foreach}}
{{if $default_keys|has:$_GET.op_key}}
{{:error message="Ce type de mouvement ne peut être supprimé"}}
{{/if}}
{{#form on="delete"}}
{{#foreach from=$directions key="direction"}}
{{:assign var="nature" from="config.%s_nature"|args:$direction}}
{{#foreach from=$nature key="key"}}
{{#foreach from=$nature key="key" item="elem"}}
{{if $_GET.dir == $direction && $key != $_GET.op_key || $_GET.dir != $direction}}
{{:assign var="%s_nature"|args:$direction value=$elem}}
{{:assign var="%s_nature.key"|args:$direction value=$key}}
{{:assign var="%s_nature.label"|args:$direction value=$label}}
{{:assign var="%s_nature.type"|args:$direction value=$type}}
{{:assign var="%s_natures."|args:$direction from="%s_nature"|args:$direction}}
{{/if}}
{{/foreach}}

View file

@ -11,21 +11,34 @@
{{* lecture config (défaut ou enregistrée) *}}
{{:include file="../_get_config.html" keep="config, directions"}}
{{if ! $directions|has_key:$_GET.dir}}
{{:error message="Direction « %s » inconnue !"|args:$_GET.dir}}
{{/if}}
{{* interdire la modification des types de mouvement prédéfinis *}}
{{:assign var="nature" from="config_defaut.%ss"|args:$_GET.dir}}
{{#foreach from=$nature item="elem"}}
{{:assign var="default_keys." value=$key}}
{{/foreach}}
{{if $default_keys|has:$_GET.op_key}}
{{:error message="Ce type de mouvement ne peut être modifié"}}
{{/if}}
{{#form on="save"}}
{{#foreach from=$directions key="direction"}}
{{:assign var="nature" from="config.%s_nature"|args:$direction}}
{{#foreach from=$nature key="key"}}
{{:assign var="%s_nature.key"|args:$direction value=$key}}
{{if $_GET.dir == $direction}}
{{if $key == $_GET.op_key}}
{{:assign var="%s_nature.label"|args:$direction value=$_POST.name|trim}}
{{else}}
{{:assign var="%s_nature.label"|args:$direction value=$label}}
{{/if}}
{{else}}
{{:assign var="%s_nature.label"|args:$direction value=$label}}
{{#foreach from=$nature key="key" item="elem"}}
{{if $_GET.dir == $direction && $_POST.name|trim|tolower == $elem.label|trim|tolower}}
{{:error message="Le libellé « %s » est déjà présent"|args:$_POST.name}}
{{/if}}
{{:assign var="%s_nature.type"|args:$direction value=$type}}
{{if $_GET.dir == $direction && $key == $_GET.op_key}}
{{:assign label=$_POST.name|trim}}
{{else}}
{{:assign label=$elem.label}}
{{/if}}
{{:assign var="%s_nature"|args:$direction value=$elem}}
{{:assign var="%s_nature.label"|args:$direction value=$label}}
{{:assign var="%s_nature.key"|args:$direction value=$key}}
{{:assign var="%s_natures."|args:$direction from="%s_nature"|args:$direction}}
{{/foreach}}
{{/foreach}}