From 4ffc3dce9f7f8a70390892edfdf0dbb32a1dec7c Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 16 Sep 2026 09:09:23 +0200 Subject: [PATCH] gitignore --- .gitignore | 3 - SDL/kassenbuch/frmKassenbuch.vb | 2028 +++++++++++++++++++++++++++++++ 2 files changed, 2028 insertions(+), 3 deletions(-) create mode 100644 SDL/kassenbuch/frmKassenbuch.vb diff --git a/.gitignore b/.gitignore index b6c19153..37414890 100644 --- a/.gitignore +++ b/.gitignore @@ -261,6 +261,3 @@ __pycache__/ *.pyc /VERAG_PROG_ALLGEMEIN/Benutzerdefinierte Steuerelemente /VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj -/SDL/SDL.vbproj -/SDL/SDL.vbproj -/SDL/kassenbuch/frmKassenbuch.vb diff --git a/SDL/kassenbuch/frmKassenbuch.vb b/SDL/kassenbuch/frmKassenbuch.vb new file mode 100644 index 00000000..8301520b --- /dev/null +++ b/SDL/kassenbuch/frmKassenbuch.vb @@ -0,0 +1,2028 @@ +Imports DocumentFormat.OpenXml.Drawing + +Public Class frmKassenbuch + Dim SQL As New SQL + Public GESCHAEFTSJAHR As Integer = cRKSV.getGJ_FIRMA(Now, VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA) 'IIf(Now.Month = 1, Now.Year - 1, Now.Year) + Dim PERSONAL As cPersonal + Dim RKSV As cRKSV_Kasse + Dim PERSONAL_LG As cPersonal = Nothing + ' Dim PERSONAL_TMP_MASTER_KASSSE As cPersonal + Dim KennwortTime As DateTime = CDate("01.01.1990") + ' Dim firma = "VERAG" + Dim DGV = "B" + Dim loginAfterSeconds = 10 + Public master_Kasse As Boolean = False + Dim FMZOLL_SQL As New FMZOLL_SQL + + Dim tagesabschlussIsSet As Boolean = False + Dim monatsabschlussIsSet As Boolean = False + Dim jahresabschlussIsSet As Boolean = False + Dim NULLBelegIsCreated As Boolean = True + Dim InitialStartIsCreated As Boolean = True + Dim OutOfOrderIsCreated As Boolean = False + Dim TSEIsOnline As Boolean = False + Dim MiddlewareIsOnline As Boolean = False + + Dim isADMIN As Boolean = False + + Public Sub New(PERSONAL As cPersonal, PERSONAL_LG As cPersonal) + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + Me.PERSONAL = PERSONAL + Me.PERSONAL_LG = PERSONAL_LG + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + + End Sub + + Private Sub FlatButton1_Click(sender As Object, e As EventArgs) Handles btnBelegKunde.Click + If KennwortOK() Then + + lblERRKennwort.Visible = False + Dim frmBeleg As New frmBelegNeu(PERSONAL, PERSONAL_LG, "E") + frmBeleg.ShowDialog(Me) + init() + + End If + + End Sub + + Function KennwortOK() As Boolean + If DateDiff(DateInterval.Second, KennwortTime, Now) < loginAfterSeconds Then + Return True + End If + Dim frmSecureLoginKassenbuch As New frmSecureLoginKassenbuch + frmSecureLoginKassenbuch.openKB = False + frmSecureLoginKassenbuch.KassenbuchNr_tmp = PERSONAL.KassenbuchNr + frmSecureLoginKassenbuch.ShowDialog(Me) + If frmSecureLoginKassenbuch.DialogResult = Windows.Forms.DialogResult.OK Then + KennwortTime = Now + PERSONAL_LG = frmSecureLoginKassenbuch.PERSONAL_LG + Return True + Else + lblERRKennwort.Visible = True + Return False + End If + End Function + Private Sub frmKassenbuch_Load(sender As Object, e As EventArgs) Handles Me.Load + RKSV = New cRKSV_Kasse(PERSONAL.cRKSV_KasseID) + GESCHAEFTSJAHR = cRKSV.getGJ_FIRMA(Now, RKSV.rksv_firma) + + + If PERSONAL.ID = 274 Then master_Kasse = True + If VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "ADMIN" Or VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "SIENER" Or VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "DANIEL" Then + isADMIN = True + + End If + KennwortTime = Now + initDgv() 'nur set + init() + + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + cboKassen.fillWithSQL("SELECT [rksv_id], [rksv_bez] FROM [tblRKSV_Kassen] ", False, "FMZOLL") + Else + cboKassen.fillWithSQL("SELECT [rksv_id], [rksv_bez] FROM [tblRKSV_Kassen] WHERE ([rksv_aktiv]=1 OR [rksvde_aktiv]=1 or rksv_id=4) ", False, "FMZOLL") + End If + + ' [rksv_firma]='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' AND + + If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KASSE", Me) Then + btnBelegKunde.Enabled = False + btnBelegAusgang.Enabled = False + btnBelegEingang.Enabled = False + btnBelegGSKunde.Enabled = False + btnBelegLeihgeld.Enabled = False + btnStorno.Enabled = False + End If + + If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Kassenbuch_POS_Terminal_einrichten", Me) Then + btnPosTerminal.Enabled = False + End If + + + If isADMIN Then + Button6.Visible = True + End If + + + End Sub + + Private Sub InitFiskaltrust(TSEisOnline As Boolean, tagesabschluss As Boolean, Montagsabschluss As Boolean, Jahresabschluss As Boolean, NULLBeleg As Boolean, initialStart As Boolean) + + lblTSEOnline.Visible = True + lblTages.Visible = True + lblMonats.Visible = True + lblJahres.Visible = True + lblNullBeleg.Visible = True + lblInitStart.Visible = True + + + picJahres.Visible = True + picMonats.Visible = True + picTages.Visible = True + picNULLbeleg.Visible = True + picTSEOnline.Visible = True + pbInitialStart.Visible = True + + showPic(TSEisOnline, picTSEOnline) + showPic(tagesabschluss, picTages) + showPic(monatsabschlussIsSet, picMonats) + showPic(Jahresabschluss, picJahres) + showPic(NULLBeleg, picNULLbeleg) + showPic(initialStart, pbInitialStart) + + + End Sub + + Sub showPic(ok As Boolean, pic As PictureBox) + pic.Visible = True + If ok Then + pic.BackgroundImage = My.Resources.ok + Else + pic.BackgroundImage = My.Resources.del + End If + + End Sub + Sub init() + Dim sqlstr = "" + + lblWarning.Text = "" + + If master_Kasse Then + Label9.Text = "ADMIN" + pnlTop.BackColor = Color.Red + btnBelegEingang.Enabled = False + btnBelegGSKunde.Enabled = False + btnBelegLeihgeld.Enabled = False + Label15.Text = "MASTER-KASSE" + btnBelegKunde.Enabled = False + btnBelegAusgang.Enabled = False + pnl.Visible = True + + 'sqlstr = "SELECT Sum(tblKassenbuch.Soll) AS Soll, Sum(tblKassenbuch.Haben) AS Haben, (Sum(tblKassenbuch.Soll)-Sum(tblKassenbuch.Haben)) 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 IN (SELECT ID FROM [Personal] WHERE [Standard_RKSV_KasseId]='" & PERSONAL.cRKSV_Kasse.rksv_id & "') AND tblKassenbuch.Geschäftsjahr=" & GESCHAEFTSJAHR & " and Personal.[KassenbuchNr]=tblKassenbuch.Konto" + ' sqlstr = "SELECT Sum(tblKassenbuch.Soll) AS Soll, Sum(tblKassenbuch.Haben) AS Haben, (Sum(tblKassenbuch.Soll)-Sum(tblKassenbuch.Haben)) AS Saldo " & + ' " FROM Personal INNER JOIN tblKassenbuch ON Personal.ID = tblKassenbuch.Benutzer " & + ' " WHERE tblKassenbuch.[rksv_id]='" & PERSONAL.cRKSV_Kasse.rksv_id & "' AND tblKassenbuch.Geschäftsjahr=" & GESCHAEFTSJAHR & " " 'and Personal.[KassenbuchNr]=tblKassenbuch.Konto" + sqlstr = "SELECT Sum(tblKassenbuch.Soll) AS Soll, Sum(tblKassenbuch.Haben) AS Haben, (Sum(tblKassenbuch.Soll)-Sum(tblKassenbuch.Haben)) AS Saldo " & + " FROM tblKassenbuch WHERE tblKassenbuch.[rksv_id]='" & PERSONAL.cRKSV_Kasse.rksv_id & "' AND tblKassenbuch.Geschäftsjahr=" & GESCHAEFTSJAHR & " AND Konto in (select KassenbuchNr from Personal where Standard_RKSV_KasseId='" & PERSONAL.cRKSV_Kasse.rksv_id & "') " 'and Personal.[KassenbuchNr]=tblKassenbuch.Konto" + + Else + Label9.Text = PERSONAL.Name + pnlTop.BackColor = Color.FromArgb(0, 54, 128) + btnBelegEingang.Enabled = True + btnBelegGSKunde.Enabled = True + btnBelegLeihgeld.Enabled = True + Label15.Text = PERSONAL.KassenbuchNr + btnBelegKunde.Enabled = True + btnBelegAusgang.Enabled = True + pnl.Visible = False + + sqlstr = "SELECT Sum(tblKassenbuch.Soll) AS Soll, Sum(tblKassenbuch.Haben) AS Haben, (Sum(tblKassenbuch.Soll)-Sum(tblKassenbuch.Haben)) 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=" & GESCHAEFTSJAHR & " AND tblKassenbuch.Konto=" & PERSONAL.KassenbuchNr & "" + End If + + If PERSONAL.isLeihgeldkasse Then + ' btnBelegLeihgeld.Enabled = True + btnBelegGSKunde.Enabled = False + Button10.Visible = True + 'btnBelegKunde.Enabled = False + End If + + initDate() + ' initDgv() + initDgv() 'initDgv, weil sonst Umschaltung zu MASTER Kasse nicht funzt + 'DataGridView2.RELOAD() + + If PERSONAL.cRKSV_Kasse Is Nothing Then + Label5.Text = "Keine Standard-Kasse" + Else + + Dim dt As DataTable = SQL.loadDgvBySql(sqlstr, "FMZOLL") + Label5.Text = CDbl(If(dt.Rows.Count > 0, cSqlDb.checkNullReturnValue(dt.Rows(0)("Saldo"), 0), 0)).ToString("C") + + End If + + lbldailyCashboxClosing.Text = "" + + If PERSONAL.cRKSV_Kasse IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_Country IsNot Nothing Then + + Dim client_chilkat As New cFiskaltrustClient_chilkat(PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL, PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID, PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken, PERSONAL.cRKSV_Kasse.rksv_FT_Country) + If client_chilkat.isFiskaltrust() Then + + resetFIskaltrust() + + lbldailyCashboxClosing.Visible = True + Button11.Visible = True + + Dim tagesabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Day(ftReceiptMoment) = Day(GETDATE()) and ftEndOfDayReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL")) + If tagesabschluss > 0 Then tagesabschlussIsSet = True + + Dim monatsabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Month(ftReceiptMoment) = Month(GETDATE()) and ftEndOfMonthReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL")) + If monatsabschluss > 0 Then monatsabschlussIsSet = True + + Dim jahresabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Year(ftReceiptMoment) = Year(GETDATE()) and ftEndOfYearReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL")) + If jahresabschluss > 0 Then jahresabschlussIsSet = True + If PERSONAL.cRKSV_Kasse.rksv_FT_ZeroReceiptCreated Is Nothing OrElse IsDBNull(PERSONAL.cRKSV_Kasse.rksv_FT_ZeroReceiptCreated) Then + NULLBelegIsCreated = False + End If + + If Not (PERSONAL.cRKSV_Kasse.rksv_FT_OutOfOrderCreated Is Nothing OrElse IsDBNull(PERSONAL.cRKSV_Kasse.rksv_FT_OutOfOrderCreated)) Then + OutOfOrderIsCreated = True + End If + + + If PERSONAL.cRKSV_Kasse.rksv_FT_InitialStartCreated Is Nothing OrElse IsDBNull(PERSONAL.cRKSV_Kasse.rksv_FT_InitialStartCreated) Then + InitialStartIsCreated = False + End If + + Dim result As String = client_chilkat.Echo(PERSONAL.cRKSV_Kasse.rksv_bez & " " & PERSONAL.cRKSV_Kasse.rksv_FT_Country & " - ") + + If result IsNot Nothing Then + If result.Contains("VERBINDUNG OK") Then + TSEIsOnline = True + MiddlewareIsOnline = True + Else + TSEIsOnline = False + MiddlewareIsOnline = True + End If + Else + TSEIsOnline = False + MiddlewareIsOnline = False + + InitFiskaltrust(TSEIsOnline, tagesabschlussIsSet, monatsabschlussIsSet, jahresabschlussIsSet, NULLBelegIsCreated, InitialStartIsCreated) + + + InitFiskaltrust(TSEIsOnline, tagesabschlussIsSet, monatsabschlussIsSet, jahresabschlussIsSet, NULLBelegIsCreated, InitialStartIsCreated) + + If Not MiddlewareIsOnline Then + diasableBarverkauf("MIDDLEWARE") + ElseIf Not InitialStartIsCreated Then + diasableBarverkauf("INITIALSTART") + ElseIf tagesabschlussIsSet Then + diasableBarverkauf("TAGESABSCHLUSS") + ElseIf OutOfOrderIsCreated Then + diasableBarverkauf("OUTOFORDER") + Else + lbldailyCashboxClosing.Text = "" + If Not TSEIsOnline Then + lbldailyCashboxClosing.Text = "TSE ist OFFLINE: Belege werden nachträglich signiert!" + End If + + If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KASSE", Me) Then + btnBelegKunde.Enabled = True + btnBelegAusgang.Enabled = True + btnBelegEingang.Enabled = True + btnBelegGSKunde.Enabled = True + btnBelegLeihgeld.Enabled = True + btnStorno.Enabled = True + End If + + + End If + + + + lbldailyCashboxClosing.Visible = False + Button11.Visible = False + End If + + + + End If + + End If + + + + ' Label9.Text = PERSONAL.Name + DataGridView2.ClearSelection() + End Sub + + Private Sub diasableBarverkauf(status) + + Select Case status + ' Case "NULLBELEG" : lbldailyCashboxClosing.Text = "Es wurde kein 0-Beleg erstellt (OPTIONAL)" + Case "INITIALSTART" : lbldailyCashboxClosing.Text = "Kasse wurde noch nicht gestartet!" + Case "TAGESABSCHLUSS" : lbldailyCashboxClosing.Text = "Tagesabschluss wurde bereits durchgeführt!" + Case "OUTOFORDER" : lbldailyCashboxClosing.Text = "STATUS: INAKTIV!" + Case "MIDDLEWARE" : lbldailyCashboxClosing.Text = "Middleware ist OFFLINE!" + End Select + + btnBelegKunde.Enabled = False + btnBelegAusgang.Enabled = False + btnBelegEingang.Enabled = False + btnBelegGSKunde.Enabled = False + btnBelegLeihgeld.Enabled = False + btnStorno.Enabled = False + + + End Sub + + Private Sub resetFIskaltrust() + + tagesabschlussIsSet = False + monatsabschlussIsSet = False + jahresabschlussIsSet = False + NULLBelegIsCreated = True + InitialStartIsCreated = True + OutOfOrderIsCreated = False + TSEIsOnline = False + + End Sub + Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click + searchdate = searchdate.AddMonths(1) + initDate() + End Sub + Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click + searchdate = searchdate.AddMonths(-1) + initDate() + End Sub + Sub initDate() + lblMonatSuche.Text = searchdate.ToString("MMMM yyyy") + datVon.Value = searchdate + datBis.Value = searchdate.AddMonths(1).AddDays(-1) + End Sub + Private Sub datVon_ValueChanged(sender As Object, e As EventArgs) Handles datVon.ValueChanged, datBis.ValueChanged + initDgv() + End Sub + + Dim searchdate As Date = CDate("01." & Now.Month & "." & Now.Year) + Sub initDgv(Optional isFiskaltrust As Boolean = False) + + With DataGridView2 + .Columns.Clear() + If DGV = "B" Then + btnDGVBelege.BackColor = Color.SteelBlue + btnDGVBelege.ForeColor = Color.White + btnDGVKassenbuch.BackColor = Color.Transparent + btnDGVKassenbuch.ForeColor = Color.DimGray + + Dim benutzerTMP = "" + Dim benutzerBezTMP = "" + Dim lgTxt = "" + If master_Kasse Then + benutzerTMP = " AND Benutzer IN (SELECT ID FROM [Personal] WHERE [Standard_RKSV_KasseId]='" & PERSONAL.cRKSV_Kasse.rksv_id & "') " + benutzerBezTMP = " , (SELECT cast(ID as varchar(3))+' '+Name FROM [Personal] WHERE [ID]=b.Benutzer) as BenutzerBez " + Else + benutzerTMP = " And Benutzer=" & PERSONAL.ID & "" + End If + If PERSONAL.isLeihgeldkasse Then + lgTxt = ",[Fahrer],[Passnummer] " + End If + + .SET_SQL("SELECT b.rksv_BelegId, b.BelegDat, CASE WHEN b.Belegart=1 THEN 'E' ELSE 'A' END as Belegart,CASE WHEN b.Beleg_TYP='E' THEN rksv_umsatz ELSE (SELECT sum( betrag ) FROM tblEABelegposition WHERE (b.BelegNr = tblEABelegposition.BelegNr) AND (b.BelegDat = tblEABelegposition.BelegDat) AND (b.Benutzer = tblEABelegposition.Benutzer) AND (b.Niederlassung = tblEABelegposition.Niederlassung) AND (b.Mandant = tblEABelegposition.Mandant ) ) END as Betrag, b.Ordnungsbegriff, b.BelegNr, b.Frachtführer, " & + " CASE WHEN b.storniert=1 THEN 'JA' ELSE '' END as [storniert], b.Beleg_TYP ,b.Benutzer " & benutzerBezTMP & lgTxt & ", b.ECZahlungsPerAPI as EC,b.ECZahlungsNr as ECNr, mit_username as kassiert" & + " FROM tblEABelegnummer as b LEFT JOIN " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & " .[ADMIN].[dbo].[tblMitarbeiter] on durchfuehrender_Benutzer = mit_id WHERE b.Mandant='" & PERSONAL.Mandant & "' AND b.Niederlassung='" & PERSONAL.Niederlassung & "' " & benutzerTMP & " AND BelegDat BETWEEN '" & datVon.Value.ToShortDateString & "' AND '" & datBis.Value.ToShortDateString & "' " & + " ORDER BY b.rksv_BelegId DESC, b.[upsize_ts] desc;", "FMZOLL") + ' .DataSource = SQL.loadDgvBySql("SELECT b.rksv_BelegId, b.BelegDat, CASE WHEN b.Belegart=1 THEN 'E' ELSE 'A' END as Belegart,CASE WHEN b.Beleg_TYP='E' THEN rksv_umsatz ELSE (SELECT sum( betrag ) FROM tblEABelegposition WHERE (b.BelegNr = tblEABelegposition.BelegNr) AND (b.BelegDat = tblEABelegposition.BelegDat) AND (b.Benutzer = tblEABelegposition.Benutzer) AND (b.Niederlassung = tblEABelegposition.Niederlassung) AND (b.Mandant = tblEABelegposition.Mandant ) ) END as Betrag, b.Ordnungsbegriff, b.BelegNr, b.Frachtführer, " & + ' " CASE WHEN b.storniert=1 THEN 'JA' ELSE '' END as [storniert], b.Beleg_TYP ,b.Benutzer " & benutzerBezTMP & + ' " FROM tblEABelegnummer as b WHERE b.Mandant='" & PERSONAL.Mandant & "' AND b.Niederlassung='" & PERSONAL.Niederlassung & "' " & benutzerTMP & " AND BelegDat BETWEEN '" & datVon.Value.ToShortDateString & "' AND '" & datBis.Value.ToShortDateString & "' " & + ' " ORDER BY b.rksv_BelegId DESC;", "FMZOLL") + .LOAD() + + If .Rows.Count = 0 Then Exit Sub + + .Columns("Betrag").DefaultCellStyle.Format = "C" + .Columns("Betrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight + .Columns("Ordnungsbegriff").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill + + .Columns("rksv_BelegId").HeaderText = "Beleg-Nr" + .Columns("rksv_BelegId").Width = 55 + .Columns("rksv_BelegId").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter + .Columns("BelegDat").HeaderText = "Datum" + .Columns("BelegDat").Width = 65 + .Columns("BelegNr").HeaderText = "KB-Bel.Nr" + .Columns("BelegNr").Width = 55 + .Columns("BelegNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter + .Columns("Belegart").HeaderText = "Art" + .Columns("Belegart").Width = 30 + .Columns("Belegart").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter + .Columns("Ordnungsbegriff").Width = 160 + .Columns("Frachtführer").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill + .Columns("Beleg_TYP").Visible = False + .Columns("storniert").HeaderText = "Storn." + .Columns("storniert").Width = 45 + .Columns("EC").Width = 45 + .Columns("ECNr").Width = 60 + .Columns("Benutzer").Visible = False + '.Columns("kassiert").Visible = False + + If PERSONAL.isLeihgeldkasse Then + .Columns("Fahrer").Visible = False + .Columns("Passnummer").Visible = False + End If + + If .Columns.Contains("FT_MissingSignature") Then + .Columns("FT_MissingSignature").HeaderText = "fehl Sig." + .Columns("FT_MissingSignature").Width = 45 + For Each r As DataGridViewRow In .Rows + If Not IsDBNull(r.Cells("FT_MissingSignature").Value) AndAlso r.Cells("FT_MissingSignature").Value Then + r.DefaultCellStyle.ForeColor = Color.Red + End If + Next + End If + + If master_Kasse Then + .Columns("BenutzerBez").HeaderText = "Benutzer" 'gibts bei bei master + .Columns("BenutzerBez").HeaderText = "Benutzer" 'gibts bei bei master + End If + + + For Each r As DataGridViewRow In .Rows + If r.Cells("storniert").Value = "JA" Then + r.DefaultCellStyle.ForeColor = Color.Red + End If + Next + + ElseIf DGV = "KB" Then + btnDGVKassenbuch.BackColor = Color.SteelBlue + btnDGVKassenbuch.ForeColor = Color.White + btnDGVBelege.BackColor = Color.Transparent + btnDGVBelege.ForeColor = Color.DimGray + + Dim benutzerTMP = "" + If master_Kasse Then + benutzerTMP = " AND tblKassenbuch.Benutzer IN (SELECT ID FROM [Personal] WHERE [Standard_RKSV_KasseId]='" & PERSONAL.cRKSV_Kasse.rksv_id & "') " + Else + benutzerTMP = " And tblKassenbuch.Benutzer=" & PERSONAL.ID & "" + + End If + + + .SET_SQL("SELECT [JournalNr],[BelegDat],[BelegNr],CASE WHEN Belegart=1 THEN 'E' ELSE 'A' END as Belegart,[Buchungstext],tblKassenbuch.Finanzwege as FW ,([Betrag]+[Steuerbetrag]) as Brutto,[Konto],[Soll],[Haben],Steuerbetrag as Steuer,tblKassenbuch.Benutzer, mit_username as kassiert " & + " FROM Personal INNER JOIN tblKassenbuch ON Personal.ID = tblKassenbuch.Benutzer LEFT JOIN " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & " .[ADMIN].[dbo].[tblMitarbeiter] on durchfuehrender_Benutzer = mit_id" & + " WHERE tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' AND tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' " & + " " & benutzerTMP & " AND BelegDat BETWEEN '" & datVon.Value.ToShortDateString & "' AND '" & datBis.Value.ToShortDateString & "' ORDER BY JournalNr DESC", "FMZOLL") + + ' .DataSource = SQL.loadDgvBySql("SELECT [JournalNr],[BelegDat],[BelegNr],CASE WHEN Belegart=1 THEN 'E' ELSE 'A' END as Belegart,[Buchungstext],([Betrag]+[Steuerbetrag]) as Brutto,[Konto],[Soll],[Haben],Steuerbetrag as Steuer,tblKassenbuch.Benutzer " & + ' " FROM Personal INNER JOIN tblKassenbuch ON Personal.ID = tblKassenbuch.Benutzer " & + ' " WHERE tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' AND tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' " & + ' " " & benutzerTMP & " AND BelegDat BETWEEN '" & datVon.Value.ToShortDateString & "' AND '" & datBis.Value.ToShortDateString & "' ORDER BY JournalNr DESC", "FMZOLL") + .LOAD() + + If .Rows.Count = 0 Then Exit Sub + + .Columns("JournalNr").Width = 55 + .Columns("JournalNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter + .Columns("Brutto").DefaultCellStyle.Format = "C" + .Columns("Brutto").Width = 80 + .Columns("Brutto").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight + .Columns("BelegDat").HeaderText = "Datum" + .Columns("BelegDat").Width = 65 + .Columns("BelegNr").HeaderText = "KB-Bel.Nr" + .Columns("BelegNr").Width = 55 + .Columns("BelegNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter + .Columns("Belegart").HeaderText = "Art" + .Columns("Belegart").Width = 30 + .Columns("Belegart").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter + .Columns("Buchungstext").MinimumWidth = 60 + .Columns("Buchungstext").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill + .Columns("FW").Width = 45 + .Columns("Konto").Width = 40 + .Columns("Soll").Width = 80 + .Columns("Soll").DefaultCellStyle.Format = "C" + .Columns("Haben").Width = 80 + .Columns("Haben").DefaultCellStyle.Format = "C" + .Columns("Steuer").Width = 60 + .Columns("Steuer").DefaultCellStyle.Format = "C" + .Columns("Benutzer").Visible = False + '.Columns("kassiert").Visible = False + + End If + End With + End Sub + + Private Sub DataGridView2_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView2.CellDoubleClick + Try + + If e.RowIndex >= 0 Then + Dim r As DataGridViewRow = DataGridView2.Rows(e.RowIndex) + + Dim PersonalTmp = PERSONAL + If r.Cells("Benutzer").Value <> PersonalTmp.ID Then PersonalTmp = FMZOLL_SQL.getPersonalById(r.Cells("Benutzer").Value) + + Dim B As New EABeleg("LOAD", PersonalTmp.Mandant, PersonalTmp.Niederlassung, PersonalTmp.ID, r.Cells("BelegNr").Value, r.Cells("BelegDat").Value) + openBELEG(B, PersonalTmp) + + End If + + Catch ex As Exception + + End Try + End Sub + + Sub openBELEG(B As EABeleg, PERSONAL As cPersonal) + If B Is Nothing Then Exit Sub + Select Case B.Beleg_TYP + Case "0" + MsgBox("Ein NULL-Beleg ist nur einmal verfügbar.") + Case "E" + 'If B.storniert Then MsgBox("Der Beleg wurde bereits storiniert!") : Exit Sub + Dim frmBeleg As New frmFremdbeleg(PERSONAL, PERSONAL.Mandant, PERSONAL.Niederlassung, B.Benutzer, B.BelegNr, B.BelegDat) + frmBeleg.ShowDialog(Me) + Case "L" + If B.storniert Then MsgBox("Der Beleg wurde bereits storiniert!") : Exit Sub + Dim frmBeleg As New frmNacherfassungLeihgeld(PERSONAL, PERSONAL_LG, PERSONAL.Mandant, PERSONAL.Niederlassung, B.Benutzer, B.BelegNr, B.BelegDat) + frmBeleg.ShowDialog(Me) + Case Else + Dim frmBeleg As New frmBelegNeu(PERSONAL, PERSONAL_LG, PERSONAL.Mandant, PERSONAL.Niederlassung, B.Benutzer, B.BelegNr, B.BelegDat) + frmBeleg.ShowDialog(Me) + End Select + + init() + + ' End If + End Sub + Private Sub DataGridView1_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick + 'OLD!!!!!!!!!!!!!!!!!!!!!!! + If e.RowIndex >= 0 Then + Dim r As DataGridViewRow = DataGridView1.Rows(e.RowIndex) + Dim frmBeleg As New frmBelegNeu(PERSONAL, PERSONAL_LG, PERSONAL.Mandant, PERSONAL.Niederlassung, PERSONAL.ID, r.Cells("BelegNr").Value, r.Cells("BelegDat").Value) + frmBeleg.ShowDialog(Me) + init() + End If + End Sub + + Private Sub FlatButton7_Click(sender As Object, e As EventArgs) Handles FlatButton7.Click + init() + End Sub + + Private Sub FlatButton6_Click(sender As Object, e As EventArgs) Handles FlatButton6.Click + + Dim print As New frmPrintLayout + print.Text = "Kassenbuch" + + Dim rpt As New rptKassenbuchBuchhaltung + + Dim frmVonBis As New frmKasseBerichtVonBis + If frmVonBis.ShowDialog(Me) <> Windows.Forms.DialogResult.OK Then + Exit Sub + End If + Dim von As Date = frmVonBis.datVon.Value.ToShortDateString + Dim bis As Date = frmVonBis.datBis.Value.ToShortDateString + + 'Dim von As Date = CDate("01.01.2016") + ' Dim bis As Date = CDate("31.01.2016") + + ' rpt.DataSource = SQL.loadDgvBySql("SELECT MIN(JournalNr)as JournalNr, MAX(BelegDat)as BelegDat,MAX(Buchungsdatum)as Buchungsdatum,MAX(belegNr) as BelegNr, (SELECT top 1 t.Buchungstext FROM [tblKassenbuch] as t WHERE journalnr=t.journalnr) as Buchungstext,(SELECT top 1 t.konto FROM [tblKassenbuch] as t WHERE journalnr=t.journalnr) as Konto, SUM(Soll) as Soll,SUM(haben) as Haben " & + ' "FROM [tblKassenbuch] WHERE CAST(Buchungsdatum as date) BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' And Benutzer=" & PERSONAL.ID & " group by BelegNr", "FMZOLL") 'cProgramFunctions.dgridViewTods(dgvBelegPos) + Dim where = "" + + If frmVonBis.cbxRKSV_only.Checked Then + where = " AND [rksv_id] IS NOT NULL AND [rksv_BelegId] IS NOT NULL AND rksv_aktiv=1 " + + End If + Dim sqlStr = "" + ' sqlStr = sqlStr = "SELECT JournalNr, BelegDat,Buchungstext, Buchungsdatum,BelegNr,rksv_BelegId, Soll, Haben " & + ' "FROM [tblKassenbuch] WHERE tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' and tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' AND CAST(Buchungsdatum as date) BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' And tblKassenbuch.Benutzer=" & PERSONAL.ID & " And Konto=" & PERSONAL.KassenbuchNr & " " & where & " ORDER BY Buchungsdatum, JournalNr " + + If master_Kasse Then + rpt.lblSachbearbeiter.Text = "ADMIN" + rpt.lblKassenbuchNr.Text = "-" + rpt.lblMandantNiederlassung.Text = "-" + sqlStr = "SELECT JournalNr, BelegDat,Buchungstext, Finanzwege, Buchungsdatum,BelegNr,rksv_BelegId, Soll, Haben,tblKassenbuch.Benutzer as Benutzer,tblKassenbuch.Konto as Konto " & + "FROM [tblKassenbuch] INNER JOIN Personal ON Personal.ID = tblKassenbuch.Benutzer WHERE tblKassenbuch.Benutzer IN (SELECT ID FROM [Personal] WHERE [Standard_RKSV_KasseId]='" & PERSONAL.cRKSV_Kasse.rksv_id & "') AND Personal.[KassenbuchNr]=tblKassenbuch.Konto AND tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' and tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' AND CAST(Buchungsdatum as date) BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' " & where & " ORDER BY Buchungsdatum, JournalNr " + Else + rpt.lblSachbearbeiter.Text = PERSONAL.Name + rpt.lblKassenbuchNr.Text = PERSONAL.KassenbuchNr + rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung + + sqlStr = "SELECT JournalNr, BelegDat,Buchungstext, Finanzwege, Buchungsdatum,BelegNr,rksv_BelegId, Soll, Haben,tblKassenbuch.Benutzer as Benutzer,tblKassenbuch.Konto as Konto " & + "FROM [tblKassenbuch] WHERE tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' and tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' AND CAST(Buchungsdatum as date) BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' And tblKassenbuch.Benutzer=" & PERSONAL.ID & " And Konto=" & PERSONAL.KassenbuchNr & " " & where & " ORDER BY Buchungsdatum, JournalNr " + End If + rpt.DataSource = SQL.loadDgvBySql(sqlStr, "FMZOLL") 'cProgramFunctions.dgridViewTods(dgvBelegPos) + + rpt.GroupHeader1.DataField = "Buchungsdatum" 'Gruppierung + + If rpt.DataSource.rows.count = 0 Then + rpt.Dispose() : print.Dispose() + MsgBox("Keine Daten vorhanden!") + Exit Sub + End If + + Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA + Case "IMEX" : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Label28.Text = "IMEX Customs Service GmbH" + Case "ATILLA" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "ATILLA Spedition" + Case Else + End Select + + Dim GESCHAEFTSJAHR = cRKSV.getGJ_FIRMA(von, RKSV.rksv_firma) ' iif (von.Month = 1, von.Year - 1, von.Year) + Dim sum = 0 + rpt.lblUeberschrift.Text = "Kassenbuch " & von.ToShortDateString & " bis " & bis.ToShortDateString + rpt.lblGeschaeftsjahr.Text = GESCHAEFTSJAHR + 'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung + + 'Dim cnt As Integer = 0 + rpt.lblDat.Text = Now.ToLongDateString + Dim sumSoll As Double = 0 + Dim sumHaben As Double = 0 + Dim gesSumSoll As Double = 0 + Dim gesSumHaben As Double = 0 + Dim datum = "" + AddHandler rpt.Detail.Format, Sub() + ' Dim dt As DataTable = SQL.loadDgvBySql("SELECT CASE WHEN COUNT(distinct(konto))>1 THEN 'div.' ELSE CONVERT(VARCHAR(4),MAX(konto)) END as Konto, SUM(soll)as Soll, SUM(haben) as Haben FROM [tblKassenbuch] " & + ' " WHERE Konto<>" & PERSONAL.KassenbuchNr & " AND Mandant='" & PERSONAL.Mandant & "' and Niederlassung='" & PERSONAL.Niederlassung & "'and Benutzer=" & PERSONAL.ID & " and Geschäftsjahr=" & GESCHAEFTSJAHR & " and BelegNr='" & rpt.Fields.Item("BelegNr").Value() & "' ", "FMZOLL") + + ' Dim soll = dt.Rows(0)("Soll") + ' Dim haben = dt.Rows(0)("Haben") + 'Dim konto = dt.Rows(0)("Konto") + + rpt.lblJournalNr.Text = rpt.Fields.Item("JournalNr").Value() + Dim BuDat As Date = CDate(rpt.Fields.Item("Buchungsdatum").Value()).ToShortDateString + rpt.lblBelegDat.Text = BuDat + Dim GESCHAEFTSJAHR_TMP = cRKSV.getGJ_FIRMA(BuDat, RKSV.rksv_firma) ''IIf(BuDat.Month = 1, BuDat.Year - 1, BuDat.Year) + rpt.lblBelegNr.Text = IIf(rpt.Fields.Item("rksv_BelegId").Value Is DBNull.Value, "(" & rpt.Fields.Item("BelegNr").Value & ")", rpt.Fields.Item("rksv_BelegId").Value()) + rpt.lblBuchungstext.Text = rpt.Fields.Item("Buchungstext").Value() + rpt.lblFinanzwege.Text = IIf(rpt.Fields.Item("Finanzwege").Value() Is DBNull.Value, "", rpt.Fields.Item("Finanzwege").Value()) + ' rpt.lblKonto.Text = SQL.getValueTxtBySql("SELECT CASE WHEN COUNT(distinct(konto))>1 THEN 'div.' ELSE CONVERT(VARCHAR(4),MAX(konto)) END as Konto, SUM(soll)as Soll, SUM(haben) as Haben FROM [tblKassenbuch] " & + ' " WHERE Konto<>" & PERSONAL.KassenbuchNr & " AND Mandant='" & PERSONAL.Mandant & "' and Niederlassung='" & PERSONAL.Niederlassung & "' " & benutzerTMP & " and Geschäftsjahr=" & GESCHAEFTSJAHR & " and BelegNr='" & rpt.Fields.Item("BelegNr").Value() & "' ", "FMZOLL") + rpt.lblKonto.Text = SQL.getValueTxtBySql("SELECT CASE WHEN COUNT(distinct(konto))>1 THEN 'div.' ELSE CONVERT(VARCHAR(4),MAX(konto)) END as Konto, SUM(soll)as Soll, SUM(haben) as Haben FROM [tblKassenbuch] " & + " WHERE Konto<>" & PERSONAL.KassenbuchNr & " AND Mandant='" & PERSONAL.Mandant & "' and Niederlassung='" & PERSONAL.Niederlassung & "' And Benutzer=" & rpt.Fields.Item("Benutzer").Value & " and Geschäftsjahr=" & GESCHAEFTSJAHR_TMP & " and BelegNr='" & rpt.Fields.Item("BelegNr").Value() & "' ", "FMZOLL") + + Dim soll = CDbl(rpt.Fields.Item("Soll").Value()) + Dim haben = CDbl(rpt.Fields.Item("Haben").Value()) + + rpt.lblSoll.Text = IIf(soll <> 0, soll.ToString("C"), "") + rpt.lblHaben.Text = IIf(haben <> 0, haben.ToString("C"), "") + ' rpt.lblSaldo.Text = CDbl(SQL.getValueTxtBySql("SELECT isnull(sum([Soll]-[Haben]),0) AS Saldo FROM tblKassenbuch " & + ' " WHERE Mandant='" & PERSONAL.Mandant & "' and Niederlassung='" & PERSONAL.Niederlassung & "' " & benutzerTMP & " and Geschäftsjahr=" & GESCHAEFTSJAHR & " AND tblKassenbuch.Konto='" & PERSONAL.KassenbuchNr & "' " & + ' " and JournalNr<='" & rpt.Fields.Item("JournalNr").Value() & "' ", "FMZOLL")).ToString("C") + + rpt.lblSaldo.Text = CDbl(SQL.getValueTxtBySql("SELECT isnull(sum([Soll]-[Haben]),0) AS Saldo FROM tblKassenbuch " & + " WHERE Mandant='" & PERSONAL.Mandant & "' and Niederlassung='" & PERSONAL.Niederlassung & "' And Benutzer=" & rpt.Fields.Item("Benutzer").Value & " and Geschäftsjahr=" & GESCHAEFTSJAHR_TMP & " AND tblKassenbuch.Konto='" & rpt.Fields.Item("Konto").Value & "' " & + " and JournalNr<='" & rpt.Fields.Item("JournalNr").Value() & "' ", "FMZOLL")).ToString("C") + sumSoll += CDbl(rpt.Fields.Item("Soll").Value()) + sumHaben += CDbl(rpt.Fields.Item("Haben").Value()) + gesSumSoll += CDbl(rpt.Fields.Item("Soll").Value()) + gesSumHaben += CDbl(rpt.Fields.Item("Haben").Value()) + ' rpt.lblLeistungsNr.Text = rpt.Fields.Item("clmnAnzahl").Value() + ' rpt.lblEinzelpreis.Text = CDbl(rpt.Fields.Item("clmnPreis").Value()).ToString("C") + ' sum += rpt.Fields.Item("clmnBetrag").Value() + datum = CDate(rpt.Fields.Item("Buchungsdatum").Value()).ToShortDateString ' Im Footer wird bereits das nächste Datumgenommen, darum hier befüllt + End Sub + AddHandler rpt.GroupHeader1.Format, Sub() + sumSoll = 0 + sumHaben = 0 + End Sub + AddHandler rpt.GroupFooter1.Format, Sub() + rpt.lblSummeBuchungsDat.Text = "Summe Buchungsdatum " & datum & ":" + rpt.lblSollSumme.Text = sumSoll.ToString("C") + rpt.lblHabenSumme.Text = sumHaben.ToString("C") + ' rpt.lblEinzelpreis.Text = CDbl(rpt.Fields.Item("clmnPreis").Value()).ToString("C") + ' sum += rpt.Fields.Item("clmnBetrag").Value() + End Sub + AddHandler rpt.ReportFooter1.Format, Sub() + rpt.lblSollGesamtSumme.Text = gesSumSoll.ToString("C") + rpt.lblHabenGesamtSumme.Text = gesSumHaben.ToString("C") + End Sub + + print.Viewer.LoadDocument(rpt) + print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous + print.Show() + End Sub + + Private Sub FlatButton2_Click(sender As Object, e As EventArgs) Handles FlatButton2.Click + + Dim print As New frmPrintLayout + print.Text = "Kassenbuch" + Dim rpt As New rptKassenbuchBuchhaltungDetails + + Dim frmVonBis As New frmKasseBerichtVonBis + If frmVonBis.ShowDialog(Me) <> Windows.Forms.DialogResult.OK Then + Exit Sub + End If + Dim von As Date = frmVonBis.datVon.Value.ToShortDateString + Dim bis As Date = frmVonBis.datBis.Value.ToShortDateString + Dim GESCHAEFTSJAHR = cRKSV.getGJ_FIRMA(Now, RKSV.rksv_firma) ' IIf(von.Month = 1, von.Year - 1, von.Year) + + ' rpt.DataSource = SQL.loadDgvBySql("SELECT MIN(JournalNr)as JournalNr, MAX(BelegDat)as BelegDat,MAX(Buchungsdatum)as Buchungsdatum,MAX(belegNr) as BelegNr, (SELECT top 1 t.Buchungstext FROM [tblKassenbuch] as t WHERE journalnr=t.journalnr) as Buchungstext,(SELECT top 1 t.konto FROM [tblKassenbuch] as t WHERE journalnr=t.journalnr) as Konto, SUM(Soll) as Soll,SUM(haben) as Haben " & + ' "FROM [tblKassenbuch] WHERE CAST(Buchungsdatum as date) BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' And Benutzer=" & PERSONAL.ID & " group by BelegNr", "FMZOLL") 'cProgramFunctions.dgridViewTods(dgvBelegPos) + Dim where = "" + Dim benutzerTMP = "" + If master_Kasse Then + rpt.lblSachbearbeiter.Text = "ADMIN" + rpt.lblKassenbuchNr.Text = "-" + rpt.lblMandantNiederlassung.Text = "-" + benutzerTMP = " AND tblKassenbuch.Benutzer IN (SELECT ID FROM [Personal] WHERE [Standard_RKSV_KasseId]='" & PERSONAL.cRKSV_Kasse.rksv_id & "') " + Else + rpt.lblSachbearbeiter.Text = PERSONAL.Name + rpt.lblKassenbuchNr.Text = PERSONAL.KassenbuchNr + rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung + benutzerTMP = " And Benutzer=" & PERSONAL.ID & "" + End If + If frmVonBis.cbxRKSV_only.Checked Then + where = " AND [rksv_id] IS NOT NULL AND [rksv_BelegId] IS NOT NULL AND rksv_aktiv=1 " + + End If + rpt.DataSource = SQL.loadDgvBySql("SELECT JournalNr, BelegDat,Buchungstext,Finanzwege,Konto, Buchungsdatum,BelegNr,rksv_BelegId, Soll, Haben,isnull(Bez,'') as Bez,CASE WHEN Steuertyp=1 THEN Steuerbetrag Else 0 END as Umsatzsteuer,CASE WHEN Steuertyp=2 THEN Steuerbetrag Else 0 END as Vorsteuer " & + " FROM [tblKassenbuch] LEFT JOIN [tblSteuersätze] ON [Nr]=Steuer " & + " WHERE tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' and tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' AND CAST(Buchungsdatum as date) BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' " & benutzerTMP & " " & where & " ORDER BY Buchungsdatum, JournalNr ", "FMZOLL") 'cProgramFunctions.dgridViewTods(dgvBelegPos) + + rpt.GroupHeader1.DataField = "Buchungsdatum" 'Gruppierung + + If rpt.DataSource.rows.count = 0 Then + rpt.Dispose() : print.Dispose() + MsgBox("Keine Daten vorhanden!") + Exit Sub + End If + + Dim sum = 0 + rpt.lblUeberschrift.Text = "Buchungsbericht " & von.ToShortDateString & " bis " & bis.ToShortDateString + 'rpt.lblSachbearbeiter.Text = PERSONAL.Name + ' rpt.lblKassenbuchNr.Text = PERSONAL.KassenbuchNr + ' rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung + rpt.lblGeschaeftsjahr.Text = GESCHAEFTSJAHR + + Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA + Case "IMEX" : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Label28.Text = "IMEX Customs Service GmbH" + Case "ATILLA" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "ATILLA Spedition" + Case Else + End Select + + 'Dim cnt As Integer = 0 + rpt.lblDat.Text = Now.ToLongDateString + Dim sumSoll As Double = 0 + Dim sumHaben As Double = 0 + Dim gesSumSoll As Double = 0 + Dim gesSumHaben As Double = 0 + + Dim sumUSt As Double = 0 + Dim sumVorSt As Double = 0 + Dim gesSumUSt As Double = 0 + Dim gesSumVorSt As Double = 0 + Dim datum = "" + AddHandler rpt.Detail.Format, Sub() + ' Dim dt As DataTable = SQL.loadDgvBySql("SELECT CASE WHEN COUNT(distinct(konto))>1 THEN 'div.' ELSE CONVERT(VARCHAR(4),MAX(konto)) END as Konto, SUM(soll)as Soll, SUM(haben) as Haben FROM [tblKassenbuch] " & + ' " WHERE Konto<>" & PERSONAL.KassenbuchNr & " AND Mandant='" & PERSONAL.Mandant & "' and Niederlassung='" & PERSONAL.Niederlassung & "'and Benutzer=" & PERSONAL.ID & " and Geschäftsjahr=" & GESCHAEFTSJAHR & " and BelegNr='" & rpt.Fields.Item("BelegNr").Value() & "' ", "FMZOLL") + + ' Dim soll = dt.Rows(0)("Soll") + ' Dim haben = dt.Rows(0)("Haben") + 'Dim konto = dt.Rows(0)("Konto") + + rpt.lblJournalNr.Text = rpt.Fields.Item("JournalNr").Value() + Dim BuDat As Date = CDate(rpt.Fields.Item("Buchungsdatum").Value()).ToShortDateString + rpt.lblBelegDat.Text = BuDat + Dim GESCHAEFTSJAHR_TMP = cRKSV.getGJ_FIRMA(BuDat, RKSV.rksv_firma) 'IIf(BuDat.Month = 1, BuDat.Year - 1, BuDat.Year) + rpt.lblBelegNr.Text = IIf(rpt.Fields.Item("rksv_BelegId").Value Is DBNull.Value, "(" & rpt.Fields.Item("BelegNr").Value & ")", rpt.Fields.Item("rksv_BelegId").Value()) + rpt.lblBuchungstext.Text = rpt.Fields.Item("Buchungstext").Value() + rpt.lblFinanzwege.Text = IIf(rpt.Fields.Item("Finanzwege").Value() Is DBNull.Value, "", rpt.Fields.Item("Finanzwege").Value()) + rpt.lblKonto.Text = rpt.Fields.Item("Konto").Value() + Dim soll = CDbl(rpt.Fields.Item("Soll").Value()) + Dim haben = CDbl(rpt.Fields.Item("Haben").Value()) + + rpt.lblSoll.Text = IIf(soll <> 0, soll.ToString("C"), "") + rpt.lblHaben.Text = IIf(haben <> 0, haben.ToString("C"), "") + rpt.lblSaldo.Text = CDbl(SQL.getValueTxtBySql("SELECT isnull(sum([Soll]-[Haben]),0) AS Saldo FROM tblKassenbuch " & + " WHERE Mandant='" & PERSONAL.Mandant & "' and Niederlassung='" & PERSONAL.Niederlassung & "' " & benutzerTMP & " and Geschäftsjahr=" & GESCHAEFTSJAHR_TMP & " AND tblKassenbuch.Konto='" & rpt.Fields.Item("Konto").Value() & "' " & + " and JournalNr<='" & rpt.Fields.Item("JournalNr").Value() & "' ", "FMZOLL")).ToString("C") + + ' If Not rpt.Fields.Item("Bez").Value() Is DBNull.Value Then + rpt.lblSteuer.Text = rpt.Fields.Item("Bez").Value() + ' End If + + Dim ust = CDbl(rpt.Fields.Item("Umsatzsteuer").Value()) + Dim vorst = CDbl(rpt.Fields.Item("Vorsteuer").Value()) + rpt.lblUSt.Text = IIf(ust <> 0, ust.ToString("C"), "") + rpt.lblVorst.Text = IIf(vorst <> 0, vorst.ToString("C"), "") + + sumSoll += soll + sumHaben += haben + gesSumSoll += soll + gesSumHaben += haben + + sumUSt += ust + sumVorSt += vorst + gesSumUSt += ust + gesSumVorSt += vorst + + datum = CDate(rpt.Fields.Item("Buchungsdatum").Value()).ToShortDateString ' Im Footer wird bereits das nächste Datumgenommen, darum hier befüllt + End Sub + AddHandler rpt.GroupHeader1.Format, Sub() + sumSoll = 0 + sumHaben = 0 + sumUSt = 0 + sumVorSt = 0 + End Sub + AddHandler rpt.GroupFooter1.Format, Sub() + rpt.lblSummeBuchungsDat.Text = "Summe Buchungsdatum " & datum & ":" + rpt.lblSollSumme.Text = sumSoll.ToString("C") + rpt.lblHabenSumme.Text = sumHaben.ToString("C") + rpt.lblUstSumme.Text = sumUSt.ToString("C") + rpt.lblVorstSumme.Text = sumVorSt.ToString("C") + + End Sub + AddHandler rpt.ReportFooter1.Format, Sub() + rpt.lblSollGesamtSumme.Text = gesSumSoll.ToString("C") + rpt.lblHabenGesamtSumme.Text = gesSumHaben.ToString("C") + rpt.lblUstGesamtSumme.Text = gesSumUSt.ToString("C") + rpt.lblVorStGesamtSumme.Text = gesSumVorSt.ToString("C") + End Sub + + print.Viewer.LoadDocument(rpt) + print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous + print.Show() + End Sub + + Private Sub FlatButton5_Click(sender As Object, e As EventArgs) Handles FlatButton5.Click + + Dim print As New frmPrintLayout + print.Text = "Kassenbuch" + Dim rpt As New rptKassenbuchKontenBericht + + rpt.PageSettings.PaperKind = GrapeCity.ActiveReports.Printing.PaperKind.A4 + + Dim frmVonBis As New frmKasseBerichtVonBis + If frmVonBis.ShowDialog(Me) <> Windows.Forms.DialogResult.OK Then + Exit Sub + End If + Dim von As Date = frmVonBis.datVon.Value.ToShortDateString + Dim bis As Date = frmVonBis.datBis.Value.ToShortDateString + Dim GESCHAEFTSJAHR = cRKSV.getGJ_FIRMA(von, RKSV.rksv_firma) ' IIf(von.Month = 1, von.Year - 1, von.Year) + + Dim where = "" + Dim benutzerTMP = "" + If master_Kasse Then + rpt.lblSachbearbeiter.Text = "ADMIN" + rpt.lblKassenbuchNr.Text = "-" + rpt.lblMandantNiederlassung.Text = "-" + benutzerTMP = " AND tblKassenbuch.Benutzer IN (SELECT ID FROM [Personal] WHERE [Standard_RKSV_KasseId]='" & PERSONAL.cRKSV_Kasse.rksv_id & "') " + Else + rpt.lblSachbearbeiter.Text = PERSONAL.Name + rpt.lblKassenbuchNr.Text = PERSONAL.KassenbuchNr + rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung + benutzerTMP = " And Benutzer=" & PERSONAL.ID & "" + End If + If frmVonBis.cbxRKSV_only.Checked Then + where = " AND tblKassenbuch.[rksv_id] IS NOT NULL AND tblKassenbuch.[rksv_BelegId] IS NOT NULL AND tblKassenbuch.rksv_aktiv=1 " + End If + + rpt.DataSource = SQL.loadDgvBySql(" SELECT MIN(tblKassenbuch.Konto) as Konto,isNull(MIN(tblKonto.Bez),'') as Bezeichnung, SUM(ISNULL(Haben,0)) AS Habenbetrag,SUM(ISNULL(Soll,0)) AS Sollbetrag, MIN(tblSteuersätze.Bez) as Steuer, SUM(CASE WHEN Steuertyp=1 THEN Steuerbetrag Else 0 END) as Umsatzsteuer,SUM(CASE WHEN Steuertyp=2 THEN Steuerbetrag Else 0 END) as Vorsteuer " & + " FROM tblKassenbuch LEFT JOIN tblKonto ON tblKassenbuch.Konto = tblKonto.KontoNr INNER JOIN tblSteuersätze ON tblKassenbuch.Steuer = tblSteuersätze.Nr INNER JOIN Personal ON tblKassenbuch.Benutzer = Personal.ID " & + " WHERE tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' and tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' AND tblKassenbuch.Konto<>[Personal].[KassenbuchNr] AND CAST(Buchungsdatum as date) BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' " & benutzerTMP & " " & where & " GROUP BY Konto ORDER BY Konto ", "FMZOLL") 'cProgramFunctions.dgridViewTods(dgvBelegPos) + + + If rpt.DataSource.rows.count = 0 Then + rpt.Dispose() : print.Dispose() + MsgBox("Keine Daten vorhanden!") + Exit Sub + End If + + Dim sum = 0 + rpt.lblUeberschrift.Text = "Summen-Bericht " & von.ToShortDateString & " bis " & bis.ToShortDateString + 'rpt.lblSachbearbeiter.Text = PERSONAL.Name + 'rpt.lblKassenbuchNr.Text = PERSONAL.KassenbuchNr + rpt.lblGeschaeftsjahr.Text = GESCHAEFTSJAHR + 'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung + + Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA + Case "IMEX" : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Label28.Text = "IMEX Customs Service GmbH" + Case "ATILLA" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "ATILLA Spedition" + Case Else + End Select + + 'Dim cnt As Integer = 0 + rpt.lblDat.Text = Now.ToLongDateString + Dim gesSumSoll As Double = 0 + Dim gesSumHaben As Double = 0 + + Dim gesSumUSt As Double = 0 + Dim gesSumVorSt As Double = 0 + Dim datum = "" + AddHandler rpt.Detail.Format, Sub() + rpt.lblBuchungstext.Text = If(rpt.Fields.Item("Bezeichnung") IsNot Nothing, If(rpt.Fields.Item("Bezeichnung").Value(), ""), "") + rpt.lblKonto.Text = rpt.Fields.Item("Konto").Value() + Dim soll = CDbl(rpt.Fields.Item("Sollbetrag").Value()) + Dim haben = CDbl(rpt.Fields.Item("Habenbetrag").Value()) + + rpt.lblSollbetrag.Text = IIf(soll <> 0, soll.ToString("C"), "") + rpt.lblHabenbetrag.Text = IIf(haben <> 0, haben.ToString("C"), "") + + rpt.lblSteuer.Text = rpt.Fields.Item("Steuer").Value() + + Dim ust = CDbl(rpt.Fields.Item("Umsatzsteuer").Value()) + Dim vorst = CDbl(rpt.Fields.Item("Vorsteuer").Value()) + rpt.lblUmsatzsteuer.Text = IIf(ust <> 0, ust.ToString("C"), "") + rpt.lblVorsteuer.Text = IIf(vorst <> 0, vorst.ToString("C"), "") + + gesSumSoll += soll + gesSumHaben += haben + + gesSumUSt += ust + gesSumVorSt += vorst + End Sub + + AddHandler rpt.ReportFooter1.Format, Sub() + rpt.lblSollGesamtSumme.Text = gesSumSoll.ToString("C") + rpt.lblHabenGesamtSumme.Text = gesSumHaben.ToString("C") + rpt.lblUmsatzsteuerGesamtsumme.Text = gesSumUSt.ToString("C") + rpt.lblVorsteuerGesamtsumme.Text = gesSumVorSt.ToString("C") + End Sub + + print.Viewer.LoadDocument(rpt) + print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous + print.Show() + End Sub + + + Private Sub FlatButton9_Click(sender As Object, e As EventArgs) Handles btnBelegAusgang.Click, btnBelegEingang.Click + If KennwortOK() Then + Dim frmFremdbeleg As New frmFremdbeleg + frmFremdbeleg.Art = IIf(sender Is btnBelegAusgang, 2, 1) + frmFremdbeleg.PERSONAL = PERSONAL + ' frmFremdbeleg.GESCHAEFTSJAHR = GESCHAEFTSJAHR + frmFremdbeleg.ShowDialog(Me) + init() + End If + End Sub + + + + + Private Async Function Button4_ClickAsync(sender As Object, e As EventArgs) As Task Handles Button4.Click + + + Dim KASSE As New cRKSV_Kasse(cboKassen._value) 'Laden der Kasse anhand der Auswahlbox + + If KASSE.rksv_FT_RestServiceURL <> "" Then + Dim client_FT As New cFiskaltrustClient(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country) + + 'hier noch eine Auwahlmöglichkeit bauen! + + Dim Journalid = 2 'ReceiptJournal + '4919338167972134914 -> DSFinV-K export + '4919338167972134915 -> TAR file export + '2 -> ReceiptJournal + + Dim result = Await client_FT.Journal(Journalid) + If result <> "" Then + client_FT.exportJournal(result) + End If + Else + + + + MsgBox("Leider noch nicht verfügbar") + + 'Dim client As RKSVWcfClient = New RKSVWcfClient() + 'client.Endpoint.Address = New System.ServiceModel.EndpointAddress("http://192.168.0.106:8733/Design_Time_Addresses/RKSVCompleteServer/Service1/?singleWsdl") + 'client.Open() + '' svcRKSV.DBUserCredentials m_credentials = new svcRKSV.DBUserCredentials(); + 'Dim credentials As New SDL.RKSVServer.DBUserCredentials + + 'credentials.Database = "RKSVWcfDB" + 'credentials.Server = "AVISO\SQLEXPRESS" + + 'Select Case cboKassen._value + ' Case "VERAG-SUB-KASSE-ZOLL" + ' credentials.Username = "Admin" + ' credentials.Password = "verag#2" + ' credentials.CashboxID = "VERAG-SUB-KASSE-ZOLL" + ' credentials.CompanyGUID = "9119d9ae-f549-4a0f-a50f-0500ec7ca059" + + ' Dim certificate = "" + ' Dim certificateChain = "" + ' Dim exportResult = "" + ' cRKSV.getDEP(certificate, exportResult) + + + + ' 'If (client.ExportJWS()) Then + ' ' Else + ' 'MessageBox.Show(answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + ' ' End If + ' Case "" + ' MsgBox("Keine Kasse gewählt!") + + 'End Select + + + End If + + + + + End Function + + + Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click + Dim f As New frmBelegFinden + f.Standard_RKSV_KasseId = PERSONAL.cRKSV_Kasse.rksv_id + If Not master_Kasse Then f.BenutzerId = PERSONAL.ID + + If f.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then + Select Case f.art + Case "NEU" + openBelegRKSVId(f.txtBelegNrNeu.Text) + Case "ALT" + Dim PERSONALTmp As cPersonal = FMZOLL_SQL.getPersonalById(f.cboBenutzer._value) + Dim B As New EABeleg("LOAD", PERSONALTmp.Mandant, PERSONALTmp.Niederlassung, PERSONALTmp.ID, f.txtBelegNrAlt.Text, f.dat.Value) + openBELEG(B, PERSONALTmp) + End Select + End If + End Sub + + Sub openBelegRKSVId(rksv_beleg_Id) + If rksv_beleg_Id <> "" Then + ' Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM [tblEABelegnummer] WHERE [Mandant]='" & PERSONAL.Mandant & "' AND Niederlassung='" & PERSONAL.Niederlassung & "' AND rksv_BelegId='" & rksv_beleg_Id & "'", "FMZOLL") + Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM [tblEABelegnummer] WHERE [rksv_id]='" & PERSONAL.cRKSV_KasseID & "' AND rksv_BelegId='" & rksv_beleg_Id & "'", "FMZOLL") + If dt.Rows.Count > 0 Then + ' If dt.Rows(0)("storniert") Then MsgBox("Der Beleg wurde bereits storiniert!") : Exit Sub + + Dim PERSONALTmp As cPersonal = FMZOLL_SQL.getPersonalById(dt.Rows(0)("Benutzer")) + + + 'Wenn LeigeldBeleg oder Kasse Ein/Ausgang, dann nur Ersteller! + Select Case dt.Rows(0)("Beleg_TYP") + Case "E", "L" + If master_Kasse = False Then + If dt.Rows(0)("Benutzer") <> PERSONAL.ID Then + MsgBox("Der Beleg wurde von einem anderen Beutzer erstellt. " & vbNewLine & " Bitte wenden Sie sich an: '" & PERSONALTmp.Name & "'.") : Exit Sub + End If + End If + End Select + + + Select Case dt.Rows(0)("Beleg_TYP") + Case "0" + MsgBox("Ein NULL-Beleg ist nur einmal verfügbar.") + Case "E" + If dt.Rows(0)("storniert") Then MsgBox("Der Beleg wurde bereits storiniert!") : Exit Sub + Dim frmBeleg As New frmFremdbeleg(PERSONALTmp, PERSONALTmp.Mandant, PERSONALTmp.Niederlassung, dt.Rows(0)("Benutzer"), dt.Rows(0)("BelegNr"), dt.Rows(0)("BelegDat")) + frmBeleg.ShowDialog(Me) + Case "L" + If dt.Rows(0)("storniert") Then MsgBox("Der Beleg wurde bereits storiniert!") : Exit Sub + Dim frmBeleg As New frmNacherfassungLeihgeld(PERSONALTmp, PERSONAL_LG, PERSONAL.Mandant, PERSONALTmp.Niederlassung, PERSONALTmp.ID, dt.Rows(0)("BelegNr"), dt.Rows(0)("BelegDat")) + frmBeleg.ShowDialog(Me) + Case Else + Dim frmBeleg As New frmBelegNeu(PERSONALTmp, PERSONAL_LG, PERSONALTmp.Mandant, PERSONALTmp.Niederlassung, dt.Rows(0)("Benutzer"), dt.Rows(0)("BelegNr"), dt.Rows(0)("BelegDat")) + frmBeleg.ShowDialog(Me) + End Select + + init() + Else + MsgBox("Keine Daten gefunden!") + End If + End If + End Sub + + Private Sub btnEinnahmeBeleg_Click(sender As Object, e As EventArgs) Handles btnDGVBelege.Click + DGV = "B" + initDgv() + End Sub + + Private Sub btnAusgabebeleg_Click(sender As Object, e As EventArgs) Handles btnDGVKassenbuch.Click + DGV = "KB" + initDgv() + End Sub + + Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click + Me.Cursor = Cursors.WaitCursor + cProgramFunctions.genExcelFromDGV_NEW(DataGridView2, True) + Me.Cursor = Cursors.Default + End Sub + + Private Sub frmKassenbuch_Shown(sender As Object, e As EventArgs) Handles Me.Shown + Me.Height = My.Computer.Screen.WorkingArea.Height + Me.Top = 0 + DataGridView2.ClearSelection() + If master_Kasse Then + btnBelegKunde.Enabled = False + btnBelegGSKunde.Enabled = False + btnBelegAusgang.Enabled = False + btnBelegEingang.Enabled = False + btnBelegLeihgeld.Enabled = False + End If + If PERSONAL.cRKSV_Kasse IsNot Nothing Then lblRKSV_KASSEN_Bez.Text = PERSONAL.cRKSV_Kasse.rksv_bez + If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then + 'btnBelegLeihgeld.Visible = False + btnBelegGSKunde.Visible = False + End If + If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then 'vorher IMEX + If Not PERSONAL.isLeihgeldkasse Then btnBelegLeihgeld.Visible = False + btnBelegGSKunde.Visible = False 'VERAG-MDM KAsse bei IMEX + If PERSONAL.cRKSV_Kasse.rksv_id = 1 Then + btnBelegGSKunde.Visible = True + btnBelegKunde.Enabled = False + End If + End If + + If PERSONAL.cRKSV_Kasse Is Nothing Then + MsgBox("Keine Kasse hinterlegt!") + Me.Close() + End If + If PERSONAL.cRKSV_Kasse.rksv_id = 5 Then + btnBelegKunde.Enabled = False + btnBelegGSKunde.Enabled = False + btnBelegLeihgeld.Enabled = False + End If + Me.BringToFront() + End Sub + + Private Sub Button6_Click(sender As Object, e As EventArgs) Handles btnStorno.Click + Dim f As New frmBelegFinden + f.Standard_RKSV_KasseId = PERSONAL.cRKSV_Kasse.rksv_id + If Not master_Kasse Then f.BenutzerId = PERSONAL.ID + + If master_Kasse Then + f.cbxStornoErzwingenAdmin.Visible = True + f.cbxStornoRKSV.Visible = True + f.cbxStornoBELEG.Visible = True + End If + Dim BELEGTmp As EABeleg = Nothing + If f.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then + Select Case f.art + Case "NEU" + Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM [tblEABelegnummer] WHERE rksv_BelegId='" & f.txtBelegNrNeu.Text & "' AND [rksv_id]='" & PERSONAL.cRKSV_Kasse.rksv_id & "' ", "FMZOLL") + If dt.Rows.Count > 0 Then + BELEGTmp = New EABeleg("LOAD", PERSONAL.Mandant, PERSONAL.Niederlassung, dt.Rows(0)("Benutzer"), dt.Rows(0)("BelegNr"), dt.Rows(0)("BelegDat")) + End If + Case "ALT" + Dim PERSONALTmp As cPersonal = FMZOLL_SQL.getPersonalById(f.cboBenutzer._value) + BELEGTmp = New EABeleg("LOAD", PERSONALTmp.Mandant, PERSONALTmp.Niederlassung, PERSONALTmp.ID, f.txtBelegNrAlt.Text, f.dat.Value) + End Select + If BELEGTmp IsNot Nothing Then + + If cRKSV.getGJ_FIRMA(Now, PERSONAL.cRKSV_Kasse.rksv_firma) <> cRKSV.getGJ_FIRMA(BELEGTmp.BelegDat, PERSONAL.cRKSV_Kasse.rksv_firma) Then + MsgBox("Das Geschäftsjahr im Beleg ist '" & cRKSV.getGJ_FIRMA(BELEGTmp.BelegDat, PERSONAL.cRKSV_Kasse.rksv_firma) & "', es können nur Belege im laufenden Geschäftsjahr gebucht werden. Aktion wird abgebrochen!") + Exit Sub + End If + + Dim zahlungsmittel = cRKSV.getZahlungsmittel(BELEGTmp, PERSONAL, PERSONAL.cRKSV_Kasse.rksv_firma) + + If zahlungsmittel = "EC" Then + + If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("POS_Zahlungen_stornieren", Me) Then + If Not vbYes = MsgBox("Dieser Beleg wurde mittels EC gezahlt, Zahlung muss ebenfalls manuell auf Terminal storniert werden!", vbYesNoCancel) Then + Exit Sub + End If + + Else + MsgBox("Der aktuelle Benutzer ist nicht berechtigt EC-Zahlungen zu stornieren!") + Exit Sub + End If + + End If + + + 'NUR KB + If f.cbxStornoRKSV.Checked Or f.cbxStornoBELEG.Checked Or f.cbxStornoErzwingenAdmin.Checked Then + Dim grund2 = InputBox("ADMIN-Storno (" & If(f.cbxStornoRKSV.Checked, " -RKSV-Tabelle- ", "") & If(f.cbxStornoBELEG.Checked, " -BELEG-Tabelle- ", "") & If(f.cbxStornoErzwingenAdmin.Checked, " -KASSENBUCH-Tabelle- ", "") & "):" & vbNewLine & vbNewLine & "Betrag: " & BELEGTmp.rksv_umsatz & vbNewLine & "Datum: " & BELEGTmp.BelegDat & vbNewLine & vbNewLine & "Bitte geben Sie einen Stornogrund an:" & vbNewLine, "Storno") + If grund2 = "" Then + MsgBox("Kein Stornotext, Aktion wird abgebrochen") + Exit Sub + End If + + Dim KASSETmp As New cRKSV_Kasse(BELEGTmp.rksv_id) + ' Dim OLD_rksv_BelegId = BELEGTmp.rksv_BelegId + If BELEGTmp.BelegDat < Now.AddMonths(-2) And Not master_Kasse Then + MsgBox("Beleg älter als 2 Monate, Aktion wird abgebrochen") 'alte Belege nicht mehr storinieren + Exit Sub + End If + + 'If KASSETmp.StornoIncreaseBelegCnt Then ' Ob beim Storno eine neue BelegNr vergeben werden soll + ' Dim RKSV_Beleg_Id = KASSETmp.INCREASE_BELEG_UMSATZ(BELEGTmp.rksv_umsatz) + ' BELEGTmp.rksv_BelegId = RKSV_Beleg_Id + 'End If + + If f.cbxStornoErzwingenAdmin.Checked Then + BELEGTmp = cRKSV.STORNO(BELEGTmp, grund2, True, KASSETmp.rksv_firma) 'Beleg storno und Kassenbuch Gegenbuchung + End If + + If f.cbxStornoRKSV.Checked Then 'nur RKSV!!!!!!! + ' BELEGTmp = cRKSV.STORNO(BELEGTmp, grund, Fal) 'Beleg storno und Kassenbuch Gegenbuchung + If KASSETmp IsNot Nothing Then + KASSETmp.INCREASE_ONLY_BELEG_UMSATZ(BELEGTmp.rksv_umsatz * -1) ' Bei Storno wird der Umsatz vermindert! + Dim QRQString As String = "" + Dim LastJWS As String = "" + Dim answer = "" + If KASSETmp.rksv_aktiv Then + + If KASSETmp.rksv_FT_CashboxID IsNot Nothing AndAlso KASSETmp.rksv_FT_CashboxID <> "" AndAlso IsNumeric(KASSETmp.rksv_FT_CashboxID) AndAlso BELEGTmp.FT_ReceiptReference IsNot Nothing Then + Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSETmp.rksv_FT_RestServiceURL, KASSETmp.rksv_FT_CashboxID, KASSETmp.rksv_FT_AccessToken, KASSETmp.rksv_FT_Country) + If Not cRKSV.stornoRKSV_FT(KASSETmp, BELEGTmp, QRQString, LastJWS, answer, TSEIsOnline) Then + MessageBox.Show("Fehler bei der RKSV-FT-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + Exit Sub + Else + BELEGTmp.rksv_qr = QRQString + End If + + Else + If Not cRKSV.stornoRKSV(KASSETmp, BELEGTmp.BelegDat, BELEGTmp.Steuerschlüssel, BELEGTmp.rksv_BelegId, BELEGTmp.rksv_umsatz, QRQString, LastJWS, answer) Then + MessageBox.Show("Fehler bei der RKSV-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + Exit Sub + End If + + End If + + + + End If + If KASSETmp.rksvDE_aktiv Then + Dim PERSONALTmp1 As cPersonal = FMZOLL_SQL.getPersonalById(BELEGTmp.Benutzer) + If Not cRKSV.stornoRKSV_DE(PERSONALTmp1, BELEGTmp, KASSETmp, BELEGTmp.rksv_BelegId, BELEGTmp.rksv_BelegId, BELEGTmp.rksv_umsatz, QRQString, LastJWS, False, answer) Then + MessageBox.Show("Fehler bei der RKSV-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + Exit Sub + End If + End If + End If + End If + + If f.cbxStornoBELEG.Checked Then 'nur BELEG!!!!!!! + BELEGTmp = cRKSV.STORNO_BELEG_ONLY(BELEGTmp, grund2) 'Beleg storno + End If + + init() + Exit Sub + End If + 'End If + 'If BELEGTmp IsNot Nothing Then + + ' BELEGTmp = New EABeleg("LOAD", PERSONAL.Mandant, PERSONAL.Niederlassung, dt.Rows(0)("Benutzer"), dt.Rows(0)("BelegNr"), dt.Rows(0)("BelegDat")) + + Dim PERSONALTmp As cPersonal = FMZOLL_SQL.getPersonalById(BELEGTmp.Benutzer) + If master_Kasse = False Then + If BELEGTmp.Benutzer <> PERSONAL.ID And Not zahlungsmittel = "EC" Then MsgBox("Der Beleg wurde von einem anderen Beutzer erstellt. " & vbNewLine & " Bitte wenden Sie sich an: '" & PERSONALTmp.Name & "'.") : Exit Sub + End If + Dim grund = InputBox("Möchten Sie den Beleg wirklich storinieren?" & vbNewLine & vbNewLine & "Betrag: " & BELEGTmp.rksv_umsatz & vbNewLine & "Datum: " & BELEGTmp.BelegDat & vbNewLine & vbNewLine & "Bitte geben Sie einen Stornogrund an:" & vbNewLine, "Storno") + If grund = "" Then + MsgBox("Kein Stornotext, Aktion wird abgebrochen") + Exit Sub + End If + + + If BELEGTmp.BelegNr <= 0 Then MsgBox("Fehler beim Laden der Belegdaten") : Exit Sub + + + If Not BELEGTmp.gebuchtStorno Then 'f.cbxStornoErzwingenAdmin.Checked=stono erzwingen + + Dim OLD_rksv_BelegId = BELEGTmp.rksv_BelegId + Dim KASSETmp As New cRKSV_Kasse(BELEGTmp.rksv_id) + + If KASSETmp.rksv_StornoIncreaseBelegCnt Then ' Ob beim Storno eine neue BelegNr vergeben werden soll + Dim RKSV_Beleg_Id = KASSETmp.INCREASE_BELEG_UMSATZ(BELEGTmp.rksv_umsatz) + BELEGTmp.rksv_BelegIdStorno = RKSV_Beleg_Id + End If + + BELEGTmp = cRKSV.STORNO(BELEGTmp, grund, KASSETmp.rksv_firma) 'Beleg storno und Kassenbuch Gegenbuchung + ' BELEGTmp = cRKSV.STORNO(BELEGTmp, "") 'Beleg storno und Kassenbuch Gegenbuchung + + ' Dim summe As Double = 0 + ' For Each p In BELEGTmp.POS + 'summe += p.Betrag + ' Next + ' summe = summe * -1 + ' Dim KASSETmp As New cRKSV_Kasse(BELEGTmp.rksv_id) + + + If KASSETmp IsNot Nothing Then + KASSETmp.INCREASE_ONLY_BELEG_UMSATZ(BELEGTmp.rksv_umsatz * -1) ' Bei Storno wird der Umsatz vermindert! + Dim QRQString As String = "" + Dim LastJWS As String = "" + Dim answer = "" + If KASSETmp.rksv_aktiv Then + + If KASSETmp.rksv_FT_CashboxID IsNot Nothing AndAlso KASSETmp.rksv_FT_CashboxID <> "" AndAlso BELEGTmp.FT_ReceiptReference IsNot Nothing Then + Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSETmp.rksv_FT_RestServiceURL, KASSETmp.rksv_FT_CashboxID, KASSETmp.rksv_FT_AccessToken, KASSETmp.rksv_FT_Country) + If Not cRKSV.stornoRKSV_FT(KASSETmp, BELEGTmp, QRQString, LastJWS, answer, TSEIsOnline) Then + MessageBox.Show("Fehler bei der RKSV-FT-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + Exit Sub + End If + + Else + If Not cRKSV.stornoRKSV(KASSETmp, BELEGTmp.BelegDat, BELEGTmp.Steuerschlüssel, If(BELEGTmp.rksv_BelegIdStorno, BELEGTmp.rksv_BelegId), BELEGTmp.rksv_umsatz, QRQString, LastJWS, answer) Then + 'FEHLER!! + If KASSETmp.rksv_StornoIncreaseBelegCnt Then BELEGTmp.rksv_BelegIdStorno = Nothing + BELEGTmp = cRKSV.STORNO_RUECKGAENGIG(BELEGTmp, grund, KASSETmp.rksv_firma) 'Beleg storno und Kassenbuch Gegenbuchung + MessageBox.Show("Fehler bei der RKSV-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + Exit Sub + End If + End If + End If + + If KASSETmp.rksvDE_aktiv Then + If Not cRKSV.stornoRKSV_DE(PERSONALTmp, BELEGTmp, KASSETmp, If(BELEGTmp.rksv_BelegIdStorno, BELEGTmp.rksv_BelegId), BELEGTmp.rksv_BelegId, BELEGTmp.rksv_umsatz, QRQString, LastJWS, False, answer) Then + 'FEHLER!! + If KASSETmp.rksv_StornoIncreaseBelegCnt Then BELEGTmp.rksv_BelegIdStorno = Nothing + BELEGTmp = cRKSV.STORNO_RUECKGAENGIG(BELEGTmp, grund, KASSETmp.rksv_firma) 'Beleg storno und Kassenbuch Gegenbuchung + MessageBox.Show("Fehler bei der RKSV-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + Exit Sub + End If + End If + End If + + Select Case BELEGTmp.Beleg_TYP 'dt.Rows(0)("Beleg_TYP") + Case "E" + Dim KBEntry As cKassenbuch = Nothing + Dim KBEntryGB As cKassenbuch = Nothing + If cRKSV.getKB(BELEGTmp, PERSONALTmp, KBEntry, KBEntryGB, KASSETmp.rksv_firma) Then + cRKSV.printFremdBeleg(BELEGTmp, KASSETmp, PERSONALTmp, KBEntry, KBEntryGB, "") 'Beleg drucken + End If + Case "L" + cRKSV.printKundenBelegLG(BELEGTmp, KASSETmp, PERSONALTmp, "", "LG") 'Beleg drucken + Case "A" + cRKSV.printKundenBelegLG(BELEGTmp, KASSETmp, PERSONALTmp, "", "A") 'Beleg drucken + Case Else + cRKSV.printKundenBeleg(BELEGTmp, KASSETmp, PERSONALTmp, "", False) 'Beleg drucken + End Select + MsgBox("Beleg storniert!") + 'Dim frmBeleg As New frmBelegNeu(PERSONAL, PERSONAL.Mandant, PERSONAL.Niederlassung, dt.Rows(0)("Benutzer"), dt.Rows(0)("BelegNr"), dt.Rows(0)("BelegDat")) + ' frmBeleg.ShowDialog(Me) + ' init() If Not BELEGTmp.gebuchtStorno Then + Else + MsgBox("Beleg wurde bereits storniert!") + End If + init() + Else + MsgBox("Keine Daten gefunden!") + End If + init() + Else + MsgBox("Keine Daten gefunden!") + End If + + End Sub + + Private Sub Button7_Click(sender As Object, e As EventArgs) Handles btnBelegLeihgeld.Click + If KennwortOK() Then + Try + Dim frmNacherfassungLeihgeld As New frmNacherfassungLeihgeld(PERSONAL, PERSONAL_LG) + frmNacherfassungLeihgeld.ShowDialog(Me) + Catch ex As Exception + MsgBox(ex.Message) + End Try + init() + End If + End Sub + + Private Async Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click + Label18.ForeColor = Color.Black + If Not IsNumeric(cboKassen._value) Then + Label18.ForeColor = Color.Red + Exit Sub + End If + + + Dim KASSE As New cRKSV_Kasse(cboKassen._value) 'Laden der Kasse anhand der Auswahlbox + + If KASSE.rksv_FT_RestServiceURL <> "" Then + Dim client As New cFiskaltrustClient(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country) + Dim result = Await client.SignNullReceiptAsync(RKSV.rksv_id) + Dim QR_CodeString As String = "" + client.saveRKSV_FT(result, QR_CodeString) + Else + cRKSV.printNULLBeleg(KASSE, PERSONAL, True, KASSE.rksv_firma) + + End If + + ' End If + End Sub + + Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click + Label18.ForeColor = Color.Black + If Not IsNumeric(cboKassen._value) Then + Label18.ForeColor = Color.Red + Exit Sub + End If + Dim KASSE As New cRKSV_Kasse(cboKassen._value) 'Laden der Kasse anhand der Auswahlbox + cRKSV.printAESKey(KASSE, "") 'Beleg drucken + + End Sub + + Private Sub Button6_Click_1(sender As Object, e As EventArgs) Handles Button6.Click + master_Kasse = Not master_Kasse + init() + End Sub + + Private Sub Button10_Click(sender As Object, e As EventArgs) Handles btnBelegGSKunde.Click + If KennwortOK() Then + + lblERRKennwort.Visible = False + Dim frmBeleg As New frmBelegNeu(PERSONAL, PERSONAL_LG, "A") + frmBeleg.ShowDialog(Me) + init() + + End If + End Sub + + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click + Dim f As New frmKassenbuchPWD(PERSONAL) + If f.ShowDialog() = Windows.Forms.DialogResult.OK Then + Dim frmSecureLoginKassenbuch As New SDL.frmSecureLoginKassenbuch() + frmSecureLoginKassenbuch.openKB = True + frmSecureLoginKassenbuch.ShowDialog(Me.Parent) + Me.Close() + End If + End Sub + + Private Sub Button7_Click_1(sender As Object, e As EventArgs) Handles Button7.Click + Dim reader = InputBox("Bitte ReaderNamen angeben:") + + If reader <> "" Then + Dim serial = cRKSV.getCardSerialInReader(cboKassen._value, reader) + If serial <> "" Then MsgBox(serial) Else MsgBox("Karte nicht gefunden!") + End If + End Sub + + Private Sub Button10_Click_1(sender As Object, e As EventArgs) Handles Button10.Click + + Dim print As New frmPrintLayout + print.Text = "Kassenbuch" + + Dim rpt As New rptKassenbuchLeihgeld2 + + Dim frmVonBis As New frmKasseBerichtVonBis + If frmVonBis.ShowDialog(Me) <> Windows.Forms.DialogResult.OK Then + Exit Sub + End If + Dim von As Date = frmVonBis.datVon.Value.ToShortDateString + Dim bis As Date = frmVonBis.datBis.Value.ToShortDateString + + 'Dim von As Date = CDate("01.01.2016") + ' Dim bis As Date = CDate("31.01.2016") + + ' rpt.DataSource = SQL.loadDgvBySql("SELECT MIN(JournalNr)as JournalNr, MAX(BelegDat)as BelegDat,MAX(Buchungsdatum)as Buchungsdatum,MAX(belegNr) as BelegNr, (SELECT top 1 t.Buchungstext FROM [tblKassenbuch] as t WHERE journalnr=t.journalnr) as Buchungstext,(SELECT top 1 t.konto FROM [tblKassenbuch] as t WHERE journalnr=t.journalnr) as Konto, SUM(Soll) as Soll,SUM(haben) as Haben " & + ' "FROM [tblKassenbuch] WHERE CAST(Buchungsdatum as date) BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' And Benutzer=" & PERSONAL.ID & " group by BelegNr", "FMZOLL") 'cProgramFunctions.dgridViewTods(dgvBelegPos) + Dim where = "" + + If frmVonBis.cbxRKSV_only.Checked Then + where = " AND [rksv_id] IS NOT NULL AND [rksv_BelegId] IS NOT NULL AND rksv_aktiv=1 " + + End If + Dim sqlStr = "" + ' sqlStr = sqlStr = "SELECT JournalNr, BelegDat,Buchungstext, Buchungsdatum,BelegNr,rksv_BelegId, Soll, Haben " & + ' "FROM [tblKassenbuch] WHERE tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' and tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' AND CAST(Buchungsdatum as date) BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' And tblKassenbuch.Benutzer=" & PERSONAL.ID & " And Konto=" & PERSONAL.KassenbuchNr & " " & where & " ORDER BY Buchungsdatum, JournalNr " + + If master_Kasse Then + rpt.lblSachbearbeiter.Text = "ADMIN" + rpt.lblKassenbuchNr.Text = "-" + rpt.lblMandantNiederlassung.Text = "-" + sqlStr = "SELECT JournalNr, tblKassenbuch.BelegDat,Buchungstext, Buchungsdatum,tblKassenbuch.BelegNr,tblKassenbuch.rksv_BelegId, Soll, Haben,tblKassenbuch.Benutzer as Benutzer,tblKassenbuch.Konto as Konto,[LKW Kennzeichen],Fahrer,FrachtführerKundenNr,Frachtführer " & + " FROM [tblKassenbuch] INNER JOIN Personal ON Personal.ID = tblKassenbuch.Benutzer " & + " inner join [tblEABelegnummer] on [tblEABelegnummer].Mandant=tblKassenbuch.Mandant AND [tblEABelegnummer].Niederlassung=tblKassenbuch.Niederlassung AND [tblEABelegnummer].Benutzer=tblKassenbuch.Benutzer AND [tblEABelegnummer].BelegDat=tblKassenbuch.BelegDat AND [tblEABelegnummer].BelegNr=tblKassenbuch.BelegNr " & + " WHERE tblKassenbuch.Benutzer IN (SELECT ID FROM [Personal] WHERE [Standard_RKSV_KasseId]='" & PERSONAL.cRKSV_Kasse.rksv_id & "') AND Personal.[KassenbuchNr]=tblKassenbuch.Konto AND tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' and tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' AND CAST(Buchungsdatum as date) BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' " & where & " ORDER BY Buchungsdatum, JournalNr " + Else + rpt.lblSachbearbeiter.Text = PERSONAL.Name + rpt.lblKassenbuchNr.Text = PERSONAL.KassenbuchNr + rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung + + sqlStr = "SELECT JournalNr, tblKassenbuch.BelegDat,Buchungstext, Buchungsdatum,tblKassenbuch.BelegNr,tblKassenbuch.rksv_BelegId, Soll, Haben,tblKassenbuch.Benutzer as Benutzer,tblKassenbuch.Konto as Konto ,[LKW Kennzeichen],Fahrer ,FrachtführerKundenNr,Frachtführer " & + " FROM [tblKassenbuch] " & + " inner join [tblEABelegnummer] on [tblEABelegnummer].Mandant=tblKassenbuch.Mandant AND [tblEABelegnummer].Niederlassung=tblKassenbuch.Niederlassung AND [tblEABelegnummer].Benutzer=tblKassenbuch.Benutzer AND [tblEABelegnummer].BelegDat=tblKassenbuch.BelegDat AND [tblEABelegnummer].BelegNr=tblKassenbuch.BelegNr " & + " WHERE tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' and tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' AND CAST(Buchungsdatum as date) BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' And tblKassenbuch.Benutzer=" & PERSONAL.ID & " And Konto=" & PERSONAL.KassenbuchNr & " " & where & " ORDER BY Buchungsdatum, JournalNr " + End If + + rpt.DataSource = SQL.loadDgvBySql(sqlStr, "FMZOLL") 'cProgramFunctions.dgridViewTods(dgvBelegPos) + + rpt.GroupHeader1.DataField = "Buchungsdatum" 'Gruppierung + + If rpt.DataSource.rows.count = 0 Then + rpt.Dispose() : print.Dispose() + MsgBox("Keine Daten vorhanden!") + Exit Sub + End If + + Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA + Case "IMEX" : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Label28.Text = "IMEX Customs Service GmbH" + Case "ATILLA" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "ATILLA Spedition" + Case Else + End Select + + Dim GESCHAEFTSJAHR = cRKSV.getGJ_FIRMA(von, PERSONAL.cRKSV_Kasse.rksv_firma) ' IIf(von.Month = 1, von.Year - 1, von.Year) + Dim sum = 0 + rpt.lblUeberschrift.Text = "Kassenbuch " & von.ToShortDateString & " bis " & bis.ToShortDateString + rpt.lblGeschaeftsjahr.Text = GESCHAEFTSJAHR + 'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung + + 'Dim cnt As Integer = 0 + rpt.lblDat.Text = Now.ToLongDateString + Dim sumSoll As Double = 0 + Dim sumHaben As Double = 0 + Dim gesSumSoll As Double = 0 + Dim gesSumHaben As Double = 0 + Dim datum = "" + AddHandler rpt.Detail.Format, Sub() + ' Dim dt As DataTable = SQL.loadDgvBySql("SELECT CASE WHEN COUNT(distinct(konto))>1 THEN 'div.' ELSE CONVERT(VARCHAR(4),MAX(konto)) END as Konto, SUM(soll)as Soll, SUM(haben) as Haben FROM [tblKassenbuch] " & + ' " WHERE Konto<>" & PERSONAL.KassenbuchNr & " AND Mandant='" & PERSONAL.Mandant & "' and Niederlassung='" & PERSONAL.Niederlassung & "'and Benutzer=" & PERSONAL.ID & " and Geschäftsjahr=" & GESCHAEFTSJAHR & " and BelegNr='" & rpt.Fields.Item("BelegNr").Value() & "' ", "FMZOLL") + + ' Dim soll = dt.Rows(0)("Soll") + ' Dim haben = dt.Rows(0)("Haben") + 'Dim konto = dt.Rows(0)("Konto") + + rpt.lblLKWKz.Text = If(rpt.Fields.Item("LKW Kennzeichen").Value IsNot DBNull.Value, rpt.Fields.Item("LKW Kennzeichen").Value(), "") + rpt.lblFahrer.Text = If(rpt.Fields.Item("Fahrer").Value IsNot DBNull.Value, rpt.Fields.Item("Fahrer").Value(), "") + + Dim BuDat As Date = CDate(rpt.Fields.Item("Buchungsdatum").Value()).ToShortDateString + rpt.lblBelegDat.Text = BuDat + Dim GESCHAEFTSJAHR_TMP = cRKSV.getGJ_FIRMA(BuDat, PERSONAL.cRKSV_Kasse.rksv_firma) 'IIf(BuDat.Month = 1, BuDat.Year - 1, BuDat.Year) + rpt.lblBelegNr.Text = IIf(rpt.Fields.Item("rksv_BelegId").Value Is DBNull.Value, "(" & rpt.Fields.Item("BelegNr").Value & ")", rpt.Fields.Item("rksv_BelegId").Value()) + rpt.lblBuText.Text = rpt.Fields.Item("Buchungstext").Value() + + rpt.txtKunde.Text = If(CInt(rpt.Fields.Item("FrachtführerKundenNr").Value) > 0, rpt.Fields.Item("FrachtführerKundenNr").Value() & " ", "") & rpt.Fields.Item("Frachtführer").Value() + + ' rpt.lblKonto.Text = SQL.getValueTxtBySql("SELECT CASE WHEN COUNT(distinct(konto))>1 THEN 'div.' ELSE CONVERT(VARCHAR(4),MAX(konto)) END as Konto, SUM(soll)as Soll, SUM(haben) as Haben FROM [tblKassenbuch] " & + ' " WHERE Konto<>" & PERSONAL.KassenbuchNr & " AND Mandant='" & PERSONAL.Mandant & "' and Niederlassung='" & PERSONAL.Niederlassung & "' " & benutzerTMP & " and Geschäftsjahr=" & GESCHAEFTSJAHR & " and BelegNr='" & rpt.Fields.Item("BelegNr").Value() & "' ", "FMZOLL") + rpt.lblKonto.Text = SQL.getValueTxtBySql("SELECT CASE WHEN COUNT(distinct(konto))>1 THEN 'div.' ELSE CONVERT(VARCHAR(4),MAX(konto)) END as Konto, SUM(soll)as Soll, SUM(haben) as Haben FROM [tblKassenbuch] " & + " WHERE Konto<>" & PERSONAL.KassenbuchNr & " AND Mandant='" & PERSONAL.Mandant & "' and Niederlassung='" & PERSONAL.Niederlassung & "' And Benutzer=" & rpt.Fields.Item("Benutzer").Value & " and Geschäftsjahr=" & GESCHAEFTSJAHR_TMP & " and BelegNr='" & rpt.Fields.Item("BelegNr").Value() & "' ", "FMZOLL") + + Dim soll = CDbl(rpt.Fields.Item("Soll").Value()) + Dim haben = CDbl(rpt.Fields.Item("Haben").Value()) + + rpt.lblSoll.Text = IIf(soll <> 0, soll.ToString("C"), "") + rpt.lblHaben.Text = IIf(haben <> 0, haben.ToString("C"), "") + ' rpt.lblSaldo.Text = CDbl(SQL.getValueTxtBySql("SELECT isnull(sum([Soll]-[Haben]),0) AS Saldo FROM tblKassenbuch " & + ' " WHERE Mandant='" & PERSONAL.Mandant & "' and Niederlassung='" & PERSONAL.Niederlassung & "' " & benutzerTMP & " and Geschäftsjahr=" & GESCHAEFTSJAHR & " AND tblKassenbuch.Konto='" & PERSONAL.KassenbuchNr & "' " & + ' " and JournalNr<='" & rpt.Fields.Item("JournalNr").Value() & "' ", "FMZOLL")).ToString("C") + + rpt.lblSaldo.Text = CDbl(SQL.getValueTxtBySql("SELECT isnull(sum([Soll]-[Haben]),0) AS Saldo FROM tblKassenbuch " & + " WHERE Mandant='" & PERSONAL.Mandant & "' and Niederlassung='" & PERSONAL.Niederlassung & "' And Benutzer=" & rpt.Fields.Item("Benutzer").Value & " and Geschäftsjahr=" & GESCHAEFTSJAHR_TMP & " AND tblKassenbuch.Konto='" & rpt.Fields.Item("Konto").Value & "' " & + " and JournalNr<='" & rpt.Fields.Item("JournalNr").Value() & "' ", "FMZOLL")).ToString("C") + sumSoll += CDbl(rpt.Fields.Item("Soll").Value()) + sumHaben += CDbl(rpt.Fields.Item("Haben").Value()) + gesSumSoll += CDbl(rpt.Fields.Item("Soll").Value()) + gesSumHaben += CDbl(rpt.Fields.Item("Haben").Value()) + ' rpt.lblLeistungsNr.Text = rpt.Fields.Item("clmnAnzahl").Value() + ' rpt.lblEinzelpreis.Text = CDbl(rpt.Fields.Item("clmnPreis").Value()).ToString("C") + ' sum += rpt.Fields.Item("clmnBetrag").Value() + datum = CDate(rpt.Fields.Item("Buchungsdatum").Value()).ToShortDateString ' Im Footer wird bereits das nächste Datumgenommen, darum hier befüllt + End Sub + AddHandler rpt.GroupHeader1.Format, Sub() + sumSoll = 0 + sumHaben = 0 + End Sub + AddHandler rpt.GroupFooter1.Format, Sub() + rpt.lblSummeBuchungsDat.Text = "Summe Buchungsdatum " & datum & ":" + rpt.lblSollSumme.Text = sumSoll.ToString("C") + rpt.lblHabenSumme.Text = sumHaben.ToString("C") + ' rpt.lblEinzelpreis.Text = CDbl(rpt.Fields.Item("clmnPreis").Value()).ToString("C") + ' sum += rpt.Fields.Item("clmnBetrag").Value() + End Sub + AddHandler rpt.ReportFooter1.Format, Sub() + rpt.lblSollGesamtSumme.Text = gesSumSoll.ToString("C") + rpt.lblHabenGesamtSumme.Text = gesSumHaben.ToString("C") + End Sub + + print.Viewer.LoadDocument(rpt) + print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous + print.Show() + End Sub + + Private Sub Button11_Click(sender As Object, e As EventArgs) Handles btnPosTerminal.Click + Label18.ForeColor = Color.Black + If Not IsNumeric(cboKassen._value) Then + Label18.ForeColor = Color.Red + Exit Sub + End If + + Dim f As New frmPOSTerminal(cboKassen.Text, cboKassen._value) + f.Show() + + End Sub + + Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click + + Dim webAddress As String = "https://wiki.verag.ag/e/de/software/aviso/howtos/Barverkauf" + Process.Start(webAddress) + End Sub + + Private Sub Button11_Click_1(sender As Object, e As EventArgs) Handles Button11.Click + + cm_FT.Items.Clear() + + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + 'nur im Testsystem! + If Not cm_FT.Items.ContainsKey("bar") AndAlso isADMIN Then + Dim ids = New ToolStripMenuItem() With {.Text = "Barverkauf", .Name = "bar", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked + cm_FT.Items.Add(ids) + End If + + If Not cm_FT.Items.ContainsKey("storno") AndAlso isADMIN Then + Dim ids = New ToolStripMenuItem() With {.Text = "Storno", .Name = "storno", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked + cm_FT.Items.Add(ids) + End If + + End If + + If Not cm_FT.Items.ContainsKey("null") AndAlso isADMIN AndAlso Not OutOfOrderIsCreated Then + Dim plose = New ToolStripMenuItem() With {.Text = "Nullbeleg", .Name = "null", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + cm_FT.Items.Add(plose) + AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked + End If + + If Not cm_FT.Items.ContainsKey("outoforder") AndAlso isADMIN AndAlso Not OutOfOrderIsCreated Then + Dim plose = New ToolStripMenuItem() With {.Text = "Out Of Order", .Name = "outoforder", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + cm_FT.Items.Add(plose) + AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked + End If + + If Not cm_FT.Items.ContainsKey("initialstart") AndAlso isADMIN AndAlso Not OutOfOrderIsCreated AndAlso Not InitialStartIsCreated Then + Dim plose = New ToolStripMenuItem() With {.Text = "Initial Start", .Name = "initialstart", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + cm_FT.Items.Add(plose) + AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked + End If + + If Not cm_FT.Items.ContainsKey("monthly") AndAlso Not monatsabschlussIsSet AndAlso Not OutOfOrderIsCreated Then + Dim rmc = New ToolStripMenuItem() With {.Text = "Monatabschluss", .Name = "monthly", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler rmc.Click, AddressOf mnuItemAuftrauege_Clicked + cm_FT.Items.Add(rmc) + End If + + If Not cm_FT.Items.ContainsKey("daily") AndAlso Not tagesabschlussIsSet AndAlso Not OutOfOrderIsCreated Then + Dim rmc = New ToolStripMenuItem() With {.Text = "Tagesabschluss", .Name = "daily", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler rmc.Click, AddressOf mnuItemAuftrauege_Clicked + cm_FT.Items.Add(rmc) + End If + + If Not cm_FT.Items.ContainsKey("yearly") AndAlso Not jahresabschlussIsSet AndAlso Not OutOfOrderIsCreated Then + Dim uta = New ToolStripMenuItem() With {.Text = "Jahresabschluss", .Name = "yearly", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler uta.Click, AddressOf mnuItemAuftrauege_Clicked + cm_FT.Items.Add(uta) + End If + + If Not cm_FT.Items.ContainsKey("verbindungstest") Then + Dim ids = New ToolStripMenuItem() With {.Text = "Verbindungstest", .Name = "verbindungstest", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked + cm_FT.Items.Add(ids) + End If + + If Not cm_FT.Items.ContainsKey("version") Then + Dim ids = New ToolStripMenuItem() With {.Text = "Journal - Version", .Name = "version", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked + cm_FT.Items.Add(ids) + End If + + If Not cm_FT.Items.ContainsKey("signatures") AndAlso isADMIN Then + Dim ids = New ToolStripMenuItem() With {.Text = "Journal - Signaturen", .Name = "signatures", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked + cm_FT.Items.Add(ids) + End If + + If Not cm_FT.Items.ContainsKey("action") AndAlso isADMIN Then + Dim ids = New ToolStripMenuItem() With {.Text = "Journal - Action", .Name = "action", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked + cm_FT.Items.Add(ids) + End If + + If Not cm_FT.Items.ContainsKey("queueitem") AndAlso isADMIN Then + Dim ids = New ToolStripMenuItem() With {.Text = "Journal - Queue", .Name = "queueitem", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked + cm_FT.Items.Add(ids) + End If + + If Not cm_FT.Items.ContainsKey("exportJournal") Then + Dim ids = New ToolStripMenuItem() With {.Text = "Journal - EXPORT", .Name = "exportJournal", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked + cm_FT.Items.Add(ids) + End If + + + If Not cm_FT.Items.ContainsKey("setMissingSignatures") Then + Dim ids = New ToolStripMenuItem() With {.Text = "fehlende Signaturen nachtragen", .Name = "setMissingSignatures", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} + AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked + cm_FT.Items.Add(ids) + End If + + cm_FT.Show(Cursor.Position) + + End Sub + + + Private Async Function mnuItemAuftrauege_Clicked(sender As Object, e As EventArgs) As Task(Of Object) + + cm_FT.Hide() + Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem) + + If item IsNot Nothing Then + + 'PERSONAL.cRKSV_Kasse.LOAD(cboKassen._value) + + Dim client_chilkat As New cFiskaltrustClient_chilkat(PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL, PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID, PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken, PERSONAL.cRKSV_Kasse.rksv_FT_Country) + + If item.Name = "null" Then + + Dim info As String = "Möchten Sie einen 0-Beleg an die TSE schicken?" + + If NULLBelegIsCreated Then + info = "Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " wurde bereits ein 0-Beleg erstellt, sind Sie wirklich sicher?" + End If + + If vbYes = MsgBox(info, vbYesNoCancel) Then + + Dim result As String = client_chilkat.SignNullReceipt(PERSONAL.cRKSV_Kasse.rksv_id) + + + If result <> "" Then + + MsgBox(client_chilkat.PrettyPrintJson(result)) + + Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id) + rksv.SET_NULLBELEG() + init() + End If + + End If + + ElseIf item.Name = "setMissingSignatures" Then + + Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM [tblEABelegnummer] WHERE [rksv_id]='" & PERSONAL.cRKSV_KasseID & "' AND isnull(FT_MissingSignature,0)=1", "FMZOLL") + + If dt.Rows.Count = 0 Then + MsgBox("Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " existieren keine unsignierten Belege!") + Return False + End If + + If vbYes = MsgBox("Möchten die " & dt.Rows.Count & " nicht signierten Belege an die TSE schicken?", vbYesNoCancel) Then + + Dim result As Boolean = False + For Each r As DataRow In dt.Rows + + Dim BELEG = New EABeleg("LOAD", r("Mandant"), r("Niederlassung"), r("Benutzer"), r("BelegNr"), r("BelegDat")) + Dim summeBRUTTO As Double = BELEG.rksv_umsatz + Dim QR_CodeString As String = "" + Dim LastJWS As String = "" + Dim EA As String = "" + Dim kindOfReceiptCase As String = "" + + Select Case BELEG.Beleg_TYP + Case "0" + Continue For 'null Belege nicht senden! + Case "E" 'Eingang/Ausgang + If BELEG.Belegart = "1" Then + EA = "E" + Else + EA = "A" + End If + Case "L" + If BELEG.Belegart = "1" Then + EA = "E" + Else + EA = "A" + End If + + Case Else + If BELEG.Belegart = "1" Then + EA = "E" + Else + EA = "A" + End If + End Select + + kindOfReceiptCase = ReceiptCaseIntern.WIEDERHOLUNG + + result = cRKSV.insertRKSVFiskaltrustAsync(PERSONAL.cRKSV_Kasse, BELEG, BELEG.rksv_BelegId, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), False, QR_CodeString, LastJWS, kindOfReceiptCase, BELEG.FT_ReceiptReference) + + If result Then + BELEG.FT_MissingSignature = False + BELEG.SAVE() + Else + MsgBox("Fehler bei der nachträglichen Signierung von BelegNr: " & BELEG.BelegNr & vbNewLine & "Beleg wurde nicht in der QUEUE gefunden!" & vbNewLine & "Beleg muss erneut an Fiskaltrust gesendet werden!") + BELEG.FT_MissingSignature = False + BELEG.FT_setMissingSignatureFailed = True + BELEG.SAVE() + End If + + Next + + If result Then + init() + End If + + End If + + + + ElseIf item.Name = "tempoutoforder" Then + + + If vbYes = MsgBox("Möchten Sie einen temp. Ausfall an die TSE schicken?" & vbNewLine & "Falls die TSE zwar Online ist, jedoch ein technischer Fehler beim Signieren besteht", vbYesNoCancel) Then + + Dim result As String = client_chilkat.SignOutOfOrderReceipt(PERSONAL.cRKSV_Kasse.rksv_id) + + If result <> "" Then + + MsgBox(client_chilkat.PrettyPrintJson(result)) + + Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id) + rksv.SET_OUTOFORDERBELEG() + init() + End If + + End If + + + + ElseIf item.Name = "outoforder" Then + + + If vbYes = MsgBox("Möchten Sie einen OutOfOrder an die TSE schicken?" & vbNewLine & "Die Queue wird dauerhaft geschlossen und kann NICHT reaktiviert werden!", vbYesNoCancel) Then + + Dim result As String = client_chilkat.SignOutOfOrderReceipt(PERSONAL.cRKSV_Kasse.rksv_id) + + + If result <> "" Then + + MsgBox(client_chilkat.PrettyPrintJson(result)) + + Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id) + rksv.SET_OUTOFORDERBELEG() + init() + End If + + End If + + + ElseIf item.Name = "initialstart" Then + + + If vbYes = MsgBox("Möchten Sie einen Start an die TSE schicken?", vbYesNoCancel) Then + + Dim result As String = client_chilkat.SignInitialOperationReceipt(PERSONAL.cRKSV_Kasse.rksv_id) + + + If result <> "" Then + + MsgBox(client_chilkat.PrettyPrintJson(result)) + + Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id) + rksv.SET_INITIALSTARTBELEG() + init() + End If + + End If + + + + ElseIf item.Name = "verbindungstest" Then + + Dim result As String = client_chilkat.Echo(PERSONAL.cRKSV_Kasse.rksv_bez & " " & PERSONAL.cRKSV_Kasse.rksv_FT_Country & " - ") + + If result <> "" Then + + MsgBox(client_chilkat.PrettyPrintJson(result)) + + End If + + + ElseIf item.Name = "storno" Then + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM AndAlso isADMIN Then + + If vbYes = MsgBox("Möchten Sie wirklich einen Teststorno durchführen?" & vbNewLine & "NIEMALS auf einer produktiven TSE durchführen!", vbYesNoCancel) Then + + Dim result As String = client_chilkat.ChancelReceipt_test("-1", PERSONAL.cRKSV_Kasse.rksv_id, TSEIsOnline) + + If result <> "" Then + + MsgBox(client_chilkat.PrettyPrintJson(result)) + + End If + + End If + + Else + MsgBox("ACHTUNG, im Produktivsystem nicht möglich!") + End If + + + ElseIf item.Name = "bar" Then + + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM AndAlso isADMIN Then + + If vbYes = MsgBox("Möchten Sie wirklich einen Testzahlung durchführen?" & vbNewLine & "NIEMALS auf einer produktiven TSE durchführen!", vbYesNoCancel) Then + + Dim result As String = client_chilkat.SignReceipt_test(PERSONAL.cRKSV_Kasse.rksv_id, TSEIsOnline) + + If result <> "" Then + + If vbYes = MsgBox(result & vbNewLine & vbNewLine & "Testdaten in DB speichern?", vbYesNoCancel) Then + Dim QR_CodeString As String = "" + client_chilkat.saveRKSV_FT(result, QR_CodeString, Nothing, False) + End If + Else + Return False + End If + + + If result <> "" Then + + MsgBox(client_chilkat.PrettyPrintJson(result)) + + End If + End If + Else + MsgBox("ACHTUNG, im Produktivsystem nicht möglich!") + + End If + + + + ElseIf item.Name = "monthly" Then + + If Not monatsabschlussIsSet Then + If vbYes = MsgBox("Möchten Sie einen Monatsbeleg an die TSE schicken, anschließend kann in diesem Monat kein Beleg mehr signiert werden!", vbYesNoCancel) Then + + Dim result As String = client_chilkat.SignClosingReceipt(item.Name, PERSONAL.cRKSV_Kasse.rksv_id, item.Name) + + If result <> "" Then + + MsgBox(client_chilkat.PrettyPrintJson(result)) + + SQL.doSQL("UPDATE [tblRKSV_FT] set ftEndOfMonthReceipt = getDate() where Month(ftReceiptMoment) = Month(GETDATE()) and ftEndOfMonthReceipt is null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "' ", "FMZOLL") + + End If + + End If + Else + MsgBox("Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " wurde bereits ein Monatsabschluss erstellt!") + End If + + + ElseIf item.Name = "daily" And Not tagesabschlussIsSet Then + 'Nur DE + + If Not tagesabschlussIsSet Then + + If vbYes = MsgBox("Möchten Sie einen Tagesabschluss durchführen, anschließend kann heute kein Beleg mehr signiert werden!", vbYesNoCancel) Then + If PERSONAL.cRKSV_Kasse.rksv_FT_Country = "DE" Then + Dim result As String = client_chilkat.SignClosingReceipt(item.Name, PERSONAL.cRKSV_Kasse.rksv_id, item.Name) + + If result <> "" Then + + MsgBox(client_chilkat.PrettyPrintJson(result)) + + SQL.doSQL("UPDATE [tblRKSV_FT] set ftEndOfDayReceipt = getDate() where Day(ftReceiptMoment) = Day(GETDATE()) and ftEndOfDayReceipt is null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "' ", "FMZOLL") + init() + End If + Else + MsgBox("nicht für AT-Kassen möglich!") + End If + End If + + Else + MsgBox("Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " wurde bereits ein Tagesabschluss erstellt!") + + End If + + ElseIf item.Name = "yearly" Then + + If Not jahresabschlussIsSet Then + + If vbYes = MsgBox("Möchten Sie einen Jahresbeleg an die TSE schicken, anschließend kann in diesem Jahr kein Beleg mehr signiert werden!", vbYesNoCancel) Then + + + Dim result As String = client_chilkat.SignClosingReceipt(item.Name, PERSONAL.cRKSV_Kasse.rksv_id, item.Name) + If result <> "" Then + + MsgBox(client_chilkat.PrettyPrintJson(result)) + + SQL.doSQL("UPDATE [tblRKSV_FT] set ftEndOfYearReceipt = getDate() where Year(ftReceiptMoment) = Year(GETDATE()) and ftEndOfYearReceipt is null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "' ", "FMZOLL") + + End If + + End If + Else + MsgBox("Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " wurde bereits ein Jahresabschluss erstellt!") + + End If + + + + ElseIf (item.Name = "version" Or item.Name = "action" Or item.Name = "signatures" Or item.Name = "queueitem" Or item.Name = "exportJournal") Then + + Dim result As String = "" + Select Case item.Name + Case "version" : result = client_chilkat.Journal(FtJournalType.VersionInformation) + Case "action" : result = client_chilkat.Journal(FtJournalType.ActionJournal) + Case "signatures" : result = client_chilkat.Journal(FtJournalType.ReceiptJournal) + Case "queueitem" : result = client_chilkat.Journal(FtJournalType.QueueItemJournal) + Case "exportJournal" : result = client_chilkat.Journal(FtJournalType.ReceiptJournal) + End Select + + If result <> "" Then + + MsgBox(client_chilkat.PrettyPrintJson(result)) + + If item.Name = "exportJournal" Then + client_chilkat.exportJournal(result) + End If + + End If + + + + End If + + + End If + + + + End Function + + +End Class \ No newline at end of file