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

This commit is contained in:
2023-01-12 19:47:59 +01:00
47 changed files with 2500 additions and 820 deletions

View File

@@ -589,6 +589,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LebensWert", "ReportImp\Leb
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SehtMuenster", "ReportImp\SehtMuenster\SehtMuenster.csproj", "{DD81587C-415B-422A-A3C0-0B82D3659085}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MobileEV", "ReportImp\MobileEV\MobileEV.csproj", "{48BB802C-43AF-4A3D-93F0-AE88A18E155C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|.NET = Debug|.NET
@@ -4688,6 +4690,22 @@ Global
{DD81587C-415B-422A-A3C0-0B82D3659085}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{DD81587C-415B-422A-A3C0-0B82D3659085}.Release|x86.ActiveCfg = Release|Any CPU
{DD81587C-415B-422A-A3C0-0B82D3659085}.Release|x86.Build.0 = Release|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|.NET.ActiveCfg = Debug|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|.NET.Build.0 = Debug|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|x86.ActiveCfg = Debug|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Debug|x86.Build.0 = Debug|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|.NET.ActiveCfg = Release|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|.NET.Build.0 = Release|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|Any CPU.Build.0 = Release|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|x86.ActiveCfg = Release|Any CPU
{48BB802C-43AF-4A3D-93F0-AE88A18E155C}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -4978,6 +4996,7 @@ Global
{0114A289-5FD4-4CD9-A704-5161B6FD7726} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{09BA6418-1FC2-4B45-8CE0-BB9C24499442} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{DD81587C-415B-422A-A3C0-0B82D3659085} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{48BB802C-43AF-4A3D-93F0-AE88A18E155C} = {D8A691C5-146D-4613-86CC-438F02FE9106}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9}

View File

@@ -484,31 +484,26 @@ namespace BeWo.Scheduler.View
private void ConstructObject()
{
ServiceFacade.DoResourceServiceAsync(s => s.ConvertResourceBookingsToResourceAppointments(), () =>
IsEmployeeBrushVisible = true;
InitializeComponent();
InitViewModel();
InitScheduler();
Scheduler.Storage.AppointmentStorage.ResourceSharing = false;
DataContext = this;
EditorLocalizer.Active = new GermanEditorLocalizer();
InitRights();
foreach(var item in from object item in TabControl.Items let ti = (TabItem)item where ti.Visibility.Equals(Visibility.Visible) select item)
{
this.Dispatch(() =>
{
IsEmployeeBrushVisible = true;
InitializeComponent();
InitViewModel();
InitScheduler();
Scheduler.Storage.AppointmentStorage.ResourceSharing = false;
DataContext = this;
EditorLocalizer.Active = new GermanEditorLocalizer();
InitRights();
foreach(var item in from object item in TabControl.Items let ti = (TabItem)item where ti.Visibility.Equals(Visibility.Visible) select item)
{
TabControl.SelectedIndex = TabControl.Items.IndexOf(item);
break;
}
});
});
TabControl.SelectedIndex = TabControl.Items.IndexOf(item);
break;
}
}
//private void Synchronize()

View File

@@ -34,7 +34,7 @@ namespace BeWo.View.Navigation
public UserNavigationView()
{
this.InitializeComponent();
mainNavigationView.ShowArchivedObjectsVisible = false;
this.mainNavigationView.Sorter = new UserSorter();
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.User_AllowOrderLicense))

View File

@@ -972,7 +972,7 @@ namespace BeWo.Data.Access
public SettlementInvoice GetSettlementInvoiceByInvoiceBaseOid(long invoiceBaseOid)
{
return CreateCriteriaIsActive<SettlementInvoice>()
return CreateCriteria<SettlementInvoice>()
.CreateAlias(SettlementInvoice.PropertyName_InvoiceBase, "ib", JoinType.InnerJoin)
.Add(Restrictions.Eq("ib." + BeWoEntityBase.PropertyName_Oid, invoiceBaseOid))
.UniqueResult<SettlementInvoice>();

View File

@@ -27,7 +27,7 @@ namespace BeWo.Data.Entities
private string _Name;
private decimal _Percentage;
private decimal _ProzentAbrechnung;
private decimal _BillableAmount;
@@ -118,22 +118,26 @@ namespace BeWo.Data.Entities
}
}
public virtual decimal Percentage
public virtual decimal ProzentAbrechnung
{
get
{
return this._Percentage;
return this._ProzentAbrechnung;
}
set
{
if (this.AreDifferent(this._Percentage, value))
if (this.AreDifferent(this._ProzentAbrechnung, value))
{
this._Percentage = value;
this._ProzentAbrechnung = value;
}
}
}
public virtual decimal? ProzentBudget { get; set; }
public virtual decimal? ProzentStundenkonto { get; set; }
public virtual decimal BillableAmount
{
get

View File

@@ -96,6 +96,10 @@ namespace BeWo.Data.Entities
public virtual bool? DoNotCheckOverlapping { get; set; }
public virtual decimal? Percentage { get; set; }
public virtual decimal? ProzentAbrechnung { get; set; }
public virtual decimal? ProzentBudget { get; set; }
public virtual decimal? ProzentStundenkonto { get; set; }
}
}

View File

@@ -9,7 +9,9 @@
<property column="Tid" type="BS.Shared.TableID, BS.Shared" name="_Tid" access="field" />
<property column="Name" type="string" name="Name" />
<property column="Abbreviation" type="String" name="Abbreviation" length="16" />
<property column="Percentage" type="System.Decimal" name="Percentage" />
<property column="Percentage" type="System.Decimal" name="ProzentAbrechnung" />
<property column="ProzentBudget" type="System.Decimal" name="ProzentBudget" />
<property column="ProzentStundenkonto" type="System.Decimal" name="ProzentStundenkonto" />
<property column="Billable" type="Boolean" name="IsBillable" />
<property column="nurOhneHilfeplan" type="BS.Shared.AccountingvisibilityType, BS.Shared" name="OhneHilfeplan" />
<property column="Notice" type="String" name="Notice" length="1024" />

View File

@@ -22,7 +22,9 @@
<property name="Unit" type="BS.Shared.ServiceUnit, BS.Shared"/>
<property name="ScopeType" type="BS.Shared.ScopeTypeId, BS.Shared"/>
<property column="DoNotCheckOverlapping" type="Boolean" name="DoNotCheckOverlapping" />
<property column="Percentage" type="Decimal" name="Percentage" />
<property column="Percentage" type="System.Decimal" name="ProzentAbrechnung" />
<property column="ProzentBudget" type="System.Decimal" name="ProzentBudget" />
<property column="ProzentStundenkonto" type="System.Decimal" name="ProzentStundenkonto" />
<many-to-one name="ServiceCategory" column="ServiceCategoryOid" class="BeWo.Data.Entities.ServiceCategory, BeWo.Data" cascade="none" fetch="join"/>

