CB, Storno und Reports

This commit is contained in:
Christian
2021-12-05 19:21:17 +01:00
parent e0609b94cd
commit be6732e5e8
28 changed files with 437 additions and 87 deletions

View File

@@ -436,7 +436,10 @@ namespace BeWo
showMultipleResourceColors = true;
}
switch (_Mandator.BeWoClientType)
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AllowStorno);
AppSettings.AllowStorno = val != null && val.Equals("1");
switch (_Mandator.BeWoClientType)
{
case 1:
//Die Kette

View File

@@ -365,6 +365,8 @@ namespace BeWo.Core.Config
public bool DontShowSpitzabrechnung { get; set; }
public bool ShowDienstplanung { get; set; }
public bool AllowStorno { get; set; }
public bool ShowEmployeeSignature { get; set; }
public bool SetStartTimeToEndTimeAfterSave { get; set; }

View File

@@ -1972,6 +1972,11 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateQuittierungsbelegsstatusBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.QuittierungsbelegsstatusDC UpdateQuittierungsbelegsstatus(BS.Shared.DataContracts.QuittierungsbelegsstatusDC quittierungsbelegsstatusDC);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetActiveMedVerListOidForCustomer", ReplyAction="http://tempuri.org/ICustomerService/GetActiveMedVerListOidForCustomerResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetActiveMedVerListOidForCustomerBeWoFaultFau" +
"lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Nullable<long> GetActiveMedVerListOidForCustomer(long customerOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/UpdateCustomersAbsenceTimes", ReplyAction="http://tempuri.org/ICustomerService/UpdateCustomersAbsenceTimesResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateCustomersAbsenceTimesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void UpdateCustomersAbsenceTimes(long pCustomerOid, System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> pAbsenceTimes);
@@ -2815,6 +2820,11 @@ namespace BeWo.ServiceProxy
return base.Channel.UpdateQuittierungsbelegsstatus(quittierungsbelegsstatusDC);
}
public System.Nullable<long> GetActiveMedVerListOidForCustomer(long customerOid)
{
return base.Channel.GetActiveMedVerListOidForCustomer(customerOid);
}
public void UpdateCustomersAbsenceTimes(long pCustomerOid, System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> pAbsenceTimes)
{
base.Channel.UpdateCustomersAbsenceTimes(pCustomerOid, pAbsenceTimes);
@@ -4737,6 +4747,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IResourceService/LoadFilteredAllActiveAppointmentsBeWoFaultFau" +
"lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.SchedulerAppointmentDC> LoadFilteredAllActiveAppointments(long employeeOid, System.DateTime start, System.DateTime end, System.Collections.Generic.List<long> customerOids);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IResourceService/LoadOccurrencesByRecurrenceId", ReplyAction="http://tempuri.org/IResourceService/LoadOccurrencesByRecurrenceIdResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IResourceService/LoadOccurrencesByRecurrenceIdBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.SchedulerAppointmentDC> LoadOccurrencesByRecurrenceId(string recurrenceId);
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
@@ -5037,6 +5051,11 @@ namespace BeWo.ServiceProxy
{
return base.Channel.LoadFilteredAllActiveAppointments(employeeOid, start, end, customerOids);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.SchedulerAppointmentDC> LoadOccurrencesByRecurrenceId(string recurrenceId)
{
return base.Channel.LoadOccurrencesByRecurrenceId(recurrenceId);
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
@@ -8332,6 +8351,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/UpdateInvoiceNumberList", ReplyAction="http://tempuri.org/IAccountingService/UpdateInvoiceNumberListResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/UpdateInvoiceNumberListBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC> UpdateInvoiceNumberList(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC> dclist);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/StorniereInvoiceBases", ReplyAction="http://tempuri.org/IAccountingService/StorniereInvoiceBasesResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/StorniereInvoiceBasesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void StorniereInvoiceBases(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceBaseDC> invoices);
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
@@ -8507,6 +8530,11 @@ namespace BeWo.ServiceProxy
{
return base.Channel.UpdateInvoiceNumberList(dclist);
}
public void StorniereInvoiceBases(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceBaseDC> invoices)
{
base.Channel.StorniereInvoiceBases(invoices);
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]

View File

@@ -19,7 +19,7 @@
<dxg:GridControl Margin="3" Grid.ColumnSpan="2" Grid.Row="1" DataSource="{Binding VMList}" x:Name="datagrid_invoices" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<dxg:GridControl.Columns>
<dxg:GridColumn AllowEditing="False" MinWidth="67" FieldName="ReportLink" Header=" ">
<dxg:GridColumn x:Name="ColumnButtons" AllowEditing="False" MinWidth="90" FieldName="ReportLink" Header=" ">
<dxg:GridColumn.DisplayTemplate>
<ControlTemplate>
<StackPanel Orientation="Horizontal">
@@ -31,7 +31,8 @@
</TextBlock>
</Button>
<Button Click="btn_edit_Click" Content="@" Padding="0" Margin="1" ToolTip="Editieren" Foreground="#FFFFFF" FontSize="13" FontFamily="Webdings" x:Name="btn_edit" Height="20" Width="20" VerticalAlignment="Center" />
<Button Click="btn_delete_Click" Content="r" Padding="0" Margin="1" ToolTip="Löschen" Foreground="#FFFFFF" FontSize="13" FontFamily="Webdings" x:Name="btn_delete" Height="20" Width="20" VerticalAlignment="Center" />
<Button Click="btn_storno_Click" Content="S" Padding="0" Margin="1" ToolTip="Löschen" Foreground="#FFFFFF" FontSize="13" x:Name="btn_storno" Height="20" Width="20" VerticalAlignment="Center" Initialized="btn_storno_Initialized"/>
<Button Click="btn_delete_Click" Content="r" Padding="0" Margin="1" ToolTip="Löschen" Foreground="#FF0000" FontSize="13" FontFamily="Webdings" x:Name="btn_delete" Height="20" Width="20" VerticalAlignment="Center" />
</StackPanel>
</ControlTemplate>
</dxg:GridColumn.DisplayTemplate>

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Navigation;
@@ -57,6 +58,8 @@ namespace BeWo.View.Detail.Accounting
this.ViewModel.DateTimeSpanFilter = this.yearMonthFilter.FilterSpan;
RefreshInvoiceList();
CheckRights();
this._EquityInvoiceItemEditView.EditingFinished += (s, e) =>
{
this.MainControl.CloseCurrentPopUp();
@@ -88,7 +91,16 @@ namespace BeWo.View.Detail.Accounting
};
}
private void RefreshInvoiceList()
private void CheckRights()
{
if (!BeWoApp.AppSettings.AllowStorno)
{
ColumnButtons.MinWidth = 67;
}
}
private void RefreshInvoiceList()
{
DateTime? start = null;
DateTime? end = null;
@@ -182,6 +194,19 @@ namespace BeWo.View.Detail.Accounting
mIgnoreCheckChanges = false;
}
private void btn_storno_Click(object sender, RoutedEventArgs e)
{
mIgnoreCheckChanges = true;
var vm = this.datagrid_invoices.GetCurrentValue<InvoiceBaseVM>();
if (MessageBox.Show("Sind Sie sicher, dass Sie den gewählten Eintrag stornieren möchten?", "Rechnung stornieren", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
{
ServiceFacade.DoAccountingServiceAsync(s => s.StorniereInvoiceBases(new[] { vm.DataContract }.ToList()));
}
mIgnoreCheckChanges = false;
}
private void btn_edit_Click(object sender, RoutedEventArgs e)
{
var vm = this.datagrid_invoices.GetCurrentValue<InvoiceBaseVM>();
@@ -303,6 +328,15 @@ namespace BeWo.View.Detail.Accounting
{
RefreshInvoiceList();
}
private void btn_storno_Initialized(object sender, EventArgs e)
{
if (!BeWoApp.AppSettings.AllowStorno)
{
Button btn = sender as Button;
btn.Visibility = Visibility.Collapsed;
}
}
}
}

View File

@@ -139,7 +139,7 @@ namespace BeWo.View.Detail
{
if (textModuleVM != null)
{
var isOwn = textModuleVM.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid);
var isOwn = textModuleVM.Employee != null && textModuleVM.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid);
var hasRight2EditAll = BeWoApp.LoggedOnUser.HasRight(UserRightType.TextbausteineAlleBearbeiten);
var hasRight2EditOwn = BeWoApp.LoggedOnUser.HasRight(UserRightType.TextbausteineNurEigeneBearbeiten);

View File

@@ -140,7 +140,7 @@ namespace BeWo.View.Detail
{
if (textbausteinVM != null)
{
var isOwn = textbausteinVM.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid);
var isOwn = textbausteinVM.Employee != null && textbausteinVM.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid);
var hasRight2EditAll = BeWoApp.LoggedOnUser.HasRight(UserRightType.TextbausteineAlleBearbeiten);
var hasRight2EditOwn = BeWoApp.LoggedOnUser.HasRight(UserRightType.TextbausteineNurEigeneBearbeiten);

View File

@@ -52,8 +52,6 @@ namespace BellaDonna.Invoicing
serviceInvoice.InvoiceBase.RecipientPersonFirstName = cust.Person.FirstName;
serviceInvoice.InvoiceBase.RecipientPersonLastName = cust.Person.LastName;
}
}
}

