{{* -*- brindille -*- *}} {{* Associer les différentes écritures à une immo créée et sortie du bilan avant la mise en service du module @param immo_doc_id : id du doc associé à l'immobilisation *}} {{* données de l'immobilisation *}} {{:include file="_get_immo_data.html" immo_doc_id=$_GET.immo_doc_id keep="info_immo, ligne_immo, message"}} {{if $message != null}} {{:error message=$message}} {{/if}} {{:assign label_immo=$info_immo.label|or:$ligne_immo.trans_label}} {{if $label_immo|strpos:$ligne_immo.line_label === false}} {{:assign label_immo=$label_immo|cat:" — "|cat:$ligne_immo.line_label}} {{/if}} {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.trans_id}} {{:assign date_immo=$info_immo.date_mes|or:$info_immo.date_achat|or:$ligne_immo.date_achat}} {{:assign montant_immo=$info_immo.amount|or:$ligne_immo.amount}} {{* déduire le montant des écritures liées à l'immo courante au crédit du même compte *}} {{:include file="_get_credit_lines.html" immo_doc_id=$_GET.immo_doc_id keep="linked_immos, total_credits"}} {{:assign solde="%d-%d"|math:$montant_immo:$total_credits}} {{* lister les amortissements liés à l'immobilisation *}} {{:include file="./_get_amort_lines.html" immo_doc_id=$_GET.immo_doc_id keep="linked_amort, total_amort"}} {{* chercher une écriture de cession associée *}} {{#load type="cession_link" where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id = $_GET.immo_doc_id|intval }} {{if $amount == null || $amount == 0}} {{#select credit FROM acc_transactions_lines WHERE id = :cession_line_id; :cession_line_id = $cession_line_id }} {{:assign montant_cession=$credit}} {{/select}} {{else}} {{:assign montant_cession=$amount}} {{/if}} {{:assign cession_doc_id=$id}} {{/load}} {{* chercher une écriture de sortie de bilan associée *}} {{#load type="exit_link" where="$$.immo_doc_id = :immo_doc_id" :immo_doc_id=$info_immo.id assign="exit_info"}} {{/load}} {{if $exit_info != null}} {{#select trans.id as trans_id, trans.label as trans_label, trans.date as date, line.id as line_id, line.label as line_label, line.credit as amount, acc.id as account_id, acc.code as account_code, acc.label as account_label FROM acc_transactions AS trans INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id WHERE line.id = :exit_line_id; :exit_line_id = $exit_info.exit_line_id assign="exit_line" }} {{/select}} {{* lignes de l'écriture de sortie *}} {{#select line.label as line_label, line.credit, line.debit, acc.id as account_id, acc.code as account_code, acc.label as account_label FROM acc_transactions AS trans INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id WHERE trans.id = :exit_trans_id; :exit_trans_id = $exit_line.trans_id assign="trans" }} {{:assign var="exit_trans.%s"|args:$account_code value=$trans}} {{/select}} {{:assign acc_codes=$exit_trans|keys}} {{#foreach from=$linked_amort}} {{if $account_code|in:$acc_codes}} {{:assign var="exit_amort" from="exit_trans.%s.debit"|args:$account_code}} {{:break}} {{/if}} {{/foreach}} {{if $exit_amort != $total_amort}} {{:assign exit_amort_display=$exit_amort|money_currency:false|replace:" ":" "}} {{:assign total_amort_display=$total_amort|money_currency:false|replace:" ":" "}} {{:assign erreur=1}} {{:assign message="Le montant des amortissement dans l'écriture de sortie (%s) est différent du total des amortissements associés à l'immobilisation (%s)."|args:$exit_amort_display:$total_amort_display}} {{/if}} {{if $exit_line.amount != $solde}} {{:assign erreur=2}} {{:assign exit_line_amount=$exit_line.amount|money_currency:false|replace:" ":" "}} {{:assign solde_immo=$solde|money_currency:false|replace:" ":" "}} {{:assign message="Le montant de de l'immobilisation dans l'écriture de sortie (%s) est différent du montant à amortir (%s)."|args:$exit_line_amount:$solde_immo}} {{/if}} {{/if}} {{* chercher des écritures au crédit du compte de l'immo sans doc associé - line.credit < ligne_immo.amount => peut-être un avoir - line.credit = ligne_immo.amount - avoirs => écriture de sortie du bilan *}} {{#select trans.id as trans_id, trans.label as trans_label, trans.date as date, trans.id_year as year, line.id as credit_line_id, line.label as line_label, line.credit as amount, acc.id as account_id, acc.code as account_code, acc.label as account_label FROM acc_transactions AS trans INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id LEFT JOIN module_data_amortization AS mda ON json_extract(mda.document, '$.amort_line_id') = line.id WHERE acc.code = :acc_code AND line.credit > 0 AND credit_line_id NOT IN ( SELECT json_extract(credit_link.document, '$.credit_line_id') AS line_id FROM !table as credit_link WHERE json_extract(credit_link.document, '$.type') == "credit_link" UNION SELECT json_extract(exit_link.document, '$.exit_line_id') AS line_id FROM !table as exit_link WHERE json_extract(exit_link.document, '$.type') == "exit_link" ) ; :acc_code=$ligne_immo.account_code !table =$module.table assign="credit_line" }} {{if $credit_line.amount == $solde}} {{:assign var="exit_lines." value=$credit_line}} {{/if}} {{/select}} {{* déterminer le compte d'amortissement en fonction du compte d'immobilisation *}} {{:include file="./_get_amort_code.html" code_immo=$ligne_immo.account_code keep="code_amort" }} {{* chercher des écritures d'amortissement correspondant au compte d'une immo sans doc associé *}} {{#select line.id as amort_line_id, line.credit as amort_amount, line.label as line_label, trans.id as amort_trans_id, trans.date as date, trans.label as trans_label, trans.id_year as year, account.id as account_id, account.code as account_code, account.label as account_label FROM acc_transactions_lines AS line INNER JOIN acc_accounts AS account ON line.id_account = account.id INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id WHERE account.code = :code_amort AND line.credit > 0 AND (NOT trans.status & 16) AND trans.date >= :immo_date ; :code_amort = $code_amort :immo_date=$date_immo assign="amort_line" }} {{* voir s'il existe des lignes d'immo liées à cette ligne d'amortissement *}} {{:assign amort_amount=0}} {{:assign keep_amort=true}} {{#load type="amort_link" where="$$.amort_line_id = :amort_line_id" :amort_line_id=$amort_line.amort_line_id|intval assign="amort_link" }} {{if $amort_link.amount == null || $amort_link.amount == 0}} {{:assign amort_amount=$amort_line.amort_amount}} {{:assign keep_amort=false}} {{else}} {{:assign amort_amount="%d+%d"|math:$amort_amount:$amort_link.amount}} {{/if}} {{else}} {{* pas de ligne d'immo liée à cette ligne d'amort => garder cette ligne d'amortissement *}} {{/load}} {{if $keep_amort && $amort_amount < $amort_line.amort_amount}} {{:assign var="free_amort_lines." value=$amort_line}} {{/if}} {{/select}} {{#form on="backward"}} {{:redirect to="exit_step3.html?immo_doc_id=%s&from=%s"|args:$_GET.immo_doc_id:$_GET.from}} {{/form}} {{#form on="validate"}} {{* mettre à jour l'état de l'immobilisation *}} {{:save key=$info_immo.key status="archived" }} {{:redirect to="index.html?type_immo=archived"}} {{/form}} {{#form on="cancel"}} {{* supprimer les docs de cession et de sortie *}} {{if $cession_doc_id != null}}{{:delete id=$cession_doc_id}}{{/if}} {{if $exit_info != null}}{{:delete id=$exit_info.id}}{{/if}} {{:redirect to="index.html?type_immo=other"}} {{/form}} {{:admin_header title="Immobilisation sortie du bilan" custom_css="./style.css" current="module_amortization"}} {{if $_GET.from == "exit"}} {{:assign current="other"}} {{else}} {{:assign current="archived"}} {{/if}} {{if $_GET.ok}} {{if $_GET.msg|match:"attach_exit"}} {{:assign msg="Écriture de sortie de bilan attachée"}} {{elseif $_GET.msg|match:"detach_exit"}} {{:assign msg="Écriture de sortie de bilan détachée"}} {{/if}}

{{$msg}}

{{/if}}
Immobilisation
#{{$ligne_immo.trans_id}} {{$label_immo}}
Compte d'immobilisation
{{$ligne_immo.account_code}} — {{$ligne_immo.account_label}}
Montant de l'immobilisation
{{$montant_immo|money_currency_html:false|raw}}
{{if $total_credits > 0}}
Montant des avoirs
{{"%f"|math:$total_credits|money_currency_html:false|raw}}
Montant à amortir
{{"%f"|math:$solde|money_currency_html:false|raw}}
{{/if}} {{if $total_amort > 0}}
Montant des amortissements
{{$total_amort|money_currency_html:false|raw}}
Valeur nette résiduelle
{{"%d-%d"|math:$solde:$total_amort|money_currency_html:false|raw}}
{{/if}} {{if $montant_cession > 0}}
Montant de la cession
{{$montant_cession|money_currency_html:false|raw}}
{{/if}}
{{if $erreur}}

{{$message}}
{{if $erreur == 1}} Vérifiez si vous avez correctement attaché les écritures d'amortissement. {{elseif $erreur == 2}} Vérifiez si vous avez correctement attaché les éventuelles écritures d'avoir. {{/if}}

{{#foreach from=$exit_trans key="account_code" item="line"}} {{:assign account_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$line.account_id:$line.id_year}} {{/foreach}}
Détails de l'écriture de sortie de bilan
Numéro Compte Débit Crédit Libellé
{{$line.account_code}} {{$line.account_label}} {{$line.debit|money_currency:false}} {{$line.credit|money_currency:false}} {{$line.line_label}}
{{/if}} {{if $exit_lines}} {{/if}}

Écriture de sortie de bilan attachée à l'immobilisation

{{if $exit_line != null}} {{:assign exit_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$exit_line.trans_id}}
Date Libellé Montant N° compte Compte
#{{$exit_line.trans_id}} {{$exit_line.date|date_short}} {{if $exit_line.line_label != null}} {{$exit_line.line_label}} {{else}} {{$exit_line.trans_label}} {{/if}} {{"%f"|math:$exit_line.amount|money_html:false|raw}} {{$exit_line.account_code}} {{$exit_line.account_label}} {{:linkbutton label="Détacher" href="detach_exit.html?immo_doc_id=%s&exit_line_id=%s&from=exit"|args:$_GET.immo_doc_id:$exit_line.line_id shape="minus"}}
{{elseif $exit_lines}}

Vous pouvez attacher une écriture de sortie de bilan à l'immobilisation

{{/if}} {{if $exit_lines}} {{*

Écritures non rattachées

{{#foreach from=$exit_lines item="line"}} {{:assign exit_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$line.trans_id}} {{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$line.account_id:$line.year}} {{/foreach}}
Date Libellé Montant N° compte Compte
#{{$line.trans_id}} {{$line.date|date_short}} {{$line.trans_label}} {{if $line.line_label != null && $line.line_label != $line.trans_label}} — {{$line.line_label}}{{/if}} {{"%f"|math:$line.amount|money_html:false|raw}} {{$line.account_code}} {{$line.account_label}} {{:linkbutton label="Attacher" href="attach_exit.html?immo_doc_id=%s&exit_line_id=%s&from=exit"|args:$_GET.immo_doc_id:$line.credit_line_id shape="plus"}}
*}} {{elseif $exit_line == null}}

Aucune écriture de sortie de bilan avec un montant de {{$solde|money_currency_html:false|raw}} au crédit du compte {{$ligne_immo.account_code}} — {{$ligne_immo.account_label}} ;
Vérifiez si vous avez correctement attaché les éventuelles écritures d'avoir.
Si vous avez supprimé l'écriture de sortie de bilan, il faut la recréer avant de pouvoir classer cette immobilisation « Sortie du bilan » !

{{:save key=$info_immo.key status=null }} {{/if}}

{{:button type="submit" name="backward" label="Revenir à l'étape précédente" shape="left" class="main"}} {{if $exit_line && ! $erreur}} {{:button type="submit" name="validate" label="Terminer" shape="check" class="main"}} {{else}} {{:button type="submit" name="cancel" label="Annuler" shape="delete" class="main"}} {{/if}}