Skip to content

Commit 51a8db0

Browse files
authored
Merge pull request #64 from openimis/feature/OP-328
Fix OP-328
2 parents 2404709 + 1cf5d36 commit 51a8db0

2 files changed

Lines changed: 46 additions & 30 deletions

File tree

Empty databases/openIMIS_ONLINE.sql

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3695,25 +3695,33 @@ GO
36953695

36963696
CREATE VIEW [dbo].[uvwLocations]
36973697
AS
3698-
SELECT 0 LocationId, NULL RegionId, NULL RegionCode, N'National' RegionName, NULL DistrictId, NULL DistrictCode, NULL DistrictName, NULL WardId, NULL WardCode, NULL WardName, NULL VillageId, NULL VillageCode, NULL VillageName, NULL ParentLocationId
3698+
SELECT 0 LocationId, NULL VillageId, NULL VillageName,NULL VillageCode, NULL WardId, NULL WardName,NULL WardCode, NULL DistrictId,NULL DistrictName, NULL DistrictCode, NULL RegionId, N'National' RegionName, NULL RegionCode, 0 ParentLocationId
3699+
36993700
UNION ALL
3700-
SELECT RegionId LocationId,RegionId, RegionCode, RegionName, NULL DistrictId, NULL DistrictCode, NULL DistrictName, NULL WardId, NULL WardCode, NULL WardName, NULL VillageId, NULL VillageCode, NULL VillageName, 0 ParentLocationId
3701-
FROM tblRegions
3701+
3702+
SELECT V.LocationId, V.LocationId VillageId, V.LocationName VillageName,V.LocationCode VillageCode, W.LocationId WardId, W.LocationName WardName,W.LocationCode WardCode, D.LocationId DistrictId, D.LocationName DistrictName, D.LocationCode DistrictCode, R.LocationId RegionId, R.LocationName RegionName , R.LocationCode RegionCode, V.ParentLocationId FROM tblLocations R
3703+
INNER JOIN tblLocations D on R.LocationId = D.ParentLocationId AND D.ValidityTo IS NULL AND D.LocationType = 'D'
3704+
INNER JOIN tblLocations W on D.LocationId = W.ParentLocationId AND W.ValidityTo IS NULL AND W.LocationType = 'W'
3705+
INNER JOIN tblLocations V on W.LocationId = V.ParentLocationId AND V.ValidityTo IS NULL AND V.LocationType = 'V'
3706+
WHERE R.ValidityTo IS NULL AND R.LocationType = 'R'
3707+
37023708
UNION ALL
3703-
SELECT D.DistrictId LocationId, R.RegionId, R.RegionCode, R.RegionName, D.DistrictId, D.DistrictCode, D.DistrictName, NULL WardId, NULL WardCode, NULL WardName, NULL VillageId, NULL VillageCode, NULL VillageName, Region ParentLocationId
3704-
FROM tblDistricts D
3705-
INNER JOIN tblRegions R ON R.RegionId = D.Region
3709+
3710+
SELECT W.LocationId, NULL VillageId, NULL VillageName, NULL VillageCode, W.LocationId WardId, W.LocationName WardName,W.LocationCode WardCode,D.LocationId DistrictId, D.LocationName DistrictName, D.LocationCode DistrictCode, R.LocationId RegionId, R.LocationName RegionName , R.LocationCode RegionCode, W.ParentLocationId FROM tblLocations R
3711+
INNER JOIN tblLocations D on R.LocationId = D.ParentLocationId AND D.ValidityTo IS NULL AND D.LocationType = 'D'
3712+
INNER JOIN tblLocations W on D.LocationId = W.ParentLocationId AND W.ValidityTo IS NULL AND W.LocationType = 'W'
3713+
WHERE R.ValidityTo IS NULL AND R.LocationType = 'R'
3714+
37063715
UNION ALL
3707-
SELECT W.WardId LocationId, R.RegionId, R.RegionCode, R.RegionName, D.DistrictId, D.DistrictCode, D.DistrictName, W.WardId, W.WardCode, W.WardName, NULL VillageId, NULL VillageCode, NULL VillageName, D.DistrictId ParentLocationId
3708-
FROM tblRegions R
3709-
INNER JOIN tblDistricts D ON R.RegionId = D.Region
3710-
INNER JOIN tblWards W ON W.DistrictId = D.DistrictId
3716+
3717+
SELECT D.LocationId, NULL VillageId, NULL VillageName,NULL VillageCode, NULL WardId, NULL WardName,NULL WardCode,D.LocationId DistrictId, D.LocationName DistrictName,D.LocationCode DistrictCode, R.LocationId RegionId, R.LocationName RegionName , R.LocationCode RegionCode, D.ParentLocationId FROM tblLocations R
3718+
INNER JOIN tblLocations D on R.LocationId = D.ParentLocationId AND D.ValidityTo IS NULL AND D.LocationType = 'D'
3719+
WHERE R.ValidityTo IS NULL AND R.LocationType = 'R'
3720+
37113721
UNION ALL
3712-
SELECT V.VillageId LocationId, R.RegionId, R.RegionCode, R.RegionName, D.DistrictId, D.DistrictCode, D.DistrictName, W.WardId, W.WardCode, W.WardName, V.VillageId, V.VillageCode, V.VillageName, V.WardId ParentLocationId
3713-
FROM tblRegions R
3714-
INNER JOIN tblDistricts D ON R.RegionId = D.Region
3715-
INNER JOIN tblWards W ON W.DistrictId = D.DistrictId
3716-
INNER JOIN tblVillages V ON V.WardId = W.WardId
3722+
3723+
SELECT R.LocationId, NULL VillageId, NULL VillageName,NULL VillageCode, NULL WardId, NULL WardName,NULL WardCode, NULL DistrictId,NULL DistrictName, NULL DistrictCode, R.LocationId RegionId, R.LocationName RegionName, R.LocationCode RegionCode, 0 ParentLocationId FROM tblLocations R
3724+
WHERE R.ValidityTo IS NULL AND R.LocationType = 'R'
37173725

