Bugfixing Mok

QB LH Bad Kreuznach FUD
This commit is contained in:
Christian
2025-07-17 16:26:07 +02:00
parent e6396680c9
commit 140da93bf8
11 changed files with 153 additions and 41 deletions

View File

@@ -8,7 +8,7 @@
<IISExpressWindowsAuthentication />
<IISExpressUseClassicPipelineMode />
<UseGlobalApplicationHostFile />
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<ProjectView>ProjectFiles</ProjectView>
<WebStackScaffolding_ViewDialogWidth>600</WebStackScaffolding_ViewDialogWidth>
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>

View File

@@ -277,12 +277,16 @@ namespace BeWoPlanerMobil.Controllers
if (Model.AllGoals != null)
{
//Model.SelectedGoals = DcToMokMapper.CreateZiele(Model.AllGoals.Where(g => Model.SelectedGoalOids.Contains(g.ValueListEntryOid.Value)));
if (Model.SelectedGoals.Count == 0 && Model.SelectedGoalOids.Count > 0) // Diese Abfrage muss bleiben, sonst werden vorher gewählte Bewertungen überschrieben
{
Model.SelectedGoals = DcToMokMapper.CreateZiele(Model.AllGoals.Where(g => Model.SelectedGoalOids.Contains(g.ValueListEntryOid.Value)));
}
}
if (Model.IsInEditingMode && Model.SelectedServiceRecordOid.HasValue)
{
Model.SelectedServiceRecord = Model.GetServiceRecord(Model.SelectedServiceRecordOid.Value);
Model.SelectedServiceRecord = Model.ServiceRecords.FirstOrDefault(sr => sr.ServiceRecordOid.Equals(Model.SelectedServiceRecordOid.Value));
}
}
@@ -520,6 +524,57 @@ namespace BeWoPlanerMobil.Controllers
return list;
}
public ServiceRecordDC GetServiceRecordDC(long serviceRecordOid, bool getCompact)
{
ServiceRecordDC dc = null;
if (_Model != null)
{
dc = _Model.FindServiceRecord(serviceRecordOid);
}
if (dc == null)
{
var sr = DAOFactory.GenericDAO.LoadByID<ServiceRecord>(serviceRecordOid);
if (getCompact)
{
dc = new ServiceRecordDC()
{
Betrag = sr.Betrag,
CostBearer2SupportConceptOid = sr.CostBearer2SupportConceptOid,
DistanceInMeter = (int?)sr.DistanceInMeter,
DistanceInMeterDecimal = sr.DistanceInMeter,
DurationInStunden = sr.DurationInStunden,
End = sr.End,
GroupEmployeeCount = sr.GroupEmployeeCount,
GroupOid = sr.GroupOid,
GroupPersonCount = sr.GroupPersonCount,
GroupRoundedDuration = sr.GroupRoundedDuration,
InsertedOn = sr.InsTs,
InsUser = sr.InsUser,
Notice = sr.Notice,
Notice2 = sr.Notice2,
Notice3 = sr.Notice3,
Notice4 = sr.Notice4,
Notice5 = sr.Notice5,
Relevance = sr.Relevance,
RoundedDuration = sr.RoundedDuration,
ServiceRecordFormat = sr.ServiceRecordFormat,
ServiceRecordType = sr.ServiceRecordType ?? ServiceRecordTypeId.DefaultActivity,
ServiceRecordVersion = sr.Version,
SignatureOid = sr.SignatureOid,
WohnheimbuchungsOid = sr.WohnheimbuchungsOid,
ServiceRecordOid = sr.Oid,
Start = sr.Start
};
return dc;
}
dc = MapperFactory.ServiceRecordDC_ServiceRecord.MapToNewDC(sr);
}
return dc;
}
[Authorize]
public ActionResult Main()
{
@@ -1343,7 +1398,7 @@ namespace BeWoPlanerMobil.Controllers
if(Model.IsInEditingMode)
{
var selectedRecordOid = Model.SelectedServiceRecordOid ?? Model.SelectedServiceRecord.ServiceRecordOid;
Model.NewServiceRecord = Model.GetServiceRecord(selectedRecordOid.Value);
Model.NewServiceRecord = GetServiceRecordDC(selectedRecordOid.Value, false);
}
if(Model.NewServiceRecord is null)
@@ -1379,11 +1434,11 @@ namespace BeWoPlanerMobil.Controllers
}
}
var sclo = Model.SupportConceptListObjects.FirstOrDefault(a => a.Equals(selectedCostbearerScRelOid));
var sclo = Model.SupportConceptListObjects.FirstOrDefault(a => a.CostBearer2SupportConceptOid.Equals(selectedCostbearerScRelOid));
if(!(sclo is null))
{
var sc = CustomerService.LoadCompactSupportConceptDC(sclo.SupportConceptOid, Model.LoggedInEmployee.EmployeeOid);
var sc = GetCompactSupportConcept(sclo.SupportConceptOid);
Model.NewServiceRecord.SupportConcept = sc;
@@ -2005,7 +2060,7 @@ namespace BeWoPlanerMobil.Controllers
}
newServiceRecord.Employee = emp;
newServiceRecord.SupportConcept = CustomerService.LoadCompactSupportConceptDC(sc.SupportConceptOid, null);
newServiceRecord.SupportConcept = GetCompactSupportConcept(sc.SupportConceptOid);
newServiceRecord.CostBearer = sc.CostBearerList.ElementAt(0).Organisation;
newServiceRecord.Customer = sc.Customer;
newServiceRecord.CostBearer2SupportConceptOid = sc.CostBearerRelOids.ElementAt(0);
@@ -2241,9 +2296,10 @@ namespace BeWoPlanerMobil.Controllers
var allGoals = new List<ValueListEntryDC>();
if(Model.IsInGroupBookingMode)
if(Model.IsInGroupBookingMode || Model.IsInMultiBookingMode)
{
var supportConcepts = GetSelectedGroupBookingSupportConcepts();
LoadSupportConceptThings(null, false);
supportConcepts.DoForEach(supportConcept => { allGoals.AddRangeIfElementsNotIn(supportConcept.Goals); });
}
@@ -2457,7 +2513,7 @@ namespace BeWoPlanerMobil.Controllers
Model.SelectedServiceRecordOid = serviceRecordOid;
var selectedServiceRecord = MapperFactory.ServiceRecordDC_ServiceRecord.MapToNewDC(DAOFactory.GenericDAO.LoadByID<ServiceRecord>(serviceRecordOid));
var selectedServiceRecord = GetServiceRecordDC(serviceRecordOid, false);
if(selectedServiceRecord is null)
{
@@ -2465,6 +2521,7 @@ namespace BeWoPlanerMobil.Controllers
}
Model.SelectedGoalOids = selectedServiceRecord.Goals.Select(g => g.ValueListEntryOid.Value).ToList();
Model.SelectedGoals = DcToMokMapper.CreateZiele(selectedServiceRecord.Goals);
var selectedServiceDescription = selectedServiceRecord.ServiceDescription;
var selectedServiceCategory = selectedServiceDescription.Category;
@@ -2654,7 +2711,7 @@ namespace BeWoPlanerMobil.Controllers
{
if(supportConcept.SupportConceptOid != null)
{
checkServiceRecord.SupportConcept = CustomerService.LoadCompactSupportConceptDC(supportConcept.SupportConceptOid, Model.LoggedInEmployee.EmployeeOid);
checkServiceRecord.SupportConcept = GetCompactSupportConcept(supportConcept.SupportConceptOid);
}
checkServiceRecord.Customer = supportConcept.Customer;
@@ -2764,7 +2821,7 @@ namespace BeWoPlanerMobil.Controllers
sr.Customer = serviceRecord.SupportConcept?.Customer;
var result = OperationsService.ValidateServiceRecord(sr, null, maxDaysEditSRsAllowed, employeeOids, costBearer2SupportConceptOids);
var node = CreateFlatSupportConceptItem(CustomerService.LoadCompactSupportConceptDC(sr.SupportConcept.SupportConceptOid, Model.SelectedEmployee.EmployeeOid), null);
var node = CreateFlatSupportConceptItem(GetCompactSupportConcept(sr.SupportConcept.SupportConceptOid), null);
dateRangeString = node?.SupportConceptTreeNodeDC != null ? node.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC.DateRangeString : string.Empty;
validationResults.AddIfNotIn(new ServiceRecord2Validation(sr, result, dateRangeString));
@@ -2775,7 +2832,7 @@ namespace BeWoPlanerMobil.Controllers
{
if(Model.SelectedSupportConcept != null)
{
var node = CreateFlatSupportConceptItem(CustomerService.LoadCompactSupportConceptDC(Model.SelectedSupportConcept.SupportConceptOid, Model.SelectedEmployee.EmployeeOid), null);
var node = CreateFlatSupportConceptItem(GetCompactSupportConcept(Model.SelectedSupportConcept.SupportConceptOid), null);
dateRangeString = node?.SupportConceptTreeNodeDC != null ? node.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC.DateRangeString : "";
}
@@ -3031,7 +3088,8 @@ namespace BeWoPlanerMobil.Controllers
[Authorize]
public string ValidateServiceRecordDeletion(string serviceRecordOidString)
{
if(Model is null)
SkipModelInitialization = true;
if(!IsUserLoggedIn())
{
Logout();
return LeerzeichenFuerGetMethoden;
@@ -3046,7 +3104,7 @@ namespace BeWoPlanerMobil.Controllers
var newResult = new ValidationResult();
var serviceRecord = Model.GetServiceRecord(serviceRecordOid);
var serviceRecord = GetServiceRecordDC(serviceRecordOid, true);
if(serviceRecord is null)
{
@@ -3467,6 +3525,7 @@ namespace BeWoPlanerMobil.Controllers
Model.IsInMultiBookingMode = false;
Model.SelectedGoalOids.Clear();
Model.SelectedGoals.Clear();
Model.SelectedServiceCategoryOid = null;
Model.SelectedServiceDescriptionOid = null;
@@ -3568,6 +3627,7 @@ namespace BeWoPlanerMobil.Controllers
//Model.GroupBookingSelectedSupportConceptOids = Model.GroupBookingSelectedSupportConcepts.Select(s => s.SupportConceptOid.Value).ToList();
CreateModelSupportConceptListObjects(false);
LoadSupportConceptThings(null, true);
return PartialView("GroupBookingScCbRelList", Model);
}
@@ -3640,13 +3700,14 @@ namespace BeWoPlanerMobil.Controllers
[Authorize]
public string GetSignatureImage(long serviceRecordOid, long signatureOid)
{
if(Model is null)
SkipModelInitialization = true;
if(!IsUserLoggedIn())
{
Logout();
return LeerzeichenFuerGetMethoden;
}
var signatureServiceRecord = Model.GetServiceRecord(serviceRecordOid);
var signatureServiceRecord = GetServiceRecordDC(serviceRecordOid, true);
var signatureServiceRecordHeader = MainModel.GetServiceRecordTimeHeader(signatureServiceRecord, false);
var signatureImage = OperationsService.GetSignature(signatureOid).DataBild;
@@ -3850,11 +3911,11 @@ namespace BeWoPlanerMobil.Controllers
}
var sclo = Model.SupportConceptListObjects.FirstOrDefault(a => a.Equals(selectedCostbearer2SupportConceptRelOid));
var sclo = Model.SupportConceptListObjects.FirstOrDefault(a => a.CostBearer2SupportConceptOid.Equals(selectedCostbearer2SupportConceptRelOid));
if (sclo != null)
{
var sc = CustomerService.LoadCompactSupportConceptDC(sclo.SupportConceptOid, Model.LoggedInEmployee.EmployeeOid);
var sc = GetCompactSupportConcept(sclo.SupportConceptOid);
Model.NewServiceRecord.SupportConcept = sc;
Model.NewServiceRecord.Customer = sc.Customer;
@@ -3944,6 +4005,21 @@ namespace BeWoPlanerMobil.Controllers
return ResetEditingMode();
}
private CompactSupportConceptDC GetCompactSupportConcept(long supportConceptOid)
{
CompactSupportConceptDC sc = null;
if (Model.SupportConcepts != null)
{
//sc = Model.SupportConcepts.FirstOrDefault(s => s.SupportConceptOid == supportConceptOid);
}
if (sc == null)
{
sc = CustomerService.LoadCompactSupportConceptDC(supportConceptOid, Model.LoggedInEmployee.EmployeeOid);
}
return sc;
}
[Authorize]
public string ToggleDurationUnit(bool isInHoursMode)
{
@@ -4171,7 +4247,8 @@ namespace BeWoPlanerMobil.Controllers
[Authorize]
public ActionResult DeleteSignature(FormCollection formCollection)
{
if(Model is null)
SkipModelInitialization = true;
if(!IsUserLoggedIn())
{
TempData[TempDataConstants.DoLogoutKey] = true;
return Logout();
@@ -4298,6 +4375,9 @@ namespace BeWoPlanerMobil.Controllers
}
}
CreateModelSupportConceptListObjects(false);
LoadSupportConceptThings(null, true);
//Model.SelectedConceptCostBearerRelationOids = Model.SelectedConceptCostBearerRelations.Select(s => s.CostBearer2SupportConceptOid.Value).ToList();
//Model.MultiBookingSelectedSupportConceptOids = Model.MultiBookingSelectedSupportConcepts.Select(s => s.SupportConceptOid.Value).ToList();
@@ -4878,7 +4958,7 @@ namespace BeWoPlanerMobil.Controllers
Model.OneTimeLink = link;
var serviceRecord = Model.GetServiceRecord(serviceRecordOid);
var serviceRecord = GetServiceRecordDC(serviceRecordOid, false);
var hilfeplan = Model.SelectedSupportConceptListObject.NameAndDateOfBirth + " | " + Model.SelectedSupportConceptListObject.SupportConceptTimeSpan;
var leistung = serviceRecord.ServiceDescription.Name;
@@ -4928,6 +5008,9 @@ namespace BeWoPlanerMobil.Controllers
//LoadGoals();
CreateModelSupportConceptListObjects(false);
LoadSupportConceptThings(null, true);
return PartialView("GoalTreePartial", Model);
}

View File

@@ -669,7 +669,20 @@ namespace BeWoPlanerMobil.Models
}
}
public string DistanceToEdit => SelectedServiceRecord?.DistanceInMeterDecimal.ToString() ?? string.Empty;
public string DistanceToEdit
{
get
{
if (SelectedServiceRecord != null && SelectedServiceRecord.DistanceInMeterDecimal.HasValue)
{
var dist = SelectedServiceRecord.DistanceInMeterDecimal.Value;
return Math.Round(dist, 0, MidpointRounding.AwayFromZero).ToString();
}
return string.Empty;
}
}
public string NoticeToEdit => SelectedServiceRecord?.NoticeList.FirstOrDefault() ?? string.Empty;
@@ -679,7 +692,7 @@ namespace BeWoPlanerMobil.Models
public long SelectedServiceRecordsServiceDescriptionOid => SelectedServiceRecord?.ServiceDescription?.ServiceDescriptionOid ?? 0L;
public ServiceRecordDC GetServiceRecord(long serviceRecordOid)
public ServiceRecordDC FindServiceRecord(long serviceRecordOid)
{
return ServiceRecords.FirstOrDefault(serviceRecord => serviceRecord.ServiceRecordOid.Equals(serviceRecordOid));
}

View File

@@ -30,7 +30,7 @@ namespace BeWoPlanerMobil.Models
}
}
public QbSignatureIntervalSelection SelectedIntervalSelection { get; set; }
public QbSignatureIntervalSelection SelectedIntervalSelection { get { return ReportSessionModel.SelectedIntervalSelection; } set { ReportSessionModel.SelectedIntervalSelection = value; } }
public List<SelectListItem> IntervalSelections => new List<SelectListItem>
{

View File

@@ -35,6 +35,7 @@ namespace BeWoPlanerMobil.Models
public ConfirmationReceiptObject ConfirmationReceiptObject { get; internal set; }
public Quittierungsbelegsunterschriftenobjekt Quittierungsbelegsunterschriftenobjekt { get; internal set; }
public List<ConfirmationReceiptSignatureObject> SelectedConfirmationReceiptSignatures { get; internal set; }
public QbSignatureIntervalSelection SelectedIntervalSelection { get; internal set; }
public void ResetValues()
{
@@ -55,6 +56,7 @@ namespace BeWoPlanerMobil.Models
ConfirmationReceiptObject = null;
Quittierungsbelegsunterschriftenobjekt = null;
SelectedConfirmationReceiptSignatures = null;
SelectedIntervalSelection = QbSignatureIntervalSelection.FirstHalf;
}
}
}

