Files
BeWoPlaner/ReportImp/PassgenauUG/Leistungsnachweis.cs

137 lines
3.9 KiB
C#
Raw Permalink Normal View History

2021-03-11 12:09:38 +01:00
using System;
using System.Collections;
using System.ComponentModel;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using DevExpress.XtraReports.UI;
using BeWo.Report.ReportObjects;
using BeWo.Report;
using System.Collections.Generic;
2021-07-25 21:49:50 +02:00
using System.IO;
using System.Text.RegularExpressions;
using BS.Shared.Core;
using Image = System.Drawing.Image;
2021-03-11 12:09:38 +01:00
namespace PassgenauUG
{
public partial class Leistungsnachweis : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<ServicesOverviewRO>
{
public Leistungsnachweis()
{
InitializeComponent();
}
public void SetReportDataSource(ServicesOverviewRO pRO)
{
ErmittleHauptbetreuer(pRO);
2021-04-12 20:32:10 +02:00
if (pRO.RateFactor == 0)
{
pRO.RateFactor = 1.2m;
}
2021-03-11 12:09:38 +01:00
if (pRO.Services != null)
{
List<ServicesOverviewRO.ServiceDetail> servicesBillable = new List<ServicesOverviewRO.ServiceDetail>();
double summeStunden = 0;
double summeFLS = 0;
foreach (ServicesOverviewRO.ServiceDetail s in pRO.Services)
{
if (s.IsBillable)
{
2021-07-25 21:49:50 +02:00
ServicesOverviewRO.CreateSignatureString(s);
2021-03-11 12:09:38 +01:00
summeStunden += s.Minutes;
2021-04-12 20:32:10 +02:00
var fls = (s.Minutes * (double)pRO.RateFactor) / 60;
2021-03-11 12:09:38 +01:00
summeFLS += fls;
s.Minutes = fls;
servicesBillable.Add(s);
}
}
pRO.TotalFLMBillable = summeStunden / 60;
pRO.TotalFLS = summeFLS;
pRO.Services = servicesBillable;
}
this.bindingSource1.DataSource = pRO;
}
private void ErmittleHauptbetreuer(ServicesOverviewRO pRO)
{
if (pRO.CostBearer2SupportConceptList != null && pRO.CostBearer2SupportConceptList.Count > 0)
{
var c2s = pRO.CostBearer2SupportConceptList[0];
String list = "";
foreach (var scap in c2s.ApprovalPeriodList)
{
if (scap.SupportConceptApprovalPeriod2Employee != null)
{
foreach (var p2e in scap.SupportConceptApprovalPeriod2Employee)
{
String name = p2e.Employee.Person.FirstNameLastName;
if (!list.Contains(name))
{
if (list.Length > 0)
{
list += ", ";
}
list += name;
}
}
}
}
if (!String.IsNullOrEmpty(list))
{
pRO.MainAttendant = list;
}
}
}
2021-07-25 21:49:50 +02:00
2024-03-04 15:55:19 +01:00
private void picSignature_BeforePrint(object sender, System.ComponentModel.CancelEventArgs e)
2021-07-25 21:49:50 +02:00
{
XRPictureBox xrBox = sender as XRPictureBox;
//var test = this.GetCurrent
string base64String = xrBox.Tag as string;
if (!String.IsNullOrWhiteSpace(base64String))
{
var base64Data = Regex.Match(base64String, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
var binData = Convert.FromBase64String(base64Data);
System.Drawing.Image img = ByteArrayToImage(binData);
xrBox.Image = Utils.CropImage(img);
}
else
{
xrBox.Image = null;
}
}
public System.Drawing.Image ByteArrayToImage(byte[] byteArrayIn)
{
System.Drawing.Image returnImage = null;
MemoryStream ms = new System.IO.MemoryStream(byteArrayIn);
returnImage = Image.FromStream(ms);
return returnImage;
}
2021-03-11 12:09:38 +01:00
}
}