Ignore Test
This commit is contained in:
@@ -456,15 +456,15 @@ namespace BeWo.View
|
||||
|
||||
if (!_Code.Equals(""))
|
||||
{
|
||||
//Login _login = new Login(_kundennummer, _Code, _benutzername, _passwort, _apikey);
|
||||
var login = new Login(_kundennummer, _Code, _benutzername, _passwort, _apikey);
|
||||
|
||||
//var x = _login.AnmeldevorgangDurchFuehren();
|
||||
var x = login.AnmeldevorgangDurchFuehren();
|
||||
|
||||
//if (x != null)
|
||||
//{
|
||||
// ServiceChatView = new ChatView(x);
|
||||
// ServiceChatView.Show();
|
||||
//}
|
||||
if(x != null)
|
||||
{
|
||||
ServiceChatView = new ChatView(x);
|
||||
ServiceChatView.Show();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -202,7 +202,6 @@
|
||||
<DependentUpon>TestWebService.asmx</DependentUpon>
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Util\JSONCustomer.cs" />
|
||||
<Compile Include="Util\MobileUtils.cs" />
|
||||
<Compile Include="Util\ReferenceNumberWithNotice.cs" />
|
||||
<Compile Include="Util\ServiceRecord2Validation.cs" />
|
||||
|
||||
@@ -668,7 +668,15 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return RedirectToActionPermanent("Index", "Login");
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(collection["Datum"]) || Model.NewServiceRecord == null)
|
||||
{
|
||||
return View("Main", Model);
|
||||
}
|
||||
|
||||
string doku1;
|
||||
var distanceInMeters = 0;
|
||||
var dauer = 0;
|
||||
var serviceDescOid = 0L;
|
||||
|
||||
if(Model.Dokutypes != null && Model.Dokutypes.Length > 0)
|
||||
{
|
||||
@@ -678,16 +686,18 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
doku1 = collection["Dokumentation6"];
|
||||
}
|
||||
|
||||
Log.Info($"CreateServiceRecord: datum:{collection["Datum"]}; start:{collection["Start"]}; ende:{collection["Ende"]}; dauer:{collection["Dauer"]}; doku:{doku1}; aktion:{collection["versteckt"]}");
|
||||
|
||||
if(string.IsNullOrEmpty(collection["Datum"]))
|
||||
{
|
||||
return View("Main", Model);
|
||||
}
|
||||
|
||||
var doku2 = collection["Dokumentation2"];
|
||||
var doku3 = collection["Dokumentation3"];
|
||||
var doku4 = collection["Dokumentation4"];
|
||||
var doku5 = collection["Dokumentation5"];
|
||||
var distanz = collection["Distanz"];
|
||||
var distanceInMeters = 0;
|
||||
var start = collection["Start"];
|
||||
var ende = collection["Ende"];
|
||||
var endDateString = collection["Enddatum"];
|
||||
|
||||
var selectedCostbearerScRelOid = Model.CostBearer2SupportConceptOid < 1 ? null : Model.CostBearer2SupportConceptOid;
|
||||
var datum = Convert.ToDateTime(collection["Datum"]);
|
||||
|
||||
if(!string.IsNullOrEmpty(distanz))
|
||||
{
|
||||
@@ -697,21 +707,15 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
var selectedCostbearerScRelOid = Model.CostBearer2SupportConceptOid < 1 ? null : Model.CostBearer2SupportConceptOid;
|
||||
var datum = Convert.ToDateTime(collection["Datum"]);
|
||||
Log.Info($"CreateServiceRecord: datum:{collection["Datum"]}; start:{collection["Start"]}; ende:{collection["Ende"]}; dauer:{collection["Dauer"]}; doku:{doku1}; aktion:{collection["versteckt"]}");
|
||||
|
||||
var enddatum = datum;
|
||||
|
||||
var endDateString = collection["Enddatum"];
|
||||
|
||||
if(endDateString != null)
|
||||
{
|
||||
enddatum = Convert.ToDateTime(endDateString);
|
||||
}
|
||||
|
||||
var start = collection["Start"];
|
||||
var ende = collection["Ende"];
|
||||
var dauer = 0;
|
||||
|
||||
|
||||
if(datum > enddatum) {
|
||||
enddatum = datum;
|
||||
}
|
||||
@@ -721,11 +725,6 @@ namespace BeWoPlanerMobil.Controllers
|
||||
int.TryParse(collection["Dauer"], out dauer);
|
||||
}
|
||||
|
||||
var doku2 = collection["Dokumentation2"];
|
||||
var doku3 = collection["Dokumentation3"];
|
||||
var doku4 = collection["Dokumentation4"];
|
||||
var doku5 = collection["Dokumentation5"];
|
||||
|
||||
var zeitenFeld = new DateTime[2];
|
||||
|
||||
if(start == string.Empty && ende == string.Empty)
|
||||
@@ -751,17 +750,10 @@ namespace BeWoPlanerMobil.Controllers
|
||||
dauer = (int) (zeitenFeld[1] - zeitenFeld[0]).TotalMinutes;
|
||||
}
|
||||
|
||||
if(Model.NewServiceRecord == null)
|
||||
{
|
||||
return RedirectToActionPermanent("Main");
|
||||
}
|
||||
|
||||
Model.NewServiceRecord.IP = Request.UserHostAddress;
|
||||
|
||||
Model.NewServiceRecord.Goals = Model.SelectedGoals;
|
||||
Model.NewServiceRecord.Start = zeitenFeld[0];
|
||||
Model.NewServiceRecord.End = zeitenFeld[1];
|
||||
|
||||
Model.NewServiceRecord.DistanceInMeter = distanceInMeters;
|
||||
|
||||
if(Model.Employee.EmployeeOid != null)
|
||||
@@ -810,14 +802,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.NewServiceRecord.Notice3 = string.IsNullOrEmpty(doku3) ? null : doku3;
|
||||
Model.NewServiceRecord.Notice4 = string.IsNullOrEmpty(doku4) ? null : doku4;
|
||||
Model.NewServiceRecord.Notice5 = string.IsNullOrEmpty(doku5) ? null : doku5;
|
||||
|
||||
var serviceDescOid = 0L;
|
||||
|
||||
//if(Model.SelectedServiceDescriptionOid.HasValue)
|
||||
//{
|
||||
// serviceDescOid = Model.SelectedServiceDescriptionOid.Value;
|
||||
//}
|
||||
//else
|
||||
|
||||
if(!string.IsNullOrEmpty(collection["ServiceDescription"]))
|
||||
{
|
||||
serviceDescOid = Convert.ToInt64(collection["ServiceDescription"]);
|
||||
@@ -864,12 +849,237 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return RedirectToActionPermanent("Main");
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Authorize]
|
||||
public ActionResult CreateOrUpdateServiceRecord(FormCollection collection)
|
||||
{
|
||||
try
|
||||
{
|
||||
if(Model == null)
|
||||
{
|
||||
return RedirectToActionPermanent("Index", "Login");
|
||||
}
|
||||
|
||||
string doku1;
|
||||
|
||||
if(Model.Dokutypes != null && Model.Dokutypes.Length > 1)
|
||||
{
|
||||
doku1 = collection["Dokumentation"];
|
||||
}
|
||||
else
|
||||
{
|
||||
doku1 = collection["Dokumentation6"];
|
||||
}
|
||||
|
||||
Log.Info($"CreateServiceRecord: datum:{collection["Datum"]}; start:{collection["Start"]}; ende:{collection["Ende"]}; dauer:{collection["Dauer"]}; doku:{doku1}; aktion:{(Model.IsInEditingMode ? "Speichern" : "Anlegen")}");
|
||||
|
||||
if(string.IsNullOrEmpty(collection["Datum"]))
|
||||
{
|
||||
return View("Main", Model);
|
||||
}
|
||||
|
||||
var distanz = collection["Distanz"];
|
||||
var distanceInMeters = 0;
|
||||
|
||||
if(!string.IsNullOrEmpty(distanz))
|
||||
{
|
||||
if(int.TryParse(distanz, out var parsedDistance))
|
||||
{
|
||||
distanceInMeters = parsedDistance;
|
||||
}
|
||||
}
|
||||
|
||||
var selectedCostbearerSCRelOid = Model.CostBearer2SupportConceptOid < 1 ? null : Model.CostBearer2SupportConceptOid;
|
||||
var datum = Convert.ToDateTime(collection["Datum"]);
|
||||
|
||||
var enddatum = datum;
|
||||
|
||||
var start = collection["Start"];
|
||||
var ende = collection["Ende"];
|
||||
var dauer = 0;
|
||||
|
||||
if(datum > enddatum)
|
||||
{
|
||||
enddatum = datum;
|
||||
}
|
||||
|
||||
if(!string.IsNullOrEmpty(collection["Dauer"]))
|
||||
{
|
||||
int.TryParse(collection["Dauer"], out dauer);
|
||||
}
|
||||
|
||||
var doku2 = collection["Dokumentation2"];
|
||||
var doku3 = collection["Dokumentation3"];
|
||||
var doku4 = collection["Dokumentation4"];
|
||||
var doku5 = collection["Dokumentation5"];
|
||||
|
||||
var zeitenFeld = new DateTime[2];
|
||||
|
||||
if(start == string.Empty && ende == string.Empty)
|
||||
{
|
||||
zeitenFeld[0] = new DateTime(datum.Year, datum.Month, datum.Day, 0, 0, 1);
|
||||
|
||||
if(enddatum == datum)
|
||||
{
|
||||
zeitenFeld[1] = new DateTime(datum.Year, datum.Month, datum.Day, 0, 0, 1).AddMinutes(dauer);
|
||||
}
|
||||
else
|
||||
{
|
||||
zeitenFeld[1] = new DateTime(enddatum.Year, enddatum.Month, enddatum.Day, 0, 0, 1).AddMinutes(dauer);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
zeitenFeld = enddatum == datum ? ConvertRecordTimes(start, ende, datum, dauer) : ConvertRecordTimesWithEndDate(start, ende, datum, enddatum, dauer);
|
||||
}
|
||||
|
||||
if(dauer == 0 || zeitenFeld[1] != zeitenFeld[0])
|
||||
{
|
||||
dauer = (int)(zeitenFeld[1] - zeitenFeld[0]).TotalMinutes;
|
||||
}
|
||||
|
||||
if(Model.IsInEditingMode)
|
||||
{
|
||||
var selectedRecordOid = Model.SelectedServiceRecordOid ?? Model.SelectedServiceRecord.ServiceRecordOid;
|
||||
Model.NewServiceRecord = OperationsService.GetServiceRecordById(selectedRecordOid.Value);
|
||||
}
|
||||
|
||||
if(Model.NewServiceRecord == null)
|
||||
{
|
||||
return RedirectToActionPermanent("Main");
|
||||
}
|
||||
|
||||
Model.NewServiceRecord.IP = Request.UserHostAddress;
|
||||
|
||||
Model.NewServiceRecord.Goals = Model.SelectedGoals;
|
||||
Model.NewServiceRecord.Start = zeitenFeld[0];
|
||||
Model.NewServiceRecord.End = zeitenFeld[1];
|
||||
|
||||
Model.NewServiceRecord.DistanceInMeter = distanceInMeters;
|
||||
|
||||
if(Model.Employee.EmployeeOid != null)
|
||||
{
|
||||
if(!Model.IsInEditingMode)
|
||||
{
|
||||
Model.NewServiceRecord.Employee = Model.SelectedEmployee ?? MobileSessionFacade.LoggedInCompactEmployee;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(Model.SelectedEmployee != null)
|
||||
{
|
||||
Model.NewServiceRecord.Employee = Model.SelectedEmployee;
|
||||
}
|
||||
}
|
||||
|
||||
var sc = Model.SupportConcepts.FirstOrDefault(fod => fod.CostBearerRelations.Any(a => a.CostBearer2SupportConceptOid.HasValue && a.CostBearer2SupportConceptOid.Value.Equals(selectedCostbearerSCRelOid)));
|
||||
|
||||
if(sc != null)
|
||||
{
|
||||
if(sc.SupportConceptOid != null)
|
||||
{
|
||||
Model.NewServiceRecord.SupportConcept = CustomerService.LoadCompactSupportConceptDC(sc.SupportConceptOid.Value, Model.Employee.EmployeeOid);
|
||||
}
|
||||
|
||||
Model.NewServiceRecord.Customer = sc.Customer;
|
||||
|
||||
var cb2ScRel = sc.CostBearerRelations.First(f => f.CostBearer2SupportConceptOid.HasValue && f.CostBearer2SupportConceptOid.Equals(selectedCostbearerSCRelOid));
|
||||
Model.NewServiceRecord.CostBearer = cb2ScRel.CostBearer;
|
||||
|
||||
var intervall = Model.NewServiceRecord.CostBearer.ActualMinuteIntervall;
|
||||
|
||||
if(intervall > 0)
|
||||
{
|
||||
Model.NewServiceRecord.RoundedDuration = dauer % intervall != 0 ? dauer + (intervall - dauer % intervall) : dauer;
|
||||
}
|
||||
else
|
||||
{
|
||||
Model.NewServiceRecord.RoundedDuration = dauer;
|
||||
}
|
||||
|
||||
Model.NewServiceRecord.CostBearer2SupportConceptOid = selectedCostbearerSCRelOid;
|
||||
}
|
||||
else
|
||||
{
|
||||
Model.NewServiceRecord.RoundedDuration = dauer;
|
||||
}
|
||||
}
|
||||
|
||||
Model.NewServiceRecord.DurationInStunden = ZeiterfassungsDauer.Minuten;
|
||||
|
||||
Model.NewServiceRecord.ServiceRecordFormat = ServiceRecordFormate.OriginaleZeiterfassung;
|
||||
|
||||
Model.NewServiceRecord.Notice = string.IsNullOrEmpty(doku1) ? null : doku1;
|
||||
|
||||
Model.NewServiceRecord.Notice2 = string.IsNullOrEmpty(doku2) ? null : doku2;
|
||||
Model.NewServiceRecord.Notice3 = string.IsNullOrEmpty(doku3) ? null : doku3;
|
||||
Model.NewServiceRecord.Notice4 = string.IsNullOrEmpty(doku4) ? null : doku4;
|
||||
Model.NewServiceRecord.Notice5 = string.IsNullOrEmpty(doku5) ? null : doku5;
|
||||
|
||||
var serviceDescOid = 0L;
|
||||
|
||||
if(!string.IsNullOrEmpty(collection["ServiceDescription"]))
|
||||
{
|
||||
serviceDescOid = Convert.ToInt64(collection["ServiceDescription"]);
|
||||
}
|
||||
else if(Model.SelectedServiceDescriptionOid.HasValue)
|
||||
{
|
||||
serviceDescOid = Model.SelectedServiceDescriptionOid.Value;
|
||||
}
|
||||
|
||||
if(serviceDescOid > 0)
|
||||
{
|
||||
Model.NewServiceRecord.ServiceDescription = OperationsService.GetServiceDescription(serviceDescOid);
|
||||
}
|
||||
|
||||
if(Model.NewServiceRecord.RoundedDuration == 0)
|
||||
{
|
||||
Model.NewServiceRecord.RoundedDuration = dauer;
|
||||
}
|
||||
|
||||
Model.NewServiceRecord.IP = Request.UserHostAddress;
|
||||
Model.NewServiceRecord.InsertedOn = DateTime.Now;
|
||||
Model.NewServiceRecord.InsUser = $"{MobileSessionFacade.LoggedInEmployee.FirstName} {MobileSessionFacade.LoggedInEmployee.LastName}";
|
||||
Model.NewServiceRecord.IsCreatedInMobileClient = true;
|
||||
|
||||
if(Model.IsInGroupBookingMode && Model.SelectedSupportConcepts.Count > 1)
|
||||
{
|
||||
return Model.NewServiceRecord.ServiceRecordOid.HasValue ? SaveGroupBooking() : UpdateGroupBooking();
|
||||
}
|
||||
|
||||
if(!Model.IsInEditingMode)
|
||||
{
|
||||
var oidList = OperationsService.InsertNewServiceRecords(new List<ServiceRecordDC> { Model.NewServiceRecord });
|
||||
|
||||
Model.ServiceRecordOid = oidList[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
OperationsService.UpdateServiceRecords(new List<ServiceRecordDC> { Model.NewServiceRecord });
|
||||
}
|
||||
|
||||
Model.NewServiceRecord = new ServiceRecordDC();
|
||||
|
||||
if(selectedCostbearerSCRelOid.HasValue)
|
||||
{
|
||||
Model.ServiceRecords = OperationsService.FindServiceRecordsForLastDays(selectedCostbearerSCRelOid, Model.Zeitraum, Model.Employee.EmployeeOid).ToList();
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error(e.Message, e);
|
||||
}
|
||||
|
||||
return RedirectToActionPermanent("Main");
|
||||
}
|
||||
|
||||
private ActionResult SaveGroupBooking()
|
||||
{
|
||||
var employeeCount = Model.SelectedEmployees.Count;
|
||||
var personCount = Model.SelectedSupportConcepts.Count;
|
||||
|
||||
var cb2ScOids = (from scDc in Model.SelectedSupportConcepts where scDc.CostBearerRelations != null && scDc.CostBearerRelations.Count > 0 let costBearer2SupportConceptOid = scDc.CostBearerRelations[0].CostBearer2SupportConceptOid where costBearer2SupportConceptOid != null select costBearer2SupportConceptOid.Value).ToList();
|
||||
var cb2ScOids = (from scDc in Model.SelectedSupportConcepts
|
||||
where scDc.CostBearerRelations != null && scDc.CostBearerRelations.Count > 0 let costBearer2SupportConceptOid = scDc.CostBearerRelations[0].CostBearer2SupportConceptOid
|
||||
where costBearer2SupportConceptOid != null select costBearer2SupportConceptOid.Value).ToList();
|
||||
|
||||
var list = CalculateGroupBookingDuration(employeeCount, personCount, cb2ScOids);
|
||||
|
||||
@@ -918,6 +1128,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
Model.NewServiceRecord = new ServiceRecordDC();
|
||||
Model.SelectedSupportConcepts.Clear();
|
||||
Model.SelectedConceptCostBearerRelations.Clear();
|
||||
Model.SelectedCostbearerRelOids.Clear();
|
||||
@@ -1285,7 +1496,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
LoadGoalTreeItems();
|
||||
|
||||
return RedirectToActionPermanent("Main");
|
||||
return ResetEditingMode(null);
|
||||
}
|
||||
|
||||
private void LoadServiceCategoriesToModel(long? cb2ScOid)
|
||||
@@ -1607,12 +1818,21 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
|
||||
var mandator = OperationsService.GetMandator();
|
||||
var settings = mandator.Settings ?? string.Empty;
|
||||
var splitSettings = settings.Split(';');
|
||||
var maxDaysEditSRsAllowedSetting = splitSettings.ToList().FirstOrDefault(f => f.Contains("MaxDaysEditServiceRecordsAllowed"));
|
||||
var maxDaysEditSRsAllowed = maxDaysEditSRsAllowedSetting != null ? int.Parse(maxDaysEditSRsAllowedSetting.Split('=')[1]) : 0;
|
||||
var limitFuerZeiterfassungSetting = splitSettings.ToList().FirstOrDefault(f => f.Contains("AnzTageZeiterfassErfolgt"));
|
||||
var limitFuerZeiterfassung = limitFuerZeiterfassungSetting != null ? int.Parse(limitFuerZeiterfassungSetting.Split('=')[1]) : 0;
|
||||
|
||||
var maxDaysEditSRsAllowedString = GetSettingValue(mandator.Settings, "MaxDaysEditServiceRecordsAllowed");
|
||||
var limitFuerZeiterfassungString = GetSettingValue(mandator.Settings, "AnzTageZeiterfassErfolgt");
|
||||
|
||||
var isSuccessful1 = int.TryParse(maxDaysEditSRsAllowedString, out var maxDaysEditSRsAllowed);
|
||||
if (!isSuccessful1)
|
||||
{
|
||||
maxDaysEditSRsAllowed = 0;
|
||||
}
|
||||
|
||||
var isSuccessful2 = int.TryParse(limitFuerZeiterfassungString, out var limitFuerZeiterfassung);
|
||||
if(!isSuccessful2)
|
||||
{
|
||||
limitFuerZeiterfassung = 0;
|
||||
}
|
||||
|
||||
if (MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowEditAfterMaxDaysInNextMonth))
|
||||
{
|
||||
@@ -1855,6 +2075,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return _LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
// Menünavigation
|
||||
public ActionResult RedirectToScheduler()
|
||||
{
|
||||
return RedirectToActionPermanent("Scheduler", "Scheduler");
|
||||
@@ -1921,6 +2142,9 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.ServiceCategories = CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions());
|
||||
|
||||
Model.SelectedEmployees.Add(MobileSessionFacade.LoggedInCompactEmployee);
|
||||
|
||||
Model.IsInEditingMode = false;
|
||||
Model.SelectedServiceRecord = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2160,6 +2384,26 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return RedirectToActionPermanent("Index", "Login");
|
||||
}
|
||||
|
||||
if(Model.SelectedConceptCostBearerRelations.Count == 1)
|
||||
{
|
||||
var cb2ScOids = (from scDc in Model.SelectedSupportConcepts
|
||||
where scDc.CostBearerRelations != null && scDc.CostBearerRelations.Count > 0
|
||||
let costBearer2SupportConceptOid = scDc.CostBearerRelations[0].CostBearer2SupportConceptOid
|
||||
where costBearer2SupportConceptOid != null
|
||||
select costBearer2SupportConceptOid.Value).ToList();
|
||||
|
||||
var cb2ScOidsCount = cb2ScOids.Count;
|
||||
|
||||
if (cb2ScOidsCount == 1)
|
||||
{
|
||||
Model.CostBearer2SupportConceptOid = cb2ScOids[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
return RedirectToActionPermanent("Main");
|
||||
}
|
||||
}
|
||||
|
||||
string doku1;
|
||||
|
||||
if(Model.Dokutypes != null && Model.Dokutypes.Length > 0)
|
||||
|
||||
@@ -186,34 +186,6 @@ namespace BeWoPlanerMobil.Models
|
||||
|
||||
public List<SupportConceptCostBearerRelDC> SelectedConceptCostBearerRelations { get; set; }
|
||||
|
||||
public IEnumerable<CustomSelectListItem> SelectedRelations
|
||||
{
|
||||
get
|
||||
{
|
||||
var result = new List<CustomSelectListItem>();
|
||||
|
||||
foreach(var rel in SelectedConceptCostBearerRelations)
|
||||
{
|
||||
|
||||
var text1 = $"{rel.SupportConcept.Customer.LastNameFirstName}";
|
||||
var text2 = $"{rel.StartDate?.ToShortDateString() ?? string.Empty} - {rel.EndDate?.ToShortDateString()} {rel.CostBearer.Name}";
|
||||
var value = rel.CostBearer2SupportConceptOid.ToString();
|
||||
|
||||
var textColor = rel.SupportConcept.IsAboutToExpire ?
|
||||
"text-bewo-is-about-to-expire" :
|
||||
rel.SupportConcept.ExpiresIn3MonthOrLess ?
|
||||
"text-bewo-expires-in-three-months" :
|
||||
"text-dark";
|
||||
|
||||
var listItem = new CustomSelectListItem(text1, text2, value, textColor);
|
||||
|
||||
result.Add(listItem);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public GroupBookingSelectionObject GroupBookingSelectionObject => new GroupBookingSelectionObject(SelectedConceptCostBearerRelations, SelectedGroupOfPeopleOids);
|
||||
|
||||
public IEnumerable<SupportConceptListObject> SupportConceptListObjectsForGroupBooking
|
||||
@@ -454,6 +426,26 @@ namespace BeWoPlanerMobil.Models
|
||||
}
|
||||
|
||||
public bool IsZeiterfassungInStdMin { get; set; }
|
||||
|
||||
public string StartDateToEdit => SelectedServiceRecord?.Start?.ToShortDateString() ?? DateTime.Today.ToShortDateString();
|
||||
|
||||
public string EndDateToEdit => SelectedServiceRecord?.End?.ToShortDateString() ?? DateTime.Today.ToShortDateString();
|
||||
|
||||
public string StartTimeToEdit => SelectedServiceRecord?.Start?.ToString("HH:mm") ?? string.Empty;
|
||||
|
||||
public string EndTimeToEdit => SelectedServiceRecord?.End?.ToString("HH:mm") ?? string.Empty;
|
||||
|
||||
public string DurationToEdit => SelectedServiceRecord?.RoundedDuration.ToString() ?? string.Empty;
|
||||
|
||||
public string DistanceToEdit => SelectedServiceRecord?.DistanceInMeter.ToString() ?? string.Empty;
|
||||
|
||||
public string NoticeToEdit => SelectedServiceRecord?.NoticeList.FirstOrDefault() ?? string.Empty;
|
||||
|
||||
public List<string> NoticeListToEdit => SelectedServiceRecord != null ? SelectedServiceRecord.NoticeList : new List<string> {string.Empty, string.Empty, string.Empty, string.Empty, string.Empty};
|
||||
|
||||
public string SubmitButtonValue => IsInEditingMode || IsInGroupBookingMode ? "Speichern" : "Anlegen";
|
||||
|
||||
public long SelectedServiceRecordsServiceDescriptionOid => SelectedServiceRecord?.ServiceDescription.ServiceDescriptionOid ?? 0L;
|
||||
}
|
||||
|
||||
public class CustomSelectListItem
|
||||
|
||||
@@ -33,10 +33,28 @@ function loadServiceDescriptions() {
|
||||
serviceDescriptionsSelect.append('<option value="' + serviceDescription.ServiceDescriptionOid + '">' + serviceDescription.Name + "</option>");
|
||||
});
|
||||
|
||||
if (serviceDescriptions[0] !== undefined) {
|
||||
serviceDescriptionsSelect.val(serviceDescriptions[0].ServiceDescriptionOid);
|
||||
var serviceDescriptionToEdit = getServiceDescriptionToEdit();
|
||||
|
||||
$.get(getSetServiceDescriptionUrl(), { pServiceDescriptionOid: serviceDescriptions[0].ServiceDescriptionOid });
|
||||
var selectedOid = 0;
|
||||
|
||||
if (serviceDescriptionToEdit > 0) {
|
||||
$("#leistung-select > option").each(function() {
|
||||
var val = $(this).val();
|
||||
|
||||
if (serviceDescriptionToEdit == val) {
|
||||
serviceDescriptionsSelect.val(val);
|
||||
selectedOid = val;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if(serviceDescriptions[0] !== undefined) {
|
||||
serviceDescriptionsSelect.val(serviceDescriptions[0].ServiceDescriptionOid);
|
||||
selectedOid = serviceDescriptions[0].ServiceDescriptionOid;
|
||||
}
|
||||
}
|
||||
|
||||
if (selectedOid > 0) {
|
||||
$.get(getSetServiceDescriptionUrl(), { pServiceDescriptionOid: selectedOid });
|
||||
}
|
||||
|
||||
$.get(getLoadTextbausteineForServiceCategoryUrl(), { pServiceCategoryOid: selectedCategoryOid }).done(function(result) {
|
||||
@@ -239,6 +257,16 @@ function resetCreateForm() {
|
||||
$("#serviceRecordCreationForm").trigger("reset");
|
||||
}
|
||||
|
||||
function resetSingleBookingForm() {
|
||||
$("#singleBookingForm").trigger("reset");
|
||||
}
|
||||
|
||||
function submitSingleBookingForm() {
|
||||
showSpinner();
|
||||
|
||||
validateForm($("#singleBookingForm"));
|
||||
}
|
||||
|
||||
function submitCreateForm() {
|
||||
showSpinner();
|
||||
|
||||
|
||||
@@ -1,121 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.Extensions;
|
||||
|
||||
namespace BeWoPlanerMobil.Util
|
||||
{
|
||||
public class JSONCustomer
|
||||
{
|
||||
public string Vorname { get; set; }
|
||||
public string Nachname { get; set; }
|
||||
public string Geburtstag { get; set; }
|
||||
public string Geschlecht { get; set; }
|
||||
|
||||
public string Adresszusatz { get; set; }
|
||||
public string Strasse { get; set; }
|
||||
public string Postleitzahl { get; set; }
|
||||
public string Ort { get; set; }
|
||||
|
||||
public string RechnungsadresseName { get; set; }
|
||||
public string RechnungsadresseStrasse { get; set; }
|
||||
public string RechnungsadressePostleitzahl { get; set; }
|
||||
public string RechnungsadresseOrt { get; set; }
|
||||
|
||||
public string EMail { get; set; }
|
||||
public string Fax { get; set; }
|
||||
public string Telefon { get; set; }
|
||||
public string Handy { get; set; }
|
||||
public string Kommentar { get; set; }
|
||||
|
||||
public List<Umfeldsperson> Umfeldpersonen { get; set; } = new List<Umfeldsperson>();
|
||||
|
||||
public List<ReferenceNumberWithNotice> ReferenceNumbers { get; set; } = new List<ReferenceNumberWithNotice>();
|
||||
|
||||
public List<JsonAbsenceTime> AbsenceTimes { get; set; } = new List<JsonAbsenceTime>();
|
||||
|
||||
public string GoogleMapsLink
|
||||
{
|
||||
get
|
||||
{
|
||||
if(!string.IsNullOrWhiteSpace(Strasse) && !string.IsNullOrWhiteSpace(Postleitzahl) && !string.IsNullOrWhiteSpace(Ort))
|
||||
{
|
||||
var htmlEncodedStreetname = HttpUtility.UrlEncode(Strasse);
|
||||
var htmlEncodedCityName = HttpUtility.UrlEncode(Ort);
|
||||
|
||||
return $"http://maps.google.de/maps?q={htmlEncodedStreetname},+{Postleitzahl}+{htmlEncodedCityName}&z=17";
|
||||
}
|
||||
|
||||
return "#";
|
||||
}
|
||||
}
|
||||
|
||||
public JSONCustomer(CustomerDC init)
|
||||
{
|
||||
Vorname = init.FirstName;
|
||||
Nachname = init.LastName;
|
||||
Geburtstag = init.DateOfBirth?.ToShortDateString() ?? string.Empty;
|
||||
|
||||
switch (init.Sex)
|
||||
{
|
||||
case Sex.Male:
|
||||
Geschlecht = "Männlich";
|
||||
break;
|
||||
case Sex.Female:
|
||||
Geschlecht = "Weiblich";
|
||||
break;
|
||||
case Sex.Divers:
|
||||
Geschlecht = "Divers";
|
||||
break;
|
||||
default:
|
||||
Geschlecht = string.Empty;
|
||||
break;
|
||||
}
|
||||
|
||||
Adresszusatz = init.AddressLine1;
|
||||
Strasse = init.Street;
|
||||
Postleitzahl = init.PostalCode;
|
||||
Ort = init.Town;
|
||||
|
||||
RechnungsadresseName = init.InvoiceAddressLine1;
|
||||
RechnungsadresseStrasse = init.InvoiceAddressStreet;
|
||||
RechnungsadressePostleitzahl = init.InvoiceAddressPostalCode;
|
||||
RechnungsadresseOrt = init.InvoiceAddressTown;
|
||||
|
||||
Kommentar = init.Notice;
|
||||
|
||||
init.CostBearers?.DoForEach(cb => { ReferenceNumbers.AddIfNotIn(new ReferenceNumberWithNotice(cb.ReferenceNumber, cb.Notice, cb.CostBearer.Name)); });
|
||||
|
||||
foreach (var iContactDC in init.ContactInformations)
|
||||
{
|
||||
switch (iContactDC.ContactType)
|
||||
{
|
||||
case ContactType.business_Mail:
|
||||
EMail = iContactDC.ContactValue;
|
||||
break;
|
||||
case ContactType.business_Fax:
|
||||
Fax = iContactDC.ContactValue;
|
||||
break;
|
||||
case ContactType.business_Phone:
|
||||
Telefon = iContactDC.ContactValue;
|
||||
break;
|
||||
case ContactType.business_MobilePhone:
|
||||
Handy = iContactDC.ContactValue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var rel in init.EnvironmentPersons)
|
||||
{
|
||||
Umfeldpersonen.Add(new Umfeldsperson(rel));
|
||||
}
|
||||
|
||||
foreach (var absenceTime in init.AbsenceTimes.OrderByDescending(o => o.Start))
|
||||
{
|
||||
AbsenceTimes.Add(new JsonAbsenceTime(absenceTime.Start, absenceTime.End, absenceTime.Notice, absenceTime.Reason));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
@@ -220,11 +221,6 @@ namespace BeWoPlanerMobil.Util
|
||||
return null;
|
||||
}
|
||||
|
||||
public static JSONCustomer GetJSONCustomer(CustomerDC pCustomer)
|
||||
{
|
||||
return new JSONCustomer(pCustomer);
|
||||
}
|
||||
|
||||
public static List<ServiceCategoryModel> CreateServiceCategoryModels(IEnumerable<ServiceDescriptionDC> serviceDescriptions)
|
||||
{
|
||||
var catOid2ModelDict = new Dictionary<long, ServiceCategoryModel>();
|
||||
@@ -381,6 +377,8 @@ namespace BeWoPlanerMobil.Util
|
||||
|
||||
public static BeWoLoginState GetLoginState(string tenant)
|
||||
{
|
||||
Debug.WriteLine($"GetLoginState {DateTime.Now:DD.MM.yyyy HH:mm:sss}");
|
||||
|
||||
var result = new BeWoLoginState(-1, null);
|
||||
|
||||
const string baseUrl = "https://support.bewoplaner.de/api";
|
||||
|
||||
@@ -252,6 +252,16 @@
|
||||
|
||||
return boolString.toLowerCase() === "true";
|
||||
}
|
||||
|
||||
function getServiceDescriptionToEdit() {
|
||||
if (getIsInEditingMode()) {
|
||||
var floatString = "@Model.SelectedServiceRecordsServiceDescriptionOid";
|
||||
|
||||
return parseFloat(floatString);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="container mt-3" id="checkbox-container">
|
||||
@@ -297,481 +307,277 @@
|
||||
@if(!Model.IsInGroupBookingMode)
|
||||
{
|
||||
<div class="row">
|
||||
<div class="col col-12 col-md-5">
|
||||
@if(Model != null)
|
||||
{
|
||||
using(Html.BeginForm("SelectSupportConcept", "Main", FormMethod.Post, new { Id = "selectSupportConceptForm" }))
|
||||
{
|
||||
var selectedSuportConceptTimeSpanColorClass = Model.SelectedSupportConceptListObject.IsAboutToExpire ? "text-bewo-is-about-to-expire" : Model.SelectedSupportConceptListObject.ExpiresInThreeMonthsOrLess ? "text-bewo-expires-in-three-months" : "text-dark";
|
||||
<div>
|
||||
<div class="container p-0">
|
||||
<div class="row">
|
||||
<div class="col mt-3">
|
||||
<div class="list-group">
|
||||
<a href="#" class="list-group-item flex-column align-items-start no-underline" data-toggle="modal" data-target="#supportConceptList">
|
||||
<div class="d-flex">
|
||||
<h5 class="mb-1 text-dark text-left" id="selectedSupportConceptCustomerInfo">@Model.SelectedSupportConceptListObject.NameAndDateOfBirth</h5>
|
||||
<div class="col col-12 col-md-5">
|
||||
@if(Model != null)
|
||||
{
|
||||
using(Html.BeginForm("SelectSupportConcept", "Main", FormMethod.Post, new { Id = "selectSupportConceptForm" }))
|
||||
{
|
||||
var selectedSuportConceptTimeSpanColorClass = Model.SelectedSupportConceptListObject.IsAboutToExpire ? "text-bewo-is-about-to-expire" : Model.SelectedSupportConceptListObject.ExpiresInThreeMonthsOrLess ? "text-bewo-expires-in-three-months" : "text-dark";
|
||||
<div>
|
||||
<div class="container p-0">
|
||||
<div class="row">
|
||||
<div class="col mt-3">
|
||||
<div class="list-group">
|
||||
<a href="#" class="list-group-item flex-column align-items-start no-underline" data-toggle="modal" data-target="#supportConceptList">
|
||||
<div class="d-flex">
|
||||
<h5 class="mb-1 text-dark text-left" id="selectedSupportConceptCustomerInfo">@Model.SelectedSupportConceptListObject.NameAndDateOfBirth</h5>
|
||||
</div>
|
||||
<p class="mb-1 text-left @selectedSuportConceptTimeSpanColorClass" id="selectedSupportConceptInfo">
|
||||
@Model.SelectedSupportConceptListObject.SupportConceptTimeSpan
|
||||
</p>
|
||||
</a>
|
||||
</div>
|
||||
<p class="mb-1 text-left @selectedSuportConceptTimeSpanColorClass" id="selectedSupportConceptInfo">
|
||||
@Model.SelectedSupportConceptListObject.SupportConceptTimeSpan
|
||||
</p>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@if(Model.CostBearer2SupportConceptOid != null && Model.CostBearer2SupportConceptOid > 0)
|
||||
{
|
||||
<div class="col-md-auto mt-3">
|
||||
<button type="button" class="btn btn-outline-primary w-100 h-100" id="statistics-button" data-toggle="modal" data-target="#statistics-popup" onclick="showPieChart()">
|
||||
<span class="d-md-none align-middle">Statistik</span>
|
||||
<span class="fas fa-chart-pie align-middle" style="font-size: 2rem;"></span>
|
||||
</button>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal" role="dialog" tabindex="-1" id="supportConceptList">
|
||||
<div class="modal-dialog modal-dialog-centered text-center" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<div class="list-group">
|
||||
@foreach(var supportConceptListObject in Model.SupportConceptListObjects)
|
||||
</div>
|
||||
@if(Model.CostBearer2SupportConceptOid != null && Model.CostBearer2SupportConceptOid > 0)
|
||||
{
|
||||
var timeSpanColorClass = supportConceptListObject.IsAboutToExpire ? "text-bewo-is-about-to-expire" : supportConceptListObject.ExpiresInThreeMonthsOrLess ? "text-bewo-expires-in-three-months" : "text-dark";
|
||||
|
||||
<a href="#" class="list-group-item flex-column align-items-start no-underline" onclick="selectSupportConcept(@supportConceptListObject.CostBearer2SupportConceptOid)" data-dismiss="modal">
|
||||
<div class="justify-content-between">
|
||||
<h5 class="mb-1 text-dark text-left">
|
||||
@supportConceptListObject.NameAndDateOfBirth
|
||||
</h5>
|
||||
</div>
|
||||
<p class="mb-1 text-left @timeSpanColorClass">
|
||||
@supportConceptListObject.SupportConceptTimeSpan
|
||||
</p>
|
||||
</a>
|
||||
<div class="col-md-auto mt-3">
|
||||
<button type="button" class="btn btn-outline-primary w-100 h-100" id="statistics-button" data-toggle="modal" data-target="#statistics-popup" onclick="showPieChart()">
|
||||
<span class="d-md-none align-middle">Statistik</span>
|
||||
<span class="fas fa-chart-pie align-middle" style="font-size: 2rem;"></span>
|
||||
</button>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal" role="dialog" tabindex="-1" id="supportConceptList">
|
||||
<div class="modal-dialog modal-dialog-centered text-center" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<div class="list-group">
|
||||
@foreach(var supportConceptListObject in Model.SupportConceptListObjects)
|
||||
{
|
||||
var timeSpanColorClass = supportConceptListObject.IsAboutToExpire ? "text-bewo-is-about-to-expire" : supportConceptListObject.ExpiresInThreeMonthsOrLess ? "text-bewo-expires-in-three-months" : "text-dark";
|
||||
|
||||
<input type="text" class="d-none" name="CostBearer2SupportConceptOid" id="CostBearer2SupportConceptOid" value="@Model.SelectedSupportConceptListObject.CostBearer2SupportConceptOid">
|
||||
}
|
||||
|
||||
if(!Model.IsInEditingMode)
|
||||
{
|
||||
using(Html.BeginForm("CreateServiceRecord", "Main", FormMethod.Post, new { onreset = "serviceDescriptionSelectOnReset()", id = "serviceRecordCreationForm" }))
|
||||
{
|
||||
<div class="mt-3">
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="alert alert-danger collapse" role="alert" id="form-alert">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Einzelbuchung: Mitarbeiter -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
@Html.LabelFor(m => m.SelectedEmployeeOid)
|
||||
@Html.DropDownListFor(m => m.SelectedEmployeeOid, Model.EmployeeListItems, new { id = "employeesDropDown", @class = "form-control", onchange = "setSelectedEmployee()" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if(Model.SelectedSupportConcept != null && Model.SelectedSupportConcept.Goals.Any())
|
||||
{
|
||||
<!-- Einzelbuchung: Ziele -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<button type="button" class="btn btn-primary form-control my-3" data-toggle="collapse" data-target="#goals-container" id="goals-button">Ziele</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="collapse w-100 mt-1 max-vw-50" id="goals-container"></div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<!-- Einzelbuchung: Kategorie -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
@Html.LabelFor(m => m.SelectedServiceCategoryOid)
|
||||
@Html.DropDownListFor(m => m.SelectedServiceCategoryOid, Model.ServiceCategoryListItems, new { onchange = "loadServiceDescriptions()", @class = "form-control", Id = "category-select" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Einzelbuchung: Leistung -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="leistung-select">Leistung</label>
|
||||
<select class="form-control" id="leistung-select" name="ServiceDescription">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Einzelbuchung: Startdatum -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="start-date">Startdatum</label>
|
||||
<div class="input-group date" id="start-date-picker" data-target-input="nearest">
|
||||
<input type="text" id="start-date" name="Datum" class="form-control datetimepicker-input" data-target="#start-date-picker" data-toggle="datetimepicker" value="@DateTime.Today.ToShortDateString()" />
|
||||
<div class="input-group-append" data-target="#start-date-picker" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fas fa-calendar-alt"></i></div>
|
||||
<a href="#" class="list-group-item flex-column align-items-start no-underline" onclick="selectSupportConcept(@supportConceptListObject.CostBearer2SupportConceptOid)" data-dismiss="modal">
|
||||
<div class="justify-content-between">
|
||||
<h5 class="mb-1 text-dark text-left">
|
||||
@supportConceptListObject.NameAndDateOfBirth
|
||||
</h5>
|
||||
</div>
|
||||
<p class="mb-1 text-left @timeSpanColorClass">
|
||||
@supportConceptListObject.SupportConceptTimeSpan
|
||||
</p>
|
||||
</a>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="text" class="d-none" name="CostBearer2SupportConceptOid" id="CostBearer2SupportConceptOid" value="@Model.SelectedSupportConceptListObject.CostBearer2SupportConceptOid">
|
||||
}
|
||||
|
||||
<!-- Zwei-in-eins-Test -->
|
||||
using (Html.BeginForm("CreateOrUpdateServiceRecord", "Main", FormMethod.Post, new { onreset = "serviceDescriptionSelectOnReset()", id = "singleBookingForm" }))
|
||||
{
|
||||
<div class="mt-3">
|
||||
<!-- Einzelbuchung: Mitarbeiter -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
@Html.LabelFor(m => m.SelectedEmployeeOid)
|
||||
@Html.DropDownListFor(m => m.SelectedEmployeeOid, Model.EmployeeListItems, new { id = "employeesDropDown", @class = "form-control", onchange = "setSelectedEmployee()" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Einzelbuchung: Enddatum -->
|
||||
@if(Model.IsEndDateVisible)
|
||||
@if(Model.SelectedSupportConcept != null && Model.SelectedSupportConcept.Goals.Any())
|
||||
{
|
||||
<!-- Einzelbuchung: Ziele -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<button type="button" class="btn btn-primary form-control my-3" data-toggle="collapse" data-target="#goals-container" id="goals-button">Ziele</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="collapse w-100 mt-1 max-vw-50" id="goals-container"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
}
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="start-date">Enddatum</label>
|
||||
<div class="input-group date" id="end-date-picker" data-target-input="nearest">
|
||||
<input type="text" id="end-date" name="Enddatum" class="form-control datetimepicker-input" data-target="#end-date-picker" data-toggle="datetimepicker" value="@DateTime.Today.ToShortDateString()" />
|
||||
<div class="input-group-append" data-target="#end-date-picker" data-toggle="datetimepicker">
|
||||
@Html.LabelFor(m => m.SelectedServiceCategoryOid)
|
||||
@Html.DropDownListFor(m => m.SelectedServiceCategoryOid, Model.ServiceCategoryListItems, new { onchange = "loadServiceDescriptions()", @class = "form-control", Id = "category-select" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Einzelbuchung: Leistung -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="leistung-select">Leistung</label>
|
||||
<select class="form-control" id="leistung-select" name="ServiceDescription">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Einzelbuchung: Startdatum -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="start-date">Startdatum</label>
|
||||
<div class="input-group date" id="start-date-picker" data-target-input="nearest">
|
||||
<input type="text" id="start-date" name="Datum" class="form-control datetimepicker-input" data-target="#start-date-picker" data-toggle="datetimepicker" value="@Model.StartDateToEdit" />
|
||||
<div class="input-group-append" data-target="#start-date-picker" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fas fa-calendar-alt"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<!-- Einzelbuchung: Von -->
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="start-time">Von</label>
|
||||
<div class="input-group date" id="start-time-picker" data-target-input="nearest">
|
||||
<input type="text" id="start-time" name="Start" class="form-control datetimepicker-input" data-target="#start-time-picker" />
|
||||
<div class="input-group-append" data-target="#start-time-picker" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fas fa-clock"></i></div>
|
||||
<!-- Einzelbuchung: Enddatum -->
|
||||
@if(Model.IsEndDateVisible)
|
||||
{
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="start-date">Enddatum</label>
|
||||
<div class="input-group date" id="end-date-picker" data-target-input="nearest">
|
||||
<input type="text" id="end-date" name="Enddatum" class="form-control datetimepicker-input" data-target="#end-date-picker" data-toggle="datetimepicker" value="@Model.EndDateToEdit" />
|
||||
<div class="input-group-append" data-target="#end-date-picker" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fas fa-calendar-alt"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<!-- Einzelbuchung: Bis -->
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="end-time">Bis</label>
|
||||
<div class="input-group date" id="end-time-picker" data-target-input="nearest">
|
||||
<input type="text" id="end-time" name="Ende" class="form-control datetimepicker-input" data-target="#end-time-picker" />
|
||||
<div class="input-group-append" data-target="#end-time-picker" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fas fa-clock"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Einzelbuchung: Dauer -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="duration">Dauer</label>
|
||||
<input type="text" class="form-control" id="duration" name="Dauer" onchange="onDurationChange()">
|
||||
</div>
|
||||
</div>
|
||||
@if(Model.IsZeiterfassungInStdMin)
|
||||
{
|
||||
<div class="form-row">
|
||||
<!-- Einzelbuchung: Von -->
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="hours-minutes-dropdown-btn">Minuten/Stunden</label>
|
||||
<div class="dropdown">
|
||||
<button id="hours-minutes-dropdown-btn" class="btn btn-outline-primary dropdown-toggle w-100" type="button" data-toggle="dropdown">
|
||||
Minuten
|
||||
</button>
|
||||
<div class="dropdown-menu w-100">
|
||||
<a class="dropdown-item" href="#" onclick="toggleHoursMinutesDropdownButton(this)">Minuten</a>
|
||||
<a class="dropdown-item" href="#" onclick="toggleHoursMinutesDropdownButton(this)">Stunden</a>
|
||||
<label for="start-time">Von</label>
|
||||
<div class="input-group date" id="start-time-picker" data-target-input="nearest">
|
||||
<input type="text" id="start-time" name="Start" class="form-control datetimepicker-input" data-target="#start-time-picker" value="@Model.StartTimeToEdit" />
|
||||
<div class="input-group-append" data-target="#start-time-picker" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fas fa-clock"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<!-- Einzelbuchung: Distanz -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="distance">Gefahrene Kilometer</label>
|
||||
<input class="form-control" id="distance" name="Distanz" onchange="validateDistanceInput()">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if(AbstractModel.HasRightToSeeTextModules)
|
||||
{
|
||||
<!-- Einzelbuchung: Textbausteine -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<button type="button" class="btn btn-primary form-control mt-3" data-toggle="modal" data-target="#textbausteine-popup" id="textbausteine-button">Textbausteine</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<!-- Einzelbuchung: Dokumentation -->
|
||||
<div class="form-row">
|
||||
<div class="col-md mt-3">
|
||||
@if(Model.NumberOfDokuTypes == 0)
|
||||
{
|
||||
<div class="form-group">
|
||||
<label for="dokufeld">Dokumentation</label>
|
||||
<textarea class="form-control" name="Dokumentation6" id="dokufeld"></textarea>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<ul class="nav nav-tabs" role="tab-list">
|
||||
@for(var i = 0; i < Model.Dokutypes.Length; i++)
|
||||
{
|
||||
var currentDokuType = Model.Dokutypes[i];
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="#doku_@i" id="doku_@i-tab" data-toggle="tab" role="tab" aria-controls="doku_@i" class="nav-link@(i == 0 ? " active" : string.Empty)" aria-selected="true">
|
||||
@currentDokuType.DisplayName
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
<div class="tab-content" id="dokufelderTab">
|
||||
@for(var i = 0; i < Model.Dokutypes.Length; i++)
|
||||
{
|
||||
var textareaName = i + 1 < 1 ? "Dokumentation" : "Dokumentation" + (i + 1);
|
||||
|
||||
<div class="tab-pane show@(i == 0 ? " active" : string.Empty)" id="doku_@i" role="tabpanel" aria-labelledby="doku_@i-tab">
|
||||
<textarea class="form-control doku-form-control" id="doku-textarea-@i" name="@textareaName"></textarea>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<input type="hidden" name="versteckt" value="Anlegen">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex bd-highlight mt-3">
|
||||
<div class="mr-auto bd-highlight">
|
||||
|
||||
</div>
|
||||
<div class="ml-3 bd-highlight">
|
||||
<button type="button" class="btn btn-primary" id="reset-button" onclick="resetCreateForm()">Abbrechen</button>
|
||||
</div>
|
||||
<div class="ml-3 bd-highlight">
|
||||
<button type="button" class="btn btn-primary" id="create-button" onclick="submitCreateForm()">Anlegen</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
using(Html.BeginForm("EditServiceRecord", "Main", FormMethod.Post, new { id = "serviceRecordEditForm" }))
|
||||
{
|
||||
<div class="mt-3">
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="alert alert-danger collapse" role="alert" id="form-alert">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
@Html.LabelFor(m => m.SelectedEmployeeOid)
|
||||
@Html.DropDownListFor(m => m.SelectedEmployeeOid, Model.EmployeeListItems, new { id = "employeesDropDown", @class = "form-control", onchange = "setSelectedEmployee()" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if(Model.SelectedSupportConcept != null && Model.SelectedSupportConcept.Goals.Any())
|
||||
{
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<button type="button" class="btn btn-primary form-control my-3" data-toggle="collapse" data-target="#goals-container">Ziele</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="collapse w-100 mt-1 max-vw-50" id="goals-container"></div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
@Html.LabelFor(m => m.SelectedServiceCategoryOid)
|
||||
@Html.DropDownListFor(m => m.SelectedServiceCategoryOid, Model.ServiceCategoryListItems, new { onchange = "loadServiceDescriptions()", @class = "form-control", Id = "category-select" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="leistung-select">Leistung</label>
|
||||
<select class="form-control" id="leistung-select" name="ServiceDescription">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="start-date">Startdatum</label>
|
||||
<div class="input-group date" id="start-date-picker" data-target-input="nearest">
|
||||
<input type="text" id="start-date" name="Datum" class="form-control datetimepicker-input" data-target="#start-date-picker" data-toggle="datetimepicker" value="@Model.SelectedServiceRecord.Start.Value.ToString("dd.MM.yyyy")" />
|
||||
<div class="input-group-append" data-target="#start-date-picker" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fas fa-calendar-alt"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Single Edit Mode: Enddatum -->
|
||||
@if(Model.IsEndDateVisible)
|
||||
{
|
||||
<!-- Einzelbuchung: Bis -->
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="start-date">Enddatum</label>
|
||||
<div class="input-group date" id="end-date-picker" data-target-input="nearest">
|
||||
<input type="text" id="end-date" name="Enddatum" class="form-control datetimepicker-input" data-target="#end-date-picker" data-toggle="datetimepicker" value="@Model.SelectedServiceRecord.End.Value.ToString("dd.MM.yyyy")" />
|
||||
<div class="input-group-append" data-target="#end-date-picker" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fas fa-calendar-alt"></i></div>
|
||||
<label for="end-time">Bis</label>
|
||||
<div class="input-group date" id="end-time-picker" data-target-input="nearest">
|
||||
<input type="text" id="end-time" name="Ende" class="form-control datetimepicker-input" data-target="#end-time-picker" value="@Model.EndTimeToEdit" />
|
||||
<div class="input-group-append" data-target="#end-time-picker" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fas fa-clock"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
|
||||
<!-- Single Edit Mode: Von -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="start-time">Von</label>
|
||||
<div class="input-group date" id="start-time-picker" data-target-input="nearest">
|
||||
<input type="text" id="start-time" name="Start" class="form-control datetimepicker-input" data-target="#start-time-picker" value="@Model.SelectedServiceRecord.Start.Value.ToString("HH:mm")" />
|
||||
<div class="input-group-append" data-target="#start-time-picker" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fas fa-clock"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Single Edit Mode: Bis -->
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="end-time">Bis</label>
|
||||
<div class="input-group date" id="end-time-picker" data-target-input="nearest">
|
||||
<input type="text" id="end-time" name="Ende" class="form-control datetimepicker-input" data-target="#end-time-picker" value="@Model.SelectedServiceRecord.End.Value.ToString("HH:mm")" />
|
||||
<div class="input-group-append" data-target="#end-time-picker" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fas fa-clock"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Single Edit Mode: Dauer -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="duration">Dauer</label>
|
||||
<input type="text" class="form-control" id="duration" name="Dauer" onchange="onDurationChange()">
|
||||
</div>
|
||||
</div>
|
||||
@if(Model.IsZeiterfassungInStdMin)
|
||||
{
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="hours-minutes-dropdown-btn">Minuten/Stunden</label>
|
||||
<div class="dropdown">
|
||||
<button id="hours-minutes-dropdown-btn" class="btn btn-outline-primary dropdown-toggle w-100" type="button" data-toggle="dropdown">
|
||||
Minuten
|
||||
</button>
|
||||
<div class="dropdown-menu w-100">
|
||||
<a class="dropdown-item" href="#" onclick="toggleHoursMinutesDropdownButton(this)">Minuten</a>
|
||||
<a class="dropdown-item" href="#" onclick="toggleHoursMinutesDropdownButton(this)">Stunden</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<!-- Single Edit Mode: Distanz -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="distance">Gefahrene Kilometer</label>
|
||||
<input class="form-control" id="distance" name="Distanz" value="@Model.SelectedServiceRecord.DistanceInMeter">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Single Edit Mode: Textbausteine -->
|
||||
@if(AbstractModel.HasRightToSeeTextModules)
|
||||
{
|
||||
<!-- Einzelbuchung: Dauer -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<button type="button" class="btn btn-primary form-control mt-3" data-toggle="modal" data-target="#textbausteine-popup" id="textbausteine-button">Textbausteine</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<!-- Single Edit Mode: Dokumentation -->
|
||||
<div class="form-row">
|
||||
<div class="col-md mt-3">
|
||||
@if(Model.NumberOfDokuTypes == 0)
|
||||
{
|
||||
<div class="form-group">
|
||||
<label for="dokufeld">Dokumentation</label>
|
||||
<textarea class="form-control" name="Dokumentation6" id="dokufeld">@Model.SelectedServiceRecord.Notice</textarea>
|
||||
<div class="form-group mb-1">
|
||||
<label for="duration">Dauer</label>
|
||||
<input type="text" class="form-control" id="duration" name="Dauer" onchange="onDurationChange()" value="@Model.DurationToEdit">
|
||||
</div>
|
||||
}
|
||||
else
|
||||
</div>
|
||||
@if(Model.IsZeiterfassungInStdMin)
|
||||
{
|
||||
<ul class="nav nav-tabs" role="tab-list">
|
||||
@for(var i = 0; i < Model.Dokutypes.Length; i++)
|
||||
{
|
||||
var currentDokuType = Model.Dokutypes[i];
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="#doku_@i" id="doku_@i-tab" data-toggle="tab" role="tab" aria-controls="doku_@i" class="nav-link@(i == 0 ? " active" : string.Empty)" aria-selected="true">
|
||||
@currentDokuType.DisplayName
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
<div class="tab-content" id="dokufelderTab">
|
||||
@for(var i = 0; i < Model.Dokutypes.Length; i++)
|
||||
{
|
||||
var textareaName = i + 1 < 1 ? "Dokumentation" : "Dokumentation" + (i + 1);
|
||||
|
||||
<div class="tab-pane show@(i == 0 ? " active" : string.Empty)" id="doku_@i" role="tabpanel" aria-labelledby="doku_@i-tab">
|
||||
<textarea class="form-control doku-form-control" id="doku-textarea-@i" name="@textareaName">@Model.SelectedServiceRecord.NoticeList[i]</textarea>
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="hours-minutes-dropdown-btn">Minuten/Stunden</label>
|
||||
<div class="dropdown">
|
||||
<button id="hours-minutes-dropdown-btn" class="btn btn-outline-primary dropdown-toggle w-100" type="button" data-toggle="dropdown">
|
||||
Minuten
|
||||
</button>
|
||||
<div class="dropdown-menu w-100">
|
||||
<a class="dropdown-item" href="#" onclick="toggleHoursMinutesDropdownButton(this)">Minuten</a>
|
||||
<a class="dropdown-item" href="#" onclick="toggleHoursMinutesDropdownButton(this)">Stunden</a>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="d-flex bd-highlight mt-3">
|
||||
<div class="mr-auto bd-highlight">
|
||||
|
||||
<!-- Einzelbuchung: Distanz -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<label for="distance">Gefahrene Kilometer</label>
|
||||
<input class="form-control" id="distance" name="Distanz" onchange="validateDistanceInput()" value="@Model.DistanceToEdit">
|
||||
</div>
|
||||
</div>
|
||||
<div class="ml-3 bd-highlight">
|
||||
@using(Html.BeginForm("ResetEditingMode", "Main", FormMethod.Post))
|
||||
</div>
|
||||
@if(AbstractModel.HasRightToSeeTextModules)
|
||||
{
|
||||
<!-- Einzelbuchung: Textbausteine -->
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<button type="button" class="btn btn-primary form-control mt-3" data-toggle="modal" data-target="#textbausteine-popup" id="textbausteine-button">Textbausteine</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="form-row">
|
||||
<div class="col-md mt-3">
|
||||
@if(Model.NumberOfDokuTypes == 0)
|
||||
{
|
||||
<button type="submit" class="btn btn-primary" onclick="showSpinner()">Abbrechen</button>
|
||||
<div class="form-group">
|
||||
<label for="dokufeld">Dokumentation</label>
|
||||
<textarea class="form-control" name="Dokumentation6" id="dokufeld">@Model.NoticeToEdit</textarea>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<ul class="nav nav-tabs" role="tab-list">
|
||||
@for(var i = 0; i < Model.Dokutypes.Length; i++)
|
||||
{
|
||||
var currentDokuType = Model.Dokutypes[i];
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="#doku_@i" id="doku_@i-tab" data-toggle="tab" role="tab" aria-controls="doku_@i" class="nav-link@(i == 0 ? " active" : string.Empty)" aria-selected="true">
|
||||
@currentDokuType.DisplayName
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
<div class="tab-content" id="dokufelderTab">
|
||||
@for(var i = 0; i < Model.Dokutypes.Length; i++)
|
||||
{
|
||||
var textareaName = i + 1 < 1 ? "Dokumentation" : "Dokumentation" + (i + 1);
|
||||
|
||||
<div class="tab-pane show@(i == 0 ? " active" : string.Empty)" id="doku_@i" role="tabpanel" aria-labelledby="doku_@i-tab">
|
||||
<textarea class="form-control doku-form-control" id="doku-textarea-@i" name="@textareaName">@Model.NoticeListToEdit[0]</textarea>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<div class="ml-3 bd-highlight">
|
||||
<button type="button" class="btn btn-primary" id="create-button" onclick="submitEditForm()">Speichern</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<!-- /Zwei-in-eins-Test -->
|
||||
|
||||
<div class="d-flex bd-highlight mt-3">
|
||||
<div class="mr-auto bd-highlight">
|
||||
|
||||
</div>
|
||||
@if(Model.IsInEditingMode)
|
||||
{
|
||||
using(Html.BeginForm("ResetEditingMode", "Main", FormMethod.Post))
|
||||
{
|
||||
<button type="submit" class="btn btn-primary" onclick="showSpinner()">Abbrechen</button>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="ml-3 bd-highlight">
|
||||
<button type="button" class="btn btn-primary" id="reset-button" onclick="resetSingleBookingForm()">Abbrechen</button>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div class="ml-3 bd-highlight">
|
||||
<button type="button" class="btn btn-primary" id="create-button" onclick="submitSingleBookingForm()">@Model.SubmitButtonValue</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
|
||||
<!-- Liste mit den Einträgen und dem Auswahl-Select -->
|
||||
<div class="col col-12 col-md-7">
|
||||
|
||||
@@ -168,6 +168,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Terminliste -->
|
||||
<div class="col col-12 col-md-7">
|
||||
<div class="container-fluid mt-3 px-0">
|
||||
@foreach(var appointment in Model.AppointmentListItems)
|
||||
|
||||
0
BeWoPlanerMobil/delete_and_ignore_file.txt
Normal file
0
BeWoPlanerMobil/delete_and_ignore_file.txt
Normal file
Binary file not shown.
|
Before Width: | Height: | Size: 6.1 KiB |
@@ -90,9 +90,6 @@
|
||||
<Reference Include="DevExpress.Xpf.Grid.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Xpf.Grid.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraScheduler.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore">
|
||||
<RequiredTargetFramework>3.0</RequiredTargetFramework>
|
||||
</Reference>
|
||||
@@ -427,236 +424,6 @@
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Scripts\jquery-3.4.1.min.map" />
|
||||
<None Include="Scripts\jquery-3.4.1.slim.min.map" />
|
||||
<None Include="Scripts\jquery.mobile-1.4.5.min.map" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Content\images\ajax-loader.gif" />
|
||||
<Content Include="Content\images\icons-png\action-black.png" />
|
||||
<Content Include="Content\images\icons-png\action-white.png" />
|
||||
<Content Include="Content\images\icons-png\alert-black.png" />
|
||||
<Content Include="Content\images\icons-png\alert-white.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-d-black.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-d-l-black.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-d-l-white.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-d-r-black.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-d-r-white.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-d-white.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-l-black.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-l-white.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-r-black.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-r-white.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-u-black.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-u-l-black.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-u-l-white.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-u-r-black.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-u-r-white.png" />
|
||||
<Content Include="Content\images\icons-png\arrow-u-white.png" />
|
||||
<Content Include="Content\images\icons-png\audio-black.png" />
|
||||
<Content Include="Content\images\icons-png\audio-white.png" />
|
||||
<Content Include="Content\images\icons-png\back-black.png" />
|
||||
<Content Include="Content\images\icons-png\back-white.png" />
|
||||
<Content Include="Content\images\icons-png\bars-black.png" />
|
||||
<Content Include="Content\images\icons-png\bars-white.png" />
|
||||
<Content Include="Content\images\icons-png\bullets-black.png" />
|
||||
<Content Include="Content\images\icons-png\bullets-white.png" />
|
||||
<Content Include="Content\images\icons-png\calendar-black.png" />
|
||||
<Content Include="Content\images\icons-png\calendar-white.png" />
|
||||
<Content Include="Content\images\icons-png\camera-black.png" />
|
||||
<Content Include="Content\images\icons-png\camera-white.png" />
|
||||
<Content Include="Content\images\icons-png\carat-d-black.png" />
|
||||
<Content Include="Content\images\icons-png\carat-d-white.png" />
|
||||
<Content Include="Content\images\icons-png\carat-l-black.png" />
|
||||
<Content Include="Content\images\icons-png\carat-l-white.png" />
|
||||
<Content Include="Content\images\icons-png\carat-r-black.png" />
|
||||
<Content Include="Content\images\icons-png\carat-r-white.png" />
|
||||
<Content Include="Content\images\icons-png\carat-u-black.png" />
|
||||
<Content Include="Content\images\icons-png\carat-u-white.png" />
|
||||
<Content Include="Content\images\icons-png\check-black.png" />
|
||||
<Content Include="Content\images\icons-png\check-white.png" />
|
||||
<Content Include="Content\images\icons-png\clock-black.png" />
|
||||
<Content Include="Content\images\icons-png\clock-white.png" />
|
||||
<Content Include="Content\images\icons-png\cloud-black.png" />
|
||||
<Content Include="Content\images\icons-png\cloud-white.png" />
|
||||
<Content Include="Content\images\icons-png\comment-black.png" />
|
||||
<Content Include="Content\images\icons-png\comment-white.png" />
|
||||
<Content Include="Content\images\icons-png\delete-black.png" />
|
||||
<Content Include="Content\images\icons-png\delete-white.png" />
|
||||
<Content Include="Content\images\icons-png\edit-black.png" />
|
||||
<Content Include="Content\images\icons-png\edit-white.png" />
|
||||
<Content Include="Content\images\icons-png\eye-black.png" />
|
||||
<Content Include="Content\images\icons-png\eye-white.png" />
|
||||
<Content Include="Content\images\icons-png\forbidden-black.png" />
|
||||
<Content Include="Content\images\icons-png\forbidden-white.png" />
|
||||
<Content Include="Content\images\icons-png\forward-black.png" />
|
||||
<Content Include="Content\images\icons-png\forward-white.png" />
|
||||
<Content Include="Content\images\icons-png\gear-black.png" />
|
||||
<Content Include="Content\images\icons-png\gear-white.png" />
|
||||
<Content Include="Content\images\icons-png\grid-black.png" />
|
||||
<Content Include="Content\images\icons-png\grid-white.png" />
|
||||
<Content Include="Content\images\icons-png\heart-black.png" />
|
||||
<Content Include="Content\images\icons-png\heart-white.png" />
|
||||
<Content Include="Content\images\icons-png\home-black.png" />
|
||||
<Content Include="Content\images\icons-png\home-white.png" />
|
||||
<Content Include="Content\images\icons-png\info-black.png" />
|
||||
<Content Include="Content\images\icons-png\info-white.png" />
|
||||
<Content Include="Content\images\icons-png\location-black.png" />
|
||||
<Content Include="Content\images\icons-png\location-white.png" />
|
||||
<Content Include="Content\images\icons-png\lock-black.png" />
|
||||
<Content Include="Content\images\icons-png\lock-white.png" />
|
||||
<Content Include="Content\images\icons-png\mail-black.png" />
|
||||
<Content Include="Content\images\icons-png\mail-white.png" />
|
||||
<Content Include="Content\images\icons-png\minus-black.png" />
|
||||
<Content Include="Content\images\icons-png\minus-white.png" />
|
||||
<Content Include="Content\images\icons-png\navigation-black.png" />
|
||||
<Content Include="Content\images\icons-png\navigation-white.png" />
|
||||
<Content Include="Content\images\icons-png\phone-black.png" />
|
||||
<Content Include="Content\images\icons-png\phone-white.png" />
|
||||
<Content Include="Content\images\icons-png\plus-black.png" />
|
||||
<Content Include="Content\images\icons-png\plus-white.png" />
|
||||
<Content Include="Content\images\icons-png\power-black.png" />
|
||||
<Content Include="Content\images\icons-png\power-white.png" />
|
||||
<Content Include="Content\images\icons-png\recycle-black.png" />
|
||||
<Content Include="Content\images\icons-png\recycle-white.png" />
|
||||
<Content Include="Content\images\icons-png\refresh-black.png" />
|
||||
<Content Include="Content\images\icons-png\refresh-white.png" />
|
||||
<Content Include="Content\images\icons-png\search-black.png" />
|
||||
<Content Include="Content\images\icons-png\search-white.png" />
|
||||
<Content Include="Content\images\icons-png\shop-black.png" />
|
||||
<Content Include="Content\images\icons-png\shop-white.png" />
|
||||
<Content Include="Content\images\icons-png\star-black.png" />
|
||||
<Content Include="Content\images\icons-png\star-white.png" />
|
||||
<Content Include="Content\images\icons-png\tag-black.png" />
|
||||
<Content Include="Content\images\icons-png\tag-white.png" />
|
||||
<Content Include="Content\images\icons-png\user-black.png" />
|
||||
<Content Include="Content\images\icons-png\user-white.png" />
|
||||
<Content Include="Content\images\icons-png\video-black.png" />
|
||||
<Content Include="Content\images\icons-png\video-white.png" />
|
||||
<Content Include="Content\images\icons-svg\action-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\action-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\alert-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\alert-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-d-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-d-l-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-d-l-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-d-r-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-d-r-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-d-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-l-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-l-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-r-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-r-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-u-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-u-l-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-u-l-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-u-r-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-u-r-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\arrow-u-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\audio-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\audio-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\back-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\back-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\bars-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\bars-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\bullets-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\bullets-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\calendar-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\calendar-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\camera-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\camera-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\carat-d-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\carat-d-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\carat-l-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\carat-l-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\carat-r-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\carat-r-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\carat-u-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\carat-u-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\check-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\check-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\clock-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\clock-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\cloud-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\cloud-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\comment-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\comment-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\delete-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\delete-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\edit-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\edit-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\eye-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\eye-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\forbidden-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\forbidden-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\forward-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\forward-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\gear-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\gear-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\grid-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\grid-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\heart-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\heart-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\home-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\home-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\info-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\info-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\location-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\location-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\lock-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\lock-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\mail-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\mail-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\minus-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\minus-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\navigation-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\navigation-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\phone-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\phone-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\plus-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\plus-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\power-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\power-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\recycle-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\recycle-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\refresh-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\refresh-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\search-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\search-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\shop-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\shop-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\star-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\star-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\tag-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\tag-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\user-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\user-white.svg" />
|
||||
<Content Include="Content\images\icons-svg\video-black.svg" />
|
||||
<Content Include="Content\images\icons-svg\video-white.svg" />
|
||||
<Content Include="Content\jquery.mobile-1.4.5.css" />
|
||||
<Content Include="Content\jquery.mobile-1.4.5.min.css" />
|
||||
<Content Include="Content\jquery.mobile.external-png-1.4.5.css" />
|
||||
<Content Include="Content\jquery.mobile.external-png-1.4.5.min.css" />
|
||||
<Content Include="Content\jquery.mobile.icons-1.4.5.css" />
|
||||
<Content Include="Content\jquery.mobile.icons-1.4.5.min.css" />
|
||||
<Content Include="Content\jquery.mobile.inline-png-1.4.5.css" />
|
||||
<Content Include="Content\jquery.mobile.inline-png-1.4.5.min.css" />
|
||||
<Content Include="Content\jquery.mobile.inline-svg-1.4.5.css" />
|
||||
<Content Include="Content\jquery.mobile.inline-svg-1.4.5.min.css" />
|
||||
<Content Include="Content\jquery.mobile.structure-1.4.5.css" />
|
||||
<Content Include="Content\jquery.mobile.structure-1.4.5.min.css" />
|
||||
<Content Include="Content\jquery.mobile.theme-1.4.5.css" />
|
||||
<Content Include="Content\jquery.mobile.theme-1.4.5.min.css" />
|
||||
<Content Include="Scripts\jquery-3.4.1.intellisense.js" />
|
||||
<Content Include="Scripts\jquery-3.4.1.js" />
|
||||
<Content Include="Scripts\jquery-3.4.1.min.js" />
|
||||
<Content Include="Scripts\jquery-3.4.1.slim.js" />
|
||||
<Content Include="Scripts\jquery-3.4.1.slim.min.js" />
|
||||
<Content Include="Scripts\jquery.mobile-1.4.5.js" />
|
||||
<Content Include="Scripts\jquery.mobile-1.4.5.min.js" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="jQuery" version="3.4.1" targetFramework="net45" />
|
||||
<package id="jquery.mobile" version="1.4.5" targetFramework="net45" />
|
||||
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net45" />
|
||||
</packages>
|
||||
Reference in New Issue
Block a user