diff --git a/Service/ServiceContracts/IAdminService.cs b/Service/ServiceContracts/IAdminService.cs index 17e9fb572..b823a5c7d 100644 --- a/Service/ServiceContracts/IAdminService.cs +++ b/Service/ServiceContracts/IAdminService.cs @@ -25,6 +25,6 @@ namespace BeWo.Service.ServiceContracts [OperationContract] [WebInvoke(UriTemplate = "/GetGkvSum?detail={flag}", Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] - object GetGkvAbrechnungSumme(AdminServiceSumReqDC request, string flag); + AdminServiceSumResponseDC GetGkvAbrechnungSumme(AdminServiceSumReqDC request, string flag); } } diff --git a/Service/ServiceImplementations/AdminServiceImp.cs b/Service/ServiceImplementations/AdminServiceImp.cs index 69e439f11..cc30e8c81 100644 --- a/Service/ServiceImplementations/AdminServiceImp.cs +++ b/Service/ServiceImplementations/AdminServiceImp.cs @@ -3,6 +3,7 @@ using BeWo.Data.Entities; using BeWo.Data.Entities.Light; using BeWo.Service.DCEntityMapper; using BeWo.Service.ServiceContracts; +using BS.Shared; using BS.Shared.Core; using BS.Shared.DataContracts.AdminService; using BS.Shared.Extensions; @@ -10,6 +11,7 @@ using DevExpress.Pdf.Native.BouncyCastle.Ocsp; using Newtonsoft.Json; using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.ServiceModel; using System.Text; @@ -30,7 +32,7 @@ namespace BeWo.Service.ServiceImplementations return echo; } - public object GetGkvAbrechnungSumme(AdminServiceSumReqDC request, string detail) + public AdminServiceSumResponseDC GetGkvAbrechnungSumme(AdminServiceSumReqDC request, string detail) { if (request == null) { @@ -46,14 +48,13 @@ namespace BeWo.Service.ServiceImplementations { throw new ArgumentException("end entspricht nicht ISO8601 Norm."); } - - var sum = DAOFactory.ScriptDAO.GetGkvSumByDateRange(start, end); + + var res = new AdminServiceSumResponseDC(); + res.Sum = DAOFactory.ScriptDAO.GetGkvSumByDateRange(start, end); if (detail != "true") { - var json = JsonUtils.ToSimpleJson("sum", sum); - - return json; + return res; } string detail_res; @@ -64,42 +65,37 @@ namespace BeWo.Service.ServiceImplementations var protokolle = DAOFactory.GenericDAO.LoadByIDs(protokolle_oids); var abrechnung_oids = protokolle.Select(x => x.GkvAbrechnungOid).Distinct(); var abrechnung = DAOFactory.GenericDAO.LoadByIDs(abrechnung_oids); + var abrechnung_dc = MapperFactory.GkvAbrechnungLight.MapToNewDCs(abrechnung); - var objs = abrechnung.Select(x => + res.Details = abrechnung_dc.Select(x => { var t = x.TransferProtokolle.First(); - return new + var state = x.GetState(); + + return new AdminServiceSumResponseDetailDC() { - oid = x.Oid, - toid = t.Oid, - created = x.ErstelltAm, - rec = t.BezDatenannahmestelle, - str = x.AbrechnungsZeitraumStart, - end = x.AbrechnungsZeitraumEnde, - ver = x.Verfahrensstufe.ToString(), - sta = x.GetState().ToString(), - urg = x.UrbelegeGesendet, - bez = x.Bezahlt, - sum = x.Betrag.ToString("0.00€") + Oid = x.Oid, + ProtokollOid = t.Oid.Value, + ErstelltAm = x.ErstelltAm.ToString("o", CultureInfo.InvariantCulture), + Empfanger = t.BezDatenannahmestelle, + AbrechnungsZeitraumStart = x.AbrechnungsZeitraumStart?.ToString("o", CultureInfo.InvariantCulture), + AbrechnungsZeitraumEnde = x.AbrechnungsZeitraumEnde?.ToString("o", CultureInfo.InvariantCulture), + VerfahrensstufeInt = x.Verfahrensstufe, + Verfahrensstufe = ((GkvVerfahrensstufe)x.Verfahrensstufe).ToString(), + StateInt = (int)state, + State = state.ToString(), + UrbelegeGesendet = x.UrbelegeGesendet, + Bezahlt = x.Bezahlt, + Betrag = x.Betrag }; }); - - detail_res = JsonUtils.ConvertToJson(objs); } else { - detail_res = "no records found"; + res.Details = new List(); } - var rtn = new - { - sum = sum?.ToString("0.00") ?? "0.00", - predicate = detail_res, - }; - - var json2 = JsonUtils.ConvertToJson(rtn); - - return json2; + return res; } } } diff --git a/Shared/DataContracts/AdminService/AdminServiceSumResponseDC.cs b/Shared/DataContracts/AdminService/AdminServiceSumResponseDC.cs new file mode 100644 index 000000000..0ddb6c5fe --- /dev/null +++ b/Shared/DataContracts/AdminService/AdminServiceSumResponseDC.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace BS.Shared.DataContracts.AdminService +{ + [DataContract] + public class AdminServiceSumResponseDC : IAdminServiceDC + { + [DataMember(Name = "sum", Order = 1)] + public decimal? Sum { get; set; } + + [DataMember(Name = "details", EmitDefaultValue = false, Order = 2)] + public IEnumerable Details { get; set; } + } +} diff --git a/Shared/DataContracts/AdminService/AdminServiceSumResponseDetailDC.cs b/Shared/DataContracts/AdminService/AdminServiceSumResponseDetailDC.cs new file mode 100644 index 000000000..4cdd3909c --- /dev/null +++ b/Shared/DataContracts/AdminService/AdminServiceSumResponseDetailDC.cs @@ -0,0 +1,55 @@ +using BS.Shared.Interface; +using DevExpress.Mvvm.DataAnnotations; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace BS.Shared.DataContracts.AdminService +{ + [DataContract] + public class AdminServiceSumResponseDetailDC : IAdminServiceDC + { + [DataMember(Name = "a.oid", Order = 1)] + public long Oid { get; set; } + + [DataMember(Name = "t.oid", Order = 2)] + public long ProtokollOid { get; set; } + + [DataMember(Name = "sum", Order = 3)] + public decimal Betrag { get; set; } + + [DataMember(Name = "paid", Order = 4)] + public bool Bezahlt { get; set; } + + [DataMember(Name = "urbelege_sent", Order = 5)] + public bool UrbelegeGesendet { get; set; } + + [DataMember(Name = "receiver", Order = 6)] + public string Empfanger { get; set; } + + [DataMember(Name = "create", Order = 7)] + public string ErstelltAm { get; set; } + + [DataMember(Name = "gkv_start", Order = 8)] + public string AbrechnungsZeitraumStart { get; set; } + + [DataMember(Name = "gkv_end", Order = 9)] + public string AbrechnungsZeitraumEnde { get; set; } + + [DataMember(Name = "level", Order = 10)] + public int VerfahrensstufeInt { get; set; } + + [DataMember(Name = "level_string", Order = 11)] + public string Verfahrensstufe { get; set; } + + [DataMember(Name = "state", Order = 20)] + public int StateInt { get; set; } + + [DataMember(Name = "state_string", Order = 21)] + public string State { get; set; } + } +} diff --git a/Shared/Shared.csproj b/Shared/Shared.csproj index c3e6108f1..37f92f697 100644 --- a/Shared/Shared.csproj +++ b/Shared/Shared.csproj @@ -178,6 +178,8 @@ + +