182 lines
8.0 KiB
HTML
182 lines
8.0 KiB
HTML
{% extends 'base.html' %}
|
|
{% block title %}Parametres{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="page-header">
|
|
<h1><i class="bi bi-sliders me-2 text-secondary"></i>Parametres globaux</h1>
|
|
<p class="text-muted small mt-1">Valeurs par defaut — remplacees si un profil est selectionne lors du calcul.</p>
|
|
</div>
|
|
|
|
<form method="POST">
|
|
<div class="row g-4">
|
|
|
|
<div class="col-md-6">
|
|
<div class="card">
|
|
<div class="card-header py-3"><i class="bi bi-boxes me-2"></i>Filament</div>
|
|
<div class="card-body">
|
|
<div class="mb-3">
|
|
<label class="form-label">Prix du filament (€/kg)</label>
|
|
<input type="number" name="filament_price_per_kg" class="form-control"
|
|
step="0.01" value="{{ settings.filament_price_per_kg }}">
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label">Marge matiere (%)</label>
|
|
<input type="number" name="material_margin_pct" class="form-control"
|
|
step="0.5" value="{{ settings.material_margin_pct }}">
|
|
<div class="form-text">Appliquee sur le cout matiere brut.</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div class="card">
|
|
<div class="card-header py-3"><i class="bi bi-lightning-charge me-2"></i>Electricite</div>
|
|
<div class="card-body">
|
|
<div class="mb-3">
|
|
<label class="form-label">Prix kWh (€)</label>
|
|
<input type="number" name="electricity_price_kwh" class="form-control"
|
|
step="0.001" value="{{ settings.electricity_price_kwh }}">
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label">Puissance imprimante (kW)</label>
|
|
<input type="number" name="printer_power_kw" class="form-control"
|
|
step="0.01" value="{{ settings.printer_power_kw }}">
|
|
<div class="form-text">Bambu X1C ≈ 0.35 kW en moyenne.</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div class="card">
|
|
<div class="card-header py-3"><i class="bi bi-gear me-2"></i>Usure machine</div>
|
|
<div class="card-body">
|
|
<div class="row g-2 mb-2">
|
|
<div class="col-6">
|
|
<label class="form-label">Prix imprimante (€)</label>
|
|
<input type="number" name="printer_price" class="form-control"
|
|
step="1" value="{{ settings.printer_price }}">
|
|
</div>
|
|
<div class="col-6">
|
|
<label class="form-label">Duree de vie (h)</label>
|
|
<input type="number" name="printer_lifespan_hours" class="form-control"
|
|
step="100" value="{{ settings.printer_lifespan_hours }}">
|
|
</div>
|
|
</div>
|
|
<div class="row g-2 mb-2">
|
|
<div class="col-6">
|
|
<label class="form-label">Prix buse (€)</label>
|
|
<input type="number" name="nozzle_price" class="form-control"
|
|
step="0.5" value="{{ settings.nozzle_price }}">
|
|
</div>
|
|
<div class="col-6">
|
|
<label class="form-label">Duree de vie buse (h)</label>
|
|
<input type="number" name="nozzle_lifespan_hours" class="form-control"
|
|
step="10" value="{{ settings.nozzle_lifespan_hours }}">
|
|
</div>
|
|
</div>
|
|
<div class="row g-2">
|
|
<div class="col-6">
|
|
<label class="form-label">Prix plateau (€)</label>
|
|
<input type="number" name="plate_price" class="form-control"
|
|
step="0.5" value="{{ settings.plate_price }}">
|
|
</div>
|
|
<div class="col-6">
|
|
<label class="form-label">Duree de vie plateau (h)</label>
|
|
<input type="number" name="plate_lifespan_hours" class="form-control"
|
|
step="50" value="{{ settings.plate_lifespan_hours }}">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div class="card mb-4">
|
|
<div class="card-header py-3"><i class="bi bi-hand-index me-2"></i>Manutention</div>
|
|
<div class="card-body">
|
|
<div class="mb-3">
|
|
<label class="form-label">Taux horaire manutention (€/h)</label>
|
|
<input type="number" name="handling_rate_per_hour" class="form-control"
|
|
step="1" value="{{ settings.handling_rate_per_hour }}">
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label">Temps par plateau (minutes)</label>
|
|
<input type="number" name="handling_minutes_per_plate" class="form-control"
|
|
step="1" value="{{ settings.handling_minutes_per_plate }}">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<div class="card-header py-3"><i class="bi bi-percent me-2"></i>Fiscal</div>
|
|
<div class="card-body">
|
|
<div class="mb-3">
|
|
<label class="form-label fw-semibold">Cotisations sociales (%)</label>
|
|
<input type="number" name="cotisations_rate_pct" class="form-control"
|
|
step="0.1" value="{{ settings.cotisations_rate_pct }}">
|
|
<div class="form-text">
|
|
<strong>12.3%</strong> — micro-entrepreneur BIC vente (fabrication/vente de marchandises, 2024).
|
|
Calculees sur le CA HT.
|
|
</div>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label fw-semibold">Versement Forfaitaire Liberatoire — impot (%)</label>
|
|
<input type="number" name="vfl_rate_pct" class="form-control"
|
|
step="0.1" value="{{ settings.vfl_rate_pct }}">
|
|
<div class="form-text">
|
|
<strong>1%</strong> — BIC vente (si option VFL activee).
|
|
Mettre <strong>0</strong> si vous n'avez pas opte pour le VFL (impot sur declaration classique).
|
|
</div>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label fw-semibold">Autres taxes a prevoir (%)</label>
|
|
<input type="number" name="other_taxes_rate_pct" class="form-control"
|
|
step="0.1" value="{{ settings.get('other_taxes_rate_pct', 1.0) }}">
|
|
<div class="form-text">
|
|
<strong>~1%</strong> — provision pour taxes diverses non incluses ci-dessus.
|
|
Exemples : <strong>CFE</strong> (Cotisation Fonciere des Entreprises, due des la 2e annee
|
|
d'activite, montant variable selon la commune),
|
|
frais bancaires, comptable, etc.
|
|
Mettre <strong>0</strong> si non concerne.
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="mb-2">
|
|
<label class="form-label fw-semibold">TVA (%)</label>
|
|
<input type="number" name="tva_rate_pct" class="form-control"
|
|
step="0.1" value="{{ settings.tva_rate_pct }}">
|
|
<div class="form-text">
|
|
<strong>20%</strong> — taux normal applicable a la vente de biens imprimes 3D.
|
|
La TVA s'ajoute au prix HT et est collectee pour l'Etat (non conservee).
|
|
</div>
|
|
</div>
|
|
{% set other = settings.get('other_taxes_rate_pct', 1.0) %}
|
|
{% set total_charges = settings.cotisations_rate_pct + settings.vfl_rate_pct + other %}
|
|
<div class="alert alert-info py-2 mt-3 mb-0 small">
|
|
<i class="bi bi-info-circle me-1"></i>
|
|
Charges sur CA HT : <strong>{{ "%.1f"|format(total_charges) }} %</strong>
|
|
(cotisations {{ settings.cotisations_rate_pct }}%
|
|
+ VFL {{ settings.vfl_rate_pct }}%
|
|
+ autres {{ other }}%)
|
|
{% if settings.tva_rate_pct > 0 %}
|
|
— TVA {{ settings.tva_rate_pct }}% collectee et reversee a l'Etat
|
|
{% else %}
|
|
— franchise TVA active
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="mt-4">
|
|
<button type="submit" class="btn px-4 py-2 fw-bold" style="background:#ff6b35;color:#fff">
|
|
<i class="bi bi-save me-2"></i>Enregistrer les parametres
|
|
</button>
|
|
</div>
|
|
</form>
|
|
{% endblock %}
|