diff --git a/_immobilisations.html b/_immobilisations.html index 64df5fb..2f28b30 100644 --- a/_immobilisations.html +++ b/_immobilisations.html @@ -58,18 +58,16 @@ {{: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 duration=null}} + {{* voir si l'immo est prise en charge *}} {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}} {{:assign duration=$duration}} - {{if $status == "ignored"}} - {{:assign amortissable="non"}} - {{else}} - {{:assign amortissable="oui"}} - {{/if}} + {{:assign status=$status}} {{else}} {{:assign amortissable="nsp"}} + {{:assign status="unknown"}} {{/load}} - {{if $amortissable == "non"}} + {{if $status == "ignored"}} {{:continue}} {{/if}} @@ -93,8 +91,9 @@ :line_id = $immo_id|intval }} {{:assign ignore=true}} + {{:assign status="archived"}} {{/select}} - {{if $ignore}} + {{if $status == "archived"}} {{:continue}} {{/if}} @@ -132,13 +131,12 @@ {{/if}} {{/select}} + {{* classement par onglet *}} - {{if $type_immo == "encours" && $amort_amount >= $debit || - $type_immo == "amortie" && $amort_amount < $debit || - $amortissable == "nsp" && ! $exist_amort - }} - {{:continue}} - {{/if}} + {{if $type_immo == "encours" && $amort_amount >= $debit}}{{:continue}}{{/if}} + {{if $type_immo == "encours" && $status == "amortized"}}{{:continue}}{{/if}} + {{if $status == "unknown" && ! $exist_amort}}{{:continue}}{{/if}} + {{if $type_immo == "amortie" && $amort_amount < $debit && $status != "amortized"}}{{:continue}}{{/if}} {{:assign nb_immo="%d+1"|math:$nb_immo}} #{{$trans_id}} @@ -156,7 +154,7 @@ shape="settings" target="_dialog" }} - {{elseif $amortissable == "nsp"}} + {{elseif $status == "unknown"}} {{:linkbutton label="Paramètres" href="add_infos.html?immo_id=%s&amort=1&op=new&type_immo=%s"|args:$immo_id:$type_immo diff --git a/_immobilisations_autres.html b/_immobilisations_autres.html index 9924fed..4444ac8 100644 --- a/_immobilisations_autres.html +++ b/_immobilisations_autres.html @@ -6,9 +6,14 @@

Autres immobilisations

{{:assign nb_immo=0}} +
+ @@ -52,13 +57,14 @@ }} {{: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}} + {{* voir si l'immo est prise en charge *}} {{#load type="immo" where="$$.line = :line_id" :line_id=$immo_id|intval}} {{:assign status=$status}} {{else}} - {{:assign status="nsp"}} + {{:assign status="unknown"}} {{/load}} - {{if $status != "ignored" && $status != "nsp"}} + {{if $status != "unknown"}} {{:continue}} {{/if}} @@ -87,7 +93,7 @@ account.code LIKE '28%'; :line_id = $immo_id|intval }} - {{if $status == "nsp" && $amort_amount != null}} + {{if $status == "unknown" && $amort_amount != null}} {{:assign ignore=true}} {{else}} {{:assign ignore=false}} @@ -100,6 +106,11 @@ {{:assign nb_immo="%d+1"|math:$nb_immo}} + @@ -107,16 +118,16 @@ {{/select}} + + {{:assign var="actions.amortize" value="Marquer l'immobilisation amortie"}} + {{:assign var="actions.ignore" value="Ignorer l'écriture"}} + + + + + + + +
+ + + Date Libellé
+ {{:input type="checkbox" name="check[%s]"|args:$immo_id value=$immo_id default=0}} + + + #{{$trans_id}} {{$trans_date|date_short}} {{$trans_label}}{{$account_code}} {{$account_label}} - {{if $status == "nsp"}} + {{if $status == "unknown"}} {{:linkbutton - label="Amortir" + label="Paramètres" href="add_infos.html?immo_id=%s&amort=0&op=new&type_immo=autre"|args:$immo_id shape="settings" target="_dialog" }} {{else}} {{:linkbutton - label="Amortir" + label="Paramètres" href="add_infos.html?immo_id=%s&amort=0&op=modif&type_immo=autre"|args:$immo_id shape="settings" target="_dialog" @@ -131,7 +142,30 @@
+ + + Pour les écritures cochées : +{{* + + + {csrf_field key="projects_action"} +*}} + + {{:input type="select" name="actions" options=$actions default_empty="— Choisir une action à effectuer —"}} +
+
{{if $nb_immo == 0}}

Aucune immobilisation

{{/if}} diff --git a/add_infos.html b/add_infos.html index 706179f..3008736 100644 --- a/add_infos.html +++ b/add_infos.html @@ -4,7 +4,7 @@ @param immo_id @param amort = 1 si immo amortissable, 0 si non @param op = new ou modif - @param type_immo : encours, sortie, amortie, autre + @param type_immo : encours, amortie, sortie, autre *}} {{if $_GET.op == "modif"}} @@ -14,6 +14,10 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} + {{:debug post=$_POST}} + {{if $_POST.classify == null}} + {{:error message="Vous devez choisir une action"}} + {{/if}} {{* chercher la date d'acquisition de l'immobilisation *}} {{#select @@ -26,7 +30,7 @@ }} {{/select}} - {{if ! $_POST.amortir}} + {{if $_POST.classify == "ignored"}} {{* ne pas amortir *}} {{:assign duration=0}} {{:assign date_debut=$ligne_immo.date_achat|parse_date}} @@ -39,11 +43,16 @@ {{: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}} - {{:assign duration=$_POST.duree|intval}} - {{if $duration <= 0}} - {{:error message="Erreur : la durée d'amortissement doit être strictement positive"}} + {{if $_POST.classify == "amortized"}} + {{:assign duration=0}} + {{:assign status="amortized"}} + {{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}} - {{:assign status="managed"}} {{/if}} {{* enregistrer les infos de l'immobilisation *}} @@ -52,6 +61,8 @@ {{else}} {{:assign key=$info_immo.key}} {{/if}} +{{:debug duree=$duration date=$date_debut classif=$_POST.classify status=$status}} + {{:save key=$key validate_schema="schema.json" @@ -62,8 +73,10 @@ status=$status }} - {{if ! $_POST.amortir}} - {{:assign type_immo="autre"}} + {{if $_POST.classify == "managed"}} + {{:assign type_immo="encours"}} + {{elseif $_POST.classify == "amortized"}} + {{:assign type_immo="amortie"}} {{else}} {{:assign type_immo=$_GET.type_immo}} {{/if}} @@ -81,31 +94,32 @@ {{* renseigner ou modifier la date de mise en service et la durée d'amortissement *}} {{if $_GET.amort == 0}} - {{:assign checked=0}} {{:assign disabled=1}} + {{:assign default=""}} {{else}} - {{:assign checked=1}} {{:assign disabled=0}} + {{:assign default="managed"}} {{/if}}
- {{if $checked}} - {{:assign helptext = "Dé-cocher pour ne pas amortir"}} - {{else}} - {{:assign helptext = "Cocher pour amortir"}} - {{/if}} - {{:input id="amortir" type="checkbox" value=1 name="amortir" label="Amortir" default=$checked help=$helptext onclick="toggleInputs('infos_immo','f_amortir_1')"}} +
(obligatoire)
+ {{:input type="radio" name="classify" value="managed" label="Amortir" help="Amortir cette immobilisation" default=$default onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}} + {{:input type="radio" name="classify" value="amortized" label="Marquer amortie" help="Cette immobilisation sera classée parmi les immobilisations amorties" onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}} + {{:input type="radio" name="classify" value="ignored" label="Ignorer l'écriture" help="Cette écriture n'apparaitra plus dans la liste des immobilisations" onclick="toggleInputs('div_inputs','f_classify_managed', 'f_classify_amortized')"}} + {{if $info_immo != null}} {{:assign date_defaut=$info_immo.date}} {{:assign duree_defaut=$info_immo.duration}} {{else}} - {{:assign duree_defaut=1}} + {{:assign duree_defaut=null}} {{/if}} - {{: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"}} +
+ {{: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"}} +
@@ -117,19 +131,19 @@ {{* activer/désactiver les champs de saisie *}} {{:admin_footer}} diff --git a/amortization.html b/amortization.html index 1e12668..c8280c0 100644 --- a/amortization.html +++ b/amortization.html @@ -29,6 +29,7 @@ {{#load type="immo" where="$$.line = :line_id" :line_id=$_GET.immo_id|intval}} {{:assign duree=$duration}} {{:assign date_debut=$date}} + {{:assign status=$status}} {{/load}} {{* chercher des écritures d'amortissement liées à l'immobilisation *}} @@ -67,10 +68,15 @@ {{/if}} {{/select}} -{{:assign valeur_residuelle=$ligne_immo.montant}} -{{#foreach from=$linked_lines}} - {{:assign valeur_residuelle="%d-%d"|math:$valeur_residuelle:$amort_amount}} -{{/foreach}} +{{if $status == "amortized"}} + {{:assign amort_amount=$ligne_immo.montant}} + {{:assign valeur_residuelle=0}} +{{else}} + {{:assign valeur_residuelle=$ligne_immo.montant}} + {{#foreach from=$linked_lines}} + {{:assign valeur_residuelle="%d-%d"|math:$valeur_residuelle:$amort_amount}} + {{/foreach}} +{{/if}} {{* Autres amortissements non rattachés *}} {{#select diff --git a/balance_sheet_exit.html b/balance_sheet_exit.html index b557a8e..3a56e4a 100644 --- a/balance_sheet_exit.html +++ b/balance_sheet_exit.html @@ -57,7 +57,11 @@ {{/select}} {{if $amort_line.amort_number == 0}} - {{:assign amort_amount=0}} + {{if $info_immo.status == "amortized"}} + {{:assign amort_amount=$ligne_immo.montant}} + {{else}} + {{:assign amort_amount=0}} + {{/if}} {{else}} {{:assign amort_amount=$amort_line.amort_amount}} {{:assign date_debut=$amort_line.last_amort_date|strtotime}} @@ -153,8 +157,9 @@ lister les exercices ouverts : {{:break}} {{/if}} {{/if}} + {{* voir si des amortissements ont été oubliés *}} - {{if $start_date|strtotime > $amort_line.last_amort_date|strtotime && $end_date|strtotime < $now}} + {{if $info_immo.status != "amortized" && $start_date|strtotime > $amort_line.last_amort_date|strtotime && $end_date|strtotime < $now}} {{:assign debut=$start_date|date_short}} {{:assign fin=$end_date|date_short}} {{:assign msg_amort=$msg_amort|cat:"\n"|cat:" - "|cat:$label|cat:" : du "|cat:$debut|cat:" au "|cat:$fin}} diff --git a/compute_exit_data.html b/compute_exit_data.html index 6672a69..f046e77 100644 --- a/compute_exit_data.html +++ b/compute_exit_data.html @@ -69,7 +69,7 @@
Date de mise en service
{{$_GET.date_mes|date:"d/m/Y"}}
{{/if}} - {{if $_GET.duree_amort != null}} + {{if $_GET.duree_amort != null && $_GET.duree_amort != 0}}
Durée de l'amortissement
{{$_GET.duree_amort}} ans
{{/if}} diff --git a/confirm_action.html b/confirm_action.html new file mode 100644 index 0000000..ee82683 --- /dev/null +++ b/confirm_action.html @@ -0,0 +1,50 @@ +{{* -*- brindille -*- *}} + +{{#form on="validate"}} + {{:debug get=$_GET post=$_POST}} +{{/form}} + +{{:admin_header title="Confirmer"}} +{{:assign .="infos"}} +{{*:debug post=$_POST*}} +{{if $_POST.actions == "amortize"}} + {{:assign action="Marquer l'immobilisation amortie"}} +{{elseif $_POST.actions == "ignore"}} + {{:assign action="Ignorer l'écriture"}} +{{/if}} +{{:assign msg_titre="Appliquer l'opération « %s » sur les écritures : "|args:$action}} + +{{:assign msg_lines=""}} + +{{:admin_header title="Confirmer l'opération" custom_css="./style.css" current="module_amortissement"*}} + + +
+

Appliquer l'opération « {{$action}} » sur les écritures :

+
+ + + + + + + + + {{#foreach from=$_POST.check item="line"}} + + {{:assign var="label" from="_POST.label.%s"|args:$line}} + {{:assign var="trans_id" from="_POST.trans.%s"|args:$line}} + {{:assign trans_url="%s/acc/transactions/details.php?id=%s"|args:$admin_url:$trans_id}} + + + + + {{/foreach}} + +
Libellé
#{{$trans_id}}{{$label}}
+

+ {{:button type="submit" name="validate" label="Confirmer" shape="right" class="main"}} +

+
+ +{{:admin_footer}} diff --git a/schema.json b/schema.json index ea8e31c..4279385 100644 --- a/schema.json +++ b/schema.json @@ -21,7 +21,7 @@ }, "status" : { "type" : ["string", "null"], - "enum" : ["managed", "archived", "ignored"] + "enum" : ["managed", "amortized", "archived", "ignored"] } }, "required": ["type", "line", "duration", "date"]