1050 lines
30 KiB
C#
1050 lines
30 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Security;
|
|
using System.Web;
|
|
using BeWo.Service.Plugins;
|
|
using BS.Shared;
|
|
using BS.Shared.Core;
|
|
using BS.Shared.DataContracts;
|
|
|
|
using BeWo.Data;
|
|
using BeWo.Report;
|
|
using BeWo.Service.Security;
|
|
|
|
using DevExpress.XtraPrinting;
|
|
using DevExpress.XtraReports.UI;
|
|
|
|
using Page = System.Web.UI.Page;
|
|
using System.Globalization;
|
|
using BeWo.Data.Access;
|
|
using BeWo.Data.Entities;
|
|
using BeWo.Service.DCEntityMapper;
|
|
using BS.Shared.ReportRequests;
|
|
|
|
using SecurityUtils = BeWo.Service.Security.SecurityUtils;
|
|
|
|
namespace Host
|
|
{
|
|
public partial class ReportView : Page
|
|
{
|
|
private Dictionary<string, object> slicedToken;
|
|
private AbstractReportCreator reportCreator;
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (!SessionFacade.IsUserLoggedIn())
|
|
{
|
|
throw new SecurityException("Anmeldung erforderlich!");
|
|
}
|
|
|
|
var test = Request.Params["mode"];
|
|
|
|
var report = CreateReport();
|
|
|
|
using (var repxStream = new MemoryStream())
|
|
{
|
|
if (Request.Params["mode"] == "pdf")
|
|
{
|
|
report.ExportToPdf(repxStream);
|
|
|
|
Response.Clear();
|
|
Response.ContentType = "application/pdf";
|
|
Response.Charset = string.Empty;
|
|
Response.AddHeader("content-disposition", "inline;filename=report.pdf");
|
|
}
|
|
else
|
|
{
|
|
report.PrintingSystem.SaveDocument(repxStream, new NativeFormatOptions { Compressed = true });
|
|
|
|
//var test = new XtraReport();
|
|
//test.PrintingSystem.LoadDocument(repxStream);
|
|
}
|
|
|
|
var bytesToWrite = repxStream.ToArray();
|
|
|
|
Response.OutputStream.Write(bytesToWrite, 0, bytesToWrite.Length);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Response.Write(ex.Message + "\n\n" + ex.StackTrace);
|
|
}
|
|
}
|
|
//Änderungen ServiceCategoryAuswahl bei Quittierungsbeleg wieder einkommentieren + testen
|
|
|
|
private XtraReport CreateReport()
|
|
{
|
|
var token = Request.Params["token"].Split(',')[0];
|
|
if (SecurityUtils.CheckToken(token, Request.Url.ToString()))
|
|
{
|
|
slicedToken = SecurityUtils.sliceToken(Request.Params["token"].Split(',')[0], Request.Url.ToString());
|
|
reportCreator = GetReportCreator();
|
|
|
|
var lType = Utils.EnumParse<ReportTypes>(Request.Params["type"]);
|
|
|
|
XtraReport report;
|
|
switch (lType)
|
|
{
|
|
case ReportTypes.ServiceInvoice:
|
|
report = CreateServiceInvoiceReport();
|
|
break;
|
|
case ReportTypes.Settlement:
|
|
report = CreateSettlementReport();
|
|
break;
|
|
case ReportTypes.ServiceOverviewSingleCustomer:
|
|
report = CreateServiceOverviewSingleCustomerReport();
|
|
break;
|
|
case ReportTypes.Stundenzettel:
|
|
report = CreateServiceOverviewSingleCustomerReport();
|
|
break;
|
|
case ReportTypes.ServiceOverviewAllCustomers:
|
|
return CreateServiceOverviewAllCustomersReport();
|
|
case ReportTypes.ServicesOverviewNew:
|
|
report = CreateServiceOverviewNew();
|
|
break;
|
|
case ReportTypes.CustomerData:
|
|
report = CreateCustomerDataReport();
|
|
break;
|
|
case ReportTypes.ServiceRecordList:
|
|
report = CreateServiceRecordListReport();
|
|
break;
|
|
case ReportTypes.SupportConceptReport:
|
|
report = CreateSupportConceptReport();
|
|
break;
|
|
case ReportTypes.BewertungsstatistikReport:
|
|
report = CreateBewertungsstatistikReport();
|
|
break;
|
|
case ReportTypes.FLSReport:
|
|
report = CreateFlsReport();
|
|
break;
|
|
case ReportTypes.CustomerInvoice:
|
|
report = CreateCustomerInvoiceReport();
|
|
break;
|
|
case ReportTypes.AssessmentSheetReport:
|
|
report = CreateAssessmentSheetReport();
|
|
break;
|
|
case ReportTypes.AdditionalServiceBookingReport:
|
|
report = CreateAdditionalServiceBookingReport();
|
|
break;
|
|
case ReportTypes.EmployeeHourReport:
|
|
report = CreateEmployeeHourReport();
|
|
break;
|
|
case ReportTypes.AuslastungReport:
|
|
report = CreateAuslastungReport();
|
|
break;
|
|
case ReportTypes.Medikamentenverordnungsliste:
|
|
report = CreateMediVerordnungslistenReport();
|
|
break;
|
|
case ReportTypes.MedikamentenverordnungslisteMitZusatzfeldern:
|
|
report = CreateMediVerordnungslistenMZusatzfeldernReport();
|
|
break;
|
|
case ReportTypes.HistorischeMedikamentenverordnungsliste:
|
|
report = CreateHistorischeMediVerordnungslistenReport();
|
|
break;
|
|
case ReportTypes.Kalender: // Wird nicht mehr benötigt
|
|
report = CreateTestReportKalender();
|
|
break;
|
|
case ReportTypes.FinanceReport:
|
|
report = CreateFinanceReport();
|
|
break;
|
|
case ReportTypes.Jahresbericht:
|
|
report = CreateJahresbericht();
|
|
break;
|
|
case ReportTypes.Employee:
|
|
report = CreateEmployeeDataReport();
|
|
break;
|
|
case ReportTypes.Contract:
|
|
report = new XtraReport();
|
|
break;
|
|
case ReportTypes.NotizenKategorie:
|
|
report = CreateNotizenReport();
|
|
break;
|
|
case ReportTypes.SBDCharacteristics:
|
|
report = CreateSBDCharacteristicsReport();
|
|
break;
|
|
case ReportTypes.SBDEmployeeReport:
|
|
report = CreateSBDEmployeeReport();
|
|
break;
|
|
case ReportTypes.AbsenceReport:
|
|
report = CreateAbsenceReport();
|
|
break;
|
|
case ReportTypes.RosterReport:
|
|
report = CreateRosterReport();
|
|
break;
|
|
case ReportTypes.RosterReportIst:
|
|
report = CreateRosterReportIst();
|
|
break;
|
|
case ReportTypes.VorlagenReport:
|
|
report = CreateVorlagenReport();
|
|
break;
|
|
case ReportTypes.AbwesenheitsPrintReport:
|
|
report = CreateAbwesenheitsPrintReport();
|
|
break;
|
|
case ReportTypes.MitarbeiterKlientenReport:
|
|
report = CreateEmployeeCustomerListReport();
|
|
break;
|
|
case ReportTypes.HilfeplanStatistik:
|
|
report = new XtraReport();
|
|
break;
|
|
case ReportTypes.RatingReport:
|
|
report = CreateRatingReport();
|
|
break;
|
|
case ReportTypes.KilometerAuswertung:
|
|
report = CreateKilometerAuswertung();
|
|
break;
|
|
case ReportTypes.VertretungsPlanung:
|
|
report = CreateVertretungsPlanungReport();
|
|
break;
|
|
case ReportTypes.ValidationMessageReport:
|
|
report = CreateValidationMessageListReport();
|
|
break;
|
|
case ReportTypes.GkvAbrechnung:
|
|
report = CreateGkvAbrechnungReport();
|
|
break;
|
|
default:
|
|
report = CreateQueryReport();
|
|
break;
|
|
}
|
|
if (report != null && lType != ReportTypes.ServiceOverviewAllCustomers &&
|
|
lType != ReportTypes.ServiceInvoice)
|
|
{
|
|
if (report.Pages.Count == 0)
|
|
{
|
|
report.CreateDocument();
|
|
}
|
|
}
|
|
return report;
|
|
}
|
|
|
|
Response.Write("Session ist abgelaufen! Bitte erstellen Sie den Bericht erneut. Nach Erstellen des Berichts haben Sie 10 Min. Zeit diesen auszudrucken.");
|
|
return new XtraReport();
|
|
}
|
|
|
|
private XtraReport CreateTestReportKalender()
|
|
{
|
|
var abc = Request.Params["r"].Split('-');
|
|
var rightsList = abc.Select(r => (UserRightType)Int32.Parse(r)).ToList();
|
|
//employeeOid, viewType
|
|
var datesList = new List<DateTime>();
|
|
string datesString = Request.Params["d"];
|
|
for (var i = 0; i < datesString.Length; i += 8)
|
|
{
|
|
var x = datesString.Substring(i, 8);
|
|
datesList.Add(new DateTime(Convert.ToInt32(x.Substring(4, 4)), Convert.ToInt32(x.Substring(2, 2)), Convert.ToInt32(x.Substring(0, 2))));
|
|
}
|
|
|
|
var vt = (AppointmentViewType)int.Parse(Request.Params["vt"]);
|
|
var s = DateTime.Parse(Request.Params["s"]);
|
|
var e = DateTime.Parse(Request.Params["e"]);
|
|
var employeeOid = long.Parse(Request.Params["eOid"]);
|
|
return reportCreator.CreateKalenderReport(employeeOid, vt, s, e, datesList, rightsList);
|
|
}
|
|
|
|
private XtraReport CreateCustomerDataReport()
|
|
{
|
|
long customerOid = long.Parse(Request.Params["cOid"]);
|
|
|
|
return reportCreator.CreateCustomerDataReport(customerOid);
|
|
}
|
|
|
|
private XtraReport CreateCustomerInvoiceReport()
|
|
{
|
|
long invoiceOid = long.Parse(Request.Params["ioid"]);
|
|
|
|
return reportCreator.CreateCustomerInvoiceReport(invoiceOid);
|
|
}
|
|
|
|
private XtraReport CreateAssessmentSheetReport()
|
|
{
|
|
var customerOid = long.Parse(Request.Params["coid"]);
|
|
var month = Int32.Parse(Request.Params["m"]);
|
|
var year = Int32.Parse(Request.Params["y"]);
|
|
|
|
return reportCreator.CreateAssessmentSheetReport(customerOid, month, year);
|
|
}
|
|
|
|
private XtraReport CreateAdditionalServiceBookingReport()
|
|
{
|
|
var addservregionOid = long.Parse(Request.Params["asroid"]);
|
|
Monat month;
|
|
Enum.TryParse(Request.Params["m"], out month);
|
|
var year = Int32.Parse(Request.Params["y"]);
|
|
|
|
|
|
return reportCreator.CreateAdditionalServiceBookingReport(addservregionOid, month, year);
|
|
}
|
|
|
|
private XtraReport CreateEmployeeHourReport()
|
|
{
|
|
long? employeeOid = null;
|
|
if (Request.Params["eoid"] != null)
|
|
employeeOid = long.Parse(Request.Params["eoid"]);
|
|
|
|
|
|
IList<long> teamOids = null;
|
|
if (Request.Params["toid"] != null)
|
|
{
|
|
String teamOidStr = Request.Params["toid"];
|
|
var oids = teamOidStr.Split(',');
|
|
teamOids = new List<long>();
|
|
foreach (var oidStr in oids)
|
|
{
|
|
long oid = 0;
|
|
if (Int64.TryParse(oidStr, out oid))
|
|
{
|
|
teamOids.Add(oid);
|
|
}
|
|
}
|
|
}
|
|
|
|
int ansicht = 0;
|
|
if (Request.Params["ansicht"] != null)
|
|
{
|
|
ansicht = Int32.Parse(Request.Params["ansicht"]);
|
|
}
|
|
|
|
int month = Int32.Parse(Request.Params["m"]);
|
|
var year = Int32.Parse(Request.Params["y"]);
|
|
|
|
var start = new DateTime(year, month, 1);
|
|
var end = start.AddMonths(1);
|
|
return reportCreator.CreateEmployeeHourReport(employeeOid, teamOids, start, end, ansicht);
|
|
}
|
|
|
|
private XtraReport CreateAuslastungReport()
|
|
{
|
|
long? employeeOid = null;
|
|
if (Request.Params["eoid"] != null)
|
|
employeeOid = long.Parse(Request.Params["eoid"]);
|
|
|
|
|
|
IList<long> teamOids = null;
|
|
if (Request.Params["toid"] != null)
|
|
{
|
|
String teamOidStr = Request.Params["toid"];
|
|
var oids = teamOidStr.Split(',');
|
|
teamOids = new List<long>();
|
|
foreach (var oidStr in oids)
|
|
{
|
|
long oid = 0;
|
|
if (Int64.TryParse(oidStr, out oid))
|
|
{
|
|
teamOids.Add(oid);
|
|
}
|
|
}
|
|
}
|
|
|
|
int month = Int32.Parse(Request.Params["m"]);
|
|
var year = Int32.Parse(Request.Params["y"]);
|
|
|
|
var start = new DateTime(year, month, 1);
|
|
var end = start.AddMonths(1);
|
|
return reportCreator.CreateAuslastungReport(employeeOid, teamOids, start, end);
|
|
}
|
|
|
|
private XtraReport CreateFlsReport()
|
|
{
|
|
String flsReportId = Request.Params["dcid"];
|
|
String subType = Request.Params["subType"];
|
|
|
|
return reportCreator.CreateFlsReport(flsReportId, subType);
|
|
}
|
|
|
|
private XtraReport CreateQueryReport()
|
|
{
|
|
var queryOid = long.Parse(Request.Params["qoid"]);
|
|
var queryReportId = Request.Params["dcid"];
|
|
|
|
return reportCreator.CreateQueryReport(queryOid, queryReportId);
|
|
}
|
|
|
|
private XtraReport CreateServiceInvoiceReport()
|
|
{
|
|
String dcIds = Request.Params["dcids"];
|
|
long? invoiceBaseOid = null;
|
|
if (Request.Params["ibid"] != null)
|
|
invoiceBaseOid = long.Parse(Request.Params["ibid"]);
|
|
|
|
return reportCreator.CreateServiceInvoiceReport(dcIds, invoiceBaseOid);
|
|
}
|
|
|
|
private XtraReport CreateServiceOverviewAllCustomersReport()
|
|
{
|
|
int month = int.Parse(this.Request.Params["month"]);
|
|
int year = int.Parse(this.Request.Params["year"]);
|
|
long orgaOid = long.Parse(this.Request.Params["orgaOid"]);
|
|
long empOid = long.Parse(this.Request.Params["empOid"]);
|
|
|
|
int startDay = 1;
|
|
if (Request.Params["start"] != null)
|
|
{
|
|
startDay = int.Parse(Request.Params["start"]);
|
|
}
|
|
|
|
int endDay = DateTime.DaysInMonth(year, month);
|
|
if (Request.Params["end"] != null)
|
|
{
|
|
endDay = int.Parse(Request.Params["end"]);
|
|
}
|
|
|
|
long? scOid = null;
|
|
if (Request.Params["scOid"] != null)
|
|
scOid = long.Parse(Request.Params["scOid"]);
|
|
|
|
|
|
|
|
return reportCreator.CreateServiceOverviewAllCustomersReport(month, year, orgaOid, empOid, scOid, startDay, endDay, false);
|
|
}
|
|
|
|
|
|
private XtraReport CreateServiceOverviewSingleCustomerReport()
|
|
{
|
|
long customerOid = long.Parse(Request.Params["cOid"]);
|
|
int month = int.Parse(Request.Params["month"]);
|
|
int year = int.Parse(Request.Params["year"]);
|
|
long orgaOid = long.Parse(Request.Params["orgaOid"]);
|
|
long empOid = long.Parse(Request.Params["empOid"]);
|
|
|
|
int startDay = 1;
|
|
if (Request.Params["start"] != null)
|
|
{
|
|
startDay = int.Parse(Request.Params["start"]);
|
|
}
|
|
|
|
int endDay = DateTime.DaysInMonth(year, month);
|
|
if (Request.Params["end"] != null)
|
|
{
|
|
endDay = int.Parse(Request.Params["end"]);
|
|
}
|
|
|
|
long? scOid;
|
|
if (Request.Params["scOid"] != null)
|
|
scOid = long.Parse(Request.Params["scOid"]);
|
|
else
|
|
scOid = null;
|
|
|
|
return reportCreator.CreateServiceOverviewSingleCustomerReport(customerOid, month, year, orgaOid, empOid, scOid, startDay, endDay);
|
|
}
|
|
|
|
private XtraReport CreateServiceOverviewNew()
|
|
{
|
|
|
|
int month = int.Parse(Request.Params["month"]);
|
|
int year = int.Parse(Request.Params["year"]);
|
|
int filterType = int.Parse(Request.Params["ft"]);
|
|
|
|
long? customerOid = null;
|
|
if (Request.Params["cOid"] != null)
|
|
{
|
|
customerOid = long.Parse(Request.Params["cOid"]);
|
|
}
|
|
|
|
long? teamOid = null;
|
|
if (Request.Params["tOid"] != null)
|
|
{
|
|
teamOid = long.Parse(Request.Params["tOid"]);
|
|
}
|
|
|
|
long? orgaOid = null;
|
|
if (Request.Params["orgaOid"] != null)
|
|
{
|
|
orgaOid = long.Parse(Request.Params["orgaOid"]);
|
|
}
|
|
|
|
long? empOid = null;
|
|
if (Request.Params["empOid"] != null)
|
|
{
|
|
empOid = long.Parse(Request.Params["empOid"]);
|
|
}
|
|
|
|
int startDay = 1;
|
|
if (Request.Params["start"] != null)
|
|
{
|
|
startDay = int.Parse(Request.Params["start"]);
|
|
}
|
|
|
|
|
|
|
|
int endDay = DateTime.DaysInMonth(year, month);
|
|
if (Request.Params["end"] != null)
|
|
{
|
|
endDay = int.Parse(Request.Params["end"]);
|
|
}
|
|
|
|
int endMonat = month;
|
|
int endYear = year;
|
|
|
|
|
|
if (Request.Params["endmonth"] != null)
|
|
{
|
|
endMonat = int.Parse(Request.Params["endmonth"]);
|
|
}
|
|
|
|
if (Request.Params["endyear"] != null)
|
|
{
|
|
endYear = int.Parse(Request.Params["endyear"]);
|
|
}
|
|
long? scOid;
|
|
if (Request.Params["scOid"] != null)
|
|
scOid = long.Parse(Request.Params["scOid"]);
|
|
else
|
|
scOid = null;
|
|
bool addQb = false;
|
|
if (Request.Params["addqb"] != null && Request.Params["addqb"] == "1")
|
|
{
|
|
addQb = true;
|
|
}
|
|
|
|
//nf = nur fehlende:-)
|
|
bool nf = false;
|
|
if (Request.Params["nf"] != null && Request.Params["nf"] == "1")
|
|
{
|
|
nf = true;
|
|
}
|
|
|
|
DateTime startDate = new DateTime(year, month, startDay);
|
|
DateTime endDate = new DateTime(endYear, endMonat, endDay);
|
|
|
|
return reportCreator.CreateServiceOverviewReportNew((QBFilterEnum)filterType, customerOid, teamOid, empOid, orgaOid, scOid, startDate, endDate, nf);
|
|
}
|
|
|
|
private XtraReport CreateServiceRecordListReport()
|
|
{
|
|
long eOid = long.Parse(Request.Params["eOid"]);
|
|
long cOid = long.Parse(Request.Params["cOid"]);
|
|
long scOid = long.Parse(Request.Params["scOid"]);
|
|
long cb2scOid = long.Parse(Request.Params["cb2scOid"]);
|
|
|
|
string isLimitedParam = Request.Params["l"];
|
|
bool isLimited = isLimitedParam != null;
|
|
|
|
return reportCreator.CreateServiceRecordListReport(eOid, cOid, scOid, cb2scOid, isLimited, null);
|
|
}
|
|
|
|
private XtraReport CreateSettlementReport()
|
|
{
|
|
String dcId = Request.Params["dcid"];
|
|
|
|
long? invoiceBaseOid = null;
|
|
if (Request.Params["ibid"] != null)
|
|
invoiceBaseOid = long.Parse(Request.Params["ibid"]);
|
|
|
|
bool addQb = false;
|
|
if (Request.Params["addqb"] != null && Request.Params["addqb"] == "1")
|
|
{
|
|
addQb = true;
|
|
}
|
|
|
|
if (addQb)
|
|
{
|
|
return reportCreator.CreateSettlementReportMitQB(dcId, invoiceBaseOid);
|
|
}
|
|
|
|
return reportCreator.CreateSettlementReport(dcId, invoiceBaseOid);
|
|
|
|
}
|
|
|
|
private XtraReport CreateSupportConceptReport()
|
|
{
|
|
IList<long> c2sOids = null;
|
|
long? eOid = null;
|
|
long? tOid = null;
|
|
long? catOid = null;
|
|
int? exp = 0;
|
|
int arc = 0;
|
|
|
|
if (Request.Params["c2slist"] != null)
|
|
{
|
|
String oidStr = Request.Params["c2slist"];
|
|
var oidArray = oidStr.Split(',');
|
|
c2sOids = new List<long>();
|
|
foreach (var os in oidArray)
|
|
{
|
|
long oid = 0;
|
|
if (Int64.TryParse(os, out oid))
|
|
{
|
|
c2sOids.Add(oid);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
eOid = long.Parse(Request.Params["eOid"]);
|
|
tOid = long.Parse(Request.Params["tOid"]);
|
|
|
|
if (Request.Params["catOid"] != null)
|
|
{
|
|
catOid = long.Parse(Request.Params["catOid"]);
|
|
}
|
|
exp = int.Parse(Request.Params["exp"]);
|
|
arc = int.Parse(Request.Params["arc"]);
|
|
|
|
if (eOid == 0)
|
|
{
|
|
eOid = null;
|
|
}
|
|
if (tOid == 0)
|
|
{
|
|
tOid = null;
|
|
}
|
|
if (catOid == 0)
|
|
{
|
|
catOid = null;
|
|
}
|
|
if (exp == 0)
|
|
{
|
|
exp = null;
|
|
}
|
|
}
|
|
DateTime? endDate = null;
|
|
Object obj = Request.Params["date"];
|
|
if (obj != null)
|
|
{
|
|
DateTime dt = DateTime.MaxValue;
|
|
DateTime.TryParse(obj.ToString(), out dt);
|
|
endDate = dt;
|
|
}
|
|
|
|
DateTime? startDate = null;
|
|
if (Request.Params["start"] != null)
|
|
{
|
|
DateTime dt = DateTime.MinValue;
|
|
if (DateTime.TryParse(Request.Params["start"].ToString(), out dt))
|
|
{
|
|
startDate = dt;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return reportCreator.CreateSupportConceptReport(c2sOids, eOid, tOid, catOid, exp, arc == 1, startDate, endDate);
|
|
}
|
|
|
|
private XtraReport CreateBewertungsstatistikReport()
|
|
{
|
|
DateTime? start = null;
|
|
DateTime? end = null;
|
|
SupportConceptDC supportConcept = null;
|
|
bool inclZeiterfassung = false;
|
|
List<ValueListEntryDC> ziele = new List<ValueListEntryDC>();
|
|
List<RatingDC> scZiele = new List<RatingDC>();
|
|
|
|
|
|
if (Request.Params["scOid"] != null)
|
|
supportConcept = MapperFactory.SupportConceptDC_SupportConcept.MapToNewDC(DAOFactory.GenericDAO.GetByID<SupportConcept>(long.Parse(Request.Params["scOid"])));
|
|
if (Request.Params["start"] != null)
|
|
start = DateTime.Parse(Request.Params["start"]);
|
|
else if (supportConcept != null)
|
|
start = supportConcept.Ratings[0].StartDate;
|
|
else
|
|
start = null;
|
|
|
|
if (Request.Params["end"] != null)
|
|
end = DateTime.Parse(Request.Params["end"]);
|
|
else if (supportConcept != null)
|
|
end = supportConcept.Ratings[supportConcept.Ratings.Count - 1].StartDate;
|
|
else
|
|
end = null;
|
|
|
|
if (Request.Params["ze"] != null)
|
|
inclZeiterfassung = (Request.Params["ze"] == "1") ? true : false;
|
|
if (Request.Params["goals"] != null)
|
|
{
|
|
string goalOids = Request.Params["goals"].ToString();
|
|
var oids = goalOids.Split(',');
|
|
var alleValueListEntries = DAOFactory.GenericDAO.GetAllActive<ValueListEntry>();
|
|
if (goalOids != null && goalOids != "")
|
|
{
|
|
foreach (var oid in oids)
|
|
{
|
|
foreach (var item in alleValueListEntries)
|
|
{
|
|
if (long.Parse(oid) == item.Oid)
|
|
ziele.Add(MapperFactory.ValueListEntryDC_ValueListEntry.MapToNewDC(item));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Request.Params["scgoals"] != null)
|
|
{
|
|
string scGoalOids = Request.Params["scgoals"].ToString();
|
|
if (!string.IsNullOrWhiteSpace(scGoalOids))
|
|
{
|
|
var oids = scGoalOids.Split(',');
|
|
var alleRatingDCs =
|
|
MapperFactory.RatingDC_Rating.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive<Rating>());
|
|
foreach (var oid in oids)
|
|
{
|
|
long loid = 0;
|
|
if (Int64.TryParse(oid, out loid))
|
|
{
|
|
foreach (var dc in alleRatingDCs)
|
|
{
|
|
if (loid == dc.RatingOid)
|
|
scZiele.Add(dc);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return reportCreator.CreateBewertungsstatistikReport(start, end, supportConcept, inclZeiterfassung, ziele, scZiele);
|
|
}
|
|
|
|
private XtraReport CreateMediVerordnungslistenReport()
|
|
{
|
|
var mvlOid = long.Parse(Request.Params["mvlOid"]);
|
|
|
|
return reportCreator.CreateMediVerordListenReport(mvlOid);
|
|
}
|
|
|
|
private XtraReport CreateMediVerordnungslistenMZusatzfeldernReport()
|
|
{
|
|
var mvlOid = long.Parse(Request.Params["mvlOid"]);
|
|
|
|
return reportCreator.CreateMediVerordListenMZfReport(mvlOid, true);
|
|
}
|
|
|
|
private XtraReport CreateHistorischeMediVerordnungslistenReport()
|
|
{
|
|
var mvlOid = long.Parse(Request.Params["mvlOid"]);
|
|
|
|
return reportCreator.CreateMediVerordListenReport(mvlOid);
|
|
}
|
|
|
|
private XtraReport CreateFinanceReport()
|
|
{
|
|
DateTime? start = null;
|
|
DateTime? end = null;
|
|
|
|
String date = Request.Params["start"];
|
|
|
|
if (!String.IsNullOrEmpty(date) && date.Length == 8)
|
|
{
|
|
DateTime dt;
|
|
if (DateTime.TryParse(
|
|
String.Format("{0}.{1}.{2}", date.Substring(0, 2), date.Substring(2, 2), date.Substring(4, 4)), out dt))
|
|
{
|
|
start = dt;
|
|
}
|
|
}
|
|
date = Request.Params["end"];
|
|
|
|
if (!String.IsNullOrEmpty(date) && date.Length == 8)
|
|
{
|
|
DateTime dt;
|
|
if (DateTime.TryParse(
|
|
String.Format("{0}.{1}.{2}", date.Substring(0, 2), date.Substring(2, 2), date.Substring(4, 4)), out dt))
|
|
{
|
|
end = dt;
|
|
}
|
|
}
|
|
|
|
bool onlyNotApproved = false;
|
|
|
|
if (Request.Params["onlyNotApproved"] != null)
|
|
{
|
|
if (Request.Params["onlyNotApproved"] == "1")
|
|
{
|
|
onlyNotApproved = true;
|
|
}
|
|
}
|
|
bool splitByServiceCategory = false;
|
|
|
|
if (Request.Params["splitByServiceCategory"] != null)
|
|
{
|
|
if (Request.Params["splitByServiceCategory"] == "1")
|
|
{
|
|
splitByServiceCategory = true;
|
|
}
|
|
}
|
|
|
|
|
|
return reportCreator.CreateFinanceReport(start, end, splitByServiceCategory, onlyNotApproved);
|
|
|
|
}
|
|
|
|
private XtraReport CreateJahresbericht()
|
|
{
|
|
int year = int.Parse(Request.Params["y"]);
|
|
long? cbOid = null;
|
|
if (Request.Params["cb"] != null)
|
|
cbOid = long.Parse(Request.Params["cb"]);
|
|
|
|
long? teamOid = null;
|
|
if (Request.Params["t"] != null)
|
|
teamOid = long.Parse(Request.Params["t"]);
|
|
|
|
long? artOid = null;
|
|
if (Request.Params["art"] != null)
|
|
artOid = long.Parse(Request.Params["art"]);
|
|
|
|
return reportCreator.CreateJahresberichtReport(year, cbOid, teamOid, artOid);
|
|
}
|
|
|
|
private XtraReport CreateEmployeeDataReport()
|
|
{
|
|
long oid = long.Parse(Request.Params["eOid"]);
|
|
|
|
return reportCreator.CreateEmployeeDataReport(oid);
|
|
}
|
|
|
|
private XtraReport CreateNotizenReport()
|
|
{
|
|
long kategorieOid = long.Parse(Request.Params["katOid"]);
|
|
DateTime start = DateTime.Parse(Request.Params["start"]);
|
|
DateTime end = DateTime.Parse(Request.Params["end"]);
|
|
|
|
return reportCreator.CreateNotizenReport(kategorieOid, start, end);
|
|
}
|
|
|
|
private XtraReport CreateSBDCharacteristicsReport()
|
|
{
|
|
var customerOid = long.Parse(Request.Params["customerOid"]);
|
|
|
|
return reportCreator.CreateSBDCharacteristicsReport(customerOid);
|
|
}
|
|
|
|
private XtraReport CreateSBDEmployeeReport()
|
|
{
|
|
var oid = long.Parse(Request.Params["employeeOid"]);
|
|
|
|
return reportCreator.CreateSBDEmployeeReport(oid);
|
|
}
|
|
|
|
private XtraReport CreateAbsenceReport()
|
|
{
|
|
DateTime dt = DateTime.ParseExact(Request.Params["dt"], "MM.yyyy", CultureInfo.InvariantCulture);
|
|
List<long> absenceIDs = null;
|
|
List<long> empIDs = null;
|
|
List<long> teams = null;
|
|
List<int> feiertage = null;
|
|
|
|
if (Request.Params["ar"] != null)
|
|
absenceIDs = Request.Params["ar"].Split(';').Select(long.Parse).ToList();
|
|
|
|
if (Request.Params["et"] != null)
|
|
absenceIDs = Request.Params["et"].Split(';').Select(long.Parse).ToList();
|
|
|
|
if (Request.Params["t"] != null)
|
|
teams = Request.Params["t"].Split(';').Select(long.Parse).ToList();
|
|
|
|
if (Request.Params["f"] != null)
|
|
feiertage = Request.Params["f"].Split(';').Select(int.Parse).ToList();
|
|
|
|
return reportCreator.CreateAbsenceReport(dt, absenceIDs, empIDs, teams, feiertage);
|
|
}
|
|
|
|
private XtraReport CreateRosterReport()
|
|
{
|
|
DateTime dt = DateTime.ParseExact(Request.Params["dt"], "dd.MM.yyyy", CultureInfo.InvariantCulture);
|
|
long wOid = int.Parse(Request.Params["wid"]);
|
|
int sortIndex = int.Parse(Request.Params["si"]);
|
|
bool aufsteigend = int.Parse(Request.Params["order"]) == 0 ? false : true;
|
|
long creator = 1;
|
|
string creatorParam = Request.Params["creator"];
|
|
if (creatorParam != null)
|
|
creator = int.Parse(Request.Params["creator"]);
|
|
|
|
List<int> feiertage = new List<int>();
|
|
|
|
if (Request.Params["ft"] != null)
|
|
feiertage = Request.Params["ft"].Split(';').Select(int.Parse).ToList();
|
|
|
|
|
|
return reportCreator.CreateRosterReport(wOid, dt, feiertage, sortIndex, aufsteigend, creator);
|
|
}
|
|
private XtraReport CreateRosterReportIst()
|
|
{
|
|
DateTime dt = DateTime.ParseExact(Request.Params["dt"], "dd.MM.yyyy", CultureInfo.InvariantCulture);
|
|
long wOid = int.Parse(Request.Params["wid"]);
|
|
|
|
List<int> feiertage = new List<int>();
|
|
|
|
return reportCreator.CreateRosterReportIst(wOid, dt);
|
|
}
|
|
|
|
private XtraReport CreateVorlagenReport()
|
|
{
|
|
long template = long.Parse(Request.Params["vorlage"]);
|
|
string objectOidString = Request.Params["obj"];
|
|
string[] oidArray = objectOidString.Split(',');
|
|
|
|
List<long> objectOids = new List<long>();
|
|
foreach (string s in oidArray)
|
|
objectOids.Add(long.Parse(s));
|
|
|
|
long table = long.Parse(Request.Params["table"]);
|
|
|
|
return reportCreator.CreateVorlagenReport(template, objectOids, table);
|
|
}
|
|
|
|
private XtraReport CreateAbwesenheitsPrintReport()
|
|
{
|
|
string printOids = Request.Params["oids"];
|
|
string titel = Request.Params["titel"];
|
|
|
|
string[] oidArray = printOids.Split(',');
|
|
|
|
List<long> oidList = new List<long>();
|
|
foreach (var item in oidArray)
|
|
{
|
|
oidList.Add(Convert.ToInt64(item));
|
|
}
|
|
|
|
return reportCreator.CreateAbwesenheitsPrintReport(oidList, titel);
|
|
}
|
|
|
|
private XtraReport CreateEmployeeCustomerListReport()
|
|
{
|
|
long? oid = null;
|
|
if (Request.Params["eOid"] != null)
|
|
{
|
|
oid = long.Parse(Request.Params["eOid"]);
|
|
}
|
|
|
|
|
|
return reportCreator.CreateEmployeeCustomerListReport(oid);
|
|
}
|
|
|
|
private XtraReport CreateRatingReport()
|
|
{
|
|
long roid = 0;
|
|
long scoid = 0;
|
|
if (Request.Params["rOid"] != null)
|
|
{
|
|
roid = long.Parse(Request.Params["rOid"]);
|
|
}
|
|
if (Request.Params["scOid"] != null)
|
|
{
|
|
scoid = long.Parse(Request.Params["scOid"]);
|
|
}
|
|
return reportCreator.CreateRatingReport(roid, scoid);
|
|
}
|
|
|
|
private XtraReport CreateKilometerAuswertung()
|
|
{
|
|
DateTime start = DateTime.Now.Date;
|
|
DateTime end = DateTime.Now.Date;
|
|
String cOids = Request.Params["cOids"];
|
|
String eOids = Request.Params["eOids"];
|
|
String sdOids = Request.Params["sdOids"];
|
|
|
|
String date = Request.Params["start"];
|
|
|
|
if (!String.IsNullOrEmpty(date) && date.Length == 8)
|
|
{
|
|
DateTime dt;
|
|
if (DateTime.TryParse(
|
|
String.Format("{0}.{1}.{2}", date.Substring(0, 2), date.Substring(2, 2), date.Substring(4, 4)), out dt))
|
|
{
|
|
start = dt;
|
|
}
|
|
}
|
|
date = Request.Params["end"];
|
|
|
|
if (!String.IsNullOrEmpty(date) && date.Length == 8)
|
|
{
|
|
DateTime dt;
|
|
if (DateTime.TryParse(
|
|
String.Format("{0}.{1}.{2}", date.Substring(0, 2), date.Substring(2, 2), date.Substring(4, 4)), out dt))
|
|
{
|
|
end = dt;
|
|
}
|
|
}
|
|
|
|
var serviceDescriptionOids = new List<long>();
|
|
if (!String.IsNullOrEmpty(sdOids))
|
|
{
|
|
serviceDescriptionOids = sdOids.Split(',').Select(o => Int64.Parse(o)).ToList();
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(cOids))
|
|
{
|
|
var list = cOids.Split(',').Select(o => Int64.Parse(o)).ToList();
|
|
if (list.Count == 1)
|
|
{
|
|
return reportCreator.CreateKilometerauswertung(list[0], serviceDescriptionOids, start, end);
|
|
}
|
|
else
|
|
{
|
|
return reportCreator.CreateKilometerauswertungForAllCustomers(list, serviceDescriptionOids, start, end);
|
|
}
|
|
}
|
|
else if (!String.IsNullOrEmpty(eOids))
|
|
{
|
|
var list = eOids.Split(',').Select(o => Int64.Parse(o)).ToList();
|
|
if (list.Count == 1)
|
|
{
|
|
return reportCreator.CreateEmployeeKilometerauswertung(list[0], serviceDescriptionOids, start, end);
|
|
}
|
|
else
|
|
{
|
|
return reportCreator.CreateKilometerauswertungForAllEmployees(list, serviceDescriptionOids, start, end);
|
|
}
|
|
}
|
|
|
|
return new XtraReport();
|
|
|
|
}
|
|
|
|
private XtraReport CreateVertretungsPlanungReport()
|
|
{
|
|
DateTime start = DateTime.Now.Date;
|
|
int ansicht = 1;
|
|
|
|
return reportCreator.CreateVertretungsPlanungReport(start, ansicht);
|
|
|
|
}
|
|
|
|
private XtraReport CreateValidationMessageListReport()
|
|
{
|
|
DateTime start = DateTime.Now.Date;
|
|
DateTime end = start.AddMonths(1).AddTicks(-1);
|
|
|
|
return reportCreator.CreateValidationMessageListReport(start, end);
|
|
}
|
|
|
|
private XtraReport CreateGkvAbrechnungReport()
|
|
{
|
|
var request = GkvAbrechnungReportRequest.Parse(Request.Params);
|
|
|
|
return reportCreator.CreateGkvAbrechnungReport(request);
|
|
}
|
|
|
|
|
|
private AbstractReportCreator GetReportCreator()
|
|
{
|
|
long? templateOid = null;
|
|
if (Request.Params["template"] != null)
|
|
{
|
|
templateOid = long.Parse(Request.Params["template"]);
|
|
}
|
|
|
|
String t = slicedToken["tenant"].ToString();
|
|
SessionFacade.Tenant = t;
|
|
|
|
AbstractReportCreator creator = PluginLoader.FindClass<DefaultReportCreator>();
|
|
|
|
if (creator == null)
|
|
creator = new DefaultReportCreator();
|
|
creator.TemplateOid = templateOid;
|
|
|
|
#if DEBUG
|
|
creator.TempPath = BS.Shared.Core.Utils.CreateSavePath(AppDomain.CurrentDomain.BaseDirectory, @"demo\temp");
|
|
#else
|
|
|
|
creator.TempPath = BS.Shared.Core.Utils.CreateSavePath(AppDomain.CurrentDomain.BaseDirectory, t + @"\temp");
|
|
#endif
|
|
|
|
|
|
return creator;
|
|
}
|
|
|
|
}
|
|
} |