Filtrer les libellés des écritures
This commit is contained in:
parent
262b25889b
commit
7fdff8be3b
8 changed files with 161 additions and 10 deletions
|
|
@ -37,8 +37,16 @@
|
|||
{{/foreach}}
|
||||
{{:assign condition=$condition|cat:"0)"}}
|
||||
{{:assign condition=$condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"}}
|
||||
{{:assign nb_immo=0}}
|
||||
|
||||
{{:assign filter_condition=" NOT ("}}
|
||||
{{#foreach from=$module.config.filters item="filter"}}
|
||||
{{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}}
|
||||
{{:assign filter_condition=$filter_condition|cat:" trans_label LIKE "|cat:$filter|cat:" OR "}}
|
||||
{{/foreach}}
|
||||
{{:assign filter_condition=$filter_condition|cat:"0)"}}
|
||||
{{:assign condition=$condition|cat:" AND "|cat:$filter_condition}}
|
||||
|
||||
{{:assign nb_immo=0}}
|
||||
{{#select
|
||||
trans.id as trans_id,
|
||||
trans.label as trans_label,
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
<tbody>
|
||||
|
||||
{{* lister les immobilisations *}}
|
||||
{{:include file="_get_config.html" keep="module.config.prefixes"}}
|
||||
{{:include file="_get_config.html" keep="module.config"}}
|
||||
|
||||
{{:assign condition="("}}
|
||||
{{#foreach from=$module.config.prefixes item="code"}}
|
||||
|
|
@ -38,8 +38,16 @@
|
|||
{{/foreach}}
|
||||
{{:assign condition=$condition|cat:"0)"}}
|
||||
{{:assign condition=$condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"}}
|
||||
{{:assign nb_immo=0}}
|
||||
|
||||
{{:assign filter_condition=" NOT ("}}
|
||||
{{#foreach from=$module.config.filters item="filter"}}
|
||||
{{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}}
|
||||
{{:assign filter_condition=$filter_condition|cat:" trans_label LIKE "|cat:$filter|cat:" OR "}}
|
||||
{{/foreach}}
|
||||
{{:assign filter_condition=$filter_condition|cat:"0)"}}
|
||||
{{:assign condition=$condition|cat:" AND "|cat:$filter_condition}}
|
||||
|
||||
{{:assign nb_immo=0}}
|
||||
{{#select
|
||||
trans.id as trans_id,
|
||||
trans.label as trans_label,
|
||||
|
|
|
|||
|
|
@ -33,4 +33,12 @@
|
|||
<li class="title"><strong>Sortie de bilan</strong></li>
|
||||
</ul>
|
||||
{{/if}}
|
||||
|
||||
{{if $current == "config"}}
|
||||
<ul class="sub">
|
||||
<li {{if $subcurrent == null}} class="current"{{/if}}><a href="config.html">Comptes d'immobilisation</a></li>
|
||||
<li {{if $subcurrent == "create_accounts"}} class="current"{{/if}}><a href="create_accounts.html">Comptes de sortie du bilan</a></li>
|
||||
<li {{if $subcurrent == "filters"}} class="current"{{/if}}><a href="filters.html">Filtres de libellés</a></li>
|
||||
</ul>
|
||||
{{/if}}
|
||||
</nav>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
<tbody>
|
||||
|
||||
{{* lister les immobilisations en cours de constitution *}}
|
||||
{{:include file="_get_config.html" keep="module.config.unfinished"}}
|
||||
{{:include file="_get_config.html" keep="module.config"}}
|
||||
|
||||
{{:assign accounts_condition="("}}
|
||||
{{#foreach from=$module.config.unfinished item="elem"}}
|
||||
|
|
@ -61,8 +61,17 @@
|
|||
{{/foreach}}
|
||||
{{:assign accounts_condition=$accounts_condition|cat:"0)"}}
|
||||
{{:assign condition=$accounts_condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"}}
|
||||
{{:assign nb_immo=0}}
|
||||
|
||||
{{:assign filter_condition=" NOT ("}}
|
||||
{{#foreach from=$module.config.filters item="filter"}}
|
||||
{{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}}
|
||||
{{:assign filter_condition=$filter_condition|cat:" trans_label LIKE "|cat:$filter|cat:" OR "}}
|
||||
{{/foreach}}
|
||||
{{:assign filter_condition=$filter_condition|cat:"0)"}}
|
||||
{{:assign condition=$condition|cat:" AND "|cat:$filter_condition}}
|
||||
{{*:debug condition=$condition*}}
|
||||
|
||||
{{:assign nb_immo=0}}
|
||||
{{#select
|
||||
trans.id as trans_id,
|
||||
trans.label as trans_label,
|
||||
|
|
|
|||
|
|
@ -1,8 +1,5 @@
|
|||
{{* -*- brindille -*- *}}
|
||||
|
||||
{{:admin_header title="Configuration" custom_css="./style.css" current="module_amortissement"}}
|
||||
{{:include file="_nav.html" current="config"}}
|
||||
|
||||
{{if $_GET.ok == 1}}
|
||||
<p class="block confirm">Configuration enregistrée.</p>
|
||||
{{/if}}
|
||||
|
|
@ -52,6 +49,9 @@
|
|||
{{:form_errors}}
|
||||
{{/form}}
|
||||
|
||||
{{:admin_header title="Configuration" custom_css="./style.css" current="module_amortissement"}}
|
||||
{{:include file="_nav.html" current="config"}}
|
||||
|
||||
{{* récupérer l'exercice courant ou sinon le plus récent *}}
|
||||
{{:assign var="selected_year" from="logged_user.preferences.accounting_year"}}
|
||||
{{if $selected_year == null}}
|
||||
|
|
|
|||
94
filters.html
Normal file
94
filters.html
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
{{* -*- brindille -*- *}}
|
||||
|
||||
{{:admin_header title="Configuration" custom_css="./style.css" current="module_amortissement"}}
|
||||
{{:include file="_nav.html" current="config" subcurrent="filters"}}
|
||||
|
||||
{{if $_GET.ok == 1}}
|
||||
<p class="block confirm">Configuration enregistrée.</p>
|
||||
{{/if}}
|
||||
|
||||
{{* lecture config *}}
|
||||
{{:include file="./_get_config.html" keep="module.config"}}
|
||||
|
||||
{{#form on="save"}}
|
||||
{{* enregistrer les filtres dans la config *}}
|
||||
{{#foreach from=$_POST.filters item="filter"}}
|
||||
{{if $filter != ""}}
|
||||
{{:assign var="filters." value=$filter}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{:save key="config" filters=$filters}}
|
||||
{{:redirect to="./filters.html"}}
|
||||
{{/form}}
|
||||
|
||||
<form method="post" action="">
|
||||
<h3>Liste de libellés à ignorer</h3>
|
||||
<p class="help">
|
||||
Les écritures dont le libellé contient un des textes ci-dessous seront ignorées
|
||||
</p>
|
||||
|
||||
<table class="list" id="filter_list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Libellé</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{if $module.config.filters == null}}
|
||||
<tr>
|
||||
<td>
|
||||
{{:input type="text" name="filters[]" required=false}}
|
||||
</td>
|
||||
<td class="actions">
|
||||
{{:button
|
||||
label="Enlever"
|
||||
title="Enlever une ligne"
|
||||
shape="minus"
|
||||
name="remove_line"
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
{{else}}
|
||||
{{#foreach from=$module.config.filters item="filter"}}
|
||||
<tr>
|
||||
<td>
|
||||
{{:input type="text" name="filters[]" default=$filter required=false}}
|
||||
</td>
|
||||
<td class="actions">
|
||||
{{:button
|
||||
label="Enlever"
|
||||
title="Enlever une ligne"
|
||||
shape="minus"
|
||||
name="remove_line"
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td class="actions">{{:button shape="plus" label="Ajouter" title="Ajouter un libellé"}}</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
<p class="submit">
|
||||
{{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}}
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<script type="text/javascript" src="scripts.js"></script>
|
||||
<script type="text/javascript" async="async">
|
||||
|
||||
// bouton - : supprimer une ligne
|
||||
let lines = $('#filter_list tbody tr');
|
||||
lines.forEach(initLine);
|
||||
|
||||
// bouton + : dupliquer une ligne de la 1ère table
|
||||
for (const b of $('#filter_list tfoot button')) {
|
||||
copyLine(b);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
@ -23,6 +23,14 @@
|
|||
{{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}}
|
||||
{{/select}}
|
||||
|
||||
{{:include file="_get_config.html" keep="module.config"}}
|
||||
{{:assign filter_condition=" NOT ("}}
|
||||
{{#foreach from=$module.config.filters item="filter"}}
|
||||
{{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}}
|
||||
{{:assign filter_condition=$filter_condition|cat:" trans.label LIKE "|cat:$filter|cat:" OR "}}
|
||||
{{/foreach}}
|
||||
{{:assign filter_condition=$filter_condition|cat:"0)"}}
|
||||
|
||||
{{#select
|
||||
line.id as l_id,
|
||||
line.id_transaction as t_id,
|
||||
|
|
@ -38,8 +46,9 @@
|
|||
INNER JOIN acc_accounts AS account ON account.id = line.id_account
|
||||
INNER JOIN acc_transactions AS trans ON trans.id = line.id_transaction
|
||||
INNER JOIN acc_years AS y ON y.id = trans.id_year
|
||||
WHERE account.code LIKE "28%" AND credit > 0 AND (NOT trans.status & 16)
|
||||
WHERE account.code LIKE "28%" AND credit > 0 AND (NOT trans.status & 16) AND !filter_condition
|
||||
ORDER BY trans.date, trans.label;
|
||||
!filter_condition=$filter_condition
|
||||
assign=autre_amort
|
||||
}}
|
||||
{{#select
|
||||
|
|
|
|||
17
scripts.js
17
scripts.js
|
|
@ -149,7 +149,7 @@ function initLine(row) {
|
|||
var min = removeBtn.getAttribute('min');
|
||||
|
||||
if (count <= min) {
|
||||
alert("Il n'est pas possible d'avoir moins de " + min + " compte(s).");
|
||||
alert("Il n'est pas possible d'avoir moins de " + min + " ligne(s).");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -235,3 +235,18 @@ function computeTotal(id_total, id_url) {
|
|||
let new_href = url.href.replace(/trans=.*/, 'trans=' + Object.values(transactions));
|
||||
url.href = new_href;
|
||||
}
|
||||
|
||||
// dupliquer la dernière ligne d'une table
|
||||
function copyLine(button) {
|
||||
button.onclick = () => {
|
||||
let lines = button.closest("table").querySelectorAll('tbody tr');
|
||||
let line = lines[lines.length - 1];
|
||||
let newNode = line.cloneNode(true);
|
||||
let libelle = newNode.querySelector('input');
|
||||
libelle.value = '';
|
||||
|
||||
// ajouter la nouvelle ligne
|
||||
line.parentNode.appendChild(newNode);
|
||||
initLine(newNode);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue