Distanz ist jetzt wie im FaC
This commit is contained in:
2023-05-23 13:56:22 +02:00
parent 2fd05fef1f
commit 27e73939e6
13 changed files with 108 additions and 32 deletions

View File

@@ -679,7 +679,7 @@
</StackPanel>
</GroupBox.Header>
<Grid>
<dxg:GridControl MouseDoubleClick="grid_possibleDiagnosis_MouseDoubleClick" Name="grid_possibleDiagnosis">
<dxg:GridControl MouseDoubleClick="grid_possibleDiagnosis_MouseDoubleClick" Name="grid_possibleDiagnosis" >
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Key" FixedWidth="True" Width="70" AllowResizing="True"
AutoFilterCondition="Contains" Header="ICD 10" />

View File

@@ -110,7 +110,11 @@ namespace BeWoPlanerMobil.Controllers
if (customerOid > 0 && Model.Customers.Any(customer => customer.CustomerOid.Equals(customerOid.Value)))
{
Model.SelectedCustomerOid = customerOid;
Model.SelectedCustomer = CustomerService.LoadCustomer(customerOid.Value);
Model.FolderTree = OperationsService.GetFolderTree(TableID.Customer, customerOid.Value);
var customer = CustomerService.LoadCustomer(customerOid.Value);
Model.ICD10Diagnosen = OperationsService.GetDiagiosisStringsForICD10Codes(customer.ICD10DiagnosisCodes);
Model.SelectedCustomer = customer;
}
return RedirectToActionPermanent("Customer");
@@ -136,7 +140,14 @@ namespace BeWoPlanerMobil.Controllers
{
Model.FolderTree = OperationsService.GetFolderTree(TableID.Customer, selectedCustomerOid);
Model.SelectedCustomerOid = selectedCustomerOid == -1 ? (long?)null : selectedCustomerOid;
Model.SelectedCustomer = selectedCustomerOid != -1 ? CustomerService.LoadCustomer(selectedCustomerOid) : null;
var customer = selectedCustomerOid != -1 ? CustomerService.LoadCustomer(selectedCustomerOid) : null;
if(!(customer is null))
{
Model.ICD10Diagnosen = OperationsService.GetDiagiosisStringsForICD10Codes(customer.ICD10DiagnosisCodes);
}
Model.SelectedCustomer = customer;
}
}

View File

