Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
35966 amit 1
-- Migration: Add "Bulk Order Approval Report" menu item
2
-- Visible to the same categories/roles as "Transaction Approval" (action_class = 'transaction-approval')
3
 
4
-- Step 1: Find the parent_menu_id and sequence of existing "Transaction Approval" menu
5
-- SELECT id, display_text, parent_menu_id, sequence, action_class FROM auth.menu WHERE action_class = 'transaction-approval';
6
 
7
-- Step 2: Insert the new menu item under the same parent, next sequence
8
INSERT INTO auth.menu (display_text, description, parent_menu_id, sequence, action_class, icon_class)
9
SELECT 'Approval Report', 'Bulk Order Approval Report', m.parent_menu_id, m.sequence + 1, 'bulk-order-approval-report', m.icon_class
10
FROM (SELECT * FROM auth.menu WHERE action_class = 'transaction-approval') m
11
WHERE NOT EXISTS (SELECT 1 FROM auth.menu WHERE action_class = 'bulk-order-approval-report');
12
 
13
-- Step 3: Copy menu_category mappings so it's visible to the same roles
14
INSERT INTO auth.menu_category (menu_id, category_id, escalation_type)
15
SELECT new_menu.id, mc.category_id, mc.escalation_type
16
FROM auth.menu_category mc
17
JOIN auth.menu old_menu ON old_menu.id = mc.menu_id AND old_menu.action_class = 'transaction-approval'
18
JOIN auth.menu new_menu ON new_menu.action_class = 'bulk-order-approval-report'
19
WHERE NOT EXISTS (
20
    SELECT 1 FROM auth.menu_category mc2
21
    WHERE mc2.menu_id = new_menu.id AND mc2.category_id = mc.category_id AND mc2.escalation_type = mc.escalation_type
22
);
23
 
24
-- Step 4: Add API access for non-admin roles (same as pendingApprovals)
25
INSERT INTO api (uri, description)
26
SELECT '/transaction/bulkOrderApprovalReport', 'Bulk Order Approval Report'
27
WHERE NOT EXISTS (SELECT 1 FROM api WHERE uri = '/transaction/bulkOrderApprovalReport');
28
 
29
INSERT INTO role_api (role_id, api_id)
30
SELECT ra.role_id, new_api.id
31
FROM role_api ra
32
JOIN api old_api ON old_api.id = ra.api_id AND old_api.uri = '/transaction/pendingApprovals'
33
JOIN api new_api ON new_api.uri = '/transaction/bulkOrderApprovalReport'
34
WHERE NOT EXISTS (
35
    SELECT 1 FROM role_api ra2 WHERE ra2.role_id = ra.role_id AND ra2.api_id = new_api.id
36
);