View File

@@ -39,7 +39,7 @@ namespace BellaDonna
this.Page1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.xrRichText1 = new DevExpress.XtraReports.UI.XRRichText();
this.lblAdresse = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
this.lblBetreff = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
this.lblAbrechnungszeitraum = new DevExpress.XtraReports.UI.XRLabel();
@@ -104,7 +104,7 @@ namespace BellaDonna
this.Page1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrRichText1,
this.lblAdresse,
this.xrLabel3,
this.lblBetreff,
this.xrLabel2,
this.xrLabel8,
this.lblAbrechnungszeitraum});
@@ -130,19 +130,18 @@ namespace BellaDonna
this.lblAdresse.SizeF = new System.Drawing.SizeF(380F, 144.1389F);
this.lblAdresse.StylePriority.UseFont = false;
//
// xrLabel3
// lblBetreff
//
this.xrLabel3.BackColor = System.Drawing.Color.Transparent;
this.xrLabel3.CanShrink = true;
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 282.3611F);
this.xrLabel3.Multiline = true;
this.xrLabel3.Name = "xrLabel3";
this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel3.SizeF = new System.Drawing.SizeF(650F, 49.86108F);
this.xrLabel3.StylePriority.UseBackColor = false;
this.xrLabel3.StylePriority.UseFont = false;
this.xrLabel3.Text = "Ambulant Betreutes Wohnen für [CustomerSalutation] [CustomerName], geb. [Customer" +
"Birthdate!dd.MM.yyyy]\r\nAktenzeichen: [CustomerReferenceNumber]";
this.lblBetreff.BackColor = System.Drawing.Color.Transparent;
this.lblBetreff.LocationFloat = new DevExpress.Utils.PointFloat(0F, 282.3611F);
this.lblBetreff.Multiline = true;
this.lblBetreff.Name = "lblBetreff";
this.lblBetreff.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.lblBetreff.SizeF = new System.Drawing.SizeF(650F, 49.86108F);
this.lblBetreff.StylePriority.UseBackColor = false;
this.lblBetreff.StylePriority.UseFont = false;
this.lblBetreff.Text = "##### für [CustomerSalutation] [CustomerName], geb. [CustomerBirthdate!dd.MM.yyyy" +
"]\r\nAktenzeichen: [CustomerReferenceNumber]";
//
// xrLabel2
//
@@ -300,7 +299,7 @@ namespace BellaDonna
private DevExpress.XtraReports.UI.TopMarginBand topMarginBand1;
private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1;
private DevExpress.XtraReports.UI.GroupHeaderBand Page1;
private DevExpress.XtraReports.UI.XRLabel xrLabel3;
private DevExpress.XtraReports.UI.XRLabel lblBetreff;
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
private DevExpress.XtraReports.UI.XRLabel xrLabel8;
private DevExpress.XtraReports.UI.XRLabel lblAbrechnungszeitraum;

