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 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; using DevExpress.DataProcessing; namespace Host { public partial class ReportView : Page { private Dictionary 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 sw = System.Diagnostics.Stopwatch.StartNew(); var report = CreateReport(); sw.Stop(); Console.WriteLine(sw.Elapsed.TotalMilliseconds); 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(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(); 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"]); bool addQb = false; if (Request.Params["addqb"] != null && Request.Params["addqb"] == "1") { addQb = true; } if (addQb) { return reportCreator.CreateCustomerInvoiceReportMitQb(invoiceOid); } 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 teamOids = null; if (Request.Params["toid"] != null) { String teamOidStr = Request.Params["toid"]; var oids = teamOidStr.Split(','); teamOids = new List(); 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 teamOids = null; if (Request.Params["toid"] != null) { String teamOidStr = Request.Params["toid"]; var oids = teamOidStr.Split(','); teamOids = new List(); 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"]); bool addQb = false; if (Request.Params["addqb"] != null && Request.Params["addqb"] == "1") { addQb = true; } if (addQb && invoiceBaseOid.HasValue) { return reportCreator.CreateServiceInvoiceReportMitQb(invoiceBaseOid.Value); } 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; //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 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(); 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 ziele = new List(); List scZiele = new List(); if (Request.Params["scOid"] != null) supportConcept = MapperFactory.SupportConceptDC_SupportConcept.MapToNewDC(DAOFactory.GenericDAO.GetByID(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(); 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()); 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 = DateTime.Now.Year - 1; if (Request.Params["y"] != null) { year = int.Parse(Request.Params["y"]); } DateTime start = new DateTime(year, 1, 1); DateTime end = new DateTime(year, 12, 31); bool showOnlyApprovedSupportConcepts = true; bool stichtagsbezogen = true; if (Request.Params["start"] != null) { start = DateTime.Parse(Request.Params["start"]); } if (Request.Params["end"] != null) { end = DateTime.Parse(Request.Params["end"]); } if (Request.Params["appr"] != null) { showOnlyApprovedSupportConcepts = "0".Equals(Request.Params["appr"]) ? false : true; } if (Request.Params["stichtag"] != null) { stichtagsbezogen = "0".Equals(Request.Params["stichtag"]) ? false : true; } 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"]); var config = new AnnualReportConfigDC { CostbearerOid = cbOid, TeamOid = teamOid, CustomerCareTypeValueListEntryOid = artOid, StartDate = start, EndDate = end, ShowOnlyApprovedSupportConcepts = showOnlyApprovedSupportConcepts, StichtagsbezogenAuswerten = stichtagsbezogen }; return reportCreator.CreateJahresberichtReport(config); } 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 absenceIDs = null; List empIDs = null; List teams = null; List 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 feiertage = new List(); 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 feiertage = new List(); 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 objectOids = new List(); 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 oidList = new List(); 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(); 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(); 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; } } }