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 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,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

@ -29,6 +29,7 @@
{{:error 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}}
{{/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,
@ -37,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
@ -49,7 +49,7 @@
: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}}
{{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}} {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}}
{{/select}} {{/select}}
@ -97,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}}
@ -113,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>

View File

@ -55,7 +55,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}}

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"]
} }