View File

@@ -809,10 +809,16 @@ namespace BeWo.Report.ReportObjects
public virtual decimal GetBillableDurationInMinutes(ServiceRecord record)
{
decimal rdMinutes = record.RoundedDuration;
if (record.ServiceDescription.ServiceCategory.Percentage != 100)
var prozent = record.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (record.ServiceDescription.ProzentAbrechnung.HasValue)
{
rdMinutes = (rdMinutes * record.ServiceDescription.ServiceCategory.Percentage) / 100;
prozent = record.ServiceDescription.ProzentAbrechnung.Value;
}
rdMinutes *= prozent / 100;
if (record.GroupEmployeeCount.HasValue)
rdMinutes /= record.GroupEmployeeCount.Value;

View File

@@ -158,10 +158,15 @@ namespace BeWo.Report.ReportObjects
monat2Zeile[key].ServiceRecords.Add(srDc);
decimal minuten = sr.RoundedDuration;
if (sr.ServiceDescription.ServiceCategory.Percentage != 100)
decimal prozent = sr.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (sr.ServiceDescription.ProzentAbrechnung.HasValue)
{
minuten = (minuten * sr.ServiceDescription.ServiceCategory.Percentage) / 100;
prozent = sr.ServiceDescription.ProzentAbrechnung.Value;
}
minuten *= (prozent / 100);
monat2Zeile[key].SummeMinuten += minuten;

View File

@@ -979,10 +979,10 @@ namespace BeWo.Report.ReportObjects
if (UseServiceDescriptionPercentage())
{
decimal prozent = item.ServiceDescription.ServiceCategory.Percentage;
if (item.ServiceDescription.Percentage.HasValue)
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentStundenkonto ?? item.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (item.ServiceDescription.ProzentStundenkonto.HasValue)
{
prozent = item.ServiceDescription.Percentage.Value;
prozent = item.ServiceDescription.ProzentStundenkonto.Value;
}
duration *= (prozent / 100);
@@ -1882,13 +1882,13 @@ namespace BeWo.Report.ReportObjects
}
if (UseServiceDescriptionPercentage())
{
decimal prozent = item.ServiceDescription.ServiceCategory.Percentage;
if (item.ServiceDescription.Percentage.HasValue)
{
prozent = item.ServiceDescription.Percentage.Value;
}
duration *= (prozent / 100);
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentStundenkonto ?? item.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (item.ServiceDescription.ProzentStundenkonto.HasValue)
{
prozent = item.ServiceDescription.ProzentStundenkonto.Value;
}
duration = (duration * prozent) / 100;
}
minutenMonat += duration;

View File

@@ -331,8 +331,14 @@ namespace BeWo.Report.ReportObjects
sd.SignatureOid = iSr.SignatureOid;
decimal roundedDur = iSr.RoundedDuration;
if (iSr.ServiceDescription != null && iSr.ServiceDescription.ServiceCategory != null && iSr.ServiceDescription.ServiceCategory.Percentage != 100)
roundedDur = (roundedDur * iSr.ServiceDescription.ServiceCategory.Percentage) / 100;
decimal prozent = iSr.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (iSr.ServiceDescription.ProzentAbrechnung.HasValue)
{
prozent = iSr.ServiceDescription.ProzentAbrechnung.Value;
}
roundedDur *= (prozent / 100);
sd.Minutes += Convert.ToDouble(roundedDur);

View File

@@ -379,13 +379,13 @@ namespace BeWo.Report.ReportObjects
{
if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null && item.ServiceDescription.ServiceCategory.IsBillable)
{
decimal prozent = item.ServiceDescription.ServiceCategory.Percentage;
if (item.ServiceDescription.Percentage.HasValue)
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (item.ServiceDescription.ProzentAbrechnung.HasValue)
{
prozent = item.ServiceDescription.Percentage.Value;
prozent = item.ServiceDescription.ProzentAbrechnung.Value;
}
minutenIst += (item.RoundedDuration * item.ServiceDescription.ServiceCategory.Percentage) / 100;
minutenIst += (item.RoundedDuration * prozent) / 100;
if (item.GroupOid.HasValue)
groupBookingDict.Add(item.GroupOid.Value, true);
@@ -455,13 +455,13 @@ namespace BeWo.Report.ReportObjects
item.ServiceDescription.ServiceCategory != null &&
item.ServiceDescription.ServiceCategory.IsBillable)
{
decimal prozent = item.ServiceDescription.ServiceCategory.Percentage;
if (item.ServiceDescription.Percentage.HasValue)
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (item.ServiceDescription.ProzentAbrechnung.HasValue)
{
prozent = item.ServiceDescription.Percentage.Value;
prozent = item.ServiceDescription.ProzentAbrechnung.Value;
}
minutenIst += (item.RoundedDuration * item.ServiceDescription.ServiceCategory.Percentage) / 100;
minutenIst += (item.RoundedDuration * prozent) / 100;
if (item.GroupOid.HasValue)
@@ -541,10 +541,10 @@ namespace BeWo.Report.ReportObjects
{
if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null && item.ServiceDescription.ServiceCategory.IsBillable)
{
decimal prozent = item.ServiceDescription.ServiceCategory.Percentage;
if (item.ServiceDescription.Percentage.HasValue)
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (item.ServiceDescription.ProzentAbrechnung.HasValue)
{
prozent = item.ServiceDescription.Percentage.Value;
prozent = item.ServiceDescription.ProzentAbrechnung.Value;
}
@@ -865,10 +865,10 @@ namespace BeWo.Report.ReportObjects
sd.GefahreneKilometer = iSr.DistanceInMeter.HasValue ? (Convert.ToDouble(iSr.DistanceInMeter)).ToString("0.##") : string.Empty;
decimal roundedDur = iSr.RoundedDuration;
decimal prozent = iSr.ServiceDescription.ServiceCategory.Percentage;
if (iSr.ServiceDescription.Percentage.HasValue)
decimal prozent = iSr.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (iSr.ServiceDescription.ProzentAbrechnung.HasValue)
{
prozent = iSr.ServiceDescription.Percentage.Value;
prozent = iSr.ServiceDescription.ProzentAbrechnung.Value;
}
roundedDur *= (prozent / 100);

View File

@@ -132,5 +132,6 @@
<DependentUpon>Teamstundenkonto.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

File diff suppressed because it is too large Load Diff

View File

@@ -95,64 +95,61 @@ namespace BeWo.Report.DefaultReports.Alt
{
itemList.Add(new InvoiceItemDC
{
ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
pRO.AccountingStartDateString, pRO.HourlyRate3EndDateString,
pRO.GeleisteteFLSMitStundensatz3, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRate3),
ItemDescription = string.Format("Ab {0:MMMM yyyy}: {1:0.00}", pRO.AccountingStartDate, pRO.GeleisteteFLSMitStundensatz3),
RateFactor = pRO.RateFactor == 1 ? 1 : Convert.ToDecimal(pRO.RateFactorText2),
AmountPerUnit = pRO.HourlyRate3,
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatz3 * pRO.RateFactor * pRO.HourlyRate3
});
itemList.Add(new InvoiceItemDC
{
ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
pRO.HourlyRateOldStartDateString, pRO.HourlyRateOldEndDateString,
pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld),
ItemDescription = string.Format("Ab {0:MMMM yyyy}: {1:0.00}", pRO.HourlyRateOldStartDate, pRO.GeleisteteFLSMitStundensatzAlt),
RateFactor = pRO.RateFactor == 1 ? 1 : Convert.ToDecimal(pRO.RateFactorText2),
AmountPerUnit = pRO.HourlyRateOld,
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAlt * pRO.RateFactor * pRO.HourlyRateOld
});
itemList.Add(new InvoiceItemDC
{
ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString,
pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew),
ItemDescription = string.Format("Ab {0:MMMM yyyy}: {1:0.00}", pRO.HourlyRateNewStartDate, pRO.GeleisteteFLSMitStundensatzAktuell),
RateFactor = pRO.RateFactor == 1 ? 1 : Convert.ToDecimal(pRO.RateFactorText2),
AmountPerUnit = pRO.HourlyRateNew,
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAktuell * pRO.RateFactor * pRO.HourlyRateNew
});
}
else if (pRO.DifferentHourlyRateCount == 2)
{
if (pRO.HourlyRateOldStartDateString == null)
pRO.HourlyRateOldStartDate = pRO.AccountingStartDate;
itemList.Add(new InvoiceItemDC
{
ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
pRO.AccountingStartDateString, pRO.HourlyRateOldEndDateString,
pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld),
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAlt * (decimal)pRO.RateFactor * pRO.HourlyRateOld
ItemDescription = string.Format("Ab {0:MMMM yyyy}: {1:0.00}", pRO.HourlyRateOldStartDate, pRO.GeleisteteFLSMitStundensatzAlt),
RateFactor = pRO.RateFactor == 1 ? 1 : Convert.ToDecimal(pRO.RateFactorText2),
AmountPerUnit = pRO.HourlyRateOld,
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAlt * pRO.RateFactor * pRO.HourlyRateOld
});
itemList.Add(new InvoiceItemDC
{
ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString,
pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew),
ItemDescription = string.Format("Ab {0:MMMM yyyy}: {1:0.00}", pRO.HourlyRateNewStartDate, pRO.GeleisteteFLSMitStundensatzAktuell),
RateFactor = pRO.RateFactor == 1 ? 1 : Convert.ToDecimal(pRO.RateFactorText2),
AmountPerUnit = pRO.HourlyRateNew,
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAktuell * pRO.RateFactor * pRO.HourlyRateNew
});
}
else
{
if (pRO.HourlyRateNewStartDateString == null)
pRO.HourlyRateNewStartDate = pRO.AccountingStartDate;
itemList.Add(new InvoiceItemDC
{
ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
pRO.AccountingStartDateString, pRO.AccountingEndDateString,
pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew),
ItemDescription = string.Format("Ab {0:MMMM yyyy}: {1:0.00}", pRO.HourlyRateNewStartDate, pRO.GeleisteteFLSMitStundensatzAktuell),
RateFactor = pRO.RateFactor == 1 ? 1 : Convert.ToDecimal(pRO.RateFactorText2),
AmountPerUnit = pRO.HourlyRateNew,
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAktuell * pRO.RateFactor * pRO.HourlyRateNew
});
}
return itemList;

