restructuration et complément classification immobilisations

This commit is contained in:
Jean-Christophe Engel 2025-01-10 13:53:47 +01:00
parent 3ef33e15e3
commit 5fcf510b25
5 changed files with 132 additions and 277 deletions

View file

@ -3,9 +3,9 @@
{{:admin_header title="Liste des amortissements" custom_css="./style.css" current="module_amortissement"}}
{{* barre de navigation *}}
{{if $_GET.fini == null || $_GET.fini == 0}}
{{if $_GET.amort == null || $_GET.amort == "amort"}}
{{:assign subcurrent="amort"}}
{{elseif $_GET.fini == 1}}
{{elseif $_GET.amort == "fini"}}
{{:assign subcurrent="fini"}}
{{else}}
{{:assign subcurrent="no_amort"}}
@ -31,13 +31,6 @@
{{/if}}
{{* récupérer les infos de l'immobilisation *}}
{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}
{{else}}
{{:error message="Pas d'info concernant l'immobilisation %s"|args:$_GET.immo_id}}
{{/load}}
{{:assign var="duree" from="info_immo.duration"|args:$_GET.immo_id}}
{{:assign date_debut=$info_immo.date}}
{{#select
line.id as immo_id,
line.id_account as account_id,
@ -56,11 +49,15 @@
:line_id = $_GET.immo_id|intval
assign=ligne_immo
}}
<h2>Amortissement de « {{$label}} » d'un montant de {{"%f"|math:$montant|money_currency}} en date du {{$date_debut|date_short}} sur {{$duree}} ans</h2>
{{else}}
{{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}}
{{/select}}
{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}
{{:assign var="duree" from="info_immo.duration"|args:$_GET.immo_id}}
{{:assign date_debut=$info_immo.date}}
{{/load}}
{{* chercher des écritures d'amortissement liées à l'immobilisation *}}
{{#select
l_amort.credit as amort_amount,
@ -97,25 +94,32 @@
assign=linked_lines.
}}
{{:assign var="amort_years." value=$amort_year}}
{{if $date_debut == null}}
{{:assign date_debut=$amort_date}}
{{/if}}
{{/select}}
{{* montant de l'annuité théorique *}}
{{:assign montant="%f"|math:$ligne_immo.montant}}
{{:assign annuite="%f/%f"|math:$montant:$duree}}
{{* première annuité *}}
{{:assign date_amort=$ligne_immo.date_amort}}
{{if $date_amort|strtotime < $date_debut|strtotime}}
{{* changer d'exercice *}}
{{:include file="_next_year.html" date=$date_amort keep="date_amort"}}
{{:assign date_amort=$date_amort|parse_date}}
{{/if}}
{{:include file="_calcul_dates.html" date_debut=$date_debut date_fin=$date_amort keep="nbjours"}}
{{:assign annuite_1="%f/360*%d"|math:$annuite:$nbjours|intval}}
{{:assign annuite_courante=$annuite_1}}
{{:assign current_year=$ligne_immo.year_id}}
{{:assign solde=$ligne_immo.montant}}
{{:assign nbamort=0}}
<h2>Amortissement de « {{$ligne_immo.label}} » d'un montant de {{"%f"|math:$ligne_immo.montant|money_currency}} en date du {{$date_debut|date_short}}{{if $duree != null}} sur {{$duree}} ans{{/if}}</h2>
{{if $duree != null}}
{{* montant de l'annuité théorique *}}
{{:assign montant="%f"|math:$ligne_immo.montant}}
{{:assign annuite="%f/%f"|math:$montant:$duree}}
{{* première annuité *}}
{{:assign date_amort=$ligne_immo.date_amort}}
{{if $date_amort|strtotime < $date_debut|strtotime}}
{{* changer d'exercice *}}
{{:include file="_next_year.html" date=$date_amort keep="date_amort"}}
{{:assign date_amort=$date_amort|parse_date}}
{{/if}}
{{:include file="_calcul_dates.html" date_debut=$date_debut date_fin=$date_amort keep="nbjours"}}
{{:assign annuite_1="%f/360*%d"|math:$annuite:$nbjours|intval}}
{{:assign annuite_courante=$annuite_1}}
{{:assign current_year=$ligne_immo.year_id}}
{{:assign nbamort=0}}
{{/if}}
{{:assign solde=$ligne_immo.montant}}
{{if $linked_lines != null}}
<section class="amortissement">
<h3 class="ruler">
@ -172,7 +176,7 @@
</section>
{{/if}}
{{if $solde > 0}}
{{if $duree != null && $solde > 0}}
{{:assign project_id=$ligne_immo.project_id}}
{{:assign project_label=$ligne_immo.project_label}}
{{:assign nbamort="%d-%d"|math:$duree:$nbamort}}
@ -231,89 +235,89 @@
</section>
{{/if}}
{{if $_GET.fini == null || $_GET.fini != 1}}
{{if $_GET.amort == null || $_GET.amort != "fini"}}
{{* amortissement à exclure *}}
{{:include
file="_amort_exclus.html"
keep="amort_exclus"
}}
{{* Autres amortissements non rattachés *}}
{{#select
li.id as l_id,
li.id_transaction as t_id,
li.credit as montant,
li.reference,
li.label as l_label,
trans.date as t_date,
trans.label as t_label,
acc.code as a_code,
acc.label as a_label,
y.label as y_label
from acc_transactions_lines as li
inner join acc_accounts as acc on acc.id = li.id_account
inner join acc_transactions as trans on trans.id = li.id_transaction
inner join acc_years as y on y.id = trans.id_year
where acc.code like "28%"
order by trans.date, trans.label;
assign=autre_amort
}}
{{#select
id_transaction,
id_related
from acc_transactions_links
where id_transaction = :id_amort or id_related = :id_amort;
:id_amort=$t_id
{{* amortissement à exclure *}}
{{:include
file="_amort_exclus.html"
keep="amort_exclus"
}}
{{else}}
{{if $autre_amort.t_id|in:$amort_exclus}}
{{* Autres amortissements non rattachés *}}
{{#select
li.id as l_id,
li.id_transaction as t_id,
li.credit as montant,
li.reference,
li.label as l_label,
trans.date as t_date,
trans.label as t_label,
acc.code as a_code,
acc.label as a_label,
y.label as y_label
from acc_transactions_lines as li
inner join acc_accounts as acc on acc.id = li.id_account
inner join acc_transactions as trans on trans.id = li.id_transaction
inner join acc_years as y on y.id = trans.id_year
where acc.code like "28%" AND credit > 0
order by trans.date, trans.label;
assign=autre_amort
}}
{{#select
id_transaction,
id_related
from acc_transactions_links
where id_transaction = :id_amort or id_related = :id_amort;
:id_amort=$t_id
}}
{{else}}
{{:assign var="autres_amortissements." value=$autre_amort}}
{{/if}}
{{if $autre_amort.t_id|in:$amort_exclus}}
{{else}}
{{:assign var="autres_amortissements." value=$autre_amort}}
{{/if}}
{{/select}}
{{/select}}
{{/select}}
{{if $autres_amortissements != null}}
<section class="amortissement">
<h3 class="ruler">Autres amortissements non rattachés</h3>
<table class="list">
<thead>
<tr>
<th></th>
<th>Date</th>
<th class="nombre">Montant</th>
<th>Libellé</th>
<th>N° compte</th>
<th>Compte</th>
<th class="actions"></th>
</tr>
</thead>
<tbody>
{{#foreach from=$autres_amortissements item="line"}}
{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$line.t_id}}
{{if $autres_amortissements != null}}
<section class="amortissement">
<h3 class="ruler">Autres amortissements non rattachés</h3>
<table class="list">
<thead>
<tr>
<td class="num"><a href={{$trans_url}}>#{{$line.t_id}}</a></td>
<td>{{$line.t_date|date_short}}</td>
<td class="money">{{"%f"|math:$line.montant|money}}</td>
<td>{{if $line.l_label == null}}
{{$line.t_label}}
{{else}}
{{$line.l_label}}
{{/if}}
</td>
<td>{{$line.a_code}}</td>
<td>{{$line.a_label}}</td>
<td>
{{:linkbutton label="Attacher" href="attach_amort.html?amort_id=%d&immo_id=%d"|args:$line.l_id:$ligne_immo.immo_id shape="plus"}}
</td>
<th></th>
<th>Date</th>
<th class="nombre">Montant</th>
<th>Libellé</th>
<th>N° compte</th>
<th>Compte</th>
<th class="actions"></th>
</tr>
{{/foreach}}
</tbody>
</table>
</section>
{{/if}}
</thead>
<tbody>
{{#foreach from=$autres_amortissements item="line"}}
{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$line.t_id}}
<tr>
<td class="num"><a href={{$trans_url}}>#{{$line.t_id}}</a></td>
<td>{{$line.t_date|date_short}}</td>
<td class="money">{{"%f"|math:$line.montant|money}}</td>
<td>{{if $line.l_label == null}}
{{$line.t_label}}
{{else}}
{{$line.l_label}}
{{/if}}
</td>
<td>{{$line.a_code}}</td>
<td>{{$line.a_label}}</td>
<td>
{{:linkbutton label="Attacher" href="attach_amort.html?amort_id=%d&immo_id=%d"|args:$line.l_id:$ligne_immo.immo_id shape="plus"}}
</td>
</tr>
{{/foreach}}
</tbody>
</table>
</section>
{{/if}}
{{/if}}
{{:form_errors}}
{{:admin_footer}}