Liaison immo avec écritures de crédits sur compte d'immobilisation
This commit is contained in:
parent
53695b6547
commit
310aa8cd07
7 changed files with 225 additions and 101 deletions
|
|
@ -66,12 +66,10 @@
|
||||||
!condition=$condition
|
!condition=$condition
|
||||||
}}
|
}}
|
||||||
{{:assign montant_immo=$debit}}
|
{{:assign montant_immo=$debit}}
|
||||||
|
|
||||||
{{* voir si l'immo est prise en charge *}}
|
{{* 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_id|intval}}
|
||||||
{{:assign status=$status}}
|
{{:assign status=$status}}
|
||||||
{{if $amount != null}}
|
|
||||||
{{:assign montant_immo=$amount}}
|
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
{{else}}
|
||||||
{{:assign amortissable="nsp"}}
|
{{:assign amortissable="nsp"}}
|
||||||
{{:assign status="unknown"}}
|
{{:assign status="unknown"}}
|
||||||
|
|
@ -80,32 +78,46 @@
|
||||||
{{:continue}}
|
{{:continue}}
|
||||||
{{/if}}
|
{{/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
|
{{#select
|
||||||
trans.date as exit_date
|
CASE links.id_related = :immo_id
|
||||||
FROM acc_transactions_links AS link
|
WHEN true THEN links.id_transaction
|
||||||
INNER JOIN acc_transactions AS trans ON
|
WHEN false THEN links.id_related
|
||||||
(CASE
|
END as other_id,
|
||||||
WHEN link.id_transaction = :trans_id THEN link.id_related
|
line.credit
|
||||||
WHEN link.id_related = :trans_id THEN link.id_transaction
|
FROM acc_transactions AS trans
|
||||||
END) = trans.id
|
INNER JOIN acc_transactions_links as links
|
||||||
INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id
|
ON (trans.id = links.id_transaction OR trans.id = links.id_related)
|
||||||
INNER JOIN acc_accounts AS acc on line.id_account=acc.id
|
INNER JOIN acc_transactions_lines AS line on line.id_transaction = other_id
|
||||||
WHERE line.credit = :montant_immo
|
INNER JOIN acc_accounts AS acc ON line.id_account = acc.id
|
||||||
AND acc.code = :account_code
|
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
|
:immo_id=$trans_id
|
||||||
:montant_immo = $montant_immo
|
:account=$account_code
|
||||||
:account_code = $account_code
|
assign="credit_immo."
|
||||||
}}
|
}}
|
||||||
{{:assign status="archived"}}
|
{{:assign solde_immo="%d-%d"|math:$solde_immo:$credit}}
|
||||||
{{:assign exit_date=$exit_date}}
|
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
|
||||||
|
{{if $solde_immo == 0}}
|
||||||
|
{{:assign status="archived"}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{if $status != "archived"}}
|
{{if $status != "archived"}}
|
||||||
{{:continue}}
|
{{:continue}}
|
||||||
{{/if}}
|
{{/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 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 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}}
|
{{: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 *}}
|
{{* voir s'il y a une écriture de cession associée à cette immo *}}
|
||||||
{{#select
|
{{#select
|
||||||
trans.id,
|
trans.id,
|
||||||
trans.label,
|
line.debit
|
||||||
trans.date,
|
|
||||||
line.id,
|
|
||||||
line.debit,
|
|
||||||
acc.code,
|
|
||||||
acc.label
|
|
||||||
FROM acc_transactions_links AS link
|
FROM acc_transactions_links AS link
|
||||||
INNER JOIN acc_transactions AS trans ON (CASE
|
INNER JOIN acc_transactions AS trans ON (CASE
|
||||||
WHEN link.id_transaction = :trans_id THEN link.id_related
|
WHEN link.id_transaction = :trans_id THEN link.id_related
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,6 @@
|
||||||
line.debit AS debit,
|
line.debit AS debit,
|
||||||
account.id as account_id,
|
account.id as account_id,
|
||||||
account.code as account_code,
|
account.code as account_code,
|
||||||
account.label as account_label,
|
|
||||||
trans.id_year as trans_id_year
|
trans.id_year as trans_id_year
|
||||||
FROM acc_transactions AS trans
|
FROM acc_transactions AS trans
|
||||||
INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id
|
INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id
|
||||||
|
|
@ -75,9 +74,6 @@
|
||||||
{{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}}
|
{{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}}
|
||||||
{{:assign duration=$duration}}
|
{{:assign duration=$duration}}
|
||||||
{{:assign status=$status}}
|
{{:assign status=$status}}
|
||||||
{{if $amount != null}}
|
|
||||||
{{:assign montant_immo=$amount}}
|
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
{{else}}
|
||||||
{{:assign amortissable="nsp"}}
|
{{:assign amortissable="nsp"}}
|
||||||
{{:assign status="unknown"}}
|
{{:assign status="unknown"}}
|
||||||
|
|
@ -86,20 +82,30 @@
|
||||||
{{:continue}}
|
{{:continue}}
|
||||||
{{/if}}
|
{{/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
|
{{#select
|
||||||
line.id AS line
|
CASE links.id_related = :immo_id
|
||||||
FROM acc_transactions_lines AS line
|
WHEN true THEN links.id_transaction
|
||||||
INNER JOIN acc_accounts AS acc ON acc.id = line.id_account
|
WHEN false THEN links.id_related
|
||||||
INNER JOIN acc_transactions_lines AS line2 ON line2.id_account = acc.id
|
END as other_id,
|
||||||
WHERE
|
line.credit
|
||||||
line.id = :line_id
|
FROM acc_transactions AS trans
|
||||||
AND line2.credit = :montant_immo;
|
INNER JOIN acc_transactions_links as links
|
||||||
:line_id = $immo_id|intval
|
ON (trans.id = links.id_transaction OR trans.id = links.id_related)
|
||||||
:montant_immo = $montant_immo
|
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_id AND line.credit > 0 AND acc.code = :account;
|
||||||
|
:immo_id=$trans_id
|
||||||
|
:account=$account_code
|
||||||
}}
|
}}
|
||||||
{{:assign status="archived"}}
|
{{:assign montant_immo="%d-%d"|math:$montant_immo:$credit}}
|
||||||
|
{{*:debug ligne=$ligne montant_immo=$montant_immo*}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
{{if $montant_immo == 0}}
|
||||||
|
{{:assign status="archived"}}
|
||||||
|
{{/if}}
|
||||||
{{if $status == "archived"}}
|
{{if $status == "archived"}}
|
||||||
{{:continue}}
|
{{:continue}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
||||||
|
|
@ -9,19 +9,42 @@
|
||||||
{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}
|
{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}
|
||||||
{{/load}}
|
{{/load}}
|
||||||
{{#select
|
{{#select
|
||||||
|
trans.id,
|
||||||
trans.date as date_achat,
|
trans.date as date_achat,
|
||||||
line.debit as montant
|
line.debit as montant,
|
||||||
|
acc.code
|
||||||
FROM acc_transactions_lines AS line
|
FROM acc_transactions_lines AS line
|
||||||
INNER join acc_transactions AS trans ON line.id_transaction = trans.id
|
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;
|
WHERE line.id = :line_id;
|
||||||
:line_id = $_GET.immo_id
|
:line_id = $_GET.immo_id
|
||||||
assign=ligne_immo
|
assign=ligne_immo
|
||||||
}}
|
}}
|
||||||
|
{{else}}
|
||||||
|
{{:error message="Aucune immobilisation trouvée"}}
|
||||||
{{/select}}
|
{{/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 *}}
|
{{* Traiter l'envoi du formulaire *}}
|
||||||
{{#form on="save"}}
|
{{#form on="save"}}
|
||||||
|
|
||||||
{{if $_POST.classify == null}}
|
{{if $_POST.classify == null}}
|
||||||
{{:error message="Vous devez choisir une action"}}
|
{{:error message="Vous devez choisir une action"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
@ -29,7 +52,6 @@
|
||||||
{{if $_POST.classify == "ignored"}}
|
{{if $_POST.classify == "ignored"}}
|
||||||
{{* ne pas amortir *}}
|
{{* ne pas amortir *}}
|
||||||
{{:assign duration=0}}
|
{{:assign duration=0}}
|
||||||
{{:assign montant=0}}
|
|
||||||
{{:assign date_debut=$ligne_immo.date_achat|parse_date}}
|
{{:assign date_debut=$ligne_immo.date_achat|parse_date}}
|
||||||
{{:assign status="ignored"}}
|
{{:assign status="ignored"}}
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|
@ -62,7 +84,6 @@
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{:assign status="managed"}}
|
{{:assign status="managed"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{:assign montant="%d*100"|math:$_POST.montant}}
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{* enregistrer les infos de l'immobilisation *}}
|
{{* enregistrer les infos de l'immobilisation *}}
|
||||||
|
|
@ -78,11 +99,36 @@
|
||||||
type="immo"
|
type="immo"
|
||||||
line=$_GET.immo_id|intval
|
line=$_GET.immo_id|intval
|
||||||
duration=$duration
|
duration=$duration
|
||||||
amount=$montant|intval
|
|
||||||
date=$date_debut
|
date=$date_debut
|
||||||
status=$status
|
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"}}
|
{{if $_POST.classify == "managed" || $_POST.classify == "amortized"}}
|
||||||
{{:assign type_immo=$_POST.classify}}
|
{{:assign type_immo=$_POST.classify}}
|
||||||
{{elseif $_POST.classify == "ignored"}}
|
{{elseif $_POST.classify == "ignored"}}
|
||||||
|
|
@ -91,9 +137,8 @@
|
||||||
{{:assign type_immo=$_GET.type_immo}}
|
{{:assign type_immo=$_GET.type_immo}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{:redirect force="index.html?ok=1&msg=infos&type_immo=%s"|args:$type_immo}}
|
{{:redirect force="index.html?ok=1&msg=infos&type_immo=%s"|args:$type_immo}}
|
||||||
{{else}}
|
|
||||||
{{:form_errors}}
|
|
||||||
{{/form}}
|
{{/form}}
|
||||||
|
{{:form_errors}}
|
||||||
|
|
||||||
{{:admin_header title="Classer l'immobilisation" custom_css=$custom_css current="module_amortization"}}
|
{{:admin_header title="Classer l'immobilisation" custom_css=$custom_css current="module_amortization"}}
|
||||||
|
|
||||||
|
|
@ -107,16 +152,13 @@
|
||||||
{{if $info_immo != null}}
|
{{if $info_immo != null}}
|
||||||
{{:assign date_defaut=$info_immo.date}}
|
{{:assign date_defaut=$info_immo.date}}
|
||||||
{{:assign duree_defaut=$info_immo.duration}}
|
{{:assign duree_defaut=$info_immo.duration}}
|
||||||
{{:assign montant_defaut=$info_immo.amount}}
|
|
||||||
{{else}}
|
{{else}}
|
||||||
{{:assign duree_defaut=null}}
|
{{:assign duree_defaut=null}}
|
||||||
{{:assign montant_defaut=null}}
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{*
|
{{*
|
||||||
- classer l'immobilisation
|
- classer l'immobilisation
|
||||||
- renseigner ou modifier la date de mise en service, le montant de
|
- renseigner ou modifier la date de mise en service, les écritures associées ou la durée d'amortissement
|
||||||
l'immobilisation et la durée d'amortissement
|
|
||||||
*}}
|
*}}
|
||||||
<form method="post" action="">
|
<form method="post" action="">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
|
@ -134,7 +176,7 @@
|
||||||
<legend>Informations</legend>
|
<legend>Informations</legend>
|
||||||
<dl>
|
<dl>
|
||||||
{{:input type="number" name="duree" label="Durée d'amortissement" default=$duree_defaut required=true min=1}}
|
{{:input type="number" name="duree" label="Durée d'amortissement" default=$duree_defaut required=true min=1}}
|
||||||
{{:input type="money" name="montant" label="Montant" default=$montant_defaut help="à renseigner uniquement si différent du montant de l'acquisition"}}
|
{{:input type="list" name="transactions" default=$immo_transactions label="Écritures liées" target="!acc/transactions/selector.php" multiple=true help="par exemple écriture d'avoir ou autre réduction du montant de l'acquisition"}}
|
||||||
{{:input type="date" name="date_mes" label="Date de mise en service" default=$date_defaut help="à renseigner uniquement si différente de la date d'acquisition"}}
|
{{:input type="date" name="date_mes" label="Date de mise en service" default=$date_defaut help="à renseigner uniquement si différente de la date d'acquisition"}}
|
||||||
</dl>
|
</dl>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,11 @@
|
||||||
line.debit as montant,
|
line.debit as montant,
|
||||||
trans.id as trans_id,
|
trans.id as trans_id,
|
||||||
trans.label as label,
|
trans.label as label,
|
||||||
trans.date
|
trans.date,
|
||||||
|
account.code as account_code
|
||||||
FROM acc_transactions_lines AS line
|
FROM acc_transactions_lines AS line
|
||||||
INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
|
INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
|
||||||
|
INNER JOIN acc_accounts AS account ON line.id_account = account.id
|
||||||
WHERE line.id = :line_id;
|
WHERE line.id = :line_id;
|
||||||
:line_id = $_GET.immo_id|intval
|
:line_id = $_GET.immo_id|intval
|
||||||
assign=ligne_immo
|
assign=ligne_immo
|
||||||
|
|
@ -29,10 +31,30 @@
|
||||||
{{:assign duree=$duration}}
|
{{:assign duree=$duration}}
|
||||||
{{:assign date_debut=$date}}
|
{{:assign date_debut=$date}}
|
||||||
{{:assign status=$status}}
|
{{:assign status=$status}}
|
||||||
{{if $amount != null}}
|
|
||||||
{{:assign var="ligne_immo.montant" value=$amount}}
|
|
||||||
{{/if}}
|
|
||||||
{{/load}}
|
{{/load}}
|
||||||
|
|
||||||
|
{{* 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 total_credits=0}}
|
||||||
|
{{#select
|
||||||
|
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
|
||||||
|
WHERE trans.id = :immo_id AND line.credit > 0 AND acc.code = :account;
|
||||||
|
:immo_id=$ligne_immo.trans_id
|
||||||
|
:account=$ligne_immo.account_code
|
||||||
|
}}
|
||||||
|
{{:assign total_credits="%d+%d"|math:$total_credits:$credit}}
|
||||||
|
{{/select}}
|
||||||
|
{{:assign var="ligne_immo.montant" value="%d-%d"|math:$ligne_immo.montant:$total_credits}}
|
||||||
{{:assign solde=$ligne_immo.montant}}
|
{{:assign solde=$ligne_immo.montant}}
|
||||||
|
|
||||||
{{* chercher des écritures d'amortissement liées à l'immobilisation *}}
|
{{* chercher des écritures d'amortissement liées à l'immobilisation *}}
|
||||||
|
|
@ -53,9 +75,7 @@
|
||||||
FROM acc_transactions_lines as l_immo
|
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 as t_immo on t_immo.id = l_immo.id_transaction
|
||||||
INNER JOIN acc_transactions_links as links
|
INNER JOIN acc_transactions_links as links
|
||||||
ON (t_immo.id = links.id_transaction
|
ON (t_immo.id = links.id_transaction OR t_immo.id = links.id_related)
|
||||||
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_transactions_lines as l_amort on amort_trans_id = l_amort.id_transaction
|
||||||
INNER join acc_transactions as trans on l_amort.id_transaction = trans.id
|
INNER join acc_transactions as trans on l_amort.id_transaction = trans.id
|
||||||
INNER join acc_accounts as account on l_amort.id_account = account.id
|
INNER join acc_accounts as account on l_amort.id_account = account.id
|
||||||
|
|
@ -90,17 +110,9 @@
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
{{:assign filter_condition=$filter_condition|cat:"0)"}}
|
{{:assign filter_condition=$filter_condition|cat:"0)"}}
|
||||||
|
|
||||||
|
{{:assign autres_amortissements=false}}
|
||||||
{{#select
|
{{#select
|
||||||
line.id as l_id,
|
line.id_transaction as t_id
|
||||||
line.id_transaction as t_id,
|
|
||||||
line.credit as amort_amount,
|
|
||||||
line.label as l_label,
|
|
||||||
trans.date as t_date,
|
|
||||||
trans.label as t_label,
|
|
||||||
trans.id_year as amort_year,
|
|
||||||
account.id as account_id,
|
|
||||||
account.code as account_code,
|
|
||||||
account.label as account_label
|
|
||||||
FROM acc_transactions_lines AS line
|
FROM acc_transactions_lines AS line
|
||||||
INNER JOIN acc_accounts AS account ON account.id = line.id_account
|
INNER JOIN acc_accounts AS account ON account.id = line.id_account
|
||||||
INNER JOIN acc_transactions AS trans ON trans.id = line.id_transaction
|
INNER JOIN acc_transactions AS trans ON trans.id = line.id_transaction
|
||||||
|
|
@ -108,17 +120,18 @@
|
||||||
WHERE account.code LIKE "28%" AND credit > 0 AND (NOT trans.status & 16) AND !filter_condition
|
WHERE account.code LIKE "28%" AND credit > 0 AND (NOT trans.status & 16) AND !filter_condition
|
||||||
ORDER BY trans.date, trans.label;
|
ORDER BY trans.date, trans.label;
|
||||||
!filter_condition=$filter_condition
|
!filter_condition=$filter_condition
|
||||||
assign=autre_amort
|
|
||||||
}}
|
}}
|
||||||
{{#select
|
{{#select
|
||||||
id_transaction,
|
id_transaction,
|
||||||
id_related
|
id_related
|
||||||
FROM acc_transactions_links
|
FROM acc_transactions_links
|
||||||
WHERE id_transaction = :id_amort OR id_related = :id_amort;
|
WHERE id_transaction = :id_amort OR id_related = :id_amort
|
||||||
|
LIMIT 1
|
||||||
|
;
|
||||||
:id_amort=$t_id
|
:id_amort=$t_id
|
||||||
}}
|
}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{:assign var="autres_amortissements." value=$autre_amort}}
|
{{:assign autres_amortissements=true}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
|
||||||
|
|
@ -258,7 +271,7 @@
|
||||||
|
|
||||||
{{* Autres amortissements non rattachés *}}
|
{{* Autres amortissements non rattachés *}}
|
||||||
|
|
||||||
{{if $autres_amortissements != null}}
|
{{if $autres_amortissements}}
|
||||||
<p class="block alert">
|
<p class="block alert">
|
||||||
Il existe des écritures d'amortissement qui ne sont pas rattachés à une immobilisation ! <br />
|
Il existe des écritures d'amortissement qui ne sont pas rattachés à une immobilisation ! <br />
|
||||||
Utilisez le bouton « Rattacher une écriture » pour les afficher ; vous pourrez choisir d'en attacher certaines à cette immobilisation.
|
Utilisez le bouton « Rattacher une écriture » pour les afficher ; vous pourrez choisir d'en attacher certaines à cette immobilisation.
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,13 @@
|
||||||
{{* Infos de l'immobilisation *}}
|
{{* Infos de l'immobilisation *}}
|
||||||
{{#select
|
{{#select
|
||||||
line.debit as montant,
|
line.debit as montant,
|
||||||
|
trans.id AS trans_id,
|
||||||
trans.date as date_achat,
|
trans.date as date_achat,
|
||||||
trans.label
|
trans.label,
|
||||||
|
account.code as account_code
|
||||||
FROM acc_transactions_lines AS line
|
FROM acc_transactions_lines AS line
|
||||||
INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
|
INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
|
||||||
|
INNER JOIN acc_accounts AS account ON line.id_account = account.id
|
||||||
WHERE line.id = :line_id;
|
WHERE line.id = :line_id;
|
||||||
:line_id = $_GET.immo_id|intval
|
:line_id = $_GET.immo_id|intval
|
||||||
assign="ligne_immo"
|
assign="ligne_immo"
|
||||||
|
|
@ -27,11 +30,31 @@
|
||||||
{{:assign ts_mes=$date|strtotime}}
|
{{:assign ts_mes=$date|strtotime}}
|
||||||
{{:assign date_debut=$date}}
|
{{:assign date_debut=$date}}
|
||||||
{{:assign duree_amort=$duration}}
|
{{:assign duree_amort=$duration}}
|
||||||
{{if $amount != null}}
|
|
||||||
{{:assign var="ligne_immo.montant" value=$amount}}
|
|
||||||
{{/if}}
|
|
||||||
{{/load}}
|
{{/load}}
|
||||||
|
|
||||||
|
{{* 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 total_credits=0}}
|
||||||
|
{{#select
|
||||||
|
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
|
||||||
|
WHERE trans.id = :immo_id AND line.credit > 0 AND acc.code = :account;
|
||||||
|
:immo_id=$ligne_immo.trans_id
|
||||||
|
:account=$ligne_immo.account_code
|
||||||
|
}}
|
||||||
|
{{:assign total_credits="%d+%d"|math:$total_credits:$credit}}
|
||||||
|
{{/select}}
|
||||||
|
{{:assign var="ligne_immo.montant" value="%d-%d"|math:$ligne_immo.montant:$total_credits}}
|
||||||
|
|
||||||
{{* chercher des écritures d'amortissement liées à l'immobilisation *}}
|
{{* chercher des écritures d'amortissement liées à l'immobilisation *}}
|
||||||
{{#select
|
{{#select
|
||||||
SUM(l_amort.credit) as amort_amount,
|
SUM(l_amort.credit) as amort_amount,
|
||||||
|
|
@ -46,9 +69,7 @@
|
||||||
FROM acc_transactions_lines as l_immo
|
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 as t_immo on t_immo.id = l_immo.id_transaction
|
||||||
INNER JOIN acc_transactions_links as links
|
INNER JOIN acc_transactions_links as links
|
||||||
ON (t_immo.id = links.id_transaction
|
ON (t_immo.id = links.id_transaction OR t_immo.id = links.id_related)
|
||||||
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_transactions_lines as l_amort on amort_trans_id = l_amort.id_transaction
|
||||||
INNER join acc_transactions as trans on l_amort.id_transaction = trans.id
|
INNER join acc_transactions as trans on l_amort.id_transaction = trans.id
|
||||||
INNER JOIN acc_accounts AS account ON l_amort.id_account = account.id
|
INNER JOIN acc_accounts AS account ON l_amort.id_account = account.id
|
||||||
|
|
|
||||||
|
|
@ -14,10 +14,13 @@
|
||||||
|
|
||||||
{{#select
|
{{#select
|
||||||
line.debit as montant,
|
line.debit as montant,
|
||||||
|
trans.id AS trans_id,
|
||||||
trans.date as date_achat,
|
trans.date as date_achat,
|
||||||
trans.label
|
trans.label,
|
||||||
|
account.code as account_code
|
||||||
FROM acc_transactions_lines AS line
|
FROM acc_transactions_lines AS line
|
||||||
INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
|
INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
|
||||||
|
INNER JOIN acc_accounts AS account ON line.id_account = account.id
|
||||||
WHERE line.id = :line_id;
|
WHERE line.id = :line_id;
|
||||||
:line_id = $_GET.immo_id|intval
|
:line_id = $_GET.immo_id|intval
|
||||||
assign="ligne_immo"
|
assign="ligne_immo"
|
||||||
|
|
@ -25,11 +28,29 @@
|
||||||
{{else}}
|
{{else}}
|
||||||
{{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}}
|
{{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
{{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}
|
|
||||||
{{if $amount != null}}
|
{{* chercher des écritures liées à l'immo courante au crédit du même compte
|
||||||
{{:assign var="ligne_immo.montant" value=$amount}}
|
et déduire leur montant de celui de l'immo
|
||||||
{{/if}}
|
*}}
|
||||||
{{/load}}
|
{{:assign total_credits=0}}
|
||||||
|
{{#select
|
||||||
|
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
|
||||||
|
WHERE trans.id = :immo_id AND line.credit > 0 AND acc.code = :account;
|
||||||
|
:immo_id=$ligne_immo.trans_id
|
||||||
|
:account=$ligne_immo.account_code
|
||||||
|
}}
|
||||||
|
{{:assign total_credits="%d+%d"|math:$total_credits:$credit}}
|
||||||
|
{{/select}}
|
||||||
|
{{:assign var="ligne_immo.montant" value="%d-%d"|math:$ligne_immo.montant:$total_credits}}
|
||||||
|
|
||||||
{{:assign valeur_nette="%f-%f"|math:$ligne_immo.montant:$_GET.amort_amount}}
|
{{:assign valeur_nette="%f-%f"|math:$ligne_immo.montant:$_GET.amort_amount}}
|
||||||
{{:assign amort_comp=0}} {{* amortissement complémentaire jqà date sortie *}}
|
{{:assign amort_comp=0}} {{* amortissement complémentaire jqà date sortie *}}
|
||||||
|
|
|
||||||
|
|
@ -16,10 +16,10 @@
|
||||||
{{#select
|
{{#select
|
||||||
line.debit as montant,
|
line.debit as montant,
|
||||||
line.id_transaction,
|
line.id_transaction,
|
||||||
line.id_account,
|
trans.id AS trans_id,
|
||||||
trans.date as date_achat,
|
trans.date as date_achat,
|
||||||
trans.label,
|
trans.label,
|
||||||
acc.code,
|
acc.code as account_code,
|
||||||
id_project
|
id_project
|
||||||
FROM acc_transactions_lines AS line
|
FROM acc_transactions_lines AS line
|
||||||
INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
|
INNER JOIN acc_transactions AS trans ON line.id_transaction = trans.id
|
||||||
|
|
@ -30,11 +30,28 @@
|
||||||
}}
|
}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
|
||||||
{{#load type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}
|
{{* chercher des écritures liées à l'immo courante au crédit du même compte
|
||||||
{{if $amount != null}}
|
et déduire leur montant de celui de l'immo
|
||||||
{{:assign var="ligne_immo.montant" value=$amount}}
|
*}}
|
||||||
{{/if}}
|
{{:assign total_credits=0}}
|
||||||
{{/load}}
|
{{#select
|
||||||
|
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
|
||||||
|
WHERE trans.id = :immo_id AND line.credit > 0 AND acc.code = :account;
|
||||||
|
:immo_id=$ligne_immo.trans_id
|
||||||
|
:account=$ligne_immo.account_code
|
||||||
|
}}
|
||||||
|
{{:assign total_credits="%d+%d"|math:$total_credits:$credit}}
|
||||||
|
{{/select}}
|
||||||
|
{{:assign var="ligne_immo.montant" value="%d-%d"|math:$ligne_immo.montant:$total_credits}}
|
||||||
|
|
||||||
{{:assign valeur_nette="%f-%f"|math:$ligne_immo.montant:$_GET.amort_amount}}
|
{{:assign valeur_nette="%f-%f"|math:$ligne_immo.montant:$_GET.amort_amount}}
|
||||||
{{:assign amort_comp=0}} {{* amortissement complémentaire jqà date sortie *}}
|
{{:assign amort_comp=0}} {{* amortissement complémentaire jqà date sortie *}}
|
||||||
|
|
@ -265,14 +282,11 @@
|
||||||
|
|
||||||
{{:include
|
{{:include
|
||||||
file="./_get_amort_code.html"
|
file="./_get_amort_code.html"
|
||||||
code_immo=$ligne_immo.code
|
code_immo=$ligne_immo.account_code
|
||||||
keep="code_amort"
|
keep="code_amort"
|
||||||
}}
|
}}
|
||||||
|
|
||||||
{{*
|
{{* numéros de comptes ; voir info.org *}}
|
||||||
Utilisation des « anciens » numéros de comptes because conflit
|
|
||||||
avec les nouveaux numéros ; voir info.org
|
|
||||||
*}}
|
|
||||||
{{:assign vnc_code="652"}}
|
{{:assign vnc_code="652"}}
|
||||||
{{:assign cession_code="757"}}
|
{{:assign cession_code="757"}}
|
||||||
|
|
||||||
|
|
@ -280,7 +294,7 @@
|
||||||
{{:assign var="liste_codes.687" name="except_account"}}
|
{{:assign var="liste_codes.687" name="except_account"}}
|
||||||
{{:assign var="liste_codes.462" name="creance_account"}}
|
{{:assign var="liste_codes.462" name="creance_account"}}
|
||||||
{{:assign var="liste_codes.%s"|args:$code_amort name="amort_account"}}
|
{{:assign var="liste_codes.%s"|args:$code_amort name="amort_account"}}
|
||||||
{{:assign var="liste_codes.%s"|args:$ligne_immo.code name="immo_account"}}
|
{{:assign var="liste_codes.%s"|args:$ligne_immo.account_code name="immo_account"}}
|
||||||
{{:assign var="liste_codes.%s"|args:$vnc_code name="vnc_account"}}
|
{{:assign var="liste_codes.%s"|args:$vnc_code name="vnc_account"}}
|
||||||
{{:assign var="liste_codes.%s"|args:$cession_code name="cession_account"}}
|
{{:assign var="liste_codes.%s"|args:$cession_code name="cession_account"}}
|
||||||
{{:assign condition=$liste_codes|keys|implode:","}}
|
{{:assign condition=$liste_codes|keys|implode:","}}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue