Index: src/include/lib/Garradin/Recherche.php ================================================================== --- src/include/lib/Garradin/Recherche.php +++ src/include/lib/Garradin/Recherche.php @@ -311,10 +311,18 @@ 'label' => 'Remarques', 'type' => 'text', 'null' => true, 'alias' => 'notes', ]; + + $columns['l.id'] = (object) [ + 'textMatch'=> null, + 'label' => null, + 'type' => 'integer', + 'null' => true, + 'alias' => 'id_line', + ]; $columns['l.label'] = (object) [ 'textMatch'=> true, 'label' => 'Libellé ligne', 'type' => 'text', @@ -531,11 +539,11 @@ $query_columns = array_merge([$config->get('champ_identite')], $query_columns); } // Ajout de champs compta si pas présents elseif ($target == 'compta') { - $query_columns = array_merge(['t.id', 't.date', 't.label', 'l.debit', 'l.credit', 'a.code'], $query_columns); + $query_columns = array_merge(['t.id', 't.date', 't.label', 'l.id', 'l.debit', 'l.credit', 'a.code'], $query_columns); } $query_columns[] = $order; if ($target_columns[$order]->textMatch) Index: src/templates/acc/search.tpl ================================================================== --- src/templates/acc/search.tpl +++ src/templates/acc/search.tpl @@ -8,18 +8,26 @@ {include file="common/search/advanced.tpl" action_url=$self_url} {if !empty($result)} - {*if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE)} -
- {/if*} + {if $is_admin} + + {/if}

{$result|count} écritures trouvées pour cette recherche.

+ {if $is_admin}{/if} + {foreach from=$result_header key="key" item="label"} + {if $key !== 'id_line'} + + {/if} + {/foreach} + + {*if $session->canAccess($session::SECTION_USERS, $session::ACCESS_ADMIN)}{/if*} {foreach from=$result_header item="label"} {/foreach} @@ -26,13 +34,17 @@ {foreach from=$result item="row"} + {if $is_admin}{/if} + {foreach from=$row key="key" item="value"} + {if $key == 'id_line'} + {continue} + {/if} + {if $key == 'transaction_id'} {*if $session->canAccess($session::SECTION_USERS, $session::ACCESS_ADMIN)}{/if*} - {foreach from=$row key="key" item="value"} - {if $key == 'transaction_id'} {else} {/foreach} + + {if $is_admin} + + + + + + + {/if} + + +{if $is_admin} +
+{/if} {*if $session->canAccess($session::SECTION_USERS, $session::ACCESS_ADMIN)} {include file="admin/membres/_list_actions.tpl" colspan=count($result_header)+1} {/if*} Index: src/templates/acc/transactions/actions_analytical.tpl ================================================================== --- src/templates/acc/transactions/actions_analytical.tpl +++ src/templates/acc/transactions/actions_analytical.tpl @@ -6,11 +6,11 @@
Affecter {$count} écritures sélectionnées à un projet
{input type="select" name="id_analytical" options=$analytical_accounts label="Projet à utiliser" help="Pour retirer les écritures de leur projet actuellement affecté, sélectionner « Aucun projet »."} - {input type="checkbox" name="apply_lines" value="1" default="1" checked=1 label="Appliquer à toutes les lignes des écritures"} + {input type="checkbox" name="apply_lines" value="1" default="0" label="Appliquer à toutes les lignes des écritures"}
Si décoché, alors seules les lignes sélectionnées seront modifiées. Si coché, toutes les lignes des écritures sélectionnées seront modifiées. Laisser coché en cas de doute.

Index: src/templates/common/search/advanced.tpl ================================================================== --- src/templates/common/search/advanced.tpl +++ src/templates/common/search/advanced.tpl @@ -2,10 +2,11 @@ assert(isset($columns)); assert(isset($action_url)); assert(isset($query)); assert(isset($is_admin)); $sql_disabled = !$is_admin || (!$session->canAccess($session::SECTION_CONFIG, $session::ACCESS_ADMIN) && $is_unprotected); +unset($columns['l.id']); ?> {form_errors}

Index: src/www/admin/acc/transactions/actions.php ================================================================== --- src/www/admin/acc/transactions/actions.php +++ src/www/admin/acc/transactions/actions.php @@ -56,17 +56,39 @@ { $tpl->display('acc/transactions/actions_delete.tpl'); } else { - // Get year to get analytical accounts - $year = Years::get((int) f('year')); + $source = f('source'); + if ($source == 'search') + { + $db = DB::getInstance(); + // Get differents years used in selection + $years_selected = $db->getAssoc('SELECT DISTINCT id, id_year FROM acc_transactions WHERE id IN ('.implode(', ', $transactions).');'); + + // Get charts used (need to be only one) + $r = $db->getAssoc('SELECT id, id_chart FROM acc_years WHERE id IN ('.implode(', ', $years_selected).');'); + + if (count(array_unique($r)) > 1) + { + throw new UserException('Sélectionnez des écritures du même plan comptable'); + } - if (!$year) { + $year_id = reset($years_selected); + } + else + { + // Get year to get analytical accounts + $year_id = (int) f('year'); + } + + if (!$year_id) { throw new UserException("Aucun exercice sélectionné."); } - + + $year = Years::get($year_id); + $analytical = $year->chart()->accounts()->listAnalytical(); $tpl->assign('analytical_accounts', ['' => '-- Aucun projet'] + $analytical); $tpl->display('acc/transactions/actions_analytical.tpl'); }