modify_info : ne pas permettre de rendre l'immo non amortissable

This commit is contained in:
Jean-Christophe Engel 2026-06-11 10:08:23 +02:00
parent 65112720ba
commit 6befac8578

View file

@ -2,13 +2,6 @@
{{* {{*
@param immo_doc_id @param immo_doc_id
TODO ? :
- séparer les cas des immo simples et complexes (BOI)
par exemple pour la durée d'amort par défaut {{:input ...}}
- prise en charge immo => param = immo_line_id
- modif param immo => param = immo_doc_id
- DONE possibilité supprimer liaison écriture avoir
*}} *}}
{{:include file="_get_immo_data.html" immo_doc_id=$_GET.immo_doc_id|intval keep="info_immo, ligne_immo, message"}} {{:include file="_get_immo_data.html" immo_doc_id=$_GET.immo_doc_id|intval keep="info_immo, ligne_immo, message"}}
@ -39,77 +32,67 @@
{{* traiter la saisie *}} {{* traiter la saisie *}}
{{#form on="save"}} {{#form on="save"}}
{{if ! $_POST.amortir}} {{if $_POST.date_achat|parse_date > $ligne_immo.date_achat}}
{{* ne pas amortir *}} {{:assign da=$ligne_immo.date_achat|date_short}}
{{:assign duration=0}} {{:error message="Erreur : la date d'achat (%s) ne peut être postérieure à la date de l'écriture d'immobilisation (%s)"|args:$_POST.date_achat:$da}}
{{:assign libelle=null}}
{{:assign montant=null}}
{{:assign date_achat=null}}
{{:assign date_mes=null}}
{{:assign status="ignored"}}
{{else}}
{{if $_POST.date_achat|parse_date > $ligne_immo.date_achat}}
{{:assign da=$ligne_immo.date_achat|date_short}}
{{:error message="Erreur : la date d'achat (%s) ne peut être postérieure à la date de l'écriture d'immobilisation (%s)"|args:$_POST.date_achat:$da}}
{{/if}}
{{if $_POST.date_achat == null || $_POST.date_achat|parse_date == $info_immo.date_achat}}
{{:assign date_achat=$info_immo.date_achat}}
{{elseif $_POST.date_achat|parse_date == $ligne_immo.date_achat}}
{{:assign date_achat=null}}
{{else}}
{{:assign date_achat=$_POST.date_achat|parse_date}}
{{/if}}
{{* TODO : simplifier ? *}}
{{if $_POST.date_mes == null || $_POST.date_mes|parse_date == $info_immo.date_mes}}
{{:assign date_mes=$info_immo.date_mes}}
{{elseif $_POST.date_mes|parse_date == $info_immo.date_achat}}
{{:assign date_mes=null}}
{{elseif $_POST.date_mes|parse_date == $ligne_immo.date_achat}}
{{if $info_immo.date_achat == null}}
{{:assign date_mes=null}}
{{else}}
{{:assign date_mes=$ligne_immo.date_achat}}
{{/if}}
{{else}}
{{:assign date_mes=$_POST.date_mes|parse_date}}
{{:assign date_achat_comp=$ligne_immo.date_achat}}
{{if $date_achat != null}}
{{:assign date_achat_comp=$date_achat}}
{{/if}}
{{if $date_mes < $date_achat_comp}}
{{:assign da=$date_achat_comp|date_short}}
{{:error message="Erreur : la date de mise en service (%s) ne peut être antérieure à la date d'acquisition (%s)"|args:$_POST.date_mes:$da}}
{{/if}}
{{/if}}
{{:assign duration=$_POST.duree|intval}}
{{if $duration <= 0}}
{{:error message="Erreur : la durée d'amortissement doit être strictement positive"}}
{{/if}}
{{if $_POST.libelle != $ligne_immo.line_label && $_POST.libelle != $ligne_immo.trans_label}}
{{:assign libelle=$_POST.libelle}}
{{else}}
{{:assign libelle=null}}
{{/if}}
{{:assign montant=null}}
{{if $_POST.montant == null || $_POST.montant|money_int == 0 || $_POST.montant|money_int == $info_immo.amount}}
{{:assign montant=$info_immo.amount}}
{{else}}
{{:assign montant=$_POST.montant|money_int}}
{{if $montant < 0 || $montant > $max_disponible}}
{{:assign montant_aff="%f"|math:$montant|money_currency:false}}
{{:assign max_aff="%f"|math:$max_disponible|money_currency:false}}
{{:error message="Le montant (%s) doit être positif et ne peut être supérieur à %s"|args:$montant_aff:$max_aff}}
{{/if}}
{{/if}}
{{:assign status="managed"}}
{{/if}} {{/if}}
{{if $_POST.date_achat == null || $_POST.date_achat|parse_date == $info_immo.date_achat}}
{{:assign date_achat=$info_immo.date_achat}}
{{elseif $_POST.date_achat|parse_date == $ligne_immo.date_achat}}
{{:assign date_achat=null}}
{{else}}
{{:assign date_achat=$_POST.date_achat|parse_date}}
{{/if}}
{{* TODO : simplifier ? *}}
{{if $_POST.date_mes == null || $_POST.date_mes|parse_date == $info_immo.date_mes}}
{{:assign date_mes=$info_immo.date_mes}}
{{elseif $_POST.date_mes|parse_date == $info_immo.date_achat}}
{{:assign date_mes=null}}
{{elseif $_POST.date_mes|parse_date == $ligne_immo.date_achat}}
{{if $info_immo.date_achat == null}}
{{:assign date_mes=null}}
{{else}}
{{:assign date_mes=$ligne_immo.date_achat}}
{{/if}}
{{else}}
{{:assign date_mes=$_POST.date_mes|parse_date}}
{{:assign date_achat_comp=$ligne_immo.date_achat}}
{{if $date_achat != null}}
{{:assign date_achat_comp=$date_achat}}
{{/if}}
{{if $date_mes < $date_achat_comp}}
{{:assign da=$date_achat_comp|date_short}}
{{:error message="Erreur : la date de mise en service (%s) ne peut être antérieure à la date d'acquisition (%s)"|args:$_POST.date_mes:$da}}
{{/if}}
{{/if}}
{{:assign duration=$_POST.duree|intval}}
{{if $duration <= 0}}
{{:error message="Erreur : la durée d'amortissement doit être strictement positive"}}
{{/if}}
{{if $_POST.libelle != $ligne_immo.line_label && $_POST.libelle != $ligne_immo.trans_label}}
{{:assign libelle=$_POST.libelle}}
{{else}}
{{:assign libelle=null}}
{{/if}}
{{:assign montant=null}}
{{if $_POST.montant == null || $_POST.montant|money_int == 0 || $_POST.montant|money_int == $info_immo.amount}}
{{:assign montant=$info_immo.amount}}
{{else}}
{{:assign montant=$_POST.montant|money_int}}
{{if $montant < 0 || $montant > $max_disponible}}
{{:assign montant_aff="%f"|math:$montant|money_currency:false}}
{{:assign max_aff="%f"|math:$max_disponible|money_currency:false}}
{{:error message="Le montant (%s) doit être positif et ne peut être supérieur à %s"|args:$montant_aff:$max_aff}}
{{/if}}
{{/if}}
{{:assign status="managed"}}
{{* écritures de crédit *}} {{* écritures de crédit *}}
{{#foreach from=$linked_immos item="line"}} {{#foreach from=$linked_immos item="line"}}
{{if ! $_POST.credit_id|has:$line.trans_id}} {{if ! $_POST.credit_id|has:$line.trans_id}}
@ -163,12 +146,8 @@
assign_new_id="new_id" assign_new_id="new_id"
}} }}
{{if $_POST.amortir}} {{:assign type_immo="managed"}}
{{:assign type_immo="managed"}} {{:redirect force="amortization.html?immo_doc_id=%s&type_immo=%s&ok=1&msg=modif"|args:$_GET.immo_doc_id:$type_immo}}
{{else}}
{{:assign type_immo="other"}}
{{/if}}
{{:redirect force="details_immo.html?immo_doc_id=%s&type_immo=%s&ok=1&msg=infos"|args:$_GET.immo_doc_id:$type_immo}}
{{/form}} {{/form}}
@ -209,33 +188,14 @@
<fieldset> <fieldset>
<legend>Paramètres de l'amortissement</legend> <legend>Paramètres de l'amortissement</legend>
<dl> <dl>
{{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir cette immobilisation sur une ou plusieurs années" checked="checked" help="Dé-cocher pour ne pas amortir"}} {{:input type="number" name="duree" label="Durée d'amortissement" min=1 default=$info_immo.duration}}
<div class="masquable"> {{:input type="text" name="libelle" label="Libellé" default=$info_immo.label}}
{{:input type="number" name="duree" label="Durée d'amortissement" min=1 default=$info_immo.duration}} {{if $info_immo.amount != null}}
{{:input type="text" name="libelle" label="Libellé" default=$info_immo.label}} {{:assign max_aff="%f"|math:$max_disponible|money_currency:false}}
{{if $info_immo.amount != null}} {{:input type="money" name="montant" label="Montant de l'immobilisation" default=$montant_immo help="Montant maximum : %s"|args:$max_aff}}
{{:assign max_aff="%f"|math:$max_disponible|money_currency:false}} {{/if}}
{{:input type="money" name="montant" label="Montant de l'immobilisation" default=$montant_immo help="Montant maximum : %s"|args:$max_aff}} {{:input type="date" name="date_achat" label="Date d'acquisition" default=$info_immo.date_achat}}
{{/if}} {{:input type="date" name="date_mes" label="Date de mise en service" default=$info_immo.date_mes}}
{{:input type="date" name="date_achat" label="Date d'acquisition" default=$info_immo.date_achat}}
{{:input type="date" name="date_mes" label="Date de mise en service" default=$info_immo.date_mes}}
{{*
{{if $linked_immos != null}}
<dt><label>Écritures d'avoir liées à l'immobilisation</label></dt>
<dd>
<span class="input-list avoirs">
<label for="credit_id">Écritures&nbsp;:</label>
{{#foreach from=$linked_immos item="line"}}
<span class="label">
<input type="hidden" name="credit_id[]" value="{{$line.trans_id}}">{{$line.trans_id}}
<button data-icon="✘" type="button" class=" icn-btn" title="Cliquer pour supprimer la liaison"></button>
</span>
{{/foreach}}
</span>
</dd>
{{/if}}
*}}
</div>
</dl> </dl>
</fieldset> </fieldset>
<p class="submit"> <p class="submit">
@ -244,17 +204,3 @@
</form> </form>
{{:admin_footer}} {{:admin_footer}}
<script type="text/javascript" src="scripts.js"></script>
<script type="text/javascript">
function changeVisibility(evt, idcheck = 'f_amortir_1', hiddenclass = 'masquable')
{
toggleVisibility(idcheck, document.querySelectorAll('.' + hiddenclass));
}
(function () {
document.getElementById('f_amortir_1').onclick = changeVisibility;
})();
</script>