View File

@@ -38,7 +38,7 @@ namespace BeWoPlanerMobil.Util
public static IList<MokZiel> CreateZiele(IEnumerable<ValueListEntryDC> dclist)
{
return dclist.Select(g => CreateZiel(g)).ToList();
return dclist?.Select(g => CreateZiel(g)).ToList();
}
public static MokServiceRecord CreateServiceRecord(ServiceRecordDC dc, ReportModel model)

View File

@@ -194,12 +194,7 @@
var startTimeValue = Model.StartTimeToEdit;
var endTimeValue = Model.EndTimeToEdit;
var divisor = Model.SelectedDurationUnit == "Stunden" ? 60 : 1;
var durationValue = string.Empty;
if(!(Model.SelectedServiceRecord is null))
{
durationValue = (Model.SelectedServiceRecord?.RoundedDuration / divisor).ToString();
}
var durationValue = Model.DurationToEdit;
var afterValidationState = TempData[TempDataConstants.AfterValidationStateKey];

View File

@@ -154,12 +154,7 @@
var divisor = Model.SelectedDurationUnit == "Stunden" ? 60 : 1;
var durationValue = string.Empty;
if(Model.SelectedServiceRecord != null)
{
durationValue = (Model.SelectedServiceRecord?.RoundedDuration / divisor).ToString();
}
var durationValue = Model.DurationToEdit;
var afterValidationState = TempData[TempDataConstants.AfterValidationStateKey];

