{{if $subcurrent != null}}
diff --git a/_upgrade_to031.tpl b/_upgrade_to031.tpl
new file mode 100644
index 0000000..1efe934
--- /dev/null
+++ b/_upgrade_to031.tpl
@@ -0,0 +1,99 @@
+{{* -*- brindille -*- *}}
+
+{{*
+ Mettre à niveau vers v0.31
+ - créer un doc de liaison pour chaque amortissement lié à une immobilisation
+ mais uniquement pour les immo déjà gérées, sinon l'upgrade
+ vers 0.33 ne fonctionnera pas car on pourrait se retrouver avec
+ des liaisons immo <-> amort sans doc associé à l'immo donc la
+ transformation de link vers amort_link ne pourra se faire
+
+ - id ligne d'immobilisation
+ - id ligne d'amortissement
+ - id écriture d'amortissement
+*}}
+
+{{* lister les immobilisations *}}
+{{:include file="_get_config.html" keep="module.config"}}
+
+{{:assign account_condition="("}}
+{{#foreach from=$module.config.prefixes item="code"}}
+ {{:assign code=$code|cat:"%"|quote_sql}}
+ {{:assign account_condition=$account_condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}}
+{{/foreach}}
+{{:assign account_condition=$account_condition|cat:"0)"}}
+
+{{:assign filter_condition=" AND NOT ("}}
+{{#foreach from=$module.config.filters item="filter"}}
+ {{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}}
+ {{:assign filter_condition=$filter_condition|cat:" trans.label LIKE "|cat:$filter|cat:" OR "}}
+{{/foreach}}
+{{:assign filter_condition=$filter_condition|cat:"0)"}}
+
+{{:assign condition=$account_condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"|cat:$filter_condition}}
+
+{{#select
+ line.id as immo_line_id
+ FROM acc_transactions AS trans
+ INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id
+ INNER JOIN acc_accounts AS account ON line.id_account = account.id
+ INNER JOIN acc_years AS years ON trans.id_year = years.id
+ WHERE !condition
+ ORDER BY trans.date DESC;
+ !condition=$condition
+}}
+ {{* voir si l'immo est prise en charge *}}
+ {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_line_id|intval}}
+ {{:assign status=$status}}
+ {{else}}
+ {{:assign status="unknown"}}
+ {{/load}}
+
+ {{* ne pas faire la liaison si pas de doc *}}
+ {{if $status == "ignored" || $status == "unknown"}}
+ {{:continue}}
+ {{/if}}
+
+ {{* lister les écritures d'amortissement liées *}}
+ {{:assign amort_lines=null}}
+ {{#select
+ CASE links.id_related = t_immo.id
+ WHEN true THEN links.id_transaction
+ WHEN false THEN links.id_related
+ END as amort_trans_id,
+ l_amort.id AS amort_line_id
+ FROM acc_transactions_lines as l_immo
+ INNER JOIN acc_transactions as t_immo on t_immo.id = l_immo.id_transaction
+ INNER JOIN acc_transactions_links as links
+ ON (t_immo.id = links.id_transaction OR t_immo.id = links.id_related)
+ INNER JOIN acc_transactions_lines as l_amort on amort_trans_id = l_amort.id_transaction
+ INNER JOIN acc_accounts AS account ON l_amort.id_account = account.id
+ WHERE l_immo.id = :line_id AND l_amort.credit <> 0 AND account.code LIKE '28%';
+ :line_id = $immo_line_id|intval
+ assign="amort_lines."
+ }}
+ {{/select}}
+
+ {{#foreach from=$amort_lines item="line"}}
+ {{* chercher un doc associé *}}
+ {{#load type="link"
+ where="$$.immo_line_id = :immo_line_id
+ AND $$.amort_line_id = :amort_line_id
+ AND $$.amort_trans_id = :amort_trans_id"
+ :immo_line_id = $immo_line_id
+ :amort_line_id = $line.amort_line_id
+ :amort_trans_id = $line.amort_trans_id
+ assign="link"
+ }}
+ {{else}}
+ {{* pas de doc => le créer *}}
+ {{:save
+ key=""|uuid
+ type="link"
+ immo_line_id=$immo_line_id
+ amort_line_id=$line.amort_line_id
+ amort_trans_id=$line.amort_trans_id
+ }}
+ {{/load}}
+ {{/foreach}}
+{{/select}}
diff --git a/_upgrade_to033.tpl b/_upgrade_to033.tpl
new file mode 100644
index 0000000..b1104a7
--- /dev/null
+++ b/_upgrade_to033.tpl
@@ -0,0 +1,64 @@
+{{* -*- brindille -*- *}}
+
+{{*
+ Mettre à niveau vers v0.33, pour gérer les écritures du bilan d'ouverture
+ où le montant d'une ligne d'immo ou d'une ligne d'amort peut être
+ réparti entre plusieurs immo et plusieurs amort
+
+ - modifier le doc d'immo
+ - date => date_mes (date mise en service)
+
+ - modifier le doc de liaison d'amortissement
+ - id ligne d'immobilisation => id doc immobilisation
+ - id ligne d'amortissement
+ - id écriture d'amortissement
+ - ajouter montant amortissement
+*}}
+
+{{* doc immo *}}
+{{#load type="immo" assign="elem"}}
+ {{if $elem.date != null}}
+ {{:assign var="elem.date_mes" value=$elem.date}}
+ {{:assign var="docs." value=$elem}}
+ {{:delete id=$elem.id}}
+ {{/if}}
+{{/load}}
+
+{{* créer les nouveaux documents *}}
+{{#foreach from=$docs item="doc"}}
+ {{:save
+ key=""|uuid
+ type=$doc.type
+ line=$doc.line
+ duration=$doc.duration
+ label=$doc.label
+ amount=$doc.amount
+ date_achat=$doc.date_achat
+ date_mes=$doc.date_mes
+ status=$doc.status
+ }}
+{{/foreach}}
+
+{{* lister les liaisons actuelles ligne amort => ligne immo *}}
+{{#load type="link" assign="link"}}
+ {{#load type="immo" where="$$.line = :immo_line_id" :immo_line_id=$link.immo_line_id assign="immo"}}
+ {{:assign link_doc=null}}
+ {{:assign var="link_doc.immo_doc_id" value=$immo.id}}
+ {{:assign var="link_doc.amort_line_id" value=$link.amort_line_id}}
+ {{:assign var="link_docs." value=$link_doc}}
+ {{else}}
+ {{* liaison orpheline : ignorer *}}
+ {{/load}}
+ {{:delete id=$link.id}}
+{{/load}}
+
+{{* créer les nouvelles liaisons *}}
+{{#foreach from=$link_docs item="link"}}
+ {{:save
+ key=""|uuid
+ type="amort_link"
+ immo_doc_id=$link.immo_doc_id
+ amort_line_id=$link.amort_line_id
+ amount=null
+ }}
+{{/foreach}}
diff --git a/add_asset.html b/add_asset.html
index 6c21221..3738fa3 100644
--- a/add_asset.html
+++ b/add_asset.html
@@ -161,7 +161,7 @@
{{:admin_header title="Ajout immobilisation" current="module_amortization"}}
{{* barre de navigation *}}
{{if ! $dialog}}
- {{:include file="_nav.html" current="managed" subcurrent="add_asset"}}
+ {{:linkbutton href="index.html" label="Retour" shape="left"}}
{{/if}}
{{:form_errors}}
@@ -224,7 +224,7 @@
{{:input type="number" name="duree" label="Durée d'amortissement" required=true min=0 default=1 suffix="année(s)"}}
- {{:input type="date" name="date_mes" label="Date de mise en service" help="C'est la date de première utilisation ; à renseigner uniquement si différente de la date d'acquisition"}}
+ {{:input type="date" name="date_mes" label="Date de mise en service" default=$now|date_short help="C'est la date de première utilisation ; à modifier si différente de la date d'acquisition"}}
- {{:input type="radio-btn" name="classify" value="managed" label="Immobilisation à amortir" help="L'immobilisation sera classée parmi les immobilisations amortissables" default=$choix_defaut}}
+ {{:input type="radio-btn" name="classify" value="managed" label="Immobilisation à amortir" default=$choix_defaut}}
{{if $ligne_immo.date_achat > $first_date}}
- {{:input type="radio-btn" name="classify" value="archived" label="Immobilisation sortie du bilan" help="L'immobilisation sera classée parmi les immobilisations sorties du bilan" default=$choix_defaut}}
+ {{:input type="radio-btn" name="classify" value="archived" label="Immobilisation sortie du bilan" default=$choix_defaut}}
{{/if}}
{{:input type="radio-btn" name="classify" value="ignored" label="Immobilisation à ignorer" help="L'écriture n'apparaitra plus dans la liste des immobilisations" default=$choix_defaut}}