Rundungsdifferenzenanzeige, Excelexport

This commit is contained in:
2023-06-21 13:16:57 +02:00
parent 4c6d9eb959
commit 7a6496f820
3 changed files with 132 additions and 19 deletions

View File

@@ -183,11 +183,11 @@ Public Class frmGesamtsicherheitenNEU
End Sub
Public Sub LoadDataTableSicherheitenForExport(list As List(Of Integer), datumVon As String, datumBis As String)
Public Sub LoadDataTableSicherheitenForExport(list As List(Of Integer), datumVon As String, datumBis As String, standort As String)
Me.Cursor = Cursors.WaitCursor
Dim Firma As New VERAG_PROG_ALLGEMEIN.cFirmen(firmaId)
Dim currentGesSichRef = New VERAG_PROG_ALLGEMEIN.cAufschubKonten(standort)
Dim gsnr As String
@@ -209,15 +209,15 @@ Public Class frmGesamtsicherheitenNEU
' order by gs_gsId"
Dim SQLStringSicherheit = "select gs_gsnr as 'Nr',[gs_ATBNr] as 'ATB Verwahrlager " & Firma.Firma_Bez & "','Eingang Verwahrlager' as 'Typ', CAST(gs_datum as Date) as Datum, CONVERT(VARCHAR(5),gs_datum, 108) as Uhrzeit, [gs_warenwert] as Warenwert, [gs_sicherheitsbetrag] as Sicherheitbetrag, [gs_sicherheitsbetrag] as Sicherheitbetrag_Calc, [gs_freitext] as Freitext, [gs_atr] as 'ATR ja/nein', [gs_ust] as '19% EUSt'
Dim SQLStringSicherheit = "select gs_gsnr as 'Nr',[gs_ATBNr] as 'ATB Verwahrlager " & standort & "','Eingang Verwahrlager' as 'Typ', CAST(gs_datum as Date) as Datum, CONVERT(VARCHAR(5),gs_datum, 108) as Uhrzeit, [gs_warenwert] as Warenwert, [gs_sicherheitsbetrag] as Sicherheitbetrag, [gs_sicherheitsbetrag] *-1 as Sicherheitbetrag_Calc, [gs_freitext] as Freitext, [gs_atr] as 'ATR ja/nein', [gs_ust] as '19% EUSt'
From [tblGesamtsicherheit]
Where [gs_gsnr] In (" & gsnr & ")
and isnull(gs_warenwert,0) <> 0
UNION
Select gsp_gsnr, [gsp_ATCNr],'Ausgang Verwahrlager', CAST(gsp_datum as Date), CONVERT(VARCHAR(5),gsp_datum, 108), [gsp_warenwert] , [gsp_sicherheitsbetrag],[gsp_sicherheitsbetrag]*-1, [gsp_freitext],[gsp_art],[gsp_ust]
Select gsp_gsnr, [gsp_ATCNr],'Ausgang Verwahrlager', CAST(gsp_datum as Date), CONVERT(VARCHAR(5),gsp_datum, 108), [gsp_warenwert] , [gsp_sicherheitsbetrag],[gsp_sicherheitsbetrag], [gsp_freitext],[gsp_art],[gsp_ust]
From [tblGesamtsicherheitsPositionen]
where [gsp_gsnr] In (" & gsnr & ")
and isnull(gsp_warenwert,0) <> 0
order by Datum, Uhrzeit"
@@ -231,7 +231,7 @@ Public Class frmGesamtsicherheitenNEU
drFirst.Item("Nr") = 0
drFirst.Item("Typ") = "Uebertrag vom"
drFirst.Item("Datum") = CDate(datumVon).ToShortDateString
drFirst.Item("Saldo") = SQL.getValueTxtBySql("SELECT TOP 1 isnull([gs_saldo],0) FROM [tblGesamtsicherheit] where gs_datum='" & CDate(datumVon).ToShortDateString & "' order by gs_datum asc", "AVISO",,, 500000) 'CDbl(dtSicherheiten.Rows(0).Item("Saldo"))
drFirst.Item("Saldo") = SQL.getValueTxtBySql("SELECT TOP 1 isnull([gs_saldo],0) FROM [tblGesamtsicherheit] where gs_standort = '" & standort & "' AND gs_datum <'" & CDate(datumVon).ToShortDateString & "' order by gs_datum asc", "AVISO",,, currentGesSichRef.brgakto_betrag) 'CDbl(dtSicherheiten.Rows(0).Item("Saldo"))
dtSicherheiten.Rows.InsertAt(drFirst, 0)
@@ -257,6 +257,7 @@ Public Class frmGesamtsicherheitenNEU
drLast.Item("Nr") = 0
drLast.Item("Typ") = "Saldo zum"
drLast.Item("Datum") = CDate(datumBis).ToShortDateString
drLast.Item("Saldo") = CDbl(dtSicherheiten.Rows(dtSicherheiten.Rows.Count - 1).Item("Saldo"))
dtSicherheiten.Rows.InsertAt(drLast, dtSicherheiten.Rows.Count)
@@ -270,6 +271,74 @@ Public Class frmGesamtsicherheitenNEU
Public Sub LoadDataTableSicherheitenForExport2(list As List(Of Integer), datumVon As String, datumBis As String)
Me.Cursor = Cursors.WaitCursor
Dim gsnr As String
Dim counter = 0
For Each n In list
gsnr &= n.ToString()
counter = counter + 1
If (list.Count <> 0 And counter <> list.Count) Then
gsnr &= ","
End If
Next
Dim SQLStringSicherheit As String = "select [gs_ATBNr] as 'ATB Verwahrlager',[gs_gsnr] as 'GS Nr', CAST(gs_datum as Date) as Datum, CONVERT(VARCHAR(5),gs_datum, 108) as Uhrzeit, [gs_warenwert] as Warenwert, [gs_sicherheitsbetrag] as Sicherheitbetrag, [gs_saldo] as Saldo, [gs_freitext] as Freitext, [gs_atr] as 'ATR ja/nein', [gs_ust] as '19% EUSt',
[gsp_ATCNr] as 'ATCNr oder MRN eroeffnet', CAST(gsp_datum as Date) as Datum, CONVERT(VARCHAR(5),gsp_datum, 108) as Uhrzeit, [gsp_warenwert] as Warenwert, [gsp_sicherheitsbetrag] as Sicherheitsbetrag2, [gsp_freitext] as Freitext
from [tblGesamtsicherheit]
inner join [tblGesamtsicherheitsPositionen] on [tblGesamtsicherheit].gs_gsId = [tblGesamtsicherheitsPositionen].gsp_gsId
where [gs_gsnr] IN (" & gsnr & ")
order by gs_gsId"
dtSicherheiten = SQL.loadDgvBySql(SQLStringSicherheit, "AVISO", 100, True)
dtSicherheiten.Columns.Add("SSaldo")
Dim drFirst = dtSicherheiten.NewRow
drFirst.Item("ATB Verwahrlager") = "Uebertrag vom " & datumVon
drFirst.Item("SSaldo") = CDbl(dtSicherheiten.Rows(0).Item("Saldo"))
dtSicherheiten.Rows.InsertAt(drFirst, 0)
Dim sicherheitsbetragATBs As Double
Dim sicherheitsbetragATCs As Double
Dim saldo As Double
Dim c1 As Double
Dim saldoStart As Double
For i As Integer = 1 To dtSicherheiten.Rows.Count - 1
saldoStart = CDbl(dtSicherheiten.Rows(0).Item("SSaldo"))
saldo = CDbl(dtSicherheiten.Rows(i - 1).Item("SSaldo"))
sicherheitsbetragATCs = CDbl(dtSicherheiten.Rows(i).Item("Sicherheitbetrag"))
sicherheitsbetragATBs = CDbl(dtSicherheiten.Rows(i).Item("Sicherheitsbetrag2"))
c1 = saldo - sicherheitsbetragATCs + sicherheitsbetragATBs
dtSicherheiten.Rows(i)("SSaldo") = c1
Next
Dim drLast = dtSicherheiten.NewRow
drLast.Item("ATB Verwahrlager") = "Saldo zum " & datumBis
drLast.Item("SSaldo") = CDbl(dtSicherheiten.Rows(dtSicherheiten.Rows.Count - 1).Item("SSaldo"))
dtSicherheiten.Rows.InsertAt(drLast, dtSicherheiten.Rows.Count)
dtSicherheiten.Columns.Remove("Saldo")
Me.Cursor = Cursors.Default
End Sub
Private Sub dgvGesamtsicherheit_SelectionChanged(sender As Object, e As EventArgs) Handles dgvGesamtsicherheit.SelectionChanged
If dgvGesamtsicherheit.SelectedRows.Count > 0 Then
@@ -638,13 +707,14 @@ Public Class frmGesamtsicherheitenNEU
Private Sub btnAddPos_Click(sender As Object, e As EventArgs) Handles btnAddPos.Click
If dgvGesamtsicherheit.SelectedRows.Count = 0 Then
MsgBox("Bitte eine Gestellung markieren, zu diese eine Pos hinzugefügt/entfernt/aktualisiert werden soll")
Exit Sub
End If
If checkSicherheitsbetrag() = False Then Exit Sub
If Not checkDateOfPosition(txtPosDat.Text, txtPosTime.Text) Then Exit Sub
Try
Dim OPEN As New cSicherheiten()
@@ -896,6 +966,9 @@ Public Class frmGesamtsicherheitenNEU
Private Sub btnUpdatePos_Click(sender As Object, e As EventArgs) Handles btnUpdatePos.Click
If Not checkDateOfPosition(txtPosDat.Text, txtPosTime.Text) Then Exit Sub
With currentSPos
.gsp_art = "CLOSE"
@@ -905,9 +978,9 @@ Public Class frmGesamtsicherheitenNEU
.gsp_ATCNr = If(txtPositionenCRN.Text <> "", txtPositionenCRN.Text, Nothing)
If txtPosDat.Text <> "" AndAlso txtPosTime.Text <> "" Then
.gsp_datum = DateTimeString2DateTimeKonvertinator(txtPosDat.Text, txtPosTime.Text)
currentSPos.gsp_datum = DateTimeString2DateTimeKonvertinator(txtPosDat.Text, txtPosTime.Text)
Else
.gsp_datum = Nothing
currentSPos.gsp_datum = Nothing
End If
@@ -1079,7 +1152,7 @@ Public Class frmGesamtsicherheitenNEU
' Return False
'End If
If (offenerSicherheitsbetrag < 0 Or offenerSicherheitsbetrag < offenerSicherheitsbetragPos) Then
If (offenerSicherheitsbetrag <0 Or offenerSicherheitsbetrag <offenerSicherheitsbetragPos) Then
If vbYes = MsgBox("Der Warenwert der Positionen übersteigt den Warenwert der Gestellung!" & vbCrLf & "Trotzdem speichen?", vbYesNo) Then
Return True
Else
@@ -1787,7 +1860,7 @@ Public Class frmGesamtsicherheitenNEU
End With
SicherheitsPos.SAVE()
cbxRundPosanzeigen.Checked = True
AfterButton()
End If
@@ -1815,4 +1888,27 @@ Public Class frmGesamtsicherheitenNEU
LoadDGVSicherheiten(True)
End Sub
Private Function checkDateOfPosition(datum As String, uhrzeit As String) As Boolean
Dim checkOK As Boolean = True
Dim datumPos As Date = Nothing
If datum <> "" AndAlso uhrzeit <> "" Then
datumPos = DateTimeString2DateTimeKonvertinator(datum, uhrzeit)
ElseIf datum <> "" Then
datumPos = CDate(datum).ToShortDateString
End If
If datumPos <> Nothing And dgvGesamtsicherheit.Rows.Count > 0 Then
If IsDate(dgvGesamtsicherheit.Rows(0).Cells("gs_datum").Value) Then
If datumPos < dgvGesamtsicherheit.Rows(0).Cells("gs_datum").Value Then
MsgBox("Datum/Uhrzeit der Pos-Gestellung darf zeitlich nicht vor der Gestellung liegen! (" & dgvGesamtsicherheit.Rows(0).Cells("gs_datum").Value & ")")
checkOK = False
End If
End If
End If
Return checkOK
End Function
End Class