{{* -*- 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}}
		{{:assign message="La date choisie n'est dans aucun exercice ouvert !!\nExercices ouverts : %s"|args:$open_years}}
		{{:error message=$message}}
	{{/if}}

	{{* vérifier :
		- que le compte d'amortissement débute par 280 ou 281
		- est présent dans le PC de l'exercice correspondant à la date
	*}}
	{{:assign var="prefix_array." value="'280%'"}}
	{{:assign var="prefix_array." value="'281%'"}}
	{{:include
		file="_check_account.html"
		account=$_POST.credit_account
		chart_id=$selected_chart
		prefix_array=$prefix_array
		keep="account_ok"
	}}

	{{if $account_ok == null}}
		{{:assign compte=$_POST.credit_account|implode:""}}
		{{:error message="Le compte « %s » n'est pas un compte d'immobilisation ou n'est pas dans le plan comptable de l'exercice choisi"|args:$compte}}
	{{/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=$_POST.debit_account|keys|key:0
		id_project=$_GET.project_id
		label=$_POST.designation
	}}
	{{:assign
		var="lines."
		credit=$_POST.montant
		account=$_POST.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 closed=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}}