Compare commits

...

8 commits

Author SHA1 Message Date
Jean-Christophe Engel
62f80222ad Correction erreur classement immo 2025-05-23 10:33:56 +02:00
Jean-Christophe Engel
c7d71d082d Harmonisation dialogue paramètres 2025-05-23 10:33:19 +02:00
Jean-Christophe Engel
9106c4226b Harmonisation libellé et icône bouton paramètre immo 2025-05-23 10:12:02 +02:00
Jean-Christophe Engel
e11ff5c90e Déplacement bouton sortie bilan sur page amortissements 2025-05-23 10:09:35 +02:00
Jean-Christophe Engel
ba17145837 Mutualisation paramètres immo + rationalisation navigation 2025-05-23 10:03:44 +02:00
Jean-Christophe Engel
c096282f08 Amélioration détection immobilisations archivées 2025-05-22 11:30:40 +02:00
Jean-Christophe Engel
255ffe10aa Améliorations et simplification présentation 2025-05-22 10:00:54 +02:00
Jean-Christophe Engel
9fe7890718 Réorganisation récupération infos comptes 2025-05-21 18:19:37 +02:00
12 changed files with 326 additions and 204 deletions

View file

@ -1,23 +1,26 @@
{{* -*- brindille -*- *}}
<nav class="tabs">
{{if $current == 'index'}}
{{if $current == 'index' && $subsubcurrent == null}}
<aside>
{{:linkbutton label="Ajouter une immobilisation" shape="plus" href="add_asset.html" target="_dialog"}}
</aside>
{{/if}}
{{*
<ul>
<li {{if $current == 'index'}} class="current"{{/if}}><a href="{{$module.url}}index.html">Immobilisations</a></li>
<li {{if $current == 'aide'}} class="current"{{/if}}><a href="{{$module.url}}aide.html">Aide</a></li>
</ul>
*}}
{{if $current == 'index' && $subsubcurrent != 'balance_exit'}}
<ul class="sub">
<li {{if $subcurrent == 'encours'}}class="current"{{/if}}><a href="index.html?amort=encours">En cours</a></li>
<li {{if $subcurrent == 'fini'}}class="current"{{/if}}><a href="index.html?amort=fini">Terminées</a></li>
<li {{if $subcurrent == 'archive'}}class="current"{{/if}}><a href="index.html?amort=archive">Archivées</a></li>
<li {{if $subcurrent == 'autres'}}class="current"{{/if}}><a href="index.html?amort=autres">Autres</a></li>
{{* <ul class="sub">*}}
<ul>
<li {{if $subcurrent == 'encours'}}class="current"{{/if}}><a href="index.html?type_immo=encours">En cours</a></li>
<li {{if $subcurrent == 'fini'}}class="current"{{/if}}><a href="index.html?type_immo=fini">Terminées</a></li>
<li {{if $subcurrent == 'archive'}}class="current"{{/if}}><a href="index.html?type_immo=archive">Archivées</a></li>
<li {{if $subcurrent == 'autres'}}class="current"{{/if}}><a href="index.html?type_immo=autres">Autres</a></li>
</ul>
{{/if}}
@ -26,8 +29,10 @@
<li class="title"><strong>Amortissements</strong></li>
</ul>
{{elseif $subsubcurrent == 'balance_exit'}}
{{*
<ul class="sub">
<li class="title"><strong>Sortie du bilan</strong></li>
</ul>
*}}
{{/if}}
</nav>

View file

