Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo
This commit is contained in:
@@ -738,6 +738,7 @@
|
||||
<Content Include="Views\DevExpressScheduler\CustomAppointmentToolTipPartial.cshtml" />
|
||||
<Content Include="Views\DevExpressScheduler\CustomAppointmentDragToolTip.cshtml" />
|
||||
<Content Include="Views\DevExpressScheduler\CustomSelectionToolTip.cshtml" />
|
||||
<Content Include="Views\DevExpressScheduler\CustomRecurrencePartial.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="packages.config" />
|
||||
|
||||
@@ -246,6 +246,8 @@ textarea {
|
||||
--danger: #dc3545;
|
||||
--light: #f8f9fa;
|
||||
--dark: #343a40;
|
||||
--input-group-form-control-border: #CED4DA;
|
||||
--input-group-form-control: #E9ECEF;
|
||||
--bewo-apt-confirm: #48D44E;
|
||||
--bewo-apt-maybe: #B927D9;
|
||||
--bewo-apt-decline: #AB0030;
|
||||
@@ -1939,6 +1941,46 @@ pre code {
|
||||
background-color: rgb(185.0216751269, 187.09, 189.1583248731);
|
||||
}
|
||||
|
||||
.table-input-group-form-control-border,
|
||||
.table-input-group-form-control-border > th,
|
||||
.table-input-group-form-control-border > td {
|
||||
background-color: rgb(241.28, 242.96, 244.64);
|
||||
}
|
||||
.table-input-group-form-control-border th,
|
||||
.table-input-group-form-control-border td,
|
||||
.table-input-group-form-control-border thead th,
|
||||
.table-input-group-form-control-border tbody + tbody {
|
||||
border-color: rgb(229.52, 232.64, 235.76);
|
||||
}
|
||||
|
||||
.table-hover .table-input-group-form-control-border:hover {
|
||||
background-color: rgb(226.7509302326, 230.21, 233.6690697674);
|
||||
}
|
||||
.table-hover .table-input-group-form-control-border:hover > td,
|
||||
.table-hover .table-input-group-form-control-border:hover > th {
|
||||
background-color: rgb(226.7509302326, 230.21, 233.6690697674);
|
||||
}
|
||||
|
||||
.table-input-group-form-control,
|
||||
.table-input-group-form-control > th,
|
||||
.table-input-group-form-control > td {
|
||||
background-color: rgb(248.84, 249.68, 250.52);
|
||||
}
|
||||
.table-input-group-form-control th,
|
||||
.table-input-group-form-control td,
|
||||
.table-input-group-form-control thead th,
|
||||
.table-input-group-form-control tbody + tbody {
|
||||
border-color: rgb(243.56, 245.12, 246.68);
|
||||
}
|
||||
|
||||
.table-hover .table-input-group-form-control:hover {
|
||||
background-color: rgb(234.0768421053, 236.93, 239.7831578947);
|
||||
}
|
||||
.table-hover .table-input-group-form-control:hover > td,
|
||||
.table-hover .table-input-group-form-control:hover > th {
|
||||
background-color: rgb(234.0768421053, 236.93, 239.7831578947);
|
||||
}
|
||||
|
||||
.table-bewo-apt-confirm,
|
||||
.table-bewo-apt-confirm > th,
|
||||
.table-bewo-apt-confirm > td {
|
||||
@@ -3207,6 +3249,66 @@ fieldset:disabled a.btn {
|
||||
box-shadow: 0 0 0 0.2rem rgba(82.45, 87.55, 92.65, 0.5);
|
||||
}
|
||||
|
||||
.btn-input-group-form-control-border {
|
||||
color: #212529;
|
||||
background-color: #CED4DA;
|
||||
border-color: #CED4DA;
|
||||
}
|
||||
.btn-input-group-form-control-border:hover {
|
||||
color: #212529;
|
||||
background-color: rgb(184.2063953488, 192.875, 201.5436046512);
|
||||
border-color: rgb(176.9418604651, 186.5, 196.0581395349);
|
||||
}
|
||||
.btn-input-group-form-control-border:focus, .btn-input-group-form-control-border.focus {
|
||||
color: #212529;
|
||||
background-color: rgb(184.2063953488, 192.875, 201.5436046512);
|
||||
border-color: rgb(176.9418604651, 186.5, 196.0581395349);
|
||||
box-shadow: 0 0 0 0.2rem rgba(180.05, 185.75, 191.45, 0.5);
|
||||
}
|
||||
.btn-input-group-form-control-border.disabled, .btn-input-group-form-control-border:disabled {
|
||||
color: #212529;
|
||||
background-color: #CED4DA;
|
||||
border-color: #CED4DA;
|
||||
}
|
||||
.btn-input-group-form-control-border:not(:disabled):not(.disabled):active, .btn-input-group-form-control-border:not(:disabled):not(.disabled).active, .show > .btn-input-group-form-control-border.dropdown-toggle {
|
||||
color: #212529;
|
||||
background-color: rgb(176.9418604651, 186.5, 196.0581395349);
|
||||
border-color: rgb(169.6773255814, 180.125, 190.5726744186);
|
||||
}
|
||||
.btn-input-group-form-control-border:not(:disabled):not(.disabled):active:focus, .btn-input-group-form-control-border:not(:disabled):not(.disabled).active:focus, .show > .btn-input-group-form-control-border.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(180.05, 185.75, 191.45, 0.5);
|
||||
}
|
||||
|
||||
.btn-input-group-form-control {
|
||||
color: #212529;
|
||||
background-color: #E9ECEF;
|
||||
border-color: #E9ECEF;
|
||||
}
|
||||
.btn-input-group-form-control:hover {
|
||||
color: #212529;
|
||||
background-color: rgb(210.8552631579, 216.875, 222.8947368421);
|
||||
border-color: rgb(203.4736842105, 210.5, 217.5263157895);
|
||||
}
|
||||
.btn-input-group-form-control:focus, .btn-input-group-form-control.focus {
|
||||
color: #212529;
|
||||
background-color: rgb(210.8552631579, 216.875, 222.8947368421);
|
||||
border-color: rgb(203.4736842105, 210.5, 217.5263157895);
|
||||
box-shadow: 0 0 0 0.2rem rgba(203, 206.15, 209.3, 0.5);
|
||||
}
|
||||
.btn-input-group-form-control.disabled, .btn-input-group-form-control:disabled {
|
||||
color: #212529;
|
||||
background-color: #E9ECEF;
|
||||
border-color: #E9ECEF;
|
||||
}
|
||||
.btn-input-group-form-control:not(:disabled):not(.disabled):active, .btn-input-group-form-control:not(:disabled):not(.disabled).active, .show > .btn-input-group-form-control.dropdown-toggle {
|
||||
color: #212529;
|
||||
background-color: rgb(203.4736842105, 210.5, 217.5263157895);
|
||||
border-color: rgb(196.0921052632, 204.125, 212.1578947368);
|
||||
}
|
||||
.btn-input-group-form-control:not(:disabled):not(.disabled):active:focus, .btn-input-group-form-control:not(:disabled):not(.disabled).active:focus, .show > .btn-input-group-form-control.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(203, 206.15, 209.3, 0.5);
|
||||
}
|
||||
|
||||
.btn-bewo-apt-confirm {
|
||||
color: #212529;
|
||||
background-color: #48D44E;
|
||||
@@ -4127,6 +4229,56 @@ fieldset:disabled a.btn {
|
||||
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
|
||||
}
|
||||
|
||||
.btn-outline-input-group-form-control-border {
|
||||
color: #CED4DA;
|
||||
border-color: #CED4DA;
|
||||
}
|
||||
.btn-outline-input-group-form-control-border:hover {
|
||||
color: #212529;
|
||||
background-color: #CED4DA;
|
||||
border-color: #CED4DA;
|
||||
}
|
||||
.btn-outline-input-group-form-control-border:focus, .btn-outline-input-group-form-control-border.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5);
|
||||
}
|
||||
.btn-outline-input-group-form-control-border.disabled, .btn-outline-input-group-form-control-border:disabled {
|
||||
color: #CED4DA;
|
||||
background-color: transparent;
|
||||
}
|
||||
.btn-outline-input-group-form-control-border:not(:disabled):not(.disabled):active, .btn-outline-input-group-form-control-border:not(:disabled):not(.disabled).active, .show > .btn-outline-input-group-form-control-border.dropdown-toggle {
|
||||
color: #212529;
|
||||
background-color: #CED4DA;
|
||||
border-color: #CED4DA;
|
||||
}
|
||||
.btn-outline-input-group-form-control-border:not(:disabled):not(.disabled):active:focus, .btn-outline-input-group-form-control-border:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-input-group-form-control-border.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5);
|
||||
}
|
||||
|
||||
.btn-outline-input-group-form-control {
|
||||
color: #E9ECEF;
|
||||
border-color: #E9ECEF;
|
||||
}
|
||||
.btn-outline-input-group-form-control:hover {
|
||||
color: #212529;
|
||||
background-color: #E9ECEF;
|
||||
border-color: #E9ECEF;
|
||||
}
|
||||
.btn-outline-input-group-form-control:focus, .btn-outline-input-group-form-control.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(233, 236, 239, 0.5);
|
||||
}
|
||||
.btn-outline-input-group-form-control.disabled, .btn-outline-input-group-form-control:disabled {
|
||||
color: #E9ECEF;
|
||||
background-color: transparent;
|
||||
}
|
||||
.btn-outline-input-group-form-control:not(:disabled):not(.disabled):active, .btn-outline-input-group-form-control:not(:disabled):not(.disabled).active, .show > .btn-outline-input-group-form-control.dropdown-toggle {
|
||||
color: #212529;
|
||||
background-color: #E9ECEF;
|
||||
border-color: #E9ECEF;
|
||||
}
|
||||
.btn-outline-input-group-form-control:not(:disabled):not(.disabled):active:focus, .btn-outline-input-group-form-control:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-input-group-form-control.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(233, 236, 239, 0.5);
|
||||
}
|
||||
|
||||
.btn-outline-bewo-apt-confirm {
|
||||
color: #48D44E;
|
||||
border-color: #48D44E;
|
||||
@@ -6598,6 +6750,32 @@ a.badge-dark:focus, a.badge-dark.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
|
||||
}
|
||||
|
||||
.badge-input-group-form-control-border {
|
||||
color: #212529;
|
||||
background-color: #CED4DA;
|
||||
}
|
||||
a.badge-input-group-form-control-border:hover, a.badge-input-group-form-control-border:focus {
|
||||
color: #212529;
|
||||
background-color: rgb(176.9418604651, 186.5, 196.0581395349);
|
||||
}
|
||||
a.badge-input-group-form-control-border:focus, a.badge-input-group-form-control-border.focus {
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5);
|
||||
}
|
||||
|
||||
.badge-input-group-form-control {
|
||||
color: #212529;
|
||||
background-color: #E9ECEF;
|
||||
}
|
||||
a.badge-input-group-form-control:hover, a.badge-input-group-form-control:focus {
|
||||
color: #212529;
|
||||
background-color: rgb(203.4736842105, 210.5, 217.5263157895);
|
||||
}
|
||||
a.badge-input-group-form-control:focus, a.badge-input-group-form-control.focus {
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 0.2rem rgba(233, 236, 239, 0.5);
|
||||
}
|
||||
|
||||
.badge-bewo-apt-confirm {
|
||||
color: #212529;
|
||||
background-color: #48D44E;
|
||||
@@ -7051,6 +7229,30 @@ a.badge-bewo-report:focus, a.badge-bewo-report.focus {
|
||||
color: rgb(4.1779310345, 4.66, 5.1420689655);
|
||||
}
|
||||
|
||||
.alert-input-group-form-control-border {
|
||||
color: rgb(107.12, 110.24, 113.36);
|
||||
background-color: rgb(245.2, 246.4, 247.6);
|
||||
border-color: rgb(241.28, 242.96, 244.64);
|
||||
}
|
||||
.alert-input-group-form-control-border hr {
|
||||
border-top-color: rgb(226.7509302326, 230.21, 233.6690697674);
|
||||
}
|
||||
.alert-input-group-form-control-border .alert-link {
|
||||
color: rgb(82.3416981132, 84.74, 87.1383018868);
|
||||
}
|
||||
|
||||
.alert-input-group-form-control {
|
||||
color: rgb(121.16, 122.72, 124.28);
|
||||
background-color: rgb(250.6, 251.2, 251.8);
|
||||
border-color: rgb(248.84, 249.68, 250.52);
|
||||
}
|
||||
.alert-input-group-form-control hr {
|
||||
border-top-color: rgb(234.0768421053, 236.93, 239.7831578947);
|
||||
}
|
||||
.alert-input-group-form-control .alert-link {
|
||||
color: rgb(95.9841525424, 97.22, 98.4558474576);
|
||||
}
|
||||
|
||||
.alert-bewo-apt-confirm {
|
||||
color: rgb(37.44, 110.24, 40.56);
|
||||
background-color: rgb(218.4, 246.4, 219.6);
|
||||
@@ -7696,6 +7898,34 @@ a.badge-bewo-report:focus, a.badge-bewo-report.focus {
|
||||
border-color: rgb(27.04, 30.16, 33.28);
|
||||
}
|
||||
|
||||
.list-group-item-input-group-form-control-border {
|
||||
color: rgb(107.12, 110.24, 113.36);
|
||||
background-color: rgb(241.28, 242.96, 244.64);
|
||||
}
|
||||
.list-group-item-input-group-form-control-border.list-group-item-action:hover, .list-group-item-input-group-form-control-border.list-group-item-action:focus {
|
||||
color: rgb(107.12, 110.24, 113.36);
|
||||
background-color: rgb(226.7509302326, 230.21, 233.6690697674);
|
||||
}
|
||||
.list-group-item-input-group-form-control-border.list-group-item-action.active {
|
||||
color: #fff;
|
||||
background-color: rgb(107.12, 110.24, 113.36);
|
||||
border-color: rgb(107.12, 110.24, 113.36);
|
||||
}
|
||||
|
||||
.list-group-item-input-group-form-control {
|
||||
color: rgb(121.16, 122.72, 124.28);
|
||||
background-color: rgb(248.84, 249.68, 250.52);
|
||||
}
|
||||
.list-group-item-input-group-form-control.list-group-item-action:hover, .list-group-item-input-group-form-control.list-group-item-action:focus {
|
||||
color: rgb(121.16, 122.72, 124.28);
|
||||
background-color: rgb(234.0768421053, 236.93, 239.7831578947);
|
||||
}
|
||||
.list-group-item-input-group-form-control.list-group-item-action.active {
|
||||
color: #fff;
|
||||
background-color: rgb(121.16, 122.72, 124.28);
|
||||
border-color: rgb(121.16, 122.72, 124.28);
|
||||
}
|
||||
|
||||
.list-group-item-bewo-apt-confirm {
|
||||
color: rgb(37.44, 110.24, 40.56);
|
||||
background-color: rgb(203.76, 242.96, 205.44);
|
||||
@@ -8861,6 +9091,26 @@ button.bg-dark:focus {
|
||||
background-color: rgb(29.1379310345, 32.5, 35.8620689655) !important;
|
||||
}
|
||||
|
||||
.bg-input-group-form-control-border {
|
||||
background-color: #CED4DA !important;
|
||||
}
|
||||
|
||||
a.bg-input-group-form-control-border:hover, a.bg-input-group-form-control-border:focus,
|
||||
button.bg-input-group-form-control-border:hover,
|
||||
button.bg-input-group-form-control-border:focus {
|
||||
background-color: rgb(176.9418604651, 186.5, 196.0581395349) !important;
|
||||
}
|
||||
|
||||
.bg-input-group-form-control {
|
||||
background-color: #E9ECEF !important;
|
||||
}
|
||||
|
||||
a.bg-input-group-form-control:hover, a.bg-input-group-form-control:focus,
|
||||
button.bg-input-group-form-control:hover,
|
||||
button.bg-input-group-form-control:focus {
|
||||
background-color: rgb(203.4736842105, 210.5, 217.5263157895) !important;
|
||||
}
|
||||
|
||||
.bg-bewo-apt-confirm {
|
||||
background-color: #48D44E !important;
|
||||
}
|
||||
@@ -9181,6 +9431,14 @@ button.bg-bewo-report:focus {
|
||||
border-color: #343a40 !important;
|
||||
}
|
||||
|
||||
.border-input-group-form-control-border {
|
||||
border-color: #CED4DA !important;
|
||||
}
|
||||
|
||||
.border-input-group-form-control {
|
||||
border-color: #E9ECEF !important;
|
||||
}
|
||||
|
||||
.border-bewo-apt-confirm {
|
||||
border-color: #48D44E !important;
|
||||
}
|
||||
@@ -12316,6 +12574,22 @@ a.text-dark:hover, a.text-dark:focus {
|
||||
color: rgb(17.7068965517, 19.75, 21.7931034483) !important;
|
||||
}
|
||||
|
||||
.text-input-group-form-control-border {
|
||||
color: #CED4DA !important;
|
||||
}
|
||||
|
||||
a.text-input-group-form-control-border:hover, a.text-input-group-form-control-border:focus {
|
||||
color: rgb(162.4127906977, 173.75, 185.0872093023) !important;
|
||||
}
|
||||
|
||||
.text-input-group-form-control {
|
||||
color: #E9ECEF !important;
|
||||
}
|
||||
|
||||
a.text-input-group-form-control:hover, a.text-input-group-form-control:focus {
|
||||
color: rgb(188.7105263158, 197.75, 206.7894736842) !important;
|
||||
}
|
||||
|
||||
.text-bewo-apt-confirm {
|
||||
color: #48D44E !important;
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
$theme-colors: ( "bewo-apt-confirm": #48D44E, "bewo-apt-maybe": #B927D9, "bewo-apt-decline": #AB0030, "bewo-archived-sc": #343A40, "bewo-deleted-sc": #F87F7C, "bewo-person": #B5662D, "bewo-organisation": #C8C000, "bewo-custom-goal": #4682B4, "service-record-marked": #c5e3ff, "bewo-teams": #565999, "bewo-goal-rating": #0000ff, "bewo-dev": #00cf7c, "primary": #FF5A00, "bewo-customers": #3b7799, "bewo-service-records": #c80000, "bewo-calendar": #04b4d0, "bewo-is-about-to-expire": #FF0000, "bewo-expires-in-three-months": #FF9400, "bewo-group-booking": #f9e79f, "bewo-customer-card-header": #AB4A07, "bewo-person-card-header": #AB4A07, "bewo-employee": #45993B, "bewo-resource": #04B4D0, "bewo-task-red": #993B3B, "bewo-report": #995E3B );
|
||||
$theme-colors: ( "input-group-form-control-border": #CED4DA, "input-group-form-control": #E9ECEF, "bewo-apt-confirm": #48D44E, "bewo-apt-maybe": #B927D9, "bewo-apt-decline": #AB0030, "bewo-archived-sc": #343A40, "bewo-deleted-sc": #F87F7C, "bewo-person": #B5662D, "bewo-organisation": #C8C000, "bewo-custom-goal": #4682B4, "service-record-marked": #c5e3ff, "bewo-teams": #565999, "bewo-goal-rating": #0000ff, "bewo-dev": #00cf7c, "primary": #FF5A00, "bewo-customers": #3b7799, "bewo-service-records": #c80000, "bewo-calendar": #04b4d0, "bewo-is-about-to-expire": #FF0000, "bewo-expires-in-three-months": #FF9400, "bewo-group-booking": #f9e79f, "bewo-customer-card-header": #AB4A07, "bewo-person-card-header": #AB4A07, "bewo-employee": #45993B, "bewo-resource": #04B4D0, "bewo-task-red": #993B3B, "bewo-report": #995E3B );
|
||||
|
||||
a.disabled {
|
||||
pointer-events: none;
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Report;
|
||||
using BeWo.Service.Plugins;
|
||||
using BeWo.View.Navigation.Filter;
|
||||
using BeWoPlanerMobil.Models;
|
||||
using BeWoPlanerMobil.Service;
|
||||
using BeWoPlanerMobil.Util;
|
||||
using Bogus.DataSets;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
|
||||
// Controller des Auswertungsmoduls
|
||||
namespace BeWoPlanerMobil.Controllers
|
||||
@@ -275,7 +277,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
|
||||
Model.SelectedCustomReport = Model.CustomReports.FirstOrDefault(cr => cr.QueryOid == selectedQuery.Oid);
|
||||
|
||||
Model.SelectedQueryOid = selectedQuery.Oid;
|
||||
Model.SelectedQuery = selectedQuery;
|
||||
|
||||
foreach(var parameter in selectedQuery?.Parameter ?? new List<QueryParamDC>())
|
||||
@@ -561,7 +563,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
if(parameterOid.HasValue)
|
||||
{
|
||||
var queryParameterType = (QueryParameterType)parameterType;
|
||||
var queryParameterType = (QueryParameterType) parameterType;
|
||||
|
||||
switch(queryParameterType)
|
||||
{
|
||||
@@ -571,29 +573,39 @@ namespace BeWoPlanerMobil.Controllers
|
||||
if(objectOid is null || objectOid.Value.Equals(0))
|
||||
{
|
||||
Model.SelectedValues.Remove(parameterOid.Value);
|
||||
Model.QueryCustomerOids.Remove(parameterOid.Value);
|
||||
break;
|
||||
}
|
||||
|
||||
var selectedCustomer = Model.AllCustomersForQueries.FirstOrDefault(customer => customer.CustomerOid.Equals(objectOid.Value));
|
||||
|
||||
if(selectedCustomer is object)
|
||||
{
|
||||
Model.SelectedValues.AddOrUpdate(parameterOid.Value, new SelectedValue(queryParameterType, selectedCustomer));
|
||||
Model.QueryCustomerOids.AddOrUpdate(parameterOid.Value, selectedCustomer.CustomerOid);
|
||||
}
|
||||
break;
|
||||
case QueryParameterType.Employee:
|
||||
if(objectOid is null || objectOid.Value.Equals(0))
|
||||
{
|
||||
Model.SelectedValues.Remove(parameterOid.Value);
|
||||
Model.QueryEmployeeOids.Remove(parameterOid.Value);
|
||||
break;
|
||||
}
|
||||
|
||||
var selectedEmployee = Model.AllEmployeesForQueries.FirstOrDefault(employee => employee.EmployeeOid.Equals(objectOid.Value));
|
||||
|
||||
if(selectedEmployee != null)
|
||||
{
|
||||
Model.SelectedValues.AddOrUpdate(parameterOid.Value, new SelectedValue(queryParameterType, selectedEmployee));
|
||||
Model.QueryEmployeeOids.AddOrUpdate(parameterOid.Value, selectedEmployee.EmployeeOid);
|
||||
}
|
||||
break;
|
||||
case QueryParameterType.Organisation:
|
||||
if(objectOid is null || objectOid.Value.Equals(0))
|
||||
{
|
||||
Model.SelectedValues.Remove(parameterOid.Value);
|
||||
Model.QueryOrganisationOids.Remove(parameterOid.Value);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -602,16 +614,19 @@ namespace BeWoPlanerMobil.Controllers
|
||||
if(selectedOrganisation != null)
|
||||
{
|
||||
Model.SelectedValues.AddOrUpdate(parameterOid.Value, new SelectedValue(queryParameterType, selectedOrganisation));
|
||||
Model.QueryOrganisationOids.AddOrUpdate(parameterOid.Value, selectedOrganisation.OrganisationOid);
|
||||
}
|
||||
break;
|
||||
case QueryParameterType.Text:
|
||||
if(false == string.IsNullOrEmpty(textValue))
|
||||
{
|
||||
Model.SelectedValues.AddOrUpdate(parameterOid.Value, new SelectedValue(queryParameterType, textValue));
|
||||
Model.QueryTexts.AddOrUpdate(parameterOid.Value, textValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
Model.SelectedValues.Remove(parameterOid.Value);
|
||||
Model.QueryTexts.Remove(parameterOid.Value);
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -619,10 +634,12 @@ namespace BeWoPlanerMobil.Controllers
|
||||
if(textValue != null && DateTime.TryParse(textValue, out var selectedDate))
|
||||
{
|
||||
Model.SelectedValues.AddOrUpdate(parameterOid.Value, new SelectedValue(queryParameterType, selectedDate));
|
||||
Model.QueryDateTimes.AddOrUpdate(parameterOid.Value, selectedDate);
|
||||
}
|
||||
else
|
||||
{
|
||||
Model.SelectedValues.Remove(parameterOid.Value);
|
||||
Model.QueryDateTimes.Remove(parameterOid.Value);
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -634,11 +651,13 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
var dateRange = new DateTimeSpan(start, end);
|
||||
Model.SelectedValues.AddOrUpdate(parameterOid.Value, new SelectedValue(queryParameterType, dateRange));
|
||||
Model.QueryDateRanges.AddOrUpdate(parameterOid.Value, dateRange);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Model.SelectedValues.Remove(parameterOid.Value);
|
||||
Model.QueryDateRanges.Remove(parameterOid.Value);
|
||||
}
|
||||
break;
|
||||
case QueryParameterType.Month:
|
||||
@@ -654,13 +673,14 @@ namespace BeWoPlanerMobil.Controllers
|
||||
if(int.TryParse(monthAsString, out var month) && month > 0 && month < 13 && int.TryParse(yearAsString, out var year) && Model.Years.Any(listItem => listItem.Value.Equals(yearAsString)))
|
||||
{
|
||||
Model.SelectedValues.AddOrUpdate(parameterOid.Value, new SelectedValue(queryParameterType, new DateTime(year, month, 1)));
|
||||
Model.QueryMonths.AddOrUpdate(parameterOid.Value, new DateTime(year, month, 1));
|
||||
}
|
||||
|
||||
break;
|
||||
case QueryParameterType.ServiceCategory:
|
||||
if(objectOid is null || objectOid.Value.Equals(0))
|
||||
{
|
||||
Model.SelectedValues.Remove(parameterOid.Value);
|
||||
Model.QueryServiceCategoryOids.Remove(parameterOid.Value);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -669,6 +689,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
if(selectedServiceCategory != null)
|
||||
{
|
||||
Model.SelectedValues.AddOrUpdate(parameterOid.Value, new SelectedValue(queryParameterType, selectedServiceCategory));
|
||||
Model.QueryServiceCategoryOids.AddOrUpdate(parameterOid.Value, selectedServiceCategory.ServiceCategoryOid.Value);
|
||||
}
|
||||
break;
|
||||
case QueryParameterType.SupportConcept:
|
||||
@@ -679,18 +700,21 @@ namespace BeWoPlanerMobil.Controllers
|
||||
if(objectOid is null || objectOid.Value.Equals(0))
|
||||
{
|
||||
Model.SelectedValues.Remove(parameterOid.Value);
|
||||
Model.QuerySupportConceptOids.Remove(parameterOid.Value);
|
||||
break;
|
||||
}
|
||||
|
||||
if(costBearer2SupportConceptRelListObj != null)
|
||||
{
|
||||
Model.SelectedValues.AddOrUpdate(parameterOid.Value, new SelectedValue(queryParameterType, costBearer2SupportConceptRelListObj));
|
||||
Model.QuerySupportConceptOids.AddOrUpdate(parameterOid.Value, costBearer2SupportConceptRelListObj.CostBearer2SupportConceptOid);
|
||||
}
|
||||
break;
|
||||
case QueryParameterType.Team:
|
||||
if(objectOid is null || objectOid.Value.Equals(0))
|
||||
{
|
||||
Model.SelectedValues.Remove(parameterOid.Value);
|
||||
Model.QueryTeamOids.Remove(parameterOid.Value);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -699,12 +723,15 @@ namespace BeWoPlanerMobil.Controllers
|
||||
if(selectedTeam != null)
|
||||
{
|
||||
Model.SelectedValues.AddOrUpdate(parameterOid.Value, new SelectedValue(queryParameterType, selectedTeam));
|
||||
Model.QueryTeamOids.AddOrUpdate(parameterOid.Value, selectedTeam.TeamOid);
|
||||
}
|
||||
break;
|
||||
case QueryParameterType.ValueListEntryType:
|
||||
if(objectOid is null || objectOid.Value.Equals(0))
|
||||
{
|
||||
Model.SelectedValues.Remove(parameterOid.Value);
|
||||
Model.QueryValueListEntryOids.Remove(parameterOid.Value);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -713,6 +740,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
if(selectedValueListEntry != null)
|
||||
{
|
||||
Model.SelectedValues.AddOrUpdate(parameterOid.Value, new SelectedValue(queryParameterType, selectedValueListEntry));
|
||||
Model.QueryValueListEntryOids.AddOrUpdate(parameterOid.Value, selectedValueListEntry.ValueListEntryOid.Value);
|
||||
}
|
||||
break;
|
||||
case QueryParameterType.Year:
|
||||
@@ -733,6 +761,8 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return PartialView("BeWoReportPartial");
|
||||
}
|
||||
|
||||
|
||||
|
||||
var query = Model.SelectedQuery;
|
||||
|
||||
var paramList = new List<QueryParamDC>();
|
||||
@@ -745,9 +775,79 @@ namespace BeWoPlanerMobil.Controllers
|
||||
param.Name = item.Name;
|
||||
param.ParamType = item.ParamType;
|
||||
|
||||
if(item.QueryParameterOid.HasValue && Model.SelectedValues.ContainsKey(item.QueryParameterOid.Value))
|
||||
if(item.QueryParameterOid.HasValue && IsParameterOidInQueryValues(item.ParamType, item.QueryParameterOid.Value))
|
||||
{
|
||||
param.Value = Model.SelectedValues[item.QueryParameterOid.Value].Parameter;
|
||||
switch(item.ParamType)
|
||||
{
|
||||
case QueryParameterType.Custom:
|
||||
// Nicht implementiert
|
||||
break;
|
||||
case QueryParameterType.Customer:
|
||||
var customerOid = Model.QueryCustomerOids[item.QueryParameterOid.Value];
|
||||
var queryCustomer = Model.AllCustomersForQueries.FirstOrDefault(customer => customer.CustomerOid.Equals(customerOid));
|
||||
|
||||
param.Value = queryCustomer;
|
||||
break;
|
||||
case QueryParameterType.Employee:
|
||||
var employeeOid = Model.QueryEmployeeOids[item.QueryParameterOid.Value];
|
||||
var queryEmployee = Model.AllEmployeesForQueries.FirstOrDefault(employee => employee.EmployeeOid.Equals(employeeOid));
|
||||
|
||||
param.Value = queryEmployee;
|
||||
break;
|
||||
case QueryParameterType.Organisation:
|
||||
var organisationOid = Model.QueryOrganisationOids[item.QueryParameterOid.Value];
|
||||
var queryOrganisation = Model.AllOrganisationForQuery.FirstOrDefault(organisation => organisation.OrganisationOid.Equals(organisationOid));
|
||||
|
||||
param.Value = queryOrganisation;
|
||||
break;
|
||||
case QueryParameterType.Text:
|
||||
param.Value = Model.QueryTexts[item.QueryParameterOid.Value];
|
||||
break;
|
||||
case QueryParameterType.Date:
|
||||
param.Value = Model.QueryDateTimes[item.QueryParameterOid.Value];
|
||||
break;
|
||||
case QueryParameterType.DateRange:
|
||||
param.Value = Model.QueryDateRanges[item.QueryParameterOid.Value];
|
||||
break;
|
||||
case QueryParameterType.Month:
|
||||
param.Value = Model.QueryMonths[item.QueryParameterOid.Value];
|
||||
break;
|
||||
case QueryParameterType.ServiceCategory:
|
||||
var serviceCategoryOid = Model.QueryServiceCategoryOids[item.QueryParameterOid.Value];
|
||||
var queryServiceCategory = Model.AllServiceCategoriesForQueries.FirstOrDefault(serviceCategory => serviceCategory.ServiceCategoryOid?.Equals(serviceCategoryOid) ?? false);
|
||||
|
||||
param.Value = queryServiceCategory;
|
||||
break;
|
||||
case QueryParameterType.SupportConcept:
|
||||
var cb2ScRelOid = Model.QuerySupportConceptOids[item.QueryParameterOid.Value];
|
||||
var querySupportConcept = Model.CostBearer2SupportConceptRelListObjects.FirstOrDefault(cb2ScRel => cb2ScRel.CostBearer2SupportConceptOid.Equals(cb2ScRelOid));
|
||||
|
||||
param.Value = querySupportConcept;
|
||||
break;
|
||||
case QueryParameterType.Team:
|
||||
var teamOid = Model.QueryTeamOids[item.QueryParameterOid.Value];
|
||||
var queryTeam = Model.AllTeamsForQueries.FirstOrDefault(team => team.TeamOid.Equals(teamOid));
|
||||
|
||||
param.Value = queryTeam;
|
||||
break;
|
||||
case QueryParameterType.ValueListEntryType:
|
||||
var valueListEntryOid = Model.QueryValueListEntryOids[item.QueryParameterOid.Value];
|
||||
var queryValueListEntry = Model.AllValueListEntriesForQuery.FirstOrDefault(valueListEntry => valueListEntry.ValueListEntryOid?.Equals(valueListEntryOid) ?? false);
|
||||
|
||||
param.Value = queryValueListEntry;
|
||||
break;
|
||||
case QueryParameterType.Year:
|
||||
// Nicht implementiert
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(item.QueryParameterOid.HasValue && item.ParamType == QueryParameterType.Month && false == IsParameterOidInQueryValues(item.ParamType, item.QueryParameterOid.Value))
|
||||
{
|
||||
if(item.ParamType == QueryParameterType.Month)
|
||||
{
|
||||
var defaultDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
|
||||
param.Value = defaultDate.AddMonths(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -769,6 +869,55 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return PartialView("BeWoReportPartial", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
private bool IsParameterOidInQueryValues(QueryParameterType parameterType, long parameterOid)
|
||||
{
|
||||
switch(parameterType)
|
||||
{
|
||||
case QueryParameterType.Custom:
|
||||
// Nicht implementiert
|
||||
break;
|
||||
case QueryParameterType.Customer:
|
||||
return Model.QueryCustomerOids.ContainsKey(parameterOid);
|
||||
break;
|
||||
case QueryParameterType.Employee:
|
||||
return Model.QueryEmployeeOids.ContainsKey(parameterOid);
|
||||
break;
|
||||
case QueryParameterType.Organisation:
|
||||
return Model.QueryOrganisationOids.ContainsKey(parameterOid);
|
||||
break;
|
||||
case QueryParameterType.Text:
|
||||
return Model.QueryTexts.ContainsKey(parameterOid);
|
||||
break;
|
||||
case QueryParameterType.Date:
|
||||
return Model.QueryDateTimes.ContainsKey(parameterOid);
|
||||
break;
|
||||
case QueryParameterType.DateRange:
|
||||
return Model.QueryDateRanges.ContainsKey(parameterOid);
|
||||
break;
|
||||
case QueryParameterType.Month:
|
||||
return Model.QueryMonths.ContainsKey(parameterOid);
|
||||
break;
|
||||
case QueryParameterType.ServiceCategory:
|
||||
return Model.QueryServiceCategoryOids.ContainsKey(parameterOid);
|
||||
break;
|
||||
case QueryParameterType.SupportConcept:
|
||||
return Model.QuerySupportConceptOids.ContainsKey(parameterOid);
|
||||
break;
|
||||
case QueryParameterType.Team:
|
||||
return Model.QueryTeamOids.ContainsKey(parameterOid);
|
||||
break;
|
||||
case QueryParameterType.ValueListEntryType:
|
||||
return Model.QueryValueListEntryOids.ContainsKey(parameterOid);
|
||||
break;
|
||||
case QueryParameterType.Year:
|
||||
// Nicht implementiert
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public override string SaveCollapsibleStatus(bool isOpen, string identifier)
|
||||
{
|
||||
|
||||
@@ -10,20 +10,8 @@ namespace BeWoPlanerMobil.Models
|
||||
public List<long> SelectedResourceOids { get; set; }
|
||||
public SchedulerViewType CurrentSchedulerViewType { get; set; }
|
||||
|
||||
private List<long> _SelectedEmployeeOidsForFiltering;
|
||||
public List<long> SelectedEmployeeOidsForFiltering { get; set; }
|
||||
|
||||
public List<long> SelectedEmployeeOidsForFiltering
|
||||
{
|
||||
get
|
||||
{
|
||||
return _SelectedEmployeeOidsForFiltering;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
_SelectedEmployeeOidsForFiltering = value;
|
||||
}
|
||||
}
|
||||
public List<long> SelectedCustomerOidsForFiltering { get; set; }
|
||||
public List<long> SelectedResourceOidsForFiltering { get; set; }
|
||||
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
using System;
|
||||
using BeWo.Report;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using BeWo.Report;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
|
||||
namespace BeWoPlanerMobil.Models
|
||||
{
|
||||
@@ -15,15 +16,10 @@ namespace BeWoPlanerMobil.Models
|
||||
public ReportViewerModel()
|
||||
{
|
||||
SessionModel = new ReportViewerSessionModel();
|
||||
SessionModel.ResetValues();
|
||||
}
|
||||
|
||||
public ReportViewerSessionModel ReportViewerSessionModel
|
||||
{
|
||||
get
|
||||
{
|
||||
return SessionModel as ReportViewerSessionModel;
|
||||
}
|
||||
}
|
||||
public ReportViewerSessionModel ReportViewerSessionModel => SessionModel as ReportViewerSessionModel;
|
||||
|
||||
public List<CompactEmployeeDC> AllEmployees { get; set; }
|
||||
public List<CompactTeamDC> AllTeams { get; set; }
|
||||
@@ -31,7 +27,12 @@ namespace BeWoPlanerMobil.Models
|
||||
public AbstractReportCreator ReportCreator { get; set; }
|
||||
|
||||
[Display(Name = "Monat")]
|
||||
public int? SelectedMonth { get { return ReportViewerSessionModel.SelectedMonth; } set { ReportViewerSessionModel.SelectedMonth = value; } }
|
||||
public int? SelectedMonth
|
||||
{
|
||||
get => ReportViewerSessionModel.SelectedMonth;
|
||||
set => ReportViewerSessionModel.SelectedMonth = value;
|
||||
}
|
||||
|
||||
public List<SelectListItem> Months
|
||||
{
|
||||
get
|
||||
@@ -51,9 +52,13 @@ namespace BeWoPlanerMobil.Models
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[Display(Name = "Jahr")]
|
||||
public int? SelectedYear { get { return ReportViewerSessionModel.SelectedYear; } set { ReportViewerSessionModel.SelectedYear = value; } }
|
||||
public int? SelectedYear
|
||||
{
|
||||
get => ReportViewerSessionModel.SelectedYear;
|
||||
set => ReportViewerSessionModel.SelectedYear = value;
|
||||
}
|
||||
|
||||
public List<SelectListItem> Years
|
||||
{
|
||||
get
|
||||
@@ -75,7 +80,12 @@ namespace BeWoPlanerMobil.Models
|
||||
|
||||
|
||||
[Display(Name="Bericht")]
|
||||
public ReportType SelectedReportType { get { return ReportViewerSessionModel.SelectedReportType; } set { ReportViewerSessionModel.SelectedReportType = value; } }
|
||||
public ReportType SelectedReportType
|
||||
{
|
||||
get => ReportViewerSessionModel.SelectedReportType;
|
||||
set => ReportViewerSessionModel.SelectedReportType = value;
|
||||
}
|
||||
|
||||
public List<SelectListItem> ReportTypes { get; set; }
|
||||
|
||||
|
||||
@@ -107,7 +117,12 @@ namespace BeWoPlanerMobil.Models
|
||||
|
||||
|
||||
[Display(Name = "Mitarbeiter")]
|
||||
public long? SelectedEmployeeOid { get { return ReportViewerSessionModel.SelectedEmployeeOid; } set { ReportViewerSessionModel.SelectedEmployeeOid = value; } }
|
||||
public long? SelectedEmployeeOid
|
||||
{
|
||||
get => ReportViewerSessionModel.SelectedEmployeeOid;
|
||||
set => ReportViewerSessionModel.SelectedEmployeeOid = value;
|
||||
}
|
||||
|
||||
public CompactEmployeeDC SelectedEmployee { get; set; }
|
||||
public List<SelectListItem> Employees
|
||||
{
|
||||
@@ -139,7 +154,12 @@ namespace BeWoPlanerMobil.Models
|
||||
|
||||
|
||||
[Display(Name = "Team")]
|
||||
public long? SelectedTeamOid { get { return ReportViewerSessionModel.SelectedTeamOid; } set { ReportViewerSessionModel.SelectedTeamOid = value; } }
|
||||
public long? SelectedTeamOid
|
||||
{
|
||||
get => ReportViewerSessionModel.SelectedTeamOid;
|
||||
set => ReportViewerSessionModel.SelectedTeamOid = value;
|
||||
}
|
||||
|
||||
public CompactTeamDC SelectedTeam { get; set; }
|
||||
public List<SelectListItem> Teams
|
||||
{
|
||||
@@ -221,6 +241,79 @@ namespace BeWoPlanerMobil.Models
|
||||
|
||||
public Dictionary<long, SelectedValue> SelectedValues { get; set; } = new Dictionary<long, SelectedValue>();
|
||||
|
||||
public Dictionary<long, long> QueryEmployeeOids
|
||||
{
|
||||
get => ReportViewerSessionModel.QueryEmployeeOids;
|
||||
set => ReportViewerSessionModel.QueryEmployeeOids = value;
|
||||
}
|
||||
|
||||
public Dictionary<long, long> QueryCustomerOids
|
||||
{
|
||||
get => ReportViewerSessionModel.QueryCustomerOids;
|
||||
set => ReportViewerSessionModel.QueryCustomerOids = value;
|
||||
}
|
||||
|
||||
public Dictionary<long, long> QueryOrganisationOids
|
||||
{
|
||||
get => ReportViewerSessionModel.QueryOrganisationOids;
|
||||
set => ReportViewerSessionModel.QueryOrganisationOids = value;
|
||||
}
|
||||
|
||||
public Dictionary<long, DateTime> QueryDateTimes
|
||||
{
|
||||
get => ReportViewerSessionModel.QueryDates;
|
||||
set => ReportViewerSessionModel.QueryDates = value;
|
||||
}
|
||||
|
||||
public Dictionary<long, DateTimeSpan> QueryDateRanges
|
||||
{
|
||||
get => ReportViewerSessionModel.QueryDateRanges;
|
||||
set => ReportViewerSessionModel.QueryDateRanges = value;
|
||||
}
|
||||
|
||||
public Dictionary<long, string> QueryTexts
|
||||
{
|
||||
get => ReportViewerSessionModel.QueryTexts;
|
||||
set => ReportViewerSessionModel.QueryTexts = value;
|
||||
}
|
||||
|
||||
public Dictionary<long, DateTime> QueryMonths
|
||||
{
|
||||
get => ReportViewerSessionModel.QueryMonths;
|
||||
set => ReportViewerSessionModel.QueryMonths = value;
|
||||
}
|
||||
|
||||
public Dictionary<long, long> QueryServiceCategoryOids
|
||||
{
|
||||
get => ReportViewerSessionModel.QueryServiceCategoryOids;
|
||||
set => ReportViewerSessionModel.QueryServiceCategoryOids = value;
|
||||
}
|
||||
|
||||
public Dictionary<long, long> QuerySupportConceptOids
|
||||
{
|
||||
get => ReportViewerSessionModel.QuerySupportConceptOids;
|
||||
set => ReportViewerSessionModel.QuerySupportConceptOids = value;
|
||||
}
|
||||
|
||||
public Dictionary<long, long> QueryTeamOids
|
||||
{
|
||||
get => ReportViewerSessionModel.QueryTeamOids;
|
||||
set => ReportViewerSessionModel.QueryTeamOids = value;
|
||||
}
|
||||
|
||||
public Dictionary<long, long> QueryValueListEntryOids
|
||||
{
|
||||
get => ReportViewerSessionModel.QueryValueListEntryOids;
|
||||
set => ReportViewerSessionModel.QueryValueListEntryOids = value;
|
||||
}
|
||||
|
||||
public Dictionary<long, DateTime> QueryYears
|
||||
{
|
||||
get => ReportViewerSessionModel.QueryYears;
|
||||
set => ReportViewerSessionModel.QueryYears = value;
|
||||
}
|
||||
|
||||
|
||||
public Dictionary<ValueListEntryType, List<ValueListEntryDC>> ValueListEntryTypes2ValueListEntries { get; set; } = new Dictionary<ValueListEntryType, List<ValueListEntryDC>>();
|
||||
|
||||
public List<SupportConceptCostBearerRelDC> CostBearer2SupportConceptRels { get; set; } = new List<SupportConceptCostBearerRelDC>();
|
||||
|
||||
@@ -1,22 +1,27 @@
|
||||
using System;
|
||||
using BS.Shared.Core;
|
||||
using DevExpress.Xpo.Helpers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using BeWo.View.Navigation.Filter;
|
||||
using BeWoPlanerMobil.Controllers;
|
||||
using BeWoPlanerMobil.Service;
|
||||
using BeWoPlanerMobil.Util;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using DevExpress.XtraReports.UI;
|
||||
|
||||
namespace BeWoPlanerMobil.Models
|
||||
{
|
||||
[Serializable]
|
||||
public class ReportViewerSessionModel : BaseSessionModel
|
||||
{
|
||||
public Dictionary<long, long> QueryEmployeeOids { get; set; }
|
||||
public Dictionary<long, long> QueryCustomerOids { get; set; }
|
||||
public Dictionary<long, long> QueryOrganisationOids { get; set; }
|
||||
public Dictionary<long, DateTime> QueryDates { get; set; }
|
||||
public Dictionary<long, DateTimeSpan> QueryDateRanges { get; set; }
|
||||
public Dictionary<long, string> QueryTexts { get; set; }
|
||||
public Dictionary<long, DateTime> QueryMonths { get; set; }
|
||||
public Dictionary<long, long> QueryServiceCategoryOids { get; set; }
|
||||
public Dictionary<long, long> QuerySupportConceptOids { get; set; }
|
||||
public Dictionary<long, long> QueryTeamOids { get; set; }
|
||||
public Dictionary<long, long> QueryValueListEntryOids { get; set; }
|
||||
public Dictionary<long, DateTime> QueryYears { get; set; }
|
||||
|
||||
|
||||
public long? SelectedEmployeeOid { get; set; }
|
||||
public long? SelectedTeamOid { get; set; }
|
||||
public int? SelectedMonth { get; internal set; }
|
||||
@@ -28,6 +33,20 @@ namespace BeWoPlanerMobil.Models
|
||||
{
|
||||
base.ResetValues();
|
||||
|
||||
QueryEmployeeOids = new Dictionary<long, long>();
|
||||
QueryCustomerOids = new Dictionary<long, long>();
|
||||
QueryOrganisationOids = new Dictionary<long, long>();
|
||||
QueryDates = new Dictionary<long, DateTime>();
|
||||
QueryDateRanges = new Dictionary<long, DateTimeSpan>();
|
||||
QueryTexts = new Dictionary<long, string>();
|
||||
QueryMonths = new Dictionary<long, DateTime>();
|
||||
QueryServiceCategoryOids = new Dictionary<long, long>();
|
||||
QuerySupportConceptOids = new Dictionary<long, long>();
|
||||
QueryTeamOids = new Dictionary<long, long>();
|
||||
QueryValueListEntryOids = new Dictionary<long, long>();
|
||||
QueryYears = new Dictionary<long, DateTime>();
|
||||
|
||||
|
||||
SelectedEmployeeOid = null;
|
||||
SelectedTeamOid = null;
|
||||
SelectedMonth = null;
|
||||
|
||||
@@ -213,13 +213,252 @@
|
||||
</div>
|
||||
|
||||
<div id="recurrence-container">
|
||||
@{
|
||||
@*@{
|
||||
var recurrenceSettings = (AppointmentRecurrenceFormSettings) ViewBag.AppointmentRecurrenceFormSettings;
|
||||
|
||||
recurrenceSettings.Enabled = areButtonsVisible;
|
||||
}
|
||||
|
||||
@Html.DevExpress().AppointmentRecurrenceForm(recurrenceSettings).GetHtml()
|
||||
@Html.DevExpress().AppointmentRecurrenceForm(recurrenceSettings).GetHtml()*@
|
||||
|
||||
|
||||
<div class="input-group input-group-sm">
|
||||
<div class="input-group-prepend">
|
||||
<label for="recurrence-type" class="input-group-text">Wiederholung</label>
|
||||
</div>
|
||||
<select name="recurrence-type" id="recurrence-type" class="custom-select" onclick="recurrenceSelectChange()">
|
||||
<option value="1">Einmalig</option>
|
||||
<option value="2">Täglich</option>
|
||||
<option value="3">Wöchentlich</option>
|
||||
<option value="4">Monatlich</option>
|
||||
<option value="5">Jährlich</option>
|
||||
</select>
|
||||
</div>
|
||||
<div id="recurrence-form-container">
|
||||
<div class="card mt-2">
|
||||
<div class="card-header p-1 pr-2">
|
||||
Serienmuster
|
||||
</div>
|
||||
<div class="card-body p-1">
|
||||
<div id="daily-recurrence-form">
|
||||
<div class="input-group input-group-sm mt-1">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
<input type="radio" class="mr-2" id="daily-x-pattern-radio" name="daily-pattern">
|
||||
<span>Jeden</span>
|
||||
</div>
|
||||
</div>
|
||||
<input id="daily-x-pattern-value" class="form-control" type="number" min="0" max="9999" value="1" />
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">Tag</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group input-group-sm mt-1">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
<input type="radio" id="daily-every-weekday-radio" name="daily-pattern">
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">Jeden Wochentag</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="weekly-recurrence-form">
|
||||
<div class="input-group input-group-sm mt-1">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
Jede
|
||||
</span>
|
||||
</div>
|
||||
<input id="weekly-x-pattern-value" name="weekly-x-pattern-value" class="form-control" type="number" min="1" value="1" />
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">
|
||||
Woche am:
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="checkbox" id="weekly-mo-cb" name="weekly-mo-cb" class="form-check-input">
|
||||
<label for="weekly-mo-cb" class="form-check-label">Mo</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="checkbox" id="weekly-di-cb" name="weekly-di-cb" class="form-check-input">
|
||||
<label for="weekly-di-cb" class="form-check-label">Di</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="checkbox" id="weekly-mi-cb" name="weekly-mi-cb" class="form-check-input">
|
||||
<label for="weekly-mi-cb" class="form-check-label">Mi</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="checkbox" id="weekly-do-cb" name="weekly-do-cb" class="form-check-input">
|
||||
<label for="weekly-do-cb" class="form-check-label">Do</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="checkbox" id="weekly-fr-cb" name="weekly-fr-cb" class="form-check-input">
|
||||
<label for="weekly-fr-cb" class="form-check-label">Fr</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="checkbox" id="weekly-sa-cb" name="weekly-sa-cb" class="form-check-input">
|
||||
<label for="weekly-sa-cb" class="form-check-label">Sa</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="checkbox" id="weekly-so-cb" name="weekly-so-cb" class="form-check-input">
|
||||
<label for="weekly-so-cb" class="form-check-label">So</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="monthly-recurrence-form">
|
||||
<div class="input-group input-group-sm mt-1">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
<input type="radio" class="mr-2" id="monthly-day-pattern-radio" name="monthly-pattern">
|
||||
<span>Tag</span>
|
||||
</div>
|
||||
</div>
|
||||
<input id="monthly-day-pattern-day-value" name="monthly-day-pattern-day-value" class="form-control" type="number" min="1" max="31" value="1" />
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">jeden</span>
|
||||
<input id="monthly-day-pattern-month-value" name="monthly-day-pattern-month-value" class="border border-left-0 border-right-0 border-input-group-form-control-border text-dark" type="number" min="1" max="31" value="1" />
|
||||
<span class="input-group-text">Monats</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group input-group-sm mt-1">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
<input type="radio" class="mr-2" id="monthly-weekday-pattern-radio" name="monthly-pattern">
|
||||
<span>Am</span>
|
||||
</div>
|
||||
</div>
|
||||
<select id="monthly-weekday-number-value" name="monthly-weekday-number-value" class="custom-select">
|
||||
<option value="1">Ersten</option>
|
||||
<option value="2">Zweiten</option>
|
||||
<option value="3">Dritten</option>
|
||||
<option value="4">Vierten</option>
|
||||
<option value="5">Letzten</option>
|
||||
</select>
|
||||
<select id="monthly-weekday-day-of-week-value" name="monthly-weekday-day-of-week-value" class="custom-select">
|
||||
<option value="1">Montag</option>
|
||||
<option value="2">Dienstag</option>
|
||||
<option value="3">Mittwoch</option>
|
||||
<option value="4">Donnerstag</option>
|
||||
<option value="5">Freitag</option>
|
||||
<option value="6">Samstag</option>
|
||||
<option value="7">Sonntag</option>
|
||||
</select>
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text border-left-0">jeden</span>
|
||||
<input id="monthly-weekday-pattern-value" name="monthly-weekday-pattern-value" class="border border-left-0 border-right-0 border-input-group-form-control-border text-dark" type="number" min="1" max="31" value="1" />
|
||||
<span class="input-group-text">Monats</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="yearly-recurrence-form">
|
||||
<div class="input-group input-group-sm mt-1">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
<input type="radio" class="mr-2" id="yearly-day-pattern-radio" name="yearly-pattern">
|
||||
<span>Am</span>
|
||||
</div>
|
||||
</div>
|
||||
<input id="yearly-pattern-day-of-month-value" name="yearly-pattern-day-of-month-value" class="form-control" type="number" min="1" max="31" value="1">
|
||||
<select id="yearly-pattern-month-value" name="yearly-pattern-month-value" class="custom-select">
|
||||
<option value="1">Januar</option>
|
||||
<option value="2">Februar</option>
|
||||
<option value="3">März</option>
|
||||
<option value="4">April</option>
|
||||
<option value="5">Mai</option>
|
||||
<option value="6">Juni</option>
|
||||
<option value="7">Juli</option>
|
||||
<option value="8">August</option>
|
||||
<option value="9">September</option>
|
||||
<option value="10">Oktober</option>
|
||||
<option value="11">November</option>
|
||||
<option value="12">Dezember</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="input-group input-group-sm mt-1">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
<input type="radio" class="mr-2" id="yearly-weekday-pattern-radio" name="yearly-pattern">
|
||||
<span>Am</span>
|
||||
</div>
|
||||
</div>
|
||||
<select id="yearly-weekday-number-value" name="yearly-weekday-number-value" class="custom-select">
|
||||
<option value="1">Ersten</option>
|
||||
<option value="2">Zweiten</option>
|
||||
<option value="3">Dritten</option>
|
||||
<option value="4">Vierten</option>
|
||||
<option value="5">Letzten</option>
|
||||
</select>
|
||||
<select id="yearly-weekday-day-of-week-value" name="yearly-weekday-day-of-week-value" class="custom-select">
|
||||
<option value="1">Montag</option>
|
||||
<option value="2">Dienstag</option>
|
||||
<option value="3">Mittwoch</option>
|
||||
<option value="4">Donnerstag</option>
|
||||
<option value="5">Freitag</option>
|
||||
<option value="6">Samstag</option>
|
||||
<option value="7">Sonntag</option>
|
||||
</select>
|
||||
<span class="input-group-text rounded-0 border-left-0 border-right-0">im</span>
|
||||
<select id="yearly-weekday-month-value" name="yearly-weekday-month-value" class="custom-select">
|
||||
<option value="1">Januar</option>
|
||||
<option value="2">Februar</option>
|
||||
<option value="3">März</option>
|
||||
<option value="4">April</option>
|
||||
<option value="5">Mai</option>
|
||||
<option value="6">Juni</option>
|
||||
<option value="7">Juli</option>
|
||||
<option value="8">August</option>
|
||||
<option value="9">September</option>
|
||||
<option value="10">Oktober</option>
|
||||
<option value="11">November</option>
|
||||
<option value="12">Dezember</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="recurrence-duration-container">
|
||||
<div class="card mt-2">
|
||||
<div class="card-header p-1 pl-2">
|
||||
Seriendauer
|
||||
</div>
|
||||
<div class="card-body p-1">
|
||||
<div class="input-group input-group-sm mt-1">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
<input type="radio" class="mr-2" id="duration-no-end" name="duration-radio-group">
|
||||
<span>Ohne Ende</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group input-group-sm mt-1">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
<input type="radio" class="mr-2" id="duration-end-after" name="duration-radio-group">
|
||||
<span>Endet nach:</span>
|
||||
</div>
|
||||
</div>
|
||||
<input type="number" class="form-control" />
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">Wiederholungen</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group input-group-sm mt-1">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
<input type="radio" class="mr-2" id="duration-end-by" name="duration-radio-group">
|
||||
<span>Endet am:</span>
|
||||
</div>
|
||||
</div>
|
||||
<input type="date" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
@Html.DevExpress().FormLayout(settings => {
|
||||
settings.Name = "appointmentRecurrenceForm";
|
||||
|
||||
settings.SettingsAdaptivity.AdaptivityMode = FormLayoutAdaptivityMode.SingleColumnWindowLimit;
|
||||
settings.SettingsAdaptivity.SwitchToSingleColumnAtWindowInnerWidth = 700;
|
||||
|
||||
// Ein Item, das den eigentlichen Recurrence-Extension-Block aufnimmt
|
||||
settings.Items.Add(item => {
|
||||
item.SetNestedContent(() => {
|
||||
// hier die AppointmentRecurrenceForm-Extension rendern
|
||||
Html.DevExpress().AppointmentRecurrenceForm(
|
||||
Model.CreateAppointmentRecurrenceFormSettings()).Render();
|
||||
});
|
||||
});
|
||||
|
||||
// ... weitere Items (z. B. OK/Abbrechen-Buttons) als eigene Zeile
|
||||
}).GetHtml()
|
||||
@@ -15,20 +15,6 @@
|
||||
}
|
||||
});
|
||||
|
||||
function translateRecurrencePopup() {
|
||||
const popupTitle = document.getElementById("scheduler_formBlock_RecurAptDeleteFrmContainer_PWH-1T");
|
||||
const msgSpan = document.getElementById("scheduler_formBlock_RecurAptDeleteFrmContainer_RecurAptDeleteFrmTemplateContainer_RecurrentAppointmentDeleteForm_lblConfirm");
|
||||
const checkboxTable = document.getElementById("scheduler_formBlock_RecurAptDeleteFrmContainer_RecurAptDeleteFrmTemplateContainer_RecurrentAppointmentDeleteForm_rbAction_RB0");
|
||||
const checkbox2Table = document.getElementById("scheduler_formBlock_RecurAptDeleteFrmContainer_RecurAptDeleteFrmTemplateContainer_RecurrentAppointmentDeleteForm_rbAction_RB1");
|
||||
const cancelBtnDiv = document.getElementById("scheduler_formBlock_RecurAptDeleteFrmContainer_RecurAptDeleteFrmTemplateContainer_RecurrentAppointmentDeleteForm_btnCancel_CD");
|
||||
|
||||
$(msgSpan).text("Möchten Sie diesen Termin der Serie oder die ganze Serie löschen?");
|
||||
popupTitle.textContent = "Löschen bestätigen";
|
||||
checkboxTable.querySelector("td label").textContent = "Die Serie";
|
||||
checkbox2Table.querySelector("td label").textContent = "Diesen Termin";
|
||||
cancelBtnDiv.querySelector("span").textContent = "Abbrechen";
|
||||
}
|
||||
|
||||
function UpdateSchedulerHeight() {
|
||||
scheduler.SetHeight(1);
|
||||
|
||||
@@ -41,6 +27,34 @@
|
||||
scheduler.SetHeight(containerHeight);
|
||||
}
|
||||
|
||||
function recurrenceSelectChange() {
|
||||
const selected = $("#recurrence-type").find(":selected").val();
|
||||
|
||||
$("#daily-recurrence-form,#weekly-recurrence-form,#monthly-recurrence-form,#yearly-recurrence-form").hide();
|
||||
|
||||
if(selected !== "1") {
|
||||
$("#recurrence-form-container").show();
|
||||
}
|
||||
|
||||
switch(selected) {
|
||||
case "1":
|
||||
$("#recurrence-form-container").hide();
|
||||
break;
|
||||
case "2":
|
||||
$("#daily-recurrence-form").show();
|
||||
break;
|
||||
case "3":
|
||||
$("#weekly-recurrence-form").show();
|
||||
break;
|
||||
case "4":
|
||||
$("#monthly-recurrence-form").show();
|
||||
break;
|
||||
case "5":
|
||||
$("#yearly-recurrence-form").show();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function getLabelByTextFromRecurrenceForm(labelText) {
|
||||
return $("#appointmentRecurrenceForm_AptRecCtl_mainDiv").filter(function() {
|
||||
return $(this).text().trim() === labelText;
|
||||
@@ -55,6 +69,19 @@
|
||||
if(editFormPopup.css("top") !== undefined) {
|
||||
editFormPopup.css("top", "50px");
|
||||
|
||||
// ToDo: Neuer Serienteil
|
||||
|
||||
// ToDo: Am 30.07.2026: Mach weiter mit der Stufe 3 vom MVCxScheduler-Recurrence-Formular von gestern
|
||||
if($("#recurrence-container").length) {
|
||||
recurrenceSelectChange();
|
||||
}
|
||||
// ToDo: /Neuer Serienteil
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const recurrence = $("#appointmentRecurrenceForm_ChkRecurrence label:contains('Recurrence')");
|
||||
const daily = $("#appointmentRecurrenceForm_AptRecCtl_mainDiv label:contains('Daily')");
|
||||
const weekly = $("#appointmentRecurrenceForm_AptRecCtl_mainDiv label:contains('Weekly')");
|
||||
@@ -90,8 +117,6 @@
|
||||
$("#appointmentRecurrenceForm_AptRecCtl_RangeCtl_mainDiv label:contains('End after:')").text("Endet nach:");
|
||||
$("#appointmentRecurrenceForm_AptRecCtl_RangeCtl_mainDiv span:contains('occurrences')").text("Wiederholungen");
|
||||
$("#appointmentRecurrenceForm_AptRecCtl_RangeCtl_mainDiv label:contains('End by:')").text("Endet am:");
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(editFormPopup.outerWidth() !== undefined) {
|
||||
|
||||
@@ -208,7 +208,7 @@
|
||||
settings.OptionsToolTips.ShowSelectionToolTip = false;
|
||||
settings.ClientSideEvents.ActiveViewChanging = "onActiveViewChanged";
|
||||
settings.ClientSideEvents.MenuItemClicked = "onMenuItemClicked";
|
||||
|
||||
settings.OptionsForms.RecurrenceFormName = "appointmentRecurrenceForm";
|
||||
settings.OptionsCustomization.AllowAppointmentEdit = UsedAppointmentType.Custom;
|
||||
settings.OptionsCustomization.AllowAppointmentCopy = UsedAppointmentType.Custom;
|
||||
settings.OptionsCustomization.AllowAppointmentCreate = UsedAppointmentType.Custom;
|
||||
@@ -224,7 +224,6 @@
|
||||
|
||||
settings.InitClientAppointment = (send, evargs) =>
|
||||
{
|
||||
// TODO: TESTEN! Es scheint noch einen Bug zu geben!
|
||||
var recurrenceId = evargs.Appointment.RecurrenceInfo?.Id?.ToString();
|
||||
var index = evargs.Appointment.RecurrenceIndex;
|
||||
|
||||
@@ -328,8 +327,6 @@
|
||||
|
||||
settings.Start = BS.Shared.Extensions.DateTimeExtensions.GetDayOfWeek(DayOfWeek.Monday);
|
||||
|
||||
settings.OptionsForms.RecurrenceFormName = "appointmentRecurrenceForm";
|
||||
|
||||
settings.ClientSideEvents.EndCallback = "resizeSchedulerEditForm";
|
||||
settings.ClientSideEvents.Init = "resizeSchedulerEditForm";
|
||||
|
||||
@@ -361,6 +358,11 @@
|
||||
settings.Views.TimelineView.SetHorizontalSameDayAppointmentTemplateContent(appointmentTemplateContainer => { Html.RenderPartial("HorizontalAppointmentTemplatePartial", appointmentTemplateContainer.AppointmentViewInfo); });
|
||||
settings.Views.TimelineView.SetHorizontalAppointmentTemplateContent(appointmentTemplateContainer => { Html.RenderPartial("HorizontalAppointmentTemplatePartial", appointmentTemplateContainer.AppointmentViewInfo.Appointment); });
|
||||
|
||||
settings.OptionsForms.SetRecurrentAppointmentEditFormTemplateContent(c =>
|
||||
{
|
||||
Html.RenderPartial("CustomRecurrencePartial");
|
||||
});
|
||||
|
||||
settings.OptionsForms.SetAppointmentFormTemplateContent(appointmentFormTemplateContainer =>
|
||||
{
|
||||
var container = (CustomAppointmentTemplateContainer) appointmentFormTemplateContainer;
|
||||
@@ -381,7 +383,7 @@
|
||||
EndTime = container.Appointment.End,
|
||||
AllDay = container.Appointment.AllDay,
|
||||
Description = container.Appointment.Description,
|
||||
EventType = (int?)container.Appointment.Type,
|
||||
EventType = (int?) container.Appointment.Type,
|
||||
CompletedNotice = container.Appointment.CustomFields["CompletedNotice"]?.ToString(),
|
||||
CompletedUser = container.Appointment.CustomFields["CompletedUser"]?.ToString(),
|
||||
TaskDescription = container.Appointment.CustomFields["TaskDescription"]?.ToString(),
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
@model BeWoPlanerMobil.Models.ReportViewerModel
|
||||
|
||||
@{
|
||||
if(TempData[TempDataConstants.DoLogoutKey] is bool doLogout && doLogout)
|
||||
if(TempData[TempDataConstants.DoLogoutKey] is true)
|
||||
{
|
||||
<text>
|
||||
<script type="text/javascript">
|
||||
@@ -21,20 +21,41 @@
|
||||
});
|
||||
|
||||
function selectCostBearer2SupportConceptRel(relOid, parameterType, parameterOid) {
|
||||
$("#berichte-form-container").load("@Url.Action("SelectQueryParameter")", {objectOid: relOid, parameterType: parameterType, parameterOid: parameterOid});
|
||||
showSpinner();
|
||||
|
||||
$("#berichte-form-container").load(
|
||||
"@Url.Action("SelectQueryParameter")",
|
||||
{ objectOid: relOid, parameterType: parameterType, parameterOid: parameterOid },
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function selectMonth(parameterType, parameterOid) {
|
||||
showSpinner();
|
||||
|
||||
const selectedMonth = $("#month-select").find(":selected").val().toString();
|
||||
const selectedYear = $("#month-year-select").find(":selected").val().toString();
|
||||
|
||||
$("#berichte-form-container").load("@Url.Action("SelectQueryParameter")", {objectOid: null, parameterType: parameterType, parameterOid: parameterOid, textValue: `${selectedMonth}_${selectedYear}`});
|
||||
$("#berichte-form-container").load(
|
||||
"@Url.Action("SelectQueryParameter")",
|
||||
{ objectOid: null, parameterType: parameterType, parameterOid: parameterOid, textValue: `${selectedMonth}_${selectedYear}` },
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function selectYear(parameterType, parameterOid) {
|
||||
showSpinner();
|
||||
|
||||
const selectedYear = $("#month-year-select").find(":selected").val();
|
||||
|
||||
$("#berichte-form-container").load("@Url.Action("SelectQueryParameter")", {objectOid: null, parameterType: parameterType, parameterOid: parameterOid, textValue: selectedYear.toString()});
|
||||
$("#berichte-form-container").load(
|
||||
"@Url.Action("SelectQueryParameter")",
|
||||
{ objectOid: null, parameterType: parameterType, parameterOid: parameterOid, textValue: selectedYear.toString() },
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function onDropdownParameterInput(element) {
|
||||
@@ -85,45 +106,102 @@
|
||||
}
|
||||
|
||||
function selectEmployeeParameter(element, employeeOid, parameterType, parameterOid) {
|
||||
showSpinner();
|
||||
|
||||
$("#query-employee-popup").modal("hide");
|
||||
|
||||
$("#berichte-form-container").load("@Url.Action("SelectQueryParameter")", {objectOid: employeeOid, parameterType: parameterType, parameterOid: parameterOid});
|
||||
$("#berichte-form-container").load(
|
||||
"@Url.Action("SelectQueryParameter")",
|
||||
{ objectOid: employeeOid, parameterType: parameterType, parameterOid: parameterOid },
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function selectCustomerParameter(element, customerOid, parameterType, parameterOid) {
|
||||
showSpinner();
|
||||
|
||||
$("#query-customer-popup").modal("hide");
|
||||
|
||||
$("#berichte-form-container").load("@Url.Action("SelectQueryParameter")", {objectOid: customerOid, parameterType: parameterType, parameterOid: parameterOid});
|
||||
$("#berichte-form-container").load(
|
||||
"@Url.Action("SelectQueryParameter")",
|
||||
{ objectOid: customerOid, parameterType: parameterType, parameterOid: parameterOid },
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function selectOrganizationParameter(element, organizationOid, parameterType, parameterOid) {
|
||||
showSpinner();
|
||||
|
||||
$("#query-organization-popup").modal("hide");
|
||||
|
||||
$("#berichte-form-container").load("@Url.Action("SelectQueryParameter")", {objectOid: organizationOid, parameterType: parameterType, parameterOid: parameterOid});
|
||||
$("#berichte-form-container").load(
|
||||
"@Url.Action("SelectQueryParameter")",
|
||||
{ objectOid: organizationOid, parameterType: parameterType, parameterOid: parameterOid },
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function selectServiceCategoryParameter(element, parameterType, parameterOid) {
|
||||
showSpinner();
|
||||
|
||||
const serviceCategoryOid = $(element).find(":selected").val();
|
||||
|
||||
$("#berichte-form-container").load("@Url.Action("SelectQueryParameter")", {objectOid: serviceCategoryOid, parameterType: parameterType, parameterOid: parameterOid});
|
||||
$("#berichte-form-container").load(
|
||||
"@Url.Action("SelectQueryParameter")",
|
||||
{ objectOid: serviceCategoryOid, parameterType: parameterType, parameterOid: parameterOid },
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function selectTeamParameter(element, teamOid, parameterType, parameterOid) {
|
||||
showSpinner();
|
||||
|
||||
$("#query-team-popup").modal("hide");
|
||||
|
||||
$("#berichte-form-container").load("@Url.Action("SelectQueryParameter")", {objectOid: teamOid, parameterType: parameterType, parameterOid: parameterOid});
|
||||
$("#berichte-form-container").load(
|
||||
"@Url.Action("SelectQueryParameter")",
|
||||
{ objectOid: teamOid, parameterType: parameterType, parameterOid: parameterOid },
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function selectValueListEntry(element, parameterType, parameterOid) {
|
||||
$("#berichte-form-container").load("@Url.Action("SelectQueryParameter")", {objectOid: $(element).find(":selected").val(), parameterType: parameterType, parameterOid: parameterOid});
|
||||
showSpinner();
|
||||
|
||||
$("#berichte-form-container").load(
|
||||
"@Url.Action("SelectQueryParameter")",
|
||||
{ objectOid: $(element).find(":selected").val(), parameterType: parameterType, parameterOid: parameterOid },
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function selectQueryText(element, parameterType, parameterOid) {
|
||||
$("#berichte-form-container").load("@Url.Action("SelectQueryParameter")", {objectOid: null, parameterType: parameterType, parameterOid: parameterOid, textValue: $(element).val()});
|
||||
showSpinner();
|
||||
|
||||
$("#berichte-form-container").load(
|
||||
"@Url.Action("SelectQueryParameter")",
|
||||
{ objectOid: null, parameterType: parameterType, parameterOid: parameterOid, textValue: $(element).val() },
|
||||
function() {
|
||||
hideSpinner();
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function selectQueryDate(element, parameterType, parameterOid) {
|
||||
$("#berichte-form-container").load("@Url.Action("SelectQueryParameter")", {objectOid: null, parameterType: parameterType, parameterOid: parameterOid, textValue: $(element).val().toString()});
|
||||
showSpinner();
|
||||
|
||||
$("#berichte-form-container").load(
|
||||
"@Url.Action("SelectQueryParameter")",
|
||||
{ objectOid: null, parameterType: parameterType, parameterOid: parameterOid, textValue: $(element).val().toString() },
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function selectQueryDateRange(parameterType, parameterOid) {
|
||||
@@ -134,12 +212,21 @@
|
||||
return;
|
||||
}
|
||||
|
||||
$("#berichte-form-container").load("@Url.Action("SelectQueryParameter")", {objectOid: null, parameterType: parameterType, parameterOid: parameterOid, textValue: `${start}_${end}`});
|
||||
showSpinner();
|
||||
|
||||
$("#berichte-form-container").load(
|
||||
"@Url.Action("SelectQueryParameter")",
|
||||
{ objectOid: null, parameterType: parameterType, parameterOid: parameterOid, textValue: `${start}_${end}` },
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function executeQueryButtonClick() {
|
||||
showSpinner();
|
||||
$("#msk-report-container").load("@Url.Action("ExecuteQuery")",
|
||||
|
||||
$("#msk-report-container").load(
|
||||
"@Url.Action("ExecuteQuery")",
|
||||
function () {
|
||||
hideSpinner();
|
||||
$("#bewo-report-popup").modal("show");
|
||||
@@ -148,7 +235,7 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
@if(Model.SelectedQuery != null && Model.SelectedQuery.Parameter != null && Model.SelectedQuery.Parameter.Count > 0)
|
||||
@if(Model?.SelectedQuery != null && Model?.SelectedQuery.Parameter != null && Model?.SelectedQuery.Parameter.Count > 0)
|
||||
{
|
||||
<div>
|
||||
<hr />
|
||||
@@ -283,9 +370,9 @@
|
||||
{
|
||||
var selected = string.Empty;
|
||||
|
||||
if(Model.SelectedValues.ContainsKey(parameterOid))
|
||||
if(Model.QueryMonths.ContainsKey(parameterOid))
|
||||
{
|
||||
if(Model.SelectedValues[parameterOid].Parameter is DateTime monthDate && month.Value.Equals(monthDate.Month.ToString()))
|
||||
if(Model.QueryMonths[parameterOid].Month.ToString().Equals(month.Value))
|
||||
{
|
||||
selected = "selected";
|
||||
}
|
||||
@@ -295,7 +382,7 @@
|
||||
var lastMonth = DateTime.Today.AddMonths(-1);
|
||||
var selectedMonth = lastMonth.Month.ToString();
|
||||
|
||||
if(selectedMonth.Equals(month.Text))
|
||||
if(selectedMonth.Equals(month.Value))
|
||||
{
|
||||
selected = "selected";
|
||||
}
|
||||
@@ -309,9 +396,9 @@
|
||||
{
|
||||
var selected = string.Empty;
|
||||
|
||||
if(Model.SelectedValues.ContainsKey(parameterOid) && Model.SelectedValues[parameterOid].Parameter is DateTime selectedYear)
|
||||
if(Model.QueryYears.ContainsKey(parameterOid))
|
||||
{
|
||||
if(year.Equals(selectedYear.Year))
|
||||
if(year.Equals(Model.QueryYears[parameterOid].Year))
|
||||
{
|
||||
selected = "selected";
|
||||
}
|
||||
@@ -461,6 +548,8 @@
|
||||
Jahr
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" id="year-parameter-type" value="@parameterType" />
|
||||
<input type="hidden" id="year-parameter-oid" value="@parameterOid" />
|
||||
<select class="custom-select" id="year-select" onchange="selectYear(@parameterType, @parameterOid)">
|
||||
@foreach(var year in MobileUtils.Years)
|
||||
{
|
||||
|
||||
@@ -91,6 +91,7 @@
|
||||
const selectedReportOid = oid2HasParams[0];
|
||||
|
||||
if(hasParameters) {
|
||||
showSpinner();
|
||||
$("#berichte-form-container").load("@Url.Action("LoadBerichteForm")", {reportOid: selectedReportOid}, function() {
|
||||
hideSpinner();
|
||||
window.toggleMitarbeiterstundenForm();
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
}
|
||||
|
||||
$(document).on("shown.bs.modal", "#bewo-report-popup", function() {
|
||||
if(bewoReportViewer === undefined || bewoReportViewer === null || $("#bewoReportViewer").length === false) {
|
||||
if(typeof bewoReportViewer === 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
using BeWo.Data;
|
||||
using BS.Shared.Core;
|
||||
|
||||
namespace BeWo.Service.Plugins
|
||||
@@ -306,7 +305,7 @@ namespace BeWo.Service.Plugins
|
||||
//t = "5427523619"; // Christopherus-Haus Familienhilfe
|
||||
//t = "8251343124"; // Rat Plus Tat
|
||||
//t = "6819347851"; // Awo Kreisverband Plön
|
||||
//t = "2385915144"; // AKGG GmbH
|
||||
t = "2385915144"; // AKGG GmbH
|
||||
//t = "8002913382"; // AKGG GmbH (MID)
|
||||
//t = "5155880294"; // BHV Bergische Hauspflege
|
||||
//t = "8366649557"; // Münchner Aids-Hilfe e.V.
|
||||
|
||||
Reference in New Issue
Block a user