Beim Bearbeiten von Zeiterfassungseinträgen ohne Zeitangaben wird das Datum nicht mehr auf 0 Uhr gesetzt
121 lines
4.1 KiB
C#
121 lines
4.1 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Web.Mvc;
|
|
using BeWo.Report.ReportObjects;
|
|
using BeWoPlanerMobil.Models;
|
|
using BeWoPlanerMobil.Service;
|
|
using BeWoPlanerMobil.Util;
|
|
using BS.Shared.Extensions;
|
|
|
|
namespace BeWoPlanerMobil.Controllers
|
|
{
|
|
/*
|
|
* Quittierungsbeleg wie im Fat-Client implementieren
|
|
* Mit Unterschriftenfunktion für den Mitarbeiter.
|
|
* Liste mit allen ServiceRecords des Mitarbeiters für einen Klienten.
|
|
*
|
|
* TODO: Warnung anzeigen, dass man die betroffenen Einträge nicht mehr ändern kann.
|
|
*
|
|
* TODO: Unterschrift zu hinzufügen
|
|
*/
|
|
|
|
public class ReportController : AbstractBaseController
|
|
{
|
|
private ReportModel _Model;
|
|
|
|
public ReportModel Model
|
|
{
|
|
get
|
|
{
|
|
if(!MobileSessionFacade.IsUserLoggedIn())
|
|
{
|
|
RedirectToActionPermanent("Index", "Login");
|
|
return null;
|
|
}
|
|
|
|
if(((ReportModel) Session[ModelSessionConstants.ReportModelKey])?.Employee == null)
|
|
{
|
|
_Model = new ReportModel {Employee = MobileSessionFacade.LoggedInEmployee};
|
|
Session[ModelSessionConstants.ReportModelKey] = _Model;
|
|
}
|
|
else
|
|
{
|
|
_Model = (ReportModel) Session[ModelSessionConstants.ReportModelKey];
|
|
}
|
|
|
|
return _Model;
|
|
}
|
|
}
|
|
|
|
[Authorize]
|
|
public ActionResult Report()
|
|
{
|
|
if(!MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer") || !AbstractModel.IsAllowedToSeeScheduler)
|
|
{
|
|
return RedirectToActionPermanent("Index", "Login");
|
|
}
|
|
|
|
var customers = EmployeeService.GetActiveCompactCustomersForEmployee(null);
|
|
|
|
Model.Customers = customers;
|
|
|
|
return View(Model);
|
|
}
|
|
|
|
[Authorize]
|
|
[HttpPost]
|
|
public ActionResult CreateServiceOverview(FormCollection formCollection)
|
|
{
|
|
if(Model?.Employee?.EmployeeOid == null)
|
|
{
|
|
return Logout();
|
|
}
|
|
|
|
var customerOidString = formCollection[FormCollectionConstants.SelectedCustomerOidKey];
|
|
var monthString = formCollection[FormCollectionConstants.SelectedMonthKey];
|
|
var yearString = formCollection[FormCollectionConstants.SelectedYearKey];
|
|
|
|
var isCustomerOidSuccessful = long.TryParse(customerOidString, out var customerOid);
|
|
var isMonthSuccessful = int.TryParse(monthString, out var month);
|
|
var isYearSuccessful = int.TryParse(yearString, out var year);
|
|
|
|
if(!isCustomerOidSuccessful || !isMonthSuccessful || !isYearSuccessful)
|
|
{
|
|
return Report();
|
|
}
|
|
|
|
var selectedCustomer = Model.Customers.FirstOrDefault(customer => customer.CustomerOid == customerOid);
|
|
|
|
Model.SelectedCustomer = selectedCustomer;
|
|
Model.SelectedYear = year;
|
|
Model.SelectedMonth = month;
|
|
|
|
var startDay = new DateTime(year, month, 1);
|
|
var endDay = startDay.AddMonths(1).AddDays(-1);
|
|
|
|
var reportObject = ServicesOverviewRO.Create(customerOid, month, year, false, 0L, Model.Employee.EmployeeOid.Value, 1, endDay.Day, null);
|
|
|
|
reportObject.Services.DoForEach(serviceDetail => { Model.QuittierungsbelegItems.Add(new QuittierungsbelegItem(serviceDetail)); });
|
|
|
|
if(Model.QuittierungsbelegItems.Count == 0)
|
|
{
|
|
TempData["HasWarningMessage"] = true;
|
|
}
|
|
|
|
return RedirectToActionPermanent("Report");
|
|
}
|
|
|
|
[Authorize]
|
|
public string SetCustomer(long customerOid)
|
|
{
|
|
if(Model == null)
|
|
{
|
|
return _LeerzeichenFuerGetMethoden;
|
|
}
|
|
|
|
Model.SelectedCustomer = Model.Customers.FirstOrDefault(customer => customer.CustomerOid == customerOid);
|
|
|
|
return _LeerzeichenFuerGetMethoden;
|
|
}
|
|
}
|
|
} |