diff --git a/snippets/user_details.html b/snippets/user_details.html
index ae4b346..3268dec 100644
--- a/snippets/user_details.html
+++ b/snippets/user_details.html
@@ -35,116 +35,85 @@
{{if $output_types|has_key:"temporaire" && $input_types|has_key:"retour"}}
{{*
- Calculer les quantités de matériel en prêt, retourné et restant
+ Calculer les quantités de matériel en prêt
*}}
{{:assign premier=true}}
{{#select
- mvt.key AS mvt_key,
- json_extract(mvt.document, '$.date') AS out_date,
+ json_extract(mvt.document, '$.direction') AS direction,
+ json_extract(mvt.document, '$.date') AS date,
+ eqpmt.key as eqpmt_key,
json_extract(eqpmt.document, '$.name') AS eqpmt_name,
json_extract(mvt.document, '$.amount') AS qte,
- IFNULL(SUM(json_extract(retour.document, '$.amount')), 0) AS return_amount,
json_extract(mvt.document, '$.operation') AS operation
- FROM module_data_equipment AS mvt
+ FROM {!$module.table} AS mvt
INNER JOIN users ON json_extract(mvt.document, '$.user') = users.id
- LEFT JOIN module_data_equipment AS links ON mvt.key = json_extract(links.document, '$.temp_key')
- LEFT JOIN module_data_equipment AS retour ON retour.key = json_extract(links.document, '$.return')
- INNER JOIN module_data_equipment AS eqpmt ON json_extract(mvt.document, '$.equipment') = eqpmt.key
+ INNER JOIN {!$module.table} AS eqpmt ON json_extract(mvt.document, '$.equipment') = eqpmt.key
WHERE
users.id = :user
AND
json_extract(mvt.document, '$.type') = 'movement'
AND
- json_extract(mvt.document, '$.operation') IN !output_types
- GROUP BY mvt.key
- ORDER BY eqpmt_name, json_extract(mvt.document, '$.date')
+ (json_extract(mvt.document, '$.operation') IN !output_types
+ OR
+ json_extract(mvt.document, '$.operation') IN !input_types)
+ ORDER BY eqpmt_name, date
;
:user = $user.id
!output_types=$output_types.temporaire
+ !input_types=$input_types.retour
}}
- {{:assign reste="%d-%d"|math:$qte:$return_amount}}
- {{if $reste > 0}}
- {{:assign class=""}}
- {{else}}
- {{:assign class="r0"}}
- {{/if}}
- {{:assign var="op_label" from="config.output_nature.%s.label"|args:$operation}}
- {{:assign total=$qte}}
{{if $premier}}
{{:assign premier=false}}
-
Matériels attribués temporairement
-
-
-
-
- | Date |
- Matériel |
- Opération |
- Quantité |
- Total |
- |
-
-
-
+ {{:assign total=0}}
+ {{:assign old_eqpmt_key=$eqpmt_key}}
+ {{:assign var="ligne.date" value=$date}}
+ {{:assign var="ligne.materiel" value=$eqpmt_name}}
{{/if}}
- {{* Sortie temporaire *}}
-
- | {{$out_date|date_short}} |
- {{$eqpmt_name}} |
- {{$op_label}} |
- {{$qte}} |
- {{$total}} |
-
- {{if $reste > 0}}
- {{if $reste > 1}}
- {{:assign msg_reste="Reste %s unités"|args:$reste}}
- {{else}}
- {{:assign msg_reste="Reste %s unité"|args:$reste}}
- {{/if}}
- {{:linkbutton
- label="Retour"
- href="%smovements/output_return.html?key=%s&prop=0&user=%s"|args:$module.url:$mvt_key:$user.id
- shape="history"
- title=$msg_reste
- target="_dialog"}}
- {{/if}}
- |
-
+ {{if $eqpmt_key != $old_eqpmt_key}}
+ {{if $total > 0}}
+ {{:assign var="ligne.qte" value=$total}}
+ {{:assign var="lignes." value=$ligne}}
+ {{/if}}
+ {{:assign total=0}}
+ {{:assign old_eqpmt_key=$eqpmt_key}}
+ {{:assign var="ligne.date" value=$date}}
+ {{:assign var="ligne.materiel" value=$eqpmt_name}}
+ {{/if}}
- {{* chercher les retours *}}
- {{#select
- json_extract(links.document, '$.return') AS return_key,
- json_extract(return_mvt.document, '$.amount') AS return_amount,
- json_extract(return_mvt.document, '$.date') AS return_date,
- json_extract(return_mvt.document, '$.operation') AS operation
- FROM module_data_equipment AS links
- INNER JOIN module_data_equipment AS return_mvt ON return_mvt.key = return_key
- WHERE json_extract(links.document, '$.temp_key') = :mvt_key
- ORDER BY return_date
- ;
- :mvt_key=$mvt_key
- }}
- {{:assign var="op_label" from="config.input_nature.%s.label"|args:$operation}}
- {{:assign total="%d-%d"|math:$total:$return_amount}}
-
- {{* retour de sortie temporaire *}}
-
- | {{$return_date|date_short}} |
- {{$eqpmt_name}} |
- {{$op_label}} |
- {{$return_amount}} |
- {{$total}} |
- |
-
- {{/select}}
+ {{if $direction == "output"}}
+ {{:assign total="%d+%d"|math:$total:$qte}}
+ {{else}}
+ {{:assign total="%d-%d"|math:$total:$qte}}
+ {{/if}}
{{/select}}
-
-
+
+ {{if $total > 0}}
+ {{:assign var="ligne.qte" value=$total}}
+ {{:assign var="lignes." value=$ligne}}
+ {{/if}}
+
+ {{if $lignes|count > 0}}
+ Matériels attribués temporairement
+
+
+
+ | Date |
+ Matériel |
+ Quantité |
+
+
+
+ {{#foreach from=$lignes}}
+
+ | {{$date|date_short}} |
+ {{$materiel}} |
+ {{$qte}} |
+
+ {{/foreach}}
+
+
+ {{/if}}
{{/if}}
{{* Matériels attribués définitivement *}}
@@ -155,15 +124,16 @@
json_extract(eqpmt.document, '$.name') as eqpmt_name,
json_extract(mvt.document, '$.direction') as direction,
json_extract(mvt.document, '$.operation') as operation,
- json_extract(mvt.document, '$.date') as date,
- json_extract(mvt.document, '$.amount') as amount
- FROM module_data_equipment AS mvt
+ MIN(json_extract(mvt.document, '$.date')) as date,
+ SUM(json_extract(mvt.document, '$.amount')) as amount
+ FROM {!$module.table} AS mvt
INNER JOIN users ON json_extract(mvt.document, '$.user') = users.id
- INNER JOIN module_data_equipment AS eqpmt
+ INNER JOIN {!$module.table} AS eqpmt
ON json_extract(mvt.document, '$.equipment') = eqpmt.key
WHERE users.id = :user
AND json_extract(mvt.document, '$.operation') IN !output_types
- ORDER BY date DESC
+ GROUP BY eqpmt_key, operation
+ ORDER BY eqpmt_name, date
;
:user = $user.id
!output_types=$output_types.définitif
@@ -208,23 +178,3 @@
{{/if}}
{{/if}}
-
-