Urbelege Gesendet
This commit is contained in:
@@ -22,6 +22,7 @@ namespace BeWo.Converter
|
||||
{
|
||||
case GkvState.NoSend: return "Erstellt";
|
||||
case GkvState.Waiting: return "Gesendet";
|
||||
case GkvState.Waiting4Urbelege: return "Urbelege per Post";
|
||||
case GkvState.Error: return "Fehler";
|
||||
case GkvState.ErrorFatal: return "Fataler Fehler";
|
||||
case GkvState.Paid: return "Bezahlt";
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:BeWo.View.Controls"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:viewmodel="clr-namespace:BeWo.ViewModel" d:DataContext="{d:DesignInstance Type=viewmodel:GkvAbrechnungVM}"
|
||||
mc:Ignorable="d">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
@@ -50,10 +50,12 @@
|
||||
<TextBox Grid.Row="6" Grid.Column="2" Margin="3" IsReadOnly="True" Text="{Binding AbrechnungsZeitraumEnde}"/>
|
||||
<Label Grid.Row="9" Grid.Column="0" Margin="3" Content="Erstellt am:"/>
|
||||
<TextBox Grid.Row="9" Grid.Column="2" Margin="3" IsReadOnly="True" Text="{Binding ErstelltAm}"/>
|
||||
<Label Grid.Row="14" Grid.Column="0" Margin="3" Content="Betrag:"/>
|
||||
<TextBox Grid.Row="14" Grid.Column="2" Margin="3" IsReadOnly="True" Text="{Binding Betrag, StringFormat={}{0:0.00 €}}"/>
|
||||
<Label Grid.Row="15" Grid.Column="0" Margin="3" Content="Bezahlt:"/>
|
||||
<CheckBox Grid.Row="15" Grid.Column="2" Margin="3" HorizontalAlignment="Left" x:Name="Checkbox_Bezahlt" IsChecked="{Binding Bezahlt}"/>
|
||||
<Label Grid.Row="13" Grid.Column="0" Margin="3" Content="Urbelege Gesendet:"/>
|
||||
<CheckBox Grid.Row="13" Grid.Column="2" Margin="3" HorizontalAlignment="Left" x:Name="Checkbox_Urbelege" IsChecked="{Binding UrbelegeGesendet}"/>
|
||||
<Label Grid.Row="14" Grid.Column="0" Margin="3" Content="Bezahlt:"/>
|
||||
<CheckBox Grid.Row="14" Grid.Column="2" Margin="3" HorizontalAlignment="Left" x:Name="Checkbox_Bezahlt" IsChecked="{Binding Bezahlt}"/>
|
||||
<Label Grid.Row="15" Grid.Column="0" Margin="3" Content="Betrag:"/>
|
||||
<TextBox Grid.Row="15" Grid.Column="2" Margin="3" IsReadOnly="True" Text="{Binding Betrag, StringFormat={}{0:0.00 €}}"/>
|
||||
<!--<TextBox Grid.Row="15" Grid.Column="2" Margin="3" IsReadOnly="True" Text="{Binding Bezahlt}"/>-->
|
||||
<Label Grid.Row="16" Grid.Column="0" Margin="3" Content="Bemerkung:"/>
|
||||
<TextBox Grid.Row="16" Grid.Column="2" Margin="3" Text="{Binding Notice}" x:Name="Textbox_Notice" MaxLength="1024" TextWrapping="Wrap" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" AcceptsReturn="True"/>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
DataSource="{Binding VMList}"
|
||||
Visibility="Collapsed">
|
||||
<dxg:GridControl.Effect>
|
||||
<DropShadowEffect Color="#FFC7D9E2"/>
|
||||
<DropShadowEffect Color="#FFC7D9E2" />
|
||||
</dxg:GridControl.Effect>
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn
|
||||
@@ -227,6 +227,28 @@
|
||||
Width="*"
|
||||
FieldName="Fehlermeldung"
|
||||
Header="Fehlermeldung" />
|
||||
<dxg:GridColumn
|
||||
x:Name="UrbelegeColumn"
|
||||
Width="Auto"
|
||||
FieldName="UrbelegeGesendet"
|
||||
Header="Urbelege gesendet">
|
||||
<dxg:GridColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<dxe:CheckEdit Name="PART_Editor" />
|
||||
</DataTemplate>
|
||||
</dxg:GridColumn.CellTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
x:Name="PaidColumn"
|
||||
Width="Auto"
|
||||
FieldName="Bezahlt"
|
||||
Header="Bezahlt">
|
||||
<dxg:GridColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<dxe:CheckEdit Name="PART_Editor" />
|
||||
</DataTemplate>
|
||||
</dxg:GridColumn.CellTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
AllowEditing="False"
|
||||
FieldName="Betrag"
|
||||
@@ -240,11 +262,6 @@
|
||||
MaskType="Numeric" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
x:Name="PaidColumn"
|
||||
Width="Auto"
|
||||
FieldName="Bezahlt"
|
||||
Header="Bezahlt" />
|
||||
<dxg:GridColumn
|
||||
Width="3*"
|
||||
MinWidth="200"
|
||||
@@ -263,13 +280,12 @@
|
||||
AllowBestFit="True"
|
||||
BestFitMode="Smart"
|
||||
CellValueChanged="gridView_CellValueChanged_1"
|
||||
CellValueChanging="gridView_CellValueChanged"
|
||||
CellValueChanging="gridView_CellValueChanging"
|
||||
CustomRowAppearance="TableView_OnCustomRowAppearance"
|
||||
Loaded="gridView_Loaded"
|
||||
NavigationStyle="Cell"
|
||||
RowMinHeight="24"
|
||||
ScrollingMode="Smart"
|
||||
ShowGroupPanel="False"
|
||||
ShownEditor="gridView_ShownEditor"
|
||||
SnapsToDevicePixels="True" />
|
||||
</dxg:GridControl.View>
|
||||
|
||||
@@ -310,14 +310,24 @@ namespace BeWo.View.Detail.Accounting
|
||||
((TextEdit)gridView.ActiveEditor).SetPropertyValue("MaxLength", tag);
|
||||
}
|
||||
}
|
||||
private void gridView_CellValueChanged(object sender, CellValueChangedEventArgs e)
|
||||
private void gridView_CellValueChanging(object sender, CellValueChangedEventArgs e)
|
||||
{
|
||||
if (e.Column != null && e.Column.FieldName == "Bezahlt")
|
||||
if (e.Column is null)
|
||||
return;
|
||||
|
||||
if (e.Column.FieldName == nameof(GkvAbrechnungVM.Bezahlt))
|
||||
{
|
||||
if (e.Value is bool b && e.Row is GkvAbrechnungVM vm)
|
||||
{
|
||||
SaveBezahltChange(vm, b);
|
||||
}
|
||||
}
|
||||
else if (e.Column.FieldName == nameof(GkvAbrechnungVM.UrbelegeGesendet))
|
||||
{
|
||||
if (e.Value is bool b && e.Row is GkvAbrechnungVM vm)
|
||||
{
|
||||
SaveUrbelegeGesendetChange(vm, b);
|
||||
}
|
||||
}
|
||||
}
|
||||
private void TableView_OnCustomRowAppearance(object sender, CustomRowAppearanceEventArgs e)
|
||||
@@ -334,6 +344,11 @@ namespace BeWo.View.Detail.Accounting
|
||||
e.Result = Brushes.Orange;
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (GkvAbrechnungVM.GetState(gkvAbrechnungVM) == GkvState.Waiting4Urbelege)
|
||||
{
|
||||
e.Result = Brushes.Green;
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -348,10 +363,33 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
dc_in.Bezahlt = b;
|
||||
|
||||
var dc = ServiceFacade.DoAccountingServiceSync(x => x.UpdateGkvAbrechnung(dc_in));
|
||||
ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), cb =>
|
||||
{
|
||||
Dispatcher.Invoke(() => {
|
||||
vm.GkvAbrechnungVersion = cb.GkvAbrechnungVersion;
|
||||
vm.Bezahlt = cb.Bezahlt;
|
||||
});
|
||||
}, false);
|
||||
}
|
||||
|
||||
vm.GkvAbrechnungVersion = dc.GkvAbrechnungVersion;
|
||||
vm.Bezahlt = dc.Bezahlt;
|
||||
private void SaveUrbelegeGesendetChange(GkvAbrechnungVM vm, bool b)
|
||||
{
|
||||
var dc_in = vm.CommitToDataContract();
|
||||
|
||||
dc_in.UrbelegeGesendet = b;
|
||||
|
||||
ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), cb =>
|
||||
{
|
||||
Dispatcher.Invoke(() => {
|
||||
vm.GkvAbrechnungVersion = cb.GkvAbrechnungVersion;
|
||||
vm.UrbelegeGesendet = cb.UrbelegeGesendet;
|
||||
});
|
||||
}, false);
|
||||
|
||||
//var dc = ServiceFacade.DoAccountingServiceSync(x => x.UpdateGkvAbrechnung(dc_in));
|
||||
|
||||
//vm.GkvAbrechnungVersion = dc.GkvAbrechnungVersion;
|
||||
//vm.UrbelegeGesendet = dc.UrbelegeGesendet;
|
||||
}
|
||||
|
||||
private void SaveNoticeChange(GkvAbrechnungVM vm, string notice)
|
||||
@@ -372,5 +410,5 @@ namespace BeWo.View.Detail.Accounting
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -27,10 +27,9 @@ namespace BeWo.View.Master
|
||||
InitRights();
|
||||
|
||||
#if DEBUG
|
||||
if(DebugConfig.CurrentConfig is DebugConfig config && config.DebugConfigMode == DebugConfigMode.FeatureDakota)
|
||||
if(DebugConfig.CurrentConfig is DebugConfig config && config.SelectView == UIContext.Finance)
|
||||
{
|
||||
tabitem_gkvabrechnung.Visibility = Visibility.Visible;
|
||||
root.SelectedItem = tabitem_gkvabrechnung;
|
||||
root.SelectedIndex = config.SelectIndex ?? 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace BeWo.Data.Entities
|
||||
public virtual DateTime? AbrechnungsZeitraumEnde { get; set; }
|
||||
public virtual decimal Betrag { get; set; }
|
||||
public virtual bool Bezahlt { get; set; }
|
||||
public virtual bool UrbelegeGesendet { get; set; }
|
||||
|
||||
public virtual IList<InvoiceBase> InvoiceBases { get; set; }
|
||||
public virtual IList<GkvTransferProtokoll> GkvTransferProtokolle { get; set; }
|
||||
@@ -27,6 +28,7 @@ namespace BeWo.Data.Entities
|
||||
GkvAbrechnungExtensions.GetState(
|
||||
entity,
|
||||
() => entity.Bezahlt,
|
||||
() => entity.UrbelegeGesendet,
|
||||
() => entity.GkvTransferProtokolle,
|
||||
(x) => x.Fehlerdatum,
|
||||
(x) => x.Fehlerlevel,
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
<property column="Betrag" type="decimal" name="Betrag" />
|
||||
<property column="Bezahlt" type="bool" name="Bezahlt" />
|
||||
<property column="UrbelegeGesendet" type="bool" name="UrbelegeGesendet" />
|
||||
|
||||
<property column="ErstelltAm" type="DateTime" name="ErstelltAm" />
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE `gkvabrechnung`
|
||||
ADD COLUMN `UrbelegeGesendet` TINYINT NULL DEFAULT NULL AFTER `Bezahlt`;
|
||||
@@ -28,6 +28,7 @@ namespace BeWo.Service.DCEntityMapper
|
||||
|
||||
pDataContract.Betrag = pEntity.Betrag;
|
||||
pDataContract.Bezahlt = pEntity.Bezahlt;
|
||||
pDataContract.UrbelegeGesendet = pEntity.UrbelegeGesendet;
|
||||
pDataContract.ErstelltAm = pEntity.ErstelltAm;
|
||||
|
||||
pDataContract.InvoiceBases = MapperFactory.InvoiceBaseDC_InvoiceBase.MapToNewDCs(pEntity.InvoiceBases);
|
||||
@@ -52,6 +53,7 @@ namespace BeWo.Service.DCEntityMapper
|
||||
|
||||
pEntity.Betrag = pDataContract.Betrag;
|
||||
pEntity.Bezahlt = pDataContract.Bezahlt;
|
||||
pEntity.UrbelegeGesendet = pDataContract.UrbelegeGesendet;
|
||||
|
||||
pEntity.ErstelltAm = pDataContract.ErstelltAm;
|
||||
|
||||
|
||||
@@ -29,6 +29,9 @@ namespace BS.Shared.DataContracts.GkvAbrechnung
|
||||
[DataMember]
|
||||
public bool Bezahlt { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public bool UrbelegeGesendet { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public DateTime ErstelltAm { get; set; }
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace BS.Shared.Extensions
|
||||
public static GkvState GetState(this GkvAbrechnungDC gkvAbrechnungDC) => GetState(
|
||||
gkvAbrechnungDC,
|
||||
() => gkvAbrechnungDC.Bezahlt,
|
||||
() => gkvAbrechnungDC.UrbelegeGesendet,
|
||||
() => gkvAbrechnungDC.TransferProtokolle,
|
||||
(x) => x.Fehlerdatum,
|
||||
(x) => x.Fehlerlevel,
|
||||
@@ -20,6 +21,7 @@ namespace BS.Shared.Extensions
|
||||
public static GkvState GetState<T2>(
|
||||
object gkvAbrechnung,
|
||||
Func<bool> bezahlt,
|
||||
Func<bool> urbelege,
|
||||
Func<IList<T2>> protokoll,
|
||||
Func<T2, DateTime?> fehlerdatum,
|
||||
Func<T2, GkvTransferFehlerlevel> fehlerlevel,
|
||||
@@ -45,6 +47,8 @@ namespace BS.Shared.Extensions
|
||||
}
|
||||
|
||||
// Kein Fehler
|
||||
if (!urbelege())
|
||||
return GkvState.Waiting4Urbelege;
|
||||
|
||||
if (DateTime.Now - created(last_transfer) > TimeSpan.FromDays(28))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user