View File

@@ -35,6 +35,8 @@ namespace BellaDonna
}
lblAbrechnungszeitraum.Text = lblAbrechnungszeitraum.Text.Replace("#####", text);
lblBetreff.Text = lblBetreff.Text.Replace("#####", "Ambulant Betreutes Wohnen");
this.bindingSource1.DataSource = pRO;
}

View File

@@ -132,8 +132,5 @@
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -34,7 +34,7 @@ namespace InputFamilienhilfe.Invoicing
return new VerfahrensbeistandInvoiceCreation();
}
if (name.Contains("unterbringung"))
if (name.Contains("1:"))
{
return new UnterbringungInvoiceCreation();
}

View File

@@ -72,21 +72,45 @@ namespace InputFamilienhilfe.Invoicing
{
list.Add(i);
}
i = CreateWohnenPauschale(scap, calc, invoicePeriod);
if (i != null)
{
list.Add(i);
}
i = CreateHluPauschale(scap, calc, invoicePeriod);
if (i != null)
{
list.Add(i);
}
i = CreateBudget623Pauschale(scap, calc, invoicePeriod);
if (i != null)
{
list.Add(i);
}
i = CreateInvoiceItem(scap, invoicePeriod, 1, 48, "Bekleidungsergänzung");
if (i != null)
{
list.Add(i);
}
i = CreateInvoiceItem(scap, invoicePeriod, 1, 55, "Budget Sonderaufwendungen");
if (i != null)
{
list.Add(i);
}
decimal barbetragPreis = GetBarbetragPreis(scap, invoicePeriod.EndDate);
if (barbetragPreis > 0)
{
i = CreateInvoiceItem(scap, invoicePeriod, 1, barbetragPreis, "Barbetrag");
if (i != null)
{
list.Add(i);
}
}
//i = CreateWohnenPauschale(scap, calc, invoicePeriod);
//if (i != null)
//{
// list.Add(i);
//}
//i = CreateHluPauschale(scap, calc, invoicePeriod);
//if (i != null)
//{
// list.Add(i);
//}
//i = CreateBudget623Pauschale(scap, calc, invoicePeriod);
//if (i != null)
//{
// list.Add(i);
//}
var iilist = CreateSonstigeKosten(scap, calc, serviceRecordsInPeriod, invoicePeriod);
list.AddRange(iilist);
@@ -101,7 +125,50 @@ namespace InputFamilienhilfe.Invoicing
return list;
}
public override IList<InvoiceItem> CreateSummaryInvoiceItems(IList<InvoiceItem> itemList, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap,
private decimal GetBarbetragPreis(SupportConceptApprovalPeriod scap, DateTime datum)
{
decimal preis = 0;
var customer = scap.CostBearer2SupportConcept.SupportConcept.Customer;
if (customer.Person.DateOfBirth.HasValue)
{
int alter = datum.Year - customer.Person.DateOfBirth.Value.Year;
if (datum < customer.Person.DateOfBirth)
{
alter--;
}
var preise = DAOFactory.GenericDAO.GetAllActive<Preis>();
var preisBis18 = preise.Where(p => p.Name.Contains("Barbetrag 16 - 18")).FirstOrDefault();
var preisAb18 = preise.Where(p => p.Name.Contains("Barbetrag ab 18")).FirstOrDefault();
IList<CostRatePeriodDC> crlist = null;
if (alter < 18 && preisBis18 != null)
{
crlist = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(preisBis18.CostRatePeriods);
}
else if (preisAb18 != null)
{
crlist = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(preisAb18.CostRatePeriods);
}
if (crlist != null)
{
var cr = crlist.GetCostRatePeriodForDate(CostRatePeriodType.AmountOfMoney, datum);
if (cr != null && cr.CostRateValue.HasValue)
{
preis = cr.CostRateValue.Value;
}
}
}
return preis;
}
public override IList<InvoiceItem> CreateSummaryInvoiceItems(IList<InvoiceItem> itemList, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap,
Calculations calc)
{
return itemList;
@@ -112,21 +179,49 @@ namespace InputFamilienhilfe.Invoicing
{
var invoiceItem = new InvoiceItem();
int unitCount = 1;
decimal amount = 0;
if (scap != null && scap.ServiceCategory != null)
{
var scapdc = MapperFactory.SupportConceptApprovalPeriodDC_SupportConceptApprovalPeriod.MapToNewDC(scap);
List<CostRatePeriodDC> crList = scapdc.ServiceCategory.CostRatePeriods;
var crp = crList.GetCostRatePeriodForDate(CostRatePeriodType.AmountOfMoney, scap.StartDate.Value);
var crp = crList.GetCostRatePeriodForDate(CostRatePeriodType.AmountOfMoney, invoicePeriod.StartDate);
if (crp != null && crp.CostRateValue.HasValue)
{
amount = crp.CostRateValue.Value;
if (scap.ServiceCategory.AccountingInterval.HasValue && scap.ServiceCategory.AccountingInterval.Value == AccountingIntervalType.Daily)
{
DateTime start = invoicePeriod.StartDate;
DateTime end = invoicePeriod.EndDate;
if (scap.StartDate > start)
{
start = scap.StartDate.Value;
}
if (scap.EndDate < end)
{
end = scap.EndDate.Value;
}
int days = (int)end.Subtract(start).TotalDays + 1;
if (days < 0)
{
days = 0;
}
unitCount = days;
}
}
}
invoiceItem.UnitCount = 1;
invoiceItem.UnitCount = unitCount;
invoiceItem.AmountPerUnit = amount;
invoiceItem.AmountTotal = invoiceItem.AmountPerUnit * invoiceItem.UnitCount;
invoiceItem.GrossAmountTotal = invoiceItem.AmountTotal;
@@ -193,7 +288,8 @@ namespace InputFamilienhilfe.Invoicing
private InvoiceItem CreateHluPauschale(SupportConceptApprovalPeriod scap, Calculations calc, DateTimeSpan invoicePeriod)
{
var invoiceItem = new InvoiceItem();
decimal preis = 432;
var cat = DAOFactory.SearchDAO.FindServiceCategoryByName("HLU");
@@ -239,6 +335,23 @@ namespace InputFamilienhilfe.Invoicing
return invoiceItem;
}
private InvoiceItem CreateInvoiceItem(SupportConceptApprovalPeriod scap, DateTimeSpan invoicePeriod, decimal unitCount, decimal amountPerUnit, String bezeichnung)
{
var invoiceItem = new InvoiceItem();
invoiceItem.UnitCount = unitCount;
invoiceItem.AmountPerUnit = amountPerUnit;
invoiceItem.AmountTotal = invoiceItem.AmountPerUnit * invoiceItem.UnitCount;
invoiceItem.GrossAmountTotal = invoiceItem.AmountTotal;
invoiceItem.ItemPeriodStart = invoicePeriod.StartDate;
invoiceItem.ItemPeriodEnd = invoicePeriod.EndDate;
invoiceItem.AccountingInterval = AccountingIntervalType.FlatRate;
invoiceItem.ItemDescription = bezeichnung;
invoiceItem.SupportConceptApprovalPeriodOid = scap.Oid;
return invoiceItem;
}
private InvoiceItem CreateLohnAnteil(SupportConceptApprovalPeriod scap, Calculations calc, DateTimeSpan invoicePeriod)
{
var ea = scap.CostBearer2SupportConcept.SupportConcept.Customer.EquityContribution;

View File

@@ -32,6 +32,9 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.Data.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Mvvm.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="DevExpress.Printing.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPrinting.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />

View File

@@ -95,9 +95,9 @@ namespace Kimm
this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.rtbNeueBank = new DevExpress.XtraReports.UI.XRRichText();
this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel();
this.GroupFooter3 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.rtbNeueBank = new DevExpress.XtraReports.UI.XRRichText();
((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText5)).BeginInit();
@@ -896,6 +896,21 @@ namespace Kimm
this.GroupFooter1.Name = "GroupFooter1";
this.GroupFooter1.StylePriority.UseFont = false;
//
// rtbNeueBank
//
this.rtbNeueBank.BorderColor = System.Drawing.Color.Black;
this.rtbNeueBank.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.rtbNeueBank.Font = new System.Drawing.Font("Verdana", 9F);
this.rtbNeueBank.LocationFloat = new DevExpress.Utils.PointFloat(315.7068F, 92.62492F);
this.rtbNeueBank.Name = "rtbNeueBank";
this.rtbNeueBank.SerializableRtfString = resources.GetString("rtbNeueBank.SerializableRtfString");
this.rtbNeueBank.SizeF = new System.Drawing.SizeF(274.2908F, 46.00001F);
this.rtbNeueBank.StylePriority.UseBorderColor = false;
this.rtbNeueBank.StylePriority.UseBorders = false;
this.rtbNeueBank.StylePriority.UseFont = false;
//
// xrLabel14
//
this.xrLabel14.BackColor = System.Drawing.Color.Transparent;
@@ -920,21 +935,6 @@ namespace Kimm
this.GroupFooter3.Name = "GroupFooter3";
this.GroupFooter3.StylePriority.UseFont = false;
//
// rtbNeueBank
//
this.rtbNeueBank.BorderColor = System.Drawing.Color.Black;
this.rtbNeueBank.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.rtbNeueBank.Font = new System.Drawing.Font("Verdana", 9F);
this.rtbNeueBank.LocationFloat = new DevExpress.Utils.PointFloat(315.7067F, 92.62492F);
this.rtbNeueBank.Name = "rtbNeueBank";
this.rtbNeueBank.SerializableRtfString = resources.GetString("rtbNeueBank.SerializableRtfString");
this.rtbNeueBank.SizeF = new System.Drawing.SizeF(207F, 46F);
this.rtbNeueBank.StylePriority.UseBorderColor = false;
this.rtbNeueBank.StylePriority.UseBorders = false;
this.rtbNeueBank.StylePriority.UseFont = false;
//
// Rechnung
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {

View File

@@ -57,6 +57,7 @@
<Compile Include="Plugins\CustomHomeContentGenerator.cs" />
<Compile Include="Plugins\CustomGroupDurationCalculator.cs" />
<Compile Include="Plugins\CustomServiceRecordStatisticFactory.cs" />
<Compile Include="Plugins\CustomSaveInterceptor.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Quittierungsbeleg.cs">
<SubType>Component</SubType>

View File

@@ -2,6 +2,8 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.Plugins;
using BS.Shared.DataContracts;
@@ -10,6 +12,42 @@ namespace KommAmbulanteDienste.Plugins
public class CustomGroupDurationCalculator : GroupDurationCalculator
{
public override GroupDurationDC CalculateGroupDuration(int personCount, int employeeCount, decimal totalDuration, long[] costBearer2SupportConceptArray)
{
return base.CalculateGroupDuration(personCount, employeeCount, totalDuration, costBearer2SupportConceptArray);
}
public override void CalculateGroupDuration(ServiceRecordGroup group)
{
foreach (var item in group.ServiceRecordList)
{
if (item.GroupPersonCount > 1 && item.CostBearer2SupportConcept != null)
{
ServiceCategory scapCat = null;
var oldCat = item.ServiceDescription.ServiceCategory;
foreach (var scap in item.CostBearer2SupportConcept.ApprovalPeriodList)
{
if (scapCat == null)
{
scapCat = scap.ServiceCategory;
}
}
if (scapCat != null && scapCat.Oid != oldCat.Oid)
{
var sdList = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(scapCat.Oid.Value).ToList();
if (sdList.Count > 0)
{
item.ServiceDescription = sdList[0];
}
}
}
}
base.CalculateGroupDuration(group);
}
public override GroupDurationDC CalculateGroupDuration(int personCount, int employeeCount, decimal totalDuration)
{
if (personCount > 2)

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using BeWo.Data.Entities;
using BeWo.Service.Plugins;
using BS.Shared.Core;
using BS.Shared.DataContracts;
namespace KommAmbulanteDienste.Plugins
{
public class CustomSaveInterceptor : SaveInterceptor
{
public override void BeforeSaveServiceRecord(ServiceRecord sr)
{
//do nothing
}
}
}

View File

@@ -90,7 +90,7 @@ org.DebitorNumber
lastDate = lastDate.AddMonths(1).AddDays(-1);
sb.Append("8000;");
sb.Append(String.Format("{0:dd.MM.yyyy};{0:dd.MM.yyyy};", lastDate));
sb.Append(String.Format("{0:dd.MM.yyyy};{1:dd.MM.yyyy};", lastDate, row[2]));
sb.Append(String.Format("{0}", row[1]));
sb.Append(";");
@@ -98,7 +98,7 @@ org.DebitorNumber
sb.Append(";");
sb.Append("500;44444;");
sb.Append(String.Format("{0:0.00}", row[0]));
sb.Append(";S;");
sb.Append(";H;");
String buchungstext = "";
long? c2sOid = (long?)row[5];
@@ -135,6 +135,7 @@ org.DebitorNumber
//Schablone Nr.;Datum;Datum;Konto S / H;Beleg Nr.:;KST;Abstimm Kr.;Betrag;Vorzeichen Buchung;Text
var dt = ExecuteQuery(sql, date);
StringBuilder sb = new StringBuilder();
foreach (DataRow row in dt.Rows)
{
@@ -143,7 +144,8 @@ org.DebitorNumber
sb.AppendLine();
}
String invoiceId = String.Format("{0}", row[8]);
DateTime lastDate = new DateTime(date.Year, date.Month, 1);
lastDate = lastDate.AddMonths(1).AddDays(-1);
@@ -154,9 +156,19 @@ org.DebitorNumber
sb.Append(";");
sb.Append(String.Format("{0}", row[3]));
sb.Append(";");
sb.Append("500;44444;");
if (!String.IsNullOrEmpty(invoiceId) && invoiceId.Contains("Assistenz"))
{
sb.Append("705");
}
else
{
sb.Append("700");
}
sb.Append(";44444;");
sb.Append(String.Format("{0:0.00}", row[0]));
sb.Append(";S;");
String buchungstext = "LWV Sammelrechnung";
//if (row[5] != null)
//{
@@ -255,7 +267,8 @@ c.DebitorNumber,
c.CostCenter,
c2s.Oid,
ib.InvoiceId,
org.DebitorNumber
org.DebitorNumber,
ib.InvoiceId
from
person p
inner join customer c on c.personoid = p.oid
@@ -286,7 +299,8 @@ distinct
'',
null,
ib.InvoiceId,
org.DebitorNumber
org.DebitorNumber,
ib.InvoiceId
from
invoicebase ib
inner join serviceinvoice si on si.invoicebaseoid = ib.oid

View File

@@ -33,6 +33,14 @@ namespace PassgenauUG
{
pRO.RecipientOrganisation = pRO.RecipientOrganisation.Replace("1 SB - ", "");
}
if (pRO.RecipientOrganisation.Contains("1 SB EGH - "))
{
pRO.RecipientOrganisation = pRO.RecipientOrganisation.Replace("1 SB EGH - ", "");
}
if (pRO.RecipientOrganisation.Contains("1 SB JA - "))
{
pRO.RecipientOrganisation = pRO.RecipientOrganisation.Replace("1 SB JA - ", "");
}
sb.AppendLine(pRO.RecipientOrganisation);
}
if (!String.IsNullOrEmpty(pRO.RecipientDivision))

View File

@@ -1,5 +1,7 @@
using System;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
using BeWo.Report.ReportObjects;
@@ -71,6 +73,13 @@ namespace VKMAachen
leistungsart = "§53 Abs. 1 Satz 2 SGB XII";
}
}
var varfield = GetRechtsgrundlage(pRO);
if (!String.IsNullOrEmpty(varfield))
{
leistungsart = varfield;
}
lblBetreff.Text = String.Format("Gewährung von Hilfe gem. {0} für {1}, geb. am {2:dd.MM.yyyy}, Verwendungszweck {3}, {4}", leistungsart, pRO.CustomerName, pRO.CustomerBirthdate, pRO.CustomerReferenceNumber, pRO.InvoiceNumber);
xrLabel3.Text = @"
@@ -82,5 +91,30 @@ bezugnehmend auf den Bewilligungsbescheid vom [ApprovalDate] stellen wir f
bindingSource1.DataSource = pRO;
}
private String GetRechtsgrundlage(ServiceInvoiceRO pRO)
{
if (pRO.InvoiceBase.SupportConceptCostBearerRelDc != null)
{
var org = DAOFactory.GenericDAO.LoadByID<Organisation>(pRO.InvoiceBase.SupportConceptCostBearerRelDc.CostBearer.OrganisationOid);
foreach (var vv in org.VarFieldValueList)
{
if (vv.VarFieldDefOid.Value == 1)
{
var varFieldValue = BS.Shared.Core.Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName));
if (varFieldValue != null)
{
return varFieldValue.ToString();
}
}
}
}
return null;
}
}
}

