{{* -*- brindille -*- *}} {{* @param immo_id @param type_immo : managed, amortized, archived, other *}} {{* données de l'immobilisaion *}} {{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} {{/load}} {{#select trans.id, trans.date as date_achat, line.debit as montant, acc.code FROM acc_transactions_lines AS line INNER join acc_transactions AS trans ON line.id_transaction = trans.id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id WHERE line.id = :line_id; :line_id = $_GET.immo_id assign=ligne_immo }} {{else}} {{:error message="Aucune immobilisation trouvée"}} {{/select}} {{* chercher les liaisons de l'écriture d'immobilisation *}} {{#select CASE links.id_related = :immo_trans_id WHEN true THEN links.id_transaction WHEN false THEN links.id_related END as linked_id, acc.code FROM acc_transactions_links as links INNER JOIN acc_transactions_lines AS line on line.id_transaction = linked_id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id WHERE (links.id_transaction = :immo_trans_id or links.id_related = :immo_trans_id) AND line.credit > 0 ; :immo_trans_id = $ligne_immo.id }} {{:assign var="linked_transactions.%d."|args:$code value=$linked_id}} {{/select}} {{:assign var="immo_transactions" from="linked_transactions.%d"|args:$ligne_immo.code}} {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} {{if $_POST.classify == null}} {{:error message="Vous devez choisir une action"}} {{/if}} {{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"}} {{if $info_immo.duration == null}} {{:assign duration=0}} {{else}} {{:assign duration=$info_immo.duration}} {{/if}} {{:assign status="amortized"}} {{elseif $_POST.classify == "archived"}} {{if $info_immo.duration == null}} {{:assign duration=0}} {{else}} {{:assign duration=$info_immo.duration}} {{/if}} {{:assign status="archived"}} {{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 $info_immo == null}} {{: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 }} {{* copier les autres liaisons *}} {{#foreach from=$linked_transactions key="code" item="liaisons"}} {{if $code != $ligne_immo.code}} {{:debug code=$code liaisons=$liaisons}} {{#foreach from=$liaisons item="elem"}} {{:assign var="new_transactions." value=$elem}} {{/foreach}} {{/if}} {{/foreach}} {{* nouvelles liaisons *}} {{#foreach from=$_POST.transactions key="key" item="elem"}} {{:assign var="new_transactions." value=$elem|intval}} {{/foreach}} {{* Enregistrer les liaisons *}} {{if $new_transactions != null}} {{:api method="POST" path="accounting/transaction/%s/transactions"|args:$ligne_immo.id assign="result" assign_code="result_code" transactions=$new_transactions }} {{/if}} {{if $_POST.classify == "managed" || $_POST.classify == "amortized"}} {{:assign type_immo=$_POST.classify}} {{elseif $_POST.classify == "ignored"}} {{:assign type_immo="other"}} {{else}} {{:assign type_immo=$_GET.type_immo}} {{/if}} {{:redirect force="index.html?ok=1&msg=infos&type_immo=%s"|args:$type_immo}} {{/form}} {{:form_errors}} {{:admin_header title="Classer l'immobilisation" custom_css=$custom_css current="module_amortization"}} {{* barre de navigation *}} {{if ! $dialog}} {{:include file="_nav.html" current="index"}} {{/if}} {{:assign choix_defaut=$_GET.type_immo}} {{if $info_immo != null}} {{:assign date_defaut=$info_immo.date}} {{:assign duree_defaut=$info_immo.duration}} {{else}} {{:assign duree_defaut=null}} {{/if}} {{* - classer l'immobilisation - renseigner ou modifier la date de mise en service, les écritures associées ou la durée d'amortissement *}}
{{:admin_footer}}