Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo

This commit is contained in:
2024-07-29 17:06:48 +02:00
8 changed files with 1520 additions and 106 deletions

View File

@@ -178,8 +178,8 @@ namespace MalteserJohanniterJohanneshaus
}
}
//if (function == "Krankenkasse")
// report = new MalteserJohanniterJohanneshaus.LeistungsnachweisSoziotherapie();
if (function.Contains("kasse"))
report = new MalteserJohanniterJohanneshaus.LeistungsnachweisSoziotherapie();
if (report == null)
report = new MalteserJohanniterJohanneshaus.Quittierungsbeleg();

View File

@@ -21,10 +21,42 @@ namespace MalteserJohanniterJohanneshaus.Invoicing
invoice.InvoiceBase.InvoiceId = "RechnungSoziotherapie";
invoice.InvoiceBase.InvoiceTypeText = "Soziotherapie";
}
public override ServiceInvoice CreateSingleInvoice(int invoiceCounter, CostBearer costBearer, DateTimeSpan invoicePeriod, CompactSupportConceptDC supportConcept, List<ServiceRecordDC> serviceRecords)
{
//if (supportConcept.IsApproved)
//{
var invoice = new ServiceInvoice();
var supportConceptList = new List<CompactSupportConceptDC> { supportConcept };
SetSenderInformation(invoice);
SetInvoiceBaseData(invoiceCounter, invoice, costBearer, invoicePeriod, supportConceptList);
SetSingleInvoiceBaseData(invoiceCounter, invoice, costBearer, invoicePeriod, supportConcept);
SetRecipientInformation(invoice, costBearer);
SetServiceInvoicePeriods(invoice, invoice.InvoiceBase.CostBearer2SupportConcept, invoicePeriod,
serviceRecords);
SetServiceInvoicePeriodAmounts(invoice);
// Spitzabrechnung
if (invoicePeriod == null)
{
SetAmountAdvancePayments(invoice);
SetAmountEquityContribution(invoice);
}
return invoice;
//}
//return null;
}
public override IList<InvoiceItem> CreateInvoiceItems(List<ServiceRecordDC> serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap,
Calculations calc)
{
Calculations calc)
{
var list = base.CreateInvoiceItems(serviceRecordsInPeriod, invoicePeriod, scap, calc);
var ii = CreateHausbesuchspauschale(serviceRecordsInPeriod, invoicePeriod, scap);
list.AddRange(ii);
@@ -34,71 +66,105 @@ namespace MalteserJohanniterJohanneshaus.Invoicing
public override InvoiceItem CreateInvoiceItem(ServiceRecordDC iServiceRecord, SupportConceptApprovalPeriod scap, Calculations calc)
{
// Es gibt 4 verschiedene Preise - jeweils für Einzel- bzw. Gruppenstunde
// sowie für Primär- und Ersatzkasse
// zusätzlich verschiedene GPos-Nummern für jede Leistung - dort häufig noch nach Dauer (<= 30 min und > 30min) unterschieden
var ii = base.CreateInvoiceItem(iServiceRecord, scap, calc);
ii.ItemDescription = iServiceRecord.ServiceDescription.Name;
if (ii.ItemDescription.ToLower().Contains("probe"))
if (ii.ItemDescription.ToLower().Contains("gruppe"))
{
ii.UnitDescription = "GPos: 2001607";
}
else if (ii.ItemDescription.ToLower().Contains("gruppentherapie"))
{
ii.UnitDescription = "GPos: 2002672";
}
else if (ii.ItemDescription.ToLower().Contains("video"))
{
if (iServiceRecord.RoundedDuration <= 30 || ii.ItemDescription.ToLower().Contains("30"))
if (iServiceRecord.RoundedDuration <= 45)
{
ii.UnitDescription = "GPos: 2001616";
ii.UnitDescription = "GPos: 2002678"; // 2 bis 5 Teilnehmer
}
else if (iServiceRecord.RoundedDuration > 30 || ii.ItemDescription.ToLower().Contains("60"))
else if (iServiceRecord.RoundedDuration <= 60)
{
ii.UnitDescription = "GPos: 2001615";
ii.UnitDescription = "GPos: 2002677"; // 2 bis 5 Teilnehmer
}
}
else if (ii.ItemDescription.ToLower().Contains("telefon"))
{
if (iServiceRecord.RoundedDuration <= 30)
else
{
ii.UnitDescription = "GPos: 2001618";
}
else if (iServiceRecord.RoundedDuration > 30)
{
ii.UnitDescription = "GPos: 2001617";
ii.UnitDescription = "GPos: 2002672"; // 2 bis 5 Teilnehmer - 90 Min
}
// Gibt 2 Preise, einmal für Funktion Primärkasse und einmal für Funktion Ersatzkasse
var preisGruppe = GetGruppenPreis(scap.CostBearer2SupportConcept, iServiceRecord.Start.Value);
ii.AmountPerUnit = preisGruppe;
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
ii.GrossAmountTotal = ii.AmountTotal;
}
else
{
if (iServiceRecord.RoundedDuration <= 30)
// Gibt 2 Preise, einmal für Funktion Primärkasse und einmal für Funktion Ersatzkasse
var preisEinzel = GetEinzelPreis(scap.CostBearer2SupportConcept, iServiceRecord.Start.Value);
ii.AmountPerUnit = preisEinzel;
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
ii.GrossAmountTotal = ii.AmountTotal;
if (ii.ItemDescription.ToLower().Contains("probatorik"))
{
ii.UnitDescription = "GPos: 2001612";
ii.UnitDescription = "GPos: 2001607";
}
else if (iServiceRecord.RoundedDuration > 30)
else if (ii.ItemDescription.ToLower().Contains("video"))
{
ii.UnitDescription = "GPos: 2001610";
if (iServiceRecord.RoundedDuration <= 30)
{
ii.UnitDescription = "GPos: 2001616";
}
else if (iServiceRecord.RoundedDuration > 30)
{
ii.UnitDescription = "GPos: 2001615";
}
}
else if (ii.ItemDescription.ToLower().Contains("telefon"))
{
if (iServiceRecord.RoundedDuration <= 30)
{
ii.UnitDescription = "GPos: 2001618";
}
else if (iServiceRecord.RoundedDuration > 30)
{
ii.UnitDescription = "GPos: 2001617";
}
}
else
{
if (iServiceRecord.RoundedDuration <= 10)
{
ii.UnitDescription = "GPos: 2001613";
}
else if (iServiceRecord.RoundedDuration <= 30)
{
ii.UnitDescription = "GPos: 2001612";
}
else if (iServiceRecord.RoundedDuration <= 45)
{
ii.UnitDescription = "GPos: 2001611";
}
else if (iServiceRecord.RoundedDuration > 45)
{
ii.UnitDescription = "GPos: 2001610";
}
}
}
return ii;
}
public virtual IList<InvoiceItem> CreateHausbesuchspauschale(List<ServiceRecordDC> serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap)
{
IList<InvoiceItem> items = new List<InvoiceItem>();
decimal hausbesuchspauschale = 7.98m;
var preise = DAOFactory.GenericDAO.GetAllActive<Preis>();
hausbesuchspauschale = GetPreis(preise, "Hausbesuchspauschale", invoicePeriod.StartDate);
{
IList<InvoiceItem> items = new List<InvoiceItem>();
decimal hausbesuchspauschale = 8.53m;
// Gibt 2 Preise, einmal für Funktion Primärkasse und einmal für Funktion Ersatzkasse
hausbesuchspauschale = GetHausbesuchspauschale(scap.CostBearer2SupportConcept, invoicePeriod.StartDate);
int countHausbesuch = 0;
foreach (var sr in serviceRecordsInPeriod)
{
if (sr.ServiceDescription.Name.ToLower().Contains("aufsuchend"))
{
countHausbesuch++;
}
}
foreach (var sr in serviceRecordsInPeriod)
{
if (sr.ServiceDescription.Name.ToLower().Contains("hausbesuch") || sr.ServiceDescription.Name.ToLower().Contains("aufsuchend"))
{
countHausbesuch++;
}
}
if (countHausbesuch > 0)
{
@@ -123,38 +189,65 @@ namespace MalteserJohanniterJohanneshaus.Invoicing
return items;
}
private static decimal GetPreis(IList<Preis> allePreise, String name, DateTime datum)
private decimal GetHausbesuchspauschale(CostBearer2SupportConcept c2s, DateTime dt)
{
String preisName = "Hausbesuchspauschale Primärkasse";
var tagessatz = allePreise.Where(p => p.Name.Contains(name)).FirstOrDefault();
if (tagessatz != null)
if (c2s.CostBearer.Organisation.Function != null)
{
var crlist = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(tagessatz.CostRatePeriods);
var cr = crlist.GetCostRatePeriodForDate(CostRatePeriodType.AmountOfMoney, datum);
if (cr != null && cr.CostRateValue.HasValue)
if (c2s.CostBearer.Organisation.Function.Value.Contains("Ersatzkasse"))
{
return cr.CostRateValue.Value;
preisName = "Hausbesuchspauschale Ersatzkasse";
}
}
return 0;
return base.GetPreis(preisName, dt);
}
private decimal GetGruppenPreis(CostBearer2SupportConcept c2s, DateTime dt)
{
String preisName = "Gruppenstunde Primärkasse";
if (c2s.CostBearer.Organisation.Function != null)
{
if (c2s.CostBearer.Organisation.Function.Value.Contains("Ersatzkasse"))
{
preisName = "Gruppenstunde Ersatzkasse";
}
}
return base.GetPreis(preisName, dt);
}
private decimal GetEinzelPreis(CostBearer2SupportConcept c2s, DateTime dt)
{
String preisName = "Einzelstunde Primärkasse";
if (c2s.CostBearer.Organisation.Function != null)
{
if (c2s.CostBearer.Organisation.Function.Value.Contains("Ersatzkasse"))
{
preisName = "Einzelstunde Ersatzkasse";
}
}
return base.GetPreis(preisName, dt);
}
public override IList<InvoiceItem> CreateSummaryInvoiceItems(IList<InvoiceItem> itemList, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, Calculations calc, bool summaryPerMonth, bool addRateFactorToUnitCount)
{
{
return base.CreateSummaryInvoiceItems(itemList, invoicePeriod, scap, calc, true, true);
}
public override string GetSummaryItemKey(SupportConceptApprovalPeriod scap, InvoiceItem iitem, bool summaryPerMonth)
{
String key = String.Format("{0}_{1}_{2}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemDescription);
if (summaryPerMonth)
{
key = String.Format("{0}_{1}_{2:yyyyMM}_{3}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemPeriodStart, iitem.ItemDescription);
}
public override string GetSummaryItemKey(SupportConceptApprovalPeriod scap, InvoiceItem iitem, bool summaryPerMonth)
{
String key = String.Format("{0}_{1}_{2}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemDescription);
if (summaryPerMonth)
{
key = String.Format("{0}_{1}_{2:yyyyMM}_{3}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemPeriodStart, iitem.ItemDescription);
}
return key;
}
}
}
return key;
}
}
}

View File

@@ -95,6 +95,12 @@
<Compile Include="SoziotherapieLeistungsnachweis.designer.cs">
<DependentUpon>SoziotherapieLeistungsnachweis.cs</DependentUpon>
</Compile>
<Compile Include="SoziotherapieRechnung.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="SoziotherapieRechnung.Designer.cs">
<DependentUpon>SoziotherapieRechnung.cs</DependentUpon>
</Compile>
<Compile Include="Translation\TranslationDictionary.cs" />
</ItemGroup>
<ItemGroup>
@@ -136,6 +142,10 @@
<EmbeddedResource Include="SoziotherapieLeistungsnachweis.resx">
<DependentUpon>SoziotherapieLeistungsnachweis.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SoziotherapieRechnung.resx">
<DependentUpon>SoziotherapieRechnung.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -24,6 +24,7 @@ namespace MalteserJohanniterJohanneshaus
public void SetReportDataSource(ServicesOverviewRO pRO)
{
double gesamt = 0;
double gesamtGruppe = 0;
if (pRO.Services != null)
{
List<ServicesOverviewRO.ServiceDetail> servicesBillable = new List<ServicesOverviewRO.ServiceDetail>();
@@ -36,44 +37,80 @@ namespace MalteserJohanniterJohanneshaus
s.Minutes = s.Minutes * (double)pRO.RateFactor;
gesamt += s.Minutes;
}
s.Notice5 = "E"; //Einzel
if (s.ServiceDescription.Contains("Probation") || s.ServiceDescription.Contains("(P)"))
if (s.ServiceDescription.Contains("Gruppe")) //die erstellen meist über Mehrfachbuchung
{
s.Notice5 = "P";
}
else if (s.ServiceDescription.Contains("(G)"))
{
s.Notice5 = "G";
s.IsGroup = true;
}
if (s.ServiceDescription.Contains("(A)"))
if (s.IsGroup)
{
s.ServiceDescription = "(A)";
}
else if (s.ServiceDescription.Contains("(V)"))
{
s.ServiceDescription = "(V)";
gesamtGruppe += s.Minutes;
s.Notice5 = "2002672";
}
else if (s.ServiceDescription.Contains("(T)"))
else
{
s.ServiceDescription = "(T)";
}
else if (s.ServiceDescription.Contains("(E)") || s.ServiceDescription.Contains("(G)"))
{
s.ServiceDescription = "(E)";
gesamt += s.Minutes;
}
if (s.ServiceDescription.Contains("Video"))
{
s.ServiceDescription = "V";
if (s.Minutes <= 30)
{
s.Notice5 = "2001615";
}
else
{
s.Notice5 = "2001616";
}
}
else if (s.ServiceDescription.Contains("Telefon"))
{
s.ServiceDescription = "T";
if (s.Minutes <= 30)
{
s.Notice5 = "2001618";
}
else
{
s.Notice5 = "2001617";
}
}
else if (s.ServiceDescription.ToLower().Contains("prob"))
{
s.Notice5 = "2001607";
}
else if (s.ServiceDescription.Contains("Büro"))
{
s.ServiceDescription = "E";
}
else
{
if (s.ServiceDescription.Contains("Aufsuchend"));
{
s.ServiceDescription = "A";
}
if (s.Minutes <= 30)
{
s.Notice5 = "2001612";
}
else
{
s.Notice5 = "2001610";
}
}
ServicesOverviewRO.CreateSignatureString(s);
}
pRO.Services = servicesBillable;
cellGesamt.Text = String.Format("{0:0.00}", gesamt / 60);
if (gesamtGruppe > 0)
{
cellGesamtGruppe.Text = String.Format("{0:0.00}", gesamtGruppe / 60);
}
}
cellGesamt.Text = String.Format("{0:0.00}", gesamt / 60);
//SetzeAdresseUndIk(pRO);

View File

@@ -32,6 +32,7 @@ namespace MalteserJohanniterJohanneshaus
this.components = new System.ComponentModel.Container();
DevExpress.XtraReports.UI.XRSummary xrSummary1 = new DevExpress.XtraReports.UI.XRSummary();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LeistungsnachweisSoziotherapie));
DevExpress.XtraReports.UI.XRWatermark xrWatermark1 = new DevExpress.XtraReports.UI.XRWatermark();
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.xrTableServiceRecords1 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
@@ -67,7 +68,6 @@ namespace MalteserJohanniterJohanneshaus
this.xrTableCell24 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell25 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell26 = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.formattingRuleStartDate = new DevExpress.XtraReports.UI.FormattingRule();
this.formattingRuleServiceDesc = new DevExpress.XtraReports.UI.FormattingRule();
this.formattingRuleCostBearer = new DevExpress.XtraReports.UI.FormattingRule();
@@ -88,6 +88,7 @@ namespace MalteserJohanniterJohanneshaus
this.xrLabel23 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel15 = new DevExpress.XtraReports.UI.XRLabel();
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.xrPictureBox3 = new DevExpress.XtraReports.UI.XRPictureBox();
this.xrLabel18 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel19 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
@@ -104,7 +105,8 @@ namespace MalteserJohanniterJohanneshaus
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.fieldArt = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldGroup = new DevExpress.XtraReports.UI.CalculatedField();
this.xrPictureBox3 = new DevExpress.XtraReports.UI.XRPictureBox();
this.cellGesamtGruppe = new DevExpress.XtraReports.UI.XRLabel();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
@@ -573,10 +575,6 @@ namespace MalteserJohanniterJohanneshaus
this.xrTableCell26.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.xrTableCell26.Weight = 0.39850370488324982D;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
//
// formattingRuleStartDate
//
this.formattingRuleStartDate.Condition = "[StartDate2] < [StartDate]";
@@ -620,6 +618,7 @@ namespace MalteserJohanniterJohanneshaus
// ReportFooter
//
this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.cellGesamtGruppe,
this.xrLabel20,
this.xrLabel3,
this.xrLabel11,
@@ -660,7 +659,7 @@ namespace MalteserJohanniterJohanneshaus
//
this.xrLabel11.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.xrLabel11.Font = new DevExpress.Drawing.DXFont("Arial", 11F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(180.1029F, 9.999974F);
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(180.1028F, 0F);
this.xrLabel11.Name = "xrLabel11";
this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 3, 0, 0, 100F);
this.xrLabel11.SizeF = new System.Drawing.SizeF(281.3553F, 24.24997F);
@@ -697,7 +696,7 @@ namespace MalteserJohanniterJohanneshaus
this.cellGesamt.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
this.cellGesamt.BorderWidth = 1F;
this.cellGesamt.Font = new DevExpress.Drawing.DXFont("Arial", 11F, DevExpress.Drawing.DXFontStyle.Bold);
this.cellGesamt.LocationFloat = new DevExpress.Utils.PointFloat(461.4588F, 9.999911F);
this.cellGesamt.LocationFloat = new DevExpress.Utils.PointFloat(461.4588F, 0F);
this.cellGesamt.Name = "cellGesamt";
this.cellGesamt.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.cellGesamt.SizeF = new System.Drawing.SizeF(74.99997F, 24.25F);
@@ -782,6 +781,14 @@ namespace MalteserJohanniterJohanneshaus
this.ReportHeader.Name = "ReportHeader";
this.ReportHeader.StylePriority.UseFont = false;
//
// xrPictureBox3
//
this.xrPictureBox3.ImageSource = new DevExpress.XtraPrinting.Drawing.ImageSource("img", resources.GetString("xrPictureBox3.ImageSource"));
this.xrPictureBox3.LocationFloat = new DevExpress.Utils.PointFloat(909.6339F, 0F);
this.xrPictureBox3.Name = "xrPictureBox3";
this.xrPictureBox3.SizeF = new System.Drawing.SizeF(199.3656F, 89.06424F);
this.xrPictureBox3.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
//
// xrLabel18
//
this.xrLabel18.LocationFloat = new DevExpress.Utils.PointFloat(340F, 184.1667F);
@@ -827,6 +834,7 @@ namespace MalteserJohanniterJohanneshaus
this.xrLabel7.SizeF = new System.Drawing.SizeF(215.2499F, 20.00001F);
this.xrLabel7.StylePriority.UseBorders = false;
this.xrLabel7.StylePriority.UseFont = false;
this.xrLabel7.Text = "500506318";
//
// xrLabel4
//
@@ -911,8 +919,6 @@ namespace MalteserJohanniterJohanneshaus
// lblAdresse
//
this.lblAdresse.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
this.lblAdresse.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Mandator.Name")});
this.lblAdresse.Font = new DevExpress.Drawing.DXFont("Arial", 11F);
this.lblAdresse.LocationFloat = new DevExpress.Utils.PointFloat(161.0832F, 94.16666F);
this.lblAdresse.Name = "lblAdresse";
@@ -920,6 +926,7 @@ namespace MalteserJohanniterJohanneshaus
this.lblAdresse.SizeF = new System.Drawing.SizeF(822.2083F, 20F);
this.lblAdresse.StylePriority.UseBorders = false;
this.lblAdresse.StylePriority.UseFont = false;
this.lblAdresse.Text = "Malteser-Johanniter-Johanneshaus gGmbH";
//
// xrLabel1
//
@@ -945,13 +952,25 @@ namespace MalteserJohanniterJohanneshaus
this.fieldGroup.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldGroup.Name = "fieldGroup";
//
// xrPictureBox3
// cellGesamtGruppe
//
this.xrPictureBox3.ImageSource = new DevExpress.XtraPrinting.Drawing.ImageSource("img", resources.GetString("xrPictureBox3.ImageSource"));
this.xrPictureBox3.LocationFloat = new DevExpress.Utils.PointFloat(909.6339F, 0F);
this.xrPictureBox3.Name = "xrPictureBox3";
this.xrPictureBox3.SizeF = new System.Drawing.SizeF(199.3656F, 89.06424F);
this.xrPictureBox3.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
this.cellGesamtGruppe.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
this.cellGesamtGruppe.BorderWidth = 1F;
this.cellGesamtGruppe.Font = new DevExpress.Drawing.DXFont("Arial", 11F, DevExpress.Drawing.DXFontStyle.Bold);
this.cellGesamtGruppe.LocationFloat = new DevExpress.Utils.PointFloat(536.4586F, 0F);
this.cellGesamtGruppe.Name = "cellGesamtGruppe";
this.cellGesamtGruppe.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.cellGesamtGruppe.SizeF = new System.Drawing.SizeF(75.00049F, 24.25F);
this.cellGesamtGruppe.StylePriority.UseBorders = false;
this.cellGesamtGruppe.StylePriority.UseBorderWidth = false;
this.cellGesamtGruppe.StylePriority.UseFont = false;
this.cellGesamtGruppe.StylePriority.UsePadding = false;
this.cellGesamtGruppe.StylePriority.UseTextAlignment = false;
this.cellGesamtGruppe.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
//
// LeistungsnachweisSoziotherapie
//
@@ -981,6 +1000,8 @@ namespace MalteserJohanniterJohanneshaus
this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4;
this.SnapGridSize = 9F;
this.Version = "23.2";
xrWatermark1.Id = "Watermark1";
this.Watermarks.Add(xrWatermark1);
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
@@ -1064,5 +1085,6 @@ namespace MalteserJohanniterJohanneshaus
private DevExpress.XtraReports.UI.XRPictureBox picSignature;
private DevExpress.XtraReports.UI.XRLabel xrLabel20;
private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox3;
private DevExpress.XtraReports.UI.XRLabel cellGesamtGruppe;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,94 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared;
using BS.Shared.Core;
using DevExpress.XtraReports.UI;
using System;
using System.Text;
namespace MalteserJohanniterJohanneshaus
{
public partial class SoziotherapieRechnung : XtraReport, IBeWoReport<ServiceInvoiceRO>
{
public SoziotherapieRechnung()
{
this.InitializeComponent();
}
public void SetReportDataSource(ServiceInvoiceRO pRO)
{
string poBox = null;
if (pRO.InvoiceBase.RecipientContactInformations.Count > 0)
{
foreach (var i in pRO.InvoiceBase.RecipientContactInformations)
{
if (i.ContactType == BS.Shared.ContactType.private_POBox)
poBox = i.ContactValue;
}
}
StringBuilder sb = new StringBuilder();
if (!String.IsNullOrEmpty(pRO.RecipientOrganisation))
{
sb.AppendLine(pRO.RecipientOrganisation);
}
if (!String.IsNullOrEmpty(pRO.RecipientAddressLine1))
{
sb.AppendLine(pRO.RecipientAddressLine1);
}
if (!String.IsNullOrEmpty(pRO.RecipientContactPerson))
{
sb.AppendLine(pRO.RecipientContactPerson);
}
if (!String.IsNullOrEmpty(pRO.RecipientDivision) && !String.IsNullOrEmpty(pRO.RecipientOrganisation))
{
sb.AppendLine(pRO.RecipientDivision);
}
if (!String.IsNullOrEmpty(poBox))
{
sb.AppendLine(poBox);
}
else if (!String.IsNullOrEmpty(pRO.RecipientPoBox))
{
sb.AppendLine(pRO.RecipientPoBox);
}
else if (!String.IsNullOrEmpty(pRO.RecipientStreet))
{
sb.AppendLine(pRO.RecipientStreet);
}
if (!String.IsNullOrEmpty(pRO.RecipientPostCodeAndTown))
{
sb.AppendLine("");
sb.AppendLine(pRO.RecipientPostCodeAndTown);
}
lblAdresse.Text = sb.ToString();
decimal hours = 0;
if (pRO.ServiceInvoicePeriods != null)
{
foreach (var sip in pRO.ServiceInvoicePeriods)
{
foreach (var ii in sip.ServiceInvoiceItems)
{
hours += ii.Hours ?? 0;
if (ii.UnitDescription == null || !ii.UnitDescription.StartsWith("GPos"))
{
ii.UnitDescription = "";
}
// Einheit setzen
ii.HourlyRateString = "Stunden";
if (ii.ServiceDescription != null && ii.ServiceDescription.ToLower().Contains("hausbesuchpauschale"))
{
ii.HourlyRateString = "Anzahl";
}
}
}
}
this.bindingSource1.DataSource = pRO;
}
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>