148 lines
4.8 KiB
HTML
148 lines
4.8 KiB
HTML
{{* -*- brindille -*- *}}
|
|
|
|
{{*
|
|
@param immo_id
|
|
@param op = new ou modif
|
|
@param type_immo : managed, amortized, archived, other
|
|
*}}
|
|
|
|
{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}
|
|
{{/load}}
|
|
|
|
{{* Traiter l'envoi du formulaire *}}
|
|
{{#form on="save"}}
|
|
{{if $_POST.classify == null}}
|
|
{{:error message="Vous devez choisir une action"}}
|
|
{{/if}}
|
|
|
|
{{* chercher la date d'acquisition de l'immobilisation *}}
|
|
{{#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 = $_GET.immo_id
|
|
assign=ligne_immo
|
|
}}
|
|
{{/select}}
|
|
|
|
{{if $_POST.classify == "ignored"}}
|
|
{{* ne pas amortir *}}
|
|
{{:assign duration=0}}
|
|
{{:assign date_debut=$ligne_immo.date_achat|parse_date}}
|
|
{{:assign status="ignored"}}
|
|
{{else}}
|
|
{{* 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}}
|
|
{{if $_POST.classify == "amortized"}}
|
|
{{:assign duration=0}}
|
|
{{:assign status="amortized"}}
|
|
{{else}}
|
|
{{:assign duration=$_POST.duree|intval}}
|
|
{{if $duration <= 0}}
|
|
{{:error message="Erreur : la durée d'amortissement doit être strictement positive"}}
|
|
{{/if}}
|
|
{{:assign status="managed"}}
|
|
{{/if}}
|
|
{{/if}}
|
|
|
|
{{* enregistrer les infos de l'immobilisation *}}
|
|
{{if $_GET.op == "new"}}
|
|
{{:assign key=""|uuid}}
|
|
{{else}}
|
|
{{:assign key=$info_immo.key}}
|
|
{{/if}}
|
|
{{:save
|
|
key=$key
|
|
validate_schema="schema.json"
|
|
type="immo"
|
|
line=$_GET.immo_id|intval
|
|
duration=$duration
|
|
date=$date_debut
|
|
status=$status
|
|
}}
|
|
|
|
{{if $_POST.classify == "managed" || $_POST.classify == "amortized"}}
|
|
{{:assign type_immo=$_POST.classify}}
|
|
{{else}}
|
|
{{:assign type_immo=$_GET.type_immo}}
|
|
{{/if}}
|
|
{{:redirect force="index.html?ok=1&msg=infos&type_immo=%s"|args:$type_immo}}
|
|
{{else}}
|
|
{{:form_errors}}
|
|
{{/form}}
|
|
|
|
{{: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}}
|
|
|
|
{{if $info_immo == null}}
|
|
{{:assign default=$_GET.type_immo}}
|
|
{{else}}
|
|
{{:assign default=$info_immo.status}}
|
|
{{/if}}
|
|
|
|
{{if $_GET.type_immo == "managed" || $_GET.type_immo == "amortized"}}
|
|
{{:assign disabled=0}}
|
|
{{else}}
|
|
{{:assign disabled=1}}
|
|
{{/if}}
|
|
|
|
{{*
|
|
- classer l'immobilisation
|
|
- renseigner ou modifier la date de mise en service et la durée d'amortissement
|
|
*}}
|
|
<form method="post" action="">
|
|
<fieldset id="infos_immo">
|
|
<legend></legend>
|
|
<dl>
|
|
<dt><label>Faites un choix</label> <b>(obligatoire)</b></dt>
|
|
{{:input type="radio" name="classify" value="managed" label="Amortir" help="Amortir cette immobilisation" default=$default onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}}
|
|
{{:input type="radio" name="classify" value="amortized" label="Amortissement terminé" help="Cette immobilisation sera classée parmi les immobilisations amorties" default=$default onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}}
|
|
{{:input type="radio" name="classify" value="ignored" label="Ignorer l'écriture" help="Cette écriture n'apparaitra plus dans la liste des immobilisations" default=$default onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}}
|
|
|
|
{{if $info_immo != null}}
|
|
{{:assign date_defaut=$info_immo.date}}
|
|
{{:assign duree_defaut=$info_immo.duration}}
|
|
{{else}}
|
|
{{:assign duree_defaut=null}}
|
|
{{/if}}
|
|
<div id="div_inputs">
|
|
{{: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"}}
|
|
</div>
|
|
</dl>
|
|
</fieldset>
|
|
|
|
<p class="submit">
|
|
{{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}}
|
|
</p>
|
|
|
|
</form>
|
|
|
|
{{* activer/désactiver les champs de saisie *}}
|
|
<script type="text/javascript">
|
|
function toggleInputs(idiv, idrb1, idrb2) {
|
|
const rb1 = document.getElementById(idrb1);
|
|
const rb2 = document.getElementById(idrb2);
|
|
const fs = document.getElementById(idiv);
|
|
for (let field of fs.querySelectorAll("input")) {
|
|
if (! rb1.checked) {
|
|
field.setAttribute("disabled","disabled");
|
|
}
|
|
else {
|
|
field.removeAttribute("disabled");
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
{{:admin_footer}}
|