différentiation date d'acquisition et date mise en service

This commit is contained in:
Jean-Christophe Engel 2024-12-17 15:34:46 +01:00
parent 10f2128b1b
commit b17a14526e
7 changed files with 54 additions and 26 deletions

View File

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

View File

@ -1,7 +1,6 @@
{{* -*- brindille -*- *}}
{{:admin_header title="Ajout immobilisation" current="module_amortissement"}}
{{* barre de navigation *}}
{{if ! $dialog}}
{{:include file="_nav.html" current="index"}}
@ -9,18 +8,24 @@
{{* Traiter l'envoi du formulaire *}}
{{#form on="add"}}
{{*:debug add::POST=$_POST*}}
{{* vérifier que la date est située dans un exercice ouvert *}}
{{:include
file="_check_date.html"
date=$_POST.date
date=$_POST.date_achat
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}}
{{:assign message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}}
{{:error message=$message}}
{{:error message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}}
{{/if}}
{{* déterminer le numéro des comptes au cas où la clé serait un identifiant *}}
@ -63,7 +68,7 @@
assign="result"
id_year=$selected_year
type="revenue"
date=$_POST.date
date=$_POST.date_achat
label=$_POST.designation
amount=$_POST.montant
debit=$debit_account|keys|key:0
@ -71,7 +76,6 @@
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 *}}
{{:assign var="immo_id" value=$result.lines.1.id}}
{{#load where="$$.line = :line_id" :line_id=$immo_id}}
@ -80,12 +84,14 @@
{{:assign key=""|uuid}}
{{/load}}
{{* enregistrer les infos de l'immobilisation *}}
{{:save
key=$key
validate_schema="schema.json"
type="immo"
line=$immo_id
duration=$_POST.duree|intval
date=$date_debut
}}
{{:redirect force="index.html?ok=1&msg=immobilisation"}}
@ -105,7 +111,8 @@
<fieldset class="ajout_immo">
<legend>Ajouter une immobilisation</legend>
<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="money" name="montant" label="Montant" required=true}}
{{:input type="number" name="duree" label="Durée d'amortissement" required=true default=1}}

View File

@ -1,36 +1,54 @@
{{* -*- 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 *}}
{{if ! $dialog}}
{{:include file="_nav.html" current="index"}}
{{/if}}
{{* renseigner la durée d'amortissement *}}
<h2 class="ruler">Durée d'amortissement</h2>
{{* Traiter l'envoi du formulaire *}}
{{#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}}
{{#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}}
{{* enregistrer les infos de l'immobilisation *}}
{{:save
key=$key
validate_schema="schema.json"
type="immo"
line=$immo_id
duration=$_POST.duree|intval
date=$date_debut
}}
{{:redirect force="index.html?ok=1&msg=durée"}}
{{/form}}
{{* renseigner la date de mise en service et durée d'amortissement *}}
<form method="post" action="">
<fieldset class="ajout_duree">
<legend>Renseigner durée amortissement</legend>
<legend>Renseigner informations amortissement</legend>
<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}}
</dl>
</fieldset>
@ -41,4 +59,5 @@
</form>
{{:form_errors}}
{{:admin_footer}}

View File

@ -29,6 +29,7 @@
{{: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|date_short}}
{{#select
line.id as immo_id,
@ -37,7 +38,6 @@
line.debit as montant,
trans.id as trans_id,
trans.label as label,
trans.date as date_achat,
y.id as year_id,
y.end_date as date_amort,
project.label as project_label
@ -49,7 +49,7 @@
: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_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}}
{{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}}
{{/select}}
@ -97,9 +97,8 @@
{{:assign annuite="%f/%f"|math:$montant:$duree}}
{{* première annuité *}}
{{:assign date_achat=$ligne_immo.date_achat|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_courante=$annuite_1}}
@ -113,7 +112,7 @@
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>
{{$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>
<table class="list">
<thead>

View File

@ -55,7 +55,7 @@
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
(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
}}
{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}}
@ -67,7 +67,7 @@
{{/load}}
<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_label}}</td>
<td class="money">{{"%f"|math:$debit|money}}</td>

View File

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

View File

@ -13,7 +13,12 @@
"duration" : {
"description": "durée de l'amortissement en années",
"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"]
}