View File

@@ -72,12 +72,12 @@ namespace VKMAachen
this.GroupFooter2 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
this.ReportFooter = new DevExpress.XtraReports.UI.ReportFooterBand();
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable6)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
@@ -274,8 +274,8 @@ namespace VKMAachen
this.lblBetreff.StylePriority.UseBackColor = false;
this.lblBetreff.StylePriority.UseFont = false;
this.lblBetreff.StylePriority.UseForeColor = false;
this.lblBetreff.Text = "Gewährung von Hilfe gem. § 35a SGB VIII für [CustomerName], geb. am [CustomerBirt" +
"hdate!dd.MM.yyyy], Verwendungszweck [CustomerReferenceNumber], [InvoiceNumber]";
this.lblBetreff.Text = "Gewährung von Hilfe gem. ##### für [CustomerName], geb. am [CustomerBirthdate!dd." +
"MM.yyyy], Verwendungszweck [CustomerReferenceNumber], [InvoiceNumber]";
//
// xrLabel8
//
@@ -543,6 +543,19 @@ namespace VKMAachen
this.ReportFooter.HeightF = 236.4306F;
this.ReportFooter.Name = "ReportFooter";
//
// xrLabel2
//
this.xrLabel2.Font = new System.Drawing.Font("Times New Roman", 12F);
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 207.5417F);
this.xrLabel2.Multiline = true;
this.xrLabel2.Name = "xrLabel2";
this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel2.SizeF = new System.Drawing.SizeF(316.9164F, 22.22221F);
this.xrLabel2.StylePriority.UseFont = false;
this.xrLabel2.StylePriority.UseTextAlignment = false;
this.xrLabel2.Text = "Dieses Dokument ist ohne Unterschrift gültig";
this.xrLabel2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomLeft;
//
// xrLabel12
//
this.xrLabel12.Font = new System.Drawing.Font("Times New Roman", 12F);
@@ -605,19 +618,6 @@ namespace VKMAachen
this.xrLabel11.Text = "xrLabel11";
this.xrLabel11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrLabel2
//
this.xrLabel2.Font = new System.Drawing.Font("Times New Roman", 12F);
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 207.5417F);
this.xrLabel2.Multiline = true;
this.xrLabel2.Name = "xrLabel2";
this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel2.SizeF = new System.Drawing.SizeF(316.9164F, 22.22221F);
this.xrLabel2.StylePriority.UseFont = false;
this.xrLabel2.StylePriority.UseTextAlignment = false;
this.xrLabel2.Text = "Dieses Dokument ist ohne Unterschrift gültig";
this.xrLabel2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomLeft;
//
// ServiceInvoiceReport
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {

View File

@@ -1,5 +1,7 @@
using System;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
using BeWo.Report.ReportObjects;
@@ -72,6 +74,12 @@ namespace VKMAachen
}
}
var varfield = GetRechtsgrundlage(pRO);
if (!String.IsNullOrEmpty(varfield))
{
leistungsart = varfield;
}
xrLabel3.Text = @"Sehr geehrte Damen und Herren,
bezugnehmend auf den Bewilligungsbescheid vom [ApprovalDate] stellen wir für die Leistungen der Hilfe gem. [Leistungsart] lt. beigefügter Aufstellung folgenden Betrag in Rechnung:";
@@ -81,5 +89,30 @@ namespace VKMAachen
lblBetreff.Text = String.Format("Gewährung von Hilfe gem. {0} für {1}, geb. am {2:dd.MM.yyyy}, Verwendungszweck {3}, {4}", leistungsart, pRO.CustomerName, pRO.CustomerBirthdate, pRO.CustomerReferenceNumber, pRO.InvoiceNumber);
bindingSource1.DataSource = pRO;
}
private String GetRechtsgrundlage(ServiceInvoiceRO pRO)
{
if (pRO.InvoiceBase.SupportConceptCostBearerRelDc != null)
{
var org = DAOFactory.GenericDAO.LoadByID<Organisation>(pRO.InvoiceBase.SupportConceptCostBearerRelDc.CostBearer.OrganisationOid);
foreach (var vv in org.VarFieldValueList)
{
if (vv.VarFieldDefOid.Value == 1)
{
var varFieldValue = BS.Shared.Core.Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName));
if (varFieldValue != null)
{
return varFieldValue.ToString();
}
}
}
}
return null;
}
}
}

