Compare commits

...

5 Commits

11 changed files with 198 additions and 106 deletions

View File

@ -7,7 +7,6 @@
résultat : open_years, selected_year, selected_chart résultat : open_years, selected_year, selected_chart
*}} *}}
{{*:debug check::date=$date*}}
{{:assign open_years=""}} {{:assign open_years=""}}
{{#years status=false}} {{#years status=false}}
{{:assign open_years=$open_years|cat:"\n"|cat:" - "|cat:$label|cat:" : "}} {{:assign open_years=$open_years|cat:"\n"|cat:" - "|cat:$label|cat:" : "}}

View File

@ -1,7 +1,14 @@
<nav class="tabs"> <nav class="tabs">
<ul> <ul>
<li {{if $current == 'index'}} class="current"{{/if}}><a href="{{$module.url}}index.html">Immobilisations</a></li> <li {{if $current == 'index'}} class="current"{{/if}}><a href="{{$module.url}}index.html">Immobilisations</a></li>
{{if $current == 'amortization'}}<li class="current"><a>Amortissements</a></li>{{/if}}
<li {{if $current == 'aide'}} class="current"{{/if}}><a href="{{$module.url}}aide.html">Aide</a></li> <li {{if $current == 'aide'}} class="current"{{/if}}><a href="{{$module.url}}aide.html">Aide</a></li>
</ul> </ul>
{{if $current == 'index'}}
<ul class="sub">
{{if $subcurrent == 'amortization'}}
<li class="current"><a>Amortissements</a></li>
{{/if}}
</ul>
{{/if}}
</nav> </nav>

View File

@ -1,7 +1,6 @@
{{* -*- brindille -*- *}} {{* -*- brindille -*- *}}
{{:admin_header title="Ajout immobilisation" current="module_amortissement"}} {{:admin_header title="Ajout immobilisation" current="module_amortissement"}}
{{* barre de navigation *}} {{* barre de navigation *}}
{{if ! $dialog}} {{if ! $dialog}}
{{:include file="_nav.html" current="index"}} {{:include file="_nav.html" current="index"}}
@ -9,18 +8,24 @@
{{* Traiter l'envoi du formulaire *}} {{* Traiter l'envoi du formulaire *}}
{{#form on="add"}} {{#form on="add"}}
{{*:debug add::POST=$_POST*}}
{{* vérifier que la date est située dans un exercice ouvert *}} {{* vérifier que la date est située dans un exercice ouvert *}}
{{:include {{:include
file="_check_date.html" file="_check_date.html"
date=$_POST.date date=$_POST.date_achat
keep="open_years, selected_year, selected_chart" keep="open_years, selected_year, selected_chart"
}} }}
{{* vérifier que la date d'acquisition est antérieure à la date de mise en service *}}
{{:assign date_debut=$_POST.date_mes|or:$_POST.date_achat|parse_date}}
{{if $date_debut|strtotime < $_POST.date_achat|parse_date|strtotime}}
{{:assign dd=$date_debut|date_short}}
{{:assign da=$_POST.date_achat|date_short}}
{{:error message="Erreur : la date de mise en service (%s) ne peut être antérieure à la date d'acquisition (%s)"|args:$dd:$da}}
{{/if}}
{{if $selected_year == null}} {{if $selected_year == null}}
{{:assign message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}} {{:error message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}}
{{:error message=$message}}
{{/if}} {{/if}}
{{* déterminer le numéro des comptes au cas où la clé serait un identifiant *}} {{* déterminer le numéro des comptes au cas où la clé serait un identifiant *}}
@ -63,7 +68,7 @@
assign="result" assign="result"
id_year=$selected_year id_year=$selected_year
type="revenue" type="revenue"
date=$_POST.date date=$_POST.date_achat
label=$_POST.designation label=$_POST.designation
amount=$_POST.montant amount=$_POST.montant
debit=$debit_account|keys|key:0 debit=$debit_account|keys|key:0
@ -71,7 +76,6 @@
id_project=$_POST.id_project id_project=$_POST.id_project
}} }}
{{* enregistrer les infos de l'immobilisation *}}
{{* vérifier s'il y a déjà un document avec le même numéro de ligne *}} {{* vérifier s'il y a déjà un document avec le même numéro de ligne *}}
{{:assign var="immo_id" value=$result.lines.1.id}} {{:assign var="immo_id" value=$result.lines.1.id}}
{{#load where="$$.line = :line_id" :line_id=$immo_id}} {{#load where="$$.line = :line_id" :line_id=$immo_id}}
@ -80,12 +84,14 @@
{{:assign key=""|uuid}} {{:assign key=""|uuid}}
{{/load}} {{/load}}
{{* enregistrer les infos de l'immobilisation *}}
{{:save {{:save
key=$key key=$key
validate_schema="schema.json" validate_schema="schema.json"
type="immo" type="immo"
line=$immo_id line=$immo_id
duration=$_POST.duree|intval duration=$_POST.duree|intval
date=$date_debut
}} }}
{{:redirect force="index.html?ok=1&msg=immobilisation"}} {{:redirect force="index.html?ok=1&msg=immobilisation"}}
@ -105,7 +111,8 @@
<fieldset class="ajout_immo"> <fieldset class="ajout_immo">
<legend>Ajouter une immobilisation</legend> <legend>Ajouter une immobilisation</legend>
<dl> <dl>
{{:input type="date" name="date" label="Date" required=true default=$now|date_short}} {{:input type="date" name="date_achat" label="Date d'acquisition" required=true default=$now|date_short}}
{{:input type="date" name="date_mes" label="Date de mise en service" help="à renseigner uniquement si différente de la date d'acquisition"}}
{{:input type="text" name="designation" label="Désignation" required=true}} {{:input type="text" name="designation" label="Désignation" required=true}}
{{:input type="money" name="montant" label="Montant" required=true}} {{:input type="money" name="montant" label="Montant" required=true}}
{{:input type="number" name="duree" label="Durée d'amortissement" required=true default=1}} {{:input type="number" name="duree" label="Durée d'amortissement" required=true default=1}}

View File

@ -1,36 +1,54 @@
{{* -*- brindille -*- *}} {{* -*- brindille -*- *}}
{{:admin_header title="Renseigner durée amortissement" custom_css=$custom_css current="module_amortissement"}} {{:admin_header title="Renseigner informations amortissement" custom_css=$custom_css current="module_amortissement"}}
{{* barre de navigation *}} {{* barre de navigation *}}
{{if ! $dialog}} {{if ! $dialog}}
{{:include file="_nav.html" current="index"}} {{:include file="_nav.html" current="index"}}
{{/if}} {{/if}}
{{* renseigner la durée d'amortissement *}}
<h2 class="ruler">Durée d'amortissement</h2>
{{* Traiter l'envoi du formulaire *}} {{* Traiter l'envoi du formulaire *}}
{{#form on="add"}} {{#form on="add"}}
{{* enregistrer les infos de l'immobilisation *}} {{* chercher la date d'achat de l'immobilisation *}}
{{:assign var="immo_id" value=$_GET.immo_id|intval}} {{: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
assign=ligne_immo
}}
{{/select}}
{{* vérifier que la date d'acquisition est antérieure à la date de mise en service *}}
{{:assign date_debut=$_POST.date_mes|or:$ligne_immo.date_achat|parse_date}}
{{if $date_debut|strtotime < $ligne_immo.date_achat|strtotime}}
{{:assign dd=$date_debut|date_short}}
{{:assign da=$ligne_immo.date_achat|date_short}}
{{:error message="Erreur : la date de mise en service (%s) ne peut être antérieure à la date d'acquisition (%s)"|args:$dd:$da}}
{{/if}}
{{:assign key=""|uuid}} {{:assign key=""|uuid}}
{{* enregistrer les infos de l'immobilisation *}}
{{:save {{:save
key=$key key=$key
validate_schema="schema.json" validate_schema="schema.json"
type="immo" type="immo"
line=$immo_id line=$immo_id
duration=$_POST.duree|intval duration=$_POST.duree|intval
date=$date_debut
}} }}
{{:redirect force="index.html?ok=1&msg=durée"}} {{:redirect force="index.html?ok=1&msg=durée"}}
{{/form}} {{/form}}
{{* renseigner la date de mise en service et durée d'amortissement *}}
<form method="post" action=""> <form method="post" action="">
<fieldset class="ajout_duree"> <fieldset class="ajout_duree">
<legend>Renseigner durée amortissement</legend> <legend>Renseigner informations amortissement</legend>
<dl> <dl>
{{:input type="date" name="date_mes" label="Date de mise en service" help="à renseigner uniquement si différente de la date d'acquisition"}}
{{:input type="number" name="duree" label="Durée d'amortissement" required=true default=1}} {{:input type="number" name="duree" label="Durée d'amortissement" required=true default=1}}
</dl> </dl>
</fieldset> </fieldset>
@ -41,4 +59,5 @@
</form> </form>
{{:form_errors}}
{{:admin_footer}} {{:admin_footer}}

View File

@ -8,16 +8,24 @@
<h2>Liste des immobilisations</h2> <h2>Liste des immobilisations</h2>
<div class="infos"> <div class="infos">
<p> <p>
On y trouve les immobilisations détectées par le module, c'est-à-dire les écritures passées sur les comptes d'immobilisation <b>20xx</b> et <b>21xx</b> On y trouve les immobilisations détectées par le module,
c'est-à-dire les écritures passées sur les comptes
d'immobilisation <b>20xx</b> et <b>21xx</b>.
</p> </p>
<p> <p>
Dans le cas d'une immobilisation qui n'est pas encore prise en charge par le module, il faut fournir la durée en années de l'amortissement en cliquant sur le bouton « Ajouter durée » Dans le cas d'une immobilisation qui n'est pas encore prise en
charge par le module, il faut 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 en cliquant sur le
bouton « Ajouter infos ».
</p> </p>
<p> <p>
Une fois la durée indiquée, on accède à la liste des amortissements d'une immobilisation en cliquant le bouton «Amortissements » On obtient la liste des amortissements d'une immobilisation
en cliquant le bouton «Amortissements ».
</p> </p>
<p> <p>
On peut enregistrer une nouvelle immobilisation en cliquant le bouton « Ajouter une immobilisation » On peut enregistrer une nouvelle immobilisation en
cliquant le bouton « Ajouter une immobilisation ».
</p> </p>
</div> </div>
@ -27,7 +35,8 @@
<p> <p>
Il faut renseigner les différents paramètres de l'immobilisation : Il faut renseigner les différents paramètres de l'immobilisation :
<ul> <ul>
<li>Date : celle de l'écriture de l'immobilisation</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> <li>Désignation : c'est le libellé de l'immobilisation</li>
<li>Montant</li> <li>Montant</li>
<li>Durée d'amortissement en années</li> <li>Durée d'amortissement en années</li>
@ -40,34 +49,61 @@
</p> </p>
</div> </div>
<h2>Liste des amortissements</h2> <h2>Amortissements</h2>
<div class="infos">
<p>
Le calcul de l'amortissement se fait par la <em>méthode linéaire</em>.
</p>
<p>
La date de début du calcul est par défaut la <em>date d'achat</em> ; si la
date de mise en service est <em>postérieure</em> à la date d'achat, c'est
celle-ci qui est prise en compte.
</p>
</div>
<h3>Liste des amortissements</h3>
<div class="help block"> <div class="help block">
<fieldset> <fieldset>
On trouve ici de une à trois listes, selon la situation : On trouve ici de une à trois listes, selon la situation :
<dl> <ul>
<dt> <li>
<label>liste des écritures d'amortissement liées à l'immobilisation courante</label> <b>Écritures d'amortissement liées à l'immobilisation courante</b>
</dt>
<dd>
Ce sont des écritures d'amortissement déjà enregistrées et liées à l'écriture de l'immobilisation courante.
</dd>
<dt>
<label>liste des amortissements à enregistrer</label>
</dt>
<dd>
Ce sont les amortissements qui n'ont pas encore été enregistrés ; seules 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 aura été ouvert.
</dd>
<dt>
<label>liste des écritures d'amortissement qui ne sont associées à aucune immobilisation</label>
</dt>
<dd>
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
<p> <p>
Si on a rattaché par ereur une écritures d'amortissement à une immobilisation, le bouton « Détacher » en face de l'écriture permettra de défaire l'opération Ce sont des écritures d'amortissement déjà
enregistrées et liées à l'écriture de
l'immobilisation courante.
</p> </p>
</dd> </li>
</dl> <li>
<b>Écritures d'amortissements à enregistrer</b>
<p>
Ce sont les amortissements qui n'ont pas encore
été enregistrés ; seules 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
aura été ouvert.
</p>
</li>
<li>
<b>Écritures d'amortissement qui ne sont associées à aucune immobilisation</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.
</p>
<p>
Si on a rattaché par erreur une écritures
d'amortissement à une immobilisation, le bouton «
Détacher » en face de l'écriture permettra de
défaire l'opération.
</p>
</li>
</ul>
</fieldset> </fieldset>
</div> </div>

View File

@ -3,7 +3,7 @@
{{:admin_header title="Liste des amortissements" custom_css="./style.css" current="module_amortissement"}} {{:admin_header title="Liste des amortissements" custom_css="./style.css" current="module_amortissement"}}
{{* barre de navigation *}} {{* barre de navigation *}}
{{:include file="_nav.html" current="amortization"}} {{:include file="_nav.html" current="index" subcurrent="amortization"}}
{{if $_GET.ok}} {{if $_GET.ok}}
{{if $_GET.msg|match:"attach"}} {{if $_GET.msg|match:"attach"}}
@ -26,10 +26,10 @@
{{* récupérer les infos de l'immobilisation *}} {{* récupérer les infos de l'immobilisation *}}
{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} {{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}
{{else}} {{else}}
{{:assign message="Pas d'info concernant l'immobilisation %s"|args:$_GET.immo_id}} {{:error message="Pas d'info concernant l'immobilisation %s"|args:$_GET.immo_id}}
{{:error message=$message}}
{{/load}} {{/load}}
{{:assign var="duree" from="info_immo.duration"|args:$_GET.immo_id}} {{:assign var="duree" from="info_immo.duration"|args:$_GET.immo_id}}
{{:assign date_debut=$info_immo.date|date_short}}
{{#select {{#select
line.id as immo_id, line.id as immo_id,
@ -38,7 +38,6 @@
line.debit as montant, line.debit as montant,
trans.id as trans_id, trans.id as trans_id,
trans.label as label, trans.label as label,
trans.date as date_achat,
y.id as year_id, y.id as year_id,
y.end_date as date_amort, y.end_date as date_amort,
project.label as project_label project.label as project_label
@ -50,10 +49,9 @@
:line_id = $_GET.immo_id|intval :line_id = $_GET.immo_id|intval
assign=ligne_immo assign=ligne_immo
}} }}
<h2>Amortissement de « {{$label}} » d'un montant de {{"%f"|math:$montant|money_currency}} en date du {{$date_achat|date_short}} sur {{$duree}} ans</h2> <h2>Amortissement de « {{$label}} » d'un montant de {{"%f"|math:$montant|money_currency}} en date du {{$date_debut}} sur {{$duree}} ans</h2>
{{else}} {{else}}
{{:assign message="Immobilisation %s non trouvée"|args:$_GET.immo_id}} {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}}
{{:error message=$message}}
{{/select}} {{/select}}
{{* chercher des écritures d'amortissement liées à l'immobilisation *}} {{* chercher des écritures d'amortissement liées à l'immobilisation *}}
@ -70,8 +68,7 @@
trans.id_year as amort_year, trans.id_year as amort_year,
acc.id as account_id, acc.id as account_id,
acc.code as account_code, acc.code as account_code,
acc.label as account_name, acc.label as account_name
"vrai" as linked
FROM FROM
acc_transactions_lines as l_immo acc_transactions_lines as l_immo
INNER JOIN acc_transactions as t_immo on t_immo.id = l_immo.id_transaction INNER JOIN acc_transactions as t_immo on t_immo.id = l_immo.id_transaction
@ -100,9 +97,8 @@
{{:assign annuite="%f/%f"|math:$montant:$duree}} {{:assign annuite="%f/%f"|math:$montant:$duree}}
{{* première annuité *}} {{* première annuité *}}
{{:assign date_achat=$ligne_immo.date_achat|date_short}}
{{:assign date_amort=$ligne_immo.date_amort|date_short}} {{:assign date_amort=$ligne_immo.date_amort|date_short}}
{{:include file="_calcul_dates.html" date_debut=$date_achat date_fin=$date_amort keep="nbjours"}} {{: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_1="%f/360*%d"|math:$annuite:$nbjours|intval}}
{{:assign annuite_courante=$annuite_1}} {{:assign annuite_courante=$annuite_1}}
@ -116,7 +112,7 @@
Amortissements attachés à « <a class="num" Amortissements attachés à « <a class="num"
href={{"%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.trans_id}}>{{$ligne_immo.trans_id}}</a> href={{"%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.trans_id}}>{{$ligne_immo.trans_id}}</a>
{{$ligne_immo.label}} » {{$ligne_immo.label}} »
({{"%f"|math:$ligne_immo.montant|money_currency}}, {{$ligne_immo.date_achat|date_short}}) ({{"%f"|math:$ligne_immo.montant|money_currency}}, {{$date_debut}})
</h3> </h3>
<table class="list"> <table class="list">
<thead> <thead>
@ -154,11 +150,7 @@
<td><a href={{$compte_url}}>{{$line.account_code}}</a></td> <td><a href={{$compte_url}}>{{$line.account_code}}</a></td>
<td>{{$line.account_name}}</td> <td>{{$line.account_name}}</td>
<td> <td>
{{if $line.linked == null}} {{:linkbutton label="Détacher" href="detach_amort.html?amort_id=%d&immo_id=%d"|args:$line.amort_line:$ligne_immo.immo_id shape="plus"}}
{{:linkbutton label="Détacher" href="detach_amort.html?amort_id=%d&immo_id=%d"|args:$line.amort_line:$ligne_immo.immo_id shape="plus"}}
{{else}}
{{:linkbutton label="Détacher" href="" shape="lock" class="disabled"}}
{{/if}}
</td> </td>
</tr> </tr>
{{:assign annuite_courante=$annuite}} {{:assign annuite_courante=$annuite}}
@ -216,13 +208,11 @@
<td class="actions"> <td class="actions">
{{if $enregistrer == 1}} {{if $enregistrer == 1}}
{{:linkbutton {{:linkbutton
label="Enregistrer" label="Créer l'écriture"
href="save_amort.html?amount=%d&account=%s&year=%s&trans_id=%d&immo_id=%s&project_id=%d&label=%s&solde=%d"|args:$annuite_courante:$ligne_immo.account_id:$current_year:$ligne_immo.trans_id:$_GET.immo_id:$project_id:$libelle:$solde_prec href="save_amort.html?amount=%d&account=%s&year=%s&trans_id=%d&immo_id=%s&project_id=%d&label=%s&solde=%d"|args:$annuite_courante:$ligne_immo.account_id:$current_year:$ligne_immo.trans_id:$_GET.immo_id:$project_id:$libelle:$solde_prec
shape="right" shape="right"
target="_dialog" target="_dialog"
}} }}
{{else}}
{{:linkbutton label="Enregistrer" href="" shape="lock" class="disabled"}}
{{/if}} {{/if}}
</td> </td>
</tr> </tr>
@ -259,7 +249,6 @@
order by trans.date, trans.label; order by trans.date, trans.label;
assign=autre_amort assign=autre_amort
}} }}
{{:assign linked="false"}}
{{#select {{#select
id_transaction, id_transaction,
id_related id_related
@ -267,7 +256,6 @@
where id_transaction = :id_amort or id_related = :id_amort; where id_transaction = :id_amort or id_related = :id_amort;
:id_amort=$t_id :id_amort=$t_id
}} }}
{{:assign var=autre_amort.linked value="true"}}
{{else}} {{else}}
{{:assign var="autres_amortissements." value=$autre_amort}} {{:assign var="autres_amortissements." value=$autre_amort}}
{{/select}} {{/select}}
@ -305,11 +293,7 @@
<td>{{$line.a_code}}</td> <td>{{$line.a_code}}</td>
<td>{{$line.a_label}}</td> <td>{{$line.a_label}}</td>
<td> <td>
{{if $linked != "true"}} {{:linkbutton label="Attacher" href="attach_amort.html?amort_id=%d&immo_id=%d"|args:$line.l_id:$ligne_immo.immo_id shape="plus"}}
{{:linkbutton label="Attacher" href="attach_amort.html?amort_id=%d&immo_id=%d"|args:$line.l_id:$ligne_immo.immo_id shape="plus"}}
{{else}}
{{:linkbutton label="Attacher" href="" shape="lock" class="disabled"}}
{{/if}}
</td> </td>
</tr> </tr>
{{/foreach}} {{/foreach}}

View File

@ -12,11 +12,9 @@
WHERE id = :line_id; WHERE id = :line_id;
:line_id = $_GET.immo_id|intval :line_id = $_GET.immo_id|intval
}} }}
{{:assign immo_id=$id_transaction}} {{:assign immo_trans_id=$id_transaction}}
{{else}} {{else}}
{{* TODO : améliorer le message d'erreur *}} {{:error message="Impossible de trouver l'écriture d'immobilisation de la ligne « %s »"|args:$_GET.immo_id}}
{{:assign message="Impossible de trouver l'écriture d'immobilisation de la ligne « %s »"|args:$_GET.immo_id}}
{{:error message=$message}}
{{/select}} {{/select}}
{{* chercher l'écriture d'amortissement *}} {{* chercher l'écriture d'amortissement *}}
@ -28,20 +26,18 @@
}} }}
{{:assign amort_id=$id_transaction}} {{:assign amort_id=$id_transaction}}
{{else}} {{else}}
{{* TODO : améliorer le message d'erreur *}} {{:error message="Impossible de trouver l'écriture d'amortissement de la ligne « %s »"|args:$_GET.amort_id}}
{{:assign message="Impossible de trouver l'écriture d'amortissement de la ligne « %s »"|args:$_GET.amort_id}}
{{:error message=$message}}
{{/select}} {{/select}}
{{* chercher les liaisons de l'écriture d'immobilisation *}} {{* chercher les liaisons de l'écriture d'immobilisation *}}
{{#select {{#select
CASE links.id_related = :immo_id CASE links.id_related = :immo_trans_id
WHEN true THEN links.id_transaction WHEN true THEN links.id_transaction
WHEN false THEN links.id_related WHEN false THEN links.id_related
END as linked_id END as linked_id
FROM acc_transactions_links as links FROM acc_transactions_links as links
WHERE id_transaction = :immo_id or id_related = :immo_id; WHERE id_transaction = :immo_trans_id or id_related = :immo_trans_id;
:immo_id = $immo_id :immo_trans_id = $immo_trans_id
}} }}
{{:assign var="linked_transactions." value=$linked_id}} {{:assign var="linked_transactions." value=$linked_id}}
{{/select}} {{/select}}
@ -52,10 +48,9 @@
{{* Enregistrer les liaisons *}} {{* Enregistrer les liaisons *}}
{{:api {{:api
method="POST" method="POST"
path="accounting/transaction/%s/transactions"|args:$immo_id path="accounting/transaction/%s/transactions"|args:$immo_trans_id
assign="result" assign="result"
assign_code="result_code" assign_code="result_code"
transactions=$linked_transactions transactions=$linked_transactions
}} }}
{{:redirect to="amortization.html?immo_id=%s&ok=1&msg=attach"|args:$_GET.immo_id}} {{:redirect to="amortization.html?immo_id=%s&ok=1&msg=attach"|args:$_GET.immo_id}}

View File

@ -5,27 +5,54 @@
une écriture d'immobilisation une écriture d'immobilisation
*}} *}}
{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} {{* chercher l'écriture d'immobilisation *}}
{{#select
id_transaction
FROM acc_transactions_lines
WHERE id = :line_id;
:line_id = $_GET.immo_id|intval
}}
{{:assign immo_trans_id=$id_transaction}}
{{else}} {{else}}
{{:assign message="Pas d'info concernant l'immobilisation %s"|args:$_GET.immo_id}} {{:error message="Impossible de trouver l'écriture d'immobilisation de la ligne « %s »"|args:$_GET.immo_id}}
{{:error message=$message}} {{/select}}
{{/load}}
{{:assign var="liste_amort" val=$info_immo.amort}} {{* chercher l'écriture d'amortissement *}}
{{#select
id_transaction
FROM acc_transactions_lines
WHERE id = :line_id;
:line_id = $_GET.amort_id|intval
}}
{{:assign amort_id=$id_transaction}}
{{else}}
{{:error message="Impossible de trouver l'écriture d'amortissement de la ligne « %s »"|args:$_GET.amort_id}}
{{/select}}
{{#foreach from=$info_immo.amort item="amort_id"}} {{*
{{if $amort_id != $_GET.amort_id}} chercher les liaisons de l'écriture d'immobilisation
{{:assign var="t_amort." value=$amort_id}} et supprimer la liaison avec l'écriture d'amortissement
*}}
{{#select
CASE links.id_related = :immo_trans_id
WHEN true THEN links.id_transaction
WHEN false THEN links.id_related
END as linked_id
FROM acc_transactions_links as links
WHERE id_transaction = :immo_trans_id or id_related = :immo_trans_id;
:immo_trans_id = $immo_trans_id
}}
{{if $linked_id != $amort_id}}
{{:assign var="linked_transactions." value=$linked_id}}
{{/if}} {{/if}}
{{/foreach}} {{/select}}
{{* Enregistrer les infos *}} {{* Enregistrer les liaisons *}}
{{:save {{:api
key=$info_immo.key method="POST"
validate_schema="schema.json" path="accounting/transaction/%s/transactions"|args:$immo_trans_id
type="immo" assign="result"
line=$info_immo.line assign_code="result_code"
duration=$info_immo.duration transactions=$linked_transactions
amort=$t_amort
}} }}
{{:redirect to="amortization.html?immo_id=%s&ok=1&msg=detach"|args:$_GET.immo_id}} {{:redirect to="amortization.html?immo_id=%s&ok=1&msg=detach"|args:$_GET.immo_id}}

View File

@ -15,6 +15,20 @@
<p class="block error">Échec enregistrement immobilisation</p> <p class="block error">Échec enregistrement immobilisation</p>
{{/if}} {{/if}}
{{* supprimer les documents sans écriture associée *}}
{{#load type="immo"}}
{{#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
}}
{{else}}
{{:delete key=$key}}
{{/select}}
{{/load}}
{{* lister les immobilisations *}} {{* lister les immobilisations *}}
<section class="immobilisation"> <section class="immobilisation">
<h2 class="ruler">Liste des immobilisations</h2> <h2 class="ruler">Liste des immobilisations</h2>
@ -55,7 +69,7 @@
INNER JOIN acc_years AS years ON trans.id_year = years.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 LEFT JOIN acc_projects AS project ON line.id_project = project.id
WHERE WHERE
(account.code LIKE '21%' OR account.code LIKE '22%') (account.code LIKE '21%' OR account.code LIKE '22%' OR account.code LIKE '27%')
ORDER BY trans.date DESC ORDER BY trans.date DESC
}} }}
{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}} {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}}
@ -67,7 +81,7 @@
{{/load}} {{/load}}
<tr> <tr>
<td class="num"><a href={{$trans_url}}>#{{$trans_id}}</a></td> <td class="num"><a href={{$trans_url}}>#{{$trans_id}}</a></td>
<td>{{$trans_date|date_short}}</td> <td>{{$trans_date|date_short}}</td>
<td>{{$trans_label}}</td> <td>{{$trans_label}}</td>
<td class="money">{{"%f"|math:$debit|money}}</td> <td class="money">{{"%f"|math:$debit|money}}</td>
@ -78,7 +92,7 @@
<td class="actions"> <td class="actions">
{{if $duration == null}} {{if $duration == null}}
{{:linkbutton {{:linkbutton
label="Ajouter durée" label="Ajouter infos"
href="add_duration.html?immo_id=%s"|args:$immo_id href="add_duration.html?immo_id=%s"|args:$immo_id
shape="help" shape="help"
target="_dialog" target="_dialog"

View File

@ -18,8 +18,7 @@
}} }}
{{if $selected_year == null}} {{if $selected_year == null}}
{{:assign message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}} {{:error message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}}
{{:error message=$message}}
{{/if}} {{/if}}
{{* déterminer le numéro des comptes au cas où la clé serait un identifiant *}} {{* déterminer le numéro des comptes au cas où la clé serait un identifiant *}}

View File

@ -13,7 +13,12 @@
"duration" : { "duration" : {
"description": "durée de l'amortissement en années", "description": "durée de l'amortissement en années",
"type": "integer" "type": "integer"
},
"date" : {
"description" : "date de mise en service de l'immobilisation",
"type" : ["string", "null"],
"format" : "date"
} }
}, },
"required": ["type", "line", "duration"] "required": ["type", "line", "duration", "date"]
} }