165 lines
4.8 KiB
HTML
165 lines
4.8 KiB
HTML
{{* -*- brindille -*- *}}
|
|
|
|
{{:admin_header title="Ajout amortissement" current="module_amortissement"}}
|
|
|
|
{{* barre de navigation *}}
|
|
{{if ! $dialog}}
|
|
{{:include file="_nav.html" current="amortization"}}
|
|
{{/if}}
|
|
|
|
{{* Traiter l'envoi du formulaire *}}
|
|
{{#form on="save"}}
|
|
|
|
{{* vérifier que la date est située dans un exercice ouvert *}}
|
|
{{:include
|
|
file="_check_date.html"
|
|
date=$_POST.date
|
|
keep="open_years, selected_year, selected_chart"
|
|
}}
|
|
|
|
{{if $selected_year == null}}
|
|
{{: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 *}}
|
|
{{:include
|
|
file="_get_codes.html"
|
|
account=$_POST.debit_account
|
|
keep="account_code"
|
|
}}
|
|
{{:assign debit_account=$account_code}}
|
|
{{:include
|
|
file="_get_codes.html"
|
|
account=$_POST.credit_account
|
|
keep="account_code"
|
|
}}
|
|
{{:assign credit_account=$account_code}}
|
|
|
|
{{* vérifier :
|
|
- que le compte d'amortissement débute par un préfixe correct (280, 281, ...)
|
|
- est présent dans le PC de l'exercice correspondant à la date
|
|
*}}
|
|
{{:read file="./defaut.json" assign="config_json"}}
|
|
{{:assign config_defaut=$config_json|json_decode}}
|
|
{{:assign var="prefix_array" value=$config_defaut.prefixes|keys}}
|
|
{{#foreach from=$prefix_array item="code"}}
|
|
{{:assign code_s=$code|strval}}
|
|
{{:assign ch1=$code_s|substr:0:1}}
|
|
{{:assign reste=$code_s|substr:1}}
|
|
{{:assign code=$ch1|cat:"8"|cat:$reste}}
|
|
{{:assign var="amort_array." value=$code|intval}}
|
|
{{/foreach}}
|
|
|
|
{{:include
|
|
file="_check_account.html"
|
|
account=$credit_account
|
|
chart_id=$selected_chart
|
|
prefix_array=$amort_array
|
|
keep="account_ok"
|
|
}}
|
|
|
|
{{if $account_ok == null}}
|
|
{{:assign compte=$credit_account|implode:""}}
|
|
{{:redirect url="add_account.html?account=%s&chart=%s&immo_id=%s"|args:$compte:$selected_chart:$_GET.immo_id}}
|
|
{{/if}}
|
|
|
|
{{* vérifier que le montant ne dépasse pas le solde restant *}}
|
|
{{if $_POST.montant|trim|money_int > $_GET.solde|intval}}
|
|
{{:assign solde=$_GET.solde|money_raw}}
|
|
{{:error message="Le montant indiqué « %s » dépasse le solde à amortir « %s »"|args:$_POST.montant:$solde}}
|
|
{{/if}}
|
|
|
|
{{* enregistrer l'écriture *}}
|
|
{{:assign var="linked_transactions." value=$_GET.trans_id}}
|
|
|
|
{{:assign
|
|
var="lines."
|
|
debit=$_POST.montant
|
|
account=$debit_account|keys|key:0
|
|
id_project=$_GET.project_id
|
|
label=$_POST.designation
|
|
}}
|
|
{{:assign
|
|
var="lines."
|
|
credit=$_POST.montant
|
|
account=$credit_account|keys|key:0
|
|
id_project=$_GET.project_id
|
|
label=$_POST.designation
|
|
}}
|
|
|
|
{{:api
|
|
method="POST"
|
|
path="accounting/transaction"
|
|
assign="result"
|
|
assign_code="result_code"
|
|
id_year=$selected_year
|
|
type="advanced"
|
|
date=$_POST.date
|
|
label=$_POST.designation
|
|
lines=$lines
|
|
linked_transactions=$_GET.trans_id|intval
|
|
}}
|
|
|
|
{{:redirect force="amortization.html?immo_id=%s&ok=1&msg=amortissement"|args:$_GET.immo_id}}
|
|
{{/form}}
|
|
|
|
{{:form_errors}}
|
|
|
|
{{* Préparer les infos pour le formulaire *}}
|
|
{{:assign var="debit_account.6811" value="6811 — Dot. aux amortissements des immobilisations"}}
|
|
|
|
{{*
|
|
déterminer le compte d'amortissement en fonction du compte
|
|
d'immobilisation => ajouter un 8 après le 2 de tête
|
|
*}}
|
|
{{#select code, label from acc_accounts where id = :id; :id=$_GET.account assign=amort_account}}{{/select}}
|
|
{{:assign c1=$amort_account.code|substr:0:1}}
|
|
{{:assign reste=$amort_account.code|substr:1}}
|
|
{{:assign amort_code=$c1|cat:8|cat:$reste}}
|
|
{{:assign var="credit_account.%s"|args:$amort_code value="%s — Amortissements "|args:$amort_code|cat:$amort_account.label}}
|
|
|
|
{{#select
|
|
id,
|
|
label,
|
|
end_date as date_amort
|
|
from acc_years where id=:id;
|
|
:id=$_GET.year assign=year
|
|
}}
|
|
{{/select}}
|
|
|
|
{{#years status=false}}
|
|
{{:assign var="open_years.%d"|args:$id value=$label}}
|
|
{{/years}}
|
|
|
|
<form method="post" action="">
|
|
<fieldset class="ajout_amort">
|
|
<legend>Ajouter une écriture d'amortissement</legend>
|
|
<dl>
|
|
{{:input type="date" name="date" label="Date" required=true default=$year.date_amort|date_short}}
|
|
{{:input type="text" name="designation" label="Désignation" required=true default=$_GET.label}}
|
|
{{:input type="money" name="montant" label="Montant" required=true default=$_GET.amount}}
|
|
{{:input
|
|
type="list"
|
|
name="debit_account"
|
|
label="Compte de débit"
|
|
required=true
|
|
target="!acc/charts/accounts/selector.php?&key=code&year=%d"|args:$year.id
|
|
default=$debit_account
|
|
}}
|
|
{{:input
|
|
type="list"
|
|
name="credit_account"
|
|
label="Compte d'amortissement (280xx ou 281xx)"
|
|
required=true
|
|
target="!acc/charts/accounts/selector.php?key=code&year=%d"|args:$year.id
|
|
default=$credit_account
|
|
}}
|
|
</dl>
|
|
</fieldset>
|
|
|
|
<p class="submit">
|
|
{{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}}
|
|
</p>
|
|
</form>
|
|
{{:admin_footer}}
|