feat(workshop): allow admin/owner to delete service orders
Some checks failed
CI / lint-and-test (3.11) (push) Has been cancelled
CI / lint-and-test (3.13) (push) Has been cancelled

- Soft-delete service orders via is_deleted flag.

- Added DELETE /pos/api/service-orders/<id> restricted to owner/admin.

- Updated list, detail, summary, status and assignment queries to exclude deleted orders.

- Added 'Eliminar orden' button in the detail modal for administrators.
This commit is contained in:
2026-06-30 17:51:09 +00:00
parent 2863cf8e9f
commit e9cfb2e756
5 changed files with 68 additions and 7 deletions

View File

@@ -13,6 +13,7 @@ from services.service_order_engine import (
create_service_catalog_item,
create_service_order,
delete_service_catalog_item,
delete_service_order,
get_kanban_summary,
get_service_order,
list_service_catalog,
@@ -150,6 +151,23 @@ def update_order(so_id):
conn.close()
@service_order_bp.route('/<int:so_id>', methods=['DELETE'])
@require_auth('workshop.edit')
def delete_order(so_id):
"""Soft-delete a service order. Restricted to owner/admin."""
if g.employee_role not in ('owner', 'admin'):
return jsonify({'error': 'Solo administradores pueden eliminar órdenes'}), 403
conn = get_tenant_conn(g.tenant_id)
try:
delete_service_order(conn, so_id)
return jsonify({'message': 'Orden eliminada'})
except ValueError as e:
return jsonify({'error': str(e)}), 404
finally:
conn.close()
@service_order_bp.route('/<int:so_id>/status', methods=['PUT'])
@require_auth('workshop.edit')
def change_status(so_id):