Autres taxes CFE param, % marge sur HT, Prix HT/TVA/TTC séparés, clients sans coeff
This commit is contained in:
+25
-16
@@ -62,15 +62,14 @@
|
||||
|
||||
<!-- Cout fixe -->
|
||||
<div class="breakdown-row section-header"><span>Cout fixe</span></div>
|
||||
<div class="breakdown-row"><span class="breakdown-muted ps-2">Matiere</span><span>{{ "%.4f"|format(job.material_cost) }} €</span></div>
|
||||
<div class="breakdown-row"><span class="breakdown-muted ps-2">Matiere{% if job.material_name %} <small class="text-secondary">{{ job.material_name }}</small>{% endif %}</span><span>{{ "%.4f"|format(job.material_cost) }} €</span></div>
|
||||
<div class="breakdown-row"><span class="breakdown-muted ps-2">Marge matiere</span><span>{{ "%.4f"|format(job.material_margin) }} €</span></div>
|
||||
<div class="breakdown-row"><span class="breakdown-muted ps-2">Usure machine</span><span>{{ "%.4f"|format(job.wear_cost) }} €</span></div>
|
||||
<div class="breakdown-row"><span class="breakdown-muted ps-2">Electricite</span><span>{{ "%.4f"|format(job.electricity_cost) }} €</span></div>
|
||||
{% set cout_f = job.cout_fixe or (job.material_cost + job.material_margin + job.wear_cost + job.electricity_cost) %}
|
||||
<div class="breakdown-row subtotal">
|
||||
<span class="fw-semibold">Total cout fixe</span>
|
||||
<span class="fw-semibold">
|
||||
{% if job.cout_fixe %}{{ "%.2f"|format(job.cout_fixe) }}{% else %}{{ "%.2f"|format(job.material_cost + job.material_margin + job.wear_cost + job.electricity_cost) }}{% endif %} €
|
||||
</span>
|
||||
<span class="fw-semibold">{{ "%.2f"|format(cout_f) }} €</span>
|
||||
</div>
|
||||
|
||||
<!-- Partie variable -->
|
||||
@@ -78,18 +77,20 @@
|
||||
<div class="breakdown-row"><span class="breakdown-muted ps-2">Manutention</span><span>{{ "%.4f"|format(job.handling_cost) }} €</span></div>
|
||||
<div class="breakdown-row"><span class="breakdown-muted ps-2">Design (×{{ job.design_multiplier }})</span><span>{{ "%.4f"|format(job.design_cost) }} €</span></div>
|
||||
<div class="breakdown-row"><span class="breakdown-muted ps-2">Marge brute ({{ job.gross_margin_pct }}%)</span><span>{{ "%.2f"|format(job.margin_amount) }} €</span></div>
|
||||
{% set tot_m = job.total_marge or (job.handling_cost + job.design_cost + job.margin_amount) %}
|
||||
{% set prix_ttc = job.final_price / (1 - job.discount_pct / 100) if job.discount_pct < 100 else job.final_price %}
|
||||
{% set prix_ht_net = prix_ttc - (job.tva_amount or 0) %}
|
||||
{% set marge_pct_ht = (tot_m / prix_ht_net * 100)|round(1) if prix_ht_net > 0 else 0 %}
|
||||
<div class="breakdown-row subtotal">
|
||||
<span class="fw-semibold">Total marge</span>
|
||||
<span class="fw-semibold">
|
||||
{% if job.total_marge %}{{ "%.2f"|format(job.total_marge) }}{% else %}{{ "%.2f"|format(job.handling_cost + job.design_cost + job.margin_amount) }}{% endif %} €
|
||||
</span>
|
||||
<span class="fw-semibold">Total marge <small class="text-muted fw-normal">({{ marge_pct_ht }}% du HT)</small></span>
|
||||
<span class="fw-semibold">{{ "%.2f"|format(tot_m) }} €</span>
|
||||
</div>
|
||||
|
||||
<!-- Fiscal -->
|
||||
<div class="breakdown-row section-header"><span>Fiscal</span></div>
|
||||
<div class="breakdown-row">
|
||||
<span class="breakdown-muted ps-2">Cotisations sociales</span>
|
||||
<span>{% if job.cotisations_amount %}{{ "%.2f"|format(job.cotisations_amount) }}{% else %}{{ "%.2f"|format(job.tax_amount) }}{% endif %} €</span>
|
||||
<span class="breakdown-muted ps-2">Cotisations BIC vente</span>
|
||||
<span>{% if job.cotisations_amount %}{{ "%.2f"|format(job.cotisations_amount) }}{% else %}{{ "%.2f"|format(job.tax_amount or 0) }}{% endif %} €</span>
|
||||
</div>
|
||||
{% if job.vfl_amount and job.vfl_amount > 0 %}
|
||||
<div class="breakdown-row">
|
||||
@@ -97,27 +98,35 @@
|
||||
<span>{{ "%.2f"|format(job.vfl_amount) }} €</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if job.other_taxes_amount and job.other_taxes_amount > 0 %}
|
||||
<div class="breakdown-row">
|
||||
<span class="breakdown-muted ps-2">Autres taxes / CFE</span>
|
||||
<span>{{ "%.2f"|format(job.other_taxes_amount) }} €</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="breakdown-row total" style="border-top:none">
|
||||
<span>Prix HT</span>
|
||||
<span class="final-price">{{ "%.2f"|format(prix_ht_net) }} €</span>
|
||||
</div>
|
||||
{% if job.tva_amount and job.tva_amount > 0 %}
|
||||
<div class="breakdown-row">
|
||||
<span class="breakdown-muted ps-2">TVA</span>
|
||||
<span class="ps-2">TVA</span>
|
||||
<span>{{ "%.2f"|format(job.tva_amount) }} €</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if job.discount_pct > 0 %}
|
||||
<div class="breakdown-row text-danger">
|
||||
<span class="ps-2">Remise ({{ job.discount_pct }}%)</span>
|
||||
<span>−{{ "%.2f"|format(job.final_price / (1 - job.discount_pct/100) * (job.discount_pct/100)) }} €</span>
|
||||
<span>−{{ "%.2f"|format(prix_ttc * job.discount_pct / 100) }} €</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="breakdown-row total">
|
||||
<span>PRIX FINAL</span>
|
||||
<span>PRIX FINAL TTC</span>
|
||||
<span class="final-price">{{ "%.2f"|format(job.final_price) }} €</span>
|
||||
</div>
|
||||
|
||||
<!-- Barre de composition -->
|
||||
{% set cout_f = job.cout_fixe or (job.material_cost + job.material_margin + job.wear_cost + job.electricity_cost) %}
|
||||
{% set tot_m = job.total_marge or (job.handling_cost + job.design_cost + job.margin_amount) %}
|
||||
{% set fiscal = (job.cotisations_amount or job.tax_amount or 0) + (job.vfl_amount or 0) + (job.tva_amount or 0) %}
|
||||
{% set fiscal = (job.cotisations_amount or job.tax_amount or 0) + (job.vfl_amount or 0) + (job.other_taxes_amount or 0) + (job.tva_amount or 0) %}
|
||||
{% set total = job.final_price %}
|
||||
{% if total > 0 %}
|
||||
<div class="mt-4">
|
||||
|
||||
Reference in New Issue
Block a user