View File

@@ -41,6 +41,10 @@ namespace BeWo.Service.Plugins
ServiceLogic.SetActivationType<InvoiceBase>(invoices.ToDictionary(i => i.InvoiceBase.InvoiceBaseOid.Value, i => i.InvoiceBase.InvoiceBaseVersion.Value), ActivationTypeId.Deleted);
}
public virtual void StorniereInvoiceBases(List<InvoiceBaseDC> invoices)
{
}
public virtual ServiceInvoice ErstelleStornoRechnung(InvoiceBaseDC ibdc)
{
ServiceInvoice newInvoice = new ServiceInvoice();

View File

@@ -235,7 +235,7 @@ namespace BeWo.Service.Plugins
//t = "4423043131"; // Die Perspektive e.V.
//t = "5263375280"; // LH Wolfsburg
//t = "4900722829"; // Evangelische Kirchengemeinde Bottrop
//t = "9853685258"; // Input
t = "9853685258"; // Input
//t = "7622428090"; // Freie gemeinnützige Beratungsstelle für Psychotherapie e.V. (BfpDus) (Panama)
//t = "0206140343"; // Lebenswelt Gabriel
//t = "6916712798"; // LH Rodenkirchen Bewo
@@ -298,7 +298,7 @@ namespace BeWo.Service.Plugins
//t = "5537187628"; // Verband Ev. Kirchengemeinden Dorsten
//t = "8375099271"; // Neustart - Ambulant Betreutes Wohnen
//t = "5478434972"; // LebensWert - Kai Lippel
t = "5381886394"; // PZDDuesseldorf
//t = "5381886394"; // PZDDuesseldorf
//t = "3640152169"; // Claudia Charisius
//t = "3884496709"; // Wahl e.V.
//t = "3536079480"; // Behindertenhilfe Menden

View File

@@ -123,5 +123,9 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<InvoiceNumberDC> UpdateInvoiceNumberList(List<InvoiceNumberDC> dclist);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void StorniereInvoiceBases(List<InvoiceBaseDC> invoices);
}
}

View File

@@ -23,6 +23,7 @@ namespace BeWo.Service.ServiceImplementations
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single)]
public class AccountingServiceImp : IAccountingService
{
public void DeactivateInvoiceBases(List<InvoiceBaseDC> invoices)
{
try
@@ -38,6 +39,21 @@ namespace BeWo.Service.ServiceImplementations
}
}
public void StorniereInvoiceBases(List<InvoiceBaseDC> invoices)
{
try
{
var s = PluginLoader.FindClass<AccountingService>();
s.StorniereInvoiceBases(invoices);
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public void DeactivateServiceInvoices(List<ServiceInvoiceDC> invoices)
{
try

View File

@@ -62,7 +62,7 @@
public static string SchedulerDayViewDayCount => "SchedulerDayViewDayCount";
public static string ShowMultipleResourceColors => "ShowMultipleResourceColors";
public static string AllowStorno => "AllowStorno";
// Keys Für die Web.config von Host
public static string FileRootDirectory => "FileRootDirectory";
}