diff --git a/BMA.EHR.Report.Service.csproj b/BMA.EHR.Report.Service.csproj
index fa7c82e..6f6930f 100644
--- a/BMA.EHR.Report.Service.csproj
+++ b/BMA.EHR.Report.Service.csproj
@@ -66,6 +66,12 @@
PreserveNewest
+
+ PreserveNewest
+
+
+ PreserveNewest
+
PreserveNewest
diff --git a/Controllers/OrganizationReportController.cs b/Controllers/OrganizationReportController.cs
index 684a5da..d709214 100644
--- a/Controllers/OrganizationReportController.cs
+++ b/Controllers/OrganizationReportController.cs
@@ -46,6 +46,19 @@ namespace BMA.EHR.Report.Service.Controllers
#region " Methods "
+ [HttpGet("oc-type")]
+ public async Task> GetOCType()
+ {
+ try
+ {
+ return Success(await _organizationReportService.GetOrganizationTypes("หน่วยงาน"));
+ }
+ catch (Exception ex)
+ {
+ return Error(ex);
+ }
+ }
+
///
/// รายงานบัญชี 1
///
@@ -174,14 +187,15 @@ namespace BMA.EHR.Report.Service.Controllers
OcFullNameNew = d.OcFullNameNew.Replace($"\r\n{d.OcNameNew}", string.Empty),
OcNameNew = d.OcNameNew,
ShortNameNew = d.ShortNameNew,
- PositionNumberNew = d.PositionNumberNew,
- PositionNumberIntNew = d.PositionNumberNew == "" ? 0 : Convert.ToInt32(d.PositionNumberNew.Split(".").Last()),
- PositionLevelNew = d.PositionLevelNew,
- PositionNameNew = d.PositionNameNew,
- PositionSideNew = d.PositionSideNew,
- PositionExecutiveNew = d.PositionExecutiveNew,
- PositionExecutiveSideNew = d.PositionExecutiveSideNew,
- PositionTypeNew = d.PositionTypeNew,
+ PositionNumberNew = d.PositionNumberNew == "" ? d.PositionNumber : d.PositionNumberNew,
+ PositionNumberIntNew = d.PositionNumberNew == "" ? Convert.ToInt32(d.PositionNumber.Split(".").Last()) :
+ Convert.ToInt32(d.PositionNumberNew.Split(".").Last()),
+ PositionLevelNew = d.PositionLevelNew == "" ? d.PositionLevel : d.PositionLevelNew,
+ PositionNameNew = d.PositionNameNew == "" ? d.PositionName : d.PositionNameNew,
+ PositionSideNew = d.PositionSideNew == "" ? d.PositionSide : d.PositionSideNew,
+ PositionExecutiveNew = d.PositionExecutiveNew == "" ? d.PositionExecutive : d.PositionExecutiveNew,
+ PositionExecutiveSideNew = d.PositionExecutiveSideNew == "" ? d.PositionExecutiveSide : d.PositionExecutiveSideNew,
+ PositionTypeNew = d.PositionTypeNew == "" ? d.PositionType : d.PositionTypeNew,
Prefix = d.Prefix,
FirstName = d.FirstName,
@@ -264,7 +278,7 @@ namespace BMA.EHR.Report.Service.Controllers
OcName = d.OcName,
ShortName = d.ShortName,
PositionNumber = d.PositionNumber,
- PositionNumberInt =d.PositionNumber == "" ? 0 : Convert.ToInt32(d.PositionNumber.Split(".").Last()),
+ PositionNumberInt = d.PositionNumber == "" ? 0 : Convert.ToInt32(d.PositionNumber.Split(".").Last()),
PositionName = d.PositionName,
PositionSide = d.PositionSide,
PositionExecutive = d.PositionExecutive,
@@ -278,14 +292,15 @@ namespace BMA.EHR.Report.Service.Controllers
OcFullNameNew = d.OcFullNameNew.Replace($"\r\n{d.OcNameNew}", string.Empty),
OcNameNew = d.OcNameNew,
ShortNameNew = d.ShortNameNew,
- PositionNumberNew = d.PositionNumberNew,
- PositionNumberIntNew = d.PositionNumberNew == "" ? 0 : Convert.ToInt32(d.PositionNumberNew.Split(".").Last()),
- PositionLevelNew = d.PositionLevelNew,
- PositionNameNew = d.PositionNameNew,
- PositionSideNew = d.PositionSideNew,
- PositionExecutiveNew = d.PositionExecutiveNew,
- PositionExecutiveSideNew = d.PositionExecutiveSideNew,
- PositionTypeNew = d.PositionTypeNew,
+ PositionNumberNew = d.PositionNumberNew == "" ? d.PositionNumber : d.PositionNumberNew,
+ PositionNumberIntNew = d.PositionNumberNew == "" ? Convert.ToInt32(d.PositionNumber.Split(".").Last()) :
+ Convert.ToInt32(d.PositionNumberNew.Split(".").Last()),
+ PositionLevelNew = d.PositionLevelNew == "" ? d.PositionLevel : d.PositionLevelNew,
+ PositionNameNew = d.PositionNameNew == "" ? d.PositionName : d.PositionNameNew,
+ PositionSideNew = d.PositionSideNew == "" ? d.PositionSide : d.PositionSideNew,
+ PositionExecutiveNew = d.PositionExecutiveNew == "" ? d.PositionExecutive : d.PositionExecutiveNew,
+ PositionExecutiveSideNew = d.PositionExecutiveSideNew == "" ? d.PositionExecutiveSide : d.PositionExecutiveSideNew,
+ PositionTypeNew = d.PositionTypeNew == "" ? d.PositionType : d.PositionTypeNew,
Prefix = d.Prefix,
FirstName = d.FirstName,
diff --git a/Report/Organization/rptAccount1.trdp b/Report/Organization/rptAccount1.trdp
index e4f7308..4636979 100644
Binary files a/Report/Organization/rptAccount1.trdp and b/Report/Organization/rptAccount1.trdp differ
diff --git a/Report/Organization/rptAccount2.trdp b/Report/Organization/rptAccount2.trdp
index 3cd11e9..fc447cc 100644
Binary files a/Report/Organization/rptAccount2.trdp and b/Report/Organization/rptAccount2.trdp differ
diff --git a/Report/Organization/rptAccount3.trdp b/Report/Organization/rptAccount3.trdp
index c7db9cc..d3c8c66 100644
Binary files a/Report/Organization/rptAccount3.trdp and b/Report/Organization/rptAccount3.trdp differ
diff --git a/Services/OrganizationReportService.cs b/Services/OrganizationReportService.cs
index 2f41bbd..0d885df 100644
--- a/Services/OrganizationReportService.cs
+++ b/Services/OrganizationReportService.cs
@@ -33,6 +33,32 @@ namespace BMA.EHR.Report.Service.Services
#region " Report Query "
+ public async Task?> GetOrganizationTypes(string type)
+ {
+ var Organizations = await _context.Organizations.ToListAsync();
+
+ var OrganizationOrganizations = await _context.OrganizationOrganizations.ToListAsync();
+ var OrganizationTypes = await _context.OrganizationTypes.FirstOrDefaultAsync(x => x.Name == type);
+
+ if (OrganizationTypes == null)
+ {
+ throw new Exception("Invalid Organization type.");
+ }
+
+ var dataType = (from o in Organizations
+ join os in OrganizationOrganizations on o.OrganizationOrganizationId equals os.Id into os1
+ from os in os1.DefaultIfEmpty()
+ where o.OrganizationTypeId == OrganizationTypes.Id && os != null
+ orderby o.OrganizationOrder
+ select new
+ {
+ organizationId = o.Id,
+ organizationName = os.Name
+ }).ToList();
+
+ return dataType;
+ }
+
public async Task> GetReport1Query(Guid ocId)
{
var ocIdList = _profileService.GetAllIdByRoot(ocId);