View File

@@ -113,7 +113,7 @@ namespace BeWo.Report.DefaultReports
this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
this.lblFLSInMinuten = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
@@ -764,7 +764,7 @@ namespace BeWo.Report.DefaultReports
this.xrLabel13,
this.xrLabel12,
this.xrLabel11,
this.xrLabel10,
this.lblFLSInMinuten,
this.xrLabel9,
this.xrLabel1,
this.xrPictureBox1,
@@ -1149,22 +1149,22 @@ namespace BeWo.Report.DefaultReports
this.xrLabel11.Text = "Ohne Faktor 1,2 (wird erst bei Abrechnung eingerechnet)";
this.xrLabel11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrLabel10
// lblFLSInMinuten
//
this.xrLabel10.BackColor = System.Drawing.Color.Gainsboro;
this.xrLabel10.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel10.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(415F, 0F);
this.xrLabel10.Name = "xrLabel10";
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel10.SizeF = new System.Drawing.SizeF(320F, 20F);
this.xrLabel10.StylePriority.UseBackColor = false;
this.xrLabel10.StylePriority.UseBorders = false;
this.xrLabel10.StylePriority.UseFont = false;
this.xrLabel10.StylePriority.UsePadding = false;
this.xrLabel10.StylePriority.UseTextAlignment = false;
this.xrLabel10.Text = "Fachleistungen in Minuten";
this.xrLabel10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.lblFLSInMinuten.BackColor = System.Drawing.Color.Gainsboro;
this.lblFLSInMinuten.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.lblFLSInMinuten.Font = new System.Drawing.Font("Arial", 10F);
this.lblFLSInMinuten.LocationFloat = new DevExpress.Utils.PointFloat(415F, 0F);
this.lblFLSInMinuten.Name = "lblFLSInMinuten";
this.lblFLSInMinuten.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.lblFLSInMinuten.SizeF = new System.Drawing.SizeF(320F, 20F);
this.lblFLSInMinuten.StylePriority.UseBackColor = false;
this.lblFLSInMinuten.StylePriority.UseBorders = false;
this.lblFLSInMinuten.StylePriority.UseFont = false;
this.lblFLSInMinuten.StylePriority.UsePadding = false;
this.lblFLSInMinuten.StylePriority.UseTextAlignment = false;
this.lblFLSInMinuten.Text = "Fachleistungen in Minuten";
this.lblFLSInMinuten.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel9
//
@@ -1310,7 +1310,7 @@ namespace BeWo.Report.DefaultReports
private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
private DevExpress.XtraReports.UI.CalculatedField fieldKontaktArt;
private DevExpress.XtraReports.UI.XRLabel xrLabel11;
private DevExpress.XtraReports.UI.XRLabel xrLabel10;
private DevExpress.XtraReports.UI.XRLabel lblFLSInMinuten;
private DevExpress.XtraReports.UI.XRLabel xrLabel9;
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
private DevExpress.XtraReports.UI.XRLabel xrLabel13;

View File

@@ -69,6 +69,7 @@ namespace BeWo.Report.DefaultReports
{
lblBewilligteFLS.Text = "Bewilligte ASS wöchentlich";
tcFLSIn.Text = "ASS in";
lblFLSInMinuten.Text = "Assistenzleistungen in Minuten";
}
if (cats.Count == 1)

