diff --git a/api/alembic/versions/sql/0002_functions.sql b/api/alembic/versions/sql/0002_functions.sql index a685ff6..987eb91 100644 --- a/api/alembic/versions/sql/0002_functions.sql +++ b/api/alembic/versions/sql/0002_functions.sql @@ -1739,6 +1739,7 @@ AS $function$ DECLARE v_old RECORD; v_usr RECORD; + v_closed DATE; BEGIN SELECT vsp.id, vsp.branch_id INTO v_old @@ -1754,15 +1755,18 @@ BEGIN END IF; - UPDATE v3.vsp - SET is_deleted = true, - is_active = false, - updated_by = p_deleted_by - WHERE id = p_vsp_id; - UPDATE v3.vsp - SET closed_at = CURRENT_DATE - WHERE id = p_vsp_id - AND closed_at IS NULL; + UPDATE v3.vsp SET is_deleted = true, updated_by = p_deleted_by WHERE id = p_vsp_id; + UPDATE v3.vsp SET closed_at = CURRENT_DATE + WHERE id = p_vsp_id AND closed_at IS NULL + RETURNING closed_at INTO v_closed; + + IF v_closed IS NULL THEN + IF EXISTS (SELECT 1 FROM v3.vsp WHERE id = p_vsp_id) THEN + RAISE EXCEPTION 'vsp #% уже закрыт', p_vsp_id; + ELSE + RAISE EXCEPTION 'vsp #% не существует', p_vsp_id; + END IF; + END IF; PERFORM v3.log_event( 'DELETE_VSP', 'VSP',