Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
This commit is contained in:
19
BeWo.sln
19
BeWo.sln
@@ -589,6 +589,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LebensWert", "ReportImp\Leb
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SehtMuenster", "ReportImp\SehtMuenster\SehtMuenster.csproj", "{DD81587C-415B-422A-A3C0-0B82D3659085}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MobileEV", "ReportImp\MobileEV\MobileEV.csproj", "{48BB802C-43AF-4A3D-93F0-AE88A18E155C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|.NET = Debug|.NET
|
||||
@@ -4688,6 +4690,22 @@ Global
|
||||
{DD81587C-415B-422A-A3C0-0B82D3659085}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{DD81587C-415B-422A-A3C0-0B82D3659085}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{DD81587C-415B-422A-A3C0-0B82D3659085}.Release|x86.Build.0 = Release|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|.NET.ActiveCfg = Debug|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|.NET.Build.0 = Debug|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|.NET.ActiveCfg = Release|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|.NET.Build.0 = Release|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@@ -4978,6 +4996,7 @@ Global
|
||||
{0114A289-5FD4-4CD9-A704-5161B6FD7726} = {D8A691C5-146D-4613-86CC-438F02FE9106}
|
||||
{09BA6418-1FC2-4B45-8CE0-BB9C24499442} = {D8A691C5-146D-4613-86CC-438F02FE9106}
|
||||
{DD81587C-415B-422A-A3C0-0B82D3659085} = {D8A691C5-146D-4613-86CC-438F02FE9106}
|
||||
{48BB802C-43AF-4A3D-93F0-AE88A18E155C} = {D8A691C5-146D-4613-86CC-438F02FE9106}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9}
|
||||
|
||||
@@ -1573,9 +1573,7 @@ namespace BeWo.Scheduler.View
|
||||
|
||||
private void AllowAppointmentCreateEvent(object sender, AppointmentOperationEventArgs e)
|
||||
{
|
||||
var darfAnlegen = (BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderKliententermineAnlegen) || BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnlegen));
|
||||
|
||||
e.Allow = darfAnlegen;
|
||||
e.Allow = BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderAnsehen) || BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderKliententermineAnlegen) || BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnlegen);
|
||||
}
|
||||
|
||||
private void UpdateOptionPanel()
|
||||
|
||||
@@ -255,8 +255,8 @@ namespace BeWo.Scheduler.View
|
||||
BetreffLabel.Content = "Titel";
|
||||
StartLabel.Content = "Beginn";
|
||||
|
||||
EndDate.Visibility = Visibility.Collapsed;
|
||||
EndTime.Visibility = Visibility.Collapsed;
|
||||
EndDate.Visibility = Visibility.Collapsed;
|
||||
EndTime.Visibility = Visibility.Collapsed;
|
||||
EndLabel.Visibility = Visibility.Collapsed;
|
||||
|
||||
StartTimeTextEdit.Visibility = Visibility.Collapsed;
|
||||
@@ -281,17 +281,17 @@ namespace BeWo.Scheduler.View
|
||||
SupportConceptsPopUpOeffnenBtn.Visibility = Visibility.Visible;
|
||||
SelectedSupportConceptsListBox.Visibility = Visibility.Visible;
|
||||
|
||||
CustomersLabel.Visibility = Visibility.Collapsed;
|
||||
CustomersGrid.Visibility = Visibility.Collapsed;
|
||||
CustomerSearchViewPopup.Visibility = Visibility.Collapsed;
|
||||
CustomersLabel.Visibility = Visibility.Collapsed;
|
||||
CustomersGrid.Visibility = Visibility.Collapsed;
|
||||
CustomerSearchViewPopup.Visibility = Visibility.Collapsed;
|
||||
SelectedCustomersListBox.Visibility = Visibility.Collapsed;
|
||||
KlientenPopUpOeffnenBtn.Visibility = Visibility.Collapsed;
|
||||
KlientenPopUpOeffnenBtn.Visibility = Visibility.Collapsed;
|
||||
|
||||
ResourceLabel.Visibility = Visibility.Collapsed;
|
||||
ResourceToggleButtonGrid.Visibility = Visibility.Collapsed;
|
||||
ResourceLabel.Visibility = Visibility.Collapsed;
|
||||
ResourceToggleButtonGrid.Visibility = Visibility.Collapsed;
|
||||
RessourcenPopUpOeffnenBtn.Visibility = Visibility.Collapsed;
|
||||
PopupResource.Visibility = Visibility.Collapsed;
|
||||
ResourceListBox.Visibility = Visibility.Collapsed;
|
||||
PopupResource.Visibility = Visibility.Collapsed;
|
||||
ResourceListBox.Visibility = Visibility.Collapsed;
|
||||
|
||||
StartDateDateEdit.IsEnabled = false;
|
||||
BetreffEditText.IsEnabled = false;
|
||||
|
||||
@@ -1674,7 +1674,7 @@ namespace BeWo.View
|
||||
|
||||
BuildRecurringAppointments(_AllSchedulerTasks.Where(w => w.RecurrenceInfo != null).ToList(), _CurrentDate, _CurrentDate.AddDays(3 * Datebuffer));
|
||||
|
||||
if (pIsShowingTasks)
|
||||
if(pIsShowingTasks)
|
||||
{
|
||||
var list = _AllSchedulerTasks.Where(i => i.IsTask && !i.CompletedDate.HasValue).OrderBy(i => i.DueDate).OrderBy(o => o.StartDate ?? DateTime.MinValue).ToList();
|
||||
listboxTasks.ItemsSource = list;
|
||||
|
||||
@@ -1387,6 +1387,7 @@
|
||||
<Content Include="Views\Scheduler\CustomerFilterSelectionPartial.cshtml" />
|
||||
<Content Include="Views\Scheduler\CustomerFilteringModalContentPartial.cshtml" />
|
||||
<Content Include="Views\Main\MultiBookingPartial.cshtml" />
|
||||
<Content Include="Views\Report\QuittierungsbelegsResultPartial.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="App_Data\" />
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return RedirectToActionPermanent("Main", "Main");
|
||||
}
|
||||
|
||||
CreateServiceOverview(null);
|
||||
//CreateServiceOverview(null);
|
||||
|
||||
return View(Model);
|
||||
}
|
||||
@@ -112,12 +112,12 @@ namespace BeWoPlanerMobil.Controllers
|
||||
[HttpPost]
|
||||
public ActionResult CreateServiceOverview(FormCollection formCollection)
|
||||
{
|
||||
if(Model?.Employee?.EmployeeOid == null)
|
||||
if(Model?.Employee?.EmployeeOid is null)
|
||||
{
|
||||
return Logout();
|
||||
}
|
||||
|
||||
if(Model.SelectedFilterItem == null)
|
||||
if(Model.SelectedFilterItem is null)
|
||||
{
|
||||
return RedirectToActionPermanent("Report");
|
||||
}
|
||||
@@ -646,5 +646,230 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return MobileUtils.SerializeObject("Ein Fehler ist aufgetreten. Bitte wenden Sie sich an Ihren Administrator.");
|
||||
}
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult LoadServiceOverview()
|
||||
{
|
||||
if(Model is null)
|
||||
{
|
||||
return Logout();
|
||||
}
|
||||
|
||||
if(Model.SelectedFilterItem is null)
|
||||
{
|
||||
// ToDo: Warnung einbauen?
|
||||
return RedirectToActionPermanent("Report");
|
||||
}
|
||||
|
||||
if(Model.SelectedFilterItem.FilterEnum == QBFilterEnum.KlientenAuswahl)
|
||||
{
|
||||
var customerOidString = Model.SelectedCustomerOid.ToString();
|
||||
|
||||
var isCustomerOidSuccessful = long.TryParse(customerOidString, out var selectedCustomerOid);
|
||||
|
||||
if(isCustomerOidSuccessful)
|
||||
{
|
||||
var selectedCustomer = Model.Customers.FirstOrDefault(customer => customer.CustomerOid == selectedCustomerOid);
|
||||
|
||||
Model.SelectedCustomer = selectedCustomer;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Model.SelectedCustomer = null;
|
||||
}
|
||||
|
||||
if(Model.SelectedFilterItem.FilterEnum == QBFilterEnum.TeamAuswahl)
|
||||
{
|
||||
var teamOidString = Model.SelectedTeamOid.ToString();
|
||||
|
||||
var isTeamOidSuccessful = long.TryParse(teamOidString, out var selectedTeamOid);
|
||||
|
||||
if(isTeamOidSuccessful)
|
||||
{
|
||||
var selectedTeam = Model.AllTeams.FirstOrDefault(team => team.TeamOid == selectedTeamOid);
|
||||
|
||||
Model.SelectedTeam = selectedTeam;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Model.SelectedTeam = null;
|
||||
}
|
||||
|
||||
var startDay = Model.SelectedStartDay;
|
||||
var endDay = Model.SelectedEndDay;
|
||||
|
||||
var reportObjects = new List<ServicesOverviewRO>();
|
||||
|
||||
var month = Model.SelectedMonth;
|
||||
var year = Model.SelectedYear;
|
||||
|
||||
var organisationOid = Model.SelectedOrganisationOid ?? 0;
|
||||
var employeeOid = Model.SelectedEmployeeOid ?? 0;
|
||||
var serviceCategoryOid = Model.SelectedServiceCategoryOid;
|
||||
var teamOid = Model.SelectedTeamOid;
|
||||
var customerOid = Model.SelectedCustomerOid ?? 0;
|
||||
|
||||
switch(Model.SelectedFilterItem.FilterEnum)
|
||||
{
|
||||
case QBFilterEnum.AlleKlienten:
|
||||
reportObjects = ServicesOverviewRO.Create(month, year, organisationOid, employeeOid, startDay, endDay, serviceCategoryOid);
|
||||
break;
|
||||
case QBFilterEnum.NurKlientenMeinesTeams:
|
||||
var teamRelatedCustomerOids = GetTeamCustomerOids();
|
||||
reportObjects.AddRange(teamRelatedCustomerOids.Select(cOid => ServicesOverviewRO.Create(cOid, month, year, true, organisationOid, employeeOid, startDay, endDay, serviceCategoryOid)));
|
||||
break;
|
||||
case QBFilterEnum.MeineKlienten:
|
||||
var myRelatedCustomerOids = DefaultReportCreator.GetMeineKlientenOids();
|
||||
reportObjects.AddRange(myRelatedCustomerOids.Select(cOid => ServicesOverviewRO.Create(cOid, month, year, true, organisationOid, employeeOid, startDay, endDay, serviceCategoryOid)));
|
||||
break;
|
||||
case QBFilterEnum.KlientenAuswahl:
|
||||
reportObjects = new List<ServicesOverviewRO> { ServicesOverviewRO.Create(customerOid, month, year, false, organisationOid, employeeOid, startDay, endDay, serviceCategoryOid) };
|
||||
break;
|
||||
case QBFilterEnum.TeamAuswahl:
|
||||
var customerOids = GetTeamCustomerOids(teamOid);
|
||||
reportObjects.AddRange(customerOids.Select(cOid => ServicesOverviewRO.Create(cOid, month, year, true, organisationOid, employeeOid, startDay, endDay, serviceCategoryOid)));
|
||||
break;
|
||||
default:
|
||||
reportObjects = ServicesOverviewRO.Create(month, year, organisationOid, employeeOid, startDay, endDay, serviceCategoryOid, true, false);
|
||||
break;
|
||||
}
|
||||
|
||||
reportObjects = reportObjects.Where(x => x != null).ToList();
|
||||
|
||||
var srOids = new List<long>();
|
||||
|
||||
reportObjects.DoForEach(x => x.Services.DoForEach(s => srOids.AddIfNotIn(s.ServiceRecordOid)));
|
||||
|
||||
Model.ConfirmationReceiptSignatures = OperationsService.LoadAllConfirmationReceiptSignaturesByServiceRecordOids(srOids, out var serviceRecordOidsWithSignature);
|
||||
|
||||
var customerSignatures = Model.ConfirmationReceiptSignatures.Where(crs => crs.SignatureType == SignatureType.Customer).ToList();
|
||||
var employeeSignatures = Model.ConfirmationReceiptSignatures.Where(crs => crs.SignatureType == SignatureType.Employee).ToList();
|
||||
|
||||
Model.ReportServiceRecordOids = new List<long>();
|
||||
reportObjects.DoForEach(ro => ro.Services.DoForEach(s =>
|
||||
{
|
||||
Model.ReportServiceRecordOids.AddIfNotIn(s.ServiceRecordOid);
|
||||
}));
|
||||
|
||||
var hasEmployeeSignature = srOids.All(
|
||||
a => serviceRecordOidsWithSignature.ContainsKey(SignatureType.Employee) &&
|
||||
serviceRecordOidsWithSignature[SignatureType.Employee].Contains(a));
|
||||
|
||||
var anyEmployeeSignatures = srOids.Any(a => serviceRecordOidsWithSignature.ContainsKey(SignatureType.Employee) &&
|
||||
serviceRecordOidsWithSignature[SignatureType.Employee].Contains(a));
|
||||
|
||||
var employeeSignatureState = SignatureState.None;
|
||||
|
||||
if(anyEmployeeSignatures)
|
||||
{
|
||||
employeeSignatureState = SignatureState.Some;
|
||||
}
|
||||
|
||||
if(hasEmployeeSignature)
|
||||
{
|
||||
employeeSignatureState = SignatureState.All;
|
||||
}
|
||||
|
||||
Model.ConfirmationReceiptObject = null;
|
||||
Model.ConfirmationReceiptObject = new ConfirmationReceiptObject(
|
||||
BuildInformationString(),
|
||||
new List<QuittierungsbelegResult>(),
|
||||
BuildInformationString(true),
|
||||
GetTimeSpanString(),
|
||||
hasEmployeeSignature,
|
||||
employeeSignatures.ToList(),
|
||||
employeeSignatureState);
|
||||
|
||||
reportObjects.DoForEach(reportObject =>
|
||||
{
|
||||
var quittierungsbelegItems = new List<QuittierungsbelegItem>();
|
||||
|
||||
reportObject.Services.DoForEach(serviceDetail =>
|
||||
{
|
||||
quittierungsbelegItems.Add(new QuittierungsbelegItem(serviceDetail));
|
||||
});
|
||||
|
||||
if(quittierungsbelegItems.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var oids = quittierungsbelegItems.Select(s => s.ServiceRecordOid).ToList();
|
||||
|
||||
var hasCustomerSignature = oids.All(a => serviceRecordOidsWithSignature.ContainsKey(SignatureType.Customer) &&
|
||||
serviceRecordOidsWithSignature[SignatureType.Customer].Contains(a));
|
||||
|
||||
var employeeSignatureState2 = GetSignatureState(oids, serviceRecordOidsWithSignature, SignatureType.Employee);
|
||||
|
||||
var customerSignatureState = GetSignatureState(oids, serviceRecordOidsWithSignature, SignatureType.Customer);
|
||||
|
||||
var customerSignatureOid = hasCustomerSignature ? customerSignatures.FirstOrDefault(cs => cs.ServiceRecords.All(a => a.Customer.CustomerOid.Equals(reportObject.CustomerOid) && a.ServiceRecordOid.HasValue && serviceRecordOidsWithSignature[SignatureType.Customer].Contains(a.ServiceRecordOid.Value)))?.ConfirmationReceiptSignatureOid : null;
|
||||
var sigs = customerSignatures.Where(cs => cs.ServiceRecords.All(a => a.Customer.CustomerOid.Equals(reportObject.CustomerOid) && a.ServiceRecordOid.HasValue && serviceRecordOidsWithSignature[SignatureType.Customer].Contains(a.ServiceRecordOid.Value))).ToList();
|
||||
|
||||
var customerSignatureOids = sigs.Where(signature => signature.ConfirmationReceiptSignatureOid.HasValue).Select(signature => signature.ConfirmationReceiptSignatureOid.Value).ToList();
|
||||
|
||||
var employeeSignatureOids = new List<long>();
|
||||
|
||||
if(serviceRecordOidsWithSignature.ContainsKey(SignatureType.Employee))
|
||||
{
|
||||
foreach(var signature in employeeSignatures.Where(s => s.ConfirmationReceiptSignatureOid.HasValue))
|
||||
{
|
||||
foreach(var serviceRecord in signature.ServiceRecords)
|
||||
{
|
||||
var oid = serviceRecord.ServiceRecordOid;
|
||||
|
||||
if(oid.HasValue && oids.Contains(oid.Value))
|
||||
{
|
||||
employeeSignatureOids.AddIfNotIn(signature.ConfirmationReceiptSignatureOid.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var customerSignatureServiceRecordOids = new List<long>();
|
||||
var employeeSignatureServiceRecordOids = new List<long>();
|
||||
if(serviceRecordOidsWithSignature.ContainsKey(SignatureType.Customer))
|
||||
{
|
||||
customerSignatureServiceRecordOids = serviceRecordOidsWithSignature[SignatureType.Customer];
|
||||
}
|
||||
|
||||
if(serviceRecordOidsWithSignature.ContainsKey(SignatureType.Employee))
|
||||
{
|
||||
employeeSignatureServiceRecordOids = serviceRecordOidsWithSignature[SignatureType.Employee];
|
||||
}
|
||||
|
||||
foreach(var quittierungsbelegItem in quittierungsbelegItems)
|
||||
{
|
||||
var serviceRecordOid = quittierungsbelegItem.ServiceRecordOid;
|
||||
|
||||
quittierungsbelegItem.HasCustomerSignature = customerSignatureServiceRecordOids.Contains(serviceRecordOid);
|
||||
quittierungsbelegItem.HasEmployeeSignature = employeeSignatureServiceRecordOids.Contains(serviceRecordOid);
|
||||
}
|
||||
|
||||
Model.ConfirmationReceiptObject.ConfirmationReceiptResultList.Add(
|
||||
item: new QuittierungsbelegResult
|
||||
(
|
||||
$"{reportObject.CustomerLastName}, {reportObject.CustomerFirstName}",
|
||||
quittierungsbelegItems,
|
||||
reportObject.CustomerOid,
|
||||
hasCustomerSignature,
|
||||
customerSignatureOid,
|
||||
customerSignatureState,
|
||||
customerSignatureOids,
|
||||
employeeSignatureState2,
|
||||
employeeSignatureOids
|
||||
)
|
||||
);
|
||||
});
|
||||
|
||||
if(Model.ConfirmationReceiptObject.ConfirmationReceiptResultList.All(qbItem => qbItem.Items.Count == 0))
|
||||
{
|
||||
TempData["HasWarningMessage"] = true;
|
||||
}
|
||||
|
||||
return PartialView("QuittierungsbelegsResultPartial", Model);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -100,14 +100,6 @@ function checkForExistingSignature() {
|
||||
}
|
||||
|
||||
function qbFilterSelectionChange() {
|
||||
/*
|
||||
* 0: Für alle Klienten
|
||||
* 1: Für Klienten meiner Teams
|
||||
* 2: Für meine Klienten
|
||||
* 3: Klienten auswählen
|
||||
* 4: Team auswählen
|
||||
*/
|
||||
|
||||
var selectedOption = $("#qb-filter-select option:selected").val();
|
||||
|
||||
switch(selectedOption) {
|
||||
@@ -177,10 +169,16 @@ function getSignatures(signatureOidStrings, containerId) {
|
||||
if(isUndefinedOrNull(json) || !checkJson(json)) {
|
||||
if(!checkJson(json)) {
|
||||
hideSpinner();
|
||||
logError("Fehler loadConfirmationReceiptSignatures: <" + json + ">");
|
||||
logError("Ungültiges JSON in loadConfirmationReceiptSignatures. JSON: <" + json + ">");
|
||||
}
|
||||
|
||||
if(isUndefinedOrNull(json)) {
|
||||
logError("JSON ist undefined oder null in loadConfirmationReceiptSignatures");
|
||||
}
|
||||
}
|
||||
|
||||
logDebug("Gültiges JSON in loadConfirmationReceiptSignatures");
|
||||
|
||||
if(isEmptyOrSpaces(json)) {
|
||||
hideSpinner();
|
||||
return;
|
||||
|
||||
@@ -33,333 +33,195 @@
|
||||
|
||||
$(document).ready(function() {
|
||||
initializeReportView();
|
||||
calcReportFormPrependWidth();
|
||||
});
|
||||
|
||||
$(window).resize(function() {
|
||||
calcReportFormPrependWidth();
|
||||
});
|
||||
|
||||
function getLoadConfirmationReceiptSignaturesUrl() {
|
||||
return "@Url.Action("LoadConfirmationReceiptSignatures")";
|
||||
}
|
||||
|
||||
function createServiceOverview() {
|
||||
try {
|
||||
$("#report-signatures-container").load("@Url.Action("LoadServiceOverview")");
|
||||
} catch (error) {
|
||||
logError(error);
|
||||
}
|
||||
}
|
||||
|
||||
// ToDo: Eigenes calcPrependWidth() schreiben, dass nur ab md oder kleiner aktiv wird. Ansonsten nimmt es den ursprünglichen Breitewert!
|
||||
var reportFormWidth = 0;
|
||||
function calcReportFormPrependWidth() {
|
||||
try {
|
||||
if(reportFormWidth === 0) {
|
||||
reportFormWidth = getMaxWidth("sm-report-prepend-input-group-text");
|
||||
}
|
||||
|
||||
var newWidth = reportFormWidth;
|
||||
|
||||
if($(document).width() <= 768) {
|
||||
newWidth = getMaxWidth("sm-report-prepend-input-group-text");
|
||||
}
|
||||
|
||||
$(".sm-report-prepend-input-group-text").width(newWidth);
|
||||
} catch (error) {
|
||||
logError(error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="container-fluid my-3" id="report-form-container">
|
||||
<div class="row">
|
||||
<div class="col col-12 col-md-6 col-lg-5">
|
||||
@using(Html.BeginForm("CreateServiceOverview", "Report", FormMethod.Post))
|
||||
{
|
||||
<div class="mt-3">
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
@Html.DropDownListFor(m => m.SelectedFilterItem, Model.QbFilterItems, new { id = "qb-filter-select", @class = "custom-select", onchange = "qbFilterSelectionChange()" })
|
||||
</div>
|
||||
<div class="col col-12">
|
||||
<div class="mt-3">
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
@Html.DropDownListFor(m => m.SelectedFilterItem, Model.QbFilterItems, new { id = "qb-filter-select", @class = "custom-select", onchange = "qbFilterSelectionChange()" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1 d-none" id="customer-selection-container">
|
||||
@Html.LabelFor(m => m.SelectedCustomerOid)
|
||||
<div class="mt-3">
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1 d-none" id="customer-selection-container">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
Klient
|
||||
</div>
|
||||
</div>
|
||||
@Html.DropDownListFor(m => m.SelectedCustomerOid, Model.CustomerListItems, new { id = "customers-drop-down", @class = "custom-select", onchange = "onCustomerSelectionChange()" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1 d-none" id="team-selection-container">
|
||||
@Html.LabelFor(m => m.SelectedTeamOid)
|
||||
<div class="mt-3">
|
||||
<div class="form-row">
|
||||
<div class="col-xl">
|
||||
<div class="form-group mb-1 d-none" id="team-selection-container">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
Team
|
||||
</div>
|
||||
</div>
|
||||
@Html.DropDownListFor(m => m.SelectedTeamOid, Model.Teams, new { id = "teams-drop-down", @class = "custom-select", onchange = "checkForExistingSignature()" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<div class="form-row">
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<div class="custom-control custom-checkbox custom-control-inline">
|
||||
<input type="checkbox" onchange="filterCheckBoxChange()" class="custom-control-input" id="selected-employee-cb" data-toggle="collapse" data-target="#employee-select-container" />
|
||||
<label class="custom-control-label" for="selected-employee-cb">Nur für ausgewählten Mitarbeiter</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-1 collapse" id="employee-select-container">
|
||||
@Html.DropDownListFor(m => m.SelectedEmployeeOid, Model.EmployeeItems, new { id = "employee-select", @class = "custom-select", onchange = "filterCheckBoxChange()" })
|
||||
<div class="mt-3">
|
||||
<div class="form-row">
|
||||
<div class="col-xl">
|
||||
<div class="form-group mb-1">
|
||||
<div class="custom-control custom-checkbox custom-control-inline">
|
||||
<input type="checkbox" onchange="filterCheckBoxChange()" class="custom-control-input" id="selected-employee-cb" data-toggle="collapse" data-target="#employee-select-container"/>
|
||||
<label class="custom-control-label" for="selected-employee-cb">Nur für ausgewählten Mitarbeiter</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<div class="custom-control custom-checkbox custom-control-inline">
|
||||
<input type="checkbox" onchange="filterCheckBoxChange()" class="custom-control-input" id="selected-organisation-cb" data-toggle="collapse" data-target="#organisation-select-container" />
|
||||
<label class="custom-control-label" for="selected-organisation-cb">Nur für ausgewählten Kostenträger</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-1 collapse" id="organisation-select-container">
|
||||
@Html.DropDownListFor(m => m.SelectedOrganisationOid, Model.OrganisationItems, new { id = "organisation-select", @class = "custom-select", onchange = "filterCheckBoxChange()" })
|
||||
<div class="form-group mb-1 collapse" id="employee-select-container">
|
||||
@Html.DropDownListFor(m => m.SelectedEmployeeOid, Model.EmployeeItems, new { id = "employee-select", @class = "custom-select", onchange = "filterCheckBoxChange()" })
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl">
|
||||
<div class="form-group mb-1">
|
||||
<div class="custom-control custom-checkbox custom-control-inline">
|
||||
<input type="checkbox" onchange="filterCheckBoxChange()" class="custom-control-input" id="selected-organisation-cb" data-toggle="collapse" data-target="#organisation-select-container"/>
|
||||
<label class="custom-control-label" for="selected-organisation-cb">Nur für ausgewählten Kostenträger</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
<div class="custom-control custom-checkbox custom-control-inline">
|
||||
<input type="checkbox" onchange="filterCheckBoxChange()" class="custom-control-input" id="selected-category-cb" data-toggle="collapse" data-target="#test-div3" />
|
||||
<label class="custom-control-label" for="selected-category-cb">Nur für ausgewählte Leistungskategorie</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-1 collapse" id="test-div3">
|
||||
@Html.DropDownListFor(m => m.SelectedServiceCategoryOid, Model.ServiceCategoryItems, new { id = "category-select", @class = "custom-select", onchange = "filterCheckBoxChange()" })
|
||||
<div class="form-group mb-1 collapse" id="organisation-select-container">
|
||||
@Html.DropDownListFor(m => m.SelectedOrganisationOid, Model.OrganisationItems, new { id = "organisation-select", @class = "custom-select", onchange = "filterCheckBoxChange()" })
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl">
|
||||
<div class="form-group mb-1">
|
||||
<div class="custom-control custom-checkbox custom-control-inline">
|
||||
<input type="checkbox" onchange="filterCheckBoxChange()" class="custom-control-input" id="selected-category-cb" data-toggle="collapse" data-target="#test-div3"/>
|
||||
<label class="custom-control-label" for="selected-category-cb">Nur für ausgewählte Leistungskategorie</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-1 collapse" id="test-div3">
|
||||
@Html.DropDownListFor(m => m.SelectedServiceCategoryOid, Model.ServiceCategoryItems, new { id = "category-select", @class = "custom-select", onchange = "filterCheckBoxChange()" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<div class="form-row">
|
||||
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
@Html.LabelFor(m => m.SelectedMonth)
|
||||
<div class="mt-3">
|
||||
<div class="form-row">
|
||||
<div class="col-lg-5">
|
||||
<div class="form-group mb-1">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text sm-report-prepend-input-group-text">
|
||||
Monat
|
||||
</div>
|
||||
</div>
|
||||
@Html.DropDownListFor(m => m.SelectedMonth, Model.Months, new { id = "month-select", onchange = "onMonthOrYearChange()", @class = "custom-select" })
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
@Html.LabelFor(m => m.SelectedStartDay)
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<div class="form-group mb-1">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text sm-report-prepend-input-group-text">
|
||||
Vom
|
||||
</div>
|
||||
</div>
|
||||
@Html.DropDownListFor(m => m.SelectedStartDay, Model.Days, new { id = "start-day-select", onchange = "checkForExistingSignature()", @class = "custom-select" })
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
@Html.LabelFor(m => m.SelectedEndDay)
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<div class="form-group mb-1">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text sm-report-prepend-input-group-text">
|
||||
Bis
|
||||
</div>
|
||||
</div>
|
||||
@Html.DropDownListFor(m => m.SelectedEndDay, Model.Days, new { id = "end-day-select", onchange = "checkForExistingSignature()", @class = "custom-select" })
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<div class="form-group mb-1">
|
||||
@Html.LabelFor(m => m.SelectedYear)
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="form-group mb-1">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text sm-report-prepend-input-group-text">
|
||||
Jahr
|
||||
</div>
|
||||
</div>
|
||||
@Html.DropDownListFor(m => m.SelectedYear, Model.Years, new { id = "year-select", onchange = "onMonthOrYearChange()", @class = "custom-select" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex bd-highlight mt-3">
|
||||
<div class="mr-auto bd-highlight">
|
||||
<!-- Abstandshalter -->
|
||||
</div>
|
||||
<div class="ml-3 bd-highlight">
|
||||
<button type="submit" class="btn btn-primary" id="create-button">Erstellen</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<div class="col col-12 col-md-6 col-lg-7">
|
||||
<div class="mt-3">
|
||||
<div class="alert alert-primary d-none" role="alert" id="warning-message-container">
|
||||
|
||||
</div>
|
||||
@if(TempData["HasWarningMessage"] != null)
|
||||
{
|
||||
<div class="alert alert-primary" role="alert">
|
||||
Es wurden keine auswertbaren Einträge gefunden
|
||||
</div>
|
||||
}
|
||||
else if(Model?.ConfirmationReceiptObject?.ConfirmationReceiptResultList?.Count > 0)
|
||||
{
|
||||
<div class="alert alert-info" role="alert">
|
||||
@Model.ConfirmationReceiptObject.Information
|
||||
</div>
|
||||
|
||||
<input type="hidden" id="service-record-count" value="@Model.ConfirmationReceiptObject.NumberOfServiceRecords" />
|
||||
<input type="hidden" id="signature-canvas-information" value="@Model.ConfirmationReceiptObject.SignatureCanvasInformation" />
|
||||
|
||||
foreach(var result in Model.ConfirmationReceiptObject.ConfirmationReceiptResultList)
|
||||
{
|
||||
<div class="card w-100 mb-3">
|
||||
<div class="card-header" onclick="cardHeaderClick('#chevron-@result.Identifier', '#collapse-result-@result.Identifier')">
|
||||
@{
|
||||
var customerSignatureOidsString = "";
|
||||
|
||||
foreach(var signatureOid in result.CustomerSignatureOids)
|
||||
{
|
||||
customerSignatureOidsString += signatureOid + ",";
|
||||
}
|
||||
|
||||
var employeeSignatureOidsString = "";
|
||||
|
||||
foreach(var employeeSignatureOid in result.EmployeeSignatureOids)
|
||||
{
|
||||
employeeSignatureOidsString += employeeSignatureOid + ",";
|
||||
}
|
||||
|
||||
var employeeSignatureState = result.EmployeeSignatureState;
|
||||
var customerSignatureState = result.CustomerSignatureState;
|
||||
|
||||
var canCustomerSign = customerSignatureState != SignatureState.All;
|
||||
var canEmployeeSign = employeeSignatureState != SignatureState.All;
|
||||
|
||||
var employeeName = Model.Employee.ToString();
|
||||
|
||||
//overwrite, signatureOidsString, canSign, cardBodyId, customerOid, numberOfEntries, customerName, timeSpan, isEmployeeSignature
|
||||
var methodName = "showSignaturePad(" +
|
||||
$"{result.HasCustomerSignature.ToString().ToLower()}, " +
|
||||
$"'{customerSignatureOidsString}', " +
|
||||
$"{canCustomerSign.ToString().ToLower()}, " +
|
||||
$"'#collapse-result-{result.Identifier}', " +
|
||||
$"{result.CustomerOid}, " +
|
||||
$"{result.Items.Count}, " +
|
||||
$"'{result.CustomerName}', " +
|
||||
$"'{Model.ConfirmationReceiptObject.TimeSpanString}', " +
|
||||
"false, " +
|
||||
$"'{employeeName}')" ;
|
||||
|
||||
//overwrite, signatureOidsString, canSign, cardBodyId, customerOid, numberOfEntries, customerName, timeSpan, isEmployeeSignature
|
||||
var overwrite_ssp = (employeeSignatureState == SignatureState.All).ToString().ToLower();
|
||||
var signatureOidsString_ssp = employeeSignatureOidsString;
|
||||
var canSign_ssp = canEmployeeSign.ToString().ToLower();
|
||||
var cardBodyId_ssp = $"#collapse-result-{result.Identifier}";
|
||||
var numberOfEntries_ssp = result.Items.Count;
|
||||
var customerOid_ssp = result.CustomerOid;
|
||||
var customerName_ssp = result.CustomerName;
|
||||
var timeSpan_ssp = Model.ConfirmationReceiptObject.TimeSpanString;
|
||||
|
||||
|
||||
|
||||
var employeeMethodName = $"showSignaturePad({overwrite_ssp}, '{signatureOidsString_ssp}', {canSign_ssp}, '{cardBodyId_ssp}', {customerOid_ssp}, {numberOfEntries_ssp}, '{customerName_ssp}', '{timeSpan_ssp}', true, '{employeeName}')";
|
||||
|
||||
var employeeBtnColor = "transparent";
|
||||
var customerBtnColor = "transparent";
|
||||
var employeeIcon = "check";
|
||||
var customerIcon = "check";
|
||||
|
||||
switch(employeeSignatureState)
|
||||
{
|
||||
case SignatureState.All:
|
||||
employeeBtnColor = "greenyellow";
|
||||
employeeIcon = "check-double";
|
||||
break;
|
||||
case SignatureState.Some:
|
||||
employeeBtnColor = "yellow";
|
||||
break;
|
||||
case SignatureState.None:
|
||||
employeeBtnColor = "transparent";
|
||||
break;
|
||||
}
|
||||
|
||||
switch(customerSignatureState)
|
||||
{
|
||||
case SignatureState.All:
|
||||
customerBtnColor = "greenyellow";
|
||||
customerIcon = "check-double";
|
||||
break;
|
||||
case SignatureState.Some:
|
||||
customerBtnColor = "yellow";
|
||||
break;
|
||||
case SignatureState.None:
|
||||
customerBtnColor = "transparent";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<i class="fas fa-chevron-down h-100 text-primary" id="chevron-@result.Identifier"></i>
|
||||
</div>
|
||||
<p class="form-control text-primary border-0 bg-transparent" style="user-select: none !important;">
|
||||
@result.CustomerName
|
||||
</p>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-bewo-customers rounded mr-1" type="button" onclick="@methodName">
|
||||
<span class="fas fa-signature"></span>
|
||||
<span class="fas fa-@customerIcon" style="color: @customerBtnColor !important"></span>
|
||||
K
|
||||
</button>
|
||||
<button class="btn btn-bewo-employee rounded" type="button" onclick="@employeeMethodName">
|
||||
<span class="fas fa-signature"></span>
|
||||
<span class="fas fa-@employeeIcon" style="color: @employeeBtnColor !important"></span>
|
||||
M
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse" id="collapse-result-@result.Identifier">
|
||||
<div class="card-body mx-0 px-0">
|
||||
<div class="container-fluid">
|
||||
@foreach(var item in result.Items)
|
||||
{
|
||||
<div class="card w-100 mb-3">
|
||||
<div class="card-header" onclick="cardHeaderClick('#chevron-@item.Identifier', '#collapse-item-@item.Identifier')">
|
||||
<div class="d-inline-flex">
|
||||
<i class="fas fa-chevron-down h-100 text-primary" id="chevron-@item.Identifier"></i>
|
||||
</div>
|
||||
<div class="p2 d-inline-flex text-primary h-100">
|
||||
<button type="button" class="btn btn-link">
|
||||
@item.DateTimeString
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@{
|
||||
var hasEmployeeSignatureTextColorClass = item.HasEmployeeSignature ? "text-bewo-employee" : "text-light";
|
||||
}
|
||||
|
||||
<span class="fas fa-check h-100 @hasEmployeeSignatureTextColorClass float-right pt-2"></span>
|
||||
|
||||
<span class="float-right pt-2 text-light">m</span>
|
||||
|
||||
@if(item.HasCustomerSignature)
|
||||
{
|
||||
<span class="fas fa-check h-100 text-bewo-customers float-right pt-2"></span>
|
||||
}
|
||||
</div>
|
||||
<div class="collapse" id="collapse-item-@item.Identifier">
|
||||
<div class="card-body">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col text-secondary">
|
||||
Kontaktart:
|
||||
</div>
|
||||
<div class="col">
|
||||
@item.Kontaktart
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-secondary">
|
||||
Anzahl Klienten:
|
||||
</div>
|
||||
<div class="col">
|
||||
@item.CustomersCount
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-secondary">
|
||||
FLS in Minuten (ohne 1,2):
|
||||
</div>
|
||||
<div class="col">
|
||||
@item.Minutes
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-secondary">
|
||||
Mitarbeiter:
|
||||
</div>
|
||||
<div class="col">
|
||||
@item.Employees
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
||||
<div class="d-flex bd-highlight mt-3">
|
||||
<div class="mr-auto bd-highlight">
|
||||
<!-- Abstandshalter -->
|
||||
</div>
|
||||
<div class="ml-3 bd-highlight">
|
||||
<button type="button" class="btn btn-primary" id="create-button" onclick="createServiceOverview()">Erstellen</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col col-12" id="report-signatures-container">
|
||||
@Html.Partial("QuittierungsbelegsResultPartial", Model)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
format: "LT"
|
||||
});
|
||||
|
||||
$("#scheduler-date-picker").on("change.datetimepicker", ({ date, oldDate }) => {
|
||||
$("#scheduler-date-picker").on("change.datetimepicker", () => {
|
||||
submitSchedulerDateForm();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -143,36 +143,9 @@
|
||||
|
||||
previousWidth = "";
|
||||
function logSize() {
|
||||
/*
|
||||
Extra small <576px
|
||||
Small ≥576px
|
||||
Medium ≥768px
|
||||
Large ≥992px
|
||||
Extra large ≥1200px
|
||||
*/
|
||||
|
||||
var val = "xs";
|
||||
var width = $(document).width();
|
||||
|
||||
if(width < 567) {
|
||||
val = "xs";
|
||||
}
|
||||
|
||||
if(width >= 576) {
|
||||
val = "sm";
|
||||
}
|
||||
|
||||
if(width >= 768) {
|
||||
val = "md";
|
||||
}
|
||||
|
||||
if(width >= 992) {
|
||||
val = "lg";
|
||||
}
|
||||
|
||||
if(width >= 1200) {
|
||||
val = "xl";
|
||||
}
|
||||
var val = widthToBootstrapVal(width);
|
||||
|
||||
if(previousWidth !== val) {
|
||||
console.log("%c" + val, "font-size: 16px; font-weight: bold; color: #00F2FF;");
|
||||
@@ -181,6 +154,43 @@
|
||||
previousWidth = val;
|
||||
}
|
||||
|
||||
function widthToBootstrapVal(width) {
|
||||
try {
|
||||
/*
|
||||
Extra small <576px
|
||||
Small ≥576px
|
||||
Medium ≥768px
|
||||
Large ≥992px
|
||||
Extra large ≥1200px
|
||||
*/
|
||||
var result = "xs";
|
||||
|
||||
if(width < 567) {
|
||||
result = "xs";
|
||||
}
|
||||
|
||||
if(width >= 576) {
|
||||
result = "sm";
|
||||
}
|
||||
|
||||
if(width >= 768) {
|
||||
result = "md";
|
||||
}
|
||||
|
||||
if(width >= 992) {
|
||||
result = "lg";
|
||||
}
|
||||
|
||||
if(width >= 1200) {
|
||||
result = "xl";
|
||||
}
|
||||
|
||||
return result;
|
||||
} catch(error) {
|
||||
logError(error);
|
||||
}
|
||||
}
|
||||
|
||||
function countdownClick() {
|
||||
$("#countdown-tooltip").tooltip('show');
|
||||
|
||||
@@ -192,7 +202,7 @@
|
||||
var initialVonWidth = 0;
|
||||
function calcPrependWidth() {
|
||||
try {
|
||||
logInfo3($(document).width());
|
||||
//logInfo3($(document).width());
|
||||
|
||||
// Prepend-Elemente
|
||||
if(initialVonWidth === 0 && $.isNumeric(getMaxWidth("sm-prepend-input-group-text"))) {
|
||||
|
||||
@@ -47,10 +47,10 @@ namespace BeWo.Data
|
||||
{
|
||||
#if DEBUG
|
||||
//TODO: wieder einkommentieren!
|
||||
//var hierarchy = (Hierarchy)LogManager.GetRepository();
|
||||
//var logger = (Logger)hierarchy.GetLogger("NHibernate.SQL");
|
||||
//logger.AddAppender(new TraceAppender { Layout = new SimpleLayout() });
|
||||
//hierarchy.Configured = true;
|
||||
var hierarchy = (Hierarchy)LogManager.GetRepository();
|
||||
var logger = (Logger)hierarchy.GetLogger("NHibernate.SQL");
|
||||
logger.AddAppender(new TraceAppender { Layout = new SimpleLayout() });
|
||||
hierarchy.Configured = true;
|
||||
#endif
|
||||
_SessionFactories[MultitenancyOperationContextExt.Current.Tenant] = new Configuration().Configure(BS.Shared.Core.Utils.CreateSavePath(AppDomain.CurrentDomain.BaseDirectory, @"Multitenancy\" + MultitenancyOperationContextExt.Current.Tenant + ".config")).BuildSessionFactory();
|
||||
}
|
||||
|
||||
28
Report/DefaultReports/Quittierungsbeleg.Designer.cs
generated
28
Report/DefaultReports/Quittierungsbeleg.Designer.cs
generated
@@ -62,7 +62,6 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell43 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell49 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.formattingRuleStartDate = new DevExpress.XtraReports.UI.FormattingRule();
|
||||
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
|
||||
this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
@@ -119,12 +118,13 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
|
||||
this.xrLabel17 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.fieldKontaktArt = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTableAbwesenheiten)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
|
||||
//
|
||||
// Detail
|
||||
@@ -535,10 +535,6 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrTableCell49.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
|
||||
this.xrTableCell49.Weight = 0.44692737430167606D;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
|
||||
//
|
||||
// formattingRuleStartDate
|
||||
//
|
||||
this.formattingRuleStartDate.Condition = "[StartDate2] < [StartDate]";
|
||||
@@ -786,12 +782,11 @@ namespace BeWo.Report.DefaultReports
|
||||
// xrPictureBox2
|
||||
//
|
||||
this.xrPictureBox2.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Tag", null, "CustomerSignature")});
|
||||
this.xrPictureBox2.LocationFloat = new DevExpress.Utils.PointFloat(230F, 227F);
|
||||
new DevExpress.XtraReports.UI.XRBinding("Image", null, "CustomerSignature")});
|
||||
this.xrPictureBox2.LocationFloat = new DevExpress.Utils.PointFloat(230F, 214.5F);
|
||||
this.xrPictureBox2.Name = "xrPictureBox2";
|
||||
this.xrPictureBox2.SizeF = new System.Drawing.SizeF(100F, 23F);
|
||||
this.xrPictureBox2.SizeF = new System.Drawing.SizeF(136.8472F, 35.50002F);
|
||||
this.xrPictureBox2.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
|
||||
this.xrPictureBox2.BeforePrint += new System.Drawing.Printing.PrintEventHandler(this.CustomerSignature_BeforePrint);
|
||||
//
|
||||
// lblUnterschriftKlient
|
||||
//
|
||||
@@ -1202,13 +1197,12 @@ namespace BeWo.Report.DefaultReports
|
||||
// xrPictureBox1
|
||||
//
|
||||
this.xrPictureBox1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Tag", null, "EmployeeSignature")});
|
||||
this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(535.6389F, 227F);
|
||||
new DevExpress.XtraReports.UI.XRBinding("Image", null, "EmployeeSignature")});
|
||||
this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(535.6389F, 214.5F);
|
||||
this.xrPictureBox1.Name = "xrPictureBox1";
|
||||
this.xrPictureBox1.Scripts.OnBeforePrint = "xrPictureBox1_BeforePrint";
|
||||
this.xrPictureBox1.SizeF = new System.Drawing.SizeF(100F, 23F);
|
||||
this.xrPictureBox1.SizeF = new System.Drawing.SizeF(199.3611F, 35.50002F);
|
||||
this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
|
||||
this.xrPictureBox1.BeforePrint += new System.Drawing.Printing.PrintEventHandler(this.EmployeeSignature_BeforePrint);
|
||||
//
|
||||
// xrLabel17
|
||||
//
|
||||
@@ -1227,6 +1221,10 @@ namespace BeWo.Report.DefaultReports
|
||||
this.fieldKontaktArt.FieldType = DevExpress.XtraReports.UI.FieldType.String;
|
||||
this.fieldKontaktArt.Name = "fieldKontaktArt";
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
|
||||
//
|
||||
// Quittierungsbeleg
|
||||
//
|
||||
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
|
||||
@@ -1252,10 +1250,10 @@ namespace BeWo.Report.DefaultReports
|
||||
this.Version = "17.1";
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTableAbwesenheiten)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
|
||||
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using BeWo.Report;
|
||||
using BeWo.Report.ReportObjects;
|
||||
using BS.Shared.Core;
|
||||
using DevExpress.XtraReports.UI;
|
||||
@@ -110,55 +109,6 @@ namespace BeWo.Report.DefaultReports
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Wie anzeigen? Alle?
|
||||
private void EmployeeSignature_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
|
||||
{
|
||||
return;
|
||||
|
||||
if(sender is XRPictureBox pictureBox)
|
||||
{
|
||||
var base64String = pictureBox.Tag as string;
|
||||
|
||||
if(!string.IsNullOrWhiteSpace(base64String))
|
||||
{
|
||||
var base64Data = Regex.Match(base64String, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
|
||||
var binaryData = Convert.FromBase64String(base64Data);
|
||||
var image = ByteArrayToImage(binaryData);
|
||||
|
||||
pictureBox.Image = image;
|
||||
}
|
||||
else
|
||||
{
|
||||
pictureBox.Image = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Wie anzeigen? Alle?
|
||||
// TODO: Visibile der Datumstextboxen auf true setzen!
|
||||
private void CustomerSignature_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
|
||||
{
|
||||
return;
|
||||
|
||||
if(sender is XRPictureBox pictureBox)
|
||||
{
|
||||
var base64String = pictureBox.Tag as string;
|
||||
|
||||
if(!string.IsNullOrWhiteSpace(base64String))
|
||||
{
|
||||
var base64Data = Regex.Match(base64String, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
|
||||
var binaryData = Convert.FromBase64String(base64Data);
|
||||
var image = ByteArrayToImage(binaryData);
|
||||
|
||||
pictureBox.Image = image;
|
||||
}
|
||||
else
|
||||
{
|
||||
pictureBox.Image = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void picSignature_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
|
||||
{
|
||||
XRPictureBox xrBox = sender as XRPictureBox;
|
||||
|
||||
@@ -115,6 +115,10 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.fieldKontaktArt = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrPictureBox2 = new DevExpress.XtraReports.UI.XRPictureBox();
|
||||
this.xrLabel16 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
|
||||
@@ -746,6 +750,10 @@ namespace BeWo.Report.DefaultReports
|
||||
// GroupFooter1
|
||||
//
|
||||
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrLabel16,
|
||||
this.xrPictureBox1,
|
||||
this.xrPictureBox2,
|
||||
this.xrLabel14,
|
||||
this.lblUnterschriftKlient,
|
||||
this.lblUnterschriftMitarbeiter,
|
||||
this.xrTableAbwesenheiten,
|
||||
@@ -1177,6 +1185,45 @@ namespace BeWo.Report.DefaultReports
|
||||
this.fieldKontaktArt.FieldType = DevExpress.XtraReports.UI.FieldType.String;
|
||||
this.fieldKontaktArt.Name = "fieldKontaktArt";
|
||||
//
|
||||
// xrLabel14
|
||||
//
|
||||
this.xrLabel14.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "CustomerSignatureDate", "{0:dd.MM.yyyy,}")});
|
||||
this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(130F, 227F);
|
||||
this.xrLabel14.Name = "xrLabel14";
|
||||
this.xrLabel14.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel14.SizeF = new System.Drawing.SizeF(100F, 23F);
|
||||
this.xrLabel14.Visible = false;
|
||||
//
|
||||
// xrPictureBox2
|
||||
//
|
||||
this.xrPictureBox2.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Image", null, "CustomerSignature")});
|
||||
this.xrPictureBox2.LocationFloat = new DevExpress.Utils.PointFloat(230F, 214.5F);
|
||||
this.xrPictureBox2.Name = "xrPictureBox2";
|
||||
this.xrPictureBox2.SizeF = new System.Drawing.SizeF(136.8472F, 35.50002F);
|
||||
this.xrPictureBox2.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
|
||||
//
|
||||
// xrLabel16
|
||||
//
|
||||
this.xrLabel16.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeSignatureDate", "{0:dd.MM.yyyy,}")});
|
||||
this.xrLabel16.LocationFloat = new DevExpress.Utils.PointFloat(435.1388F, 227F);
|
||||
this.xrLabel16.Name = "xrLabel16";
|
||||
this.xrLabel16.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel16.SizeF = new System.Drawing.SizeF(100F, 23F);
|
||||
this.xrLabel16.Visible = false;
|
||||
//
|
||||
// xrPictureBox1
|
||||
//
|
||||
this.xrPictureBox1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Image", null, "EmployeeSignature")});
|
||||
this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(535.6389F, 214.5F);
|
||||
this.xrPictureBox1.Name = "xrPictureBox1";
|
||||
this.xrPictureBox1.Scripts.OnBeforePrint = "xrPictureBox1_BeforePrint";
|
||||
this.xrPictureBox1.SizeF = new System.Drawing.SizeF(199.3611F, 35.50002F);
|
||||
this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
|
||||
//
|
||||
// Quittierungsbeleg2
|
||||
//
|
||||
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
|
||||
@@ -1297,5 +1344,9 @@ namespace BeWo.Report.DefaultReports
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel17;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel18;
|
||||
private DevExpress.XtraReports.UI.XRPictureBox picSignature;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel14;
|
||||
private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox2;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel16;
|
||||
private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ namespace BeWo.Report.ReportObjects
|
||||
public Bitmap EmployeeSignature { get; set; }
|
||||
public DateTime? EmployeeSignatureDate { get; set; }
|
||||
|
||||
public string CustomerSignature { get; set; }
|
||||
public Bitmap CustomerSignature { get; set; }
|
||||
public DateTime? CustomerSignatureDate { get; set; }
|
||||
|
||||
public int Year { get; set; }
|
||||
@@ -1395,7 +1395,7 @@ namespace BeWo.Report.ReportObjects
|
||||
|
||||
var mandatorSettings = lResult.Mandator?.Settings;
|
||||
|
||||
if (mandatorSettings != null && mandatorSettings.Contains("ShowEmployeeSignature=1"))
|
||||
if(mandatorSettings != null && mandatorSettings.Contains("ShowEmployeeSignature=1"))
|
||||
{
|
||||
var serviceRecordOids = lResult.Services.Select(service => service.ServiceRecordOid).ToList();
|
||||
|
||||
@@ -1409,8 +1409,11 @@ namespace BeWo.Report.ReportObjects
|
||||
|
||||
var customerSignature = DAOFactory.SearchDAO.GetConfirmationReceiptSignatureForServiceRecords(serviceRecordOids, SignatureType.Customer);
|
||||
|
||||
lResult.CustomerSignature = customerSignature?.SignatureImage;
|
||||
lResult.CustomerSignatureDate = customerSignature?.InsTs;
|
||||
if(!(customerSignature?.SignatureImage is null))
|
||||
{
|
||||
lResult.CustomerSignature = ImageUtils.ConvertBase64StringToBitmap(customerSignature.SignatureImage);
|
||||
lResult.CustomerSignatureDate = customerSignature.InsTs;
|
||||
}
|
||||
}
|
||||
|
||||
return lResult;
|
||||
|
||||
36
ReportImp/HausDuelken/Quittierungsbeleg.Designer.cs
generated
36
ReportImp/HausDuelken/Quittierungsbeleg.Designer.cs
generated
@@ -113,7 +113,7 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.lblFLSInMinuten = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
|
||||
@@ -764,7 +764,7 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrLabel13,
|
||||
this.xrLabel12,
|
||||
this.xrLabel11,
|
||||
this.xrLabel10,
|
||||
this.lblFLSInMinuten,
|
||||
this.xrLabel9,
|
||||
this.xrLabel1,
|
||||
this.xrPictureBox1,
|
||||
@@ -1149,22 +1149,22 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrLabel11.Text = "Ohne Faktor 1,2 (wird erst bei Abrechnung eingerechnet)";
|
||||
this.xrLabel11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
|
||||
//
|
||||
// xrLabel10
|
||||
// lblFLSInMinuten
|
||||
//
|
||||
this.xrLabel10.BackColor = System.Drawing.Color.Gainsboro;
|
||||
this.xrLabel10.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrLabel10.Font = new System.Drawing.Font("Arial", 10F);
|
||||
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(415F, 0F);
|
||||
this.xrLabel10.Name = "xrLabel10";
|
||||
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
|
||||
this.xrLabel10.SizeF = new System.Drawing.SizeF(320F, 20F);
|
||||
this.xrLabel10.StylePriority.UseBackColor = false;
|
||||
this.xrLabel10.StylePriority.UseBorders = false;
|
||||
this.xrLabel10.StylePriority.UseFont = false;
|
||||
this.xrLabel10.StylePriority.UsePadding = false;
|
||||
this.xrLabel10.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel10.Text = "Fachleistungen in Minuten";
|
||||
this.xrLabel10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
this.lblFLSInMinuten.BackColor = System.Drawing.Color.Gainsboro;
|
||||
this.lblFLSInMinuten.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.lblFLSInMinuten.Font = new System.Drawing.Font("Arial", 10F);
|
||||
this.lblFLSInMinuten.LocationFloat = new DevExpress.Utils.PointFloat(415F, 0F);
|
||||
this.lblFLSInMinuten.Name = "lblFLSInMinuten";
|
||||
this.lblFLSInMinuten.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
|
||||
this.lblFLSInMinuten.SizeF = new System.Drawing.SizeF(320F, 20F);
|
||||
this.lblFLSInMinuten.StylePriority.UseBackColor = false;
|
||||
this.lblFLSInMinuten.StylePriority.UseBorders = false;
|
||||
this.lblFLSInMinuten.StylePriority.UseFont = false;
|
||||
this.lblFLSInMinuten.StylePriority.UsePadding = false;
|
||||
this.lblFLSInMinuten.StylePriority.UseTextAlignment = false;
|
||||
this.lblFLSInMinuten.Text = "Fachleistungen in Minuten";
|
||||
this.lblFLSInMinuten.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
//
|
||||
// xrLabel9
|
||||
//
|
||||
@@ -1310,7 +1310,7 @@ namespace BeWo.Report.DefaultReports
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
|
||||
private DevExpress.XtraReports.UI.CalculatedField fieldKontaktArt;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel11;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel10;
|
||||
private DevExpress.XtraReports.UI.XRLabel lblFLSInMinuten;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel9;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel13;
|
||||
|
||||
@@ -69,6 +69,7 @@ namespace BeWo.Report.DefaultReports
|
||||
{
|
||||
lblBewilligteFLS.Text = "Bewilligte ASS wöchentlich";
|
||||
tcFLSIn.Text = "ASS in";
|
||||
lblFLSInMinuten.Text = "Assistenzleistungen in Minuten";
|
||||
}
|
||||
|
||||
if (cats.Count == 1)
|
||||
|
||||
@@ -59,7 +59,6 @@ namespace LebensWert
|
||||
this.columnWegepauschaleQuali = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell32 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.formattingRuleStartDate = new DevExpress.XtraReports.UI.FormattingRule();
|
||||
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
|
||||
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
@@ -91,6 +90,7 @@ namespace LebensWert
|
||||
this.formattingRuleCostBearer = new DevExpress.XtraReports.UI.FormattingRule();
|
||||
this.formattingRuleEmployeeName = new DevExpress.XtraReports.UI.FormattingRule();
|
||||
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
|
||||
this.xrRichText5 = new DevExpress.XtraReports.UI.XRRichText();
|
||||
this.xrLabel16 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
|
||||
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
|
||||
@@ -104,11 +104,11 @@ namespace LebensWert
|
||||
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.fieldKontaktArt = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.wennGruppeAnzPersonen = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.xrRichText5 = new DevExpress.XtraReports.UI.XRRichText();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrRichText5)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
|
||||
//
|
||||
// Detail
|
||||
@@ -189,7 +189,7 @@ namespace LebensWert
|
||||
// xrTableCell14
|
||||
//
|
||||
this.xrTableCell14.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.StartDateMinutes", "{0:HH:mm}")});
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.TimeRangeString", "{0:HH:mm}")});
|
||||
this.xrTableCell14.Font = new System.Drawing.Font("Calibri", 10F);
|
||||
this.xrTableCell14.Name = "xrTableCell14";
|
||||
this.xrTableCell14.StylePriority.UseBorders = false;
|
||||
@@ -523,10 +523,6 @@ namespace LebensWert
|
||||
this.xrTableCell32.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
|
||||
this.xrTableCell32.Weight = 0.28195599876122152D;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
|
||||
//
|
||||
// formattingRuleStartDate
|
||||
//
|
||||
this.formattingRuleStartDate.Condition = "[StartDate2] < [StartDate]";
|
||||
@@ -903,7 +899,7 @@ namespace LebensWert
|
||||
this.xrLabel20.StylePriority.UseFont = false;
|
||||
this.xrLabel20.StylePriority.UseForeColor = false;
|
||||
this.xrLabel20.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel20.Text = "VARO Sozialagentur GbR, Berliner Str. 61, 31174 Schellerten";
|
||||
this.xrLabel20.Text = "Lebenswert, Kai Lippel, Am Heinsood 11, 31832 Springe ";
|
||||
this.xrLabel20.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
|
||||
//
|
||||
// xrLabel19
|
||||
@@ -1017,6 +1013,16 @@ namespace LebensWert
|
||||
this.topMarginBand1.HeightF = 121.8751F;
|
||||
this.topMarginBand1.Name = "topMarginBand1";
|
||||
//
|
||||
// xrRichText5
|
||||
//
|
||||
this.xrRichText5.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.xrRichText5.LocationFloat = new DevExpress.Utils.PointFloat(218.707F, 10.00001F);
|
||||
this.xrRichText5.Name = "xrRichText5";
|
||||
this.xrRichText5.SerializableRtfString = resources.GetString("xrRichText5.SerializableRtfString");
|
||||
this.xrRichText5.SizeF = new System.Drawing.SizeF(677.0001F, 70.88823F);
|
||||
this.xrRichText5.StylePriority.UseBackColor = false;
|
||||
this.xrRichText5.StylePriority.UseFont = false;
|
||||
//
|
||||
// xrLabel16
|
||||
//
|
||||
this.xrLabel16.Font = new System.Drawing.Font("Calibri", 10F);
|
||||
@@ -1224,15 +1230,9 @@ namespace LebensWert
|
||||
this.wennGruppeAnzPersonen.Expression = "Iif([CustomerCount] > 1,[CustomerCount],\'\')";
|
||||
this.wennGruppeAnzPersonen.Name = "wennGruppeAnzPersonen";
|
||||
//
|
||||
// xrRichText5
|
||||
// bindingSource1
|
||||
//
|
||||
this.xrRichText5.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.xrRichText5.LocationFloat = new DevExpress.Utils.PointFloat(218.707F, 10.00001F);
|
||||
this.xrRichText5.Name = "xrRichText5";
|
||||
this.xrRichText5.SerializableRtfString = resources.GetString("xrRichText5.SerializableRtfString");
|
||||
this.xrRichText5.SizeF = new System.Drawing.SizeF(677.0001F, 70.88823F);
|
||||
this.xrRichText5.StylePriority.UseBackColor = false;
|
||||
this.xrRichText5.StylePriority.UseFont = false;
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
|
||||
//
|
||||
// QuittierungsbelegHannover
|
||||
//
|
||||
@@ -1260,8 +1260,8 @@ namespace LebensWert
|
||||
this.Version = "17.1";
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrRichText5)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
|
||||
|
||||
}
|
||||
|
||||
@@ -49,6 +49,12 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Quittierungsbeleg.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Quittierungsbeleg.Designer.cs">
|
||||
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ServiceInvoiceReport.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
@@ -88,6 +94,10 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Quittierungsbeleg.resx">
|
||||
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ServiceInvoiceReport.resx">
|
||||
<DependentUpon>ServiceInvoiceReport.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
||||
1370
ReportImp/MobileEV/Quittierungsbeleg.Designer.cs
generated
Normal file
1370
ReportImp/MobileEV/Quittierungsbeleg.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
146
ReportImp/MobileEV/Quittierungsbeleg.cs
Normal file
146
ReportImp/MobileEV/Quittierungsbeleg.cs
Normal file
@@ -0,0 +1,146 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using BeWo.Report;
|
||||
using BeWo.Report.ReportObjects;
|
||||
using BS.Shared.Core;
|
||||
using DevExpress.XtraReports.UI;
|
||||
|
||||
namespace MobileEV
|
||||
{
|
||||
public partial class Quittierungsbeleg : XtraReport, IBeWoReport<ServicesOverviewRO>
|
||||
{
|
||||
public Quittierungsbeleg()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void SetReportDataSource(ServicesOverviewRO pRO)
|
||||
{
|
||||
|
||||
// Get calling method name
|
||||
//StackTrace stackTrace = new StackTrace();
|
||||
//Debug.WriteLine(stackTrace.GetFrame(1).GetMethod().Name);
|
||||
|
||||
bool hatGruppen = false;
|
||||
|
||||
//if (pRO == null)
|
||||
// return;
|
||||
|
||||
if (pRO.Services != null)
|
||||
{
|
||||
List<ServicesOverviewRO.ServiceDetail> servicesBillable = new List<ServicesOverviewRO.ServiceDetail>();
|
||||
|
||||
foreach (var sd in pRO.Services)
|
||||
{
|
||||
if (sd.IsBillable || sd.ServiceCategory == "Mittelbare Leistung" && sd.ServiceDescription == "Terminausfall")
|
||||
{
|
||||
if (sd.ServiceCategory == "Mittelbare Leistung" && sd.ServiceDescription == "Terminausfall")
|
||||
sd.Notice5 = "T";
|
||||
else if (sd.IsGroup)
|
||||
sd.Notice5 = "GR";
|
||||
else if (!sd.IsGroup)
|
||||
sd.Notice5 = "E";
|
||||
|
||||
ServicesOverviewRO.CreateSignatureString(sd);
|
||||
if (sd.IsGroup)
|
||||
{
|
||||
//sd.Notice5 = String.Format("{0} Teilnehmer", sd.CustomerCount);
|
||||
hatGruppen = true;
|
||||
}
|
||||
servicesBillable.Add(sd);
|
||||
}
|
||||
}
|
||||
|
||||
pRO.Services = servicesBillable;
|
||||
}
|
||||
|
||||
if (String.IsNullOrWhiteSpace(pRO.AbsenceTimes))
|
||||
{
|
||||
lblHatAbwesenheiten.Text = "X";
|
||||
}
|
||||
|
||||
if (!hatGruppen)
|
||||
{
|
||||
lblHatGruppen.Text = "X";
|
||||
}
|
||||
|
||||
ErstelleAbwesenheitenTabelle(pRO);
|
||||
|
||||
bindingSource1.DataSource = pRO;
|
||||
}
|
||||
|
||||
private void ErstelleAbwesenheitenTabelle(ServicesOverviewRO pRo)
|
||||
{
|
||||
if (pRo.Abwesenheiten != null)
|
||||
{
|
||||
int newRows = 0;
|
||||
int index = 1;
|
||||
foreach (var at in pRo.Abwesenheiten)
|
||||
{
|
||||
DevExpress.XtraReports.UI.XRTableRow row = null;
|
||||
if (index < xrTableAbwesenheiten.Rows.Count)
|
||||
{
|
||||
row = xrTableAbwesenheiten.Rows[index];
|
||||
}
|
||||
else
|
||||
{
|
||||
row = xrTableAbwesenheiten.InsertRowBelow(xrTableAbwesenheiten.Rows[xrTableAbwesenheiten.Rows.Count - 1]);
|
||||
newRows++;
|
||||
}
|
||||
|
||||
row.Cells[0].Text = String.Format("{0:dd.MM.yyyy}", at.Start);
|
||||
int? days = null;
|
||||
|
||||
if (at.End.HasValue)
|
||||
{
|
||||
row.Cells[1].Text = String.Format("{0:dd.MM.yyyy}", at.End);
|
||||
days = (int)at.End.Value.Subtract(at.Start.Value).TotalDays + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
row.Cells[1].Text = "unbekannt";
|
||||
}
|
||||
|
||||
row.Cells[2].Text = String.Format("{0:0}", days);
|
||||
|
||||
index++;
|
||||
}
|
||||
|
||||
if (newRows > 0)
|
||||
{
|
||||
lblUnterschriftKlient.Top += newRows * 20;
|
||||
lblUnterschriftMitarbeiter.Top += newRows * 20;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void picSignature_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
|
||||
{
|
||||
XRPictureBox xrBox = sender as XRPictureBox;
|
||||
//var test = this.GetCurrent
|
||||
string base64String = xrBox.Tag as string;
|
||||
if (!String.IsNullOrWhiteSpace(base64String))
|
||||
{
|
||||
var base64Data = Regex.Match(base64String, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
|
||||
var binData = Convert.FromBase64String(base64Data);
|
||||
Image img = ByteArrayToImage(binData);
|
||||
xrBox.Image = Utils.CropImage(img);
|
||||
}
|
||||
else
|
||||
{
|
||||
xrBox.Image = null;
|
||||
}
|
||||
}
|
||||
|
||||
public Image ByteArrayToImage(byte[] byteArrayIn)
|
||||
{
|
||||
using(var memoryStream = new MemoryStream(byteArrayIn))
|
||||
{
|
||||
return Image.FromStream(memoryStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
129
ReportImp/MobileEV/Quittierungsbeleg.resx
Normal file
129
ReportImp/MobileEV/Quittierungsbeleg.resx
Normal file
@@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>21, 17</value>
|
||||
</metadata>
|
||||
<data name="xrRichText2.SerializableRtfString" xml:space="preserve">
|
||||
<value>ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAEEAcgBpAGEAbAA7AH0AfQB7AFwAYwBvAGwAbwByAHQAYgBsACAAOwBcAHIAZQBkADAAXABnAHIAZQBlAG4AMABcAGIAbAB1AGUAMAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADIANQA1ACAAOwB9AHsAXAAqAFwAZABlAGYAYwBoAHAAIABcAGYAMQBcAGYAcwAyADQAfQB7AFwAcwB0AHkAbABlAHMAaABlAGUAdAAgAHsAXABxAGwAXABmADEAXABmAHMAMgA0ACAATgBvAHIAbQBhAGwAOwB9AHsAXAAqAFwAYwBzADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABEAGUAZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgAIABGAG8AbgB0ADsAfQB7AFwAKgBcAGMAcwAyAFwAcwBiAGEAcwBlAGQAbwBuADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABMAGkAbgBlACAATgB1AG0AYgBlAHIAOwB9AHsAXAAqAFwAYwBzADMAXAB1AGwAXABmADEAXABmAHMAMgA0AFwAYwBmADIAIABIAHkAcABlAHIAbABpAG4AawA7AH0AewBcACoAXAB0AHMANABcAHQAcwByAG8AdwBkAFwAZgAxAFwAZgBzADIANABcAHEAbABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgBsADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAGwAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAYgAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgB0ADMAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAE4AbwByAG0AYQBsACAAVABhAGIAbABlADsAfQB7AFwAKgBcAHQAcwA1AFwAdABzAHIAbwB3AGQAXABzAGIAYQBzAGUAZABvAG4ANABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHIAYgByAGQAcgB0AFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGwAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAYgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgByAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGgAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAdgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwB2AGUAcgB0AGEAbAB0AFwAYwBsAHQAeABsAHIAdABiACAAVABhAGIAbABlACAAUwBpAG0AcABsAGUAIAAxADsAfQB9AHsAXAAqAFwAbABpAHMAdABvAHYAZQByAHIAaQBkAGUAdABhAGIAbABlAH0AXABuAG8AdQBpAGMAbwBtAHAAYQB0AFwAcwBwAGwAeQB0AHcAbgBpAG4AZQBcAGgAdABtAGEAdQB0AHMAcABcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAEsAZQBpAG4AZQAgAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXAB1AGwAXABmADIAXABmAHMAMgAwAFwAYwBmADEAIABLAHIAYQBuAGsAZQBuAGgAYQB1AHMAYQB1AGYAZQBuAHQAaABhAGwAdABlAH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAdQBsAFwAZgAyAFwAZgBzADIAMABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAdQBsAFwAZgAyAFwAZgBzADIAMABcAGMAZgAxACAAYgBlAGsAYQBuAG4AdAAgAG8AZABlAHIAIAB9AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAHUAbABcAGYAMgBcAGYAcwAyADAAXABjAGYAMQBcAHAAYQByAFwAcABhAHIAZABcAHAAbABhAGkAbgBcAHEAbAB7AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAHUAbABcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAGEAYgByAGUAYwBoAG4AdQBuAGcAcwByAGUAbABlAHYAYQBuAHQAfQB7AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgACAAaQBtACAAQQBiAHIAZQBjAGgAbgB1AG4AZwBzAHoAZQBpAHQAcgBhAHUAbQB9AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMQBcAGYAcwAyADQAXABjAGYAMQBcAHAAYQByAH0A</value>
|
||||
</data>
|
||||
<data name="xrRichText1.SerializableRtfString" xml:space="preserve">
|
||||
<value>ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAEEAcgBpAGEAbAA7AH0AfQB7AFwAYwBvAGwAbwByAHQAYgBsACAAOwBcAHIAZQBkADAAXABnAHIAZQBlAG4AMABcAGIAbAB1AGUAMAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADIANQA1ACAAOwB9AHsAXAAqAFwAZABlAGYAYwBoAHAAIABcAGYAMQBcAGYAcwAyADQAfQB7AFwAcwB0AHkAbABlAHMAaABlAGUAdAAgAHsAXABxAGwAXABmADEAXABmAHMAMgA0ACAATgBvAHIAbQBhAGwAOwB9AHsAXAAqAFwAYwBzADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABEAGUAZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgAIABGAG8AbgB0ADsAfQB7AFwAKgBcAGMAcwAyAFwAcwBiAGEAcwBlAGQAbwBuADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABMAGkAbgBlACAATgB1AG0AYgBlAHIAOwB9AHsAXAAqAFwAYwBzADMAXAB1AGwAXABmADEAXABmAHMAMgA0AFwAYwBmADIAIABIAHkAcABlAHIAbABpAG4AawA7AH0AewBcACoAXAB0AHMANABcAHQAcwByAG8AdwBkAFwAZgAxAFwAZgBzADIANABcAHEAbABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgBsADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAGwAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAYgAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgB0ADMAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAE4AbwByAG0AYQBsACAAVABhAGIAbABlADsAfQB7AFwAKgBcAHQAcwA1AFwAdABzAHIAbwB3AGQAXABzAGIAYQBzAGUAZABvAG4ANABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHIAYgByAGQAcgB0AFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGwAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAYgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgByAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGgAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAdgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwB2AGUAcgB0AGEAbAB0AFwAYwBsAHQAeABsAHIAdABiACAAVABhAGIAbABlACAAUwBpAG0AcABsAGUAIAAxADsAfQB9AHsAXAAqAFwAbABpAHMAdABvAHYAZQByAHIAaQBkAGUAdABhAGIAbABlAH0AXABuAG8AdQBpAGMAbwBtAHAAYQB0AFwAcwBwAGwAeQB0AHcAbgBpAG4AZQBcAGgAdABtAGEAdQB0AHMAcABcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAEsAZQBpAG4AZQAgAH0AewBcAHUAbABcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAEcAcgB1AHAAcABlAG4AYQBuAGcAZQBiAG8AdABlAH0AewBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgACAAaQBtACAAQQBiAHIAZQBjAGgAbgB1AG4AZwBzAHoAZQBpAHQAcgBhAHUAbQB9AFwAZgAxAFwAZgBzADIANABcAGMAZgAxAFwAcABhAHIAfQA=</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -1,5 +1,5 @@
|
||||
using BeWo.Report.ReportObjects;
|
||||
namespace Kundexyz
|
||||
namespace MobileEV
|
||||
{
|
||||
partial class ServiceInvoiceReport
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using BeWo.Report.ReportObjects;
|
||||
using BeWo.Report;
|
||||
using DevExpress.XtraReports.UI;
|
||||
|
||||
namespace Kundexyz
|
||||
namespace MobileEV
|
||||
{
|
||||
public partial class ServiceInvoiceReport : XtraReport, IBeWoReport<ServiceInvoiceRO>
|
||||
{
|
||||
|
||||
2
ReportImp/MobileEV/SettlementReport.Designer.cs
generated
2
ReportImp/MobileEV/SettlementReport.Designer.cs
generated
@@ -1,4 +1,4 @@
|
||||
namespace Kundexyz
|
||||
namespace MobileEV
|
||||
{
|
||||
partial class Spitzabrechnung
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@ using BeWo.Report;
|
||||
using BeWo.Report.ReportObjects;
|
||||
using BS.Shared.DataContracts;
|
||||
|
||||
namespace Kundexyz
|
||||
namespace MobileEV
|
||||
{
|
||||
public partial class Spitzabrechnung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<SettlementRO>
|
||||
{
|
||||
|
||||
22
ReportImp/MobileEV/SettlementReport2.Designer.cs
generated
22
ReportImp/MobileEV/SettlementReport2.Designer.cs
generated
@@ -1,5 +1,5 @@
|
||||
using BeWo.Report.ReportObjects;
|
||||
namespace Kundexyz.Alt
|
||||
namespace MobileEV.Alt
|
||||
{
|
||||
partial class Spitzabrechnung
|
||||
{
|
||||
@@ -170,8 +170,8 @@ namespace Kundexyz.Alt
|
||||
// xrTableCell22
|
||||
//
|
||||
this.xrTableCell22.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell22.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
this.xrTableCell22.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell22.Name = "xrTableCell22";
|
||||
this.xrTableCell22.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
@@ -499,7 +499,7 @@ namespace Kundexyz.Alt
|
||||
// xrTableCell53
|
||||
//
|
||||
this.xrTableCell53.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell53.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
this.xrTableCell53.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell53.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.GrossAmountTotal", "{0:c}")});
|
||||
@@ -549,7 +549,7 @@ namespace Kundexyz.Alt
|
||||
// xrTableCell48
|
||||
//
|
||||
this.xrTableCell48.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell48.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
this.xrTableCell48.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell48.Name = "xrTableCell48";
|
||||
this.xrTableCell48.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
@@ -579,7 +579,7 @@ namespace Kundexyz.Alt
|
||||
//
|
||||
// xrTableCell50
|
||||
//
|
||||
this.xrTableCell50.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
this.xrTableCell50.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell50.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AmountBillableTotal", "{0:c}")});
|
||||
@@ -603,7 +603,7 @@ namespace Kundexyz.Alt
|
||||
//
|
||||
// xrTableCell51
|
||||
//
|
||||
this.xrTableCell51.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
this.xrTableCell51.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell51.Name = "xrTableCell51";
|
||||
this.xrTableCell51.StylePriority.UseBorders = false;
|
||||
@@ -633,7 +633,7 @@ namespace Kundexyz.Alt
|
||||
// xrTableCell55
|
||||
//
|
||||
this.xrTableCell55.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell55.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
this.xrTableCell55.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell55.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AmountAdvancedPayments", "{0:c}")});
|
||||
@@ -670,7 +670,7 @@ namespace Kundexyz.Alt
|
||||
//
|
||||
// xrTableCell57
|
||||
//
|
||||
this.xrTableCell57.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
this.xrTableCell57.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell57.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Eigenbeteiligung", "{0:c}")});
|
||||
@@ -695,7 +695,7 @@ namespace Kundexyz.Alt
|
||||
// xrTableCell58
|
||||
//
|
||||
this.xrTableCell58.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell58.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
this.xrTableCell58.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell58.Name = "xrTableCell58";
|
||||
this.xrTableCell58.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
@@ -726,7 +726,7 @@ namespace Kundexyz.Alt
|
||||
//
|
||||
// xrTableCell60
|
||||
//
|
||||
this.xrTableCell60.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
this.xrTableCell60.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell60.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Claim", "{0:c}")});
|
||||
|
||||
@@ -6,7 +6,7 @@ using DevExpress.XtraReports.UI;
|
||||
using BeWo.Report.ReportObjects;
|
||||
using BeWo.Report;
|
||||
|
||||
namespace Kundexyz.Alt
|
||||
namespace MobileEV.Alt
|
||||
{
|
||||
public partial class Spitzabrechnung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<Settlement2RO>
|
||||
{
|
||||
|
||||
@@ -1841,21 +1841,24 @@ namespace BeWo.Service.ServiceImplementations
|
||||
|
||||
var taskAppointmentDCs = DAOFactory.SearchDAO.LoadTaskAppointmentsForEmployee(pEmployeeOid, false);
|
||||
|
||||
foreach (var task in taskAppointmentDCs)
|
||||
foreach(var task in taskAppointmentDCs)
|
||||
{
|
||||
if (task.DueDate.HasValue)
|
||||
if(task.DueDate.HasValue)
|
||||
{
|
||||
task.StartDate = task.DueDate;
|
||||
task.EndDate = task.DueDate;
|
||||
}
|
||||
|
||||
|
||||
if (task.SupportConceptList != null && task.SupportConceptList.Count > 0)
|
||||
if(task.SupportConceptList != null && task.SupportConceptList.Count > 0)
|
||||
{
|
||||
task.Subject = String.Format("{0}: {1}", task.SupportConceptList[0].Customer.Person.LastNameFirstName, task.Subject);
|
||||
task.Subject = $"{task.SupportConceptList[0].Customer.Person.LastNameFirstName}: {task.Subject}";
|
||||
}
|
||||
}
|
||||
var monday = DateTime.Today.FirstDateOfWeek(pInvertalStart.AddDays(-1 * pBufferSize).GetIso8601WeekOfYear());
|
||||
|
||||
var bufferdIntervalStart = pInvertalStart.AddDays(-1 * pBufferSize);
|
||||
var weekOfYear = bufferdIntervalStart.GetIso8601WeekOfYear();
|
||||
|
||||
var monday = bufferdIntervalStart.FirstDateOfWeek(weekOfYear);
|
||||
|
||||
if(!pEmployeeAppointmentsOid.HasValue)
|
||||
{
|
||||
@@ -1863,8 +1866,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
}
|
||||
|
||||
var appointments = DAOFactory.SearchDAO.LoadFilteredAppointmentsForEmployee(false, pEmployeeAppointmentsOid.Value, monday, monday.AddDays(3 * pBufferSize), new List<long>(), new List<long>(), new List<long>(), false, false, false, false, true, false).ToList();
|
||||
|
||||
|
||||
|
||||
UserDC user;
|
||||
if (LoggedInUserOperationContextExt.Current != null && LoggedInUserOperationContextExt.Current.User != null)
|
||||
{
|
||||
@@ -1877,10 +1879,14 @@ namespace BeWo.Service.ServiceImplementations
|
||||
|
||||
var loggedInEmployee = DAOFactory.GenericDAO.LoadByID<Employee>(pEmployeeOid);
|
||||
|
||||
// ToDo: Ist der Originator in der Mitarbeiterliste, soll der Termin angezeigt werden
|
||||
if(!user.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen))
|
||||
{
|
||||
var appointments2remove = appointments.Where(appointment => appointment.EmployeeList.Count > 0 && appointment.EmployeeList.Any(a => !a.Employee.Equals(loggedInEmployee))).ToList();
|
||||
appointments = appointments.Except(appointments2remove).ToList();
|
||||
var appointments2Remove = appointments.Where(appointment =>
|
||||
appointment.EmployeeList.Count > 0 &&
|
||||
appointment.EmployeeList.All(a => !a.Employee.Equals(loggedInEmployee))).ToList();
|
||||
|
||||
appointments = appointments.Except(appointments2Remove).ToList();
|
||||
}
|
||||
|
||||
// TODO: Testen!
|
||||
|
||||
@@ -812,7 +812,7 @@ namespace BS.Shared.Core
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!isOwnAppointment || hasEmployees)
|
||||
if(!isOwnAppointment || hasEmployees && !employeeListOnlyContainsEmployee)
|
||||
{
|
||||
result = isAllowedToEditEmployeeAppointments;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user