View File

@@ -59,7 +59,6 @@ namespace LebensWert
this.columnWegepauschaleQuali = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell32 = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.formattingRuleStartDate = new DevExpress.XtraReports.UI.FormattingRule();
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
@@ -91,6 +90,7 @@ namespace LebensWert
this.formattingRuleCostBearer = new DevExpress.XtraReports.UI.FormattingRule();
this.formattingRuleEmployeeName = new DevExpress.XtraReports.UI.FormattingRule();
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
this.xrRichText5 = new DevExpress.XtraReports.UI.XRRichText();
this.xrLabel16 = new DevExpress.XtraReports.UI.XRLabel();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
@@ -104,11 +104,11 @@ namespace LebensWert
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.fieldKontaktArt = new DevExpress.XtraReports.UI.CalculatedField();
this.wennGruppeAnzPersonen = new DevExpress.XtraReports.UI.CalculatedField();
this.xrRichText5 = new DevExpress.XtraReports.UI.XRRichText();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText5)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
@@ -189,7 +189,7 @@ namespace LebensWert
// xrTableCell14
//
this.xrTableCell14.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.StartDateMinutes", "{0:HH:mm}")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.TimeRangeString", "{0:HH:mm}")});
this.xrTableCell14.Font = new System.Drawing.Font("Calibri", 10F);
this.xrTableCell14.Name = "xrTableCell14";
this.xrTableCell14.StylePriority.UseBorders = false;
@@ -523,10 +523,6 @@ namespace LebensWert
this.xrTableCell32.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
this.xrTableCell32.Weight = 0.28195599876122152D;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
//
// formattingRuleStartDate
//
this.formattingRuleStartDate.Condition = "[StartDate2] < [StartDate]";
@@ -903,7 +899,7 @@ namespace LebensWert
this.xrLabel20.StylePriority.UseFont = false;
this.xrLabel20.StylePriority.UseForeColor = false;
this.xrLabel20.StylePriority.UseTextAlignment = false;
this.xrLabel20.Text = "VARO Sozialagentur GbR, Berliner Str. 61, 31174 Schellerten";
this.xrLabel20.Text = "Lebenswert, Kai Lippel, Am Heinsood 11, 31832 Springe ";
this.xrLabel20.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrLabel19
@@ -1017,6 +1013,16 @@ namespace LebensWert
this.topMarginBand1.HeightF = 121.8751F;
this.topMarginBand1.Name = "topMarginBand1";
//
// xrRichText5
//
this.xrRichText5.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrRichText5.LocationFloat = new DevExpress.Utils.PointFloat(218.707F, 10.00001F);
this.xrRichText5.Name = "xrRichText5";
this.xrRichText5.SerializableRtfString = resources.GetString("xrRichText5.SerializableRtfString");
this.xrRichText5.SizeF = new System.Drawing.SizeF(677.0001F, 70.88823F);
this.xrRichText5.StylePriority.UseBackColor = false;
this.xrRichText5.StylePriority.UseFont = false;
//
// xrLabel16
//
this.xrLabel16.Font = new System.Drawing.Font("Calibri", 10F);
@@ -1224,15 +1230,9 @@ namespace LebensWert
this.wennGruppeAnzPersonen.Expression = "Iif([CustomerCount] > 1,[CustomerCount],\'\')";
this.wennGruppeAnzPersonen.Name = "wennGruppeAnzPersonen";
//
// xrRichText5
// bindingSource1
//
this.xrRichText5.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrRichText5.LocationFloat = new DevExpress.Utils.PointFloat(218.707F, 10.00001F);
this.xrRichText5.Name = "xrRichText5";
this.xrRichText5.SerializableRtfString = resources.GetString("xrRichText5.SerializableRtfString");
this.xrRichText5.SizeF = new System.Drawing.SizeF(677.0001F, 70.88823F);
this.xrRichText5.StylePriority.UseBackColor = false;
this.xrRichText5.StylePriority.UseFont = false;
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
//
// QuittierungsbelegHannover
//
@@ -1260,8 +1260,8 @@ namespace LebensWert
this.Version = "17.1";
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText5)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}

View File

@@ -66,7 +66,7 @@ namespace LebenshilfeFrankfurtOder
yearCount++;
}
if (dt.Month == result.MonthInt)
if (dt.Year == result.Year && dt.Month == result.MonthInt)
{
monthCount++;

View File

@@ -250,7 +250,7 @@ namespace LebenshilfeFrankfurtOder
this.xrLabel27.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)));
this.xrLabel27.CanGrow = false;
this.xrLabel27.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "OrganisationDebitorNumber")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RecipientDebitorNumber")});
this.xrLabel27.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrLabel27.LocationFloat = new DevExpress.Utils.PointFloat(529.1892F, 318.0556F);
this.xrLabel27.Name = "xrLabel27";

View File

@@ -49,6 +49,12 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Quittierungsbeleg.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Quittierungsbeleg.Designer.cs">
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>
</Compile>
<Compile Include="ServiceInvoiceReport.cs">
<SubType>Component</SubType>
</Compile>
@@ -88,6 +94,10 @@
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\licenses.licx" />
<EmbeddedResource Include="Quittierungsbeleg.resx">
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="ServiceInvoiceReport.resx">
<DependentUpon>ServiceInvoiceReport.cs</DependentUpon>
</EmbeddedResource>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,146 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Text.RegularExpressions;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.Core;
using DevExpress.XtraReports.UI;
namespace MobileEV
{
public partial class Quittierungsbeleg : XtraReport, IBeWoReport<ServicesOverviewRO>
{
public Quittierungsbeleg()
{
InitializeComponent();
}
public void SetReportDataSource(ServicesOverviewRO pRO)
{
// Get calling method name
//StackTrace stackTrace = new StackTrace();
//Debug.WriteLine(stackTrace.GetFrame(1).GetMethod().Name);
bool hatGruppen = false;
//if (pRO == null)
// return;
if (pRO.Services != null)
{
List<ServicesOverviewRO.ServiceDetail> servicesBillable = new List<ServicesOverviewRO.ServiceDetail>();
foreach (var sd in pRO.Services)
{
if (sd.IsBillable || sd.ServiceCategory == "Mittelbare Leistung" && sd.ServiceDescription == "Terminausfall")
{
if (sd.ServiceCategory == "Mittelbare Leistung" && sd.ServiceDescription == "Terminausfall")
sd.Notice5 = "T";
else if (sd.IsGroup)
sd.Notice5 = "GR";
else if (!sd.IsGroup)
sd.Notice5 = "E";
ServicesOverviewRO.CreateSignatureString(sd);
if (sd.IsGroup)
{
//sd.Notice5 = String.Format("{0} Teilnehmer", sd.CustomerCount);
hatGruppen = true;
}
servicesBillable.Add(sd);
}
}
pRO.Services = servicesBillable;
}
if (String.IsNullOrWhiteSpace(pRO.AbsenceTimes))
{
lblHatAbwesenheiten.Text = "X";
}
if (!hatGruppen)
{
lblHatGruppen.Text = "X";
}
ErstelleAbwesenheitenTabelle(pRO);
bindingSource1.DataSource = pRO;
}
private void ErstelleAbwesenheitenTabelle(ServicesOverviewRO pRo)
{
if (pRo.Abwesenheiten != null)
{
int newRows = 0;
int index = 1;
foreach (var at in pRo.Abwesenheiten)
{
DevExpress.XtraReports.UI.XRTableRow row = null;
if (index < xrTableAbwesenheiten.Rows.Count)
{
row = xrTableAbwesenheiten.Rows[index];
}
else
{
row = xrTableAbwesenheiten.InsertRowBelow(xrTableAbwesenheiten.Rows[xrTableAbwesenheiten.Rows.Count - 1]);
newRows++;
}
row.Cells[0].Text = String.Format("{0:dd.MM.yyyy}", at.Start);
int? days = null;
if (at.End.HasValue)
{
row.Cells[1].Text = String.Format("{0:dd.MM.yyyy}", at.End);
days = (int)at.End.Value.Subtract(at.Start.Value).TotalDays + 1;
}
else
{
row.Cells[1].Text = "unbekannt";
}
row.Cells[2].Text = String.Format("{0:0}", days);
index++;
}
if (newRows > 0)
{
lblUnterschriftKlient.Top += newRows * 20;
lblUnterschriftMitarbeiter.Top += newRows * 20;
}
}
}
private void picSignature_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
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);
Image img = ByteArrayToImage(binData);
xrBox.Image = Utils.CropImage(img);
}
else
{
xrBox.Image = null;
}
}
public Image ByteArrayToImage(byte[] byteArrayIn)
{
using(var memoryStream = new MemoryStream(byteArrayIn))
{
return Image.FromStream(memoryStream);
}
}
}
}

