Implement boxes management module with auto-numbered box creation

- Add boxes_crates database table with BIGINT IDs and 8-digit auto-numbered box_numbers
- Implement boxes CRUD operations (add, edit, update, delete, delete_multiple)
- Create boxes route handlers with POST actions for all operations
- Add boxes.html template with 3-panel layout matching warehouse locations module
- Implement barcode generation and printing with JsBarcode and QZ Tray integration
- Add browser print fallback for when QZ Tray is not available
- Simplify create box form to single button with auto-generation
- Fix JavaScript null reference errors with proper element validation
- Convert tuple data to dictionaries for Jinja2 template compatibility
- Register boxes blueprint in Flask app initialization
This commit is contained in:
Quality App Developer
2026-01-26 22:08:31 +02:00
parent 3c5a273a89
commit e1f3302c6b
37 changed files with 8429 additions and 66 deletions

View File

@@ -0,0 +1,43 @@
{% extends "base.html" %}
{% block title %}Set Boxes Locations - Quality App v2{% endblock %}
{% block content %}
<div class="container-fluid py-5">
<div class="row mb-4">
<div class="col-12">
<div class="d-flex justify-content-between align-items-center">
<div>
<h1 class="mb-2">
<i class="fas fa-cube"></i> Set Boxes Locations
</h1>
<p class="text-muted">Add or update articles in the warehouse inventory</p>
</div>
<a href="{{ url_for('warehouse.warehouse_index') }}" class="btn btn-secondary">
<i class="fas fa-arrow-left"></i> Back to Warehouse
</a>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="card shadow-sm">
<div class="card-header bg-light">
<div class="d-flex justify-content-between align-items-center">
<h5 class="mb-0"><i class="fas fa-list"></i> Articles List</h5>
<button class="btn btn-danger btn-sm" data-bs-toggle="modal" data-bs-target="#addArticleModal">
<i class="fas fa-plus"></i> Add Article
</button>
</div>
</div>
<div class="card-body">
<p class="text-muted">
<i class="fas fa-info-circle"></i> Articles management feature coming soon...
</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}