Imports SDL.RKSVServer Public Class frmKassenbuch Dim SQL As New SQL Public GESCHAEFTSJAHR As Integer = cRKSV.getGJ(Now) '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 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" Then Button6.Visible = True End If KennwortTime = Now initDgv() 'nur set init() cboKassen.fillWithSQL("SELECT [rksv_id], [rksv_bez] FROM [tblRKSV_Kassen] WHERE ([rksv_aktiv]=1 OR [rksvde_aktiv]=1 or rksv_id=4) ", False, "FMZOLL") ' [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 End Sub Sub init() Dim sqlstr = "" 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 ' Label9.Text = PERSONAL.Name DataGridView2.ClearSelection() 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() 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 & " 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, 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() .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("Benutzer").Visible = False If PERSONAL.isLeihgeldkasse Then .Columns("Fahrer").Visible = False .Columns("Passnummer").Visible = False End If If master_Kasse Then .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],([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") ' .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() .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("Konto").Width = 40 .Columns("Soll").Width = 80 .Columns("Soll").DefaultCellStyle.Format = "C" .Columns("Haben").Width = 80 .Columns("Haben").DefaultCellStyle.Format = "C" .Columns("Steuer").Width = 80 .Columns("Steuer").DefaultCellStyle.Format = "C" .Columns("Benutzer").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, 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, 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.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,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.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 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 Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click MsgBox("Leider noch nicht verfügbar") Exit Sub 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!") Exit Sub End Select End Sub 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(Now) <> cRKSV.getGJ(BELEGTmp.BelegDat) Then MsgBox("Das Geschäftsjahr im Beleg ist '" & cRKSV.getGJ(BELEGTmp.BelegDat) & "', es können nur Belege im laufenden Geschäftsjahr gebucht werden. Aktion wird abgebrochen!") Exit Sub 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) 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 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 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-Storinerung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub 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-Storinerung:" & 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 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) 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 Not cRKSV.stornoRKSV(KASSETmp, BELEGTmp.BelegDat, BELEGTmp.Steuerschlüssel, BELEGTmp.rksv_BelegId, BELEGTmp.rksv_umsatz, QRQString, LastJWS, answer) Then 'FEHLER!! BELEGTmp = cRKSV.STORNO_RUECKGAENGIG(BELEGTmp, grund, KASSETmp.rksv_firma) 'Beleg storno und Kassenbuch Gegenbuchung MessageBox.Show("Fehler bei der RKSV-Storinerung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If End If If KASSETmp.rksvDE_aktiv Then If Not cRKSV.stornoRKSV_DE(PERSONALTmp, BELEGTmp, KASSETmp, BELEGTmp.rksv_BelegId, OLD_rksv_BelegId, BELEGTmp.rksv_umsatz, QRQString, LastJWS, False, answer) Then 'FEHLER!! BELEGTmp = cRKSV.STORNO_RUECKGAENGIG(BELEGTmp, grund, KASSETmp.rksv_firma) 'Beleg storno und Kassenbuch Gegenbuchung MessageBox.Show("Fehler bei der RKSV-Storinerung:" & 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 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 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 cRKSV.printNULLBeleg(KASSE, PERSONAL, True, KASSE.rksv_firma) ' 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(von) ' 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(BuDat) '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 End Class