View File

@@ -0,0 +1,129 @@
<?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>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>21, 17</value>
</metadata>
<data name="xrRichText2.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAEEAcgBpAGEAbAA7AH0AfQB7AFwAYwBvAGwAbwByAHQAYgBsACAAOwBcAHIAZQBkADAAXABnAHIAZQBlAG4AMABcAGIAbAB1AGUAMAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADIANQA1ACAAOwB9AHsAXAAqAFwAZABlAGYAYwBoAHAAIABcAGYAMQBcAGYAcwAyADQAfQB7AFwAcwB0AHkAbABlAHMAaABlAGUAdAAgAHsAXABxAGwAXABmADEAXABmAHMAMgA0ACAATgBvAHIAbQBhAGwAOwB9AHsAXAAqAFwAYwBzADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABEAGUAZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgAIABGAG8AbgB0ADsAfQB7AFwAKgBcAGMAcwAyAFwAcwBiAGEAcwBlAGQAbwBuADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABMAGkAbgBlACAATgB1AG0AYgBlAHIAOwB9AHsAXAAqAFwAYwBzADMAXAB1AGwAXABmADEAXABmAHMAMgA0AFwAYwBmADIAIABIAHkAcABlAHIAbABpAG4AawA7AH0AewBcACoAXAB0AHMANABcAHQAcwByAG8AdwBkAFwAZgAxAFwAZgBzADIANABcAHEAbABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgBsADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAGwAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAYgAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgB0ADMAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAE4AbwByAG0AYQBsACAAVABhAGIAbABlADsAfQB7AFwAKgBcAHQAcwA1AFwAdABzAHIAbwB3AGQAXABzAGIAYQBzAGUAZABvAG4ANABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHIAYgByAGQAcgB0AFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGwAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAYgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgByAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGgAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAdgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwB2AGUAcgB0AGEAbAB0AFwAYwBsAHQAeABsAHIAdABiACAAVABhAGIAbABlACAAUwBpAG0AcABsAGUAIAAxADsAfQB9AHsAXAAqAFwAbABpAHMAdABvAHYAZQByAHIAaQBkAGUAdABhAGIAbABlAH0AXABuAG8AdQBpAGMAbwBtAHAAYQB0AFwAcwBwAGwAeQB0AHcAbgBpAG4AZQBcAGgAdABtAGEAdQB0AHMAcABcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAEsAZQBpAG4AZQAgAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXAB1AGwAXABmADIAXABmAHMAMgAwAFwAYwBmADEAIABLAHIAYQBuAGsAZQBuAGgAYQB1AHMAYQB1AGYAZQBuAHQAaABhAGwAdABlAH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAdQBsAFwAZgAyAFwAZgBzADIAMABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAdQBsAFwAZgAyAFwAZgBzADIAMABcAGMAZgAxACAAYgBlAGsAYQBuAG4AdAAgAG8AZABlAHIAIAB9AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAHUAbABcAGYAMgBcAGYAcwAyADAAXABjAGYAMQBcAHAAYQByAFwAcABhAHIAZABcAHAAbABhAGkAbgBcAHEAbAB7AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAHUAbABcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAGEAYgByAGUAYwBoAG4AdQBuAGcAcwByAGUAbABlAHYAYQBuAHQAfQB7AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgACAAaQBtACAAQQBiAHIAZQBjAGgAbgB1AG4AZwBzAHoAZQBpAHQAcgBhAHUAbQB9AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMQBcAGYAcwAyADQAXABjAGYAMQBcAHAAYQByAH0A</value>
</data>
<data name="xrRichText1.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAEEAcgBpAGEAbAA7AH0AfQB7AFwAYwBvAGwAbwByAHQAYgBsACAAOwBcAHIAZQBkADAAXABnAHIAZQBlAG4AMABcAGIAbAB1AGUAMAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADIANQA1ACAAOwB9AHsAXAAqAFwAZABlAGYAYwBoAHAAIABcAGYAMQBcAGYAcwAyADQAfQB7AFwAcwB0AHkAbABlAHMAaABlAGUAdAAgAHsAXABxAGwAXABmADEAXABmAHMAMgA0ACAATgBvAHIAbQBhAGwAOwB9AHsAXAAqAFwAYwBzADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABEAGUAZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgAIABGAG8AbgB0ADsAfQB7AFwAKgBcAGMAcwAyAFwAcwBiAGEAcwBlAGQAbwBuADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABMAGkAbgBlACAATgB1AG0AYgBlAHIAOwB9AHsAXAAqAFwAYwBzADMAXAB1AGwAXABmADEAXABmAHMAMgA0AFwAYwBmADIAIABIAHkAcABlAHIAbABpAG4AawA7AH0AewBcACoAXAB0AHMANABcAHQAcwByAG8AdwBkAFwAZgAxAFwAZgBzADIANABcAHEAbABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgBsADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAGwAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAYgAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgB0ADMAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAE4AbwByAG0AYQBsACAAVABhAGIAbABlADsAfQB7AFwAKgBcAHQAcwA1AFwAdABzAHIAbwB3AGQAXABzAGIAYQBzAGUAZABvAG4ANABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHIAYgByAGQAcgB0AFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGwAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAYgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgByAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGgAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAdgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwB2AGUAcgB0AGEAbAB0AFwAYwBsAHQAeABsAHIAdABiACAAVABhAGIAbABlACAAUwBpAG0AcABsAGUAIAAxADsAfQB9AHsAXAAqAFwAbABpAHMAdABvAHYAZQByAHIAaQBkAGUAdABhAGIAbABlAH0AXABuAG8AdQBpAGMAbwBtAHAAYQB0AFwAcwBwAGwAeQB0AHcAbgBpAG4AZQBcAGgAdABtAGEAdQB0AHMAcABcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAEsAZQBpAG4AZQAgAH0AewBcAHUAbABcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAEcAcgB1AHAAcABlAG4AYQBuAGcAZQBiAG8AdABlAH0AewBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgACAAaQBtACAAQQBiAHIAZQBjAGgAbgB1AG4AZwBzAHoAZQBpAHQAcgBhAHUAbQB9AFwAZgAxAFwAZgBzADIANABcAGMAZgAxAFwAcABhAHIAfQA=</value>
</data>
</root>

