Compare commits
5 Commits
6a603d1713
...
c681b47e7f
Author | SHA1 | Date | |
---|---|---|---|
c681b47e7f | |||
f8e5d43888 | |||
0110cf277a | |||
bcb8cd581d | |||
300f9b8248 |
@ -21,17 +21,17 @@
|
|||||||
},
|
},
|
||||||
"stock": {
|
"stock": {
|
||||||
"description": "Quantité en stock",
|
"description": "Quantité en stock",
|
||||||
"type" : "integer",
|
"type" : ["integer", "null"],
|
||||||
"minimum": 0
|
"minimum": 0
|
||||||
},
|
},
|
||||||
"out": {
|
"out": {
|
||||||
"description": "Quantité sortie temporairement",
|
"description": "Quantité sortie temporairement",
|
||||||
"type" : "integer",
|
"type" : ["integer", "null"],
|
||||||
"minimum": 0
|
"minimum": 0
|
||||||
},
|
},
|
||||||
"notowned": {
|
"notowned": {
|
||||||
"description": "Quantité présente temporairement",
|
"description": "Quantité présente temporairement",
|
||||||
"type" : "integer",
|
"type" : ["integer", "null"],
|
||||||
"minimum": 0
|
"minimum": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -119,18 +119,21 @@
|
|||||||
{{:assign var="quantites.%s.nonproprio"|args:$id value=$nonproprio}}
|
{{:assign var="quantites.%s.nonproprio"|args:$id value=$nonproprio}}
|
||||||
{{/load}}
|
{{/load}}
|
||||||
|
|
||||||
<nav class="tabs">
|
{{if $current != "archives"}}
|
||||||
<aside>
|
<nav class="tabs">
|
||||||
{{if $_GET.prop}}
|
<aside>
|
||||||
{{if $equipment.stock > 0}}
|
{{if $_GET.prop}}
|
||||||
{{:linkbutton label="Sortie" shape="minus" href="mouvements/sorties/stock_disponible.html?key=%s"|args:$_GET.key target="_dialog"}}
|
{{if $equipment.stock > 0}}
|
||||||
{{/if}}
|
{{:linkbutton label="Sortie" shape="minus" href="mouvements/sorties/stock_disponible.html?key=%s"|args:$_GET.key target="_dialog"}}
|
||||||
|
{{/if}}
|
||||||
|
{{:linkbutton label="Entrée" shape="plus" href="mouvements/entrees/repertorie.html?key=%s"|args:$_GET.key target="_dialog"}}
|
||||||
|
{{else}}
|
||||||
{{:linkbutton label="Entrée" shape="plus" href="mouvements/entrees/repertorie.html?key=%s"|args:$_GET.key target="_dialog"}}
|
{{:linkbutton label="Entrée" shape="plus" href="mouvements/entrees/repertorie.html?key=%s"|args:$_GET.key target="_dialog"}}
|
||||||
{{else}}
|
{{/if}}
|
||||||
{{:linkbutton label="Entrée" shape="plus" href="mouvements/entrees/repertorie.html?key=%s"|args:$_GET.key target="_dialog"}}
|
</aside>
|
||||||
{{/if}}
|
</nav>
|
||||||
</aside>
|
{{/if}}
|
||||||
</nav>
|
|
||||||
{{* lister tous les mouvements du matériel passé en paramètre *}}
|
{{* lister tous les mouvements du matériel passé en paramètre *}}
|
||||||
{{if $_GET.prop}}
|
{{if $_GET.prop}}
|
||||||
{{* calculer la quantité temporairement l'extérieur de chaque matériel *}}
|
{{* calculer la quantité temporairement l'extérieur de chaque matériel *}}
|
||||||
@ -260,8 +263,7 @@
|
|||||||
}}
|
}}
|
||||||
{{:assign var="present.%s"|args:$mvt_key value=$present}}
|
{{:assign var="present.%s"|args:$mvt_key value=$present}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
{{*:debug present=$present*}}
|
|
||||||
{{*:debug direction=$direction type_mvt=$type_mvt in=$in*}}
|
|
||||||
{{#list
|
{{#list
|
||||||
type="movement"
|
type="movement"
|
||||||
select="$$.date AS 'Date';
|
select="$$.date AS 'Date';
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
(SELECT $$.stock - $$.out) AS 'Disponible'
|
(SELECT $$.stock - $$.out) AS 'Disponible'
|
||||||
"
|
"
|
||||||
type="equipment"
|
type="equipment"
|
||||||
where="$$.status <> 'archived' AND $$.stock != 0 AND %s"|args:$condition
|
where="$$.status <> 'archived' AND $$.stock NOT NULL AND %s"|args:$condition
|
||||||
order=1
|
order=1
|
||||||
}}
|
}}
|
||||||
{{:assign var=cat_name from=categories.%s|args:$category}}
|
{{:assign var=cat_name from=categories.%s|args:$category}}
|
||||||
|
@ -71,10 +71,10 @@
|
|||||||
{{:assign equipment_key=""|uuid}}
|
{{:assign equipment_key=""|uuid}}
|
||||||
{{if $type_mvt == 'définitif'}}
|
{{if $type_mvt == 'définitif'}}
|
||||||
{{:assign stock=$_POST.amount|intval}}
|
{{:assign stock=$_POST.amount|intval}}
|
||||||
{{:assign notowned=0}}
|
{{:assign notowned=null}}
|
||||||
{{elseif $type_mvt == 'temporaire'}}
|
{{elseif $type_mvt == 'temporaire'}}
|
||||||
{{:assign notowned=$_POST.amount|intval}}
|
{{:assign notowned=$_POST.amount|intval}}
|
||||||
{{:assign stock=0}}
|
{{:assign stock=null}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{:save
|
{{:save
|
||||||
key=$equipment_key
|
key=$equipment_key
|
||||||
|
@ -70,7 +70,7 @@
|
|||||||
{{: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}}
|
||||||
|
|
||||||
{{* interdire date dans le futur *}}
|
{{* vérifier la validité de la saisie *}}
|
||||||
{{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}}
|
||||||
@ -139,7 +139,6 @@
|
|||||||
de {{$equipment.name}} (qté : {{$mvt_new.amount}}) à la date du {{$mvt_new.date|date_short}} »
|
de {{$equipment.name}} (qté : {{$mvt_new.amount}}) à la date du {{$mvt_new.date|date_short}} »
|
||||||
</p>
|
</p>
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|
||||||
{{* calculer la nouvelle quantité du matériel *}}
|
{{* calculer la nouvelle quantité du matériel *}}
|
||||||
{{if $mvt_new.direction == "input"}}
|
{{if $mvt_new.direction == "input"}}
|
||||||
{{:assign var="type_mvt" from="config.input_nature.%s.type"|args:$_POST.operation}}
|
{{:assign var="type_mvt" from="config.input_nature.%s.type"|args:$_POST.operation}}
|
||||||
@ -172,7 +171,6 @@
|
|||||||
out=$equipment.out
|
out=$equipment.out
|
||||||
notowned=$equipment.notowned
|
notowned=$equipment.notowned
|
||||||
}}
|
}}
|
||||||
|
|
||||||
{{* vérification réussie : enregistrer le mouvement modifié *}}
|
{{* vérification réussie : enregistrer le mouvement modifié *}}
|
||||||
{{:assign mvt_key=""|uuid}}
|
{{:assign mvt_key=""|uuid}}
|
||||||
{{:save
|
{{:save
|
||||||
@ -216,8 +214,8 @@
|
|||||||
<form method="post" action="">
|
<form method="post" action="">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Créer une copie de « {{$op_label}} {{$equipment.name}} (Catégorie : {{$category.name}}) »</legend>
|
<legend>Créer une copie de « {{$op_label}} {{$equipment.name}} (Catégorie : {{$category.name}}) »</legend>
|
||||||
{{if $mvt_new.direction == "input"}}
|
<dl>
|
||||||
<dl>
|
{{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}}
|
||||||
@ -228,12 +226,11 @@
|
|||||||
{{:input
|
{{:input
|
||||||
type="list"
|
type="list"
|
||||||
name="user"
|
name="user"
|
||||||
label="Membre"
|
label="Membre destinataire"
|
||||||
default=$user
|
default=$user
|
||||||
target="!users/selector.php"
|
target="!users/selector.php"
|
||||||
multiple=true
|
multiple=true
|
||||||
max=1
|
max=1
|
||||||
help="dans le cas d'une sortie temporaire, il est possible d'associer un membre bénéficiaire"
|
|
||||||
}}
|
}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{if $mvt_new.direction == "input"}}
|
{{if $mvt_new.direction == "input"}}
|
||||||
|
@ -87,6 +87,7 @@
|
|||||||
- insérer le mvt modifié à sa place par date croissante
|
- insérer le mvt modifié à sa place par date croissante
|
||||||
*}}
|
*}}
|
||||||
{{:assign insere=false}}
|
{{:assign insere=false}}
|
||||||
|
{{:assign entree_def=false}}
|
||||||
{{#load
|
{{#load
|
||||||
where="
|
where="
|
||||||
$$.type = 'movement'
|
$$.type = 'movement'
|
||||||
@ -172,6 +173,24 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{if $equipment.stock == 0}}
|
||||||
|
{{* vérifier s'il y a au moins une entrée définitive *}}
|
||||||
|
{{#foreach from=$config.input_nature key=key}}
|
||||||
|
{{if $type == 'définitif'}}
|
||||||
|
{{:assign var="input_types." value=$key}}
|
||||||
|
{{/if}}
|
||||||
|
{{/foreach}}
|
||||||
|
{{#foreach from=$movements_new}}
|
||||||
|
{{if $operation|in:$input_types}}
|
||||||
|
{{:assign entree_def=true}}
|
||||||
|
{{:break}}
|
||||||
|
{{/if}}
|
||||||
|
{{/foreach}}
|
||||||
|
{{if ! $entree_def}}
|
||||||
|
{{:assign var="equipment.stock" value=null}}
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{:save
|
{{:save
|
||||||
key=$equipment.key
|
key=$equipment.key
|
||||||
validate_schema="../equipment.schema.json"
|
validate_schema="../equipment.schema.json"
|
||||||
@ -238,12 +257,11 @@
|
|||||||
{{:input
|
{{:input
|
||||||
type="list"
|
type="list"
|
||||||
name="user"
|
name="user"
|
||||||
label="Membre"
|
label="Membre destinataire"
|
||||||
default=$user
|
default=$user
|
||||||
target="!users/selector.php"
|
target="!users/selector.php"
|
||||||
multiple=true
|
multiple=true
|
||||||
max=1
|
max=1
|
||||||
help="dans le cas d'une sortie temporaire, il est possible d'associer un membre bénéficiaire"
|
|
||||||
}}
|
}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{if $mvt_new.direction == "input"}}
|
{{if $mvt_new.direction == "input"}}
|
||||||
|
@ -160,7 +160,11 @@
|
|||||||
temp_key=$_GET.key
|
temp_key=$_GET.key
|
||||||
return=$mvt_key
|
return=$mvt_key
|
||||||
}}
|
}}
|
||||||
{{:redirect force="../historique.html?ok=1&key=%s&prop=1&msg=retour"|args:$mvt_new.equipment}}
|
{{if $_GET.user == null}}
|
||||||
|
{{:redirect force="../historique.html?ok=1&key=%s&prop=1&msg=retour"|args:$mvt_new.equipment}}
|
||||||
|
{{else}}
|
||||||
|
{{:redirect force="/admin/users/details.php?id=%s"|args:$_GET.user}}
|
||||||
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/form}}
|
{{/form}}
|
||||||
|
|
||||||
|
@ -187,11 +187,10 @@
|
|||||||
{{:input
|
{{:input
|
||||||
type="list"
|
type="list"
|
||||||
name="user"
|
name="user"
|
||||||
label="Membre"
|
label="Membre destinataire"
|
||||||
target="!users/selector.php"
|
target="!users/selector.php"
|
||||||
multiple=true
|
multiple=true
|
||||||
max=1
|
max=1
|
||||||
help="dans le cas d'une sortie temporaire, il est possible d'associer un membre bénéficiaire"
|
|
||||||
}}
|
}}
|
||||||
{{: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}}
|
||||||
</dl>
|
</dl>
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
{{/load}}
|
{{/load}}
|
||||||
|
|
||||||
{{* trouver le matériel concerné par ce mouvement *}}
|
{{* trouver le matériel concerné par ce mouvement *}}
|
||||||
{{#load type="equipment" where="key = :key" :key=$mvt_suppr.equipment assign="equipment"}}
|
{{#load type="equipment" where="key = :key" :key=$mvt_suppr.equipment assign="curr_eqpmt"}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{:error message="Aucun matériel avec la clé « %s »"|args:$mvt_suppr.equipment}}
|
{{:error message="Aucun matériel avec la clé « %s »"|args:$mvt_suppr.equipment}}
|
||||||
{{/load}}
|
{{/load}}
|
||||||
@ -66,6 +66,7 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/load}}
|
{{/load}}
|
||||||
|
|
||||||
{{* suppression possible *}}
|
{{* suppression possible *}}
|
||||||
{{if $type_operation == 'retour'}}
|
{{if $type_operation == 'retour'}}
|
||||||
{{#load type="link" where="$$.return = :key" :key=$_GET.key}}
|
{{#load type="link" where="$$.return = :key" :key=$_GET.key}}
|
||||||
@ -98,45 +99,59 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{* voir s'il reste des mouvements pour le matériel concerné par le mouvement supprimé *}}
|
{{* voir s'il reste des mouvements pour le matériel concerné par le mouvement supprimé *}}
|
||||||
{{#load type="movement" where="$$.equipment = :eqpmt_key" :eqpmt_key=$equipment.key}}
|
{{#foreach from=$config.input_nature key=key}}
|
||||||
{{:assign mvt_ok=1}}
|
{{if $type == 'définitif'}}
|
||||||
|
{{:assign var="input_types." value=$key}}
|
||||||
|
{{/if}}
|
||||||
|
{{/foreach}}
|
||||||
|
{{#load type="movement" where="$$.equipment = :eqpmt_key" :eqpmt_key=$curr_eqpmt.key}}
|
||||||
|
{{:assign mvt_ok=true}}
|
||||||
|
{{if $operation|in:$input_types}}
|
||||||
|
{{:assign entree_def=true}}
|
||||||
|
{{:break}}
|
||||||
|
{{/if}}
|
||||||
{{/load}}
|
{{/load}}
|
||||||
|
|
||||||
{{if $mvt_ok}}
|
{{if $mvt_ok}}
|
||||||
{{* calculer la nouvelle quantité du matériel *}}
|
{{* calculer et mettre à jour la nouvelle quantité du matériel *}}
|
||||||
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt_suppr.direction:$mvt_suppr.operation}}
|
{{:assign var="type_mvt" from="config.%s_nature.%s.type"|args:$mvt_suppr.direction:$mvt_suppr.operation}}
|
||||||
{{if $mvt_suppr.direction == 'input'}}
|
{{if $mvt_suppr.direction == 'input'}}
|
||||||
{{if $type_mvt == 'définitif'}}
|
{{if $type_mvt == 'définitif'}}
|
||||||
{{:assign var="equipment.stock" value="%d-%d"|math:$equipment.stock:$mvt_suppr.amount|intval}}
|
{{:assign var="curr_eqpmt.stock" value="%d-%d"|math:$curr_eqpmt.stock:$mvt_suppr.amount|intval}}
|
||||||
{{elseif $type_mvt == 'temporaire'}}
|
{{elseif $type_mvt == 'temporaire'}}
|
||||||
{{:assign var="equipment.notowned" value="%d-%d"|math:$equipment.notowned:$mvt_suppr.amount|intval}}
|
{{:assign var="curr_eqpmt.notowned" value="%d-%d"|math:$curr_eqpmt.notowned:$mvt_suppr.amount|intval}}
|
||||||
{{elseif $type_mvt == 'retour'}}
|
{{elseif $type_mvt == 'retour'}}
|
||||||
{{:assign var="equipment.out" value="%d+%d"|math:$equipment.out:$mvt_suppr.amount|intval}}
|
{{:assign var="curr_eqpmt.out" value="%d+%d"|math:$curr_eqpmt.out:$mvt_suppr.amount|intval}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{if $type_mvt == 'définitif'}}
|
{{if $type_mvt == 'définitif'}}
|
||||||
{{:assign var="equipment.stock" value="%d+%d"|math:$equipment.stock:$mvt_suppr.amount|intval}}
|
{{:assign var="curr_eqpmt.stock" value="%d+%d"|math:$curr_eqpmt.stock:$mvt_suppr.amount|intval}}
|
||||||
{{elseif $type_mvt == 'temporaire'}}
|
{{elseif $type_mvt == 'temporaire'}}
|
||||||
{{:assign var="equipment.out" value="%d-%d"|math:$equipment.out:$mvt_suppr.amount|intval}}
|
{{:assign var="curr_eqpmt.out" value="%d-%d"|math:$curr_eqpmt.out:$mvt_suppr.amount|intval}}
|
||||||
{{elseif $type_mvt == 'retour'}}
|
{{elseif $type_mvt == 'retour'}}
|
||||||
{{:assign var="equipment.notowned" value="%d+%d"|math:$equipment.notowned:$mvt_suppr.amount|intval}}
|
{{:assign var="curr_eqpmt.notowned" value="%d+%d"|math:$curr_eqpmt.notowned:$mvt_suppr.amount|intval}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{if $curr_eqpmt.stock == 0 && ! $entree_def}}
|
||||||
|
{{:assign var="curr_eqpmt.stock" value=null}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{:save
|
{{:save
|
||||||
key=$equipment.key
|
key=$curr_eqpmt.key
|
||||||
validate_schema="../equipment.schema.json"
|
validate_schema="../equipment.schema.json"
|
||||||
type="equipment"
|
type="equipment"
|
||||||
category=$equipment.category
|
category=$curr_eqpmt.category
|
||||||
name=$equipment.name
|
name=$curr_eqpmt.name
|
||||||
status="available"
|
status="available"
|
||||||
stock=$equipment.stock
|
stock=$curr_eqpmt.stock
|
||||||
out=$equipment.out
|
out=$curr_eqpmt.out
|
||||||
notowned=$equipment.notowned
|
notowned=$curr_eqpmt.notowned
|
||||||
}}
|
}}
|
||||||
{{:redirect force="../historique.html?ok=1&key=%s&prop=%s&msg=suppression"|args:$mvt_suppr.equipment:$_GET.prop}}
|
{{:redirect force="../historique.html?ok=1&key=%s&prop=%s&msg=suppression"|args:$mvt_suppr.equipment:$_GET.prop}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{* supprimer le matériel *}}
|
{{* supprimer le matériel *}}
|
||||||
{{:delete key=$equipment.key}}
|
{{:delete key=$curr_eqpmt.key}}
|
||||||
{{:redirect force="../index.html?ok=1&msg=supprmvtmat"}}
|
{{:redirect force="../index.html?ok=1&msg=supprmvtmat"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/form}}
|
{{/form}}
|
||||||
@ -149,7 +164,7 @@
|
|||||||
|
|
||||||
{{:delete_form
|
{{:delete_form
|
||||||
legend="Supprimer ?"
|
legend="Supprimer ?"
|
||||||
warning="Supprimer le mouvement « %s de %s (quantité : %d) en date du %s » ?"|args:$mvt_label:$equipment.name:$mvt_suppr.amount:$date_suppr
|
warning="Supprimer le mouvement « %s de %s (quantité : %d) en date du %s » ?"|args:$mvt_label:$curr_eqpmt.name:$mvt_suppr.amount:$date_suppr
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,7 +30,9 @@
|
|||||||
INNER JOIN users ON json_extract(mvt.document, '$.user') = users.id
|
INNER JOIN users ON json_extract(mvt.document, '$.user') = users.id
|
||||||
INNER JOIN module_data_equipment AS eqpmt
|
INNER JOIN module_data_equipment AS eqpmt
|
||||||
ON json_extract(mvt.document, '$.equipment') = eqpmt.key
|
ON json_extract(mvt.document, '$.equipment') = eqpmt.key
|
||||||
WHERE users.id = :user AND json_extract(mvt.document, '$.operation') IN !output_types OR json_extract(mvt.document, '$.operation') IN !input_types
|
WHERE users.id = :user
|
||||||
|
AND (json_extract(mvt.document, '$.operation') IN !output_types
|
||||||
|
OR json_extract(mvt.document, '$.operation') IN !input_types)
|
||||||
ORDER BY date
|
ORDER BY date
|
||||||
;
|
;
|
||||||
:user = $user.id
|
:user = $user.id
|
||||||
@ -65,7 +67,7 @@
|
|||||||
{{if $direction == "output" && $type_mvt == "temporaire"}}
|
{{if $direction == "output" && $type_mvt == "temporaire"}}
|
||||||
{{:linkbutton
|
{{:linkbutton
|
||||||
label="Retour"
|
label="Retour"
|
||||||
href="%smouvements/output_return.html?key=%s&prop=0"|args:$module.url:$mvt_key
|
href="%smouvements/output_return.html?key=%s&prop=0&user=%s"|args:$module.url:$mvt_key:$user.id
|
||||||
shape="history"
|
shape="history"
|
||||||
target="_dialog"}}
|
target="_dialog"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@ -86,7 +88,8 @@
|
|||||||
INNER JOIN users ON json_extract(mvt.document, '$.user') = users.id
|
INNER JOIN users ON json_extract(mvt.document, '$.user') = users.id
|
||||||
INNER JOIN module_data_equipment AS eqpmt
|
INNER JOIN module_data_equipment AS eqpmt
|
||||||
ON json_extract(mvt.document, '$.equipment') = eqpmt.key
|
ON json_extract(mvt.document, '$.equipment') = eqpmt.key
|
||||||
WHERE users.id = :user AND json_extract(mvt.document, '$.operation') IN !output_types
|
WHERE users.id = :user
|
||||||
|
AND json_extract(mvt.document, '$.operation') IN !output_types
|
||||||
ORDER BY date DESC
|
ORDER BY date DESC
|
||||||
;
|
;
|
||||||
:user = $user.id
|
:user = $user.id
|
||||||
|
Loading…
Reference in New Issue
Block a user