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);