67a0e674ca
Marine maintenance management: work orders with photos, ISM/SWP procedures, MSDS, inventory, RFQ/purchases, vessel history, bilingual PDF reports. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
74 lines
3.6 KiB
HTML
74 lines
3.6 KiB
HTML
{% extends 'base.html' %}
|
|
{% block title %}{% if part %}Editar{% else %}Nuevo{% endif %} Repuesto{% endblock %}
|
|
{% block page_title %}{% if part %}Editar Repuesto{% else %}Nuevo Repuesto{% endif %}{% endblock %}
|
|
{% block topbar_actions %}<a href="{{ url_for('inventory') }}" class="btn btn-secondary">← Volver</a>{% endblock %}
|
|
{% block content %}
|
|
<div class="card" style="max-width:700px">
|
|
<form method="POST">
|
|
<div class="form-grid">
|
|
<div class="form-group full">
|
|
<label>Nombre *</label>
|
|
<input type="text" name="name" value="{{ part.name if part else '' }}" required>
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Número de Parte</label>
|
|
<input type="text" name="part_number" value="{{ part.part_number if part else '' }}">
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Categoría</label>
|
|
<select name="category_id">
|
|
<option value="">-- Sin categoría --</option>
|
|
{% for c in categories %}
|
|
<option value="{{ c.id }}" {% if part and part.category_id==c.id %}selected{% endif %}>{{ c.name }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Marca</label>
|
|
<input type="text" name="brand" value="{{ part.brand if part else '' }}">
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Ubicación en Taller</label>
|
|
<input type="text" name="location" value="{{ part.location if part else '' }}" placeholder="Ej: Estante A-3">
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Cantidad</label>
|
|
<input type="number" step="0.01" name="quantity" value="{{ part.quantity if part else '0' }}">
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Unidad</label>
|
|
<select name="unit">
|
|
{% for u in ['pcs','ft','m','gal','L','qt','kg','lb','set','pair','roll','box'] %}
|
|
<option value="{{ u }}" {% if part and part.unit==u %}selected{% endif %}>{{ u }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Stock Mínimo (alerta)</label>
|
|
<input type="number" step="0.01" name="min_quantity" value="{{ part.min_quantity if part else '0' }}">
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Precio Costo ($)</label>
|
|
<input type="number" step="0.01" name="cost_price" value="{{ part.cost_price if part else '0' }}">
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Precio Venta ($)</label>
|
|
<input type="number" step="0.01" name="sale_price" value="{{ part.sale_price if part else '0' }}">
|
|
</div>
|
|
<div class="form-group full">
|
|
<label>Descripción</label>
|
|
<textarea name="description">{{ part.description if part else '' }}</textarea>
|
|
</div>
|
|
<div class="form-group full">
|
|
<label>Notas</label>
|
|
<textarea name="notes">{{ part.notes if part else '' }}</textarea>
|
|
</div>
|
|
</div>
|
|
<div class="flex gap-3 mt-6">
|
|
<button type="submit" class="btn btn-primary">💾 Guardar</button>
|
|
<a href="{{ url_for('inventory') }}" class="btn btn-secondary">Cancelar</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
{% endblock %}
|