Simplify CHS - Member Mst Link To Service Group [Import]
Simplify CHS - Member Mst Link To Service Group [Import]
Changes in MemberMstLinkToServiceGroupIndex
In Member Link to Service Group Index need to add Import Button
Changes in LinkToServiceGroupBulkUpdate
Need to add LinkToServiceGroupBulkUpdate razor page
Use LinkToServiceGroupIndex query for prefilled data
Use existing LinkToServiceGroup model class
Download Model
Label Name
Instructions
Member Id
Must exist in member master
Member Name
Service Group Name
Service Group Code
Must exist in service group master
Query
SELECT M.id,COALESCE(M.servicegroupcode,'999999') AS groupcode,
CONCAT(LTRIM(
CONCAT_WS('/',
NULLIF(LTRIM(RTRIM(Wing)), ''),
NULLIF(LTRIM(RTRIM(Bldg)), ''),
NULLIF(LTRIM(RTRIM(Flatno)), '')) +' '),Name) AS membername,
M.memberid,COALESCE(SG.groupname, 'NOT LINKED') AS groupname
FROM MemberMst M
LEFTJOIN ServiceGroupMst SG ON COALESCE(M.servicegroupcode,'999999') = SG.groupcode
WHERE M.typeofmember IN ('01','02','11') AND ceased ='31-MAR-49'AND Suspended ='N'ORDERBY M.servicegroupcode, M.id DESC
Reading XL error codes
Error Code
Description
Z1
Member ID and Service Group Code are mandatory to fill
Z2
Member ID and Service Group Code can be upto 6 digits
Error Codes
Error Code
Description
A
Invalid / Inactive Member Id
B
Must exist in service group master
C
Duplicate Member Id found in the Excel file
Sysgen XL
Column Name
Field Name
Error Code
ErrorCode
Member ID
MemberId
Member Name
MemberName
Service Group Code
GroupCode
Service Group Name
GroupName
Queries for error code
var tempcreation = @"CREATE TABLE #linktoservicegroup
(
id INT PRIMARY KEY IDENTITY(1,1),
memberid NVARCHAR(6) COLLATE DATABASE_DEFAULT,
groupcode NVARCHAR(6) COLLATE DATABASE_DEFAULT,
errorcode NVARCHAR(200) COLLATE DATABASE_DEFAULT
)";
var inserttemp = @"INSERT INTO #linktoservicegroup(memberid,groupcode)
VALUES(@memberid,@groupcode)";
/* -------------------- ERROR VALIDATIONS -------------------- */// Error Code A - Member ID must exist in member mastervar errorcodeA = @"UPDATE #linktoservicegroup SET errorcode = COALESCE(RTRIM(errorcode),'') + ' A'
WHERE memberid NOT EXISTS (SELECT memberid FROM membermst
WHERE typeofmember IN ('01','02','11') AND ceased = '31-MAR-49' AND Suspended ='N')";
// Error Code B - Service Group Code must exist in service group mastervar errorcodeB = @"UPDATE #linktoservicegroup SET errorcode = COALESCE(RTRIM(errorcode),'') + ' B'
WHERE groupcode NOT EXISTS (SELECT groupcode FROM servicegroupmst WHERE isactive = 'Y')";
// Error Code C - Duplicate Member ID within Excelvar errorcodeC = @"WITH A(memberid) AS
(
SELECT memberid FROM #linktoservicegroup
GROUP BY memberid
HAVING COUNT(memberid) > 1
)
UPDATE #linktoservicegroup SET errorcode = COALESCE(RTRIM(errorcode),'') + ' C'
FROM A WHERE #linktoservicegroup.memberid = A.memberid";
// Query to fetch data after validationsvar data = @"SELECT L.memberid, COALESCE(M.name,'Invalid Member Name') AS membername, L.groupcode,
COALESCE(SG.groupname, 'NOT LINKED') AS groupname, L.errorcode
FROM #linktoservicegroup L
LEFT JOIN membermst M ON L.memberid = M.memberid
LEFT JOIN servicegroupmst SG ON L.groupcode = SG.groupcode
ORDER BY L.id ASC;";
var memberMstUpdate = @"UPDATE membermst SET servicegroupcode = L.groupcode
FROM #linktoservicegroup L WHERE membermst.memberid = L.memberid;";
TC-REPO-004: Verify Z1 error for missing mandatory fields (Member ID, Service Group Code)
TC-REPO-005: Verify Z2 error for Member ID not exactly 6 digits
TC-REPO-006: Verify Z3 error for Service Group Code not exactly 6 digits
Validation Queries - Error Code A-C (Repository)
TC-REPO-007: Verify A error for invalid Member ID (not in member master)
TC-REPO-008: Verify B error for invalid Service Group Code (not in service group master)
TC-REPO-009: Verify C error for duplicate Member ID within Excel
Successful Import Processing
TC-REPO-010: Verify UPDATE statement correctly links members to service groups
TC-REPO-011: Verify CHS log entry is created with correct details
TC-REPO-012: Verify return tuple contains success message and processed data
4. Integration Test Cases
End-to-End Import Flow
TC-INT-001: Complete successful import with valid Excel file
TC-INT-002: Complete import with mixed valid/invalid records
TC-INT-003: Verify Excel download contains error codes for failed records
TC-INT-004: Verify successful records update member service group codes
TC-INT-005: Verify LinkToServiceGroupIndex reflects updated service groups
Database Integration
TC-INT-006: Verify MemberMst table servicegroupcode column is updated correctly
TC-INT-007: Verify CHS log table is updated correctly
5. Error Handling & Edge Cases
File Processing Errors
TC-ERR-001: Verify handling of corrupted Excel files
TC-ERR-002: Verify handling of Excel files with wrong sheet structure
TC-ERR-003: Verify handling of Excel files with missing columns
TC-ERR-004: Verify handling of Excel files with extra columns
Data Validation Edge Cases
TC-ERR-005: Verify handling of empty strings vs null values
TC-ERR-006: Verify case sensitivity in validation
TC-ERR-007: Verify duplicate member IDs within Excel are properly flagged
7. Business Logic Test Cases
Member Validation
TC-BIZ-001: Verify valid Member IDs are accepted
TC-BIZ-002: Verify invalid member IDs are rejected
TC-BIZ-003: Verify member type filtering (01, 02, 11) works correctly
Service Group Validation
TC-BIZ-004: Verify valid Service Group Codes are accepted
TC-BIZ-005: Verify invalid service group codes are rejected
TC-BIZ-006: Verify inactive service groups are rejected
Update Logic
TC-BIZ-007: Verify service group code is correctly updated in member master
TC-BIZ-008: Verify existing service group links can be changed
TC-BIZ-009: Verify members can be unlinked by setting empty group code
8. Regression Test Cases
Existing Functionality
TC-REG-001: Verify MemberMstLinkToServiceGroupIndex still works after changes
TC-REG-002: Verify MemberMstLinkToServiceGroupModify still works after changes
TC-REG-003: Verify LinkToServiceGroupIndex query still returns correct data
TC-REG-004: Verify single member service group updates still work
Total Test Cases: 44
This documentation provides a comprehensive guide for implementing the bulk update functionality for linking members to service groups, following the same patterns as the AccountMstController bulk import functionality.