feat(workshop): allow admin/owner to delete service orders
- 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:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user