View File

@@ -8,6 +8,7 @@ using BeWo.Report;
using BeWo.Report.DefaultReports;
using BeWo.Report.ReportObjects;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using DevExpress.XtraReports.UI;
using LebenshilfeBadKreuznachFUD.Reporting.Reports;
@@ -24,12 +25,17 @@ namespace LebenshilfeBadKreuznachFUD.Reporting
{
var rootReport = CreateServicesOverviewReportForRo(lROs[0], serviceCategoryOid);
rootReport.CreateDocument();
if (rootReport.Pages.Count == 0)
{
rootReport.CreateDocument();
}
for (int i = 1; i < lROs.Count; i++)
{
var lNext = CreateServicesOverviewReportForRo(lROs[i], serviceCategoryOid);
lNext.CreateDocument();
if (lNext.Pages.Count == 0)
{
lNext.CreateDocument();
}
rootReport.Pages.AddRange(lNext.Pages);
}
@@ -38,16 +44,30 @@ namespace LebenshilfeBadKreuznachFUD.Reporting
return new XtraReport();
}
public override XtraReport CreateServiceOverviewReportForCustomers(IList<long> customerOids, int month, int year, long? orgaOid, long? empOid, long? serviceCategoryOid, int startDay, int endDay, bool nurFehlende)
{
return base.CreateServiceOverviewReportForCustomers(customerOids, month, year, orgaOid, empOid, serviceCategoryOid, startDay, endDay, nurFehlende);
}
public override XtraReport CreateServiceOverviewSingleCustomerReport(long customerOid, int month, int year, long orgaOid, long empOid, long? serviceCategoryOid, int startDay, int endDay)
{
var ro = ServicesOverviewRO.Create(customerOid, month, year, false, orgaOid, empOid, startDay, endDay, serviceCategoryOid);
return CreateServicesOverviewReportForRo(ro, serviceCategoryOid);
}
public override XtraReport CreateReportForServicesOverviewRo(ServicesOverviewRO ro, string reportId)
{
return CreateServicesOverviewReportForRo(ro, null);
}
private XtraReport CreateServicesOverviewReportForRo(ServicesOverviewRO ro, long? serviceCategoryOid)
{
XtraReport report = null;
if (ro.CustomerLastName == "Fritsch")
{
}
ServicesOverviewRO entlastungRo = ServicesOverviewRO.CopyFromRO(ro);
ServicesOverviewRO sonstigesRo = ServicesOverviewRO.CopyFromRO(ro);

View File

@@ -161,6 +161,10 @@ namespace TemplateNeuKunde.Reporting
// // return new XtraReport();
// //}
//public override XtraReport CreateReportForServicesOverviewRo(ServicesOverviewRO ro, String reportId)
//{
// return CreateServicesOverviewReportForRo(ro, null);
//}
// //private XtraReport CreateServicesOverviewReportForRo(ServicesOverviewRO ro, long? serviceCategoryOid)
// //{

View File

@@ -2027,7 +2027,7 @@ namespace BeWo.Service.ServiceImplementations
var orgDC = new CompactOrganisationDC();
orgDC.Name = iCBRel.CostBearer.Organisation.Name;
orgDC.OrganisationOid = iCBRel.CostBearer.Organisation.Oid.Value;
orgDC.CostBearerOid = iCBRel.CostBearer.Oid.Value;
costBearer.Organisation = orgDC;
// costBearer.Street = iCBRel.CostBearer.Organisation.Address.Street;