@ -10,7 +10,7 @@
{{:assign debut=$start_date|date_short}}
{{:assign fin=$end_date|date_short}}
{{:assign var="years_data.%d"|args:$id value=$ts_debut|cat:" "|cat:$ts_fin}}
{{:assign var="open_years.%d"|args:$id value=$label|cat:" (du "|cat:$debut|cat:" au "|cat:$fin|cat:")"}}
{{:assign var="open_years.%d"|args:$id value=$label|cat:" ("|cat:$debut|cat:" - "|cat:$fin|cat:")"}}
{{if $ts_debut <= $now && $now <= $ts_fin}}
{{:assign selected_year=$id}}
{{/if}}
@ -153,7 +153,7 @@
<fieldset>
<legend>Données de l'immobilisation</legend>
<dl>
{{:input type="select" name="id_year" label="Exercice" required=true default_empty="— Faire un choix —" options=$open_years}}
{{:input type="select" name="id_year" label="Exercice" default=$selected_year required=true default_empty="— Faire un choix —" options=$open_years}}
{{:input type="date" name="date_achat" label="Date d'acquisition" required=true default=$now|date_short}}
{{:input type="text" name="designation" label="Désignation" required=true}}
{{:input type="money" name="montant" label="Montant" required=true}}
@ -167,10 +167,9 @@
{{:input
type="list"
name="debit_account"
label="Compte d'immobilisation (20xx, 21xx, ...)"
label="Compte d'immobilisation"
required=true
target="!acc/charts/accounts/selector.php?codes=%s&id_year=%d"|args:$patterns:$selected_year
default=$immo_account
}}
{{if $projects != null}}
{{:input type="select" name="id_project" label="Projet (analytique)" options=$projects default_empty="— Aucun —"}}
@ -185,8 +184,8 @@
<dl>
{{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir cette immobilisation sur plusieurs années" checked="cheched" help="Dé-cocher pour ne pas amortir"}}
<div id="div_amort">
{{:input type="date" name="date_mes" label="Date de mise en service" help="C'est la date de première utilisation ; à renseigner uniquement si différente de la date d'acquisition"}}
{{:input type="number" name="duree" label="Durée d'amortissement" required=true min=0 default=1 suffix="année(s)"}}
{{:input type="date" name="date_mes" label="Date de mise en service" help="C'est la date de première utilisation ; à renseigner uniquement si différente de la date d'acquisition"}}
</div>
</dl>
</fieldset>

View file

@ -1,28 +1,32 @@
{{* -*- brindille -*- *}}
{{:admin_header title="Renseigner informations amortissement" custom_css=$custom_css current="module_amortissement"}}
{{*
@param immo_id
@param amort = 1 si immo amortissable, 0 si non
@param op = new ou modif
@param type_immo : encours, archive, fini, autre
*}}
{{* barre de navigation *}}
{{if ! $dialog}}
{{:include file="_nav.html" current="index"}}
{{if $_GET.op == "modif"}}
{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}
{{/load}}
{{/if}}
{{* Traiter l'envoi du formulaire *}}
{{#form on="add"}}
{{#form on="save"}}
{{* chercher la date d'acquisition de l'immobilisation *}}
{{:assign var="immo_id" value=$_GET.immo_id|intval}}
{{#select
trans.date as date_achat
from acc_transactions_lines as line
inner join acc_transactions as trans on line.id_transaction = trans.id
where line.id = :line_id;
:line_id = $immo_id
FROM acc_transactions_lines AS line
INNER join acc_transactions AS trans ON line.id_transaction = trans.id
WHERE line.id = :line_id;
:line_id = $_GET.immo_id
assign=ligne_immo
}}
{{/select}}
{{if $_POST.no_amort}}
{{if ! $_POST.amortir}}
{{* ne pas amortir *}}
{{:assign duration=0}}
{{:assign date_debut=$ligne_immo.date_achat|parse_date}}
@ -43,47 +47,70 @@
{{/if}}
{{* enregistrer les infos de l'immobilisation *}}
{{:assign key=""|uuid}}
{{if $_GET.op == "new"}}
{{:assign key=""|uuid}}
{{else}}
{{:assign key=$info_immo.key}}
{{/if}}
{{:save
key=$key
validate_schema="schema.json"
type="immo"
line=$immo_id
line=$_GET.immo_id|intval
duration=$duration
date=$date_debut
status=$status
}}
{{if $_POST.no_amort}}
{{:assign amort="autres"}}
{{if ! $_POST.amortir}}
{{:assign type_immo="autres"}}
{{else}}
{{:assign amort="encours"}}
{{:assign type_immo=$_GET.type_immo}}
{{/if}}
{{:redirect force="index.html?ok=1&msg=infos&amort=%s"|args:$amort}}
{{:redirect force="index.html?ok=1&msg=infos&type_immo=%s"|args:$type_immo}}
{{else}}
{{:form_errors}}
{{/form}}
{{* renseigner la date de mise en service et durée d'amortissement *}}
{{:admin_header title="Renseigner informations amortissement" custom_css=$custom_css current="module_amortissement"}}
{{* barre de navigation *}}
{{if ! $dialog}}
{{:include file="_nav.html" current="index"}}
{{/if}}
{{* renseigner ou modifier la date de mise en service et la durée d'amortissement *}}
{{if $_GET.amort == 0}}
{{:assign checked=1}}
{{:assign checked=0}}
{{:assign disabled=1}}
{{else}}
{{:assign checked=0}}
{{:assign checked=1}}
{{:assign disabled=0}}
{{/if}}
<form method="post" action="">
<fieldset id="infos_immo">
<legend></legend>
<dl>
{{:input id="no_amort" type="checkbox" value=1 name="no_amort" label="Ne pas amortir" default=$checked help="Cocher pour ne pas amortir" onclick="toggleInputs('infos_immo','f_no_amort_1')"}}
{{:input type="date" name="date_mes" label="Date de mise en service" disabled=$disabled help="à renseigner uniquement si différente de la date d'acquisition"}}
{{:input type="number" name="duree" label="Durée d'amortissement" required=true min=1 default=1 disabled=$disabled}}
{{if $checked}}
{{:assign helptext = "Dé-cocher pour ne pas amortir"}}
{{else}}
{{:assign helptext = "Cocher pour amortir"}}
{{/if}}
{{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir" default=$checked help=$helptext onclick="toggleInputs('infos_immo','f_amortir_1')"}}
{{if $info_immo != null}}
{{:assign date_defaut=$info_immo.date}}
{{:assign duree_defaut=$info_immo.duration}}
{{else}}
{{:assign duree_defaut=1}}
{{/if}}
{{:input type="number" name="duree" label="Durée d'amortissement" default=$duree_defaut required=true min=1 disabled=$disabled}}
{{:input type="date" name="date_mes" label="Date de mise en service" default=$date_defaut disabled=$disabled help="à renseigner uniquement si différente de la date d'acquisition"}}
</dl>
</fieldset>
<p class="submit">
{{:button type="submit" name="add" label="Ajouter" shape="right" class="main"}}
{{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}}
</p>
</form>
@ -91,11 +118,11 @@
{{* activer/désactiver les champs de saisie *}}
<script type="text/javascript">
function toggleInputs(idfs, idcb) {
const noamort = document.getElementById(idcb);
const amortir = document.getElementById(idcb);
const fs = document.getElementById(idfs);
for (let field of fs.querySelectorAll("input")) {
if (field == noamort) { continue }
if (noamort.checked) {
if (field == amortir) { continue }
if (! amortir.checked) {
field.setAttribute("disabled","disabled");
}
else {

View file

@ -10,41 +10,28 @@
</p>
<h2 class="aide">Immobilisations</h2>
Elles sont classées dans 3 onglets :
Elles sont classées dans plusieurs onglets :
<h3 class="aide">Amortissables</h3>
On y trouve les immobilisations en cours et celles pour lesquelles le
module n'a pas d'information.
<p class="aide">
Dans le deuxième cas, il faut cliquer sur le bouton « Ajouter
infos » puis :
<ul class="aide">
<li>soit indiquer que l'immobilisation ne doit pas être amortie</li>
<li>soit fournir la date de mise en service du bien (si différente de la date d'acquisition) ainsi
que la durée en années de l'amortissement</li>
</ul>
</p>
<p class="aide">
Tant qu'une immobilisation ne possède pas d'amortissement, il est
possible de modifier ses informations à l'aide du bouton «
Modifier infos ».
</p>
<h3 class="aide">Terminées</h3>
On y trouve les immobilisations dont l'amortissement est terminé
<h3 class="aide">Non amortissables</h3>
<ul class="aide">
<li><strong>En cours</strong> : immobilisations en cours d'amortissement.</li>
<li><strong>Terminées</strong> : immobilisations dont l'amortissement est terminé.</li>
<li><strong>Archivées</strong> : immobilisations qui ont été sortie du bilan.</li>
<li><strong>Autres</strong> : immobilisations pour lesquelles le module n'a pas
d'information ou qui ont été marquées non amortissables.</li>
</ul>
<h3 class="aide">Ajouter une immobilisation</h3>
<div class="aide">
<p class="aide">
On peut indiquer qu'il s'agit d'une immobilisation qui ne doit pas être amortie ; dans le cas contraire, il faut renseigner les différents paramètres de l'immobilisation :
Il faut renseigner les informations de l'immobilisation.
On peut indiquer qu'il s'agit d'une immobilisation qui ne doit
pas être amortie ; dans le cas contraire, il faut renseigner
les différents paramètres de l'immobilisation
</p>
<!--
<ul class="aide">
<li>Date d'acquisition du bien</li>
<li>Date d'acquisition du bien</li>
<li>Date de mise en service du bien : uniquement si différente de la précédente</li>
<li>Désignation : c'est le libellé de l'immobilisation</li>
@ -57,9 +44,10 @@ On y trouve les immobilisations dont l'amortissement est terminé
<p>
Après ajout, on se retrouve sur la page d'accueil des immobilisations.
</p>
-->
</div>
<h2 class="aide">Amortissements</h2>
<h3 class="aide">Amortissements</h2>
<div class="infos">
<p class="aide">
@ -78,7 +66,7 @@ On y trouve les immobilisations dont l'amortissement est terminé
On trouve ici de une à trois listes, selon la situation :
<ul class="aide">
<li>
<b>Écritures d'amortissement liées à l'immobilisation courante</b>
<b>Amortissements enregistrés</b>
<p>
Ce sont des écritures d'amortissement déjà
enregistrées et liées à l'écriture de
@ -86,11 +74,11 @@ On y trouve les immobilisations dont l'amortissement est terminé
</p>
</li>
<li>
<b>Écritures d'amortissements à enregistrer</b>
<b>Amortissements futurs</b>
<p>
Ce sont les écritures amortissement de
l'immobilisation courante qui n'ont pas encore été
enregistrées ; seules les amortissements d'un
enregistrées ; seuls les amortissements d'un
exercice ouvert peuvent être enregistrés ; les
autres sont présents pour information et pourront
être enregistrés quand l'exercice correspondant
@ -98,13 +86,14 @@ On y trouve les immobilisations dont l'amortissement est terminé
</p>
</li>
<li>
<b>Écritures d'amortissement qui ne sont associées à aucune immobilisation</b>
<b>Autres amortissement non rattachés</b>
<p>
Ce sont des écritures passées sur un compte
d'amortissement (<b>28xx</b>) ; en cliquant le
bouton « Attacher », on peut rattacher l'écriture
d'amortissement sélectionnée à l'immobilisation
courante.
d'amortissement (<b>28xx</b>) qui ne sont
associées à aucune écriture d'immobilisation ; en
cliquant le bouton « Attacher », on peut rattacher
l'écriture d'amortissement sélectionnée à
l'immobilisation courante.
</p>
<p>
Si on a rattaché par erreur une écriture
@ -126,16 +115,23 @@ On y trouve les immobilisations dont l'amortissement est terminé
<li>Désignation : déterminée à partir du libellé de l'immobilisation< ; elle peut être modifiée/li>
<li>Montant : sa valeur est calculée par le module ; elle peut être modifiée</li>
<li>
Compte de débit : à choisir dans la liste ; par défaut c'est le compte <em>6811 : Dotation aux amortissements des immobilisations</em>
Compte de débit : à choisir dans la liste ; par défaut
c'est le compte <em>6811 : Dotation aux amortissements
des immobilisations</em>
</li>
<li>
Compte d'amortissement : à choisir dans la liste ; par défaut c'est le compte formé en intercalant un 8 après le 2 initial du compte d'immobilisation (exemple : 2183 => 28183)
Compte d'amortissement : à choisir dans la liste ; par
défaut c'est le compte formé en intercalant un 8 après
le 2 initial du compte d'immobilisation (exemple :
2183 => 28183)
</li>
</ul>
<!--
<p class="aide">
Après enregistrement, on se retrouve sur la page des amortissements
</p>
</p>
-->
</p>
</div>
<h2 class="aide">Remarques</h2>
@ -147,9 +143,21 @@ On y trouve les immobilisations dont l'amortissement est terminé
si leurs écritures ont été liées ; dans le cas contraire, il
faudra renseigner manuellement les infos de l'immobilisation.
</li>
<li>
Les écritures d'immobilisation de la balance d'ouverture ne
peuvent être détectées automatiquement : il faudra indiquer
manuellement qu'elles ne doivent pas être amorties.
</li>
</ul>
<p class="aide">
Dans le deuxième cas, il faut cliquer sur le bouton « Ajouter
infos » puis :
<ul class="aide">
<li>soit indiquer que l'immobilisation ne doit pas être amortie</li>
<li>soit fournir la date de mise en service du bien (si différente de la date d'acquisition) ainsi
que la durée en années de l'amortissement</li>
</ul>
</p>
<p class="aide">
Tant qu'une immobilisation ne possède pas d'amortissement, il est
possible de modifier ses informations à l'aide du bouton «
Modifier infos ».
</p>

View file

@ -68,11 +68,11 @@
{{:admin_header title="Liste des amortissements" custom_css="./style.css" current="module_amortissement"}}
{{* barre de navigation *}}
{{if $_GET.amort == "fini" || $valeur_residuelle== 0 }}
{{if $_GET.type_immo == "fini" || $valeur_residuelle== 0 }}
{{:assign subcurrent="fini"}}
{{elseif $_GET.amort == "archive"}}
{{elseif $_GET.type_immo == "archive"}}
{{:assign subcurrent="archive"}}
{{elseif $_GET.amort == null || $_GET.amort == "encours"}}
{{elseif $_GET.type_immo == null || $_GET.type_immo == "encours"}}
{{:assign subcurrent="encours"}}
{{else}}
{{:assign subcurrent="autres"}}
@ -105,17 +105,41 @@
</nav>
{{/if}}
<h3>Amortissement de «
<a class="num"
href={{"%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.trans_id}}>#{{$ligne_immo.trans_id}}</a>
{{$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}}
</h3>
<form method="post" action="">
<fieldset>
<legend>Sortir l'immobilisation du bilan ?</legend>
<p class="submit">
{{:linkbutton
label="Sortir du bilan"
href="balance_sheet_exit.html?immo_id=%s"|args:$_GET.immo_id
shape="export"
class="main"
}}
</p>
<p class="help">
Il sera possible de choisir la date de sortie, d'indiquer
le montant de la cession le cas échéant et de modifier les
comptes associés.
</p>
</fieldset>
</form>
<dl class="describe">
<dt>Libellé</dt>
<dd>{{$ligne_immo.label}}</dd>
<dt>Montant</dt>
<dd><strong class="money">{{"%f"|math:$ligne_immo.montant|money_currency}}</strong></dd>
<dt>Début d'amortissement</dt>
<dd>{{$date_debut|date_short}}</dd>
{{if $duree != null}}
<dt>Durée</dt>
<dd>{{$duree}} ans</dd>
{{/if}}
</dl>
{{if $linked_lines != null}}
<section class="amortissement">
<h3 class="center-block ruler">Amortissements rattachés</h3>
<h3 class="center-block ruler">Amortissements enregistrés</h3>
<table class="list">
<thead>
<tr>
@ -159,7 +183,7 @@
</section>
{{/if}}
{{if $_GET.amort == null || $_GET.amort != "fini"}}
{{if $_GET.type_immo == null || $_GET.type_immo != "fini"}}
{{* Autres amortissements non rattachés *}}
{{#select

View file

@ -2,6 +2,82 @@
{{* Liste des immobilisations archivées *}}
{{* Immobilisation archivées prises en charge *}}
{{#load type="immo" where="$$.status = 'archived'"}}
{{:assign var="lines." value="'%s'"|args:$line}}
{{/load}}
{{:assign lines=$lines|implode:","}}
{{:assign lines="("|cat:$lines|cat:")"}}
{{:assign condition="line.id IN %s"|args:$lines}}
{{#select
trans.id as trans_id,
trans.label as trans_label,
trans.date as trans_date,
line.id as immo_id,
account.id as account_id,
account.code as account_code,
account.label as account_label,
line.debit AS debit,
project.label as project_label,
trans.id_year as trans_id_year
FROM acc_transactions AS trans
INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id
INNER JOIN acc_accounts AS account ON line.id_account = account.id
INNER JOIN acc_years AS years ON trans.id_year = years.id
LEFT JOIN acc_projects AS project ON line.id_project = project.id
WHERE !condition
ORDER BY trans.date DESC;
!condition=$condition
assign="immo_archivee"
}}
{{:assign var="immo_archivees.%s"|args:$trans_id value=$immo_archivee}}
{{/select}}
{{* Immobilisation avec une écriture de sortie de bilan *}}
{{:read file="./defaut.json" assign="config_json"}}
{{:assign config_defaut=$config_json|json_decode}}
{{:assign var="prefix_array" value=$config_defaut.prefixes|keys}}
{{:assign condition="("}}
{{#foreach from=$prefix_array item="code"}}
{{:assign code=$code|cat:"%"|quote_sql}}
{{:assign condition=$condition|cat:"account.code LIKE "|cat:$code|cat:" OR "}}
{{/foreach}}
{{:assign condition=$condition|cat:"0)"}}
{{:assign cond2=$condition|replace:"account.":"acc2."}}
{{:assign condition=$condition|cat:" AND "|cat:$cond2}}
{{:assign condition=$condition|cat:" AND line.debit > 0 AND NOT (trans.status & 16)"}}
{{#select
trans.id as trans_id,
trans.label as trans_label,
trans.date as trans_date,
line.id as immo_id,
account.id as account_id,
account.code as account_code,
account.label as account_label,
line.debit AS debit,
project.label as project_label,
trans.id_year as trans_id_year
FROM acc_transactions AS trans
INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id
INNER JOIN acc_accounts AS account ON line.id_account = account.id
INNER JOIN acc_years AS years ON trans.id_year = years.id
INNER JOIN acc_transactions_lines AS line2 ON line.debit = line2.credit
INNER JOIN acc_transactions AS trans2 ON trans2.id = line2.id_transaction
INNER JOIN acc_accounts AS acc2 ON acc2.id = line2.id_account
LEFT JOIN acc_projects AS project ON line.id_project = project.id
WHERE !condition
ORDER BY trans.date DESC;
!condition=$condition
assign="immo_archivee"
}}
{{if ! $trans_id|key_in:$immo_archivees}}
{{:assign var="immo_archivees.%s"|args:$trans_id value=$immo_archivee}}
{{/if}}
{{/select}}
<section class="immobilisation">
<h2 class="ruler">Immobilisations archivées</h2>
@ -20,34 +96,7 @@
</tr>
</thead>
<tbody>
{{#load type="immo" where="$$.status = 'archived'"}}
{{:assign var="lines." value="'%s'"|args:$line}}
{{/load}}
{{:assign lines=$lines|implode:","}}
{{:assign lines="("|cat:$lines|cat:")"}}
{{:assign condition="line.id IN %s"|args:$lines}}
{{#select
trans.id as trans_id,
trans.label as trans_label,
trans.date as trans_date,
line.id as immo_id,
account.id as account_id,
account.code as account_code,
account.label as account_label,
line.debit AS debit,
project.label as project_label,
trans.id_year as trans_id_year
FROM acc_transactions AS trans
INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id
INNER JOIN acc_accounts AS account ON line.id_account = account.id
INNER JOIN acc_years AS years ON trans.id_year = years.id
LEFT JOIN acc_projects AS project ON line.id_project = project.id
WHERE !condition
ORDER BY trans.date DESC;
!condition=$condition
}}
{{#foreach from=$immo_archivees}}
{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}}
{{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$account_id:$trans_id_year}}
{{:assign nb_immo="%d+1"|math:$nb_immo}}
@ -62,7 +111,7 @@
<td class="actions">
</td>
</tr>
{{/select}}
{{/foreach}}
</tbody>
</table>
{{if $nb_immo == 0}}

View file

@ -160,7 +160,7 @@
{{:admin_header title="Sortie de bilan" custom_css="./style.css" current="module_amortissement"}}
{{* barre de navigation *}}
{{if ! $dialog}}
{{:include file="_nav.html" current="index" subsubcurrent="balance_exit"}}
{{:include file="_nav.html" current="index" subcurrent="balance_exit"}}
{{/if}}
{{:form_errors}}

View file

@ -37,7 +37,6 @@
{{* Traiter l'envoi du formulaire *}}
{{#form on="proceed"}}
{{:debug post=$_POST}}
{{if $_POST.cession != null}}
{{if $_POST.montant_cession == null}}
{{:error message="Vous devez saisir le montant de la cession"}}
@ -51,7 +50,7 @@
{{* barre de navigation *}}
{{if ! $dialog}}
{{:include file="_nav.html" current="index" subsubcurrent="balance_exit"}}
{{:include file="_nav.html" current="index" subcurrent="balance_exit"}}
{{/if}}
{{:form_errors}}

View file

@ -3,9 +3,9 @@
{{* Liste des immobilisations amortissable ou à définir *}}
<section class="immobilisation">
{{if $amort == "encours"}}
{{if $type_immo == "encours"}}
<h2 class="ruler">Immobilisations en cours</h2>
{{elseif $amort == "fini"}}
{{elseif $type_immo == "fini"}}
<h2 class="ruler">Immobilisations amorties</h2>
{{/if}}
{{:assign nb_immo=0}}
@ -133,8 +133,8 @@
{{/select}}
{{* classement par onglet *}}
{{if $amort == "encours" && $amort_amount >= $debit ||
$amort == "fini" && $amort_amount < $debit ||
{{if $type_immo == "encours" && $amort_amount >= $debit ||
$type_immo == "fini" && $amort_amount < $debit ||
$amortissable == "nsp" && ! $exist_amort
}}
{{:continue}}
@ -151,29 +151,22 @@
<td class="actions">
{{if ! $exist_amort}}
{{:linkbutton
label="Modifier infos"
href="modif_infos.html?immo_id=%s&amort=1"|args:$immo_id
label="Paramètres"
href="add_infos.html?immo_id=%s&amort=1&op=modif&type_immo=%s"|args:$immo_id:$type_immo
shape="settings"
target="_dialog"
}}
{{elseif $amortissable == "nsp"}}
{{:linkbutton
label="Ajouter infos"
href="add_infos.html?immo_id=%s&amort=1"|args:$immo_id
label="Paramètres"
href="add_infos.html?immo_id=%s&amort=1&op=new&type_immo=%s"|args:$immo_id:$type_immo
shape="settings"
target="_dialog"
}}
{{/if}}
{{if $amort == "encours" || $amort == "fini"}}
{{:linkbutton
label="Sortir du bilan"
href="balance_sheet_exit.html?immo_id=%s"|args:$immo_id
shape="export"
}}
{{/if}}
{{:linkbutton
label="Amortissements"
href="amortization.html?immo_id=%s&amort=%s"|args:$immo_id:$amort
href="amortization.html?immo_id=%s&type_immo=%s"|args:$immo_id:$type_immo
shape="table"
}}
</td>

View file

@ -60,7 +60,6 @@
{{if $status != "ignored" && $status != "nsp"}}
{{:continue}}
{{/if}}
{{*:debug immo_id=$immo_id status=$status*}}
{{* voir s'il existe des écritures d'amortissement associées *}}
{{#select
@ -87,7 +86,7 @@
account.code LIKE '28%';
:line_id = $immo_id|intval
}}
{{if $amort_amount != null}}
{{if $status == "nsp" && $amort_amount != null}}
{{:assign ignore=true}}
{{else}}
{{:assign ignore=false}}
@ -108,16 +107,16 @@
<td class="actions">
{{if $status == "nsp"}}
{{:linkbutton
label="Ajouter infos"
href="add_infos.html?immo_id=%s&amort=1"|args:$immo_id
label="Paramètres"
href="add_infos.html?immo_id=%s&amort=0&op=new&type_immo=autres"|args:$immo_id
shape="settings"
target="_dialog"
}}
{{else}}
{{:linkbutton
label="Modifier infos"
href="modif_infos.html?immo_id=%s&amort=0"|args:$immo_id
shape="help"
label="Paramètres"
href="add_infos.html?immo_id=%s&amort=0&op=modif&type_immo=autres"|args:$immo_id
shape="settings"
target="_dialog"
}}
{{/if}}

View file

@ -1,14 +1,14 @@
{{* -*- brindille -*- *}}
{{:admin_header title="Gestion des amortissements" custom_css="./style.css" current="module_amortissement"}}
{{:admin_header title="Immobilisations et amortissements" custom_css="./style.css" current="module_amortissement"}}
{{* barre de navigation *}}
{{if $_GET.amort == null}}
{{:assign amort="encours"}}
{{if $_GET.type_immo == null}}
{{:assign type_immo="encours"}}
{{else}}
{{:assign amort=$_GET.amort}}
{{:assign type_immo=$_GET.type_immo}}
{{/if}}
{{:include file="_nav.html" current="index" subcurrent="%s"|args:$amort}}
{{:include file="_nav.html" current="index" subcurrent="%s"|args:$type_immo}}
{{if $_GET.ok}}
{{if $_GET.msg|match:"immobilisation"}}
@ -26,7 +26,6 @@
{{#select
line.id as line_id
FROM acc_transactions_lines as line
INNER JOIN acc_transactions AS trans on line.id_transaction = trans.id
WHERE line.id = :line_id;
:line_id = $line
}}
@ -48,11 +47,11 @@
*}}
{{/load}}
{{if $amort == "autres"}}
{{if $type_immo == "autres"}}
{{:include file="./immobilisations_autres.html"}}
{{elseif $amort == "archive"}}
{{elseif $type_immo == "archive"}}
{{:include file="archives.html"}}
{{elseif $amort == "encours" || $amort == "fini"}}
{{elseif $type_immo == "encours" || $type_immo == "fini"}}
{{:include file="./immobilisations.html"}}
{{/if}}

View file

@ -19,9 +19,11 @@
line.id_account,
trans.date as date_achat,
trans.label,
acc.code,
id_project
FROM acc_transactions_lines AS line
INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
INNER JOIN acc_accounts AS acc ON line.id_account = acc.id
WHERE line.id = :immo_id;
:immo_id = $_GET.immo_id|intval
assign="ligne_immo"
@ -33,18 +35,18 @@
{{* date de début de l'exercice *}}
{{#select start_date FROM acc_years WHERE id = :year_id; :year_id = $_GET.year}}
{{*:assign date_debut=$start_date*}}
{{/select}}
{{*if $date_debut < "2025-01-01"*}}
{{:assign vnc_code=675}}
{{:assign cession_code=775}}
{{*
{{else}}
{{:assign vnc_code=657}}
{{:assign cession_code=757}}
{{/if}}
{{if $start_date < "2025-01-01"
*}}
{{:assign vnc_code="675"}}
{{:assign cession_code="775"}}
{{*
{{else}}
{{:assign vnc_code="657"}}
{{:assign cession_code="757"}}
{{/if}}
*}}
{{/select}}
{{:assign valeur_nette="%f-%f"|math:$ligne_immo.montant:$_GET.amort_amount}}
{{:assign amort_comp=0}} {{* amortissement complémentaire jqà date sortie *}}
@ -68,7 +70,6 @@
{{* TODO : faut-il forcer les 3 sélecteurs de compte d'amortissement à avoir toujours la même valeur ? *}}
{{* Traiter l'envoi du formulaire *}}
{{#form on="save"}}
{{*
@ -87,7 +88,7 @@
account=$account
keep="account_code"
}}
{{:assign amort_account=$account_code|keys|key:0}}
{{:assign amort_account_code=$account_code|keys|key:0}}
{{if $valeur_nette > 0}}
{{* immo non totalement amortie *}}
@ -98,20 +99,20 @@
account=$_POST.comp_account
keep="account_code"
}}
{{:assign comp_account=$account_code|keys|key:0}}
{{:assign comp_account_code=$account_code|keys|key:0}}
{{:assign libelle="Amortissement complémentaire "|cat:$ligne_immo.label}}
{{:assign
var="lines."
debit="%f/100"|math:$amort_comp
account=$comp_account
account=$comp_account_code
id_project=$ligne_immo.id_project
label=$libelle
}}
{{:assign
var="lines."
credit="%f/100"|math:$amort_comp
account=$amort_account
account=$amort_account_code
id_project=$ligne_immo.id_project
label=$libelle
}}
@ -124,19 +125,19 @@
account=$_POST.except_account
keep="account_code"
}}
{{:assign except_account=$account_code|keys|key:0}}
{{:assign except_account_code=$account_code|keys|key:0}}
{{:assign libelle="Amortissement exceptionnel "|cat:$ligne_immo.label}}
{{:assign
var="lines."
debit="%f/100"|math:$amort_except
account=$except_account
account=$except_account_code
id_project=$ligne_immo.id_project
label=$libelle
}}
{{:assign
var="lines."
credit="%f/100"|math:$amort_except
account=$amort_account
account=$amort_account_code
id_project=$ligne_immo.id_project
label=$libelle
}}
@ -158,26 +159,38 @@
{{/if}}
{{* écriture de sortie du bilan *}}
{{:assign libelle="Sortie du bilan de "|cat:$ligne_immo.label}}
{{:assign lines=null}}
{{:include
file="_get_codes.html"
account=$_POST.immo_account
keep="account_code"
}}
{{:assign immo_account_code=$account_code|keys|key:0}}
{{:assign libelle="Sortie du bilan de "|cat:$ligne_immo.label}}
{{:assign
var="lines."
id_account=$ligne_immo.id_account
account=$immo_account_code
credit="%f/100"|math:$ligne_immo.montant
id_project=$ligne_immo.id_project
label=$libelle
}}
{{:assign
var="lines."
account=$amort_account
account=$amort_account_code
debit="(%f-%f)/100"|math:$ligne_immo.montant:$valeur_nette
id_project=$ligne_immo.id_project
label=$libelle
}}
{{if $valeur_nette > 0}}
{{:include
file="_get_codes.html"
account=$_POST.vnc_account
keep="account_code"
}}
{{:assign vnc_account_code=$account_code|keys|key:0}}
{{:assign
var="lines."
account=$vnc_code
account=$vnc_account_code
debit="%f/100"|math:$valeur_nette
id_project=$ligne_immo.id_project
label=$libelle
@ -254,40 +267,47 @@
{{* barre de navigation *}}
{{if ! $dialog}}
{{:include file="_nav.html" current="index" subsubcurrent="balance_exit"}}
{{:include file="_nav.html" current="index" subcurrent="balance_exit"}}
{{/if}}
{{:form_errors}}
{{* Préparer les infos pour le formulaire *}}
{{* déterminer les comptes pour les différentes écritures *}}
{{:assign var="comp_account.6811" value="6811 — Dot. aux amortissements des immobilisations"}}
{{:assign var="except_account.687" value="687 — Dot. aux amortissements & provisions - Charges exceptionnelles"}}
{{#select code, label from acc_accounts where id = :id;
:id=$ligne_immo.id_account
assign=immo_account_info
}}
{{/select}}
{{:include
file="./_get_amort_code.html"
code_immo=$immo_account_info.code
code_immo=$ligne_immo.code
keep="code_amort"
}}
{{:assign
var="amort_account.%s"|args:$code_amort
value="%s — Amortissements "|args:$code_amort|cat:$immo_account_info.label}}
{{:assign
var="immo_account.%s"|args:$immo_account_info.code
value="%s — Immobilisation "|args::$immo_account_info.code|cat:$immo_account_info.label}}
{{:assign
var="vnc_account.%s"|args:$vnc_code
value="%s — Valeurs comptables des éléments d'actifs cédés"|args:$vnc_code}}
{{:assign
var="cession_account.%s"|args:$cession_code
value="%s — Produits des cessions d'actif"|args:$cession_code}}
{{:assign var="creance_account.462" value="462 — Créances sur cessions d'immobilisations"}}
{{:assign var="liste_codes.6811" name="comp_account"}}
{{:assign var="liste_codes.687" name="except_account"}}
{{:assign var="liste_codes.462" name="creance_account"}}
{{:assign var="liste_codes.%s"|args:$code_amort name="amort_account"}}
{{:assign var="liste_codes.%s"|args:$ligne_immo.code name="immo_account"}}
{{:assign var="liste_codes.%s"|args:$vnc_code name="vnc_account"}}
{{:assign var="liste_codes.%s"|args:$cession_code name="cession_account"}}
{{:assign condition=$liste_codes|keys|implode:","}}
{{:assign condition="acc.code IN ("|cat:$condition|cat:")"}}
{{#select
acc.id,
acc.code as acc_code,
acc.label as acc_label,
year.label as year_label
FROM acc_accounts as acc
INNER JOIN acc_charts as chart ON chart.id = acc.id_chart
INNER JOIN acc_years as year ON chart.id = year.id_chart
WHERE year.id = 1 AND !condition;
!condition=$condition
}}
{{:assign var="liste_codes.%s.id"|args:$acc_code value=$id}}
{{:assign var="liste_codes.%s.acc_label"|args:$acc_code value=$acc_label}}
{{:assign var="liste_codes.%s.year_label"|args:$acc_code value=$year_label}}
{{/select}}
{{#foreach from=$liste_codes key=code}}
{{:assign var="%s.%s"|args:$name:$code value="%s — %s"|args:$code:$acc_label}}
{{/foreach}}
{{:read file="./defaut.json" assign="config_json"}}
{{:assign config_defaut=$config_json|json_decode}}