{{* -*- brindille -*- *}} {{* Enregistrer la liaison entre une ligne d'immobilisation et une ligne d'écriture au crédit du compte de l'immobilisation @param immo_doc_id : numéro du doc d'immo @param credit_line_id : ligne d'écriture au crédit du compte de l'immobilisation *}} {{* données de l'immobilisation *}} {{:include file="_get_immo_data.html" immo_doc_id=$_GET.immo_doc_id|intval 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 $ligne_immo.line_label != null && $ligne_immo.line_label != $label_immo}} {{:assign label_immo=$label_immo|cat:" — "|cat:$ligne_immo.line_label}} {{/if}} {{* 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="total_credits"}} {{:assign solde_immo="%d-%d"|math:$ligne_immo.amount:$total_credits}} {{* chercher l'écriture au crédit du compte d'immobilisation *}} {{#select line.id_transaction as trans_id, line.credit as amount, trans.label as trans_label, line.label as line_label 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.credit_line_id|intval assign="credit_line" }} {{else}} {{:error message="Écriture au crédit non trouvée"}} {{/select}} {{:assign credit_trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$credit_line.trans_id}} {{* montant de l'écriture de crédit déjà affecté *}} {{:assign montant_affecte=0}} {{#load type="credit_link" where="$$.credit_line_id = :credit_line_id" :credit_line_id = $_GET.credit_line_id|intval }} {{:assign montant_affecte="%d+%d"|math:$montant_affecte:$amount}} {{/load}} {{:assign reste="%d-%d"|math:$credit_line.amount:$montant_affecte}} {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} {{if $_POST.montant == null}} {{if $montant_affecte == 0}} {{:assign saved_credit=null}} {{:assign montant_credit=$credit_line.amount}} {{else}} {{:assign saved_credit=$reste}} {{:assign montant_credit=$reste}} {{/if}} {{else}} {{:assign montant_credit=$_POST.montant|money_int}} {{* vérifier que le montant saisi est inférieur au solde de l'écriture d'immobilisation *}} {{if $montant_credit > $solde_immo}} {{:assign solde_nb="%f"|math:$solde_immo|money_currency:false}} {{:error message="Le montant de l'avoir ne peut être supérieur au montant de l'immobilisation (%s)"|args:$solde_nb}} {{/if}} {{* vérifier que le montant saisi est inférieur au reste de l'écriture de crédit *}} {{if $montant_credit > $reste}} {{:assign reste_nb="%f"|math:$reste|money_currency:false}} {{:error message="Le montant de l'avoir ne peut être supérieur au reste (%s)"|args:$reste_nb}} {{/if}} {{if $montant_credit == $credit_line.amount}} {{:assign saved_credit=null}} {{else}} {{:assign saved_credit=$montant_credit}} {{/if}} {{/if}} {{* Lier l'écriture de crédit à l'écriture d'immobilisation *}} {{:include file="_common_attach.html" immo_doc_id=$_GET.immo_doc_id trans_id=$credit_line.trans_id}} {{* TODO ? vérifier le succès avant d'enregistrer le doc ? *}} {{* enregistrer la liaison des lignes d'immo *}} {{:save key=""|uuid type="credit_link" immo_doc_id=$_GET.immo_doc_id|intval credit_line_id=$_GET.credit_line_id|intval amount=$saved_credit }} {{* {{if $montant_credit == $solde_immo}} {{:save id=$_GET.immo_doc_id status="archived" }} {{/if}} *}} {{if $_GET.from == "exit"}} {{:redirect force="exit_step1.html?immo_doc_id=%s&ok=1&msg=attach_avoir"|args:$_GET.immo_doc_id}} {{else}} {{:redirect force="amortization.html?immo_doc_id=%s&ok=1&msg=attach_avoir"|args:$_GET.immo_doc_id}} {{/if}} {{/form}} {{:admin_header title="Écritures au crédit du compte d'immobilisation" custom_css="./style.css" current="module_amortization"}} {{if ! $dialog}} {{:include file="_nav.html" current="managed" subcurrent="attach_credit" type_immo="other" }} {{/if}} {{:form_errors}}