206 lines
9.5 KiB
HTML
206 lines
9.5 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 mb-4">
|
||
<div class="card-header py-3"><i class="bi bi-calendar3 me-2"></i>Planning & capacite</div>
|
||
<div class="card-body">
|
||
<div class="mb-3">
|
||
<label class="form-label fw-semibold">Cooldown entre impressions (minutes)</label>
|
||
<input type="number" name="cooldown_minutes" class="form-control"
|
||
step="1" min="0" value="{{ settings.get('cooldown_minutes', 15) }}">
|
||
<div class="form-text">Temps de refroidissement + dechargement entre deux lancements sur la meme machine.</div>
|
||
</div>
|
||
<div class="mb-3">
|
||
<label class="form-label fw-semibold">Buffer echec filament (%)</label>
|
||
<input type="number" name="failure_buffer_pct" class="form-control"
|
||
step="1" min="0" max="50" value="{{ settings.get('failure_buffer_pct', 10) }}">
|
||
<div class="form-text">Surconsommation estimee due aux echecs d'impression (alerte restock).</div>
|
||
</div>
|
||
<div class="mb-3">
|
||
<label class="form-label fw-semibold">Nb max imprimantes simultanees</label>
|
||
<input type="number" name="max_simultaneous_printers" class="form-control"
|
||
step="1" min="1" max="10" value="{{ settings.get('max_simultaneous_printers', 5) }}">
|
||
<div class="form-text"><strong>5</strong> — contrainte electrique (6 × A1 = trop de W au-dela de 5).</div>
|
||
</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 %}
|