@@ -910,11 +910,11 @@ namespace BeWoPlanerMobil.Controllers
}
var distanz = collection[FormCollectionConstants.DistanceKey];
var distanceInMeters = 0;
decimal? distanceInMeters = null;
if(!string.IsNullOrEmpty(distanz))
{
if(int.TryParse(distanz, out var parsedDistance))
if(decimal.TryParse(distanz, out var parsedDistance))
{
distanceInMeters = parsedDistance;
}
@@ -991,7 +991,7 @@ namespace BeWoPlanerMobil.Controllers
Model.NewServiceRecord.Start = zeitenFeld[0];
Model.NewServiceRecord.End = zeitenFeld[1];
Model.NewServiceRecord.DistanceInMeter = distanceInMeters;
Model.NewServiceRecord.DistanceInMeterDecimal = distanceInMeters;
if(Model.Employee.EmployeeOid.HasValue)
{
@@ -1338,7 +1338,7 @@ namespace BeWoPlanerMobil.Controllers
item.End = Model.NewServiceRecord.End;
item.Start = Model.NewServiceRecord.Start;
item.RoundedDuration = roundedDuration;
item.DistanceInMeter = Model.NewServiceRecord.DistanceInMeter;
item.DistanceInMeterDecimal = Model.NewServiceRecord.DistanceInMeterDecimal;
item.ServiceDescription = Model.NewServiceRecord.ServiceDescription;
item.ServiceRecordFormat = Model.NewServiceRecord.ServiceRecordFormat;
@@ -2948,11 +2948,11 @@ namespace BeWoPlanerMobil.Controllers
}
var distanz = formCollection[FormCollectionConstants.DistanceKey];
var distanceInMeters = 0;
decimal? distanceInMeters = null;
if(!string.IsNullOrEmpty(distanz))
{
if(int.TryParse(distanz, out var parsedDistance))
if(decimal.TryParse(distanz, out var parsedDistance))
{
distanceInMeters = parsedDistance;
}
@@ -3024,7 +3024,7 @@ namespace BeWoPlanerMobil.Controllers
Model.NewServiceRecord.Start = zeitenFeld[0];
Model.NewServiceRecord.End = zeitenFeld[1];
Model.NewServiceRecord.DistanceInMeter = distanceInMeters;
Model.NewServiceRecord.DistanceInMeterDecimal = distanceInMeters;
if(Model.Employee.EmployeeOid.HasValue)
{
@@ -3420,11 +3420,11 @@ namespace BeWoPlanerMobil.Controllers
}
var distanz = formCollection[FormCollectionConstants.DistanceKey];
var distanceInMeters = 0;
decimal? distanceInMeters = null;
if(!string.IsNullOrEmpty(distanz))
{
if(int.TryParse(distanz, out var parsedDistance))
if(decimal.TryParse(distanz, out var parsedDistance))
{
distanceInMeters = parsedDistance;
}
@@ -3509,7 +3509,7 @@ namespace BeWoPlanerMobil.Controllers
IP = Request.UserHostAddress,
Start = zeitenFeld[0],
End = zeitenFeld[1],
DistanceInMeter = distanceInMeters,
DistanceInMeterDecimal = distanceInMeters,
RoundedDuration = roundedDuration,
SupportConcept = sc2cbRel.SupportConcept,
CostBearer2SupportConceptOid = sc2cbRel.CostBearer2SupportConceptOid,

View File

@@ -64,8 +64,6 @@ namespace BeWoPlanerMobil.Controllers
// Hat man weder das Recht "HasRightMitarbeiterstundenkontoViewAll" noch "HasRightMitarbeiterstundenkontoViewTeams", sieht man die Teams gar nicht.
// Hat man das Recht "HasRightMitarbeiterstundenkontoViewTeams", aber nicht das Recht "HasRightMitarbeiterstundenkontoViewAll", sieht man nur die Teams, deren Teamleiter man ist.
var test = EmployeeService.FindLeadingCompactTeamsOfEmployee(MobileSessionFacade.LoggedInCompactEmployee.EmployeeOid);
Model.AllTeams = AbstractModel.HasRightMitarbeiterstundenkontoViewAll
? EmployeeService.GetAllActiveCompactTeamsForEmployee(MobileSessionFacade.LoggedInEmployee.EmployeeOid)
: EmployeeService.FindLeadingCompactTeamsOfEmployee(MobileSessionFacade.LoggedInCompactEmployee.EmployeeOid);
@@ -75,12 +73,6 @@ namespace BeWoPlanerMobil.Controllers
Model.SelectedEmployeeOid = MobileSessionFacade.LoggedInCompactEmployee.EmployeeOid;
}
// ToDo: Hat man das Recht "Nur Team" nicht, kann man nur die Teams sehen, bei denen man auch Leiter ist.
if(!AbstractModel.HasRightMitarbeiterstundenkontoViewTeams)
{
}
Model.ReportTypes = new List<SelectListItem>();
if(AbstractModel.HasRightToViewReports)

View File

@@ -162,5 +162,7 @@ namespace BeWoPlanerMobil.Models
return MobileSessionFacade.Tenant != "3010479871" && CheckForAtLeastOneRight(new[] { UserRightType.Mitarbeiterstundenkonto_ViewAll, UserRightType.Mitarbeiterstundenkonto_ViewTeams, UserRightType.Mitarbeiterstundenkonto_ViewSelf });
}
}
public static bool HasRightToViewDiagnosen => CheckRight(UserRightType.Customer_ViewDiagnosis);
}
}

View File

@@ -33,7 +33,9 @@ namespace BeWoPlanerMobil.Models
}
}
public JsonCustomer SelectedJsonCustomer => SelectedCustomer != null ? new JsonCustomer(SelectedCustomer, FolderTree) : null;
public Dictionary<string, string> ICD10Diagnosen { get; set; }
public JsonCustomer SelectedJsonCustomer => SelectedCustomer != null ? new JsonCustomer(SelectedCustomer, FolderTree, ICD10Diagnosen) : null;
[Display(Name = "Filter")]
public CustomerFilterEnum SelectedCustomerFilter { get; set; }

View File

@@ -53,8 +53,11 @@ namespace BeWoPlanerMobil.Util
public Sex? CustomerSex { get; set; }
public JsonCustomer(CustomerDC customer, List<BeWoFolderDC> folderTree)
public Dictionary<string, string> ICD10Diagnosen { get; set; } = new Dictionary<string, string>();
public JsonCustomer(CustomerDC customer, List<BeWoFolderDC> folderTree, Dictionary<string, string> icd10Diagnosen)
{
ICD10Diagnosen = icd10Diagnosen;
Vorname = customer.FirstName;
Nachname = customer.LastName;
Geburtstag = customer.DateOfBirth?.ToShortDateString() ?? string.Empty;

View File

@@ -344,7 +344,8 @@ namespace BeWoPlanerMobil.Util
IsCreatedInMobileClient = true,
WohnheimbuchungsOid = m.WohnheimbuchungsOid,
DurationInStunden = m.DurationInStunden,
ServiceRecordFormat = m.ServiceRecordFormat
ServiceRecordFormat = m.ServiceRecordFormat,
DistanceInMeterDecimal = m.DistanceInMeterDecimal
};
return clone;

