MoK:
- Löschrechtprüfung an FaC angepasst. - Ziele und Maßnahmen sind alphabetisch absteigend sortiert wie im FaC. - Reports bei Klienten verbessert. - Bargeldtransaktionshistorie eingebaut.
This commit is contained in:
@@ -106,7 +106,7 @@ namespace BeWo.ViewModel
|
||||
_CombinedGoals = new GenericValueListEntryListVM(ziele);
|
||||
|
||||
var categoriesWithParent = new List<SupportConceptGoalTreeItem>();
|
||||
var goalList = GoalService.GetZieleMassnahmenTree(_CombinedGoals.VMList.ToList(), false);
|
||||
var goalList = GoalService.GetZieleMassnahmenTree(_CombinedGoals.VMList.ToList(), false).OrderBy(s => s.Name);
|
||||
var iGoalList = new ObservableSortCollection<SupportConceptGoalTreeItem>();
|
||||
var dictOid2TreeItem = new Dictionary<long, SupportConceptGoalTreeItem>();
|
||||
|
||||
@@ -139,7 +139,7 @@ namespace BeWo.ViewModel
|
||||
dictOid2TreeItem.Add(category.GoalEntryDC.ValueListEntryOid.Value, item);
|
||||
}
|
||||
|
||||
foreach (var category in categoriesWithParent)
|
||||
foreach (var category in categoriesWithParent.OrderBy(s => s.Name))
|
||||
{
|
||||
if (category.GoalEntryDC.ParentOid == null || category.GoalEntryDC.ValueListEntryOid == null)
|
||||
continue;
|
||||
@@ -154,7 +154,7 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
|
||||
var categoriesWithParents = dictOid2TreeItem.Values.Where(w => w.GoalEntryDC.ParentOid != null).ToList();
|
||||
foreach (var goalCategory in categoriesWithParents)
|
||||
foreach (var goalCategory in categoriesWithParents.OrderBy(s => s.Name))
|
||||
{
|
||||
if (dictOid2TreeItem.ContainsKey(goalCategory.GoalEntryDC.ParentOid.Value))
|
||||
{
|
||||
|
||||
@@ -5109,7 +5109,10 @@
|
||||
<Content Include="Views\Main\ServiceRecordListPartial.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Customer\BargeldkassenReportPartial.cshtml" />
|
||||
<Content Include="Views\Customer\CustomerMedListPartial.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Customer\CustomerBargeldtransaktionshistorienPartial.cshtml" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using BeWo.Report.DefaultReports;
|
||||
@@ -118,8 +119,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
Model.SelectedCustomer = customer;
|
||||
|
||||
var bargeldkassen = OperationsService.LoadBargeldkassenForObject(TableID.Customer, customerOid.Value);
|
||||
Model.Bargeldkassen = bargeldkassen;
|
||||
ReloadBargeldkassen();
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
@@ -207,89 +207,6 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
[HttpPost]
|
||||
public ActionResult SelectReport(FormCollection formCollection)
|
||||
{
|
||||
if(Model is null || !MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer") || !AbstractModel.IsAllowedToSeeMedikamentenliste)
|
||||
{
|
||||
return Logout();
|
||||
}
|
||||
|
||||
Model.Report = null;
|
||||
|
||||
if(!int.TryParse(formCollection["report-type-input"], out var selectedReportTypeInt))
|
||||
{
|
||||
return RedirectToActionPermanent("Customer");
|
||||
}
|
||||
|
||||
var selectedReportType = (CustomerReportType) selectedReportTypeInt;
|
||||
|
||||
SelectReport(selectedReportType);
|
||||
|
||||
//return RedirectToActionPermanent("Customer", Model);
|
||||
return RedirectToActionPermanent("Customer");
|
||||
}
|
||||
|
||||
private void SelectReport(CustomerReportType selectedReportType)
|
||||
{
|
||||
Model.SelectedReportType = selectedReportType;
|
||||
|
||||
GenerateMobileMedListForSelectedCustomer();
|
||||
}
|
||||
|
||||
public string SelectReportType(int reportType)
|
||||
{
|
||||
if(Model is null)
|
||||
{
|
||||
return "Die Auswahl des Berichts ist fehlgeschlagen. Bitte wenden Sie sich an den Administrator.";
|
||||
}
|
||||
|
||||
Model.SelectedReportType = (CustomerReportType) reportType;
|
||||
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
public void GenerateMobileMedListForSelectedCustomer(long? selectedMedListOid = null)
|
||||
{
|
||||
if(Model.SelectedCustomerOid is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
long? medListOid = null;
|
||||
var customerOid = Model.SelectedCustomerOid.Value;
|
||||
|
||||
switch(Model.SelectedReportType)
|
||||
{
|
||||
case CustomerReportType.Medikamentenliste:
|
||||
medListOid = CustomerService.GetActiveMedListByTypeForCustomer(customerOid, false);
|
||||
break;
|
||||
case CustomerReportType.Bedarfsmedikation:
|
||||
medListOid = CustomerService.GetActiveMedListByTypeForCustomer(customerOid, true);
|
||||
break;
|
||||
case CustomerReportType.Historie:
|
||||
medListOid = selectedMedListOid;
|
||||
break;
|
||||
}
|
||||
|
||||
var medList = Model.SelectedCustomer.Medikamentenverordnungslisten.FirstOrDefault(f => f.MedikamentenverordnungslistenOid == medListOid);
|
||||
|
||||
if(medList?.MedikamentenverordnungslistenOid is null || Request?.Url is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Model.ReportName = $"Medikamentenverordnung vom {medList.ErstellDatum}";
|
||||
|
||||
using (var memoryStream = ReportService.CreateMedikamentenlistenReport(medList.MedikamentenverordnungslistenOid.Value, MobileSessionFacade.Tenant))
|
||||
{
|
||||
var medikamentenverordnungslistenReport = new MedikamentenverordnungslistenReport();
|
||||
medikamentenverordnungslistenReport.PrintingSystem.LoadDocument(memoryStream);
|
||||
|
||||
Model.Report = medikamentenverordnungslistenReport;
|
||||
}
|
||||
}
|
||||
|
||||
public ActionResult UpdateCustomer(FormCollection formCollection)
|
||||
{
|
||||
if(Model is null)
|
||||
@@ -394,36 +311,104 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return RedirectToActionPermanent("Customer", new { id = customer.CustomerOid });
|
||||
}
|
||||
|
||||
|
||||
#region Medikamentenverordnungen
|
||||
[Authorize]
|
||||
[HttpPost]
|
||||
public ActionResult ViewMedListFromHistoryList(FormCollection formCollection)
|
||||
public ActionResult ShowMedList(int reportType)
|
||||
{
|
||||
if(!long.TryParse(formCollection["med-list-oid"], out var medListOid))
|
||||
if(Model is null || !MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer") || !AbstractModel.IsAllowedToSeeMedikamentenliste)
|
||||
{
|
||||
return RedirectToActionPermanent("Customer");
|
||||
return Logout();
|
||||
}
|
||||
|
||||
var selectedReportType = (CustomerReportType)reportType;
|
||||
|
||||
SelectReport(selectedReportType);
|
||||
|
||||
return PartialView("CustomerReportPartial", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult ShowHistoricalMedList(long medListOid)
|
||||
{
|
||||
if(Model is null || !MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer") || !AbstractModel.IsAllowedToSeeMedikamentenliste)
|
||||
{
|
||||
return Logout();
|
||||
}
|
||||
|
||||
Model.SelectedReportType = CustomerReportType.Historie;
|
||||
|
||||
GenerateMobileMedListForSelectedCustomer(medListOid);
|
||||
|
||||
return RedirectToActionPermanent("Customer");
|
||||
return PartialView("CustomerReportPartial", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
[HttpPost]
|
||||
public ActionResult DeleteMedListFromHistoryList(FormCollection formCollection)
|
||||
public ActionResult DeleteHistoricalMedList(long medListOid)
|
||||
{
|
||||
if(!long.TryParse(formCollection["med-list-oid"], out var medListOid))
|
||||
if(Model is null || !MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer") || !AbstractModel.IsAllowedToSeeMedikamentenliste)
|
||||
{
|
||||
return RedirectToActionPermanent("Customer");
|
||||
return Logout();
|
||||
}
|
||||
|
||||
Model.SelectedReportType = CustomerReportType.Historie;
|
||||
|
||||
CustomerService.DeleteMedikamentenverordnungsliste(medListOid);
|
||||
|
||||
return RedirectToActionPermanent("Customer");
|
||||
|
||||
LoadCustomerToModel(Model.SelectedCustomerOid);
|
||||
|
||||
return PartialView("CustomerMedListPartial", Model);
|
||||
}
|
||||
|
||||
private void SelectReport(CustomerReportType selectedReportType)
|
||||
{
|
||||
Model.SelectedReportType = selectedReportType;
|
||||
|
||||
GenerateMobileMedListForSelectedCustomer();
|
||||
}
|
||||
|
||||
private void GenerateMobileMedListForSelectedCustomer(long? selectedMedListOid = null)
|
||||
{
|
||||
if(Model.SelectedCustomerOid is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
long? medListOid = null;
|
||||
var customerOid = Model.SelectedCustomerOid.Value;
|
||||
|
||||
switch(Model.SelectedReportType)
|
||||
{
|
||||
case CustomerReportType.Medikamentenliste:
|
||||
medListOid = CustomerService.GetActiveMedListByTypeForCustomer(customerOid, false);
|
||||
break;
|
||||
case CustomerReportType.Bedarfsmedikation:
|
||||
medListOid = CustomerService.GetActiveMedListByTypeForCustomer(customerOid, true);
|
||||
break;
|
||||
case CustomerReportType.Historie:
|
||||
medListOid = selectedMedListOid;
|
||||
break;
|
||||
}
|
||||
|
||||
var medList = Model.SelectedCustomer.Medikamentenverordnungslisten.FirstOrDefault(f => f.MedikamentenverordnungslistenOid == medListOid);
|
||||
|
||||
if(medList?.MedikamentenverordnungslistenOid is null || Request?.Url is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Model.ReportName = $"Medikamentenverordnung vom {medList.ErstellDatum}";
|
||||
|
||||
using(var memoryStream = ReportService.CreateMedikamentenlistenReport(medList.MedikamentenverordnungslistenOid.Value, MobileSessionFacade.Tenant))
|
||||
{
|
||||
var medikamentenverordnungslistenReport = new MedikamentenverordnungslistenReport();
|
||||
medikamentenverordnungslistenReport.PrintingSystem.LoadDocument(memoryStream);
|
||||
|
||||
Model.Report = medikamentenverordnungslistenReport;
|
||||
Model.BargeldkassenReportName = null;
|
||||
Model.BargeldkassenReportObject = null;
|
||||
Model.ZahlungsbelegsReportObject = null;
|
||||
}
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
@@ -433,8 +418,20 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Bargeldkassen
|
||||
|
||||
private void ReloadBargeldkassen()
|
||||
{
|
||||
if(Model?.SelectedCustomer?.CustomerOid is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Model.Bargeldkassen = OperationsService.LoadBargeldkassenForObject(TableID.Customer, Model.SelectedCustomer.CustomerOid.Value);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string SelectBargeldkasse(long oid)
|
||||
{
|
||||
@@ -507,7 +504,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
OperationsService.DeactivateBargeldkasse(bargeldkassenOid, bargeldkassenVersion);
|
||||
|
||||
Model.Bargeldkassen = OperationsService.LoadBargeldkassenForObject(TableID.Customer, Model.SelectedCustomerOid.Value);
|
||||
ReloadBargeldkassen();
|
||||
|
||||
return RedirectToActionPermanent("Customer");
|
||||
}
|
||||
@@ -576,7 +573,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
if(bargeldkasse?.ObjectOid is null)
|
||||
{
|
||||
return PartialView("BargeldkassenReportPartial", Model);
|
||||
return PartialView("CustomerReportPartial", Model);
|
||||
}
|
||||
|
||||
var bargeldkassenReportZeitraum = startDate.Equals(startDate.GetFirstOfMonth()) && endDate.Equals(startDate.GetLastOfMonth()) ?
|
||||
@@ -591,16 +588,296 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
report.PrintingSystem.LoadDocument(memoryStream);
|
||||
|
||||
Model.BargeldkassenReportObject = report;
|
||||
Model.BargeldkassenReportName = name;
|
||||
Model.Report = report;
|
||||
Model.ReportName = name;
|
||||
|
||||
return PartialView("BargeldkassenReportPartial", Model);
|
||||
return PartialView("CustomerReportPartial", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string SetSelectedAuszahlungsintervall(int auszahlungsintervall)
|
||||
{
|
||||
Model.SelectedAuszahlungsintervall = auszahlungsintervall;
|
||||
Model.SelectedAuszahlungsintervall = auszahlungsintervall < 4 && auszahlungsintervall >= 0 ? auszahlungsintervall : 0;
|
||||
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult DownloadZahlungsbeleg(long transaktionsOid)
|
||||
{
|
||||
var kassenbuch = Model.Bargeldkassen.FirstOrDefault(bargeldkasse => bargeldkasse.Bargeldtransaktionen.Any(transaktion => transaktion.BargeldtransaktionOid.Equals(transaktionsOid)));
|
||||
|
||||
var zahlung = kassenbuch?.Bargeldtransaktionen.FirstOrDefault(bargeldtransaktion => bargeldtransaktion.BargeldtransaktionOid.Equals(transaktionsOid));
|
||||
|
||||
if(zahlung != null && kassenbuch.ObjectOid.HasValue)
|
||||
{
|
||||
var memoryStream = ReportService.CreateKassenbelegReport(zahlung, kassenbuch.ObjectOid.Value, kassenbuch.ObjectTid);
|
||||
|
||||
var report = new XtraReport();
|
||||
|
||||
report.PrintingSystem.LoadDocument(memoryStream);
|
||||
|
||||
Model.Report = report;
|
||||
Model.ReportName = "Zahlungsbeleg";
|
||||
}
|
||||
|
||||
return PartialView("CustomerReportPartial", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult LoadBargeldtransaktionsEditForm(long transaktionsOid)
|
||||
{
|
||||
var kassenbuch = GetBargeldkasseByTransaktionsOid(transaktionsOid);
|
||||
|
||||
var zahlung = kassenbuch?.Bargeldtransaktionen.FirstOrDefault(bargeldtransaktion => bargeldtransaktion.BargeldtransaktionOid.Equals(transaktionsOid));
|
||||
|
||||
Model.SelectedBargeldtransaktion = zahlung;
|
||||
Model.SelectedBargeldkasse = kassenbuch;
|
||||
|
||||
return PartialView("CustomerBargeldtransaktionenFormPartial", Model);
|
||||
}
|
||||
|
||||
private BargeldkassenDC GetBargeldkasseByTransaktionsOid(long transaktionsOid)
|
||||
{
|
||||
return Model.Bargeldkassen.FirstOrDefault(bargeldkasse => bargeldkasse.Bargeldtransaktionen.Any(transaktion => transaktion.BargeldtransaktionOid.Equals(transaktionsOid)));
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string SetTransaktionsart(int transaktionsart)
|
||||
{
|
||||
Model.SelectedTransaktionsart = transaktionsart < 2 && transaktionsart >= 0 ? transaktionsart : 0;
|
||||
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult LoadBargeldtransaktionsForm(long bargeldkassenOid)
|
||||
{
|
||||
Model.SelectedBargeldtransaktion = null;
|
||||
Model.SelectedTransaktionsart = 0;
|
||||
|
||||
Model.SelectedBargeldkasse = Model.Bargeldkassen.FirstOrDefault(bk => bk.BargeldkassenOid.HasValue && bk.BargeldkassenOid.Equals(bargeldkassenOid));
|
||||
|
||||
return PartialView("CustomerBargeldtransaktionenFormPartial", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult CreateOrUpdateBargeldTransaktion2(string rawDate, string rawArt, string rawBetrag, string belegnummer, string notice)
|
||||
{
|
||||
var transaktion2Edit = Model.SelectedBargeldtransaktion;
|
||||
var bargeldkasse = Model.SelectedBargeldkasse;
|
||||
|
||||
var isNew = transaktion2Edit is null;
|
||||
|
||||
var datum = DateTime.Parse(rawDate);
|
||||
|
||||
var isDateValid = Enum.TryParse(rawArt, out Zahlungstyp art);
|
||||
var isBetragValid = decimal.TryParse(rawBetrag.Replace('.', ','), NumberStyles.AllowDecimalPoint, new CultureInfo("DE-de"), out var betrag);
|
||||
|
||||
if(!isDateValid || !isBetragValid || betrag <= 0)
|
||||
{
|
||||
TempData["CustomerBargeldkassenErrorMessage"] = "Datum oder Betrag sind ungültig!";
|
||||
return PartialView("CustomerBargeldkassen", Model);
|
||||
}
|
||||
|
||||
if(bargeldkasse is null)
|
||||
{
|
||||
TempData["CustomerBargeldkassenErrorMessage"] = "Beim Speichern der Transaktion ist ein Fehler aufgetreten. Bitte wenden Sie sich an Ihren Administrator.";
|
||||
return PartialView("CustomerBargeldkassen", Model);
|
||||
}
|
||||
|
||||
if(isNew)
|
||||
{
|
||||
bargeldkasse.Bargeldtransaktionen.Add(new BargeldtransaktionDC
|
||||
{
|
||||
Belegnummer = belegnummer,
|
||||
Betrag = betrag,
|
||||
Notice = notice,
|
||||
Zahlungsdatum = datum,
|
||||
Zahlungstyp = art
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach(var bargeldtransaktion in bargeldkasse.Bargeldtransaktionen)
|
||||
{
|
||||
if(transaktion2Edit.BargeldtransaktionOid.HasValue && (bargeldtransaktion.BargeldtransaktionOid?.Equals(transaktion2Edit.BargeldtransaktionOid.Value) ?? false))
|
||||
{
|
||||
bargeldtransaktion.Belegnummer = belegnummer;
|
||||
bargeldtransaktion.Betrag = betrag;
|
||||
bargeldtransaktion.Notice = notice;
|
||||
bargeldtransaktion.Zahlungsdatum = datum;
|
||||
bargeldtransaktion.Zahlungstyp = art;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
OperationsService.UpdateBargeldkasse(bargeldkasse);
|
||||
|
||||
Model.SelectedBargeldkasse = null;
|
||||
|
||||
ReloadBargeldkassen();
|
||||
|
||||
return PartialView("CustomerBargeldkassen", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult DeleteBargeldtransaktion(long? bargeldtransaktionsOid)
|
||||
{
|
||||
if(Model is null)
|
||||
{
|
||||
return Logout();
|
||||
}
|
||||
|
||||
if(bargeldtransaktionsOid is null)
|
||||
{
|
||||
TempData["CustomerBargeldkassenErrorMessage"] = "Es ist ein Fehler beim Löschen der Bargeldtransaktion aufgetreten. Bitte wenden Sie sich an Ihren Administrator.";
|
||||
return PartialView("CustomerBargeldkassen", Model);
|
||||
}
|
||||
|
||||
var bargeldkasse = GetBargeldkasseByTransaktionsOid(bargeldtransaktionsOid.Value);
|
||||
|
||||
var bargeldtransaktion = bargeldkasse.Bargeldtransaktionen.FirstOrDefault(f => f.BargeldtransaktionOid.HasValue && f.BargeldtransaktionOid.Value.Equals(bargeldtransaktionsOid));
|
||||
|
||||
if(bargeldtransaktion is null)
|
||||
{
|
||||
TempData["CustomerBargeldkassenErrorMessage"] = "Es ist ein Fehler beim Löschen der Bargeldtransaktion aufgetreten. Bitte wenden Sie sich an Ihren Administrator.";
|
||||
return PartialView("CustomerBargeldkassen", Model);
|
||||
}
|
||||
|
||||
bargeldkasse.Bargeldtransaktionen.Remove(bargeldtransaktion);
|
||||
|
||||
OperationsService.UpdateBargeldkasse(bargeldkasse);
|
||||
|
||||
if(Model.SelectedCustomer?.CustomerOid is null)
|
||||
{
|
||||
TempData["CustomerBargeldkassenErrorMessage"] = "Es ist ein Fehler beim Laden der Bargeldkassen aufgetreten. Bitte wenden Sie sich an Ihren Administrator.";
|
||||
return PartialView("CustomerBargeldkassen", Model);
|
||||
}
|
||||
|
||||
ReloadBargeldkassen();
|
||||
|
||||
return PartialView("CustomerBargeldkassen", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult SaveTransaktionsunterschrift(long transaktionsOid, string signatureAsBase64)
|
||||
{
|
||||
if(Model is null)
|
||||
{
|
||||
return Logout();
|
||||
}
|
||||
|
||||
var bargeldkasse = GetBargeldkasseByTransaktionsOid(transaktionsOid);
|
||||
|
||||
var transaktion = bargeldkasse?.Bargeldtransaktionen.FirstOrDefault(f => f.BargeldtransaktionOid.HasValue && f.BargeldtransaktionOid.Value.Equals(transaktionsOid));
|
||||
|
||||
if(transaktion is null)
|
||||
{
|
||||
TempData["CustomerBargeldkassenErrorMessage"] = "Beim Speichern der Transaktionsunterschrift ist ein Fehler aufgetreten. Bitte wenden Sie sich an Ihren Administrator.";
|
||||
return PartialView("CustomerBargeldkassen", Model);
|
||||
}
|
||||
|
||||
long? signatureOid;
|
||||
|
||||
using(var signatureBitmap = SignatureUtils.Base64StringToBitmap(signatureAsBase64.Split(',')[1]))
|
||||
{
|
||||
var isValid = SignatureUtils.ValidateSignature(signatureBitmap);
|
||||
|
||||
if(!isValid)
|
||||
{
|
||||
TempData["CustomerBargeldkassenErrorMessage"] = "Das Unterschriftenfeld darf nicht leer sein.";
|
||||
}
|
||||
|
||||
signatureOid = OperationsService.InsertSignature(new SignatureDC
|
||||
{
|
||||
DataBild = signatureAsBase64,
|
||||
BargeldtransaktionsOid = transaktionsOid,
|
||||
Zeitstempel = DateTime.Now
|
||||
}).SignatureOid;
|
||||
}
|
||||
|
||||
if(signatureOid.HasValue)
|
||||
{
|
||||
foreach(var bargeldtransaktion in bargeldkasse.Bargeldtransaktionen)
|
||||
{
|
||||
if(bargeldtransaktion.BargeldtransaktionOid.HasValue && bargeldtransaktion.BargeldtransaktionOid.Value.Equals(transaktionsOid))
|
||||
{
|
||||
bargeldtransaktion.SignatureOid = signatureOid;
|
||||
}
|
||||
}
|
||||
|
||||
OperationsService.UpdateBargeldkasse(bargeldkasse);
|
||||
}
|
||||
|
||||
ReloadBargeldkassen();
|
||||
|
||||
return PartialView("CustomerBargeldkassen", Model);
|
||||
}
|
||||
|
||||
public ActionResult DeleteTransactionSignature(long transactionOid)
|
||||
{
|
||||
if(Model is null)
|
||||
{
|
||||
return Logout();
|
||||
}
|
||||
|
||||
BargeldkassenDC bargeldkasse = null;
|
||||
BargeldtransaktionDC transaction = null;
|
||||
|
||||
foreach(var item in Model.Bargeldkassen)
|
||||
{
|
||||
transaction = item.Bargeldtransaktionen.FirstOrDefault(t => t.BargeldtransaktionOid.Equals(transactionOid));
|
||||
|
||||
if(transaction == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
bargeldkasse = item;
|
||||
break;
|
||||
}
|
||||
|
||||
var signatureOid = transaction?.SignatureOid;
|
||||
|
||||
if(signatureOid.HasValue)
|
||||
{
|
||||
bargeldkasse.Bargeldtransaktionen.DoForEach(t =>
|
||||
{
|
||||
if(t.BargeldtransaktionOid.Equals(transactionOid))
|
||||
{
|
||||
t.SignatureOid = null;
|
||||
}
|
||||
});
|
||||
|
||||
OperationsService.DeleteBargeldtransaktionSignature(signatureOid.Value);
|
||||
OperationsService.UpdateBargeldkasse(bargeldkasse);
|
||||
|
||||
ReloadBargeldkassen();
|
||||
}
|
||||
|
||||
return PartialView("CustomerBargeldkassen", Model);
|
||||
}
|
||||
|
||||
public ActionResult LoadHistoryEntries(long transactionOid)
|
||||
{
|
||||
if(Model is null)
|
||||
{
|
||||
return Logout();
|
||||
}
|
||||
|
||||
var historyEntries = OperationsService.LoadBargeldtransaktionshistoryEntries(transactionOid);
|
||||
|
||||
Model.BargeldtransaktionshistoryEntries = historyEntries;
|
||||
|
||||
return PartialView("CustomerBargeldtransaktionshistorienPartial", Model);
|
||||
}
|
||||
|
||||
public string ClearHistoryEntries()
|
||||
{
|
||||
Model?.BargeldtransaktionshistoryEntries.Clear();
|
||||
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
@@ -161,6 +161,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
BS.Shared.Settings.ApplicationSettings.AnzTageZeiterfassErfolgt = UserSettingsUtils.GetSettingValueAsInteger(mandatorSettings, SettingsKeys.AnzTageZeiterfassErfolgt);
|
||||
BS.Shared.Settings.ApplicationSettings.MaxDaysEditServiceRecordsAllowed = UserSettingsUtils.GetSettingValueAsInteger(mandatorSettings, SettingsKeys.MaxDaysEditServiceRecordsAllowed);
|
||||
BS.Shared.Settings.ApplicationSettings.TimeUntilUILock = UserSettingsUtils.GetSettingValueAsInteger(mandatorSettings, SettingsKeys.TimeUntilUILock);
|
||||
BS.Shared.Settings.ApplicationSettings.ServiceRecordAllowChangeHours = UserSettingsUtils.GetSettingValueAsInteger(mandatorSettings, SettingsKeys.ServiceRecordAllowChangeHours);
|
||||
|
||||
AbstractModel.ShowServiceRecordInsertedOn = !UserSettingsUtils.GetSettingValueAsBool(mandatorSettings, SettingsKeys.HideServiceRecordInsertedByAndInsertedOn);
|
||||
|
||||
@@ -526,7 +527,13 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
foreach(var ziel in ziele.Where(z => z.ValueListEntryOid.HasValue))
|
||||
{
|
||||
var treeItem = new GoalTreeItem { Children = new List<GoalTreeItem>(), Header = ziel.DisplayName ?? string.Empty, ParentOid = ziel.ParentOid, ValueListEntryOid = ziel.ValueListEntryOid };
|
||||
var treeItem = new GoalTreeItem(true)
|
||||
{
|
||||
Children = new List<GoalTreeItem>(),
|
||||
Header = ziel.DisplayName ?? string.Empty,
|
||||
ParentOid = ziel.ParentOid,
|
||||
ValueListEntryOid = ziel.ValueListEntryOid
|
||||
};
|
||||
|
||||
goalTreeDic.Add(ziel.ValueListEntryOid.Value, treeItem);
|
||||
|
||||
@@ -556,7 +563,15 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
var kind = new GoalTreeItem { Children = new List<GoalTreeItem>(), Header = ziel.DisplayName ?? string.Empty, IsLeaf = true, ValueListEntryOid = ziel.ValueListEntryOid, RatingName = ratingName};
|
||||
var kind = new GoalTreeItem(false)
|
||||
{
|
||||
Children = new List<GoalTreeItem>(),
|
||||
Header = ziel.DisplayName ?? string.Empty,
|
||||
IsLeaf = true,
|
||||
ValueListEntryOid = ziel.ValueListEntryOid,
|
||||
RatingName = ratingName,
|
||||
ParentOid = ziel.ParentOid
|
||||
};
|
||||
|
||||
if(ziel.ParentOid is null || !goalTreeDic.ContainsKey(ziel.ParentOid.Value))
|
||||
{
|
||||
@@ -771,7 +786,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
long? oid = null;
|
||||
long? oid;
|
||||
|
||||
using(var signatureBitmap = SignatureUtils.Base64StringToBitmap(blob.Split(',')[1]))
|
||||
{
|
||||
|
||||
@@ -106,32 +106,33 @@ namespace BeWoPlanerMobil.Models
|
||||
}
|
||||
}
|
||||
|
||||
public List<SelectListItem> OldMedLists
|
||||
{
|
||||
get
|
||||
{
|
||||
var result = new List<SelectListItem>();
|
||||
// ToDo: KGW
|
||||
//public List<SelectListItem> OldMedLists
|
||||
//{
|
||||
// get
|
||||
// {
|
||||
// var result = new List<SelectListItem>();
|
||||
|
||||
var ungueltigeListen = SelectedCustomer.Medikamentenverordnungslisten.Where(w => !w.Gueltig).OrderBy(x => x.ErstellDatum).ToList();
|
||||
// var ungueltigeListen = SelectedCustomer.Medikamentenverordnungslisten.Where(w => !w.Gueltig).OrderByDescending(x => x.ErstellDatum).ToList();
|
||||
|
||||
foreach(var list in ungueltigeListen)
|
||||
{
|
||||
result.Add(new SelectListItem
|
||||
{
|
||||
Value = list.MedikamentenverordnungslistenOid.Value.ToString(),
|
||||
Text = $"{(list.MedListType ? "Medikamentenverordnungsliste" : "Bedarfsmedikamentenverordnungsliste")} vom {list.ErstellDatum}"
|
||||
});
|
||||
}
|
||||
// foreach(var list in ungueltigeListen)
|
||||
// {
|
||||
// result.Add(new SelectListItem
|
||||
// {
|
||||
// Value = list.MedikamentenverordnungslistenOid.Value.ToString(),
|
||||
// Text = $"{(list.MedListType ? "Medikamentenverordnungsliste" : "Bedarfsmedikamentenverordnungsliste")} vom {list.ErstellDatum}"
|
||||
// });
|
||||
// }
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
// return result;
|
||||
// }
|
||||
//}
|
||||
|
||||
public XtraReport Report { get; set; }
|
||||
|
||||
public string ReportName { get; set; }
|
||||
|
||||
public List<BargeldkassenDC> Bargeldkassen { get; set; }
|
||||
public List<BargeldkassenDC> Bargeldkassen { get; set; } = new List<BargeldkassenDC>();
|
||||
|
||||
[Display(Name = "Kategorie")]
|
||||
public long? SelectedAbsenceReason { get; set; }
|
||||
@@ -168,23 +169,31 @@ namespace BeWoPlanerMobil.Models
|
||||
|
||||
[Display(Name="Auszahlunsintervall")]
|
||||
public int SelectedAuszahlungsintervall { get; set; }
|
||||
public List<SelectListItem> Auszahlungsintervalle
|
||||
{
|
||||
get
|
||||
public List<SelectListItem> Auszahlungsintervalle =>
|
||||
new List<SelectListItem>
|
||||
{
|
||||
var result = new List<SelectListItem>
|
||||
{
|
||||
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"},
|
||||
};
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
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"},
|
||||
};
|
||||
|
||||
public XtraReport BargeldkassenReportObject { get; set; }
|
||||
public string BargeldkassenReportName { get; set; }
|
||||
|
||||
public XtraReport ZahlungsbelegsReportObject { get; set; }
|
||||
|
||||
public BargeldtransaktionDC SelectedBargeldtransaktion { get; set; }
|
||||
|
||||
[Display(Name = "Art")]
|
||||
public int SelectedTransaktionsart { get; set; }
|
||||
public List<SelectListItem> Transaktionsarten =>
|
||||
new List<SelectListItem>
|
||||
{
|
||||
new SelectListItem{Value=((int) Zahlungstyp.Einzahlung).ToString(), Text = "Einzahlung"},
|
||||
new SelectListItem{Value=((int) Zahlungstyp.Auszahlung).ToString(), Text = "Auszahlung"}
|
||||
};
|
||||
|
||||
public List<BargeldtransaktionshistoryDC> BargeldtransaktionshistoryEntries { get; set; } = new List<BargeldtransaktionshistoryDC>();
|
||||
}
|
||||
}
|
||||
@@ -114,7 +114,7 @@ namespace BeWoPlanerMobil.Models
|
||||
{
|
||||
if(serviceRecord.InsertedOn.HasValue)
|
||||
{
|
||||
if(DateTime.Now < serviceRecord.InsertedOn.Value.AddDays(1))
|
||||
if(DateTime.Now < serviceRecord.InsertedOn.Value.AddDays(ApplicationSettings.ServiceRecordAllowChangeHours))
|
||||
{
|
||||
allowed = true;
|
||||
}
|
||||
|
||||
@@ -285,29 +285,29 @@ function cardHeaderClick(chevronId, cardBodyId) {
|
||||
function cardHeaderClick2(element, callback) {
|
||||
try {
|
||||
if(element === undefined || element === null) {
|
||||
console.logWarning("element is undefined or null!");
|
||||
return;
|
||||
}
|
||||
|
||||
var jQElement = $(element);
|
||||
var chevronDown = $(element).find(".fa-chevron-down");
|
||||
var chevronUp = $(element).find(".fa-chevron-up");
|
||||
|
||||
var icon = jQElement.find("svg.chevron-identifier-class");
|
||||
var collapse = jQElement.next(".collapse");
|
||||
//if(chevronDown.length) {
|
||||
chevronDown.removeClass("fa-chevron-down").addClass("fa-chevron-up");
|
||||
//chevronDown.addClass("fa-chevron-up");
|
||||
//}
|
||||
|
||||
if (collapse.length) {
|
||||
$(collapse).toggle();
|
||||
}
|
||||
//if(chevronUp.length) {
|
||||
chevronUp.removeClass("fa-chevron-up").addClass("fa-chevron-down");
|
||||
//}
|
||||
|
||||
if (icon.length && collapse.length) {
|
||||
var isDown = $(collapse).css("display") !== "none";
|
||||
var chevron = $(icon);
|
||||
var iconToRemove = isDown ? "fa-chevron-down" : "fa-chevron-up";
|
||||
var iconToAdd = isDown ? "fa-chevron-up" : "fa-chevron-down";
|
||||
//logInfo(`${chevronDown.attr("class")}`);
|
||||
|
||||
chevron.removeClass(iconToRemove);
|
||||
chevron.addClass(iconToAdd);
|
||||
}
|
||||
//$(element).find(".fa-chevron-down,.fa-chevron-up").toggleClass("fa-chevron-down").toggleClass("fa-chevron-up");
|
||||
|
||||
$(element).next(".collapse").toggle();
|
||||
|
||||
if (typeof callback === "function") {
|
||||
if(typeof callback === "function") {
|
||||
callback();
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
@@ -118,4 +118,23 @@ function mergeDateAndTime(date, time) {
|
||||
// ToDo: Löst Exception aus bei einem Wert von z.B. "06.02.2023".
|
||||
function isValidDate(date) {
|
||||
return Object.prototype.toString.call(date) === "[object Date]" && !isNaN(date);
|
||||
}
|
||||
|
||||
function ddMMyyyyToyyyyMMdd(dateString)
|
||||
{
|
||||
if (dateString === undefined || dateString === null || typeof dateString != "string" || dateString.length !== 10) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var dayMonthYear = dateString.split(".");
|
||||
|
||||
if(dayMonthYear.length !== 3) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var dd = dayMonthYear[0];
|
||||
var mm = dayMonthYear[1];
|
||||
var yyyy = dayMonthYear[2];
|
||||
|
||||
return `${yyyy}-${mm}-${dd}`;
|
||||
}
|
||||
@@ -1471,7 +1471,7 @@ if ((version[0] <= 2 && version[1] < 17) || version[0] >= 3) throw new Error("Te
|
||||
.on(f.Event.FOCUS, "." + f.ClassName.INPUT, function (a) {
|
||||
var b = k(e(this)),
|
||||
c = b.data(f.DATA_KEY);
|
||||
0 !== b.length && c._options.allowInputToggle && l._jQueryInterface.call(b, c, a);
|
||||
0 !== b.length && (c !== undefined || c !== null) && c._options.allowInputToggle && l._jQueryInterface.call(b, c, a);
|
||||
}),
|
||||
(e.fn[f.NAME] = l._jQueryInterface),
|
||||
(e.fn[f.NAME].Constructor = l),
|
||||
|
||||
@@ -17,5 +17,12 @@ namespace BeWoPlanerMobil.Util
|
||||
public long? TopmostParentOid { get; set; }
|
||||
|
||||
public string RatingName { get; set; } = "Bewerten";
|
||||
|
||||
public bool IsGoal { get; }
|
||||
|
||||
public GoalTreeItem(bool isGoal)
|
||||
{
|
||||
IsGoal = isGoal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
@model BeWoPlanerMobil.Models.CustomerModel
|
||||
|
||||
<script type="text/javascript">
|
||||
function bargeldkassenReportViewerInit(s, e) {
|
||||
try {
|
||||
s.UpdateLocalization({
|
||||
'Page': 'Seite',
|
||||
'of': 'von'
|
||||
});
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
@if(Model.BargeldkassenReportName?.Length > 0)
|
||||
{
|
||||
<text>
|
||||
$("#customer-bargeldkassen-report-popup-header").text("@Model.BargeldkassenReportName");
|
||||
</text>
|
||||
}
|
||||
else
|
||||
{
|
||||
<text>
|
||||
$("#customer-bargeldkassen-report-popup-header").text("");
|
||||
</text>
|
||||
}
|
||||
</script>
|
||||
|
||||
@if(Model.BargeldkassenReportObject != null)
|
||||
{
|
||||
@Html.DevExpress().WebDocumentViewer(settings =>
|
||||
{
|
||||
settings.Name = "bargeldkassenReportViewer";
|
||||
settings.Width = Unit.Percentage(100);
|
||||
settings.Height = Unit.Percentage(100);
|
||||
settings.MobileMode = true;
|
||||
settings.SettingsMobile.ReaderMode = true;
|
||||
settings.SettingsMobile.AnimationEnabled = false;
|
||||
settings.ClientSideEvents.Init = "bargeldkassenReportViewerInit";
|
||||
}).Bind(Model.BargeldkassenReportObject).GetHtml()
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -40,7 +40,7 @@
|
||||
function editBtnClickTest(bargeldkassenOid, bargeldkassenname) {
|
||||
try {
|
||||
showSpinner();
|
||||
|
||||
|
||||
$("#customer-bargeldkassen-modal-body").load("@Url.Action("LoadEditFormPartial")", {bargeldkassenOid: bargeldkassenOid}, function () {
|
||||
hideSpinner();
|
||||
$("#customer-bargeldkassen-form-popup-title").text(bargeldkassenname + " bearbeiten");
|
||||
@@ -83,15 +83,22 @@
|
||||
try {
|
||||
showSpinner();
|
||||
|
||||
var start = $("#customer-bargeldkasse-start-date-" + bargeldkassenOid).val();
|
||||
var end = $("#customer-bargeldkasse-end-date-" + bargeldkassenOid).val();
|
||||
var start = $(`#customer-bargeldkasse-start-date-${bargeldkassenOid}`).val();
|
||||
var end = $(`#customer-bargeldkasse-end-date-${bargeldkassenOid}`).val();
|
||||
|
||||
$("#customer-bargeldkassen-report-popup").modal("show");
|
||||
|
||||
$("#customer-bargeldkassen-report-modal-body").load("@Url.Action("PrintBargeldkasse")", {kassenbuchOid: bargeldkassenOid, reportStartDate: start, reportEndDate: end}, function () {
|
||||
hideSpinner();
|
||||
});
|
||||
$("#customer-report-popup-container").load("@Url.Action("PrintBargeldkasse")",
|
||||
{
|
||||
kassenbuchOid: bargeldkassenOid,
|
||||
reportStartDate: start,
|
||||
reportEndDate: end
|
||||
},
|
||||
function () {
|
||||
hideSpinner();
|
||||
|
||||
$("#customer-report-container").height($(window).height() * .8);
|
||||
$("#customer-report-popup").modal("show");
|
||||
}
|
||||
);
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
@@ -122,7 +129,130 @@
|
||||
|
||||
function deleteBargeldransaktion(transaktionsOid) {
|
||||
try {
|
||||
if(false === $.isNumeric(transaktionsOid)) {
|
||||
showErrorMessagePopup("Es ist ein Fehler beim Löschen einer Transaktion gekommen. Bitte wenden Sie sich an Ihren Administrator");
|
||||
}
|
||||
|
||||
showMessagePopupWithCallback("Transaktion löschen",
|
||||
"Möchten Sie den Eintrag wirklich löschen?",
|
||||
function () {
|
||||
showSpinner();
|
||||
$("#bargeldkassen-container").load("@Url.Action("DeleteBargeldtransaktion")",
|
||||
{
|
||||
bargeldtransaktionsOid: transaktionsOid
|
||||
},
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
},
|
||||
false);
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function signZahlungsbeleg(transaktionsOid) {
|
||||
try {
|
||||
$("#customer-container").hide();
|
||||
$("#transaktionsunterschriftencontainer").addClass("d-block");
|
||||
$("#transaktionsunterschriftencontainer").removeClass("d-none");
|
||||
|
||||
resizeCanvas("#transaktionsunterschriftencanvas", "#transaktionsunterschriften-canvas-row");
|
||||
|
||||
var canvas = document.getElementById("transaktionsunterschriftencanvas");
|
||||
|
||||
var signaturePad = new SignaturePad(canvas, { backgroundColor: "rgba(255, 255, 255, 0)" });
|
||||
|
||||
var cancelButton = document.getElementById("transaktionsunterschriften-cancel-btn");
|
||||
var saveButton = document.getElementById("transaktionsunterschriften-save-btn");
|
||||
var clearButton = document.getElementById("transaktionsunterschriften-clear-canvas-btn");
|
||||
|
||||
cancelButton.addEventListener("click",
|
||||
function () {
|
||||
var canvas = document.getElementById("transaktionsunterschriftencanvas");
|
||||
var width = canvas.getBoundingClientRect().width;
|
||||
var height = canvas.getBoundingClientRect().height;
|
||||
|
||||
if(width === 0 || height === 0 || signaturePad.isEmpty()) {
|
||||
logInfo("width oder height sind 0 oder das SignaturePad ist leer");
|
||||
|
||||
$("#customer-container").show();
|
||||
$("#transaktionsunterschriftencontainer").removeClass("d-block");
|
||||
$("#transaktionsunterschriftencontainer").addClass("d-none");
|
||||
|
||||
signaturePad.clear();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
showMessagePopupWithCallback("Unterschrift",
|
||||
"Sind Sie sicher, dass Sie die Unterschrift nicht speichern möchten?",
|
||||
function () {
|
||||
$("#customer-container").show();
|
||||
$("#transaktionsunterschriftencontainer").removeClass("d-block");
|
||||
$("#transaktionsunterschriftencontainer").addClass("d-none");
|
||||
|
||||
signaturePad.clear();
|
||||
},
|
||||
false);
|
||||
});
|
||||
|
||||
saveButton.addEventListener("click",
|
||||
function () {
|
||||
var canvas = document.getElementById("transaktionsunterschriftencanvas");
|
||||
var clonedCanvas = cloneCanvas(canvas);
|
||||
var trimmedCanvas = trimCanvas(clonedCanvas);
|
||||
|
||||
var context = trimmedCanvas.getContext("2d", {willReadFrequently: true});
|
||||
context.globalCompositeOperation = "destination-over";
|
||||
context.fillStyle = "white";
|
||||
context.fillRect(0, 0, trimmedCanvas.width, trimmedCanvas.height);
|
||||
|
||||
var dataUrl = trimmedCanvas.toDataURL("image/png");
|
||||
|
||||
showSpinner();
|
||||
|
||||
$("#bargeldkassen-container").load("@Url.Action("SaveTransaktionsunterschrift")",
|
||||
{
|
||||
transaktionsOid: transaktionsOid,
|
||||
signatureAsBase64: dataUrl
|
||||
},
|
||||
function () {
|
||||
$("#transaktionsunterschriftencontainer").removeClass("d-block");
|
||||
$("#transaktionsunterschriftencontainer").addClass("d-none");
|
||||
$("#customer-container").show();
|
||||
|
||||
hideSpinner();
|
||||
});
|
||||
});
|
||||
|
||||
clearButton.addEventListener("click",
|
||||
function () {
|
||||
signaturePad.clear();
|
||||
});
|
||||
} catch(error) {
|
||||
$("#transaktionsunterschriftencontainer").removeClass("d-block");
|
||||
$("#transaktionsunterschriftencontainer").addClass("d-none");
|
||||
$("#customer-container").show();
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function deleteZahlungsbelegsunterschrift(transaktionsOid) {
|
||||
try {
|
||||
showMessagePopupWithCallback("Transaktionsunterschrift löschen",
|
||||
"message",
|
||||
function () {
|
||||
showSpinner();
|
||||
$("#bargeldkassen-container").load("@Url.Action("DeleteTransactionSignature")",
|
||||
{
|
||||
transactionOid: transaktionsOid
|
||||
},
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
},
|
||||
false);
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
@@ -130,16 +260,87 @@
|
||||
|
||||
function downloadZahlungsbeleg(transaktionsOid) {
|
||||
try {
|
||||
showSpinner();
|
||||
$("#customer-report-popup-container").load("@Url.Action("DownloadZahlungsbeleg")",
|
||||
{
|
||||
transaktionsOid: transaktionsOid
|
||||
},
|
||||
function () {
|
||||
hideSpinner();
|
||||
|
||||
$("#customer-report-container").height($(window).height() * .8);
|
||||
$("#customer-report-popup").modal("show");
|
||||
}
|
||||
);
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function editBargeldtransaktion(bargeldkassenOid, transaktionsOid) {
|
||||
try {
|
||||
showSpinner();
|
||||
|
||||
$("#customer-bargeldkassentransaktion-modal-body").load("@Url.Action("LoadBargeldtransaktionsEditForm")", { transaktionsOid: transaktionsOid }, function () {
|
||||
hideSpinner();
|
||||
$("#customer-bargeldtransaktions-form-popup").modal("show");
|
||||
calcBargeldtransaktionsFormPrependWidth();
|
||||
});
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function addNewBargeldtransaktion(bargeldkassenOid) {
|
||||
try {
|
||||
showSpinner();
|
||||
$("#customer-bargeldkassentransaktion-modal-body").load("@Url.Action("LoadBargeldtransaktionsForm")", {bargeldkassenOid: bargeldkassenOid}, function() {
|
||||
hideSpinner();
|
||||
$("#customer-bargeldtransaktions-form-popup").modal("show");
|
||||
calcBargeldtransaktionsFormPrependWidth();
|
||||
});
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function showBargeldtransaktionshistorie(transaktionsOid) {
|
||||
try {
|
||||
showSpinner();
|
||||
|
||||
$("#customer-bargeldtransaktionshistorien-body").load("@Url.Action("LoadHistoryEntries")",
|
||||
{transactionOid: transaktionsOid},
|
||||
function () {
|
||||
hideSpinner();
|
||||
$("#customer-bargeldtransaktionshistorienpopup").modal("show");
|
||||
}
|
||||
);
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function closeTransactionHistoryPopup() {
|
||||
try {
|
||||
$.get("@Url.Action("ClearHistoryEntries")").success(function() {
|
||||
$("#customer-bargeldtransaktionshistorienpopup").modal("hide");
|
||||
});
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@if(TempData["CustomerBargeldkassenErrorMessage"] != null)
|
||||
{
|
||||
<div class="alert alert-danger" role="alert">
|
||||
@TempData["CustomerBargeldkassenErrorMessage"]
|
||||
</div>
|
||||
}
|
||||
|
||||
<div class="row mx-0 px-0">
|
||||
<div class="col-sm-12">
|
||||
<button type="button" class="btn btn-primary w-100 mb-3" onclick="addNewBargeldkasse()">Neue Kasse hinzufügen</button>
|
||||
<div class="col-sm-12 p-0">
|
||||
<button type="button" class="btn btn-primary w-100 mb-3 mx-0 px-0" onclick="addNewBargeldkasse()">Neue Kasse hinzufügen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -151,14 +352,16 @@
|
||||
<div class="card h-100">
|
||||
<div class="card-header" onclick="cardHeaderClick2(this, calculateDateInputWidth)">
|
||||
<div class="d-inline-flex">
|
||||
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header chevron-identifier-class"></i>
|
||||
<i class="fas fa-chevron-down text-bewo-customer-card-header h-100"></i>
|
||||
</div>
|
||||
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
|
||||
<p>@bargeldkasse.Kassenname</p>
|
||||
<button type="button" class="btn btn-lihnk text-bewo-customer-card-header" >
|
||||
@bargeldkasse.Kassenname
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<div class="card-body">
|
||||
<div class="card-body p-1">
|
||||
@{
|
||||
|
||||
var anfangsbestand = bargeldkasse.Anfangsbestand?.ToString("0.00 €") ?? "0,00 €";
|
||||
@@ -175,7 +378,7 @@
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="btn-group w-100" role="gorup">
|
||||
<button class="btn btn-outline-primary" title="Transaktion hinzufügen" type="button" modal="#customer-bargeldtransaktions-form-popup">
|
||||
<button class="btn btn-outline-primary" title="Transaktion hinzufügen" type="button" modal="#customer-bargeldtransaktions-form-popup" onclick="addNewBargeldtransaktion(@bargeldkasse.BargeldkassenOid)">
|
||||
<i class="fas fa-plus"></i>
|
||||
Transaktion
|
||||
</button>
|
||||
@@ -196,7 +399,7 @@
|
||||
<div class="form-row mt-2">
|
||||
<div class="col">
|
||||
<div class="form-group mb-0">
|
||||
<div class="input-group date ownSoft-date-picker" id="customer-bargeldkasse-start-date-picker" data-target-input="nearest">
|
||||
<div class="input-group date ownSoft-date-picker" id="customer-bargeldkasse-start-date-picker-@bargeldkasse.BargeldkassenOid" data-target-input="nearest">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text customer-bargeldkassen-date-prepend">
|
||||
Startdatum
|
||||
@@ -225,7 +428,12 @@
|
||||
Enddatum
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" value="@endDate" id="customer-bargeldkasse-end-date-@bargeldkasse.BargeldkassenOid" name="customer-bargeldkasse-end-date" class="form-control datetimepicker-input" data-target="#customer-absence-time-end-date-picker" data-toggle="datetimepicker" />
|
||||
<input type="text" value="@endDate"
|
||||
id="customer-bargeldkasse-end-date-@bargeldkasse.BargeldkassenOid"
|
||||
name="customer-bargeldkasse-end-date"
|
||||
class="form-control datetimepicker-input"
|
||||
data-target="#customer-bargeldkasse-end-date-picker-@bargeldkasse.BargeldkassenOid"
|
||||
data-toggle="datetimepicker" />
|
||||
<div class="input-group-append" data-target="#customer-bargeldkasse-end-date-picker-@bargeldkasse.BargeldkassenOid" data-toggle="datetimepicker">
|
||||
<div class="input-group-text px-2">
|
||||
<i class="fas fa-calendar-alt"></i>
|
||||
@@ -235,7 +443,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@*----- Stichtag -----*@
|
||||
<div class="form-row mt-1">
|
||||
<div class="col">
|
||||
<div class="form-group mb-1">
|
||||
@@ -245,7 +452,7 @@
|
||||
Stichtag
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" id="customer-bargeldkasse-stichtag-date-@bargeldkasse.BargeldkassenOid" name="customer-bargeldkasse-stichtag-date" class="form-control datetimepicker-input" data-target="#customer-absence-time-end-date-picker" data-toggle="datetimepicker" />
|
||||
<input type="text" id="customer-bargeldkasse-stichtag-date-@bargeldkasse.BargeldkassenOid" name="customer-bargeldkasse-stichtag-date" class="form-control datetimepicker-input" data-target="#customer-bargeldkasse-stichtag-date-picker-@bargeldkasse.BargeldkassenOid" data-toggle="datetimepicker" />
|
||||
<div class="input-group-append" data-target="#customer-bargeldkasse-stichtag-date-picker-@bargeldkasse.BargeldkassenOid" data-toggle="datetimepicker">
|
||||
<div class="input-group-text px-2">
|
||||
<i class="fas fa-calendar-alt"></i>
|
||||
@@ -255,9 +462,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="w-100">
|
||||
<table class="w-100">
|
||||
<tbody>
|
||||
<div class="w-100">
|
||||
@*----- Kassenbstand und Anfangsbestand -----*@
|
||||
<table class="w-100">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-secondary">
|
||||
Kassenbestand:
|
||||
@@ -274,23 +482,23 @@
|
||||
@anfangsbestand
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@* Liste mit den Ein- und Auszahlungen *@
|
||||
<div class="col mb-0 pb-0 mx-0 px-0">
|
||||
<div class="card h-100">
|
||||
<div class="card-header" onclick="cardHeaderClick2(this)">
|
||||
<div class="d-inline-flex">
|
||||
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header chevron-identifier-class"></i>
|
||||
</div>
|
||||
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
|
||||
<p>Ein- und Auszahlungen</p>
|
||||
</div>
|
||||
</tbody>
|
||||
</table>
|
||||
@* Liste mit den Ein- und Auszahlungen *@
|
||||
<div class="col mb-0 pb-0 mx-0 px-0">
|
||||
<div class="card h-100">
|
||||
<div class="card-header" onclick="cardHeaderClick2(this)">
|
||||
<div class="d-inline-flex">
|
||||
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header chevron-identifier-class"></i>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<div class="card-body">
|
||||
<table class="w-100 mx-0 px-0">
|
||||
<tbody>
|
||||
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
|
||||
<p>Ein- und Auszahlungen</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<div class="card-body">
|
||||
<table class="w-100 mx-0 px-0">
|
||||
<tbody>
|
||||
@{
|
||||
var count = 0;
|
||||
}
|
||||
@@ -300,9 +508,29 @@
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="btn-group w-100" role="gorup">
|
||||
@if(transaktion.SignatureOid is null)
|
||||
{
|
||||
<button class="btn btn-outline-primary" title="Zahlungsbeleg unterschreiben" type="button" onclick="signZahlungsbeleg(@transaktion.BargeldtransaktionOid)">
|
||||
<i class="fas fa-signature"></i>
|
||||
</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<button class="btn btn-outline-primary" title="Zahlungsbelegsunterschrift löschen" type="button" onclick="deleteZahlungsbelegsunterschrift(@transaktion.BargeldtransaktionOid)">
|
||||
<i class="fas fa-signature"></i>
|
||||
<i class="fas fa-arrow-right"></i>
|
||||
<i class="fas fa-trash-alt"></i>
|
||||
</button>
|
||||
}
|
||||
<button class="btn btn-outline-primary" title="Bargeldtransaktion bearbeiten" type="button" onclick="editBargeldtransaktion(@bargeldkasse.BargeldkassenOid, @transaktion.BargeldtransaktionOid)">
|
||||
<i class="fas fa-edit"></i>
|
||||
</button>
|
||||
<button class="btn btn-outline-primary" title="Zahlungsbeleg herunterladen" type="button" onclick="downloadZahlungsbeleg(@transaktion.BargeldtransaktionOid)">
|
||||
<i class="fas fa-file-download"></i>
|
||||
</button>
|
||||
<button class="btn btn-outline-primary" title="Änderungshistorie anzeigen" type="button" onclick="showBargeldtransaktionshistorie(@transaktion.BargeldtransaktionOid)">
|
||||
<i class="fas fa-history"></i>
|
||||
</button>
|
||||
<button class="btn btn-outline-danger" title="Bargeldtransaktion löschen" type="button" onclick="deleteBargeldransaktion(@transaktion.BargeldtransaktionOid)">
|
||||
<i class="fas fa-trash-alt"></i>
|
||||
</button>
|
||||
@@ -313,7 +541,7 @@
|
||||
<td class="text-secondary">
|
||||
Datum
|
||||
</td>
|
||||
<td class="text-primary float-right">
|
||||
<td class="float-right">
|
||||
@transaktion.Zahlungsdatum.Value.ToString("dd.MM.yyyy")
|
||||
</td>
|
||||
</tr>
|
||||
@@ -321,7 +549,7 @@
|
||||
<td class="text-secondary">
|
||||
Art
|
||||
</td>
|
||||
<td class="text-primary float-right">
|
||||
<td class="float-right">
|
||||
@transaktion.Zahlungstyp
|
||||
</td>
|
||||
</tr>
|
||||
@@ -329,7 +557,7 @@
|
||||
<td class="text-secondary">
|
||||
Betrag
|
||||
</td>
|
||||
<td class="text-primary float-right">
|
||||
<td class="float-right">
|
||||
@transaktion.Betrag.Value.ToString("0.00 €")
|
||||
</td>
|
||||
</tr>
|
||||
@@ -337,7 +565,7 @@
|
||||
<td class="text-secondary">
|
||||
Belegnummer
|
||||
</td>
|
||||
<td class="text-primary float-right">
|
||||
<td class="float-right">
|
||||
@transaktion.Belegnummer
|
||||
</td>
|
||||
</tr>
|
||||
@@ -345,7 +573,7 @@
|
||||
<td class="text-secondary">
|
||||
Angelegt von
|
||||
</td>
|
||||
<td class="text-primary float-right">
|
||||
<td class="float-right">
|
||||
@transaktion.InsUser
|
||||
</td>
|
||||
</tr>
|
||||
@@ -353,7 +581,7 @@
|
||||
<td class="text-secondary">
|
||||
Notiz
|
||||
</td>
|
||||
<td class="text-primary float-right">
|
||||
<td class="float-right">
|
||||
@transaktion.Notice
|
||||
</td>
|
||||
</tr>
|
||||
@@ -361,38 +589,32 @@
|
||||
{
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<hr/>
|
||||
<hr />
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
||||
count++;
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
count++;
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
|
||||
@using(Html.BeginForm("DeleteBargeldkasse", "Customer", FormMethod.Post, new {id = "bargeldkassendeleteform" }))
|
||||
@using(Html.BeginForm("DeleteBargeldkasse", "Customer", FormMethod.Post, new { id = "bargeldkassendeleteform" }))
|
||||
{
|
||||
<input type="hidden" id="bk-to-delete-oid"/>
|
||||
<input type="hidden" id="bk-to-delete-oid" />
|
||||
}
|
||||
|
||||
@*
|
||||
ToDo:
|
||||
2. Formularpopup für Transaktionen (Datum, Art, Betrag, Belegnummer, Notiz)
|
||||
|
||||
*@
|
||||
|
||||
@if(AbstractModel.HasRightToCreateCustomerBargeldkassen || AbstractModel.HasRightToEditCustomerBargeldkassen)
|
||||
{
|
||||
<div class="modal" tabindex="-1" role="dialog" id="customer-bargeldkassen-form-popup">
|
||||
@@ -405,7 +627,7 @@
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body" id="customer-bargeldkassen-modal-body">
|
||||
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-primary" type="button" onclick="submitCustomerBargeldkassenForm()">OK</button>
|
||||
@@ -425,28 +647,31 @@
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body" id="customer-bargeldkassentransaktion-modal-body">
|
||||
@Html.Partial("CustomerBargeldtransaktionenFormPartial", Model)
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-primary" type="button" onclick="submitCustomerBargeldtransaktionenForm()">OK</button>
|
||||
<button class="btn btn-secondary" type="button" data-dismiss="modal" onclick="clearCustomerBargeldtransaktionenForm()">Abbrechen</button>
|
||||
<button class="btn btn-primary" type="button" onclick="submitBargeldtransaktionsform()">OK</button>
|
||||
<button class="btn btn-secondary" type="button" data-dismiss="modal" onclick="clearCustomerBargeldtransaktionsForm()">Abbrechen</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div class="modal" tabindex="-1" role="dialog" id="customer-bargeldkassen-report-popup">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal" tabindex="-1" role="dialog" id="customer-bargeldtransaktionshistorienpopup">
|
||||
<div class="modal-dialog modal-dialog-scrollable" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="customer-bargeldkassen-report-popup-header"></h5>
|
||||
<button class="close" type="button" data-dismiss="modal" aria-label="close">
|
||||
<h5 class="modal-title" id="customer-bargeldtransaktionshistorienpopup-title">Änderungshistorie</h5>
|
||||
<button class="close" type="button" data-dismiss="modal" aria-label="close" onclick="closeTransactionHistoryPopup()">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body" id="customer-bargeldkassen-report-modal-body">
|
||||
@Html.Partial("BargeldkassenReportPartial", Model)
|
||||
<div class="modal-body" id="customer-bargeldtransaktionshistorien-body">
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-primary" type="button" onclick="closeTransactionHistoryPopup()">Schließen</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1 +1,270 @@
|
||||
|
||||
@using BeWoPlanerMobil.Models;
|
||||
|
||||
@model CustomerModel
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
$(".ownSoft-date-picker").datetimepicker({
|
||||
locale: "de",
|
||||
format: "L"
|
||||
});
|
||||
});
|
||||
|
||||
(function ($) {
|
||||
$.fn.inputFilter = function (inputFilter) {
|
||||
return this.on("input keydown keyup mouseup select mousedown contextmenu drop", function () {
|
||||
if(inputFilter(this.value)) {
|
||||
this.oldValue = this.value;
|
||||
this.oldSelectionStart = this.selectionStart;
|
||||
this.oldSelectionEnd = this.selectionEnd;
|
||||
} else if(this.hasOwnProperty("oldValue")) {
|
||||
this.value = this.oldValue;
|
||||
this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
|
||||
} else {
|
||||
this.value = "";
|
||||
}
|
||||
});
|
||||
}
|
||||
}(jQuery));
|
||||
|
||||
var initialBargeldtransaktionsFormPrependWidth = 0;
|
||||
function calcBargeldtransaktionsFormPrependWidth() {
|
||||
try {
|
||||
var maxWidth = getMaxWidth("customer-bargeldtransaktion-prepend");
|
||||
if(initialBargeldtransaktionsFormPrependWidth <= 0 && $.isNumeric(maxWidth)) {
|
||||
initialBargeldtransaktionsFormPrependWidth = maxWidth;
|
||||
}
|
||||
|
||||
if (initialBargeldtransaktionsFormPrependWidth <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
$(".customer-bargeldtransaktion-prepend").width(maxWidth);
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function setBargeldtransaktionsart() {
|
||||
try {
|
||||
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
setTransaktionsbetragsinputFilter();
|
||||
});
|
||||
|
||||
function setTransaktionsbetragsinputFilter() {
|
||||
$("#bargeldtransaktionsbetragsinput").inputFilter(function (value) {
|
||||
return /^-?\d*[.,]?\d*$/.test(value);
|
||||
});
|
||||
}
|
||||
|
||||
function clearCustomerBargeldtransaktionsForm() {
|
||||
try {
|
||||
$("#bargeldtransaktionsbetragsinput").val("");
|
||||
$("#bargeldtransaktionsnotizinput").val("");
|
||||
$("#bargeldtransaktionsbelegnummerinput").val("");
|
||||
|
||||
if($("#bargeldtransaktionsarten-select-input").length) {
|
||||
$("#bargeldtransaktionsarten-select-input select").val("0");
|
||||
}
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function submitBargeldtransaktionsform() {
|
||||
try {
|
||||
if(false === validateTransaktionsForm()) {
|
||||
return;
|
||||
}
|
||||
|
||||
showSpinner();
|
||||
|
||||
var rawDate = $("#customer-bargeldtransaktionsdatum-input").val();
|
||||
var rawArt = $("#bargeldtransaktionsarten-select-input").find(":selected").val();
|
||||
var rawBetrag = $("#bargeldtransaktionsbetragsinput").val().replace(",", ".");
|
||||
var belegnummer = $("#bargeldtransaktionsbelegnummerinput").val();
|
||||
var notice = $("#bargeldtransaktionsnotizinput").val();
|
||||
|
||||
$("#customer-bargeldtransaktions-form-popup").modal("hide");
|
||||
|
||||
$("#bargeldkassen-container").load("@Url.Action("CreateOrUpdateBargeldTransaktion2")",
|
||||
{
|
||||
rawDate: rawDate,
|
||||
rawArt: rawArt,
|
||||
rawBetrag: rawBetrag,
|
||||
belegnummer: belegnummer,
|
||||
notice: notice
|
||||
}, function () {
|
||||
hideSpinner();
|
||||
});
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function validateTransaktionsForm() {
|
||||
try {
|
||||
var formattedDate = ddMMyyyyToyyyyMMdd($("#customer-bargeldtransaktionsdatum-input").val());
|
||||
|
||||
var datum = moment(formattedDate);
|
||||
|
||||
var betrag = $("#bargeldtransaktionsbetragsinput").val().replace(",", ".");
|
||||
|
||||
var validationMessage = "";
|
||||
|
||||
if(datum.isValid() === false) {
|
||||
validationMessage += "Das gewählte Datum ist ungültig.<br />";
|
||||
}
|
||||
|
||||
if ($.isNumeric(betrag) === false || betrag <= 0) {
|
||||
validationMessage += "Der Betrag muss größer als 0,00 € sein.<br />";
|
||||
}
|
||||
|
||||
if (validationMessage.length > 0) {
|
||||
$("#validation-error-message-paragraph").html(validationMessage);
|
||||
$("#transaktionsform-validation-alert").removeClass("d-none");
|
||||
|
||||
return false;
|
||||
} else {
|
||||
$("#validation-error-message-paragraph").empty();
|
||||
$("#transaktionsform-validation-alert").addClass("d-none");;
|
||||
|
||||
return true;
|
||||
}
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@{
|
||||
var transaktionsdatum = string.Empty;
|
||||
var transaktionsbelegnummer = string.Empty;
|
||||
var transaktionsbetrag = 0m;
|
||||
var transaktionsnotiz = string.Empty;
|
||||
|
||||
var selectedBargeldtransaktion = Model.SelectedBargeldtransaktion;
|
||||
|
||||
if(selectedBargeldtransaktion != null)
|
||||
{
|
||||
if(selectedBargeldtransaktion.Zahlungsdatum.HasValue)
|
||||
{
|
||||
transaktionsdatum = selectedBargeldtransaktion.Zahlungsdatum.Value.ToString("dd.MM.yyyy");
|
||||
}
|
||||
|
||||
transaktionsbelegnummer = selectedBargeldtransaktion.Belegnummer;
|
||||
|
||||
transaktionsbetrag = selectedBargeldtransaktion.Betrag ?? 0m;
|
||||
|
||||
transaktionsnotiz = selectedBargeldtransaktion.Notice ?? string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
<div id="transaktionsform-validation-alert" class="alert alert-danger d-none" role="alert">
|
||||
<p id="validation-error-message-paragraph"></p>
|
||||
</div>
|
||||
|
||||
@* ----- Datum ----- *@
|
||||
<div class="form-row mt-2">
|
||||
<div class="col">
|
||||
<div class="form-group mb-1">
|
||||
<div class="input-group date ownSoft-date-picker" id="customer-bargeldtransaktionsdatum-picker" data-target-input="nearest">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text customer-bargeldtransaktion-prepend">
|
||||
Datum
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" value="@transaktionsdatum"
|
||||
id="customer-bargeldtransaktionsdatum-input"
|
||||
name="customer-bargeldtransaktionsdatum"
|
||||
class="form-control datetimepicker-input"
|
||||
onchange="validateTransaktionsForm()"
|
||||
data-target="#customer-bargeldtransaktionsdatum-picker"
|
||||
data-toggle="datetimepicker" />
|
||||
<div class="input-group-append" data-target="#customer-bargeldtransaktionsdatum-picker"
|
||||
data-toggle="datetimepicker">
|
||||
<div class="input-group-text px-2">
|
||||
<i class="fas fa-calendar-alt"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@*----- Art -----*@
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text customer-bargeldtransaktion-prepend">
|
||||
Art
|
||||
</div>
|
||||
</div>
|
||||
@Html.DropDownListFor(model => model.SelectedTransaktionsart, Model.Transaktionsarten, new { @class = "form-control", id = "bargeldtransaktionsarten-select-input", onchange = "setBargeldtransaktionsart()" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@*----- Betrag -----*@
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text customer-bargeldtransaktion-prepend">
|
||||
Betrag
|
||||
</div>
|
||||
</div>
|
||||
<input class="form-control"
|
||||
type="text"
|
||||
id="bargeldtransaktionsbetragsinput"
|
||||
value="@transaktionsbetrag.ToString("0.00")"
|
||||
onchange="validateTransaktionsForm()" />
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">€</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@*----- Belegnummer -----*@
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text customer-bargeldtransaktion-prepend">
|
||||
Belegnummer
|
||||
</div>
|
||||
</div>
|
||||
<input class="form-control" type="text" id="bargeldtransaktionsbelegnummerinput" value="@transaktionsbelegnummer" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@*----- Notiz -----*@
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text customer-bargeldtransaktion-prepend">
|
||||
Notiz
|
||||
</div>
|
||||
</div>
|
||||
<input class="form-control" type="text" id="bargeldtransaktionsnotizinput" value="@transaktionsnotiz" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,109 @@
|
||||
@model BeWoPlanerMobil.Models.CustomerModel
|
||||
|
||||
<table class="w-100 mx-0 px-0">
|
||||
<tbody>
|
||||
@{
|
||||
var count = 0;
|
||||
}
|
||||
|
||||
@foreach(var historyEntry in Model.BargeldtransaktionshistoryEntries)
|
||||
{
|
||||
var zahlungsdatum = historyEntry.Zahlungsdatum?.ToString("dd.MM.yyyy");
|
||||
var betrag = historyEntry.Betrag?.ToString("0.00 €") ?? "0,00 €";
|
||||
var editDate = historyEntry.InsertedOn?.ToString("dd.MM.yyyy HH:mm:ss");
|
||||
|
||||
<tr>
|
||||
<td class="text-secondary">
|
||||
Änderungsdatum
|
||||
</td>
|
||||
<td class="float-right">
|
||||
@editDate
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-secondary">
|
||||
Geändert von
|
||||
</td>
|
||||
<td class="float-right">
|
||||
@historyEntry.BargeldtransaktionUdpUser
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-secondary">
|
||||
Art der Änderung
|
||||
</td>
|
||||
<td class="float-right">
|
||||
@historyEntry.HistoryTypeString
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-secondary">
|
||||
Zahlungsdatum
|
||||
</td>
|
||||
<td class="float-right">
|
||||
@zahlungsdatum
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-secondary">
|
||||
Art
|
||||
</td>
|
||||
<td class="float-right">
|
||||
@historyEntry.Zahlungstyp
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-secondary">
|
||||
Betrag
|
||||
</td>
|
||||
<td class="float-right">
|
||||
@betrag
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-secondary">
|
||||
Belegnummer
|
||||
</td>
|
||||
<td class="float-right">
|
||||
@historyEntry.Belegnummer
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-secondary">
|
||||
Angelegt von
|
||||
</td>
|
||||
<td class="float-right">
|
||||
@historyEntry.BargeldtransaktionInsUser
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-secondary">
|
||||
Notiz
|
||||
</td>
|
||||
<td class="float-right">
|
||||
@historyEntry.Notice
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="text-secondary">
|
||||
Unterschrift
|
||||
</td>
|
||||
<td class="float-right">
|
||||
@historyEntry.SignatureStateString
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
if(count < Model.BargeldtransaktionshistoryEntries.Count - 1)
|
||||
{
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<hr />
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
||||
count++;
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
148
BeWoPlanerMobil/Views/Customer/CustomerMedListPartial.cshtml
Normal file
148
BeWoPlanerMobil/Views/Customer/CustomerMedListPartial.cshtml
Normal file
@@ -0,0 +1,148 @@
|
||||
@using BeWoPlanerMobil.Controllers
|
||||
@model BeWoPlanerMobil.Models.CustomerModel
|
||||
|
||||
<script type="text/javascript">
|
||||
function changeReportTypeSelection() {
|
||||
try {
|
||||
var selectedReportType = $("#report-type-select").find(":selected").val();
|
||||
var historyList = $("#med-list-history-list");
|
||||
$("#show-med-list-btn").prop("disabled", selectedReportType === "2");
|
||||
|
||||
if (selectedReportType !== "2") {
|
||||
historyList.hide();
|
||||
return;
|
||||
}
|
||||
|
||||
historyList.removeClass("d-none");
|
||||
historyList.show();
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function viewHistoryMedList(oid) {
|
||||
try {
|
||||
showSpinner();
|
||||
$("#med-list-oid-view").val(oid);
|
||||
$("#view-history-med-list").submit();
|
||||
|
||||
|
||||
$("#customer-report-popup-container").load("@Url.Action("ShowHistoricalMedList")",
|
||||
{
|
||||
medListOid: oid
|
||||
},
|
||||
function () {
|
||||
$("#customer-report-container").height($(window).height() * .8);
|
||||
$("#customer-report-popup").modal("show");
|
||||
hideSpinner();
|
||||
}
|
||||
);
|
||||
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function deleteHistoryMedList(oid, name) {
|
||||
try {
|
||||
showMessagePopupWithCallback("Löschen", `Sind Sie sicher, dass Sie die ${name} löschen wollen?`, function () {
|
||||
showSpinner();
|
||||
|
||||
$("#medikamentenlistencontainer").load("@Url.Action("DeleteHistoricalMedList")",
|
||||
{
|
||||
medListOid: oid
|
||||
},
|
||||
function () {
|
||||
hideSpinner();
|
||||
});
|
||||
});
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function closeReport() {
|
||||
try {
|
||||
$.get("@Url.Action("ResetReport")");
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function loadMedListReport() {
|
||||
try {
|
||||
showSpinner();
|
||||
|
||||
var selectedReportType = $("#report-type-select").find(":selected").val();
|
||||
|
||||
$("#customer-report-popup-container").load("@Url.Action("ShowMedList")",
|
||||
{
|
||||
reportType: selectedReportType
|
||||
},
|
||||
function () {
|
||||
$("#customer-report-container").height($(window).height() * .8);
|
||||
$("#customer-report-popup").modal("show");
|
||||
hideSpinner();
|
||||
});
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="container-fluid my-0 py-0">
|
||||
<div class="row">
|
||||
<div class="col-sm-6 col-lg-auto mb-3">
|
||||
@Html.DropDownListFor(m => m.SelectedReportType, Model.ReportTypeItems, new { @class = "custom-select", id = "report-type-select", onchange = "changeReportTypeSelection()" })
|
||||
</div>
|
||||
<div class="col-sm-6 col-lg-auto mb-3">
|
||||
@{
|
||||
var showReportBtnDisabledValue = Model.SelectedReportType == CustomerReportType.Historie ? "disabled" : string.Empty;
|
||||
}
|
||||
<button @showReportBtnDisabledValue class="btn btn-primary" type="button" onclick="loadMedListReport();" id="show-med-list-btn">Bericht anzeigen</button>
|
||||
</div>
|
||||
<div class="col-sm-12 col-lg">
|
||||
@if(!(Model.SelectedCustomer is null))
|
||||
{
|
||||
var displayValue = Model.SelectedReportType == CustomerReportType.Historie ? string.Empty : "d-none";
|
||||
|
||||
<table class="table @displayValue" id="med-list-history-list" style="table-layout: fixed !important;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="px-0">
|
||||
Liste
|
||||
</th>
|
||||
<th>
|
||||
Ersteller
|
||||
</th>
|
||||
<th class="px-0"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach(var list in Model.SelectedCustomer.Medikamentenverordnungslisten.Where(w => !w.Gueltig).OrderBy(x => x.ErstellDatum))
|
||||
{
|
||||
var listName = $"{(list.MedListType ? "Medikamentenverordnungsliste" : "Bedarfsmedikamentenverordnungsliste")} vom {list.ErstellDatum}";
|
||||
var name = $"{listName} von {list.Ersteller}";
|
||||
<tr>
|
||||
<td class="px-0">
|
||||
@listName
|
||||
</td>
|
||||
<td>
|
||||
@list.Ersteller
|
||||
</td>
|
||||
<td class="px-0" style="text-align: right;">
|
||||
<button type="button" class="btn btn-primary" onclick="viewHistoryMedList(@list.MedikamentenverordnungslistenOid)">
|
||||
<i class="far fa-eye"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-bewo-service-records" onclick="deleteHistoryMedList(@list.MedikamentenverordnungslistenOid, '@name')">
|
||||
<i class="fas fa-trash-alt"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,14 +1,42 @@
|
||||
@model BeWoPlanerMobil.Models.CustomerModel
|
||||
|
||||
@if(Model?.Report != null)
|
||||
{
|
||||
@Html.DevExpress().WebDocumentViewer(settings =>
|
||||
{
|
||||
settings.Name = "webDocumentViewer2";
|
||||
settings.Width = Unit.Percentage(100);
|
||||
settings.Height = Unit.Percentage(100);
|
||||
settings.MobileMode = true;
|
||||
settings.SettingsMobile.ReaderMode = true;
|
||||
settings.SettingsMobile.AnimationEnabled = false;
|
||||
}).Bind(Model.Report).GetHtml()
|
||||
}
|
||||
<script type="text/javascript">
|
||||
function customerReportViewerInit(s, e) {
|
||||
try {
|
||||
s.UpdateLocalization({
|
||||
'Page': 'Seite',
|
||||
'of': 'von'
|
||||
});
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="modal" data-backdrop="static" tabindex="-1" role="dialog" id="customer-report-popup">
|
||||
<div class="modal-dialog modal-xl modal-dialog-scrollable" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">@Model.ReportName</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" onclick="closeReport()">
|
||||
<span>×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body" id="customer-report-container">
|
||||
@if(Model?.Report != null)
|
||||
{
|
||||
@Html.DevExpress().WebDocumentViewer(settings =>
|
||||
{
|
||||
settings.Name = "customerReportViewer";
|
||||
settings.Width = Unit.Percentage(100);
|
||||
settings.Height = Unit.Percentage(100);
|
||||
settings.MobileMode = true;
|
||||
settings.SettingsMobile.ReaderMode = true;
|
||||
settings.SettingsMobile.AnimationEnabled = false;
|
||||
settings.ClientSideEvents.Init = "customerReportViewerInit";
|
||||
}).Bind(Model.Report).GetHtml()
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -3,31 +3,23 @@
|
||||
@model CustomerModel
|
||||
|
||||
<script>
|
||||
function folderCardHeaderClick(chevronId, collapseId) {
|
||||
$(collapseId).toggle();
|
||||
|
||||
toggleFolderChevron(chevronId, collapseId);
|
||||
}
|
||||
|
||||
function toggleFolderChevron(chevronId, collapseId) {
|
||||
var isDown = $(collapseId).css("display") !== "none";
|
||||
|
||||
var chevron = $(chevronId);
|
||||
var iconToRemove = isDown ? "fa-folder" : "fa-folder-open";
|
||||
var iconToAdd = isDown ? "fa-folder-open" : "fa-folder";
|
||||
|
||||
chevron.removeClass(iconToRemove);
|
||||
chevron.addClass(iconToAdd);
|
||||
function toggleFolderIcon(element) {
|
||||
try {
|
||||
$(element).find(".fa-folder,.fa-folder-open").toggleClass("fa-folder").toggleClass("fa-folder-open");
|
||||
$(element).next(".collapse").toggle();
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@helper BuildFolderTreeBranch(BeWoFolderDC folder)
|
||||
{
|
||||
<div class="card w-100 mb-3">
|
||||
<div class="card-header px-2" onclick="folderCardHeaderClick('#chevron-folder-@(folder.BeWoFolderOid ?? 0)', '#collapse-folder-@(folder.BeWoFolderOid ?? 0)')">
|
||||
<i class="fas fa-folder pr-1 text-primary" id="chevron-folder-@(folder.BeWoFolderOid ?? 0)"></i>@folder.Name
|
||||
<div class="card-header px-2" onclick="toggleFolderIcon(this)">
|
||||
<i class="fas fa-folder pr-1 text-primary"></i>@folder.Name
|
||||
</div>
|
||||
<div class="collapse" id="collapse-folder-@(folder.BeWoFolderOid ?? 0)">
|
||||
<div class="collapse">
|
||||
<div class="card-body px-2">
|
||||
@foreach(var file in folder.Files)
|
||||
{
|
||||
|
||||
@@ -38,8 +38,6 @@
|
||||
|
||||
var isLeaf = $(item).parent().prop("class").includes("goal-text");
|
||||
|
||||
// ToDo: Auch die Ziele beachten!
|
||||
|
||||
if(goalText.toLowerCase().includes(text)) {
|
||||
$.each($($(item).parents(".goal-card")), function(cardIndex, card) {
|
||||
$(card).show();
|
||||
@@ -113,14 +111,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
if(!goalTreeItem.IsLeaf) // Ziel
|
||||
if(!goalTreeItem.IsLeaf)
|
||||
{
|
||||
<div class="card w-100 mb-3 goal-card" id="c-@goalTreeItem.ValueListEntryOid">
|
||||
<div class="card-header px-2" onclick="cardHeaderClick('#goal-chevron-@goalTreeItem.ValueListEntryOid', '#collapsable-goal-tree-branch-@goalTreeItem.ValueListEntryOid')">
|
||||
<div class="clearfix">
|
||||
<div class="custom-control custom-checkbox goal-card-header float-left" onclick="stopToggle(event)" >
|
||||
<input type="checkbox" class="custom-control-input" value="@goalTreeItem.ValueListEntryOid" @isCheckedValue id="@goalTreeItem.ValueListEntryOid" onchange="updateSelectedGoals()" />
|
||||
<label class="custom-control-label" for="@goalTreeItem.ValueListEntryOid">@goalTreeItem.Header</label>
|
||||
<label class="custom-control-label goal-name-label" for="@goalTreeItem.ValueListEntryOid">@goalTreeItem.Header</label>
|
||||
@if(AbstractModel.HasRightToRateGoals)
|
||||
{
|
||||
<span id="goal-rating-@goalTreeItem.ValueListEntryOid" class="badge badge-bewo-goal-rating goal-rating-badge ml-1" onclick="showGoalRatingPopup(@goalTreeItem.ValueListEntryOid)">
|
||||
@@ -135,7 +133,7 @@
|
||||
</div>
|
||||
<div class="collapse" id="collapsable-goal-tree-branch-@goalTreeItem.ValueListEntryOid">
|
||||
<div class="card-body p-1 goal-list">
|
||||
@foreach(var child in goalTreeItem.Children)
|
||||
@foreach(var child in goalTreeItem.Children.OrderBy(child => child.Header))
|
||||
{
|
||||
@BuildGoalTreeBranch(child)
|
||||
}
|
||||
@@ -143,9 +141,11 @@
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else // Maßnahme
|
||||
else
|
||||
{
|
||||
<div class="custom-control custom-checkbox goal-text">
|
||||
var marginBottom = goalTreeItem.IsGoal ? "mb-3 mx-2" : "";
|
||||
|
||||
<div class="custom-control custom-checkbox goal-text @marginBottom">
|
||||
<input type="checkbox" class="custom-control-input" id="@goalTreeItem.ValueListEntryOid" @isCheckedValue onchange="updateSelectedGoals()">
|
||||
<label for="@goalTreeItem.ValueListEntryOid" class="custom-control-label goal-name-label">@goalTreeItem.Header</label>
|
||||
@if(AbstractModel.HasRightToRateGoals)
|
||||
@@ -158,7 +158,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@foreach(var branch in Model.GoalTree)
|
||||
@foreach(var branch in Model.GoalTree.OrderBy(goalTreeItem => goalTreeItem.Header))
|
||||
{
|
||||
@BuildGoalTreeBranch(branch)
|
||||
}
|
||||
@@ -838,8 +838,10 @@
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
<input type="hidden" id="has-any-rating-types" value="@Model?.HasAnyRatingTypes ?? False" />
|
||||
@{
|
||||
var hasRatingTypes = Model?.HasAnyRatingTypes ?? false;
|
||||
}
|
||||
<input type="hidden" id="has-any-rating-types" value="@hasRatingTypes" />
|
||||
|
||||
<!-- Passwort ändern Popup -->
|
||||
@using(Html.BeginForm("ChangePassword", "Main", FormMethod.Post, new { id = "change-password-form" }))
|
||||
|
||||
@@ -636,106 +636,106 @@
|
||||
}
|
||||
|
||||
<script>
|
||||
@{
|
||||
if(Model.SelectedSupportConcept != null || Model.CostBearer2SupportConceptOid == -2)
|
||||
{
|
||||
<text>
|
||||
try {
|
||||
initializeIntervalSelection();
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
</text>
|
||||
}
|
||||
}
|
||||
|
||||
function initializeIntervalSelection() {
|
||||
try {
|
||||
var selectedOption = $("#timeFrameSelect").val();
|
||||
|
||||
switch (selectedOption) {
|
||||
case "0":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "1":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "2":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "3":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "4":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "5":
|
||||
$("#last-x-interval-container").show();
|
||||
$("#custom-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "6":
|
||||
$("#custom-interval-container").show();
|
||||
$("#last-x-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "7":
|
||||
$("#month-interval-container").show();
|
||||
$("#last-x-interval-container, #custom-interval-container").hide();
|
||||
break;
|
||||
@{
|
||||
if(Model.SelectedSupportConcept != null || Model.CostBearer2SupportConceptOid == -2)
|
||||
{
|
||||
<text>
|
||||
try {
|
||||
initializeIntervalSelection();
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
</text>
|
||||
}
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function changeServiceRecordIntervalSelection(select) {
|
||||
var form = $("#selectServiceRecordForm");
|
||||
function initializeIntervalSelection() {
|
||||
try {
|
||||
var selectedOption = $("#timeFrameSelect").val();
|
||||
|
||||
try {
|
||||
var selectedOption = $(select).val();
|
||||
|
||||
showSpinner();
|
||||
|
||||
switch (selectedOption) {
|
||||
case "0":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
form.submit();
|
||||
break;
|
||||
case "1":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
form.submit();
|
||||
break;
|
||||
case "2":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
form.submit();
|
||||
break;
|
||||
case "3":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
form.submit();
|
||||
break;
|
||||
case "4":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
form.submit();
|
||||
break;
|
||||
case "5":
|
||||
$("#last-x-interval-container").show();
|
||||
$("#custom-interval-container, #month-interval-container").hide();
|
||||
hideSpinner();
|
||||
break;
|
||||
case "6":
|
||||
$("#custom-interval-container").show();
|
||||
$("#last-x-interval-container, #month-interval-container").hide();
|
||||
hideSpinner();
|
||||
break;
|
||||
case "7":
|
||||
$("#month-interval-container").show();
|
||||
$("#last-x-interval-container, #custom-interval-container").hide();
|
||||
hideSpinner();
|
||||
break;
|
||||
switch (selectedOption) {
|
||||
case "0":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "1":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "2":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "3":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "4":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "5":
|
||||
$("#last-x-interval-container").show();
|
||||
$("#custom-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "6":
|
||||
$("#custom-interval-container").show();
|
||||
$("#last-x-interval-container, #month-interval-container").hide();
|
||||
break;
|
||||
case "7":
|
||||
$("#month-interval-container").show();
|
||||
$("#last-x-interval-container, #custom-interval-container").hide();
|
||||
break;
|
||||
}
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function changeServiceRecordIntervalSelection(select) {
|
||||
var form = $("#selectServiceRecordForm");
|
||||
|
||||
try {
|
||||
var selectedOption = $(select).val();
|
||||
|
||||
showSpinner();
|
||||
|
||||
switch (selectedOption) {
|
||||
case "0":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
form.submit();
|
||||
break;
|
||||
case "1":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
form.submit();
|
||||
break;
|
||||
case "2":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
form.submit();
|
||||
break;
|
||||
case "3":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
form.submit();
|
||||
break;
|
||||
case "4":
|
||||
$("#last-x-interval-container, #custom-interval-container, #month-interval-container").hide();
|
||||
form.submit();
|
||||
break;
|
||||
case "5":
|
||||
$("#last-x-interval-container").show();
|
||||
$("#custom-interval-container, #month-interval-container").hide();
|
||||
hideSpinner();
|
||||
break;
|
||||
case "6":
|
||||
$("#custom-interval-container").show();
|
||||
$("#last-x-interval-container, #month-interval-container").hide();
|
||||
hideSpinner();
|
||||
break;
|
||||
case "7":
|
||||
$("#month-interval-container").show();
|
||||
$("#last-x-interval-container, #custom-interval-container").hide();
|
||||
hideSpinner();
|
||||
break;
|
||||
}
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="container-fluid mt-3" id="service-record-list-container">
|
||||
|
||||
@@ -545,6 +545,7 @@
|
||||
}
|
||||
|
||||
previousWidth = val;
|
||||
$("#size-info-span").text(val);
|
||||
}
|
||||
|
||||
function widthToBootstrapVal(width) {
|
||||
@@ -649,7 +650,7 @@
|
||||
<a href="#" class="navbar-brand">
|
||||
@Model.LoggedInEmplyeeFirstNameLastName
|
||||
</a>
|
||||
|
||||
|
||||
<span class="d-inline-block" data-toggle="tooltip" title="Zeit bis zur automatischen Abmeldung" id="countdown-tooltip">
|
||||
<span class="navbar-text" id="countdown" onclick="countdownClick()"></span>
|
||||
</span>
|
||||
@@ -660,18 +661,20 @@
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||
<ul class="navbar-nav ml-auto">
|
||||
@*@if(Html.IsInDebugMode())
|
||||
{
|
||||
using(Html.BeginForm("RedirectToDevExpressScheduler", "Main", FormMethod.Post))
|
||||
{
|
||||
<li class="nav-item">
|
||||
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
|
||||
<i class="fas fa-hand-middle-finger"></i>
|
||||
Scheduler
|
||||
</button>
|
||||
</li>
|
||||
}
|
||||
}*@
|
||||
@*
|
||||
@if(Html.IsInDebugMode())
|
||||
{
|
||||
using(Html.BeginForm("RedirectToDevExpressScheduler", "Main", FormMethod.Post))
|
||||
{
|
||||
<li class="nav-item">
|
||||
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
|
||||
<i class="fas fa-hand-middle-finger"></i>
|
||||
Scheduler
|
||||
</button>
|
||||
</li>
|
||||
}
|
||||
}
|
||||
*@
|
||||
|
||||
@if(AbstractModel.IsAllowedToSeeCustomers)
|
||||
{
|
||||
@@ -751,25 +754,6 @@
|
||||
Passwort ändern
|
||||
</button>
|
||||
</li>
|
||||
|
||||
@if(Html.IsInDebugMode())
|
||||
{
|
||||
<script type="text/javascript">
|
||||
function showDownlink() {
|
||||
try {
|
||||
showMessagePopupWithHtml("Downlink", `Der Downlink beträgt laut Browser ${navigator.connection.downlink} mbps`);
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<li class="nav-item">
|
||||
<button class="btn btn-link text-light no-underline" onclick="showDownlink()">
|
||||
<i class="fas fa-tachometer-alt"></i>
|
||||
Downlink anzeigen
|
||||
</button>
|
||||
</li>
|
||||
}
|
||||
|
||||
<li class="nav-item">
|
||||
@using(Html.BeginForm("Logout", "Main", FormMethod.Post))
|
||||
|
||||
@@ -5712,17 +5712,6 @@ namespace BeWo.Data.Access
|
||||
}
|
||||
|
||||
#region MoK-Zeiterfassungspagination
|
||||
// ToDo: Sortierung ins Criteria nehmen!
|
||||
/*
|
||||
*.OrderBy(serviceRecord => serviceRecord.Start.Value.Date)
|
||||
.ThenBy(serviceRecord => serviceRecord.Start.Value.Hour)
|
||||
.ThenBy(serviceRecord => serviceRecord.Start.Value.Minute)
|
||||
.ThenBy(serviceRecord => serviceRecord.End.Value.Date)
|
||||
.ThenBy(serviceRecord => serviceRecord.End.Value.Hour)
|
||||
.ThenBy(serviceRecord => serviceRecord.End.Value.Minute)
|
||||
.ThenByDescending(serviceRecord => serviceRecord.InsertedOn.Value)
|
||||
*
|
||||
*/
|
||||
public IEnumerable<ServiceRecord> FindServiceRecordsForDaysPaginated(long? costBearer2SupportConceptOid, int dayCount, long? employeeOid, int firstResult, int maxResults, out int rowCount)
|
||||
{
|
||||
var minStart = DateTime.Now.GetShortDateTime().AddDays(-dayCount);
|
||||
@@ -5841,5 +5830,31 @@ namespace BeWo.Data.Access
|
||||
return criteria.SetFirstResult(firstResult).SetMaxResults(maxResults).Future<ServiceRecord>();
|
||||
}
|
||||
#endregion
|
||||
|
||||
public Signature LoadSignatureByTransaktionsOid(long transaktionsOid)
|
||||
{
|
||||
var criteria = CreateCriteriaIsActive<Signature>()
|
||||
.Add(Restrictions.Eq(nameof(Signature.BargeldtransaktionsOid), transaktionsOid));
|
||||
|
||||
return criteria.List<Signature>().FirstOrDefault();
|
||||
}
|
||||
|
||||
public List<Bargeldtransaktionshistory> LoadBargeldtransaktionshistoryEntries(long transaktionsOid)
|
||||
{
|
||||
var criteria = CreateCriteria<Bargeldtransaktionshistory>()
|
||||
.Add(Restrictions.Eq(nameof(Bargeldtransaktionshistory.BargeldtransaktionOid), transaktionsOid));
|
||||
|
||||
return criteria.List<Bargeldtransaktionshistory>().ToList();
|
||||
}
|
||||
|
||||
public Bargeldtransaktionshistory FindMostRecentBargeldtransaktionshistoryEntryByBargeldtransaktionOid(long transactionOid)
|
||||
{
|
||||
var criteria = CreateCriteria<Bargeldtransaktionshistory>()
|
||||
.Add(Restrictions.Eq(nameof(Bargeldtransaktionshistory.BargeldtransaktionOid), transactionOid))
|
||||
.AddOrder(Order.Desc(nameof(Bargeldtransaktionshistory.InsTs)))
|
||||
.SetMaxResults(1);
|
||||
|
||||
return criteria.List<Bargeldtransaktionshistory>().FirstOrDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,9 +77,11 @@
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Data.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Data.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Mvvm.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.Xpo.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraScheduler.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="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
|
||||
@@ -199,6 +201,7 @@
|
||||
<Compile Include="DefaultHibernateSessionManager.cs" />
|
||||
<Compile Include="Entities\AbwesenheitsInformationPrint.cs" />
|
||||
<Compile Include="Entities\AddressHistory.cs" />
|
||||
<Compile Include="Entities\Bargeldtransaktionshistory.cs" />
|
||||
<Compile Include="Entities\ErrorMessage.cs" />
|
||||
<Compile Include="Entities\AddressRoute.cs" />
|
||||
<Compile Include="Entities\ConfirmationReceiptSignature.cs" />
|
||||
@@ -373,6 +376,7 @@
|
||||
<Compile Include="ICD10\ICD10DAO.cs" />
|
||||
<Compile Include="ICF\ICFDAO.cs" />
|
||||
<Compile Include="LoggedInUserOperationContextExt.cs" />
|
||||
<EmbeddedResource Include="Mappings\Bargeldtransaktionshistory.hbm.xml" />
|
||||
<Compile Include="MultitenancyOperationContextExt.cs" />
|
||||
<Compile Include="Security\BCrypt.cs" />
|
||||
<Compile Include="Security\UserRightHelper.cs" />
|
||||
|
||||
@@ -5,14 +5,13 @@ namespace BeWo.Data.Entities
|
||||
{
|
||||
public class Bargeldtransaktion : BeWoEntityBase
|
||||
{
|
||||
public static String PropertyName_Zahlungstyp = "Zahlungstyp";
|
||||
|
||||
public static String PropertyName_Betrag = "Betrag";
|
||||
public static string PropertyName_Zahlungstyp = "Zahlungstyp";
|
||||
|
||||
public static string PropertyName_Betrag = "Betrag";
|
||||
|
||||
public static String PropertyName_Zahlungsdatum = "Zahlungsdatum";
|
||||
public static string PropertyName_Zahlungsdatum = "Zahlungsdatum";
|
||||
|
||||
public static String PropertyName_Transaktionskassenbestand = "Transaktionskassenbestand";
|
||||
public static string PropertyName_Transaktionskassenbestand = "Transaktionskassenbestand";
|
||||
|
||||
public Bargeldtransaktion()
|
||||
{
|
||||
@@ -23,20 +22,16 @@ namespace BeWo.Data.Entities
|
||||
|
||||
private decimal? _Betrag;
|
||||
|
||||
//private Customer _Customer;
|
||||
|
||||
private DateTime? _Zahlungsdatum;
|
||||
|
||||
private decimal? _Transaktionskassenbestand;
|
||||
|
||||
private long? _SignatureOid;
|
||||
|
||||
public virtual Zahlungstyp Zahlungstyp
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Zahlungstyp;
|
||||
}
|
||||
|
||||
set
|
||||
get => _Zahlungstyp;
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Zahlungstyp, value))
|
||||
{
|
||||
@@ -47,12 +42,8 @@ namespace BeWo.Data.Entities
|
||||
|
||||
public virtual decimal? Betrag
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Betrag;
|
||||
}
|
||||
|
||||
set
|
||||
get => _Betrag;
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Betrag, value))
|
||||
{
|
||||
@@ -61,20 +52,10 @@ namespace BeWo.Data.Entities
|
||||
}
|
||||
}
|
||||
|
||||
//public virtual Customer Customer
|
||||
//{
|
||||
// get { return _Customer; }
|
||||
// set
|
||||
// {
|
||||
// if (AreDifferent(_Customer, value))
|
||||
// _Customer = value;
|
||||
// }
|
||||
//}
|
||||
|
||||
public virtual DateTime? Zahlungsdatum
|
||||
{
|
||||
get { return _Zahlungsdatum; }
|
||||
set
|
||||
get => _Zahlungsdatum;
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Zahlungsdatum, value))
|
||||
{
|
||||
@@ -85,12 +66,8 @@ namespace BeWo.Data.Entities
|
||||
|
||||
public virtual decimal? Transaktionskassenbestand
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Transaktionskassenbestand;
|
||||
}
|
||||
|
||||
set
|
||||
get => _Transaktionskassenbestand;
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Transaktionskassenbestand, value))
|
||||
{
|
||||
@@ -99,6 +76,41 @@ namespace BeWo.Data.Entities
|
||||
}
|
||||
}
|
||||
|
||||
public virtual String Belegnummer { get; set; }
|
||||
}
|
||||
public virtual string Belegnummer { get; set; }
|
||||
|
||||
public virtual long? SignatureOid
|
||||
{
|
||||
get => _SignatureOid;
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_SignatureOid, value))
|
||||
{
|
||||
_SignatureOid = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if(obj is Bargeldtransaktion transaction)
|
||||
{
|
||||
return Oid.Equals(transaction.Oid) &&
|
||||
Version.Equals(transaction.Version) &&
|
||||
InsTs.Equals(transaction.InsTs) &&
|
||||
Equals(InsUser, transaction.InsUser) &&
|
||||
Equals(UpdTs, transaction.UpdTs) &&
|
||||
Equals(UdpUser, transaction.UdpUser) &&
|
||||
Equals(Notice, transaction.Notice) &&
|
||||
IsActive.Equals(transaction.IsActive) &&
|
||||
Equals(Betrag, transaction.Betrag) &&
|
||||
Equals(Belegnummer, transaction.Belegnummer) &&
|
||||
Zahlungstyp.Equals(transaction.Zahlungstyp) &&
|
||||
Equals(Zahlungsdatum, transaction.Zahlungsdatum) &&
|
||||
Equals(SignatureOid, transaction.SignatureOid) &&
|
||||
Equals(Transaktionskassenbestand, transaction.Transaktionskassenbestand);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
196
Data/Entities/Bargeldtransaktionshistory.cs
Normal file
196
Data/Entities/Bargeldtransaktionshistory.cs
Normal file
@@ -0,0 +1,196 @@
|
||||
using System;
|
||||
using BS.Shared;
|
||||
|
||||
namespace BeWo.Data.Entities
|
||||
{
|
||||
public class Bargeldtransaktionshistory : BeWoEntityBase
|
||||
{
|
||||
public Bargeldtransaktionshistory()
|
||||
{
|
||||
_Tid = TableID.Bargeldtransaktionshistory;
|
||||
}
|
||||
|
||||
private long? _BargeldtransaktionOid;
|
||||
private Zahlungstyp _Zahlungstyp;
|
||||
private DateTime? _Zahlungsdatum;
|
||||
private decimal? _Transaktionskassenbestand;
|
||||
private decimal? _Betrag;
|
||||
private string _Belegnummer;
|
||||
private SignatureStateType _SignatureState;
|
||||
private long? _SignatureOid;
|
||||
private StatementType _ChangeType;
|
||||
private DateTime? _BargeldtransaktionInsTs;
|
||||
private long? _BargeldtransaktionVersion;
|
||||
private string _BargeldtransaktionInsUser;
|
||||
private string _BargeldtransaktionUdpUser;
|
||||
|
||||
public virtual long? BargeldtransaktionOid
|
||||
{
|
||||
get => _BargeldtransaktionOid;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_BargeldtransaktionOid, value))
|
||||
{
|
||||
_BargeldtransaktionOid = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual Zahlungstyp Zahlungstyp
|
||||
{
|
||||
get => _Zahlungstyp;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_Zahlungstyp, value))
|
||||
{
|
||||
_Zahlungstyp = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual DateTime? Zahlungsdatum
|
||||
{
|
||||
get => _Zahlungsdatum;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_Zahlungsdatum, value))
|
||||
{
|
||||
_Zahlungsdatum = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual decimal? Transaktionskassenbestand
|
||||
{
|
||||
get => _Transaktionskassenbestand;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_Transaktionskassenbestand, value))
|
||||
{
|
||||
_Transaktionskassenbestand = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual decimal? Betrag
|
||||
{
|
||||
get => _Betrag;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_Betrag, value))
|
||||
{
|
||||
_Betrag = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual string Belegnummer
|
||||
{
|
||||
get => _Belegnummer;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_Belegnummer, value))
|
||||
{
|
||||
_Belegnummer = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual SignatureStateType SignatureState
|
||||
{
|
||||
get => _SignatureState;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_SignatureState, value))
|
||||
{
|
||||
_SignatureState = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual long? SignatureOid
|
||||
{
|
||||
get => _SignatureOid;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_SignatureOid, value))
|
||||
{
|
||||
_SignatureOid = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual StatementType ChangeType
|
||||
{
|
||||
get => _ChangeType;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_ChangeType, value))
|
||||
{
|
||||
_ChangeType = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual DateTime? BargeldtransaktionInsTs
|
||||
{
|
||||
get => _BargeldtransaktionInsTs;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_BargeldtransaktionInsTs, value))
|
||||
{
|
||||
_BargeldtransaktionInsTs = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual long? BargeldtransaktionVersion
|
||||
{
|
||||
get => _BargeldtransaktionVersion;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_BargeldtransaktionVersion, value))
|
||||
{
|
||||
_BargeldtransaktionVersion = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual string BargeldtransaktionInsUser
|
||||
{
|
||||
get => _BargeldtransaktionInsUser;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_BargeldtransaktionInsUser, value))
|
||||
{
|
||||
_BargeldtransaktionInsUser = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual string BargeldtransaktionUdpUser
|
||||
{
|
||||
get => _BargeldtransaktionUdpUser;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_BargeldtransaktionUdpUser, value))
|
||||
{
|
||||
_BargeldtransaktionUdpUser = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,8 @@ namespace BeWo.Data.Entities
|
||||
|
||||
private long? _ServiceRecordOid;
|
||||
|
||||
private long? _BargeldtransaktionsOid;
|
||||
|
||||
|
||||
public virtual string DataBild
|
||||
{
|
||||
@@ -105,5 +107,17 @@ namespace BeWo.Data.Entities
|
||||
}
|
||||
}
|
||||
|
||||
public virtual long? BargeldtransaktionsOid
|
||||
{
|
||||
get => _BargeldtransaktionsOid;
|
||||
|
||||
set
|
||||
{
|
||||
if(AreDifferent(_BargeldtransaktionsOid, value))
|
||||
{
|
||||
_BargeldtransaktionsOid = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,7 @@
|
||||
<property column="Transaktionskassenbestand" type="Decimal" name="Transaktionskassenbestand" />
|
||||
<property column="Zahlungstyp" type="BS.Shared.Zahlungstyp, BS.Shared" name="Zahlungstyp" />
|
||||
<property column="Zahlungsdatum" type="DateTime" name="Zahlungsdatum" />
|
||||
<property column="SignatureOid" type="Int64" name="SignatureOid" />
|
||||
<!--<many-to-one name="Customer" column="CustomerOid" class="BeWo.Data.Entities.Customer, BeWo.Data" />-->
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
29
Data/Mappings/Bargeldtransaktionshistory.hbm.xml
Normal file
29
Data/Mappings/Bargeldtransaktionshistory.hbm.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
|
||||
<class name="BeWo.Data.Entities.Bargeldtransaktionshistory, BeWo.Data" table="Bargeldtransaktionshistory">
|
||||
<id name="Oid" column="Oid" type="Int64" unsaved-value="null">
|
||||
<generator class="identity" />
|
||||
</id>
|
||||
<version type="Int64" column="Version" name="Version" />
|
||||
<property column="Tid" type="BS.Shared.TableID, BS.Shared" name="_Tid" access="field" />
|
||||
<property column="Notice" type="String" name="Notice" length="1024" />
|
||||
<property column="InsTs" type="DateTime" name="InsTs" />
|
||||
<property column="InsUser" type="String" name="InsUser" length="256" />
|
||||
<property column="UdpUser" type="String" name="UdpUser" length="256" />
|
||||
<property column="IsActive" type="BS.Shared.ActivationTypeId, BS.Shared" name="IsActive" />
|
||||
<property column="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" name="SystemEntryID" />
|
||||
<property column="Belegnummer" type="String" name="Belegnummer" />
|
||||
<property column="Betrag" type="Decimal" name="Betrag" />
|
||||
<property column="Transaktionskassenbestand" type="Decimal" name="Transaktionskassenbestand" />
|
||||
<property column="Zahlungstyp" type="BS.Shared.Zahlungstyp, BS.Shared" name="Zahlungstyp" />
|
||||
<property column="Zahlungsdatum" type="DateTime" name="Zahlungsdatum" />
|
||||
<property column="SignatureOid" type="Int64" name="SignatureOid" />
|
||||
<property column="ChangeType" type="BS.Shared.StatementType, BS.Shared" name="ChangeType" />
|
||||
<property column="BargeldtransaktionOid" type="Int64" name="BargeldtransaktionOid" />
|
||||
<property column="SignatureStateType" name="SignatureState" type="BS.Shared.SignatureStateType, BS.Shared" />
|
||||
<property column="BargeldtransaktionInsTs" type="DateTime" name="BargeldtransaktionInsTs" />
|
||||
<property column="BargeldtransaktionInsUser" type="String" name="BargeldtransaktionInsUser" />
|
||||
<property column="BargeldtransaktionVersion" type="Int64" name="BargeldtransaktionVersion" />
|
||||
<property column="BargeldtransaktionUdpUser" type="String" name="BargeldtransaktionUdpUser" />
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
@@ -7,16 +7,17 @@
|
||||
</id>
|
||||
<version type="Int64" column="Version" name="Version" />
|
||||
<property name="ServiceRecordOid" column="ServiceRecordOid" />
|
||||
<property name="InsTs" />
|
||||
<property name="InsUser" />
|
||||
<property name="InsTs" />
|
||||
<property name="InsUser" />
|
||||
<property column="Tid" type="BS.Shared.TableID, BS.Shared" name="_Tid" access="field" />
|
||||
<property name="UdpUser" />
|
||||
<property name="UdpUser" />
|
||||
<property name="IsActive" type="BS.Shared.ActivationTypeId, BS.Shared" />
|
||||
<property name="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" />
|
||||
<property name="Notice" />
|
||||
<property name="Latitute" column="Latitute" />
|
||||
<property name="Longitute" column="Longitute" />
|
||||
<property name="Zeitstempel" column="Zeitstempel" />
|
||||
<property name="DataBild" column="DataBild" />
|
||||
<property name="Notice" />
|
||||
<property name="Latitute" column="Latitute" />
|
||||
<property name="Longitute" column="Longitute" />
|
||||
<property name="Zeitstempel" column="Zeitstempel" />
|
||||
<property name="DataBild" column="DataBild" />
|
||||
<property name="BargeldtransaktionsOid" />
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
@@ -0,0 +1 @@
|
||||
ALTER TABLE bargeldtransaktion ADD COLUMN SignatureOid BIGINT;
|
||||
1
Model/Changes_2024_01_31_Signature_Update.txt
Normal file
1
Model/Changes_2024_01_31_Signature_Update.txt
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE signature RENAME COLUMN BargeldkassenOid TO BargeldtransaktionsOid;
|
||||
24
Model/Changes_2024_02_06_Bargeldtransaktionshistory.txt
Normal file
24
Model/Changes_2024_02_06_Bargeldtransaktionshistory.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
CREATE TABLE `bargeldtransaktionshistory` (
|
||||
Oid BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
InsTs DATETIME DEFAULT NULL,
|
||||
InsUser VARCHAR(256) DEFAULT NULL,
|
||||
UdpUser VARCHAR(256) DEFAULT NULL,
|
||||
Tid INT NOT NULL,
|
||||
Notice VARCHAR(1024) DEFAULT NULL,
|
||||
Version BIGINT DEFAULT NULL,
|
||||
IsActive TINYINT DEFAULT NULL,
|
||||
SystemEntryID INT DEFAULT NULL,
|
||||
ChangeType TINYINT DEFAULT NULL,
|
||||
Zahlungstyp TINYINT DEFAULT NULL,
|
||||
Zahlungsdatum DATETIME DEFAULT NULL,
|
||||
Betrag DECIMAL(18, 10) DEFAULT NULL,
|
||||
Transaktionskassenbestand DECIMAL(18, 10) DEFAULT NULL,
|
||||
BargeldtransaktionOid BIGINT DEFAULT NULL,
|
||||
Belegnummer VARCHAR(128) DEFAULT NULL,
|
||||
SignatureOid BIGINT DEFAULT NULL,
|
||||
SignatureStateType INT DEFAULT '0',
|
||||
BargeldtransaktionInsTs DATETIME DEFAULT NULL,
|
||||
BargeldtransaktionInsUser VARCHAR(256) DEFAULT NULL,
|
||||
BargeldtransaktionVersion BIGINT DEFAULT NULL,
|
||||
BargeldtransaktionUdpUser VARCHAR(256) DEFAULT NULL
|
||||
) ENGINE=InnoDB;
|
||||
68
Report/DefaultReports/KassenbelegReport.Designer.cs
generated
68
Report/DefaultReports/KassenbelegReport.Designer.cs
generated
@@ -30,6 +30,8 @@
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
|
||||
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
@@ -44,15 +46,15 @@
|
||||
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.TopMargin = new DevExpress.XtraReports.UI.TopMarginBand();
|
||||
this.BottomMargin = new DevExpress.XtraReports.UI.BottomMarginBand();
|
||||
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.xrPictureBox2 = new DevExpress.XtraReports.UI.XRPictureBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
|
||||
//
|
||||
// Detail
|
||||
//
|
||||
this.Detail.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrPictureBox2,
|
||||
this.xrLabel2,
|
||||
this.xrLabel3,
|
||||
this.xrLabel10,
|
||||
@@ -72,6 +74,29 @@
|
||||
this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
|
||||
this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
|
||||
//
|
||||
// xrLabel2
|
||||
//
|
||||
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 152.2917F);
|
||||
this.xrLabel2.Name = "xrLabel2";
|
||||
this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F);
|
||||
this.xrLabel2.SizeF = new System.Drawing.SizeF(120.9167F, 23F);
|
||||
this.xrLabel2.StylePriority.UsePadding = false;
|
||||
this.xrLabel2.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel2.Text = "Belegnummer:";
|
||||
this.xrLabel2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
//
|
||||
// xrLabel3
|
||||
//
|
||||
this.xrLabel3.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Belegnummer")});
|
||||
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(120.9167F, 152.2917F);
|
||||
this.xrLabel3.Name = "xrLabel3";
|
||||
this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F);
|
||||
this.xrLabel3.SizeF = new System.Drawing.SizeF(528.0833F, 23F);
|
||||
this.xrLabel3.StylePriority.UsePadding = false;
|
||||
this.xrLabel3.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
//
|
||||
// xrLabel10
|
||||
//
|
||||
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(0F, 193.9583F);
|
||||
@@ -119,10 +144,12 @@
|
||||
//
|
||||
// xrLabel7
|
||||
//
|
||||
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(316.4551F, 260.4999F);
|
||||
this.xrLabel7.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "SignatureDate", "{0:dd.MM.yyyy}")});
|
||||
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(306.2917F, 264.5F);
|
||||
this.xrLabel7.Name = "xrLabel7";
|
||||
this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel7.SizeF = new System.Drawing.SizeF(332.545F, 23F);
|
||||
this.xrLabel7.SizeF = new System.Drawing.SizeF(101.295F, 23.00003F);
|
||||
this.xrLabel7.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomLeft;
|
||||
//
|
||||
@@ -214,33 +241,19 @@
|
||||
this.BottomMargin.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
|
||||
this.BottomMargin.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
|
||||
//
|
||||
// xrLabel2
|
||||
//
|
||||
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 152.2917F);
|
||||
this.xrLabel2.Name = "xrLabel2";
|
||||
this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F);
|
||||
this.xrLabel2.SizeF = new System.Drawing.SizeF(120.9167F, 23F);
|
||||
this.xrLabel2.StylePriority.UsePadding = false;
|
||||
this.xrLabel2.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel2.Text = "Belegnummer:";
|
||||
this.xrLabel2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
//
|
||||
// xrLabel3
|
||||
//
|
||||
this.xrLabel3.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Belegnummer")});
|
||||
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(120.9167F, 152.2917F);
|
||||
this.xrLabel3.Name = "xrLabel3";
|
||||
this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F);
|
||||
this.xrLabel3.SizeF = new System.Drawing.SizeF(528.0833F, 23F);
|
||||
this.xrLabel3.StylePriority.UsePadding = false;
|
||||
this.xrLabel3.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.KassenbelegRO);
|
||||
//
|
||||
// xrPictureBox2
|
||||
//
|
||||
this.xrPictureBox2.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Image", null, "SignatureImage")});
|
||||
this.xrPictureBox2.LocationFloat = new DevExpress.Utils.PointFloat(407.5867F, 252F);
|
||||
this.xrPictureBox2.Name = "xrPictureBox2";
|
||||
this.xrPictureBox2.SizeF = new System.Drawing.SizeF(241.4133F, 35.50003F);
|
||||
this.xrPictureBox2.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
|
||||
//
|
||||
// KassenbelegReport
|
||||
//
|
||||
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
|
||||
@@ -275,5 +288,6 @@
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel11;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel3;
|
||||
private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace BeWo.Report.DefaultReports
|
||||
{
|
||||
bindingSource1.DataSource = pRO;
|
||||
|
||||
if (pRO.Beguenstigter == null)
|
||||
if(pRO.Beguenstigter is null)
|
||||
{
|
||||
beguenstigterLabel.Visible = false;
|
||||
beguenstigterValueLabel.Visible = false;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,10 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
|
||||
namespace BeWo.Report.ReportObjects
|
||||
@@ -17,33 +19,39 @@ namespace BeWo.Report.ReportObjects
|
||||
public string Belegnummer { get; set; }
|
||||
public string Notiz { get; set; }
|
||||
|
||||
public Bitmap SignatureImage { get; set; }
|
||||
|
||||
public DateTime? SignatureDate { get; set; }
|
||||
|
||||
public static KassenbelegRO Create(BargeldtransaktionDC transaktion, BeWoEntityBase beguenstigter)
|
||||
{
|
||||
var sqlresult = DAOFactory.SearchDAO.GetSqlResult(String.Format("select k.oid from bargeldkasse k join bargeldtransaktion t on t.BargeldkassenOid = k.Oid where t.oid = {0}", transaktion.BargeldtransaktionOid));
|
||||
long kasseOid = (long)sqlresult[0];
|
||||
var sqlresult = DAOFactory.SearchDAO.GetSqlResult($"select k.oid from bargeldkasse k join bargeldtransaktion t on t.BargeldkassenOid = k.Oid where t.oid = {transaktion.BargeldtransaktionOid}");
|
||||
var kasseOid = (long) sqlresult[0];
|
||||
var kasse = DAOFactory.GenericDAO.LoadByID<Bargeldkasse>(kasseOid);
|
||||
var signature = DAOFactory.SearchDAO.LoadSignatureByTransaktionsOid(transaktion.BargeldtransaktionOid.Value);
|
||||
|
||||
var beleg = new KassenbelegRO
|
||||
{
|
||||
Kasse = kasse.Kassenname,
|
||||
Titel = string.Format("{0}zahlungsbeleg", (transaktion.Zahlungstyp == Zahlungstyp.Einzahlung ? "Ein" : "Aus")),
|
||||
Betrag = transaktion.Betrag != null ? transaktion.Betrag.Value : 0m,
|
||||
Belegdatum = transaktion.Zahlungsdatum != null ? transaktion.Zahlungsdatum.Value : DateTime.Now,
|
||||
Kasse = kasse.Kassenname,
|
||||
Titel = $"{(transaktion.Zahlungstyp == Zahlungstyp.Einzahlung ? "Ein" : "Aus")}zahlungsbeleg",
|
||||
Betrag = transaktion.Betrag ?? 0m,
|
||||
Belegdatum = transaktion.Zahlungsdatum ?? DateTime.Now,
|
||||
Belegnummer = transaktion.Belegnummer,
|
||||
Notiz = transaktion.Notice
|
||||
Notiz = transaktion.Notice
|
||||
};
|
||||
|
||||
if (beguenstigter != null)
|
||||
if(signature != null)
|
||||
{
|
||||
if (beguenstigter is Customer)
|
||||
{
|
||||
var customer = (Customer)beguenstigter;
|
||||
|
||||
beleg.Beguenstigter = customer.Person.FirstNameLastName;
|
||||
}
|
||||
beleg.SignatureImage = ImageUtils.ConvertBase64StringToBitmap(signature.DataBild);
|
||||
beleg.SignatureDate = signature.Zeitstempel;
|
||||
}
|
||||
|
||||
return beleg;
|
||||
if (beguenstigter is Customer customer)
|
||||
{
|
||||
beleg.Beguenstigter = customer.Person.FirstNameLastName;
|
||||
}
|
||||
|
||||
return beleg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,12 +11,13 @@ namespace BeWo.Service.DCEntityMapper
|
||||
pDataContract.BargeldtransaktionVersion = pEntity.Version;
|
||||
//pDataContract.Customer = MapperFactory.CompactCustomerDC_Customer.MapToNewDC(pEntity.Customer);
|
||||
pDataContract.Betrag = pEntity.Betrag;
|
||||
pDataContract.Belegnummer = pEntity.Belegnummer;
|
||||
pDataContract.Belegnummer = pEntity.Belegnummer;
|
||||
pDataContract.Zahlungstyp = pEntity.Zahlungstyp;
|
||||
pDataContract.Zahlungsdatum = pEntity.Zahlungsdatum;
|
||||
pDataContract.Transaktionskassenbestand = pEntity.Transaktionskassenbestand;
|
||||
pDataContract.Notice = pEntity.Notice;
|
||||
pDataContract.InsUser = pEntity.InsUser;
|
||||
pDataContract.InsUser = pEntity.InsUser;
|
||||
pDataContract.SignatureOid = pEntity.SignatureOid;
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
@@ -28,18 +29,19 @@ namespace BeWo.Service.DCEntityMapper
|
||||
pEntity.Oid = pDataContract.BargeldtransaktionOid;
|
||||
//pEntity.Customer = MapperFactory.CompactCustomerDC_Customer.MergeWithEntity(pDataContract.Customer, pEntity.Customer);
|
||||
pEntity.Betrag = pDataContract.Betrag;
|
||||
pEntity.Belegnummer = pDataContract.Belegnummer;
|
||||
pEntity.Belegnummer = pDataContract.Belegnummer;
|
||||
pEntity.Zahlungstyp = pDataContract.Zahlungstyp;
|
||||
pEntity.Zahlungsdatum = pDataContract.Zahlungsdatum;
|
||||
pEntity.Transaktionskassenbestand = pDataContract.Transaktionskassenbestand;
|
||||
pEntity.Notice = pDataContract.Notice;
|
||||
pEntity.SignatureOid = pDataContract.SignatureOid;
|
||||
|
||||
return pEntity;
|
||||
}
|
||||
|
||||
protected override bool AreDCAndEntityEqual(BargeldtransaktionDC pDC, Bargeldtransaktion pEntity)
|
||||
{
|
||||
if (pDC.BargeldtransaktionOid == null)
|
||||
if (pDC.BargeldtransaktionOid is null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
using BeWo.Data.Entities;
|
||||
using BS.Shared.DataContracts;
|
||||
|
||||
namespace BeWo.Service.DCEntityMapper
|
||||
{
|
||||
public class BargeldtransaktionshistoryDC_Bargeldtransaktionshistory : AbstractIDCEntityMapper<Bargeldtransaktionshistory, BargeldtransaktionshistoryDC>
|
||||
{
|
||||
public override BargeldtransaktionshistoryDC MergeWithDC(Bargeldtransaktionshistory pEntity, BargeldtransaktionshistoryDC pDataContract)
|
||||
{
|
||||
pDataContract.BargeldtransaktionshistoryOid = pEntity.Oid;
|
||||
pDataContract.BargeldtransaktionshistoryVersion = pEntity.Version;
|
||||
pDataContract.InsUser = pEntity.InsUser;
|
||||
pDataContract.InsertedOn = pEntity.InsTs;
|
||||
pDataContract.ChangeType = pEntity.ChangeType;
|
||||
pDataContract.Zahlungstyp = pEntity.Zahlungstyp;
|
||||
pDataContract.Zahlungsdatum = pEntity.Zahlungsdatum;
|
||||
pDataContract.Betrag = pEntity.Betrag;
|
||||
pDataContract.Notice = pEntity.Notice;
|
||||
pDataContract.Transaktionskassenbestand = pEntity.Transaktionskassenbestand;
|
||||
pDataContract.Belegnummer = pEntity.Belegnummer;
|
||||
pDataContract.SignatureOid = pEntity.SignatureOid;
|
||||
pDataContract.SignatureState = pEntity.SignatureState;
|
||||
pDataContract.BargeldtransaktionVersion = pEntity.Version;
|
||||
pDataContract.BargeldtransaktionInsTs = pEntity.BargeldtransaktionInsTs;
|
||||
pDataContract.BargeldtransaktionInsUser = pEntity.BargeldtransaktionInsUser;
|
||||
pDataContract.BargeldtransaktionUdpUser = pEntity.BargeldtransaktionUdpUser;
|
||||
pDataContract.BargeldtransaktionOid = pEntity.BargeldtransaktionOid;
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
|
||||
public override Bargeldtransaktionshistory MergeWithEntity(BargeldtransaktionshistoryDC pDataContract, Bargeldtransaktionshistory pEntity)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
protected override bool AreDCAndEntityEqual(BargeldtransaktionshistoryDC pDC, Bargeldtransaktionshistory pEntity)
|
||||
{
|
||||
if(pDC.BargeldtransaktionshistoryOid is null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return pDC.BargeldtransaktionshistoryOid == pEntity.Oid;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -292,6 +292,7 @@ namespace BeWo.Service.DCEntityMapper
|
||||
|
||||
private static AddressRouteDC_AddressRoute _AddressRouteDC_AddressRoute;
|
||||
|
||||
private static BargeldtransaktionshistoryDC_Bargeldtransaktionshistory _BargeldtransaktionshistoryDC_Bargeldtransaktionshistory;
|
||||
|
||||
public static MedRecordDC_MedRecord MedRecordDC_MedRecord =>
|
||||
_MedRecordDC_MedRecord ?? (_MedRecordDC_MedRecord = new MedRecordDC_MedRecord());
|
||||
@@ -734,5 +735,8 @@ namespace BeWo.Service.DCEntityMapper
|
||||
|
||||
public static AddressRouteDC_AddressRoute AddressRouteDC_AddressRoute =>
|
||||
_AddressRouteDC_AddressRoute ?? (_AddressRouteDC_AddressRoute = new AddressRouteDC_AddressRoute());
|
||||
|
||||
public static BargeldtransaktionshistoryDC_Bargeldtransaktionshistory BargeldtransaktionshistoryDC_Bargeldtransaktionshistory =>
|
||||
_BargeldtransaktionshistoryDC_Bargeldtransaktionshistory ?? (_BargeldtransaktionshistoryDC_Bargeldtransaktionshistory = new BargeldtransaktionshistoryDC_Bargeldtransaktionshistory());
|
||||
}
|
||||
}
|
||||
@@ -8,26 +8,28 @@ namespace BeWo.Service.DCEntityMapper
|
||||
{
|
||||
public override SignatureDC MergeWithDC(Signature pEntity, SignatureDC pDataContract)
|
||||
{
|
||||
pDataContract.ServiceRecordOid = pEntity.ServiceRecordOid;
|
||||
pDataContract.Latitute = pEntity.Latitute;
|
||||
pDataContract.Longitute = pEntity.Longitute;
|
||||
pDataContract.DataBild = pEntity.DataBild;
|
||||
pDataContract.Zeitstempel = pEntity.Zeitstempel;
|
||||
pDataContract.SignatureOid = pEntity.Oid;
|
||||
pDataContract.SignatureVersion = pEntity.Version;
|
||||
pDataContract.ServiceRecordOid = pEntity.ServiceRecordOid;
|
||||
pDataContract.Latitute = pEntity.Latitute;
|
||||
pDataContract.Longitute = pEntity.Longitute;
|
||||
pDataContract.DataBild = pEntity.DataBild;
|
||||
pDataContract.Zeitstempel = pEntity.Zeitstempel;
|
||||
pDataContract.SignatureOid = pEntity.Oid;
|
||||
pDataContract.SignatureVersion = pEntity.Version;
|
||||
pDataContract.BargeldtransaktionsOid = pEntity.BargeldtransaktionsOid;
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
|
||||
public override Signature MergeWithEntity(SignatureDC pDataContract, Signature pEntity)
|
||||
{
|
||||
pEntity.ServiceRecordOid = pDataContract.ServiceRecordOid;
|
||||
pEntity.Latitute = pDataContract.Latitute;
|
||||
pEntity.Longitute = pDataContract.Longitute;
|
||||
pEntity.DataBild = pDataContract.DataBild;
|
||||
pEntity.Zeitstempel = pDataContract.Zeitstempel;
|
||||
pEntity.Oid = pDataContract.SignatureOid;
|
||||
pEntity.Version = pDataContract.SignatureVersion;
|
||||
pEntity.ServiceRecordOid = pDataContract.ServiceRecordOid;
|
||||
pEntity.Latitute = pDataContract.Latitute;
|
||||
pEntity.Longitute = pDataContract.Longitute;
|
||||
pEntity.DataBild = pDataContract.DataBild;
|
||||
pEntity.Zeitstempel = pDataContract.Zeitstempel;
|
||||
pEntity.Oid = pDataContract.SignatureOid;
|
||||
pEntity.Version = pDataContract.SignatureVersion;
|
||||
pEntity.BargeldtransaktionsOid = pDataContract.BargeldtransaktionsOid;
|
||||
|
||||
return pEntity;
|
||||
}
|
||||
|
||||
@@ -376,6 +376,7 @@ namespace BeWo.Service.Plugins
|
||||
//t = "1733934665"; // Auf eigenen Füßen stehen (Birgit Apel de Santos & Stefan Haefs)
|
||||
//t = "9814444882"; // PSM gGmbH (Paritätische Sozialdienste in Meerbusch)
|
||||
//t = "2839619357"; // SKFM Düsseldorf
|
||||
//t = "3936475760"; // PROgynmnasium Bensberg e.V. (PRO Train - Betreutes Wohnen)
|
||||
|
||||
|
||||
return t;
|
||||
|
||||
@@ -221,6 +221,7 @@
|
||||
<Compile Include="Core\Utils.cs" />
|
||||
<Compile Include="DCEntityMapper\AbwesenheitsInformationPrintDC_AbwesenheitsInformationPrint.cs" />
|
||||
<Compile Include="DCEntityMapper\AddressRouteDC_AddressRoute.cs" />
|
||||
<Compile Include="DCEntityMapper\BargeldtransaktionshistoryDC_Bargeldtransaktionshistory.cs" />
|
||||
<Compile Include="DCEntityMapper\ConfirmationReceiptSignatureDC_ConfirmationReceiptSignature.cs" />
|
||||
<Compile Include="DCEntityMapper\DienstvertretungDC_Dienstvertretung.cs" />
|
||||
<Compile Include="DCEntityMapper\DokumentvorlageDC_Dokumentvorlage.cs" />
|
||||
|
||||
@@ -1347,5 +1347,13 @@ namespace BeWo.Service.ServiceContracts
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
IList<ServiceRecordDC> FindServiceRecordsForLastDaysPaginated(long? costbearer2SupportConceptOid, int days, long? employeeOid, int firstResult, int maxResults, out int rowCount);
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
List<BargeldtransaktionshistoryDC> LoadBargeldtransaktionshistoryEntries(long transaktionsOid);
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
void DeleteBargeldtransaktionSignature(long signatureOid);
|
||||
}
|
||||
}
|
||||
@@ -3510,8 +3510,15 @@ namespace BeWo.Service.ServiceImplementations
|
||||
DAOFactory.GenericDAO.Insert(lSignature);
|
||||
var updatedSignatureDC = MapperFactory.SignatureDC_Signature.MapToNewDC(lSignature);
|
||||
|
||||
if(!s.ServiceRecordOid.HasValue)
|
||||
if(s.ServiceRecordOid is null)
|
||||
{
|
||||
if(s.BargeldtransaktionsOid.HasValue)
|
||||
{
|
||||
var transaction = DAOFactory.GenericDAO.LoadByID<Bargeldtransaktion>(s.BargeldtransaktionsOid.Value);
|
||||
|
||||
CreateTransactionHistoryObject(transaction, StatementType.Signature, SignatureStateType.Valid);
|
||||
}
|
||||
|
||||
return updatedSignatureDC;
|
||||
}
|
||||
|
||||
@@ -4037,9 +4044,113 @@ namespace BeWo.Service.ServiceImplementations
|
||||
{
|
||||
var lOriginal = DAOFactory.GenericDAO.LoadByID<Bargeldkasse>(pBargeldkasse.BargeldkassenOid.Value);
|
||||
|
||||
#region Transaktionshistorie
|
||||
|
||||
var changedTransactionOids = new List<long>();
|
||||
var transactionHistoryEntries = new List<Bargeldtransaktionshistory>();
|
||||
|
||||
// Oid zu Änderungsart und Unterschriftenstatus zum Speichern nach dem Bargeldkassen-Update
|
||||
var oids2ChangeTypes = new Dictionary<long, KeyValuePair<StatementType, SignatureStateType>>();
|
||||
|
||||
// Oids der Unterschriften, die durch die Änderung ungültig wurden
|
||||
var signatureOids2Delete = new List<long>();
|
||||
|
||||
// Die unveränderten Transaktionen laden, um sie mit den geänderten zu vergleichen und herauszufinden, was geändert wurde.
|
||||
var originalTransactions = MapperFactory.BargeldtransaktionDC_Bargeldtransaktion.MapToNewDCs(lOriginal.Bargeldtransaktionen);
|
||||
|
||||
// Die Oids der gelöschten Transaktionen, um die damit verbundenen Unterschriften zu löschen
|
||||
var deletedOids = new List<long>();
|
||||
|
||||
foreach(var originalTransaction in originalTransactions)
|
||||
{
|
||||
var changedOrDeletedTransactionDC = pBargeldkasse.Bargeldtransaktionen.FirstOrDefault(transaction => transaction.BargeldtransaktionOid.HasValue && transaction.BargeldtransaktionOid.Value.Equals(originalTransaction.BargeldtransaktionOid.Value));
|
||||
|
||||
if(changedOrDeletedTransactionDC is null && originalTransaction.BargeldtransaktionOid.HasValue)
|
||||
{
|
||||
if(originalTransaction.SignatureOid.HasValue)
|
||||
{
|
||||
signatureOids2Delete.AddIfNotIn(originalTransaction.SignatureOid.Value);
|
||||
}
|
||||
|
||||
deletedOids.AddIfNotIn(originalTransaction.BargeldtransaktionOid.Value);
|
||||
}
|
||||
|
||||
// Die Transaktion ist nicht neu und wurde geändert
|
||||
if((changedOrDeletedTransactionDC?.BargeldtransaktionOid.HasValue ?? false) && !originalTransaction.Equals(changedOrDeletedTransactionDC))
|
||||
{
|
||||
// Es wurde eine Transaktion unterschrieben.
|
||||
if(originalTransaction.SignatureOid is null && changedOrDeletedTransactionDC.SignatureOid.HasValue)
|
||||
{
|
||||
oids2ChangeTypes.AddIfNotIn(
|
||||
new KeyValuePair<long, KeyValuePair<StatementType, SignatureStateType>>(
|
||||
changedOrDeletedTransactionDC.BargeldtransaktionOid.Value,
|
||||
new KeyValuePair<StatementType, SignatureStateType>(StatementType.Signature, SignatureStateType.Valid)));
|
||||
}
|
||||
else // Es wurde eine andere Eigenschaft geändert als die Unterschrift
|
||||
{
|
||||
var newSignatureState = SignatureStateType.None;
|
||||
|
||||
// Wenn die Transaktion eine Unterschrift vor der Änderung hatte, wird diese als ungültig gespeichert
|
||||
if(changedOrDeletedTransactionDC.SignatureOid.HasValue)
|
||||
{
|
||||
newSignatureState = SignatureStateType.Invalid;
|
||||
}
|
||||
|
||||
oids2ChangeTypes.AddIfNotIn(new KeyValuePair<long, KeyValuePair<StatementType, SignatureStateType>>(
|
||||
changedOrDeletedTransactionDC.BargeldtransaktionOid.Value,
|
||||
new KeyValuePair<StatementType, SignatureStateType>(StatementType.Update, newSignatureState)));
|
||||
}
|
||||
|
||||
changedTransactionOids.AddIfNotIn(changedOrDeletedTransactionDC.BargeldtransaktionOid.Value);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
var deletedTransactions = DAOFactory.GenericDAO.LoadByIDs<Bargeldtransaktion>(deletedOids);
|
||||
var signatures2Delete = new List<Signature>();
|
||||
|
||||
foreach(var deletedTransaction in deletedTransactions)
|
||||
{
|
||||
var signatureStateType = SignatureStateType.None;
|
||||
|
||||
if(deletedTransaction.SignatureOid.HasValue)
|
||||
{
|
||||
var signature = DAOFactory.GenericDAO.LoadByID<Signature>(deletedTransaction.SignatureOid.Value);
|
||||
signatures2Delete.Add(signature);
|
||||
deletedTransaction.SignatureOid = null;
|
||||
signatureStateType = SignatureStateType.ManuallyDeleted;
|
||||
}
|
||||
|
||||
transactionHistoryEntries.Add(CreateTransactionHistoryObject(deletedTransaction, StatementType.Delete, signatureStateType));
|
||||
}
|
||||
|
||||
DAOFactory.GenericDAO.Delete(signatures2Delete);
|
||||
|
||||
MapperFactory.BargeldkassenDCBargeldkasseDC_BargeldkassenDCBargeldkasse.MergeWithEntity(pBargeldkasse, lOriginal);
|
||||
|
||||
var newTransactions = lOriginal.Bargeldtransaktionen.Where(transaction => transaction.Oid is null).ToList();
|
||||
|
||||
DAOFactory.GenericDAO.Update(lOriginal);
|
||||
|
||||
foreach(var newTransaction in newTransactions)
|
||||
{
|
||||
transactionHistoryEntries.Add(CreateTransactionHistoryObject(newTransaction, StatementType.Insert, SignatureStateType.None));
|
||||
}
|
||||
|
||||
foreach(var oid2ChangeTypes in oids2ChangeTypes)
|
||||
{
|
||||
var editedTransaction = lOriginal.Bargeldtransaktionen.FirstOrDefault(transaction => transaction.Oid.HasValue && transaction.Oid.Value.Equals(oid2ChangeTypes.Key));
|
||||
|
||||
if(editedTransaction is null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
transactionHistoryEntries.Add(CreateTransactionHistoryObject(editedTransaction, oid2ChangeTypes.Value.Key, oid2ChangeTypes.Value.Value));
|
||||
}
|
||||
|
||||
DAOFactory.GenericDAO.Insert(transactionHistoryEntries);
|
||||
|
||||
return MapperFactory.BargeldkassenDCBargeldkasseDC_BargeldkassenDCBargeldkasse.MapToNewDC(lOriginal);
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -4048,10 +4159,42 @@ namespace BeWo.Service.ServiceImplementations
|
||||
}
|
||||
}
|
||||
|
||||
public void DeleteBargeldtransaktionSignature(long signatureOid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var signature2Delete = DAOFactory.GenericDAO.LoadByID<Signature>(signatureOid);
|
||||
|
||||
DAOFactory.GenericDAO.Delete(signature2Delete);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void DeactivateBargeldkasse(long pOid, long pVersion)
|
||||
{
|
||||
try
|
||||
{
|
||||
var bargeldkasse = DAOFactory.GenericDAO.LoadByID<Bargeldkasse>(pOid);
|
||||
|
||||
var signatureOids2Delete = bargeldkasse.Bargeldtransaktionen.Where(transaction => transaction.SignatureOid.HasValue).Select(transaction => transaction.SignatureOid.Value).ToList();
|
||||
|
||||
var signatures2Delete = DAOFactory.GenericDAO.LoadByIDs<Signature>(signatureOids2Delete);
|
||||
|
||||
var historyEntries = new List<Bargeldtransaktionshistory>();
|
||||
|
||||
foreach(var transaction in bargeldkasse.Bargeldtransaktionen)
|
||||
{
|
||||
var signatureState = transaction.SignatureOid is null ? SignatureStateType.None : SignatureStateType.AutomaticallyDeleted;
|
||||
historyEntries.Add(CreateTransactionHistoryObject(transaction, StatementType.Delete, signatureState));
|
||||
}
|
||||
|
||||
DAOFactory.GenericDAO.Delete(signatures2Delete);
|
||||
|
||||
DAOFactory.GenericDAO.Insert(historyEntries);
|
||||
|
||||
ServiceLogic.SetActivationType<Bargeldkasse>(new Dictionary<long, long> { { pOid, pVersion } }, ActivationTypeId.Deleted);
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -4060,6 +4203,27 @@ namespace BeWo.Service.ServiceImplementations
|
||||
}
|
||||
}
|
||||
|
||||
private static Bargeldtransaktionshistory CreateTransactionHistoryObject(Bargeldtransaktion transaction, StatementType changeType, SignatureStateType signatureState)
|
||||
{
|
||||
return new Bargeldtransaktionshistory
|
||||
{
|
||||
Betrag = transaction.Betrag,
|
||||
BargeldtransaktionOid = transaction.Oid,
|
||||
BargeldtransaktionInsTs = transaction.InsTs,
|
||||
BargeldtransaktionInsUser = transaction.InsUser,
|
||||
BargeldtransaktionUdpUser = transaction.UdpUser,
|
||||
BargeldtransaktionVersion = transaction.Version,
|
||||
ChangeType = changeType,
|
||||
Belegnummer = transaction.Belegnummer,
|
||||
Notice = transaction.Notice,
|
||||
IsActive = ActivationTypeId.Active,
|
||||
SignatureOid = transaction.SignatureOid,
|
||||
SignatureState = signatureState,
|
||||
Zahlungstyp = transaction.Zahlungstyp,
|
||||
Zahlungsdatum = transaction.Zahlungsdatum
|
||||
};
|
||||
}
|
||||
|
||||
public List<NotizenKategorieDC> LoadNotizenKategorienForObject(TableID objectTid, long objectOid)
|
||||
{
|
||||
try
|
||||
@@ -8621,6 +8785,20 @@ namespace BeWo.Service.ServiceImplementations
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public List<BargeldtransaktionshistoryDC> LoadBargeldtransaktionshistoryEntries(long transaktionsOid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var historyEntries = DAOFactory.SearchDAO.LoadBargeldtransaktionshistoryEntries(transaktionsOid);
|
||||
|
||||
return MapperFactory.BargeldtransaktionshistoryDC_Bargeldtransaktionshistory.MapToNewDCs(historyEntries);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ServiceRecord2SignatureStates
|
||||
|
||||
@@ -42,6 +42,14 @@
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /></startup></configuration>
|
||||
|
||||
@@ -169,7 +169,8 @@ namespace BS.Shared
|
||||
AddressRoute = 162,
|
||||
ValidationMessage = 163,
|
||||
AdditionalServiceNotice = 164,
|
||||
GkvAbrechnung = 165
|
||||
GkvAbrechnung = 165,
|
||||
Bargeldtransaktionshistory = 166
|
||||
}
|
||||
|
||||
public enum SystemEntryID
|
||||
|
||||
@@ -36,5 +36,27 @@ namespace BS.Shared.DataContracts
|
||||
|
||||
[DataMember]
|
||||
public string InsUser { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public long? SignatureOid { get; set; }
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if(obj is BargeldtransaktionDC transaction)
|
||||
{
|
||||
return Zahlungstyp.Equals(transaction.Zahlungstyp) &&
|
||||
Equals(Betrag, transaction.Betrag) &&
|
||||
Equals(BargeldtransaktionOid, transaction.BargeldtransaktionOid) &&
|
||||
Equals(BargeldtransaktionVersion, transaction.BargeldtransaktionVersion) &&
|
||||
Equals(Zahlungsdatum, transaction.Zahlungsdatum) &&
|
||||
Equals(Transaktionskassenbestand, transaction.Transaktionskassenbestand) &&
|
||||
Equals(Notice, transaction.Notice) &&
|
||||
Equals(Belegnummer, transaction.Belegnummer) &&
|
||||
Equals(InsUser, transaction.InsUser) &&
|
||||
Equals(SignatureOid, transaction.SignatureOid);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
62
Shared/DataContracts/BargeldtransaktionshistoryDC.cs
Normal file
62
Shared/DataContracts/BargeldtransaktionshistoryDC.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
using System;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace BS.Shared.DataContracts
|
||||
{
|
||||
public partial class BargeldtransaktionshistoryDC
|
||||
{
|
||||
[DataMember]
|
||||
public Zahlungstyp Zahlungstyp { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string InsUser { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public DateTime? InsertedOn { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string Notice { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public SignatureStateType SignatureState { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public StatementType ChangeType { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public DateTime? Zahlungsdatum { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public decimal? Transaktionskassenbestand { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public decimal? Betrag { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string Belegnummer { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public long? SignatureOid { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public DateTime? BargeldtransaktionInsTs { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public long? BargeldtransaktionshistoryOid { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public long? BargeldtransaktionshistoryVersion { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public long? BargeldtransaktionVersion { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string BargeldtransaktionInsUser { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string BargeldtransaktionUdpUser { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public long? BargeldtransaktionOid { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
namespace BS.Shared.DataContracts
|
||||
{
|
||||
public partial class BargeldtransaktionshistoryDC
|
||||
{
|
||||
public string HistoryTypeString
|
||||
{
|
||||
get
|
||||
{
|
||||
switch(ChangeType)
|
||||
{
|
||||
case StatementType.Insert:
|
||||
return "Neu angelegt";
|
||||
case StatementType.Update:
|
||||
return "Geändert";
|
||||
case StatementType.Delete:
|
||||
return "Gelöscht";
|
||||
case StatementType.Signature:
|
||||
return "Unterschrift";
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string SignatureStateString
|
||||
{
|
||||
get
|
||||
{
|
||||
switch(SignatureState)
|
||||
{
|
||||
case SignatureStateType.None:
|
||||
return "Keine";
|
||||
case SignatureStateType.Invalid:
|
||||
return "Ungültig";
|
||||
case SignatureStateType.Valid:
|
||||
return "Gültig";
|
||||
case SignatureStateType.AutomaticallyDeleted:
|
||||
return "Autmatisch gelöscht";
|
||||
case SignatureStateType.ManuallyDeleted:
|
||||
return "Manuell gelöscht";
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -26,5 +26,8 @@ namespace BS.Shared.DataContracts
|
||||
|
||||
[DataMember]
|
||||
public long? SignatureVersion { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public long? BargeldtransaktionsOid { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,8 @@ namespace BS.Shared.Settings
|
||||
public static int AnzTageZeiterfassErfolgt { get; set; }
|
||||
public static int MaxDaysEditServiceRecordsAllowed { get; set; }
|
||||
|
||||
public static int ServiceRecordAllowChangeHours { get; set; }
|
||||
|
||||
public virtual string RssFeedUrl => null;
|
||||
public static int TimeUntilUILock { get; set; }
|
||||
}
|
||||
|
||||
@@ -158,6 +158,8 @@
|
||||
<Compile Include="DataContracts\AdditionalServiceGroupOfPeopleRelationDC.cs" />
|
||||
<Compile Include="DataContracts\AdditionalServiceRegionDC.cs" />
|
||||
<Compile Include="DataContracts\AddressRouteDC.cs" />
|
||||
<Compile Include="DataContracts\BargeldtransaktionshistoryDC.cs" />
|
||||
<Compile Include="DataContracts\ClientPartials\BargeldtransaktionshistoryDC.cs" />
|
||||
<Compile Include="DataContracts\ClientPartials\ContactDC.cs" />
|
||||
<Compile Include="DataContracts\BesetzungsstatusDC.cs" />
|
||||
<Compile Include="DataContracts\ConfirmationReceiptSignatureDC.cs" />
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="ClrHeapAllocationAnalyzer" version="3.0.0" targetFramework="net45" />
|
||||
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net45" />
|
||||
</packages>
|
||||
Reference in New Issue
Block a user