feat(pos/workshop): add lightweight workshop/taller module

- Add DB migration v4.4_workshop.sql (sale_id, service_catalog,
  reserved_quantity, SO_RESERVE/SO_RELEASE operation types).
- Extend service_order_engine with inventory reservation, release,
  convert-to-sale, mechanic assignment, and service catalog CRUD.
- Extend service_order_bp with /reserve, /convert-to-sale,
  /assign-mechanic, and /service-catalog endpoints.
- Create workshop Kanban UI: workshop.html, workshop.js, workshop.css.
- Add /pos/workshop route and sidebar navigation (sidebar.js + inline
  templates).
- Add 11 unit tests with mocked cursors.
- Update FASES_IMPLEMENTADAS.md with FASE 9 documentation.

Tests: 92 passing (61 console + 20 Facturapi + 11 workshop).
This commit is contained in:
2026-06-15 05:34:35 +00:00
parent d67887284d
commit ce66212223
15 changed files with 1842 additions and 14 deletions

View File

@@ -1,6 +1,7 @@
from flask import Flask
from json_provider import OrjsonProvider
def create_app():
app = Flask(__name__)
app.json = OrjsonProvider(app)
@@ -124,7 +125,7 @@ def create_app():
def health():
return {'status': 'ok'}
from flask import render_template, send_from_directory, jsonify, g
from flask import g, jsonify, render_template, send_from_directory
@app.route('/favicon.ico')
def favicon():
@@ -181,6 +182,10 @@ def create_app():
def pos_fleet():
return render_template('fleet.html')
@app.route('/pos/workshop')
def pos_workshop():
return render_template('workshop.html')
@app.route('/pos/quotations')
def pos_quotations():
return render_template('quotations.html')