2024-09-12 14:55:35 +02:00
|
|
|
|
using System.Collections.Generic;
|
2019-07-25 14:58:13 +02:00
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Web.Mvc;
|
2021-04-19 04:38:29 +02:00
|
|
|
|
using BeWo.View.Navigation.Filter;
|
2021-10-13 16:00:33 +02:00
|
|
|
|
using BeWoPlanerMobil.Controllers;
|
2026-03-18 18:05:58 +01:00
|
|
|
|
using BeWoPlanerMobil.Service;
|
2020-04-16 15:57:01 +02:00
|
|
|
|
using BeWoPlanerMobil.Util;
|
2021-04-19 04:38:29 +02:00
|
|
|
|
using BS.Shared;
|
2019-07-25 14:58:13 +02:00
|
|
|
|
using BS.Shared.DataContracts;
|
2021-10-13 16:00:33 +02:00
|
|
|
|
using DevExpress.XtraReports.UI;
|
2019-07-25 14:58:13 +02:00
|
|
|
|
|
|
|
|
|
|
namespace BeWoPlanerMobil.Models
|
|
|
|
|
|
{
|
2026-02-04 18:03:01 +01:00
|
|
|
|
public class CustomerModel : AbstractModel, ISignable, IAbsenceTimeModel, IDocumentsModel
|
2019-07-25 14:58:13 +02:00
|
|
|
|
{
|
2026-03-18 18:05:58 +01:00
|
|
|
|
public bool HasRightToEdit => HasRightToEditCustomers;
|
|
|
|
|
|
public bool HasRightToDelete => HasRightToEditCustomers;
|
2026-08-03 10:41:29 +02:00
|
|
|
|
|
|
|
|
|
|
public bool CanDeleteAbsenceTime(AbsenceTimeDC absenceTime) => HasRightToDelete;
|
2026-02-04 18:03:01 +01:00
|
|
|
|
public long? ObjectOid => SelectedCustomerOid;
|
|
|
|
|
|
public TableID ObjectTid => TableID.Customer;
|
2026-01-28 17:21:08 +01:00
|
|
|
|
public string HtmlPrefix => "customer";
|
2026-03-06 18:17:57 +01:00
|
|
|
|
public long? AbsenteeOid => SelectedCustomerOid;
|
2026-01-28 17:21:08 +01:00
|
|
|
|
|
|
|
|
|
|
public IAbsenceTime AbsenceTimeObject
|
2025-06-11 22:56:25 +02:00
|
|
|
|
{
|
2026-01-28 17:21:08 +01:00
|
|
|
|
get => SelectedCustomer;
|
|
|
|
|
|
set => SelectedCustomer = (CustomerDC) value;
|
2025-06-11 22:56:25 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-01-28 17:21:08 +01:00
|
|
|
|
public CustomerModel()
|
2025-06-11 22:56:25 +02:00
|
|
|
|
{
|
2026-01-28 17:21:08 +01:00
|
|
|
|
SessionModel = new CustomerSessionModel();
|
2025-06-11 22:56:25 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-01-28 17:21:08 +01:00
|
|
|
|
public CustomerSessionModel CustomerSessionModel => SessionModel as CustomerSessionModel;
|
|
|
|
|
|
|
2019-07-25 14:58:13 +02:00
|
|
|
|
[Display(Name = "Klient")]
|
2026-01-28 17:21:08 +01:00
|
|
|
|
public long? SelectedCustomerOid
|
|
|
|
|
|
{
|
|
|
|
|
|
get => CustomerSessionModel.SelectedAbsenceTimeObjectOid;
|
|
|
|
|
|
set => CustomerSessionModel.SelectedAbsenceTimeObjectOid = value;
|
|
|
|
|
|
}
|
2019-07-25 14:58:13 +02:00
|
|
|
|
|
|
|
|
|
|
public CustomerDC SelectedCustomer { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public IEnumerable<SelectListItem> CustomerListItems
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
2024-09-12 14:55:35 +02:00
|
|
|
|
var result = new List<SelectListItem> { new SelectListItem { Value = "-1", Text = " " } };
|
2023-12-21 19:08:53 +01:00
|
|
|
|
result.AddRange(Customers.Select(item => new SelectListItem { Value = item.CustomerOid.ToString(), Text = item.SimpleDescription }).ToList());
|
2019-07-25 14:58:13 +02:00
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2020-04-16 15:57:01 +02:00
|
|
|
|
|
2023-05-23 13:56:22 +02:00
|
|
|
|
public Dictionary<string, string> ICD10Diagnosen { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public JsonCustomer SelectedJsonCustomer => SelectedCustomer != null ? new JsonCustomer(SelectedCustomer, FolderTree, ICD10Diagnosen) : null;
|
2021-04-19 04:38:29 +02:00
|
|
|
|
|
|
|
|
|
|
[Display(Name = "Filter")]
|
2026-01-28 17:21:08 +01:00
|
|
|
|
public CustomerFilterEnum SelectedCustomerFilter
|
|
|
|
|
|
{
|
|
|
|
|
|
get => CustomerSessionModel.SelectedCustomerFilter;
|
|
|
|
|
|
set => CustomerSessionModel.SelectedCustomerFilter = value;
|
|
|
|
|
|
}
|
2021-04-19 04:38:29 +02:00
|
|
|
|
|
|
|
|
|
|
public List<SelectListItem> CustomerFilter
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
var result = new List<SelectListItem>();
|
|
|
|
|
|
|
2025-06-11 22:56:25 +02:00
|
|
|
|
var user = LoggedInUser;
|
2021-04-19 04:38:29 +02:00
|
|
|
|
|
|
|
|
|
|
const string allCustomers = "Alle Klienten anzeigen";
|
|
|
|
|
|
const string myCustomersOnly = "Nur meine Klienten anzeigen";
|
|
|
|
|
|
const string myTeamsCustomersOnly = "Nur Klienten meiner Teams anzeigen";
|
|
|
|
|
|
|
|
|
|
|
|
const string allCustomersValue = "0";
|
|
|
|
|
|
const string myCustomersValue = "1";
|
|
|
|
|
|
const string myTeamsCustomersValue = "2";
|
|
|
|
|
|
|
|
|
|
|
|
if(user != null)
|
|
|
|
|
|
{
|
2021-07-14 13:45:43 +02:00
|
|
|
|
if(user.CheckForAtLeastOneRight(new List<UserRightType> { UserRightType.ViewAll, UserRightType.CustomerView_View}))
|
2021-04-19 04:38:29 +02:00
|
|
|
|
{
|
|
|
|
|
|
result.Add(new SelectListItem { Text = allCustomers, Value = allCustomersValue });
|
|
|
|
|
|
result.Add(new SelectListItem { Text = myCustomersOnly, Value = myCustomersValue });
|
|
|
|
|
|
|
2025-06-11 22:56:25 +02:00
|
|
|
|
if(user.HasRight(UserRightType.Customer_ViewMyTeams))
|
2021-04-19 04:38:29 +02:00
|
|
|
|
{
|
|
|
|
|
|
result.Add(new SelectListItem {Text = myTeamsCustomersOnly, Value = myTeamsCustomersValue });
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-06-11 22:56:25 +02:00
|
|
|
|
else if(user.HasRight(UserRightType.Customer_ViewMyTeams))
|
2021-04-19 04:38:29 +02:00
|
|
|
|
{
|
|
|
|
|
|
result.Add(new SelectListItem { Text = myCustomersOnly, Value = myCustomersValue });
|
|
|
|
|
|
result.Add(new SelectListItem { Text = myTeamsCustomersOnly, Value = myTeamsCustomersValue });
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-10-13 16:00:33 +02:00
|
|
|
|
|
|
|
|
|
|
public List<BeWoFolderDC> FolderTree { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public List<CustomerReportType> ReportTypes { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[Display(Name = "Bericht")]
|
2026-01-28 17:21:08 +01:00
|
|
|
|
public CustomerReportType SelectedReportType
|
|
|
|
|
|
{
|
|
|
|
|
|
get => CustomerSessionModel.SelectedReportType;
|
|
|
|
|
|
set => CustomerSessionModel.SelectedReportType = value;
|
|
|
|
|
|
}
|
2021-10-13 16:00:33 +02:00
|
|
|
|
|
|
|
|
|
|
public List<SelectListItem> ReportTypeItems
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
var result = new List<SelectListItem>();
|
|
|
|
|
|
|
|
|
|
|
|
foreach(var reportType in ReportTypes ?? new List<CustomerReportType>())
|
|
|
|
|
|
{
|
|
|
|
|
|
result.Add(new SelectListItem
|
|
|
|
|
|
{
|
|
|
|
|
|
Value = ((int) reportType).ToString(),
|
2023-05-31 17:54:01 +02:00
|
|
|
|
Text = reportType == CustomerReportType.Bedarfsmedikation ? "Bedarfsmedikation" : reportType == CustomerReportType.Medikamentenliste ? "Aktuelle Medikamentenverordnung" : "Historie"
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-02-20 14:42:04 +01:00
|
|
|
|
public List<BargeldkassenDC> Bargeldkassen { get; set; } = new List<BargeldkassenDC>();
|
2023-11-02 16:25:36 +01:00
|
|
|
|
|
|
|
|
|
|
[Display(Name = "Kategorie")]
|
2026-01-28 17:21:08 +01:00
|
|
|
|
public long? SelectedAbsenceReasonOid
|
|
|
|
|
|
{
|
|
|
|
|
|
get => CustomerSessionModel.SelectedAbsenceReasonOid;
|
|
|
|
|
|
set => CustomerSessionModel.SelectedAbsenceReasonOid = value;
|
|
|
|
|
|
}
|
2023-11-02 16:25:36 +01:00
|
|
|
|
|
|
|
|
|
|
public List<AbsenceReasonDC> AllAbsenceReasons { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public List<SelectListItem> AbsenceReasonItems
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
2023-11-13 11:33:08 +01:00
|
|
|
|
var result = new List<SelectListItem> { new SelectListItem { Value = "-1", Text = string.Empty } };
|
2023-11-02 16:25:36 +01:00
|
|
|
|
|
|
|
|
|
|
foreach(var absenceReason in AllAbsenceReasons)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(absenceReason.AbsenceReasonOid is null)
|
|
|
|
|
|
{
|
|
|
|
|
|
continue;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
result.Add(new SelectListItem
|
|
|
|
|
|
{
|
|
|
|
|
|
Value = absenceReason.AbsenceReasonOid.Value.ToString(),
|
|
|
|
|
|
Text = absenceReason.Description
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-11-13 11:33:08 +01:00
|
|
|
|
|
2026-01-28 17:21:08 +01:00
|
|
|
|
public long? SelectedAbsenceTimeOid
|
|
|
|
|
|
{
|
|
|
|
|
|
get => CustomerSessionModel.SelectedAbsenceTimeOid;
|
|
|
|
|
|
set => CustomerSessionModel.SelectedAbsenceTimeOid = value;
|
|
|
|
|
|
}
|
2025-06-11 22:56:25 +02:00
|
|
|
|
|
2023-11-13 11:33:08 +01:00
|
|
|
|
public AbsenceTimeDC SelectedAbsenceTime { get; set; }
|
2025-06-11 22:56:25 +02:00
|
|
|
|
//{
|
|
|
|
|
|
// get { return selectedAbsenceTime; }
|
|
|
|
|
|
// set
|
|
|
|
|
|
// {
|
|
|
|
|
|
// selectedAbsenceTime = value;
|
|
|
|
|
|
// SelectedAbsenceTimeOid = selectedAbsenceTime != null ? selectedAbsenceTime.AbsenceTimeOid : null;
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
2026-01-28 17:21:08 +01:00
|
|
|
|
public long? SelectedBargeldkasseOid
|
|
|
|
|
|
{
|
|
|
|
|
|
get => CustomerSessionModel.SelectedBargeldkasseOid;
|
|
|
|
|
|
set => CustomerSessionModel.SelectedBargeldkasseOid = value;
|
|
|
|
|
|
}
|
2024-01-12 17:16:52 +01:00
|
|
|
|
|
|
|
|
|
|
public BargeldkassenDC SelectedBargeldkasse { get; set; }
|
2024-01-23 10:45:34 +01:00
|
|
|
|
|
2026-01-28 17:21:08 +01:00
|
|
|
|
[Display(Name = "Auszahlunsintervall")]
|
|
|
|
|
|
public int SelectedAuszahlungsintervall
|
|
|
|
|
|
{
|
|
|
|
|
|
get => CustomerSessionModel.SelectedAuszahlungsintervall;
|
|
|
|
|
|
set => CustomerSessionModel.SelectedAuszahlungsintervall = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<SelectListItem> Auszahlungsintervalle =>
|
2024-02-20 14:42:04 +01:00
|
|
|
|
new List<SelectListItem>
|
2024-01-23 10:45:34 +01:00
|
|
|
|
{
|
2026-01-28 17:21:08 +01:00
|
|
|
|
new SelectListItem { Value = ((int) Auszahlungsintervall.Kein).ToString(), Text = "Kein" },
|
|
|
|
|
|
new SelectListItem { Value = ((int) Auszahlungsintervall.Monatlich).ToString(), Text = "Monatlich" },
|
|
|
|
|
|
new SelectListItem { Value = ((int) Auszahlungsintervall.Woechentlich).ToString(), Text = "Wöchentlich" },
|
|
|
|
|
|
new SelectListItem { Value = ((int) Auszahlungsintervall.Taeglich).ToString(), Text = "Täglich" }
|
2024-02-20 14:42:04 +01:00
|
|
|
|
};
|
2024-01-23 10:45:34 +01:00
|
|
|
|
|
|
|
|
|
|
public XtraReport BargeldkassenReportObject { get; set; }
|
2024-01-24 13:15:27 +01:00
|
|
|
|
public string BargeldkassenReportName { get; set; }
|
2024-02-20 14:42:04 +01:00
|
|
|
|
|
|
|
|
|
|
public XtraReport ZahlungsbelegsReportObject { get; set; }
|
2025-06-11 22:56:25 +02:00
|
|
|
|
|
2026-01-28 17:21:08 +01:00
|
|
|
|
public long? SelectedBargeldtransaktionOid
|
|
|
|
|
|
{
|
|
|
|
|
|
get => CustomerSessionModel.SelectedBargeldtransaktionOid;
|
|
|
|
|
|
set => CustomerSessionModel.SelectedBargeldtransaktionOid = value;
|
|
|
|
|
|
}
|
2025-06-11 22:56:25 +02:00
|
|
|
|
|
2024-02-20 14:42:04 +01:00
|
|
|
|
public BargeldtransaktionDC SelectedBargeldtransaktion { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[Display(Name = "Art")]
|
2026-01-28 17:21:08 +01:00
|
|
|
|
public int SelectedTransaktionsart
|
|
|
|
|
|
{
|
|
|
|
|
|
get => CustomerSessionModel.SelectedTransaktionsart;
|
|
|
|
|
|
set => CustomerSessionModel.SelectedTransaktionsart = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-02-20 14:42:04 +01:00
|
|
|
|
public List<SelectListItem> Transaktionsarten =>
|
|
|
|
|
|
new List<SelectListItem>
|
|
|
|
|
|
{
|
2026-01-28 17:21:08 +01:00
|
|
|
|
new SelectListItem { Value = ((int) Zahlungstyp.Einzahlung).ToString(), Text = "Einzahlung" },
|
|
|
|
|
|
new SelectListItem { Value = ((int) Zahlungstyp.Auszahlung).ToString(), Text = "Auszahlung" }
|
2024-02-20 14:42:04 +01:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
public List<BargeldtransaktionshistoryDC> BargeldtransaktionshistoryEntries { get; set; } = new List<BargeldtransaktionshistoryDC>();
|
2024-04-18 16:14:20 +02:00
|
|
|
|
|
|
|
|
|
|
public Dictionary<long, bool> TransaktionsOid2HasHistoryEntries { get; set; } = new Dictionary<long, bool>();
|
2025-11-20 10:44:52 +01:00
|
|
|
|
|
|
|
|
|
|
public string SignaturePopupTitle { get; set; }
|
2019-07-25 14:58:13 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|