Compare commits

..

No commits in common. "53695b65470f3691cb526dddaa59c04509533382" and "d2b0f4eaae468cb5987168595de9dbcbe96c426c" have entirely different histories.

14 changed files with 191 additions and 239 deletions

View file

@ -1,6 +1,6 @@
{{* -*- brindille -*- *}} {{* -*- brindille -*- *}}
{{* Liste des immobilisations sorties du bilan *}} {{* Liste des immobilisations archivées *}}
<p class="help"> <p class="help">
Cette page liste les immobilisations sorties du bilan Cette page liste les immobilisations sorties du bilan
</p> </p>
@ -8,21 +8,48 @@
{{* Immobilisation avec une écriture de sortie de bilan *}} {{* Immobilisation avec une écriture de sortie de bilan *}}
{{:include file="_get_config.html" keep="module.config"}} {{:include file="_get_config.html" keep="module.config"}}
{{* lister les immobilisations *}} {{:assign accounts_condition="("}}
{{:assign account_condition="("}}
{{#foreach from=$module.config.prefixes item="code"}} {{#foreach from=$module.config.prefixes item="code"}}
{{:assign code=$code|cat:"%"|quote_sql}} {{:assign code=$code|cat:"%"|quote_sql}}
{{:assign account_condition=$account_condition|cat:"account.code LIKE "|cat:$code|cat:" OR "}} {{:assign accounts_condition=$accounts_condition|cat:"account.code LIKE "|cat:$code|cat:" OR "}}
{{/foreach}} {{/foreach}}
{{:assign account_condition=$account_condition|cat:"0)"}} {{:assign accounts_condition=$accounts_condition|cat:"0)"}}
{{:assign condition=$accounts_condition|cat:" AND acc2.code = account.code AND line.debit > 0 AND line.debit = line2.credit AND NOT (trans.status & 16)"}}
{{:assign filter_condition=" AND NOT ("}} {{:assign filter_condition=" NOT ("}}
{{#foreach from=$module.config.filters item="filter"}} {{#foreach from=$module.config.filters item="filter"}}
{{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}} {{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}}
{{:assign filter_condition=$filter_condition|cat:" trans_label LIKE "|cat:$filter|cat:" OR "}} {{:assign filter_condition=$filter_condition|cat:" trans_label LIKE "|cat:$filter|cat:" OR "}}
{{/foreach}} {{/foreach}}
{{:assign filter_condition=$filter_condition|cat:"0)"}} {{:assign filter_condition=$filter_condition|cat:"0)"}}
{{:assign condition=$account_condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"|cat:$filter_condition}} {{:assign condition=$condition|cat:" AND "|cat:$filter_condition}}
{{#select
trans.id as trans_id,
trans.label as trans_label,
trans.date as trans_date,
line.id as immo_id,
account.id as account_id,
account.code as account_code,
account.label as account_label,
line.debit AS debit,
project.label as project_label,
trans.id_year as trans_id_year,
trans2.date as exit_date
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_transactions_lines AS line2 ON line.debit = line2.credit
INNER JOIN acc_transactions AS trans2 ON trans2.id = line2.id_transaction
INNER JOIN acc_accounts AS acc2 ON acc2.id = line2.id_account
LEFT JOIN acc_projects AS project ON line.id_project = project.id
WHERE !condition
ORDER BY trans.date DESC;
!condition=$condition
assign="immo_archivee"
}}
{{:assign var="immo_archivees.%s"|args:$trans_id value=$immo_archivee}}
{{/select}}
<section class="immobilisation"> <section class="immobilisation">
<table class="list"> <table class="list">
@ -40,79 +67,28 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{{:assign nb_immo=0}}
{{:assign nb_immo=0}} {{:assign total_immo = 0}}
{{:assign total_immo = 0}} {{:assign total_cessions = 0}}
{{:assign total_cessions = 0}} {{#foreach from=$immo_archivees}}
{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}}
{{#select {{:assign compte_url="%s/acc/accounts/journal.php?id=%s&year=%s"|args:$admin_url:$account_id:$trans_id_year}}
trans.id as trans_id, {{:assign nb_immo="%d+1"|math:$nb_immo}}
trans.label as trans_label, {{:assign total_immo="%d+%d"|math:$total_immo:$debit}}
trans.date as trans_date, {{:assign var="montant" from="sommes_immo.%s"|args:$account_code}}
trans.id_year as trans_id_year, {{:assign var="sommes_immo.%s"|args:$account_code value="%d+%d"|math:$montant:$debit}}
line.id as immo_id, <tr>
line.debit AS debit, <td class="num"><a href={{$trans_url}}>#{{$trans_id}}</a></td>
account.id as account_id, <td>{{$trans_date|date_short}}</td>
account.code as account_code, <td>{{$exit_date|date_short}}</td>
account.label as account_label, <td>{{$trans_label}}</td>
project.label as project_label <td class="money">{{"%f"|math:$debit|money_html:false|raw}}</td>
FROM acc_transactions AS trans <td><a href={{$compte_url}}>{{$account_code}}</a></td>
INNER JOIN acc_transactions_lines AS line ON line.id_transaction = trans.id <td>{{$account_label}}</td>
INNER JOIN acc_accounts AS account ON line.id_account = account.id <td>{{$project_label}}</td>
INNER JOIN acc_years AS years ON trans.id_year = years.id <td class="actions">
LEFT JOIN acc_projects AS project ON line.id_project = project.id </td>
WHERE !condition </tr>
ORDER BY trans.date DESC;
!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"}}
{{/load}}
{{if $status == "ignored"}}
{{:continue}}
{{/if}}
{{* voir s'il existe une écriture liée qui solde l'immobilisation *}}
{{#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
;
:trans_id = $trans_id
:montant_immo = $montant_immo
:account_code = $account_code
}}
{{:assign status="archived"}}
{{:assign exit_date=$exit_date}}
{{/select}}
{{if $status != "archived"}}
{{:continue}}
{{/if}}
{{: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}}
{{:assign total_immo="%d+%d"|math:$total_immo:$montant_immo}}
{{: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}}
{{* 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,
@ -124,33 +100,21 @@
acc.label 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
WHEN link.id_related = :trans_id THEN link.id_transaction WHEN link.id_related = :trans_id THEN link.id_transaction
END) = trans.id END) = trans.id
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
INNER JOIN acc_accounts AS acc ON line.id_account = acc.id INNER JOIN acc_accounts AS acc ON line.id_account = acc.id
WHERE (link.id_transaction = :trans_id OR link.id_related = :trans_id) AND acc.code = 462 WHERE (link.id_transaction = :trans_id OR link.id_related = :trans_id) AND acc.code = 462
; ;
:trans_id = $trans_id :trans_id = $trans_id
}} }}
{{:assign var="montant" from="montant_cessions.%d"|args:$account_code}} {{:assign var="montant" from="montant_cessions.%d"|args:$account_code}}
{{:assign var="montant_cessions.%d"|args:$account_code value="%d+%d"|math:$montant:$debit}} {{:assign var="montant_cessions.%d"|args:$account_code value="%d+%d"|math:$montant:$debit}}
{{:assign total_cessions="%d+%d"|math:$total_cessions:$debit}} {{:assign total_cessions="%d+%d"|math:$total_cessions:$debit}}
{{/select}} {{/select}}
{{/foreach}}
<tr> </tbody>
<td class="num"><a href={{$trans_url}}>#{{$trans_id}}</a></td>
<td>{{$trans_date|date_short}}</td>
<td>{{$exit_date|date_short}}</td>
<td>{{$trans_label}}</td>
<td class="money">{{"%f"|math:$montant_immo|money_html:false|raw}}</td>
<td><a href={{$compte_url}}>{{$account_code}}</a></td>
<td>{{$account_label}}</td>
<td>{{$project_label}}</td>
<td class="actions">
</td>
</tr>
{{/select}}
</tbody> </tbody>
<tfoot> <tfoot>
{{if $total_immo != 0}} {{if $total_immo != 0}}
@ -166,18 +130,18 @@
<td></td> <td></td>
<td class="actions"></td> <td class="actions"></td>
</tr> </tr>
{{/foreach}} {{/foreach}}
<tr> <tr>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
<td class="strong">Total des immobilisations</td> <td class="strong">Total des immobilisations</td>
<td class="money strong">{{$total_immo|money_html:false|raw}}</td> <td class="money strong">{{$total_immo|money_html:false|raw}}</td>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
<td class="actions"></td> <td class="actions"></td>
</tr> </tr>
{{/if}} {{/if}}
{{if $total_cessions != 0}} {{if $total_cessions != 0}}
<tr> <tr>

View file

@ -31,21 +31,22 @@
{{* lister les immobilisations *}} {{* lister les immobilisations *}}
{{:include file="_get_config.html" keep="module.config"}} {{:include file="_get_config.html" keep="module.config"}}
{{:assign account_condition="("}} {{:assign condition="("}}
{{#foreach from=$module.config.prefixes item="code"}} {{#foreach from=$module.config.prefixes item="code"}}
{{:assign code=$code|cat:"%"|quote_sql}} {{:assign code=$code|cat:"%"|quote_sql}}
{{:assign account_condition=$account_condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}} {{:assign condition=$condition|cat:" account.code LIKE "|cat:$code|cat:" OR "}}
{{/foreach}} {{/foreach}}
{{:assign account_condition=$account_condition|cat:"0)"}} {{:assign condition=$condition|cat:"0)"}}
{{:assign condition=$condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"}}
{{:assign filter_condition=" AND NOT ("}} {{:assign filter_condition=" NOT ("}}
{{#foreach from=$module.config.filters item="filter"}} {{#foreach from=$module.config.filters item="filter"}}
{{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}} {{:assign filter="%"|cat:$filter|cat:"%"|quote_sql}}
{{:assign filter_condition=$filter_condition|cat:" trans_label LIKE "|cat:$filter|cat:" OR "}} {{:assign filter_condition=$filter_condition|cat:" trans_label LIKE "|cat:$filter|cat:" OR "}}
{{/foreach}} {{/foreach}}
{{:assign filter_condition=$filter_condition|cat:"0)"}} {{:assign filter_condition=$filter_condition|cat:"0)"}}
{{:assign condition=$condition|cat:" AND "|cat:$filter_condition}}
{{:assign condition=$account_condition|cat:" AND debit > 0 AND NOT (trans.status & 16)"|cat:$filter_condition}}
{{:assign nb_immo=0}} {{:assign nb_immo=0}}
{{:assign total_immo = 0}} {{:assign total_immo = 0}}
{{#select {{#select
@ -53,10 +54,10 @@
trans.label as trans_label, trans.label as trans_label,
trans.date as trans_date, trans.date as trans_date,
line.id as immo_id, line.id as immo_id,
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, account.label as account_label,
line.debit AS debit,
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
@ -69,15 +70,11 @@
{{: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 duration=null}} {{:assign duration=null}}
{{: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 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"}}
@ -87,17 +84,25 @@
{{/if}} {{/if}}
{{* voir s'il existe une écriture qui solde l'immobilisation *}} {{* voir s'il existe une écriture qui solde l'immobilisation *}}
{{:assign ignore=false}}
{{#select {{#select
line.id AS line line.id AS line,
line.id_transaction AS trans,
line.debit,
line.label,
line2.id AS line2,
line2.id_transaction AS trans2,
line2.credit,
line2.label
FROM acc_transactions_lines AS line FROM acc_transactions_lines AS line
INNER JOIN acc_accounts AS acc ON acc.id = line.id_account 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 INNER JOIN acc_transactions_lines AS line2 ON line2.id_account = acc.id
WHERE WHERE
line.id = :line_id line.id = :line_id
AND line2.credit = :montant_immo; AND line2.credit = line.debit;
:line_id = $immo_id|intval :line_id = $immo_id|intval
:montant_immo = $montant_immo }}
}} {{:assign ignore=true}}
{{:assign status="archived"}} {{:assign status="archived"}}
{{/select}} {{/select}}
{{if $status == "archived"}} {{if $status == "archived"}}
@ -133,37 +138,46 @@
{{:assign exist_amort=false}} {{:assign exist_amort=false}}
{{:assign amort_amount=0}} {{:assign amort_amount=0}}
{{else}} {{else}}
{{:assign exist_amort=true}}
{{:assign amort_amount=$amort_amount}} {{:assign amort_amount=$amort_amount}}
{{:assign exist_amort=true}}
{{/if}} {{/if}}
{{/select}} {{/select}}
{{* classement par onglet *}} {{* classement par onglet *}}
{{if $type_immo == "managed" && $amort_amount >= $montant_immo}}{{:continue}}{{/if}} {{if $type_immo == "managed" && $amort_amount >= $debit}}{{:continue}}{{/if}}
{{if $type_immo == "managed" && $status == "amortized"}}{{:continue}}{{/if}} {{if $type_immo == "managed" && $status == "amortized"}}{{:continue}}{{/if}}
{{if $status == "unknown" && ! $exist_amort}}{{:continue}}{{/if}} {{if $status == "unknown" && ! $exist_amort}}{{:continue}}{{/if}}
{{if $type_immo == "amortized" && $amort_amount < $montant_immo && $status != "amortized"}}{{:continue}}{{/if}} {{if $type_immo == "amortized" && $amort_amount < $debit && $status != "amortized"}}{{:continue}}{{/if}}
{{:assign nb_immo="%d+1"|math:$nb_immo}} {{:assign nb_immo="%d+1"|math:$nb_immo}}
{{:assign total_immo="%d+%d"|math:$total_immo:$montant_immo}} {{:assign total_immo="%d+%d"|math:$total_immo:$debit}}
{{:assign var="montant" from="sommes_immo.%s"|args:$account_code}} {{: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}} {{:assign var="sommes_immo.%s"|args:$account_code value="%d+%d"|math:$montant:$debit}}
<tr> <tr>
<td class="num"><a href={{$trans_url}}>#{{$trans_id}}</a></td> <td class="num"><a href={{$trans_url}}>#{{$trans_id}}</a></td>
<td>{{$trans_date|date_short}}</td> <td>{{$trans_date|date_short}}</td>
<td>{{$trans_label}}</td> <td>{{$trans_label}}</td>
<td class="money">{{$montant_immo|money_html:false|raw}}</td> <td class="money">{{$debit|money_html:false|raw}}</td>
<td class="money">{{if $duration != null}}{{$duration}}{{/if}}</td> <td class="money">{{if $duration != null}}{{$duration}}{{/if}}</td>
<td class="money">{{$amort_amount|money_html:false|raw}}</td> <td class="money">{{$amort_amount|money_html:false|raw}}</td>
<td class="money">{{"%d-%d"|math:$montant_immo:$amort_amount|money_html:false|raw}}</td> <td class="money">{{"%d-%d"|math:$debit:$amort_amount|money_html:false|raw}}</td>
<td><a href={{$compte_url}}>{{$account_code}}</a></td> <td><a href={{$compte_url}}>{{$account_code}}</a></td>
<td class="actions"> <td class="actions">
{{:linkbutton {{if ! $exist_amort}}
label="Paramètres" {{:linkbutton
href="add_infos.html?immo_id=%s&type_immo=%s"|args:$immo_id:$type_immo label="Paramètres"
shape="settings" href="add_infos.html?immo_id=%s&type_immo=%s"|args:$immo_id:$type_immo
target="_dialog" shape="settings"
}} target="_dialog"
}}
{{elseif $status == "unknown"}}
{{:linkbutton
label="Paramètres"
href="add_infos.html?immo_id=%s&type_immo=%s"|args:$immo_id:$type_immo
shape="settings"
target="_dialog"
}}
{{/if}}
{{:linkbutton {{:linkbutton
label="Amortissements" 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_id:$type_immo

View file

@ -154,12 +154,21 @@
<td><a href={{$compte_url}}>{{$account_code}}</a></td> <td><a href={{$compte_url}}>{{$account_code}}</a></td>
<td>{{$account_label}}</td> <td>{{$account_label}}</td>
<td class="actions"> <td class="actions">
{{:linkbutton {{if $status == "unknown"}}
label="Paramètres" {{:linkbutton
href="add_infos.html?immo_id=%s&type_immo=other"|args:$immo_id label="Paramètres"
shape="settings" href="add_infos.html?immo_id=%s&type_immo=other"|args:$immo_id
target="_dialog" shape="settings"
}} target="_dialog"
}}
{{else}}
{{:linkbutton
label="Paramètres"
href="add_infos.html?immo_id=%s&type_immo=other"|args:$immo_id
shape="settings"
target="_dialog"
}}
{{/if}}
{{:linkbutton {{:linkbutton
label="Amortissements" label="Amortissements"
href="amortization.html?immo_id=%s&type_immo=other"|args:$immo_id href="amortization.html?immo_id=%s&type_immo=other"|args:$immo_id

View file

@ -5,31 +5,29 @@
@param type_immo : managed, amortized, archived, other @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 type="immo" assign="info_immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}
{{/load}} {{/load}}
{{#select
trans.date as date_achat,
line.debit as montant
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.immo_id
assign=ligne_immo
}}
{{/select}}
{{* 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}}
{{* chercher la date d'acquisition de l'immobilisation *}}
{{#select
trans.date as date_achat
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.immo_id
assign=ligne_immo
}}
{{/select}}
{{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}}
@ -40,21 +38,9 @@
{{:assign da=$ligne_immo.date_achat|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}} {{: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}}
{{if $_POST.classify == "amortized"}} {{if $_POST.classify == "amortized"}}
{{if $info_immo.duration == null}} {{:assign duration=0}}
{{:assign duration=0}}
{{else}}
{{:assign duration=$info_immo.duration}}
{{/if}}
{{:assign status="amortized"}} {{: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}} {{else}}
{{:assign duration=$_POST.duree|intval}} {{:assign duration=$_POST.duree|intval}}
{{if $duration <= 0}} {{if $duration <= 0}}
@ -62,7 +48,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 *}}
@ -71,22 +56,18 @@
{{else}} {{else}}
{{:assign key=$info_immo.key}} {{:assign key=$info_immo.key}}
{{/if}} {{/if}}
{{:save {{:save
key=$key key=$key
validate_schema="schema.json" validate_schema="schema.json"
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
}} }}
{{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"}}
{{:assign type_immo="other"}}
{{else}} {{else}}
{{:assign type_immo=$_GET.type_immo}} {{:assign type_immo=$_GET.type_immo}}
{{/if}} {{/if}}
@ -95,47 +76,53 @@
{{:form_errors}} {{:form_errors}}
{{/form}} {{/form}}
{{:admin_header title="Classer l'immobilisation" custom_css=$custom_css current="module_amortization"}} {{:admin_header title="Informations amortissement" custom_css=$custom_css current="module_amortization"}}
{{* barre de navigation *}} {{* barre de navigation *}}
{{if ! $dialog}} {{if ! $dialog}}
{{:include file="_nav.html" current="index"}} {{:include file="_nav.html" current="index"}}
{{/if}} {{/if}}
{{:assign choix_defaut=$_GET.type_immo}} {{if $info_immo == null}}
{{:assign default=$_GET.type_immo}}
{{if $info_immo != null}}
{{:assign date_defaut=$info_immo.date}}
{{:assign duree_defaut=$info_immo.duration}}
{{:assign montant_defaut=$info_immo.amount}}
{{else}} {{else}}
{{:assign duree_defaut=null}} {{:assign default=$info_immo.status}}
{{:assign montant_defaut=null}} {{/if}}
{{if $_GET.type_immo == "managed" || $_GET.type_immo == "amortized"}}
{{:assign disabled=0}}
{{else}}
{{:assign disabled=1}}
{{/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 et la durée d'amortissement
l'immobilisation et la durée d'amortissement *}}
*}}
<form method="post" action=""> <form method="post" action="">
<fieldset> <fieldset id="classement_immo">
<legend>Classement</legend> <legend>Classement</legend>
<dl id="classement_immo"> <dl>
<dt><label>Faites un choix</label> <b>(obligatoire)</b></dt> <dt><label>Faites un choix</label> <b>(obligatoire)</b></dt>
{{:input type="radio-btn" name="classify" value="managed" label="Immobilisation à amortir" help="Cette immobilisation sera classée parmi les immobilisations amortissables" default=$choix_defaut}} {{:input type="radio-btn" name="classify" value="managed" label="Amortir" default=$default}}
{{:input type="radio-btn" name="classify" value="amortized" label="Amortissement terminé" help="Cette immobilisation sera classée parmi les immobilisations amorties" default=$choix_defaut}} {{:input type="radio-btn" name="classify" value="amortized" label="Amortissement terminé" help="Cette immobilisation sera classée parmi les immobilisations amorties" default=$default}}
{{:input type="radio-btn" name="classify" value="archived" label="Immobilisation sortie du bilan" help="Cette immobilisation sera classée parmi les immobilisations sorties du bilan" default=$choix_defaut}} {{:input type="radio-btn" name="classify" value="ignored" label="Ignorer l'écriture" help="Cette écriture n'apparaitra plus dans la liste des immobilisations" default=$default}}
{{:input type="radio-btn" name="classify" value="ignored" label="Immobilisation à ignorer" help="Cette écriture n'apparaitra plus dans la liste des immobilisations" default=$choix_defaut}}
</dl> </dl>
</fieldset> </fieldset>
<fieldset id="infos_immo"> <fieldset id="infos_immo">
<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}} {{if $info_immo != null}}
{{:input type="money" name="montant" label="Montant" default=$montant_defaut help="à renseigner uniquement si différent du montant de l'acquisition"}} {{:assign date_defaut=$info_immo.date}}
{{: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"}} {{:assign duree_defaut=$info_immo.duration}}
{{else}}
{{:assign duree_defaut=null}}
{{/if}}
<div id="div_inputs">
{{:input type="number" name="duree" label="Durée d'amortissement" default=$duree_defaut required=true min=1 disabled=$disabled}}
{{:input type="date" name="date_mes" label="Date de mise en service" default=$date_defaut disabled=$disabled help="à renseigner uniquement si différente de la date d'acquisition"}}
</div>
</dl> </dl>
</fieldset> </fieldset>
@ -147,23 +134,24 @@
{{:admin_footer}} {{:admin_footer}}
{{* activer/désactiver les champs de saisie *}}
<script type="text/javascript"> <script type="text/javascript">
var info_immo = {{$info_immo|json_encode|raw}}; function toggleInputFields(idiv, idrb1) {
const rb1 = document.getElementById(idrb1);
// afficher/masquer les champs de saisie const fs = document.getElementById(idiv);
function toggleInputs(event) { for (let field of fs.querySelectorAll("input")) {
const classement_immo = document.getElementById('classement_immo'); if (! rb1.checked) {
const managed = classement_immo.querySelector('input[type=radio][value=managed]'); field.setAttribute("disabled","disabled");
const amortized = classement_immo.querySelector('input[type=radio][value=amortized]'); }
if (managed.checked) { else {
g.toggle('#infos_immo', true); field.removeAttribute("disabled");
} else if (amortized.checked && info_immo != null && info_immo.duration != 0) { }
g.toggle('#infos_immo', true);
} else {
g.toggle('#infos_immo', false);
} }
} }
toggleInputs();
function toggleInputs(event) {
toggleInputFields('div_inputs', 'f_classify_managed');
}
(function () { (function () {
const radios = document.querySelectorAll('input[name="classify"]'); const radios = document.querySelectorAll('input[name="classify"]');

View file

@ -23,17 +23,14 @@
{{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}} {{:error message="Immobilisation %s non trouvée"|args:$_GET.immo_id}}
{{/select}} {{/select}}
{{:assign date_debut=$ligne_immo.date}} {{:assign date_debut=$ligne_immo.date}}
{{:assign solde=$ligne_immo.montant}}
{{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.trans_id}} {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$ligne_immo.trans_id}}
{{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} {{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}
{{: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}}
{{:assign solde=$ligne_immo.montant}}
{{* chercher des écritures d'amortissement liées à l'immobilisation *}} {{* chercher des écritures d'amortissement liées à l'immobilisation *}}
{{#select {{#select
@ -122,6 +119,7 @@
{{/select}} {{/select}}
{{/select}} {{/select}}
{{:admin_header title="Liste des amortissements" custom_css="./style.css" current="module_amortization"}} {{:admin_header title="Liste des amortissements" custom_css="./style.css" current="module_amortization"}}
{{* barre de navigation *}} {{* barre de navigation *}}
@ -206,7 +204,7 @@
</dl> </dl>
</div> </div>
<h3 class="ruler">Amortissements enregistrés</h3> <h3 class="center-block ruler">Amortissements enregistrés</h3>
{{if $linked_lines != null}} {{if $linked_lines != null}}
<section class="amortissement"> <section class="amortissement">
<table class="list"> <table class="list">
@ -215,7 +213,7 @@
<th></th> <th></th>
<th>Date</th> <th>Date</th>
<th class="nombre">Montant</th> <th class="nombre">Montant</th>
<th class="nombre">Valeur nette</th> <th class="nombre">Solde</th>
<th>Libellé</th> <th>Libellé</th>
<th>N° compte</th> <th>N° compte</th>
<th>Compte</th> <th>Compte</th>

View file

@ -27,9 +27,6 @@
{{: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 d'amortissement liées à l'immobilisation *}} {{* chercher des écritures d'amortissement liées à l'immobilisation *}}

View file

@ -25,11 +25,6 @@
{{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}}
{{:assign var="ligne_immo.montant" value=$amount}}
{{/if}}
{{/load}}
{{: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 *}}

View file

@ -1,5 +1,5 @@
name="Amortissements" name="Amortissements"
description="Immobilisations et amortissements\nversion 0.28" description="Immobilisations et amortissements\nversion 0.27"
author="Jean-Christophe Engel" author="Jean-Christophe Engel"
author_url="https://gitea.zaclys.com/lesanges" author_url="https://gitea.zaclys.com/lesanges"
home_button=false home_button=false

View file

@ -79,7 +79,7 @@
{{if $autres_amortissements != null}} {{if $autres_amortissements != null}}
<section class="amortissement"> <section class="amortissement">
<h3 class="ruler">Immobilisation « {{$ligne_immo.label}} »</h3> <h3 class="center-block ruler">Immobilisation « {{$ligne_immo.label}} »</h3>
<table class="list"> <table class="list">
<thead> <thead>
<tr> <tr>

View file

@ -34,9 +34,6 @@
{{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} {{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}}
{{:assign duree=$duration}} {{:assign duree=$duration}}
{{:assign date_debut=$date}} {{:assign date_debut=$date}}
{{if $amount != null}}
{{:assign var="ligne_immo.montant" value=$amount}}
{{/if}}
{{else}} {{else}}
{{:error message="Vous devez renseigner la date de mise en service et la durée d'immobilisation"}} {{:error message="Vous devez renseigner la date de mise en service et la durée d'immobilisation"}}
{{/load}} {{/load}}

View file

@ -14,10 +14,6 @@
"description": "durée de l'amortissement en années", "description": "durée de l'amortissement en années",
"type": "integer" "type": "integer"
}, },
"amount" : {
"description": "montant de l'immobilisation si besoin",
"type": ["integer", "null"]
},
"date" : { "date" : {
"description" : "date de mise en service de l'immobilisation", "description" : "date de mise en service de l'immobilisation",
"type" : ["string", "null"], "type" : ["string", "null"],

View file

@ -100,6 +100,7 @@ function displayAmort(id_immo, id_duree, id_amort, id_years, id_exercices, id_mo
{ {
const div_erreur = document.getElementById(id_erreur); const div_erreur = document.getElementById(id_erreur);
div_erreur.setAttribute('class', 'hidden'); div_erreur.setAttribute('class', 'hidden');
// document.getElementById(id_erreur).setAttribute('class', 'hidden');
let case_montant = document.getElementById(id_montant); let case_montant = document.getElementById(id_montant);
const selected_year = document.getElementById(id_exercices).value; const selected_year = document.getElementById(id_exercices).value;
if (selected_year == '') { if (selected_year == '') {
@ -122,6 +123,7 @@ function displayAmort(id_immo, id_duree, id_amort, id_years, id_exercices, id_mo
date_fin = date_choisie; date_fin = date_choisie;
} else { } else {
div_erreur.setAttribute('class', ''); div_erreur.setAttribute('class', '');
// document.getElementById(id_erreur).setAttribute('class', '');
} }
} }
const montant_immo = Number(document.getElementById(id_immo).value); const montant_immo = Number(document.getElementById(id_immo).value);

View file

@ -34,14 +34,9 @@ h2[class="aide"], h3[class="aide"] {
content: ' : '; content: ' : ';
} }
.informations dl.describe {
grid-template-columns : 20rem 1fr;
}
.informations dl.describe > dt { .informations dl.describe > dt {
flex: 0 0 15rem; flex: 0 0 15rem;
margin-right: 0; margin-right: 0;
white-space: nowrap;
} }
.informations dl.describe > dd { .informations dl.describe > dd {

View file

@ -31,9 +31,6 @@
{{/select}} {{/select}}
{{#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}}
{{if $amount != null}}
{{:assign var="ligne_immo.montant" value=$amount}}
{{/if}}
{{/load}} {{/load}}
{{:assign valeur_nette="%f-%f"|math:$ligne_immo.montant:$_GET.amort_amount}} {{:assign valeur_nette="%f-%f"|math:$ligne_immo.montant:$_GET.amort_amount}}