{% extends 'base.html' %} {% block title %}{{ job.name }}{% endblock %} {% block content %}
{% set qty = job.order_qty or 1 %} {% set multi = qty > 1 %}| Client | {{ job.client_name or '—' }} |
|---|---|
| Matiere | {% if job.material_name %} {{ job.material_type }} {{ job.material_name }} {% else %}—{% endif %} |
| Fichier source | {% if job.source_file %} {{ job.source_file.split('/')[-1] }} {% set ext = job.source_file.rsplit('.',1)[-1].lower() %} {% if ext in ['stl','3mf','step','stp','obj'] %} {% set is_nc_path = job.source_file.startswith('/') %} {% if is_nc_path %} {% else %} {% endif %} {% endif %} {% else %}—{% endif %} |
| Référence plateau | {{ job.plate_name }} |
| Date | {{ job.created_at[:10] }} |
| Poids plateau | {{ job.weight_g }} g |
| Pieces / plateau | {{ job.pieces_per_plate or 1 }} |
| Quantite commandee | {{ qty }} pièce{{ 's' if qty > 1 else '' }} |
| Duree plateau | {{ job.print_time_s | fmt_time }} |
| Coeff design | ×{{ job.design_multiplier }} |
| Marge brute | {{ job.gross_margin_pct }} % |
| Remise | {{ job.discount_pct }} % |
| Profil machine | {{ job.machine_profile_name }} |
| Profil manutention | {{ job.handling_profile_name }} |
| Profil tarif | {{ job.pricing_profile_name }} |
| # | Début | Machine | Pièces | Statut / Progression |
|---|---|---|---|---|
| {{ loop.index }} | {{ s.planned_start[:16].replace('T',' ') }} | {{ s.printer_name }} | {% set ep = s.effective_pieces %} {% set ig = s.pieces_ignored %} {% if ig > 0 %} {{ ep - ig }}/{{ ep }} ({{ ig }} ignorée{{ 's' if ig > 1 }}) {% else %} {{ ep }} {% endif %} |
{% set sc = {'planned':'secondary','running':'primary','done':'success','failed':'danger'} %}
{% set sl = {'planned':'Planifié','running':'En cours','done':'Terminé','failed':'Échec'} %}
{{ sl.get(s.status, s.status) }}
{% if s.status == 'running' and s.ha_entity_prefix %}
{% endif %}
{% if s.failure_note %}
{{ s.failure_note }} {% endif %} |
|
|
||||
| # | Début | Machine | Pièces | Statut / Progression |
|---|---|---|---|---|
| {{ loop.index }} | {{ s.planned_start[:16].replace('T',' ') }} | {{ s.printer_name }} | {% set ep = s.effective_pieces %} {% set ig = s.pieces_ignored %} {% if ig > 0 %} {{ ep - ig }}/{{ ep }} ({{ ig }} ignorée{{ 's' if ig > 1 }}) {% else %}{{ ep }}{% endif %} |
{% set sc = {'planned':'secondary','running':'primary','done':'success','failed':'danger'} %}
{% set sl = {'planned':'Planifié','running':'En cours','done':'Terminé','failed':'Échec'} %}
{{ sl.get(s.status, s.status) }}
{% if s.status == 'running' and s.ha_entity_prefix %}
{% endif %}
{% if s.failure_note %} {{ s.failure_note }}{% endif %} |
|
|
||||