diff --git a/_archives.html b/_archives.html
index fafad3b..671ceb4 100644
--- a/_archives.html
+++ b/_archives.html
@@ -66,12 +66,10 @@
!condition=$condition
}}
{{:assign montant_immo=$debit}}
+
{{* voir si l'immo est prise en charge *}}
{{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}}
{{:assign status=$status}}
- {{if $amount != null}}
- {{:assign montant_immo=$amount}}
- {{/if}}
{{else}}
{{:assign amortissable="nsp"}}
{{:assign status="unknown"}}
@@ -80,32 +78,46 @@
{{:continue}}
{{/if}}
- {{* voir s'il existe une écriture liée qui solde l'immobilisation *}}
+ {{* chercher des écritures liées à l'immo courante au crédit du même compte
+ et déduire leur montant de celui de l'immo
+ *}}
+ {{:assign solde_immo=$montant_immo}}
+ {{:assign credit_immo=null}}
{{#select
- trans.date as exit_date
- FROM acc_transactions_links AS link
- INNER JOIN acc_transactions AS trans ON
- (CASE
- WHEN link.id_transaction = :trans_id THEN link.id_related
- WHEN link.id_related = :trans_id THEN link.id_transaction
- END) = trans.id
- 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.credit = :montant_immo
- AND acc.code = :account_code
+ CASE links.id_related = :immo_id
+ WHEN true THEN links.id_transaction
+ WHEN false THEN links.id_related
+ END as other_id,
+ line.credit
+ FROM acc_transactions AS trans
+ INNER JOIN acc_transactions_links as links
+ ON (trans.id = links.id_transaction OR trans.id = links.id_related)
+ INNER JOIN acc_transactions_lines AS line on line.id_transaction = other_id
+ INNER JOIN acc_accounts AS acc ON line.id_account = acc.id
+ INNER JOIN acc_transactions AS trans2 ON trans2.id = other_id
+ WHERE trans.id = :immo_id AND line.credit > 0 AND acc.code = :account
+ ORDER BY trans2.date, trans2.id
;
- :trans_id = $trans_id
- :montant_immo = $montant_immo
- :account_code = $account_code
+ :immo_id=$trans_id
+ :account=$account_code
+ assign="credit_immo."
}}
- {{:assign status="archived"}}
- {{:assign exit_date=$exit_date}}
+ {{:assign solde_immo="%d-%d"|math:$solde_immo:$credit}}
{{/select}}
+ {{if $solde_immo == 0}}
+ {{:assign status="archived"}}
+ {{/if}}
+
{{if $status != "archived"}}
{{:continue}}
{{/if}}
+ {{:assign nb=$credit_immo|count}}
+ {{:assign nb="%d-1"|math:$nb}}
+ {{:assign var="last_credit" from="credit_immo.%d"|args:$nb}}
+ {{:assign montant_immo=$last_credit.credit}}
+
{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}}
{{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$account_id:$trans_id_year}}
{{:assign nb_immo="%d+1"|math:$nb_immo}}
@@ -116,12 +128,7 @@
{{* voir s'il y a une écriture de cession associée à cette immo *}}
{{#select
trans.id,
- trans.label,
- trans.date,
- line.id,
- line.debit,
- acc.code,
- acc.label
+ line.debit
FROM acc_transactions_links AS link
INNER JOIN acc_transactions AS trans ON (CASE
WHEN link.id_transaction = :trans_id THEN link.id_related
@@ -154,6 +161,9 @@
{{if $total_immo != 0}}
+
+ |
+ |
{{#foreach from=$sommes_immo|ksort key="code" item="value"}}
|
diff --git a/_check_account.html b/_check_account.html
index 06e1108..ce6816e 100644
--- a/_check_account.html
+++ b/_check_account.html
@@ -19,7 +19,7 @@
{{/foreach}}
{{:assign condition=$condition|cat:"0)"}}
-{{:assign account_code=$account|keys|key:0}}
+{{:assign account_code=$account|keys|value:0}}
{{#sql
select="code"
tables="acc_accounts"
diff --git a/_get_codes.html b/_get_codes.html
index e6d85c1..0373085 100644
--- a/_get_codes.html
+++ b/_get_codes.html
@@ -7,7 +7,8 @@
la forme : code — libellé
*}}
-{{:assign label=$account|values|key:0}}
+{{:assign values=$account|values}}
+{{:assign label=$values.0}}
{{:assign pos=$label|strpos:" "}}
{{:assign account_code=$label|substr:0:$pos}}
{{:assign var="account_code.%s"|args:$account_code value=$label}}
diff --git a/_immobilisations.html b/_immobilisations.html
index aacdc34..f26b23f 100644
--- a/_immobilisations.html
+++ b/_immobilisations.html
@@ -49,14 +49,13 @@
{{:assign nb_immo=0}}
{{:assign total_immo = 0}}
{{#select
- trans.id as trans_id,
+ trans.id as immo_trans_id,
trans.label as trans_label,
trans.date as trans_date,
- line.id as immo_id,
+ line.id as immo_line_id,
line.debit AS debit,
account.id as account_id,
account.code as account_code,
- account.label as account_label,
trans.id_year as trans_id_year
FROM acc_transactions AS trans
INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id
@@ -66,18 +65,15 @@
ORDER BY trans.date DESC;
!condition=$condition
}}
- {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}}
+ {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$immo_trans_id}}
{{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$account_id:$trans_id_year}}
{{:assign duration=null}}
{{:assign montant_immo=$debit}}
{{* voir si l'immo est prise en charge *}}
- {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}}
+ {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_line_id|intval}}
{{:assign duration=$duration}}
{{:assign status=$status}}
- {{if $amount != null}}
- {{:assign montant_immo=$amount}}
- {{/if}}
{{else}}
{{:assign amortissable="nsp"}}
{{:assign status="unknown"}}
@@ -86,58 +82,78 @@
{{:continue}}
{{/if}}
- {{* voir s'il existe une écriture qui solde l'immobilisation *}}
+ {{* chercher des écritures liées à l'immo courante au crédit du même compte
+ et déduire leur montant de celui de l'immo
+ *}}
{{#select
- line.id AS line
- FROM acc_transactions_lines AS line
- INNER JOIN acc_accounts AS acc ON acc.id = line.id_account
- INNER JOIN acc_transactions_lines AS line2 ON line2.id_account = acc.id
- WHERE
- line.id = :line_id
- AND line2.credit = :montant_immo;
- :line_id = $immo_id|intval
- :montant_immo = $montant_immo
- }}
- {{:assign status="archived"}}
+ CASE links.id_related = :immo_trans_id
+ WHEN true THEN links.id_transaction
+ WHEN false THEN links.id_related
+ END as other_id,
+ line.credit
+ FROM acc_transactions AS trans
+ INNER JOIN acc_transactions_links as links
+ ON (trans.id = links.id_transaction OR trans.id = links.id_related)
+ INNER JOIN acc_transactions_lines AS line on line.id_transaction = other_id
+ INNER JOIN acc_accounts AS acc ON line.id_account = acc.id
+ WHERE trans.id = :immo_trans_id AND line.credit > 0 AND acc.code = :account;
+ :immo_trans_id=$immo_trans_id
+ :account=$account_code
+ }}
+ {{:assign montant_immo="%d-%d"|math:$montant_immo:$credit}}
{{/select}}
+ {{if $montant_immo == 0}}
+ {{:assign status="archived"}}
+ {{/if}}
{{if $status == "archived"}}
{{:continue}}
{{/if}}
{{* voir s'il existe des écritures d'amortissement associées *}}
+ {{:assign amort_lines=null}}
{{#select
- sum(l_amort.credit) as amort_amount,
+ (l_amort.credit) as amount,
CASE links.id_related = t_immo.id
WHEN true THEN links.id_transaction
WHEN false THEN links.id_related
- END as amort_trans_id
+ 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
- )
+ 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_id|intval
+ 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."
}}
- {{if $amort_amount == null}}
- {{:assign exist_amort=false}}
- {{:assign amort_amount=0}}
- {{else}}
- {{:assign exist_amort=true}}
- {{:assign amort_amount=$amort_amount}}
- {{/if}}
{{/select}}
+ {{:assign amort_amount=0}}
+ {{#foreach from=$amort_lines item="elem"}}
+ {{* voir s'il existe un doc associé *}}
+ {{#load type="link"
+ where="$$.immo_line_id = :immo_line_id AND $$.amort_trans_id = :amort_trans_id"
+ :immo_line_id = $immo_line_id
+ :amort_trans_id = $elem.amort_trans_id
+ assign="link"
+ }}
+ {{if $link.amort_line_id == $elem.amort_line_id}}
+ {{:assign amort_amount="%d+%d"|math:$amort_amount:$amount}}
+ {{/if}}
+ {{else}}
+ {{:assign amort_amount="%d+%d"|math:$amort_amount:$amount}}
+ {{/load}}
+ {{/foreach}}
+
+ {{if $amort_amount == 0}}
+ {{:assign exist_amort=false}}
+ {{else}}
+ {{:assign exist_amort=true}}
+ {{:assign amort_amount=$amort_amount}}
+ {{/if}}
+
{{* classement par onglet *}}
{{if $type_immo == "managed" && $amort_amount >= $montant_immo}}{{:continue}}{{/if}}
{{if $type_immo == "managed" && $status == "amortized"}}{{:continue}}{{/if}}
@@ -149,7 +165,7 @@
{{:assign var="montant" from="sommes_immo.%s"|args:$account_code}}
{{:assign var="sommes_immo.%s"|args:$account_code value="%d+%d"|math:$montant:$montant_immo}}
- | #{{$trans_id}} |
+ #{{$immo_trans_id}} |
{{$trans_date|date_short}} |
{{$trans_label}} |
{{$montant_immo|money_html:false|raw}} |
@@ -160,13 +176,13 @@
{{:linkbutton
label="Paramètres"
- href="add_infos.html?immo_id=%s&type_immo=%s"|args:$immo_id:$type_immo
+ href="add_infos.html?immo_id=%s&type_immo=%s"|args:$immo_line_id:$type_immo
shape="settings"
target="_dialog"
}}
{{:linkbutton
label="Amortissements"
- href="amortization.html?immo_id=%s&type_immo=%s"|args:$immo_id:$type_immo
+ href="amortization.html?immo_id=%s&type_immo=%s"|args:$immo_line_id:$type_immo
shape="table"
}}
|
@@ -175,6 +191,9 @@
{{if $total_immo != 0}}
+
+ |
+ |
{{#foreach from=$sommes_immo|ksort key="code" item="value"}}
|
diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html
index 51aaa0d..6ebb556 100644
--- a/_immobilisations_autres.html
+++ b/_immobilisations_autres.html
@@ -9,15 +9,20 @@
{{:include file="_get_config.html" keep="module.config"}}
+ {{:assign saved_hides=$module.config.hides}}
+ {{:assign var="user_hides" from="saved_hides.%s"|args:$logged_user.id}}
+
{{if $_POST|count == 0}}
- {{:assign unhide=$module.config.unhide_other}}
+ {{:assign unhide=$user_hides.unhide_other}}
{{else}}
{{if $_POST.unhide == null}}
{{:assign unhide=0}}
{{else}}
{{:assign unhide=1}}
{{/if}}
- {{:save key="config" unhide_other=$unhide}}
+ {{:assign var="user_hides.unhide_other" value=$unhide"}}
+ {{:assign var="saved_hides.%s"|args:$logged_user.id value=$user_hides}}
+ {{:save key="config" hides=$saved_hides}}
{{/if}}
{{if $unhide}}
{{:assign checked="checked"}}
diff --git a/_nav.html b/_nav.html
index 57a6f51..a7894b5 100644
--- a/_nav.html
+++ b/_nav.html
@@ -7,7 +7,7 @@
{{elseif $subsubcurrent == "amortization" && $type_immo == null || $type_immo == "managed" || $type_immo == "other"}}