diff --git a/ReportImp/AsbRheinErftDuerenSBD/SbdRechnung.cs b/ReportImp/AsbRheinErftDuerenSBD/SbdRechnung.cs index 6d91aa4e3..990e6428c 100644 --- a/ReportImp/AsbRheinErftDuerenSBD/SbdRechnung.cs +++ b/ReportImp/AsbRheinErftDuerenSBD/SbdRechnung.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Text; using BeWo.Data.Access; using BeWo.Data.Entities; @@ -59,9 +60,11 @@ namespace AsbRheinErftDuerenSBD decimal stundenAnzahl = 0; decimal stundenSatz = 0; + string bezeichnung = "Stundenabrechnung Nicht-Fachkraft"; decimal stundenAnzahl2 = 0; decimal stundenSatz2 = 0; + string bezeichnung2 = "Stundenabrechnung Nicht-Fachkraft"; String prozentZuschlag = ""; decimal anzahlZuschlag = 0; @@ -76,11 +79,22 @@ namespace AsbRheinErftDuerenSBD if (sip.ServiceInvoiceItems != null) { + sip.ServiceInvoiceItems = sip.ServiceInvoiceItems.Where(item => item.NetAmount.HasValue && item.NetAmount.Value != 0).ToList(); + foreach (var ii in sip.ServiceInvoiceItems) { if (ii.ServiceDescription != null) { - if (ii.ServiceDescription == "Betreuungseinsätze" || ii.ServiceDescription.Contains("Integrationshilfe")) + if (ii.NetAmount < 0) + { + ii.AmountPerUnit *= -1; + if (i == 0) + bezeichnung = ii.ServiceDescription.Substring(ii.ServiceDescription.IndexOf('(') + 1, ii.ServiceDescription.Length - ii.ServiceDescription.IndexOf('(') - 2); + else if (i == 1) + bezeichnung2 = ii.ServiceDescription.Substring(ii.ServiceDescription.IndexOf('(') + 1, ii.ServiceDescription.Length - ii.ServiceDescription.IndexOf('(') - 2); ; + } + + if (ii.ServiceDescription.Contains("Betreuungseinsätze") || ii.ServiceDescription.Contains("Integrationshilfe")) { if (i == 0) { @@ -150,7 +164,7 @@ namespace AsbRheinErftDuerenSBD lblBezeichnung2.Text = ii.ServiceDescription; } } - + i++; } } } @@ -189,6 +203,7 @@ namespace AsbRheinErftDuerenSBD lblStunden.Text = String.Format("{0:0.00}", stundenAnzahl); lblStundensatz.Text = String.Format("{0:c}", stundenSatz); lblBetragStunden.Text = String.Format("{0:c}", stundenAnzahl * stundenSatz); + lblBezeichnung.Text = bezeichnung; if (stundenAnzahl2 == 0 && stundenSatz2 == 0) { @@ -202,8 +217,9 @@ namespace AsbRheinErftDuerenSBD lblStunden2.Text = String.Format("{0:0.00}", stundenAnzahl2); lblStundensatz2.Text = String.Format("{0:c}", stundenSatz2); lblBetragStunden2.Text = String.Format("{0:c}", stundenAnzahl2 * stundenSatz2); + lblBezeichnung2.Text = bezeichnung2; } - + //if (!String.IsNullOrWhiteSpace(prozentZuschlag)) //{ diff --git a/ReportImp/AsbRheinErftDuerenSBD/Service/CustomAccountingService.cs b/ReportImp/AsbRheinErftDuerenSBD/Service/CustomAccountingService.cs index 4f758a7e8..e26ba904d 100644 --- a/ReportImp/AsbRheinErftDuerenSBD/Service/CustomAccountingService.cs +++ b/ReportImp/AsbRheinErftDuerenSBD/Service/CustomAccountingService.cs @@ -37,55 +37,60 @@ namespace AsbRheinErftDuerenSBD.Service return i; } - protected override ServiceInvoiceDC ErstelleDifferenzRechnung(DifferenzRechnungCheck item) - { - ServiceInvoiceDC diffRechnung = null; - var alterBetrag = item.VorhandeneRechungen.Sum(i => i.ClaimSum ?? 0); + //protected override ServiceInvoiceDC ErstelleDifferenzRechnung(DifferenzRechnungCheck item) + //{ + // ServiceInvoiceDC diffRechnung = null; + // //var alterBetrag = item.VorhandeneRechungen.Sum(i => i.ClaimSum ?? 0); + // var letzteRg = item.VorhandeneRechungen.OrderByDescending(r => r.ServiceInvoiceOid).FirstOrDefault(); - if (item.NeueRechnung.ClaimSum == alterBetrag) - { - diffRechnung = item.NeueRechnung; - diffRechnung.InvoiceBase.NeuErstellen = false; - diffRechnung.InvoiceBase.Hinweise = String.Format("Rechnung wurde bereits erstellt"); - } - else - { - diffRechnung = new ServiceInvoiceDC(); + // letzteRg = item.VorhandeneRechungen.FirstOrDefault(r => item.NeueRechnung.InvoiceBase.CustomerOid == r.InvoiceBase.CustomerOid); + // if (letzteRg != null) + // { + // if (item.NeueRechnung.ClaimSum == letzteRg.ClaimSum) + // { + // diffRechnung = item.NeueRechnung; + // diffRechnung.InvoiceBase.NeuErstellen = false; + // diffRechnung.InvoiceBase.Hinweise = String.Format("Rechnung wurde bereits erstellt"); + // } + // else + // { + // diffRechnung = new ServiceInvoiceDC(); - diffRechnung.InvoiceBase.InvoiceId = "SBD Aldenhoven DIFF"; + // diffRechnung.InvoiceBase.InvoiceId = "SBD Aldenhoven DIFF"; - diffRechnung.OriginalZurDifferenz = item.NeueRechnung; - diffRechnung.InvoiceBase = new InvoiceBaseDC(); - CopyInvoiceBaseDC(item.NeueRechnung.InvoiceBase, diffRechnung); + // diffRechnung.OriginalZurDifferenz = item.NeueRechnung; + // diffRechnung.InvoiceBase = new InvoiceBaseDC(); + // CopyInvoiceBaseDC(item.NeueRechnung.InvoiceBase, diffRechnung); - diffRechnung.ServiceInvoicePeriods = item.NeueRechnung.ServiceInvoicePeriods; - var newItem = new InvoiceItemDC(); - newItem.ItemPeriodStart = item.NeueRechnung.InvoiceBase.AccountingPeriodStart; - newItem.ItemPeriodEnd = item.NeueRechnung.InvoiceBase.AccountingPeriodEnd; - newItem.UnitCount = 1; - if (item.VorhandeneRechungen.Count == 1) - newItem.ItemDescription = String.Format("Abzug von Betrag aus Rechnung {0} vom {1:dd.MM.yyyy}", item.VorhandeneRechungen[0].InvoiceBase.InvoiceNumber, item.VorhandeneRechungen[0].InvoiceBase.InvoiceDate); - else if (item.VorhandeneRechungen.Count > 1) - { - string rechnungsnummern = string.Join(", ", item.VorhandeneRechungen.Select(r => r.InvoiceBase.InvoiceNumber)); - newItem.ItemDescription = String.Format("Abzug von Gesamtbetrag aus Rechnungen {0} vom {1:dd.MM.yyyy}", rechnungsnummern, item.VorhandeneRechungen[0].InvoiceBase.InvoiceDate); + // diffRechnung.ServiceInvoicePeriods = item.NeueRechnung.ServiceInvoicePeriods; + // var newItem = new InvoiceItemDC(); + // newItem.ItemPeriodStart = item.NeueRechnung.InvoiceBase.AccountingPeriodStart; + // newItem.ItemPeriodEnd = item.NeueRechnung.InvoiceBase.AccountingPeriodEnd; + // newItem.UnitCount = 1; + // if (item.VorhandeneRechungen.Count == 1) + // newItem.ItemDescription = String.Format("Abzug von Betrag aus Rechnung {0} vom {1:dd.MM.yyyy}", item.VorhandeneRechungen[0].InvoiceBase.InvoiceNumber, item.VorhandeneRechungen[0].InvoiceBase.InvoiceDate); + // else if (item.VorhandeneRechungen.Count > 1) + // { + // string rechnungsnummern = string.Join(", ", item.VorhandeneRechungen.Select(r => r.InvoiceBase.InvoiceNumber)); + // newItem.ItemDescription = String.Format("Abzug von Gesamtbetrag aus Rechnungen {0} vom {1:dd.MM.yyyy}", rechnungsnummern, item.VorhandeneRechungen[0].InvoiceBase.InvoiceDate); - } - newItem.AmountTotal = alterBetrag * -1; - newItem.GrossAmountTotal = alterBetrag * -1; - newItem.AmountPerUnit = alterBetrag * -1; + // } + // newItem.AmountTotal = letzteRg.ClaimSum * -1; + // newItem.GrossAmountTotal = letzteRg.ClaimSum * -1; + // newItem.AmountPerUnit = letzteRg.ClaimSum * -1; - var newSip = new ServiceInvoicePeriodDC(); - newSip.Claim = newItem.AmountTotal; - newSip.Start = item.NeueRechnung.InvoiceBase.AccountingPeriodStart; - newSip.End = item.NeueRechnung.InvoiceBase.AccountingPeriodEnd; - diffRechnung.ServiceInvoicePeriods.Add(newSip); - newSip.InvoiceItems = new List(); - newSip.InvoiceItems.Add(newItem); + // var newSip = new ServiceInvoicePeriodDC(); + // newSip.Claim = newItem.AmountTotal; + // newSip.Start = item.NeueRechnung.InvoiceBase.AccountingPeriodStart; + // newSip.End = item.NeueRechnung.InvoiceBase.AccountingPeriodEnd; + // diffRechnung.ServiceInvoicePeriods.Add(newSip); + // newSip.InvoiceItems = new List(); + // newSip.InvoiceItems.Add(newItem); - diffRechnung.InvoiceBase.Hinweise = String.Format("Rechnungsdifferenz zu Rechnung {0} in Höhe von {1:c}", item.VorhandeneRechungen[0].InvoiceBase.InvoiceNumber, alterBetrag); - } - return diffRechnung; - } - } + // diffRechnung.InvoiceBase.Hinweise = String.Format("Rechnungsdifferenz zu Rechnung {0} in Höhe von {1:c}", item.VorhandeneRechungen[0].InvoiceBase.InvoiceNumber, letzteRg.ClaimSum); + // } + // } + // return diffRechnung; + //} + } } \ No newline at end of file