37183726
GO
37193727

Migration script/openIMIS migration latest.sql

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -101,25 +101,33 @@ GO
101101

102102
ALTER VIEW [dbo].[uvwLocations]
103103
AS
104-
SELECT 0 LocationId, null VillageId, null VillageName,NULL VillageCode, null WardId, null WardName,NULL WardCode, null DistrictId,null DistrictName, NULL DistrictCode, NULL RegionId, N'National' RegionName, null RegionCode, 0 ParentLocationId
104+
SELECT 0 LocationId, NULL VillageId, NULL VillageName,NULL VillageCode, NULL WardId, NULL WardName,NULL WardCode, NULL DistrictId,NULL DistrictName, NULL DistrictCode, NULL RegionId, N'National' RegionName, NULL RegionCode, 0 ParentLocationId
105+
105106
UNION ALL
106-
SELECT lUv.LocationId, lUv.LocationId VillageId, lUv.LocationName VillageName,luv.LocationCode VillageCode, luw.LocationId WardId, luw.LocationName WardName,luw.LocationCode WardCode, lUD.LocationId DistrictId, lUD.LocationName DistrictName, lud.LocationCode DistrictCode, LUR.LocationId RegionId, LUR.LocationName RegionName , lur.LocationCode RegionCode, LUv.ParentLocationId FROM tblLocations LUR
107-
INNER JOIN tblLocations lud on lUR.LocationId = LUD.ParentLocationId and LUD.ValidityTo is null and LUD.LocationType = 'D'
108-
INNER JOIN tblLocations luw on lUD.LocationId = LUW.ParentLocationId and LUW.ValidityTo is null and LUW.LocationType = 'W'
109-
INNER JOIN tblLocations luv on luw.LocationId = LUv.ParentLocationId and LUv.ValidityTo is null and LUv.LocationType = 'V'
110-
WHERE LUR.ValidityTo is null and LUR.LocationType = 'R'
107+
108+
SELECT V.LocationId, V.LocationId VillageId, V.LocationName VillageName,V.LocationCode VillageCode, W.LocationId WardId, W.LocationName WardName,W.LocationCode WardCode, D.LocationId DistrictId, D.LocationName DistrictName, D.LocationCode DistrictCode, R.LocationId RegionId, R.LocationName RegionName , R.LocationCode RegionCode, V.ParentLocationId FROM tblLocations R
109+
INNER JOIN tblLocations D on R.LocationId = D.ParentLocationId AND D.ValidityTo IS NULL AND D.LocationType = 'D'
110+
INNER JOIN tblLocations W on D.LocationId = W.ParentLocationId AND W.ValidityTo IS NULL AND W.LocationType = 'W'
111+
INNER JOIN tblLocations V on W.LocationId = V.ParentLocationId AND V.ValidityTo IS NULL AND V.LocationType = 'V'
112+
WHERE R.ValidityTo IS NULL AND R.LocationType = 'R'
113+
111114
UNION ALL
112-
SELECT lUd.LocationId, null VillageId, null VillageName,NULL VillageCode, luw.LocationId WardId, luw.LocationName WardName,luw.LocationCode WardCode,lUD.LocationId DistrictId, lUD.LocationName DistrictName, lud.LocationCode DistrictCode, LUR.LocationId RegionId, LUR.LocationName RegionName , lur.LocationCode RegionCode, LUw.ParentLocationId FROM tblLocations LUR
113-
INNER JOIN tblLocations lud on lUR.LocationId = LUD.ParentLocationId and LUD.ValidityTo is null and LUD.LocationType = 'D'
114-
INNER JOIN tblLocations luw on lUD.LocationId = LUW.ParentLocationId and LUW.ValidityTo is null and LUW.LocationType = 'W'
115-
WHERE LUR.ValidityTo is null and LUR.LocationType = 'R'
115+
116+
SELECT W.LocationId, NULL VillageId, NULL VillageName, NULL VillageCode, W.LocationId WardId, W.LocationName WardName,W.LocationCode WardCode,D.LocationId DistrictId, D.LocationName DistrictName, D.LocationCode DistrictCode, R.LocationId RegionId, R.LocationName RegionName , R.LocationCode RegionCode, W.ParentLocationId FROM tblLocations R
117+
INNER JOIN tblLocations D on R.LocationId = D.ParentLocationId AND D.ValidityTo IS NULL AND D.LocationType = 'D'
118+
INNER JOIN tblLocations W on D.LocationId = W.ParentLocationId AND W.ValidityTo IS NULL AND W.LocationType = 'W'
119+
WHERE R.ValidityTo IS NULL AND R.LocationType = 'R'
120+
116121
UNION ALL
117-
SELECT lUd.LocationId, null VillageId, null VillageName,NULL VillageCode, null WardId, null WardName,NULL WardCode,lUD.LocationId DistrictId, lUD.LocationName DistrictName,lud.LocationCode DistrictCode, LUR.LocationId RegionId, LUR.LocationName RegionName , lur.LocationCode RegionCode, LUD.ParentLocationId FROM tblLocations LUR
118-
INNER JOIN tblLocations lud on lUR.LocationId = LUD.ParentLocationId and LUD.ValidityTo is null and LUD.LocationType = 'D'
119-
WHERE LUR.ValidityTo is null and LUR.LocationType = 'R'
122+
123+
SELECT D.LocationId, NULL VillageId, NULL VillageName,NULL VillageCode, NULL WardId, NULL WardName,NULL WardCode,D.LocationId DistrictId, D.LocationName DistrictName,D.LocationCode DistrictCode, R.LocationId RegionId, R.LocationName RegionName , R.LocationCode RegionCode, D.ParentLocationId FROM tblLocations R
124+
INNER JOIN tblLocations D on R.LocationId = D.ParentLocationId AND D.ValidityTo IS NULL AND D.LocationType = 'D'
125+
WHERE R.ValidityTo IS NULL AND R.LocationType = 'R'
126+
120127
UNION ALL
121-
SELECT lUr.LocationId, null VillageId, null VillageName,NULL VillageCode, null WardId, null WardName,NULL WardCode, null DistrictId,null DistrictName, NULL DistrictCode, LUR.LocationId RegionId, LUR.LocationName RegionName, lur.LocationCode RegionCode, 0 ParentLocationId FROM tblLocations LUR
122-
WHERE LUR.ValidityTo is null and LUR.LocationType = 'R'
128+
129+
SELECT R.LocationId, NULL VillageId, NULL VillageName,NULL VillageCode, NULL WardId, NULL WardName,NULL WardCode, NULL DistrictId,NULL DistrictName, NULL DistrictCode, R.LocationId RegionId, R.LocationName RegionName, R.LocationCode RegionCode, 0 ParentLocationId FROM tblLocations R
130+
WHERE R.ValidityTo IS NULL AND R.LocationType = 'R'
123131

124132
Go
125133

0 commit comments

Comments
 (0)