View File

@@ -1,5 +1,5 @@
using BeWo.Report.ReportObjects;
namespace Kundexyz
namespace MobileEV
{
partial class ServiceInvoiceReport
{

View File

@@ -3,7 +3,7 @@ using BeWo.Report.ReportObjects;
using BeWo.Report;
using DevExpress.XtraReports.UI;
namespace Kundexyz
namespace MobileEV
{
public partial class ServiceInvoiceReport : XtraReport, IBeWoReport<ServiceInvoiceRO>
{

View File

@@ -1,4 +1,4 @@
namespace Kundexyz
namespace MobileEV
{
partial class Spitzabrechnung
{

View File

@@ -6,7 +6,7 @@ using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.DataContracts;
namespace Kundexyz
namespace MobileEV
{
public partial class Spitzabrechnung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<SettlementRO>
{

View File

@@ -1,5 +1,5 @@
using BeWo.Report.ReportObjects;
namespace Kundexyz.Alt
namespace MobileEV.Alt
{
partial class Spitzabrechnung
{
@@ -170,8 +170,8 @@ namespace Kundexyz.Alt
// xrTableCell22
//
this.xrTableCell22.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell22.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
this.xrTableCell22.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell22.Name = "xrTableCell22";
this.xrTableCell22.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
@@ -499,7 +499,7 @@ namespace Kundexyz.Alt
// xrTableCell53
//
this.xrTableCell53.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell53.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
this.xrTableCell53.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell53.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.GrossAmountTotal", "{0:c}")});
@@ -549,7 +549,7 @@ namespace Kundexyz.Alt
// xrTableCell48
//
this.xrTableCell48.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell48.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
this.xrTableCell48.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell48.Name = "xrTableCell48";
this.xrTableCell48.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
@@ -579,7 +579,7 @@ namespace Kundexyz.Alt
//
// xrTableCell50
//
this.xrTableCell50.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
this.xrTableCell50.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell50.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AmountBillableTotal", "{0:c}")});
@@ -603,7 +603,7 @@ namespace Kundexyz.Alt
//
// xrTableCell51
//
this.xrTableCell51.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
this.xrTableCell51.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell51.Name = "xrTableCell51";
this.xrTableCell51.StylePriority.UseBorders = false;
@@ -633,7 +633,7 @@ namespace Kundexyz.Alt
// xrTableCell55
//
this.xrTableCell55.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell55.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
this.xrTableCell55.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell55.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AmountAdvancedPayments", "{0:c}")});
@@ -670,7 +670,7 @@ namespace Kundexyz.Alt
//
// xrTableCell57
//
this.xrTableCell57.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
this.xrTableCell57.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell57.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Eigenbeteiligung", "{0:c}")});
@@ -695,7 +695,7 @@ namespace Kundexyz.Alt
// xrTableCell58
//
this.xrTableCell58.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell58.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
this.xrTableCell58.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell58.Name = "xrTableCell58";
this.xrTableCell58.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
@@ -726,7 +726,7 @@ namespace Kundexyz.Alt
//
// xrTableCell60
//
this.xrTableCell60.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
this.xrTableCell60.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell60.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Claim", "{0:c}")});

View File

@@ -6,7 +6,7 @@ using DevExpress.XtraReports.UI;
using BeWo.Report.ReportObjects;
using BeWo.Report;
namespace Kundexyz.Alt
namespace MobileEV.Alt
{
public partial class Spitzabrechnung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<Settlement2RO>
{

View File

@@ -43,12 +43,14 @@ namespace BeWo.SeWo
{
var srDb = DAOFactory.GenericDAO.LoadByID<ServiceRecord>(sr.ServiceRecordOid.Value);
if (srDb.ServiceDescription.ServiceCategory.Percentage != 100)
var p = srDb.ServiceDescription.ServiceCategory.ProzentStundenkonto ?? srDb.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (srDb.ServiceDescription.ProzentStundenkonto.HasValue)
{
minuten *= (srDb.ServiceDescription.ServiceCategory.Percentage)/100;
sr.RoundedDuration = minuten;
p = srDb.ServiceDescription.ProzentStundenkonto.Value;
}
minuten *= (p) / 100;
sr.RoundedDuration = minuten;
sr.Notice2 = srDb.Notice2;
sr.Notice3 = srDb.Notice3;

View File

@@ -57,11 +57,14 @@ namespace BeWo.SeWo
{
var srDb = DAOFactory.GenericDAO.LoadByID<ServiceRecord>(sr.ServiceRecordOid.Value);
if (srDb.ServiceDescription.ServiceCategory.Percentage != 100)
var p = srDb.ServiceDescription.ServiceCategory.ProzentStundenkonto ?? srDb.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (srDb.ServiceDescription.ProzentStundenkonto.HasValue)
{
minuten *= (srDb.ServiceDescription.ServiceCategory.Percentage)/100;
sr.RoundedDuration = minuten;
p = srDb.ServiceDescription.ProzentStundenkonto.Value;
}
minuten *= (p) / 100;
sr.RoundedDuration = minuten;
sr.Notice2 = srDb.Notice2;
sr.Notice3 = srDb.Notice3;

View File

@@ -102,15 +102,19 @@ namespace BeWo.SeWo
}
}
if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null)
{
var p = item.ServiceDescription.ServiceCategory.Percentage;
{
var p = item.ServiceDescription.ServiceCategory.ProzentStundenkonto ?? item.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (item.ServiceDescription.ProzentStundenkonto.HasValue)
{
p = item.ServiceDescription.ProzentStundenkonto.Value;
}
if (p != 100 && p > 0)
{
item.RoundedDuration *= (p/100);
item.RoundedDuration *= (p / 100);
item.GroupRoundedDuration *= (p / 100);
}
}
}
return true;
}
@@ -210,11 +214,11 @@ namespace BeWo.SeWo
if (item.ServiceDescription.ServiceCategory != null)
{
var p = item.ServiceDescription.ServiceCategory.Percentage;
var p = item.ServiceDescription.ServiceCategory.ProzentStundenkonto ?? item.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (item.ServiceDescription.Percentage.HasValue)
if (item.ServiceDescription.ProzentStundenkonto.HasValue)
{
p = item.ServiceDescription.Percentage.Value;
p = item.ServiceDescription.ProzentStundenkonto.Value;
}
if (p != 100 && p > 0)
{

View File

@@ -11,7 +11,9 @@ namespace BeWo.Service.DCEntityMapper
{
pDataContract.ServiceCategoryOid = pEntity.Oid;
pDataContract.ServiceCategoryVersion = pEntity.Version;
pDataContract.Percentage = pEntity.Percentage;
pDataContract.Percentage = pEntity.ProzentAbrechnung;
pDataContract.ProzentBudget = pEntity.ProzentBudget;
pDataContract.ProzentStundenkonto = pEntity.ProzentStundenkonto;
pDataContract.Name = pEntity.Name;
pDataContract.IsBillable = pEntity.IsBillable;
pDataContract.OhneHilfeplan = pEntity.OhneHilfeplan;
@@ -37,7 +39,17 @@ namespace BeWo.Service.DCEntityMapper
pEntity.Name = pDataContract.Name;
pEntity.IsBillable = pDataContract.IsBillable;
pEntity.OhneHilfeplan = pDataContract.OhneHilfeplan;
pEntity.Percentage = pDataContract.Percentage;
pEntity.ProzentAbrechnung = pDataContract.Percentage;
pEntity.ProzentBudget = pDataContract.ProzentBudget;
pEntity.ProzentStundenkonto = pDataContract.ProzentStundenkonto;
if (!pEntity.ProzentBudget.HasValue)
{
pEntity.ProzentBudget = pEntity.ProzentAbrechnung;
}
if (!pEntity.ProzentStundenkonto.HasValue)
{
pEntity.ProzentStundenkonto = pEntity.ProzentAbrechnung;
}
pEntity.Abbreviation = pDataContract.Abbreviation;
pEntity.Position = pDataContract.Position;
pEntity.BillableAmount = pDataContract.BillableAmount;

View File

@@ -26,7 +26,9 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.DoNotCheckOverlapping = pEntity.DoNotCheckOverlapping.HasValue && pEntity.DoNotCheckOverlapping.Value;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.CostRatePeriods = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(pEntity.CostRatePeriods);
pDataContract.Percentage = pEntity.Percentage;
pDataContract.ProzentAbrechnung = pEntity.ProzentAbrechnung;
pDataContract.ProzentBudget = pEntity.ProzentBudget;
pDataContract.ProzentStundenkonto = pEntity.ProzentStundenkonto;
return pDataContract;
}
@@ -44,7 +46,9 @@ namespace BeWo.Service.DCEntityMapper
pEntity.ScopeType = pDataContract.ScopeType;
pEntity.IsDefault = pDataContract.IsDefault;
pEntity.DoNotCheckOverlapping = pDataContract.DoNotCheckOverlapping;
pEntity.Percentage = pDataContract.Percentage;
pEntity.ProzentAbrechnung = pDataContract.ProzentAbrechnung;
pEntity.ProzentBudget = pDataContract.ProzentBudget;
pEntity.ProzentStundenkonto = pDataContract.ProzentStundenkonto;
if (pEntity.ServiceCategory == null || pDataContract.Category.ServiceCategoryOid != pEntity.ServiceCategory.Oid)
{

View File

@@ -728,12 +728,13 @@ namespace BeWo.Service.Dienstplanung
if (UseServiceDescriptionPercentage())
{
if (item.ServiceDescription != null &&
item.ServiceDescription.ServiceCategory != null &&
item.ServiceDescription.ServiceCategory.Percentage != 100)
{
duration = (duration * item.ServiceDescription.ServiceCategory.Percentage) / 100;
}
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentStundenkonto ?? item.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (item.ServiceDescription.ProzentStundenkonto.HasValue)
{
prozent = item.ServiceDescription.ProzentStundenkonto.Value;
}
duration = (duration * prozent) / 100;
}
if (item.ServiceDescription != null &&
@@ -1554,13 +1555,14 @@ namespace BeWo.Service.Dienstplanung
}
if (UseServiceDescriptionPercentage())
{
if (item.ServiceDescription != null &&
item.ServiceDescription.ServiceCategory != null &&
item.ServiceDescription.ServiceCategory.Percentage != 100)
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentStundenkonto ?? item.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (item.ServiceDescription.ProzentStundenkonto.HasValue)
{
duration = (duration * item.ServiceDescription.ServiceCategory.Percentage) / 100;
}
}
prozent = item.ServiceDescription.ProzentStundenkonto.Value;
}
duration = (duration * prozent) / 100;
}
minutenMonat += duration;

View File

@@ -82,9 +82,9 @@ namespace BeWo.Service.Invoicing
if (iRecord.GroupOid == null || !groupBookingDict.ContainsKey(iRecord.GroupOid.Value))
{
decimal rd = iRecord.RoundedDuration;
if (iRecord.ServiceDescription.ServiceCategory.Percentage != 100)
if (iRecord.ServiceDescription.ServiceCategory.ProzentAbrechnung != 100)
{
rd = (rd * iRecord.ServiceDescription.ServiceCategory.Percentage) / 100;
rd = (rd * iRecord.ServiceDescription.ServiceCategory.ProzentAbrechnung) / 100;
}
var ap = apList.FirstOrDefault(iap => iap.PeriodStartDate <= iRecord.Start && (iap.PeriodEndDate == DateTime.MaxValue || iRecord.Start < iap.PeriodEndDate.AddDays(1)));

View File

@@ -79,10 +79,10 @@ namespace BeWo.Service.Invoicing
if (iRecord.GroupOid == null || !groupBookingDict.ContainsKey(iRecord.GroupOid.Value))
{
decimal rd = iRecord.RoundedDuration;
var prozent = iRecord.ServiceDescription.ServiceCategory.Percentage;
if (iRecord.ServiceDescription.Percentage.HasValue)
var prozent = iRecord.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (iRecord.ServiceDescription.ProzentAbrechnung.HasValue)
{
prozent = iRecord.ServiceDescription.Percentage.Value;
prozent = iRecord.ServiceDescription.ProzentAbrechnung.Value;
}
rd = (rd * prozent) / 100;

View File

@@ -93,10 +93,10 @@ namespace BeWo.Service.Invoicing
if (iRecord.GroupOid == null || !groupBookingDict.ContainsKey(iRecord.GroupOid.Value))
{
decimal rd = iRecord.RoundedDuration;
var prozent = iRecord.ServiceDescription.ServiceCategory.Percentage;
if (iRecord.ServiceDescription.Percentage.HasValue)
var prozent = iRecord.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (iRecord.ServiceDescription.ProzentAbrechnung.HasValue)
{
prozent = iRecord.ServiceDescription.Percentage.Value;
prozent = iRecord.ServiceDescription.ProzentAbrechnung.Value;
}
rd = (rd * prozent) / 100;

View File

@@ -409,10 +409,10 @@ namespace BeWo.Service.Invoicing
if (iRecord.GroupOid == null || !groupBookingDict.ContainsKey(iRecord.GroupOid.Value))
{
decimal rd = iRecord.RoundedDuration;
var prozent = iRecord.ServiceDescription.ServiceCategory.Percentage;
if (iRecord.ServiceDescription.Percentage.HasValue)
var prozent = iRecord.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (iRecord.ServiceDescription.ProzentAbrechnung.HasValue)
{
prozent = iRecord.ServiceDescription.Percentage.Value;
prozent = iRecord.ServiceDescription.ProzentAbrechnung.Value;
}
rd = (rd * prozent) / 100;
@@ -775,9 +775,9 @@ namespace BeWo.Service.Invoicing
{
var rd = ar.RoundedDuration;
var prozent = ar.ServiceDescription.Category.Percentage;
if (ar.ServiceDescription.Percentage.HasValue)
if (ar.ServiceDescription.ProzentAbrechnung.HasValue)
{
prozent = ar.ServiceDescription.Percentage.Value;
prozent = ar.ServiceDescription.ProzentAbrechnung.Value;
}
rd = (rd * prozent) / 100;

View File

@@ -3,6 +3,7 @@ using System.Configuration;
using System.IO;
using System.Linq;
using System.Reflection;
using BeWo.Data;
using BS.Shared.Core;
namespace BeWo.Service.Plugins

View File

@@ -163,7 +163,18 @@ namespace BeWo.Service.Security
var info = new LicenseInfoDC();
#if DEBUG
try
info.MaxLicenseCount = 1000;
info.PercentFreeEmployee = 100;
info.LicenseInUseCount = 1;
info.EmployeeCount = 1;
info.MaxEmployeeCount = 1000;
return info;
try
{
string url = ConfigurationManager.AppSettings.Get("LicenseInfoUrl");
@@ -207,7 +218,7 @@ namespace BeWo.Service.Security
percentFreeEmployees = 0;
maxLicenses += midLicenses;
}
info.MaxLicenseCount = maxLicenses;
info.MaxLicenseCount = 1000;
info.PercentFreeEmployee = percentFreeEmployees;
info.LicenseInUseCount = DAOFactory.GenericDAO.GetAllActive<ApplicationUser>().Count;
@@ -222,15 +233,6 @@ namespace BeWo.Service.Security
}
return info;
info.MaxLicenseCount = 9999;
info.PercentFreeEmployee = 100;
info.LicenseInUseCount = DAOFactory.GenericDAO.GetAllActive<ApplicationUser>().Count;
info.EmployeeCount = DAOFactory.GenericDAO.GetAllActive<Employee>().Count;
info.MaxEmployeeCount = (int)Math.Ceiling(1000000 * ((100 + 100m) / 100));
return info;
#endif
try

View File

@@ -314,6 +314,7 @@ namespace BeWo.Service.ServiceImplementations
{
try
{
return;
//const string selectQuery = "SELECT Oid, ResourceBookingSequenceOid FROM resourcebooking WHERE startdatetime >= '2020-02-01' AND IsActive = 1 AND IsDeleted = 0";
//const string selectQuery = "SELECT Oid, ResourceBookingSequenceOid FROM resourcebooking WHERE startdatetime >= '2022-12-01' AND IsActive = 1 AND IsDeleted = 0";
const string selectQuery = "SELECT Oid, ResourceBookingSequenceOid FROM resourcebooking WHERE IsActive = 1 AND IsDeleted = 0 AND Oid NOT IN (SELECT FormerBookingSequenceOid FROM newschedulerappointment WHERE FormerBookingSequenceOid IS NOT NULL)";

View File

@@ -26,6 +26,12 @@ namespace BS.Shared.DataContracts
[DataMember]
public decimal Percentage { get; set; }
[DataMember]
public decimal? ProzentBudget { get; set; }
[DataMember]
public decimal? ProzentStundenkonto { get; set; }
[DataMember]
public long? ServiceCategoryOid { get; set; }

View File

@@ -51,7 +51,13 @@ namespace BS.Shared.DataContracts
public bool DoNotCheckOverlapping { get; set; }
[DataMember]
public decimal? Percentage { get; set; }
public decimal? ProzentAbrechnung { get; set; }
[DataMember]
public decimal? ProzentBudget { get; set; }
[DataMember]
public decimal? ProzentStundenkonto { get; set; }
[DataMember]
public List<CostRatePeriodDC> CostRatePeriods

View File

@@ -988,10 +988,10 @@ namespace BS.Shared.Services
}
decimal rdMinutes = record.RoundedDuration;
decimal prozent = record.ServiceDescription.Category.Percentage;
if (record.ServiceDescription.Percentage.HasValue)
var prozent = record.ServiceDescription.Category.ProzentBudget ?? record.ServiceDescription.Category.Percentage;
if (record.ServiceDescription.ProzentBudget.HasValue)
{
prozent = record.ServiceDescription.Percentage.Value;
prozent = record.ServiceDescription.ProzentBudget.Value;
}
rdMinutes *= (prozent / 100);
@@ -1001,6 +1001,27 @@ namespace BS.Shared.Services
return rdMinutes;
}
//public virtual decimal GetBillableDurationInMinutes(ServiceRecordDC record)
//{
// if (!record.ServiceDescription.Category.IsBillable)
// {
// return 0;
// }
// decimal rdMinutes = record.RoundedDuration;
// decimal prozent = record.ServiceDescription.Category.ProzentBudget ?? record.ServiceDescription.Category.Percentage;
// if (record.ServiceDescription.ProzentBudget.HasValue)
// {
// prozent = record.ServiceDescription.ProzentBudget.Value;
// }
// rdMinutes *= (prozent / 100);
// if (record.GroupEmployeeCount.HasValue)
// rdMinutes /= record.GroupEmployeeCount.Value;
// return rdMinutes;
//}
public virtual decimal GetBillableDurationInMinutes(List<ServiceRecordDC> records)
{
return records.Sum(i => GetBillableDurationInMinutes(i));