View File

@@ -652,8 +652,8 @@
</div>
</div>
<!-- Medikamentenliste TODO: kollabierbar machen -->
@if(Html.IsInDebugMode() && AbstractModel.IsAllowedToSeeMedikamentenliste && Html.IsInDebugMode())
<!-- Medikamentenliste TODO: ÜBERARBEITEN -->
@if(Html.IsInDebugMode() && AbstractModel.IsAllowedToSeeMedikamentenliste)
{
<div class="col-12 my-3">
<div class="card w-100">
@@ -673,7 +673,7 @@
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-primary" id="chevron-customer-report"></i>
</div>
<div class="p2 d-inline-flex text-primary h-100">
<div class="d-inline-flex text-primary h-100">
<button type="button" class="btn btn-link">
Medikamentenliste
</button>
@@ -691,7 +691,46 @@
</div>
</div>
}
</div>
@if(Html.IsInDebugMode() && AbstractModel.HasRightToViewDiagnosen)
{
<div class="col-12 my-3">
<div class="card w-100 h-100">
<div class="card-header" onclick="cardHeaderClick('#chevron-customer-diagnosen', '#collapse-customer-diagnosen')">
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header" id="chevron-customer-diagnosen"></i>
</div>
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
<button type="button" class="btn btn-link text-bewo-customer-card-header">
Diagnosen
</button>
</div>
</div>
<div class="collapse" id="collapse-customer-diagnosen">
<div class="card-body">
<div class="row">
<div class="col">
@foreach(var code2Text in Model.SelectedJsonCustomer.ICD10Diagnosen)
{
<div class="row">
<div class="col-auto">
@code2Text.Key
</div>
<div class="col-auto">
@code2Text.Value
</div>
</div>
}
<!-- TODO: Hier weitermachen! -->
</div>
</div>
</div>
</div>
</div>
</div>
}
</div>
}
}
</div>

View File

@@ -367,7 +367,7 @@
}
function setInputFilter(durationId, distanceId, hoursMinutesDropdownBtnId) {
$("#" + durationId + ", #" + distanceId).inputFilter(function(value) {
$("#" + durationId).inputFilter(function (value) {
var result = /^\d*$/;
var dropdownButton = $("#" + hoursMinutesDropdownBtnId);
@@ -377,6 +377,10 @@
return result.test(value);
});
$("#" + distanceId).inputFilter(function(value) {
return /^-?\d*[.,]?\d*$/.test(value);
});
}
(function($) {

View File

@@ -475,7 +475,6 @@
</div>
<!-- Zeitraum wählen: [Von-Datum] bis [Bis-Datum] erster des Monats bis aktuelles Datum -->
var defaultStartDate = DateTime.Now.GetFirstOfMonth().ToShortDateString();
var defaultEndDate = DateTime.Today.ToShortDateString();
<div class="form-row" id="custom-interval-container">
@@ -807,14 +806,14 @@
@durationStr
</div>
</div>
@if(Model.ShowDistanceField && serviceRecord.DistanceInMeter != null && serviceRecord.DistanceInMeter.Value > 0)
@if(Model.ShowDistanceField && serviceRecord.DistanceInMeterDecimal != null && serviceRecord.DistanceInMeterDecimal.Value > 0)
{
<div class="row">
<div class="col text-secondary">
Gefahrene Kilometer:
</div>
<div class="col">
@serviceRecord.DistanceInMeter.ToString()
@string.Format("{0:0.##}", serviceRecord.DistanceInMeterDecimal)
</div>
</div>
}

View File

@@ -1299,5 +1299,9 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
SchedulerAppointmentDC GetRootAppointment(string recurrenceId);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
Dictionary<string, string> GetDiagiosisStringsForICD10Codes(List<string> icd10Codes);
}
}

View File

@@ -7866,5 +7866,24 @@ namespace BeWo.Service.ServiceImplementations
throw Utils.CreateBeWoFaultException(e);
}
}
public Dictionary<string, string> GetDiagiosisStringsForICD10Codes(List<string> icd10Codes)
{
try
{
var result = new Dictionary<string, string>();
foreach(var code in icd10Codes)
{
result.AddIfNotIn(new KeyValuePair<string, string>(code, ICD10DAO.GetDiagnosisForCode(code)));
}
return result;
}
catch(Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
}
}