297 lines
14 KiB
VB.net
297 lines
14 KiB
VB.net
Public Class frmKasseAbschliessen
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
Dim FMZOLL_SQL As New FMZOLL_SQL
|
|
Dim SaldoALT As Double = 0.0
|
|
Dim SaldoNEU As Double = 0.0
|
|
|
|
Dim PERSONAL As cPersonal = Nothing
|
|
Private Sub frmKasseAbschliessen_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
lblTESTSYSTEM.Visible = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM
|
|
|
|
MyComboBox2.fillWithSQL("SELECT [KassenbuchNr],[Name] FROM [Personal] WHERE ((Status='A' AND KassenbuchNr IS NOT NULL AND BLC='R') OR (BLC='V00')) ORDER BY Name", False, "FMZOLL")
|
|
numAltesGJ.Value = Now.Year - 1
|
|
numNeuesGJ.Value = Now.Year
|
|
End Sub
|
|
|
|
Private Sub MyComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles MyComboBox2.SelectedIndexChanged
|
|
PERSONAL = Nothing
|
|
MyTextBox1.Text = ""
|
|
MyTextBox2.Text = ""
|
|
Label4.Text = ""
|
|
|
|
If MyComboBox2._value <> "" Then
|
|
PERSONAL = FMZOLL_SQL.getPersonalKassenbuch(MyComboBox2._value)
|
|
Label4.Text = PERSONAL.ID
|
|
initSALDO()
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
Sub initSALDO()
|
|
SaldoALT = SQL.getValueTxtBySql("SELECT isnull((Sum(tblKassenbuch.Soll)-Sum(tblKassenbuch.Haben)),0) AS Saldo " &
|
|
" FROM Personal INNER JOIN tblKassenbuch ON Personal.ID = tblKassenbuch.Benutzer " &
|
|
" WHERE tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' AND tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' " &
|
|
" And tblKassenbuch.Benutzer=" & PERSONAL.ID & " AND tblKassenbuch.Geschäftsjahr=" & numAltesGJ.Value & " AND tblKassenbuch.Konto=" & PERSONAL.KassenbuchNr & "", "FMZOLL")
|
|
SaldoNEU = SQL.getValueTxtBySql("SELECT isnull((Sum(tblKassenbuch.Soll)-Sum(tblKassenbuch.Haben)),0) AS Saldo " &
|
|
" FROM Personal INNER JOIN tblKassenbuch ON Personal.ID = tblKassenbuch.Benutzer " &
|
|
" WHERE tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' AND tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' " &
|
|
" And tblKassenbuch.Benutzer=" & PERSONAL.ID & " AND tblKassenbuch.Geschäftsjahr=" & numNeuesGJ.Value & " AND tblKassenbuch.Konto=" & PERSONAL.KassenbuchNr & "", "FMZOLL")
|
|
|
|
|
|
|
|
MyTextBox1.Text = SaldoALT
|
|
MyTextBox2.Text = SaldoNEU
|
|
' Label6.Text = CDbl(If(dt.Rows.Count > 0, cSqlDb.checkNullReturnValue(dt.Rows(0)("Saldo"), 0), 0)).ToString("C")
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub btnKassensaldoUbertragen_Click(sender As Object, e As EventArgs) Handles btnKassensaldoUbertragen.Click
|
|
Me.Cursor = Cursors.WaitCursor
|
|
|
|
If PERSONAL Is Nothing Then MsgBox("Kasse wählen!") : Exit Sub
|
|
If cbxAlt.Checked And cbxNeu.Checked And SaldoALT = 0 Then MsgBox("Kein Betrag zu übertragen!") : Exit Sub
|
|
|
|
JAHRESABSCHLUSS(PERSONAL, SaldoALT)
|
|
initSALDO()
|
|
|
|
Me.Cursor = Cursors.Default
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
Function JAHRESABSCHLUSS(PERSONAL As cPersonal, betrag As Double) As Boolean
|
|
Dim KASSE As New cRKSV_Kasse
|
|
' Dim betrag As Double = SaldoALT
|
|
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
|
|
KASSE.LOAD(6) 'Laden der Kasse anhand der Auswahlbox
|
|
Else
|
|
KASSE.LOAD(PERSONAL.cRKSV_KasseID)
|
|
End If
|
|
|
|
If cbxAlt.Checked Then insertBELEGALT(KASSE, betrag)
|
|
If cbxNeu.Checked Then insertBELEGNEU(KASSE, betrag)
|
|
|
|
Return True
|
|
End Function
|
|
|
|
|
|
Sub insertBELEGALT(KASSE As cRKSV_Kasse, betrag As Double)
|
|
Dim BELEG_ALT As New EABeleg(PERSONAL.Mandant, PERSONAL.Niederlassung, PERSONAL.ID) '!!!!!!!!!!!!!!!!
|
|
BELEG_ALT.BelegDat = cRKSV.getGJ_EndOfYear(numAltesGJ.Value, KASSE.rksv_firma).ToShortDateString 'CDate("31.01." & NumericUpDown1.Value)
|
|
|
|
If txtxAbwBetragALT._value <> "" AndAlso IsNumeric(txtxAbwBetragALT._value) Then betrag = txtxAbwBetragALT._value
|
|
|
|
BELEG_ALT.Belegart = 2 'AUSGANG
|
|
BELEG_ALT.Beleg_TYP = "E"
|
|
BELEG_ALT.rksv_aktiv = KASSE.rksv_aktiv
|
|
BELEG_ALT.Ordnungsbegriff = "* KASSEN-JAHRESABSCHLUSS *" 'IIf(Art = 1, "* KASSEN-JAHRESABSCHLUSS *", "* KASSEN-JAHRESANFANGS-SALDO *")
|
|
|
|
BELEG_ALT.rksv_umsatz = betrag
|
|
BELEG_ALT.Steuerschlüssel = 0
|
|
|
|
Dim oldBelegZaehler = KASSE.rksv_BelegIdZaehler
|
|
Dim RKSV_Beleg_Id = KASSE.INCREASE_BELEG_UMSATZ(BELEG_ALT.rksv_umsatz)
|
|
|
|
Dim KBEntry As cKassenbuch = Nothing
|
|
Dim KBEntryGB As cKassenbuch = Nothing
|
|
|
|
' Dim JournalNr = 0
|
|
If Not insertKB(BELEG_ALT, 9800, KASSE, KASSE.rksv_id, RKSV_Beleg_Id, KBEntry, KBEntryGB, KASSE.rksv_aktiv) Then ' Eintrag ins Kassenbuch
|
|
MsgBox(BELEG_ALT, "Programmfehler bei Eintrag ins Kassenbuch.")
|
|
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
|
|
End If
|
|
BELEG_ALT.gebucht = True
|
|
BELEG_ALT.SAVE()
|
|
|
|
If RKSV_Beleg_Id < 0 Then
|
|
Me.Cursor = Cursors.Default
|
|
BELEG_ALT = cRKSV.STORNO(BELEG_ALT, "Programmfehler bei der Erstellung der RKSV-Beleg-Id.", KASSE.rksv_firma)
|
|
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
|
|
End If
|
|
|
|
Dim QR_CodeString As String = ""
|
|
Dim LastJWS As String = ""
|
|
|
|
Dim summeBRUTTO = betrag
|
|
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & BELEG_ALT.Steuerschlüssel & "' ", "FMZOLL")
|
|
If IsNumeric(steuersatz) Then summeBRUTTO += (betrag * steuersatz)
|
|
|
|
If BELEG_ALT.Belegart = 2 Then summeBRUTTO *= -1
|
|
|
|
Dim answer = ""
|
|
If KASSE.rksv_aktiv Then
|
|
If Not cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, Now, BELEG_ALT.Steuerschlüssel, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, False, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
|
|
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, BELEG_ALT.rksv_umsatz * -1)
|
|
cRKSV.DELETE(BELEG_ALT, KASSE.rksv_firma)
|
|
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
|
|
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
|
|
End If
|
|
End If
|
|
|
|
KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
|
|
'RKSV-Daten beim Beleg ergänzen:
|
|
BELEG_ALT.rksv_jws = LastJWS
|
|
BELEG_ALT.rksv_qr = QR_CodeString
|
|
BELEG_ALT.rksv_BelegId = RKSV_Beleg_Id
|
|
BELEG_ALT.rksv_id = KASSE.rksv_id
|
|
BELEG_ALT.SAVE()
|
|
End Sub
|
|
Sub insertBELEGNEU(KASSE As cRKSV_Kasse, betrag As Double)
|
|
Dim BELEG_NEU As New EABeleg(PERSONAL.Mandant, PERSONAL.Niederlassung, PERSONAL.ID) '!!!!!!!!!!!!!!!!
|
|
BELEG_NEU.BelegDat = cRKSV.getGJ_BeginOfYear(numNeuesGJ.Value, KASSE.rksv_firma).ToShortDateString '' CDate("01.02." & NumericUpDown1.Value)
|
|
BELEG_NEU.Beleg_TYP = "E"
|
|
BELEG_NEU.Belegart = 1 'EINGANG
|
|
BELEG_NEU.rksv_aktiv = KASSE.rksv_aktiv
|
|
BELEG_NEU.Ordnungsbegriff = "* KASSEN-JAHRESANFANGS-SALDO *" 'IIf(Art = 1, "* KASSEN-JAHRESABSCHLUSS *", "* KASSEN-JAHRESANFANGS-SALDO *")
|
|
|
|
If txtxAbwBetragNEU._value <> "" AndAlso IsNumeric(txtxAbwBetragNEU._value) Then betrag = txtxAbwBetragNEU._value
|
|
|
|
BELEG_NEU.rksv_umsatz = betrag
|
|
BELEG_NEU.Steuerschlüssel = 0
|
|
|
|
Dim oldBelegZaehler = KASSE.rksv_BelegIdZaehler
|
|
Dim RKSV_Beleg_Id = KASSE.INCREASE_BELEG_UMSATZ(BELEG_NEU.rksv_umsatz)
|
|
|
|
Dim KBEntry As cKassenbuch = Nothing
|
|
Dim KBEntryGB As cKassenbuch = Nothing
|
|
|
|
' Dim JournalNr = 0
|
|
If Not insertKB(BELEG_NEU, 9800, KASSE, KASSE.rksv_id, RKSV_Beleg_Id, KBEntry, KBEntryGB, KASSE.rksv_aktiv) Then ' Eintrag ins Kassenbuch
|
|
MsgBox(BELEG_NEU, "Programmfehler bei Eintrag ins Kassenbuch.")
|
|
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
|
|
End If
|
|
BELEG_NEU.gebucht = True
|
|
BELEG_NEU.SAVE()
|
|
|
|
If RKSV_Beleg_Id < 0 Then
|
|
Me.Cursor = Cursors.Default
|
|
BELEG_NEU = cRKSV.STORNO(BELEG_NEU, "Programmfehler bei der Erstellung der RKSV-Beleg-Id.", KASSE.rksv_firma)
|
|
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
|
|
End If
|
|
|
|
Dim QR_CodeString As String = ""
|
|
Dim LastJWS As String = ""
|
|
|
|
Dim summeBRUTTO = betrag
|
|
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & BELEG_NEU.Steuerschlüssel & "' ", "FMZOLL")
|
|
If IsNumeric(steuersatz) Then summeBRUTTO += (betrag * steuersatz)
|
|
|
|
If BELEG_NEU.Belegart = 2 Then summeBRUTTO *= -1
|
|
|
|
Dim answer = ""
|
|
If KASSE.rksv_aktiv Then
|
|
If Not cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, Now, BELEG_NEU.Steuerschlüssel, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, False, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
|
|
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, BELEG_NEU.rksv_umsatz * -1)
|
|
cRKSV.DELETE(BELEG_NEU, KASSE.rksv_firma)
|
|
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
|
|
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
|
|
End If
|
|
End If
|
|
|
|
KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
|
|
'RKSV-Daten beim Beleg ergänzen:
|
|
BELEG_NEU.rksv_jws = LastJWS
|
|
BELEG_NEU.rksv_qr = QR_CodeString
|
|
BELEG_NEU.rksv_BelegId = RKSV_Beleg_Id
|
|
BELEG_NEU.rksv_id = KASSE.rksv_id
|
|
BELEG_NEU.SAVE()
|
|
End Sub
|
|
|
|
|
|
Function insertKB(BELEG As EABeleg, Gegenkonto As Integer, KASSE As cRKSV_Kasse, RKSV_id As Integer, RKSV_Beleg_Id As Integer, ByRef KBEntry As cKassenbuch, ByRef KBEntryGB As cKassenbuch, RKSV_Aktiv As Boolean) As Boolean
|
|
|
|
Dim GJBeleg = New cGeschaeftsjahr(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ_FIRMA(BELEG.BelegDat, KASSE.rksv_firma))
|
|
|
|
BELEG.BelegNr = GJBeleg.INCREASE_BELEG() 'Vergabe der Belegnummer
|
|
' BELEG.BelegDat = Now.ToShortDateString
|
|
' Beleg noch nicht gespeichert.... BELEG.DEL_POS_List()' Positionen löschen, da BelegNr Neu vergeben
|
|
For Each p In BELEG.POS
|
|
p.BelegNr = BELEG.BelegNr
|
|
Next
|
|
BELEG.SAVE()
|
|
'BELEG.SAVE_POS_List()
|
|
|
|
|
|
'################
|
|
' EINTRAG: Kassenbuch
|
|
'################
|
|
Dim GJ As New cGeschaeftsjahr(PERSONAL.Mandant, PERSONAL.Niederlassung, PERSONAL.ID, cRKSV.getGJ_FIRMA(BELEG.BelegDat, KASSE.rksv_firma))
|
|
KBEntry = New cKassenbuch(PERSONAL.Mandant, PERSONAL.Niederlassung, PERSONAL.ID, cRKSV.getGJ_FIRMA(BELEG.BelegDat, KASSE.rksv_firma), 0)
|
|
KBEntry.JournalNr = GJ.INCREASE_JOURNAL() 'Vergabe der Journalnummer
|
|
' KBEntry.JournalNr = fktJournalNr(rst1!Mandant, rst1!Niederlassung, rst1!Benutzer, rst1!BelegDat)
|
|
KBEntry.Konto = PERSONAL.KassenbuchNr
|
|
KBEntry.Buchungstext = BELEG.Ordnungsbegriff
|
|
KBEntry.Buchungsdatum = BELEG.BelegDat ' Now.ToShortDateString
|
|
' KBEntry.BelegDat = datBelegdatum.Value.ToShortDateString
|
|
KBEntry.BelegDat = BELEG.BelegDat
|
|
KBEntry.BelegNr = BELEG.BelegNr 'GJ.INCREASE_BELEG
|
|
KBEntry.Belegart = BELEG.Belegart 'art
|
|
KBEntry.Eingabeart = 0
|
|
KBEntry.Steuer = 0
|
|
KBEntry.Steuerbetrag = 0
|
|
KBEntry.Referenz = "" 'txtReferenz.Text
|
|
KBEntry.Währung = 900 'cboWaehrung._value
|
|
KBEntry.Kurs = SQL.getValueTxtBySql("SELECT [Eurokurs] FROM Währungstabelle WHERE Währungsschlüssel=900", "FMZOLL") '" & cboWaehrung._value, "FMZOLL")
|
|
If KBEntry.Belegart = 1 Then
|
|
KBEntry.Soll = BELEG.rksv_umsatz ' txtBetrag.Text
|
|
ElseIf KBEntry.Belegart = 2 Then
|
|
KBEntry.Haben = BELEG.rksv_umsatz ' txtBetrag.Text
|
|
End If
|
|
KBEntry.Betrag = BELEG.rksv_umsatz ' txtBetrag.Text
|
|
KBEntry.rksv_id = RKSV_id
|
|
KBEntry.rksv_BelegId = RKSV_Beleg_Id
|
|
KBEntry.rksv_aktiv = RKSV_Aktiv
|
|
KBEntry.Belegverbuchung = True
|
|
KBEntry.gebucht = True
|
|
If Not KBEntry.INSERT() Then Return False
|
|
|
|
'################
|
|
' EINTRAG: Kassenbuch
|
|
'################
|
|
KBEntryGB = New cKassenbuch(PERSONAL.Mandant, PERSONAL.Niederlassung, PERSONAL.ID, cRKSV.getGJ_FIRMA(BELEG.BelegDat, KASSE.rksv_firma), 0)
|
|
KBEntryGB.JournalNr = GJ.INCREASE_JOURNAL() 'Vergabe der Journalnummer
|
|
' KBEntryGB.JournalNr = fktJournalNr(rst1!Mandant, rst1!Niederlassung, rst1!Benutzer, rst1!BelegDat)
|
|
KBEntryGB.Konto = Gegenkonto
|
|
KBEntryGB.Buchungstext = BELEG.Ordnungsbegriff
|
|
KBEntryGB.Buchungsdatum = BELEG.BelegDat 'Now.ToShortDateString
|
|
' KBEntryGB.BelegDat = datBelegdatum.Value.ToShortDateString
|
|
KBEntryGB.BelegDat = BELEG.BelegDat
|
|
KBEntryGB.BelegNr = BELEG.BelegNr 'GJ.INCREASE_BELEG
|
|
KBEntryGB.Belegart = BELEG.Belegart ' Art
|
|
KBEntryGB.Eingabeart = 0
|
|
KBEntryGB.Steuer = 0
|
|
KBEntryGB.Steuerbetrag = 0
|
|
KBEntryGB.Referenz = "" 'txtReferenz.Text
|
|
KBEntryGB.Währung = 900 ' cboWaehrung._value
|
|
|
|
KBEntryGB.Kurs = SQL.getValueTxtBySql("SELECT [Eurokurs] FROM Währungstabelle WHERE Währungsschlüssel=900", "FMZOLL") '" & cboWaehrung._value, "FMZOLL")
|
|
If KBEntryGB.Belegart = 2 Then
|
|
KBEntryGB.Soll = BELEG.rksv_umsatz ' txtBetrag.Text
|
|
ElseIf KBEntryGB.Belegart = 1 Then
|
|
KBEntryGB.Haben = BELEG.rksv_umsatz 'txtBetrag.Text
|
|
End If
|
|
KBEntryGB.Betrag = BELEG.rksv_umsatz ' txtBetrag.Text
|
|
|
|
KBEntryGB.rksv_id = RKSV_id
|
|
KBEntryGB.rksv_BelegId = RKSV_Beleg_Id
|
|
KBEntryGB.rksv_aktiv = RKSV_Aktiv
|
|
KBEntryGB.Belegverbuchung = True
|
|
KBEntryGB.gebucht = True
|
|
If Not KBEntryGB.INSERT() Then Return False
|
|
|
|
Return True
|
|
End Function
|
|
|
|
Private Sub cbxAlt_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAlt.CheckedChanged
|
|
txtxAbwBetragALT.Enabled = cbxAlt.Checked
|
|
End Sub
|
|
|
|
Private Sub cbxNeu_CheckedChanged(sender As Object, e As EventArgs) Handles cbxNeu.CheckedChanged
|
|
txtxAbwBetragNEU.Enabled = cbxNeu.Checked
|
|
End Sub
|
|
End Class |