Files
SDL/SDL/Classes/cRKSV.vb

6928 lines
298 KiB
VB.net

Imports System.Globalization
Imports GrapeCity.ActiveReports
Imports GrapeCity.DataVisualization.TypeScript
Imports SDL.RKSVServer
Imports VERAG_PROG_ALLGEMEIN.DSFinVKService
Public Class cRKSV
Shared SQL As New SQL
Shared Function insertRKSV(ByVal kasse As cRKSV_Kasse, CompanyGUID As String, ByVal umsatzZaehler As Double, ByVal belegDat As DateTime, ByVal steuerSchluessel As Integer, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, ByRef QR_CodeString As String, ByRef LastJWS As String, TEST As Boolean, ByRef answer As String) As Boolean
'
Try
Dim client As RKSVWcfClient = New RKSVWcfClient()
client.Endpoint.Address = New System.ServiceModel.EndpointAddress(getRKSVLink(kasse))
client.Open()
' svcRKSV.DBUserCredentials m_credentials = new svcRKSV.DBUserCredentials();
Dim credentials As New SDL.RKSVServer.DBUserCredentials
credentials.Database = "RKSVWcfDB"
credentials.Server = "AVISO\SQLEXPRESS"
credentials.Username = "Admin"
credentials.Password = "verag#2"
credentials.CashboxID = kasse.rksv_bez
'"VERAG-SUB-KASSE-ZOLL"
credentials.CompanyGUID = CompanyGUID ' "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
Dim jws As String = String.Empty
Dim qr As String = String.Empty
Dim ocra As String = String.Empty
'Dim answer As String = String.Empty
Dim Belegnummer = RKSV_Beleg_Id
Dim BelegDatumUhrzeit = belegDat ' BELEG.BelegDat
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & steuerSchluessel & "' ", "FMZOLL")
Dim BetragSatzNormal = IIf(steuersatz = 0.2, summeBRUTTO, 0.0) 'summe
Dim BetragSatzErm1 = IIf(steuersatz = 0.1, summeBRUTTO, 0.0)
Dim BetragSatzErm2 = IIf(steuersatz = 0.13, summeBRUTTO, 0.0)
Dim BetragSatzNull = IIf(steuersatz = 0.0, summeBRUTTO, 0.0)
Dim BetragSatzBesonders = IIf(steuersatz = 0.19, summeBRUTTO, 0.0)
Dim StandUmsatzzaehler = umsatzZaehler 'KASSE.rksv_Umsatzzaehler
If TEST Then
If (client.SignTrainReceipt(credentials, Belegnummer, BelegDatumUhrzeit, BetragSatzNormal, BetragSatzErm1, BetragSatzErm2, BetragSatzBesonders, BetragSatzNull, jws, qr, ocra, answer)) Then
QR_CodeString = qr
LastJWS = jws
Else
If (jws.Length > 50) Then
QR_CodeString = qr
LastJWS = jws
Else
'Unmittelbares return, damit Änderungen Rückgängig gemacht werden, bevor die nächste Belegerstellung anfängt
'MessageBox.Show(answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End If
End If
Else
If (client.SignReceipt(credentials, Belegnummer, BelegDatumUhrzeit, BetragSatzNormal, BetragSatzErm1, BetragSatzErm2, BetragSatzBesonders, BetragSatzNull, StandUmsatzzaehler, jws, qr, ocra, answer)) Then
QR_CodeString = qr
LastJWS = jws
Else
If (jws.Length > 50) Then
QR_CodeString = qr
LastJWS = jws
Else
'Unmittelbares return, damit Änderungen Rückgängig gemacht werden, bevor die nächste Belegerstellung anfängt
' MessageBox.Show(answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End If
End If
End If
If QR_CodeString.Length > 50 And LastJWS.Length > 50 Then
Return True
End If
Catch ex As Exception
MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
End Try
Return False
End Function
Shared Function getKB(BELEG As EABeleg, PERSONAL As cPersonal, ByRef KBEntry As cKassenbuch, ByRef KBEntryGB As cKassenbuch, Firma As String) As Boolean
Dim j1 = SQL.getValueTxtBySql("SELECT [JournalNr] FROM [tblKassenbuch] " &
" WHERE [Mandant]='" & PERSONAL.Mandant & "' AND [Niederlassung]='" & PERSONAL.Niederlassung & "' AND [Benutzer]='" & PERSONAL.ID & "' AND [Geschäftsjahr]='" & cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma) & "' AND [BelegNr] ='" & BELEG.BelegNr & "' and Steuer <=0 AND Soll <> 0", "FMZOLL")
Dim j2 = SQL.getValueTxtBySql("SELECT [JournalNr] FROM [tblKassenbuch] " &
" WHERE [Mandant]='" & PERSONAL.Mandant & "' AND [Niederlassung]='" & PERSONAL.Niederlassung & "' AND [Benutzer]='" & PERSONAL.ID & "' AND [Geschäftsjahr]='" & cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma) & "' AND [BelegNr] ='" & BELEG.BelegNr & "' and Steuer <=0 AND Haben <> 0", "FMZOLL")
Dim journalNr = ""
Dim journalNrGB = ""
If BELEG.Belegart = 1 Then
journalNr = j1
journalNrGB = j2
Else
journalNr = j2
journalNrGB = j1
End If
If Not IsNumeric(journalNr) Or Not IsNumeric(journalNrGB) Then
MsgBox("Zugehörige Kassenbucheinträge wurden nicht gefunden!")
Return False
End If
'J1 /j2 nicht ganz sicher...
KBEntry = New cKassenbuch("LOAD", BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma), j2)
KBEntryGB = New cKassenbuch("LOAD", BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma), j1)
Return True
End Function
Shared Function getZahlungsmittel(BELEG As EABeleg, PERSONAL As cPersonal, Firma As String) As String
Dim zm = SQL.getValueTxtBySql("SELECT [Finanzwege] FROM [tblKassenbuch] " &
" WHERE [Mandant]='" & PERSONAL.Mandant & "' AND [Niederlassung]='" & PERSONAL.Niederlassung & "' AND [Benutzer]='" & PERSONAL.ID & "' AND [Geschäftsjahr]='" & cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma) & "' AND [BelegNr] ='" & BELEG.BelegNr & "' and Steuer <=0 AND Soll <> 0", "FMZOLL")
If zm Is DBNull.Value Or zm Is Nothing Then
Return "-"
End If
Return zm
End Function
Shared Function getDEP(ByVal kasse_id As Integer, ByRef exportResult As String) As Boolean
Dim KASSE As New cRKSV_Kasse(kasse_id)
Dim client As RKSVWcfClient = New RKSVWcfClient()
client.Endpoint.Address = New System.ServiceModel.EndpointAddress(getRKSVLink(KASSE))
client.Open()
' svcRKSV.DBUserCredentials m_credentials = new svcRKSV.DBUserCredentials();
Dim credentials As New SDL.RKSVServer.DBUserCredentials
credentials.Database = "RKSVWcfDB"
credentials.Server = "AVISO\SQLEXPRESS"
'KASSENPWD: !VERAG-SUB-KASSE-ZOLL#2016
' Select Case kasse ' KASSE.rksv_bez
' Case "VERAG-SUB-KASSE-ZOLL"
credentials.Username = "Admin"
credentials.Password = "verag#2"
If KASSE.rksv_ITG_id Is Nothing Then
MsgBox("Keine RKSV-ITG-ID vorhanden!")
Return False
End If
credentials.CashboxID = KASSE.rksv_bez '"VERAG-SUB-KASSE-ZOLL"
credentials.CompanyGUID = KASSE.rksv_CompanyGUID ' "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
' Dim inValue As RKSVServer.ExportJWSRequest = New RKSVServer.ExportJWSRequest()
' inValue.certificate = certificate
' # inValue.certificateChain = certificateChain
' inValue.jwsCompactReceipts = jwsCompactReceipts
' inValue.exportResult = exportResult
' Dim retVal As RKSVServer.ExportJWSResponse = CType(Me, RKSVServer.IRKSVWcf).ExportJWS(inValue)
' exportResult = retVal.exportResult
' Dim exportResult = ""
If False Then '(client.ExportJWS( certificate , certificateChain , jwsCompactReceipts, exportResult ) Then
' If (client.SignTrainReceipt(credentials, Belegnummer, BelegDatumUhrzeit, BetragSatzNormal,
' BetragSatzErm1, BetragSatzErm2, BetragSatzNull, BetragSatzBesonders,
' jws, qr, ocra, answer)) Then
Else
MessageBox.Show("FEHLER", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End If
Return True
End Function
'Shared Function getRKSVLink(ByVal kasse As String) As String
' If kasse = "FRONT-OFFICE-SUB-KASSE" Then
' Return "http://192.168.0.25:8733/Design_Time_Addresses/RKSVCompleteServer/Service1/?singleWsdl"
' End If
' Return "http://192.168.0.106:8733/Design_Time_Addresses/RKSVCompleteServer/Service1/?singleWsdl"
'End Function
Shared Function getRKSVLink(ByVal kasse As cRKSV_Kasse) As String
Return kasse.rksv_ipAdresse
'Return getRKSVLink(kasse.rksv_bez)
End Function
'Shared Function stornoRKSV_DE(ByVal kasse As cRKSV_Kasse, ByVal belegDat As DateTime, ByVal steuerSchluessel As Integer, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, ByRef QR_CodeString As String, ByRef LastJWS As String, ByRef answer As String) As Boolean
Shared Function stornoRKSV_DE_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT(PERSONAL As cPersonal, BELEG As EABeleg, ByVal kasse As cRKSV_Kasse, ByVal RKSV_Beleg_Id As Integer, ByVal OLD_RKSV_Beleg_Id As Object, ByVal summeBRUTTO As Double, ByRef QR_CodeString As String, ByRef LastJWS As String, TEST As Boolean, ByRef answer As String) As Boolean
Try
' MsgBox("0: ")
Dim cashbox As String = kasse.rksv_KassaGuid '"VERAG_GMBH_KASSE_01" "KASSA 001"
Dim m_com As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService_2022.DSFinVKServerClient = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService_2022.DSFinVKServerClient() 'PROBLEM??
m_com.Endpoint.Address = New System.ServiceModel.EndpointAddress("http://ymgk028055.verag.ost.dmn:8733/DSFinVKService?wsdl")
m_com.Open()
' svcRKSV.DBUserCredentials m_credentials = new svcRKSV.DBUserCredentials();
'Dim credentials As New SDL.RKSVServer.DBUserCredentials
'credentials.Database = "RKSVWcfDB"
'credentials.Server = "AVISO\SQLEXPRESS"
'credentials.Username = "Admin"
'credentials.Password = "verag#2"
'credentials.CashboxID = kasse.rksv_bez
''"VERAG-SUB-KASSE-ZOLL"
'credentials.CompanyGUID = CompanyGUID ' "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
'Dim m_com As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.DSFinVKServer = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.DSFinVKServer() 'PROBLEM??
' m_com.Url = "http://ymgk028055.verag.ost.dmn:8733/DSFinVKService"
Dim [error] As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.ErrorCode
Dim InitializeLibraryResultSpecified As Boolean
' Dim [error] = "" 'm_com.InitializeLibrary(tbLicense.Text, "D:\Database\DSFinVK\dsfinvkdb.db3", "Administrator", "test", cashbox)
[error] = m_com.InitializeLibrary("SQLGUIDE01.verag.ost.dmn", "itg_RKSV_DE", "dsfinvk", "dsfinvk#1337", cashbox) '[error], InitializeLibraryResultSpecified)
' MsgBox("1: " & [error])
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
If [error].ToString() <> "CASHBOX_ALREADY_MANAGED" Then '--> CASHBOX_ALREADY_MANAGED --> der Fehler darf auftreten, die Cashbox wird Serverseitig initialisert, hier nur der Versuch, falls das nciht geschehen ist... lt. Jan Mika / AITG
MessageBox.Show([error].ToString(), "Error1", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
End If
'BelegNr wird von RKSV übernommen
Dim BON_ID As Integer = 0
If False Then
Dim BON_IDSpecified = False
Dim GetNextBON_IDResultSpecified = False
[error] = m_com.GetNextBON_ID(cashbox, BON_ID)
' MsgBox("3: " & [error])
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error2", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
Else
' MsgBox(RKSV_Beleg_Id)
BON_ID = RKSV_Beleg_Id
End If
'Dim BON_NR As Integer = 0
'[error] = m_com.GetNextBON_NR(cashbox, BON_NR)
'If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
' MessageBox.Show([error].ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' Return False
'End If
' MsgBox("4")
'Rechnung beginnen
Dim stornoVz = -1
Dim bonkopfBegin As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService_2022.BonKopfBegin = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService_2022.BonKopfBegin
' Dim bonkopfBegin As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonKopfBegin = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonKopfBegin()
bonkopfBegin.Z_KASSE_ID = cashbox
bonkopfBegin.BEDIENER_ID = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID 'tbBEDIENER_ID.Text
bonkopfBegin.BEDIENER_NAME = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME 'tbBEDIENER_NAME.Text
bonkopfBegin.BON_ID = BON_ID.ToString()
bonkopfBegin.REF_BON_ID = If(OLD_RKSV_Beleg_Id, "").ToString
bonkopfBegin.BON_NAME = "" 'tbBON_NAME.Text
bonkopfBegin.BON_NOTIZ = "" 'tbBON_NOTIZ.Text
bonkopfBegin.BON_NR = BON_ID
bonkopfBegin.BON_STORNO = 1 'If(cbBON_STORNO.Checked, "1", "0")
bonkopfBegin.BON_TYP = "Beleg" 'cmbBON_TYP.SelectedItem.ToString()
bonkopfBegin.KUNDE_ID = If(BELEG.KundenNr > 0, BELEG.KundenNr, "") 'tbKUNDE_ID.Text
bonkopfBegin.KUNDE_LAND = If(BELEG.LandKz, "") 'tbKUNDE_LAND.Text
bonkopfBegin.KUNDE_NAME = If(BELEG.Frachtführer, "") 'tbKUNDE_NAME.Text
bonkopfBegin.KUNDE_ORT = If(BELEG.Ort, "") 'tbKUNDE_ORT.Text
bonkopfBegin.KUNDE_PLZ = If(BELEG.PLZ, "") 'tbKUNDE_PLZ.Text
bonkopfBegin.KUNDE_STRASSE = If(BELEG.Straße, "") ' tbKUNDE_STRASSE.Text
bonkopfBegin.KUNDE_TYP = "" ' tbKUNDE_TYP.Text
bonkopfBegin.KUNDE_USTID = If(BELEG.UstIdKz, "") & If(BELEG.UstIdNr, "") ' tbKUNDE_USTID.Text
bonkopfBegin.TERMINAL_ID = "" 'tbTERMINAL_ID.Text
Dim transactionNumber As Integer = 0
Dim transactionNumberSpecified As Boolean
Dim BeginReceiptResultSpecified As Boolean
[error] = m_com.BeginReceipt(cashbox, bonkopfBegin, transactionNumber)
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error3", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
' MsgBox("5 ANZ: " & BELEG.POS.Count)
Dim cntZeile = 1
Dim GES_BRUTTO As Double = 0
For Each POS In BELEG.POS
'Bonposition hinzufügen
Dim position As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService_2022.BonPosition = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService_2022.BonPosition()
position.AGENTUR_ID = -1 'Convert.ToInt32(dgvBonPos.Rows[m_dgvCurrentRow].Cells["AGENTUR_ID"].Value)
position.ARTIKELTEXT = POS.LeistungsBez 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["ARTIKELTEXT"].Value)
position.ART_NR = POS.LeistungsNr ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["ART_NR"].Value)
position.BON_ID = Convert.ToString(BON_ID)
position.EINHEIT = "Stk." ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["EINHEIT"].Value)
position.FAKTOR = 1 ' Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["FAKTOR"].Value)
position.GTIN = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GTIN"].Value)
position.GUTSCHEIN_NR = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GUTSCHEIN_NR"].Value)
position.GV_NAME = "" ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GV_NAME"].Value)
position.GV_TYP = "Umsatz" ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GV_TYP"].Value)
position.INHAUS = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["INHAUS"].Value)
position.MENGE = POS.Anzahl 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["MENGE"].Value)
position.POS_TERMINAL_ID = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_TERMINAL_ID"].Value)
position.POS_ZEILE = cntZeile 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_ZEILE"].Value)
position.P_STORNO = 0 'Hier kein Storno, das wäre nur wenn eine Pos storniert wird...
position.STK_BR = POS.Preis 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["STK_BR"].Value)
position.WARENGR = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["WARENGR"].Value)
position.WARENGR_ID = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["WARENGR_ID"].Value)
position.Z_KASSE_ID = cashbox 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["Z_KASSE_ID"].Value)
' Beträge der Position
Dim position_vat = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService_2022.BonPosition_Ust()
position_vat.BON_ID = position.BON_ID
position_vat.POS_ZEILE = position.POS_ZEILE
Dim steuersatzID = 1
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT [Steuersatz] FROM [tblSteuersätze] where nr='" & BELEG.Steuerschlüssel & "'", "FMZOLL")
Select Case steuersatz
Case 0.19 : steuersatzID = 1
Case 0.07 : steuersatzID = 2
Case 0.00 : steuersatzID = 6
End Select
' MsgBox(POS.Anzahl)
' MsgBox(POS.Betrag)
position_vat.UST_SCHLUESSEL = steuersatzID 'm_com.GetTaxIds(cashbox,) 'Convert.ToInt32(dgvBonPos.Rows[m_dgvCurrentRow].Cells["UST_SCHLUESSEL"].Value)
Dim steuerBetrag = POS.Betrag * position_vat.UST_SCHLUESSEL
position_vat.POS_BRUTTO = POS.Betrag + steuerBetrag 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_BRUTTO"].Value)
position_vat.POS_NETTO = POS.Betrag 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_NETTO"].Value)
position_vat.POS_UST = steuerBetrag 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_UST"].Value)
position_vat.POS_BRUTTO *= stornoVz
position_vat.POS_NETTO *= stornoVz
position_vat.POS_UST *= stornoVz
Dim AddPositionToReceiptResultSpecified As Boolean
[error] = m_com.AddPositionToReceipt(cashbox, position, position_vat, transactionNumber)
cntZeile += 1
GES_BRUTTO += position_vat.POS_BRUTTO
Next
' MsgBox("6: " & GES_BRUTTO)
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error4", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
'Rechnung abschließen
Dim bonkopfFinish As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService_2022.BonKopfFinish = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService_2022.BonKopfFinish()
bonkopfFinish.Z_KASSE_ID = cashbox
bonkopfFinish.BON_ID = BON_ID
If Not Decimal.TryParse(GES_BRUTTO, bonkopfFinish.UMS_BRUTTO) Then
bonkopfFinish.UMS_BRUTTO = 0.00
End If
bonkopfFinish.PROCESS_TYPE = "Kassenbeleg-V1"
bonkopfFinish.payment_currencies = {"EUR"}
bonkopfFinish.payment_types = {"Bar"}
bonkopfFinish.payment_per_currency = {GES_BRUTTO} '{0.0} 'BETRAG"!!!!!!!!!!!!
' MsgBox("6,1: ")
Dim FinishReceiptResult As Boolean = True
Dim FinishReceiptResultSpecified As Boolean
[error] = m_com.FinishReceipt(cashbox, bonkopfFinish, transactionNumber)
' MsgBox("6,2: ")
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error5", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
' Kassenabschluss anlegen über alle noch nicht abgeschlossenen Rechnungen zu dieser Kasse
' Error = m_com.CreateCashpointClosing(cashbox)
' ' DSFinV-K-Export
' Int from = 0
'Int to = 10
'Dim ret = m_com.ExportCSVFiles(from, to, tbSelectedFolder.Text, tbZipName.Text, True, True,
'true, true, true, true, true, true,
'true, true, true, true,
'true, true, true, true, true,
'true, true, true);
'If (ret == ErrorCode.OK) Then
'{
'MessageBox.Show("Die CSV Dateien wurden im Ordner " + tbSelectedFolder.Text + " angelegt und in die Zip-Datei " + tbZipName.Text + " gepackt.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
'}
'Else
'{
'MessageBox.Show("Beim exportieren der CSV-Dateien ging etwas schief:\r\n" + ret.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
'}
' MsgBox("7")
Dim transactionNumberRet As String
Dim serialNumber As String
Dim signature As String
Dim transactionStart As Date
Dim transactionFinish As Date
Dim sigCounter As String
Dim transactionStartSpecified As Boolean
Dim transactionFinishSpecified As Boolean
Dim GetLastReceiptValuesResultSpecified As Boolean
'
[error] = m_com.GetLastReceiptValues(cashbox, transactionNumberRet, serialNumber, signature, transactionStart, transactionFinish, sigCounter)
' MsgBox("8")
Dim qrCode As String = String.Empty
Dim mimeType As String = String.Empty
Dim GetLastReceiptQrCodeResult As Boolean
Dim GetLastReceiptQrCodeResultSpecified As Boolean
[error] = m_com.GetLastReceiptQrCode(cashbox, qrCode, mimeType)
QR_CodeString = qrCode
LastJWS = signature
' MsgBox("9")
If QR_CodeString.Length > 50 And LastJWS.Length > 50 Then
Return True
End If
Catch ex As Exception
MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
End Try
Return False
End Function
Shared Function stornoRKSV_DE(PERSONAL As cPersonal, BELEG As EABeleg, ByVal kasse As cRKSV_Kasse, ByVal RKSV_Beleg_Id As Integer, ByVal OLD_RKSV_Beleg_Id As Object, ByVal summeBRUTTO As Double, ByRef QR_CodeString As String, ByRef LastJWS As String, TEST As Boolean, ByRef answer As String) As Boolean
Try
' MsgBox("0: ")
Dim cashbox As String = kasse.rksv_KassaGuid '"VERAG_GMBH_KASSE_01" "KASSA 001"
'Dim endpoint = New System.ServiceModel.EndpointAddress(getRKSVLink(kasse))
' Dim m_com As VERAG_PROG_ALLGEMEIN.DSFinVKService.DSFinVKServerClient = New VERAG_PROG_ALLGEMEIN.DSFinVKService.DSFinVKServerClient("DSFinVKService", endpoint) '"http://ymgk028055.verag.ost.dmn:8733/DSFinVKService")
Dim m_com As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.DSFinVKServer = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.DSFinVKServer() 'PROBLEM??
m_com.Url = "http://ymgk028055.verag.ost.dmn:8733/DSFinVKService"
Dim [error] As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.ErrorCode
Dim InitializeLibraryResultSpecified As Boolean
' Dim [error] = "" 'm_com.InitializeLibrary(tbLicense.Text, "D:\Database\DSFinVK\dsfinvkdb.db3", "Administrator", "test", cashbox)
m_com.InitializeLibrary("SQLGUIDE01.verag.ost.dmn", "itg_RKSV_DE", "dsfinvk", "dsfinvk#1337", cashbox, [error], InitializeLibraryResultSpecified)
' Dim m_com As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.DSFinVKServer = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.DSFinVKServer() 'PROBLEM??
' Dim m_com As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService_2022.DSFinVKServerClient = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService_2022.DSFinVKServerClient() 'PROBLEM??
' m_com.Url = "http://ymgk028055.verag.ost.dmn:8733/DSFinVKService"
'Dim [error] As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.ErrorCode
'Dim InitializeLibraryResultSpecified As Boolean
' Dim [error] = "" 'm_com.InitializeLibrary(tbLicense.Text, "D:\Database\DSFinVK\dsfinvkdb.db3", "Administrator", "test", cashbox)
' m_com.InitializeLibrary("SQLGUIDE01.verag.ost.dmn", "itg_RKSV_DE", "dsfinvk", "dsfinvk#1337", cashbox, [error], InitializeLibraryResultSpecified)
' MsgBox("1: " & [error])
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
If [error].ToString() <> "CASHBOX_ALREADY_MANAGED" Then '--> CASHBOX_ALREADY_MANAGED --> der Fehler darf auftreten, die Cashbox wird Serverseitig initialisert, hier nur der Versuch, falls das nciht geschehen ist... lt. Jan Mika / AITG
MessageBox.Show([error].ToString(), "Error1", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
End If
' MsgBox("2")
Dim BON_ID As Integer = 0
If False Then
Dim BON_IDSpecified = False
Dim GetNextBON_IDResultSpecified = False
m_com.GetNextBON_ID(cashbox, BON_ID, BON_IDSpecified, [error], GetNextBON_IDResultSpecified)
' MsgBox("3: " & [error])
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
If [error].ToString() <> "CASHBOX_ALREADY_MANAGED" Then '--> CASHBOX_ALREADY_MANAGED --> der Fehler darf auftreten, die Cashbox wird Serverseitig initialisert, hier nur der Versuch, falls das nciht geschehen ist... lt. Jan Mika / AITG
MessageBox.Show([error].ToString(), "Error2", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
End If
Else
' MsgBox(RKSV_Beleg_Id)
BON_ID = RKSV_Beleg_Id
End If
'Dim BON_ID As Integer = 0
'Dim BON_IDSpecified = False
'Dim GetNextBON_IDResultSpecified = False
'm_com.GetNextBON_ID(cashbox, BON_ID, BON_IDSpecified, [error], GetNextBON_IDResultSpecified)
''MsgBox("3: " & [error])
'If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
' MessageBox.Show([error].ToString(), "Error2", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' Return False
'End If
'Dim BON_NR As Integer = 0
'[error] = m_com.GetNextBON_NR(cashbox, BON_NR)
'If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
' MessageBox.Show([error].ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' Return False
'End If
' MsgBox("4")
'Rechnung beginnen
Dim stornoVz = -1
Dim bonkopfBegin As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonKopfBegin = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonKopfBegin()
bonkopfBegin.Z_KASSE_ID = cashbox
bonkopfBegin.BEDIENER_ID = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID 'tbBEDIENER_ID.Text
bonkopfBegin.BEDIENER_NAME = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME 'tbBEDIENER_NAME.Text
bonkopfBegin.BON_ID = BON_ID.ToString()
bonkopfBegin.REF_BON_ID = If(OLD_RKSV_Beleg_Id, "").ToString()
bonkopfBegin.BON_NAME = "" 'tbBON_NAME.Text
bonkopfBegin.BON_NOTIZ = "" 'tbBON_NOTIZ.Text
bonkopfBegin.BON_NR = BON_ID
bonkopfBegin.BON_STORNO = 1 'If(cbBON_STORNO.Checked, "1", "0")
bonkopfBegin.BON_TYP = "Beleg" 'cmbBON_TYP.SelectedItem.ToString()
bonkopfBegin.KUNDE_ID = If(BELEG.KundenNr > 0, BELEG.KundenNr, "") 'tbKUNDE_ID.Text
bonkopfBegin.KUNDE_LAND = If(BELEG.LandKz, "") 'tbKUNDE_LAND.Text
bonkopfBegin.KUNDE_NAME = If(BELEG.Frachtführer, "") 'tbKUNDE_NAME.Text
bonkopfBegin.KUNDE_ORT = If(BELEG.Ort, "") 'tbKUNDE_ORT.Text
bonkopfBegin.KUNDE_PLZ = If(BELEG.PLZ, "") 'tbKUNDE_PLZ.Text
bonkopfBegin.KUNDE_STRASSE = If(BELEG.Straße, "") ' tbKUNDE_STRASSE.Text
bonkopfBegin.KUNDE_TYP = "" ' tbKUNDE_TYP.Text
bonkopfBegin.KUNDE_USTID = If(BELEG.UstIdKz, "") & If(BELEG.UstIdNr, "") ' tbKUNDE_USTID.Text
bonkopfBegin.TERMINAL_ID = "" 'tbTERMINAL_ID.Text
Dim transactionNumber As Integer = 0
Dim transactionNumberSpecified As Boolean
Dim BeginReceiptResultSpecified As Boolean
m_com.BeginReceipt(cashbox, bonkopfBegin, transactionNumber, transactionNumberSpecified, [error], BeginReceiptResultSpecified)
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error3", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
' MsgBox("5 ANZ: " & BELEG.POS.Count)
Dim cntZeile = 1
Dim GES_BRUTTO As Double = 0
For Each POS In BELEG.POS
'Bonposition hinzufügen
Dim position As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonPosition = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonPosition()
position.AGENTUR_ID = -1 'Convert.ToInt32(dgvBonPos.Rows[m_dgvCurrentRow].Cells["AGENTUR_ID"].Value)
position.ARTIKELTEXT = POS.LeistungsBez 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["ARTIKELTEXT"].Value)
position.ART_NR = POS.LeistungsNr ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["ART_NR"].Value)
position.BON_ID = Convert.ToString(BON_ID)
position.EINHEIT = "Stk." ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["EINHEIT"].Value)
position.FAKTOR = 1 ' Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["FAKTOR"].Value)
position.GTIN = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GTIN"].Value)
position.GUTSCHEIN_NR = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GUTSCHEIN_NR"].Value)
position.GV_NAME = "" ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GV_NAME"].Value)
position.GV_TYP = "Umsatz" ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GV_TYP"].Value)
position.INHAUS = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["INHAUS"].Value)
position.MENGE = POS.Anzahl 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["MENGE"].Value)
position.POS_TERMINAL_ID = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_TERMINAL_ID"].Value)
position.POS_ZEILE = cntZeile 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_ZEILE"].Value)
position.P_STORNO = 0 'Hier kein Storno, das wäre nur wenn eine Pos storniert wird...
position.STK_BR = POS.Preis 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["STK_BR"].Value)
position.WARENGR = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["WARENGR"].Value)
position.WARENGR_ID = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["WARENGR_ID"].Value)
position.Z_KASSE_ID = cashbox 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["Z_KASSE_ID"].Value)
' Beträge der Position
Dim position_vat = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonPosition_Ust()
position_vat.BON_ID = position.BON_ID
position_vat.POS_ZEILE = position.POS_ZEILE
Dim steuersatzID = 1
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT [Steuersatz] FROM [tblSteuersätze] where nr='" & BELEG.Steuerschlüssel & "'", "FMZOLL")
Select Case steuersatz
Case 0.19 : steuersatzID = 1
Case 0.07 : steuersatzID = 2
Case 0.00 : steuersatzID = 6
End Select
' MsgBox(POS.Anzahl)
' MsgBox(POS.Betrag)
position_vat.UST_SCHLUESSEL = steuersatzID 'm_com.GetTaxIds(cashbox,) 'Convert.ToInt32(dgvBonPos.Rows[m_dgvCurrentRow].Cells["UST_SCHLUESSEL"].Value)
Dim steuerBetrag = POS.Betrag * position_vat.UST_SCHLUESSEL
position_vat.POS_BRUTTO = POS.Betrag + steuerBetrag 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_BRUTTO"].Value)
position_vat.POS_NETTO = POS.Betrag 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_NETTO"].Value)
position_vat.POS_UST = steuerBetrag 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_UST"].Value)
position_vat.POS_BRUTTO *= stornoVz
position_vat.POS_NETTO *= stornoVz
position_vat.POS_UST *= stornoVz
Dim AddPositionToReceiptResultSpecified As Boolean
m_com.AddPositionToReceipt(cashbox, position, position_vat, transactionNumber, transactionNumberSpecified, [error], AddPositionToReceiptResultSpecified)
cntZeile += 1
GES_BRUTTO += position_vat.POS_BRUTTO
Next
' MsgBox("6: " & GES_BRUTTO)
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error4", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
'Rechnung abschließen
Dim bonkopfFinish As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonKopfFinish = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonKopfFinish()
bonkopfFinish.Z_KASSE_ID = cashbox
bonkopfFinish.BON_ID = BON_ID
If Not Decimal.TryParse(GES_BRUTTO, bonkopfFinish.UMS_BRUTTO) Then
bonkopfFinish.UMS_BRUTTO = 0.00
End If
bonkopfFinish.PROCESS_TYPE = "Kassenbeleg-V1"
bonkopfFinish.payment_currencies = {"EUR"}
bonkopfFinish.payment_types = {"Bar"}
bonkopfFinish.payment_per_currency = {GES_BRUTTO} '{0.0} 'BETRAG"!!!!!!!!!!!!
' MsgBox("6,1: ")
Dim FinishReceiptResult As Boolean = True
Dim FinishReceiptResultSpecified As Boolean
m_com.FinishReceipt(cashbox, bonkopfFinish, transactionNumber, FinishReceiptResult, [error], FinishReceiptResultSpecified)
' MsgBox("6,2: ")
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error5", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
' Kassenabschluss anlegen über alle noch nicht abgeschlossenen Rechnungen zu dieser Kasse
' Error = m_com.CreateCashpointClosing(cashbox)
' ' DSFinV-K-Export
' Int from = 0
'Int to = 10
'Dim ret = m_com.ExportCSVFiles(from, to, tbSelectedFolder.Text, tbZipName.Text, True, True,
'true, true, true, true, true, true,
'true, true, true, true,
'true, true, true, true, true,
'true, true, true);
'If (ret == ErrorCode.OK) Then
'{
'MessageBox.Show("Die CSV Dateien wurden im Ordner " + tbSelectedFolder.Text + " angelegt und in die Zip-Datei " + tbZipName.Text + " gepackt.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
'}
'Else
'{
'MessageBox.Show("Beim exportieren der CSV-Dateien ging etwas schief:\r\n" + ret.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
'}
' MsgBox("7")
Dim transactionNumberRet As String
Dim serialNumber As String
Dim signature As String
Dim transactionStart As Date
Dim transactionFinish As Date
Dim sigCounter As String
Dim transactionStartSpecified As Boolean
Dim transactionFinishSpecified As Boolean
Dim GetLastReceiptValuesResultSpecified As Boolean
'
m_com.GetLastReceiptValues(cashbox, transactionNumberRet, serialNumber, signature, transactionStart, transactionStartSpecified, transactionFinish, transactionFinishSpecified, sigCounter, [error], GetLastReceiptValuesResultSpecified)
' MsgBox("8")
Dim qrCode As String = String.Empty
Dim mimeType As String = String.Empty
Dim GetLastReceiptQrCodeResult As Boolean
Dim GetLastReceiptQrCodeResultSpecified As Boolean
m_com.GetLastReceiptQrCode(cashbox, qrCode, mimeType, GetLastReceiptQrCodeResult, GetLastReceiptQrCodeResultSpecified)
QR_CodeString = qrCode
LastJWS = signature
' MsgBox("9")
If QR_CodeString.Length > 50 And LastJWS.Length > 50 Then
Return True
End If
Catch ex As Exception
MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
End Try
Return False
End Function
Shared Function stornoRKSV(ByVal kasse As cRKSV_Kasse, ByVal belegDat As DateTime, ByVal steuerSchluessel As Integer, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, ByRef QR_CodeString As String, ByRef LastJWS As String, ByRef answer As String) As Boolean
Try
If RKSV_Beleg_Id <= 0 Then
MsgBox("Keine RKSV-Beleg-ID")
Return False
End If
Dim client As RKSVWcfClient = New RKSVWcfClient()
client.Endpoint.Address = New System.ServiceModel.EndpointAddress(getRKSVLink(kasse))
client.Open()
' svcRKSV.DBUserCredentials m_credentials = new svcRKSV.DBUserCredentials();
Dim credentials As New SDL.RKSVServer.DBUserCredentials
credentials.Database = "RKSVWcfDB"
credentials.Server = "AVISO\SQLEXPRESS"
credentials.Username = "Admin"
credentials.Password = "verag#2"
'credentials.CashboxID = kasse '"VERAG-SUB-KASSE-ZOLL"
'credentials.CompanyGUID = CompanyGUID ' "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
credentials.CashboxID = kasse.rksv_bez '"VERAG-SUB-KASSE-ZOLL"
credentials.CompanyGUID = kasse.rksv_CompanyGUID ' "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
Dim jws As String = String.Empty
Dim qr As String = String.Empty
Dim ocra As String = String.Empty
'Dim answer As String = String.Empty
Dim Belegnummer = RKSV_Beleg_Id
Dim BelegDatumUhrzeit = belegDat
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & steuerSchluessel & "' ", "FMZOLL")
Dim BetragSatzNormal = IIf(steuersatz = 0.2, summeBRUTTO, 0.0) 'summe
Dim BetragSatzErm1 = IIf(steuersatz = 0.1, summeBRUTTO, 0.0)
Dim BetragSatzErm2 = IIf(steuersatz = 0.13, summeBRUTTO, 0.0)
Dim BetragSatzNull = IIf(steuersatz = 0.0, summeBRUTTO, 0.0)
Dim BetragSatzBesonders = IIf(steuersatz = 0.19, summeBRUTTO, 0.0)
Dim StandUmsatzzaehler = kasse.rksv_Umsatzzaehler 'KASSE.rksv_Umsatzzaehler
' Dim BetragSatzNormal = summe * -1
' Dim BetragSatzErm1 = IIf(steuersatz = 0.1, summe, 0.0) * -1
' Dim BetragSatzErm2 = IIf(steuersatz = 0.13, summe, 0.0) * -1
' Dim BetragSatzNull = IIf(steuersatz = 0.0, summe, 0.0) * -1
' Dim BetragSatzBesonders = IIf(steuersatz = 0.19, summe, 0.0) * -1
' Dim StandUmsatzzaehler = kasse.rksv_Umsatzzaehler
' Dim BetragSatzBesonders = 0
' Dim BetragSatzBesonders = 0
' Dim BetragSatzBesonders = 0
'client.ExportJWS
' MsgBox(credentials.CashboxID & " credentials.CashboxID")
' MsgBox(credentials.CompanyGUID & " credentials.CompanyGUID")
If (client.SignStornoReceipt(credentials, Belegnummer, BelegDatumUhrzeit, BetragSatzNormal, BetragSatzErm1, BetragSatzErm2, BetragSatzBesonders, BetragSatzNull, jws, qr, ocra, answer)) Then
QR_CodeString = qr
LastJWS = jws
Else
If (jws.Length > 50) Then
QR_CodeString = qr
' Dim bmpBytes As Byte() = Convert.FromBase64String(qr)
' Dim ms As New System.IO.MemoryStream(bmpBytes)
' Dim bmp As Image = Image.FromStream(ms)
' QR_Image = Image.FromStream(ms)
' pbQrCode.Image = bmp
LastJWS = jws
Else
Return False
End If
End If
Return True
Catch ex As Exception
MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
End Try
Return False
End Function
'Beleg storno und Kassenbuch Gegenbuchung
Shared Function STORNO(BELEG As EABeleg, ByVal grund As String, Firma As String, Optional stornoGegenbuchen As Boolean = False) As EABeleg
If (Not BELEG.gebuchtStorno) Or stornoGegenbuchen Then
' MsgBox("SELECT * FROM tblKassenbuch WHERE [Mandant]='" & BELEG.Mandant & "' AND Niederlassung='" & BELEG.Niederlassung & "' AND Benutzer='" & BELEG.Benutzer & "' AND Geschäftsjahr='" & getGJ(BELEG.BelegDat) & "' AND BelegNr='" & BELEG.BelegNr & "'")
'Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM tblKassenbuch WHERE [Mandant]='" & BELEG.Mandant & "' AND Niederlassung='" & BELEG.Niederlassung & "' AND Benutzer='" & BELEG.Benutzer & "' AND Geschäftsjahr='" & getGJ_FIRMA(BELEG.BelegDat, Firma) & "' AND BelegNr='" & BELEG.BelegNr & "'", "FMZOLL")
Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM tblKassenbuch WHERE [Mandant]='" & BELEG.Mandant & "' AND Niederlassung='" & BELEG.Niederlassung & "' AND Benutzer='" & BELEG.Benutzer & "' AND Geschäftsjahr='" & getGJ_FIRMA(BELEG.BelegDat, Firma) & "' AND rksv_BelegId='" & BELEG.rksv_BelegId & "'", "FMZOLL")
' Dim GJ = New cGeschaeftsjahr(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, getGJ(BELEG.BelegDat))
If dt IsNot Nothing Then
For Each r In dt.Rows
Dim KBEntry As New cKassenbuch("LOAD", BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, getGJ_FIRMA(BELEG.BelegDat, Firma), r("JournalNr"))
KBEntry.JournalNr = cRKSV.getNewJournalNr(BELEG, Firma) ' GJ.INCREASE_JOURNAL() 'Vergabe der Journalnummer'
KBEntry.BelegDat = BELEG.BelegDat
KBEntry.Buchungsdatum = Now.ToShortDateString
KBEntry.Soll = KBEntry.Soll * -1
KBEntry.Haben = KBEntry.Haben * -1
KBEntry.Steuerbetrag = KBEntry.Steuerbetrag * -1
KBEntry.INSERT()
Next
End If
If Not stornoGegenbuchen Then
BELEG.gebuchtStorno = True
BELEG.storniert = True
BELEG.Stornogrund = grund
BELEG.SAVE()
End If
End If
Return BELEG
End Function
'Beleg storno und Kassenbuch Gegenbuchung
Shared Function STORNO_BELEG_ONLY(BELEG As EABeleg, ByVal grund As String) As EABeleg
BELEG.gebuchtStorno = True
BELEG.storniert = True
BELEG.Stornogrund = grund
BELEG.SAVE()
Return BELEG
End Function
'Beleg storno und Kassenbuch Gegenbuchung
Shared Function DELETE(BELEG As EABeleg, Firma As String) As Boolean
Try
Dim dt As DataTable = SQL.loadDgvBySql("DELETE FROM tblKassenbuch WHERE [Mandant]='" & BELEG.Mandant & "' AND Niederlassung='" & BELEG.Niederlassung & "' AND Benutzer='" & BELEG.Benutzer & "' AND Geschäftsjahr='" & getGJ_FIRMA(BELEG.BelegDat, Firma) & "' AND BelegNr='" & BELEG.BelegNr & "'", "FMZOLL")
Return BELEG.DELETE()
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
Return True
End Function
Shared Function STORNO_RUECKGAENGIG(BELEG As EABeleg, ByVal grund As String, Firma As String) As EABeleg
If BELEG.gebuchtStorno Then
Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM tblKassenbuch WHERE [Mandant]='" & BELEG.Mandant & "' AND Niederlassung='" & BELEG.Niederlassung & "' AND Benutzer='" & BELEG.Benutzer & "' AND Geschäftsjahr='" & getGJ_FIRMA(BELEG.BelegDat, Firma) & "' AND BelegNr='" & BELEG.BelegNr & "'", "FMZOLL")
' Dim GJ = New cGeschaeftsjahr(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, getGJ(BELEG.BelegDat))
If dt IsNot Nothing Then
For Each r In dt.Rows
Dim KBEntry As New cKassenbuch("LOAD", BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, getGJ_FIRMA(BELEG.BelegDat, Firma), r("JournalNr"))
KBEntry.JournalNr = cRKSV.getNewJournalNr(BELEG, Firma) ' GJ.INCREASE_JOURNAL() 'Vergabe der Journalnummer'
KBEntry.BelegDat = BELEG.BelegDat
KBEntry.Buchungsdatum = Now.ToShortDateString
KBEntry.Soll = KBEntry.Soll * -1
KBEntry.Haben = KBEntry.Haben * -1
KBEntry.Steuerbetrag = KBEntry.Steuerbetrag * -1
KBEntry.INSERT()
Next
End If
BELEG.gebuchtStorno = False
BELEG.storniert = False
BELEG.Stornogrund = ""
BELEG.SAVE()
End If
Return BELEG
End Function
Shared Function getGJ_FIRMA(BelegDat As Date, FIRMA As String) As Integer
If FIRMA = "" Then FIRMA = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Select Case FIRMA
Case "VERAG", "ATILLA"
Return IIf(BelegDat.Month = 1, BelegDat.Year - 1, BelegDat.Year)
Case Else
Return BelegDat.Year
End Select
End Function
Shared Function getGJ(BelegDat As Date, FIRMA_ID As Integer) As Integer
'If FIRMA = "" Then FIRMA = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Select Case FIRMA_ID
Case -1, 1, 3, 11, 7, 15 'Abweichendes WJ
Return IIf(BelegDat.Month = 1, BelegDat.Year - 1, BelegDat.Year)
Case Else
Return BelegDat.Year
End Select
End Function
'Shared Function getGJ(BelegDat As Date, FIRMAId As String) As Integer
' If FIRMA = "" Then FIRMA = New VERAG_PROG_ALLGEMEIN.cFirmen()
' Select Case FIRMA
' Case "IMEX", "FRONTOFFICE", "UNISPED", "AMBAR"
' Return BelegDat.Year
' Case Else
' Return IIf(BelegDat.Month = 1, BelegDat.Year - 1, BelegDat.Year)
' End Select
'End Function
'Shared Function getGJ_ByRksvId(BelegDat As Date, RksvId As Integer) As Integer
' Select Case RksvId
' Case 1
' Return getGJ(BelegDat, "VERAG")
' Case Else
' Return IIf(BelegDat.Month = 1, BelegDat.Year - 1, BelegDat.Year)
' End Select
'End Function
Shared Function getGJ_EndOfYear(GeschaerftsJahr As Integer, Optional FIRMA As String = "") As Date
If FIRMA = "" Then FIRMA = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Select Case FIRMA
Case "VERAG", "ATILLA"
Return CDate("31.01." & (GeschaerftsJahr + 1))
Case Else
Return CDate("31.12." & GeschaerftsJahr)
End Select
End Function
Shared Function getGJ_BeginOfYear(GeschaerftsJahr As Integer, Optional FIRMA As String = "") As Date
If FIRMA = "" Then FIRMA = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Select Case FIRMA
Case "VERAG", "ATILLA"
Return CDate("01.02." & GeschaerftsJahr)
Case Else
Return CDate("01.01." & GeschaerftsJahr)
End Select
End Function
Public Shared Function isforbiddenDate() As Boolean
Dim lastDayofMonth = CDate("01." & Now.AddMonths(1).Month & "." & Now.AddMonths(1).Year).AddDays(-1)
Dim nowdate As Date = CDate("31.01.2018") 'Now
'wenn letzter Tag im Monat...
If nowdate.ToShortDateString = lastDayofMonth.ToShortDateString Then
Dim zp As Date = CDate(Now.ToShortDateString & " 23:54:50")
'... und kurz vor Mitternacht:
If Now > zp Then
Return True
End If
End If
Return False
End Function
'cboPrinter.SelectedItem.ToString
Public Shared Function printKundenBeleg(BELEG As EABeleg, KASSE As cRKSV_Kasse, PERSONAL As cPersonal, printername As String, showDok As Boolean) As Boolean
'Dim print As New frmPrintLayout
Dim rpt As New rptKundenBeleg
rpt.lblRgNr.Text = BELEG.rksv_BelegId '"12345 / TR"
rpt.lblRgDatum.Text = BELEG.BelegDat.ToString("dd.MM.yyyy") ' HH:mm")
' rpt.lblKdNr.Text = IIf(BELEG.KundenNr > 0, BELEG.KundenNr, "")
rpt.lblFirma.Text = BELEG.Ordnungsbegriff
Dim adr1 = BELEG.Straße
Dim adr2 = (BELEG.LandKz & " " & BELEG.PLZ & " " & BELEG.Ort).Trim
If adr1.Trim <> "" Then rpt.lblFirma.Text &= vbNewLine & adr1
If adr2.Trim <> "" Then rpt.lblFirma.Text &= vbNewLine & adr2
Dim uidkdnr = (BELEG.UstIdKz & " " & BELEG.UstIdNr).Trim
If uidkdnr <> "" Then uidkdnr &= vbNewLine
uidkdnr &= IIf(BELEG.KundenNr > 0, BELEG.KundenNr, "")
rpt.lblUID.Text = uidkdnr
rpt.lblFahrer.Text = BELEG.Fahrer
rpt.lblLKWKz.Text = BELEG.LKW_Kennzeichen
If BELEG.LKW_Kennzeichen = "" Then rpt.lblKennzeichenUeberschrift.Text = "" ' = False
rpt.txtPassnummer.Text = BELEG.Passnummer
If BELEG.Passnummer = "" Then rpt.TextBox1.Text = "" ' = False
If BELEG.Fahrer = "" Then rpt.lblFahrerUeberschrift.Text = "" '= False
rpt.lblTextSteuern.Text = SQL.getValueTxtBySql("SELECT TOP 1 isnull(Beschreibung,'< keine Steuerberechnung >') FROM [tblSteuersätze] WHERE Nr='" & BELEG.Steuerschlüssel & "'", "FMZOLL")
Dim steuersatz = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & BELEG.Steuerschlüssel & "' ", "FMZOLL")
rpt.lblSachbearbeiter.Text = PERSONAL.Name
rpt.lblKbNr.Text = "( " & PERSONAL.KassenbuchNr & " )"
rpt.Label25.Visible = (BELEG.DruckDatumUhrzeit IsNot Nothing) 'KOPIE
rpt.lblBetragSum.Text = ""
rpt.lblGesamtbetrag.Text = ""
rpt.lblBetragSteuern.Text = ""
rpt.lblPosNr.Text = ""
If If(BELEG.LKW_Beleg, True) Then
If BELEG.FilialenNr > 0 And BELEG.AbfertigungsNr > 0 Then
rpt.lblPosNr.Text = BELEG.FilialenNr & " / " & BELEG.AbfertigungsNr
End If
Else
'alle betroffenen AbfNr:
For Each b In BELEG.POS
If b.FilialenNr > 0 And b.AbfertigungsNr > 0 Then
If Not rpt.lblPosNr.Text.Contains(b.FilialenNr & "/" & b.AbfertigungsNr) Then
rpt.lblPosNr.Text &= b.FilialenNr & "/" & b.AbfertigungsNr & vbNewLine
End If
End If
Next
End If
rpt.lblPosNr.Text = rpt.lblPosNr.Text.Trim
If rpt.lblPosNr.Text = "" Then rpt.lblPosNr.Visible = False : rpt.Label26.Visible = False
If If(BELEG.LKW_Id, 0) > 0 Then
rpt.txtLKWId.Text = BELEG.LKW_Id
Else
rpt.txtLKWId.Visible = False : rpt.Label1.Visible = False
End If
If BELEG.storniert Then
rpt.Label25.Text = "**** STORNO ****"
rpt.Label25.Visible = True
rpt.lblStorno.Visible = True
rpt.lblStorno.Text = "STORNORECHNUNG" & vbNewLine & BELEG.Stornogrund
End If
Select Case KASSE.rksv_bez
Case "VERAG-SUB-KASSE-ZOLL"
'Default Werte:
'rpt.picVERAG.Image = My.Resources.Verag_AG_Logo2 'Standart
rpt.lblFirma_Name.Text = "VERAG Spedition AG"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 100" & vbNewLine & "UID: ATU53187000 "
Case "VERAG-CUSTOMSSERVICE-KASSE-ZOLL"
'Default Werte:
rpt.picVERAG.Image = My.Resources.Verag_Customs_Service_GMBH_Logo_med
rpt.lblFirma_Name.Text = "VERAG Customs Service GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 14" & vbNewLine & "UID: ATU68374109 "
Case "ATILLA-SUB-KASSE-ZOLL"
'Default Werte:
rpt.picVERAG.Image = My.Resources.Atilla_big_med
rpt.lblFirma_Name.Text = "ATILLA Spedition GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 15" & vbNewLine & "UID: ATU63158647 "
Case "VERAG-GMBH-KASSE-ZOLL"
'Default Werte:
rpt.picVERAG.Image = My.Resources.Verag_Spedition_GMBH_Logo_med
rpt.lblFirma_Name.Text = "VERAG Spedition GmbH"
rpt.lblFirma_Details.Text = "D 94152 Neuhaus am Inn | Hartham 6" & vbNewLine & "UID: DE813570890 "
Select Case PERSONAL.Niederlassung
Case "SBG"
rpt.lblFirma_Details.Text &= vbNewLine & "Niederlassung: Bad Reichenhall"
Case "WAI"
rpt.lblFirma_Details.Text &= vbNewLine & "Niederlassung: Waidhaus"
End Select
Case "KASSE-VERWALTUNG"
'Default Werte:
' rpt.picVERAG.Image = My.Resources.Verag_AG_Logo2
rpt.lblFirma_Name.Text = "KASSE VERWALTUNG"
rpt.lblFirma_Details.Text = " *** nur intern ***"
Case "IMEX-KASSE-VERWALTUNG"
rpt.lblFirma_Name.Text = "KASSE VERWALTUNG"
rpt.lblFirma_Details.Text = " *** nur intern ***"
rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple
rpt.lblFirma_Name.Text = "IMEX Customs Service GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 15" & vbNewLine & "UID: ATU68490714 "
Case "TEST-KASSE"
'Default Werte:
' rpt.picVERAG.Image = My.Resources.Verag_AG_Logo2
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "IMEX" Then rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then rpt.picVERAG.Image = My.Resources.Atilla_big_med
rpt.lblFirma_Name.Text = "TEST-KASSE"
rpt.lblFirma_Details.Text = " *** nur intern ***"
Case "IMEX-KASSE-SUB"
'Default Werte:
rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple
rpt.lblFirma_Name.Text = "IMEX Customs Service GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 15" & vbNewLine & "UID: ATU68490714 "
Case "FRONT-OFFICE-SUB-KASSE"
'Default Werte:
rpt.picVERAG.Image = My.Resources.FrontOfficeSUB
rpt.lblFirma_Name.Text = "Front-Office Suben eG"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 14" & vbNewLine & "UID: ATU74813856 "
End Select
If KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv Then
If BELEG.rksv_qr Is Nothing OrElse BELEG.rksv_qr = "" Then
If KASSE.rksv_KassaGuid <> "KASSE_01" Then
MsgBox("Fehler: QR-Code wurde nicht richtig erstellt!")
End If
Else
Dim bmpBytes As Byte() = Convert.FromBase64String(BELEG.rksv_qr)
Dim MS As New System.IO.MemoryStream(bmpBytes)
Dim QR_Image = Image.FromStream(MS)
rpt.QR.Image = QR_Image
End If
End If
' rpt.DataSource = cProgramFunctions.dgridViewTods(dgvBelegPos)
Dim dt As New DataTable
dt.Columns.Add("clmnAnzahl", GetType(String))
dt.Columns.Add("clmnBeschreibung", GetType(String))
dt.Columns.Add("clmnBetrag", GetType(String))
dt.Columns.Add("clmnPreis", GetType(String))
For Each p In BELEG.POS
' dt.Rows.Add(p.Anzahl, p.Leistungsbeschreibung, p.Betrag, p.Preis)
If BELEG.Belegart = 1 Then
dt.Rows.Add(p.Anzahl, p.LeistungsBez, p.Betrag, p.Preis)
Else
dt.Rows.Add(p.Anzahl, p.LeistungsBez, p.Betrag * -1, p.Preis * -1)
End If
Next
rpt.DataSource = dt 'cProgramFunctions.dgridViewTods(dgvBelegPos)
Dim sum As Double = 0
'Dim cnt As Integer = 0
AddHandler rpt.Detail.Format, Sub()
rpt.lblLeistungsNr.Text = rpt.Fields.Item("clmnAnzahl").Value()
rpt.lblLeistun.Text = rpt.Fields.Item("clmnBeschreibung").Value()
rpt.lblBetrag.Text = CDbl(rpt.Fields.Item("clmnBetrag").Value()).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.lblBetragSum.Text = CDbl(sum).ToString("C")
Dim s As Double = IIf(IsNumeric(steuersatz), steuersatz, 0)
rpt.lblBetragSteuern.Text = CDbl(sum * s).ToString("C")
rpt.lblGesamtbetrag.Text = CDbl(sum + (sum * s)).ToString("C")
If sum < 0 Then rpt.Label2.Text = "Rechnungskorrektur Nr."
End Sub
'PaperKind = System.Drawing.Printing.PaperKind.Custom
' Me.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Custom
If showDok Then ' Wird angezeigt, nicht gedruckt
Dim print As New GrapeCity.ActiveReports.Viewer.Win.Viewer
print.Text = "Beleg"
Dim printForm As New frmPrintLayout
AddHandler print.LoadCompleted, Sub()
If BELEG.DruckDatumUhrzeit Is Nothing Then
BELEG.DruckDatumUhrzeit = Now
BELEG.SAVE()
End If
End Sub
printForm.Viewer.LoadDocument(rpt)
printForm.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
printForm.Show()
printForm.BringToFront()
Else
' print.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
' print.LoadDocument(rpt)
If printername <> "" Then
rpt.Document.Printer.PrinterName = printername
Else
Dim p As New PrintDialog
If p.ShowDialog() = DialogResult.OK Then
printername = p.PrinterSettings.PrinterName
Else
rpt.Dispose()
End If
End If
rpt.Run(False)
rpt.Document.Printer.PrinterSettings.Copies = 1
If Not rpt.Document.Print(False, False) Then
MsgBox("Problem beim Drucken.")
End If
If BELEG.DruckDatumUhrzeit Is Nothing Then
BELEG.DruckDatumUhrzeit = Now
BELEG.SAVE()
End If
rpt.Dispose()
End If
Return True
' Me.Cursor = Cursors.Default
End Function
Public Shared Function printKundenBelegLG(BELEG As EABeleg, KASSE As cRKSV_Kasse, PERSONAL As cPersonal, printername As String, Art As String) As Boolean
'Dim print As New frmPrintLayout
Dim print As New GrapeCity.ActiveReports.Viewer.Win.Viewer
print.Text = "Beleg"
Dim rpt As New rptLeihgeldBeleg
rpt.lblRgNr.Text = BELEG.rksv_BelegId '"12345 / TR"
rpt.lblRgDatum.Text = BELEG.BelegDat.ToString("dd.MM.yyyy") ' HH:mm")
' rpt.lblKdNr.Text = IIf(BELEG.KundenNr > 0, BELEG.KundenNr, "")
rpt.lblFrachtf.Text = BELEG.Ordnungsbegriff
Dim firenname = (If(BELEG.Name1, "") & If(BELEG.Name2, "")).Trim
Dim adr1 = BELEG.Straße
Dim adr2 = (BELEG.LandKz & " " & BELEG.PLZ & " " & BELEG.Ort).Trim
If adr1.Trim <> "" Then rpt.lblFrachtf.Text &= vbNewLine & adr1
If adr2.Trim <> "" Then rpt.lblFrachtf.Text &= vbNewLine & adr2
rpt.lblFirma.Text = If(BELEG.KundenNr > 0, BELEG.KundenNr & " - ", "") & If(firenname <> "", firenname, BELEG.Ordnungsbegriff) & If(adr1 <> "", vbNewLine & adr1, "") & If(adr2 <> "", vbNewLine & adr2, "")
rpt.txtFrachtfuhrer.Text = If(BELEG.FrachtführerKundenNr > 0, BELEG.FrachtführerKundenNr & " - ", "") & BELEG.Frachtführer
rpt.lblUID.Text = (BELEG.UstIdKz & " " & BELEG.UstIdNr).Trim
' rpt.lblKdNr.Text = IIf(BELEG.KundenNr > 0, BELEG.KundenNr, "")
rpt.Label24.Text = "Auszahlungsbetrag"
rpt.lblFahrer.Text = BELEG.Fahrer
rpt.lblFahrer2.Text = BELEG.Fahrer
rpt.lblLKWKz.Text = BELEG.LKW_Kennzeichen
rpt.lblPassnummer.Text = BELEG.Passnummer
' If BELEG.LKW_Kennzeichen = "" Then rpt.lblKennzeichenUeberschrift.Text = "" ' = False
' If BELEG.Fahrer = "" Then rpt.lblFahrerUeberschrift.Text = "" '= False
rpt.lblTextSteuern.Text = SQL.getValueTxtBySql("SELECT TOP 1 isnull(Beschreibung,'< keine Steuerberechnung >') FROM [tblSteuersätze] WHERE Nr='" & BELEG.Steuerschlüssel & "'", "FMZOLL")
Dim steuersatz = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & BELEG.Steuerschlüssel & "' ", "FMZOLL")
rpt.lblSachbearbeiter.Text = PERSONAL.Name
rpt.lblSachbearbeiter2.Text = PERSONAL.Name
rpt.lblKbNr.Text = "( " & PERSONAL.KassenbuchNr & " )"
rpt.Label25.Visible = (BELEG.DruckDatumUhrzeit IsNot Nothing) 'KOPIE
rpt.lblBetragSum.Text = ""
rpt.lblGesamtbetrag.Text = ""
rpt.lblBetragSteuern.Text = ""
rpt.lblPosNr.Text = IIf(BELEG.FilialenNr > 0, BELEG.FilialenNr & " / ", "") & BELEG.AbfertigungsNr
If BELEG.storniert Then
rpt.Label25.Text = "**** STORNO ****"
rpt.Label25.Visible = True
rpt.lblStorno.Visible = True
rpt.lblStorno.Text = "STORNORECHNUNG" & vbNewLine & BELEG.Stornogrund
End If
If Art = "LG" Then
ElseIf Art = "A" Then
End If
If KASSE IsNot Nothing Then
Select Case KASSE.rksv_bez
Case "VERAG-SUB-KASSE-ZOLL"
'Default Werte:
'rpt.picVERAG.Image = My.Resources.Verag_AG_Logo2 'Standart
rpt.lblFirma_Name.Text = "VERAG Spedition AG"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 100" & vbNewLine & "UID: ATU53187000 "
Case "VERAG-CUSTOMSSERVICE-KASSE-ZOLL"
'Default Werte:
rpt.picVERAG.Image = My.Resources.Verag_Customs_Service_GMBH_Logo_med
rpt.lblFirma_Name.Text = "VERAG Customs Service GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 14" & vbNewLine & "UID: ATU68374109 "
rpt.Label1.Text = "Wir bestätigen, den o.g. Betrag von der Firma VERAG Customs Service GmbH erhalten zu haben."
Case "ATILLA-SUB-KASSE-ZOLL"
'Default Werte:
rpt.picVERAG.Image = My.Resources.Atilla_big_med
rpt.lblFirma_Name.Text = "ATILLA Spedition GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 15" & vbNewLine & "UID: ATU63158647 "
rpt.Label1.Text = "Wir bestätigen, den o.g. Betrag von der Firma ATILLA Spedition GmbH erhalten zu haben."
Case "VERAG-GMBH-KASSE-ZOLL"
'Default Werte:
rpt.picVERAG.Image = My.Resources.Verag_Spedition_GMBH_Logo_med
rpt.lblFirma_Name.Text = "VERAG Spedition GmbH"
rpt.lblFirma_Details.Text = "D 94152 Neuhaus am Inn | Hartham 6" & vbNewLine & "UID: DE813570890 "
Case "KASSE-VERWALTUNG"
'Default Werte:
' rpt.picVERAG.Image = My.Resources.Verag_AG_Logo2
rpt.lblFirma_Name.Text = "KASSE VERWALTUNG"
rpt.lblFirma_Details.Text = " *** nur intern ***"
Case "IMEX-KASSE-VERWALTUNG"
rpt.lblFirma_Name.Text = "KASSE VERWALTUNG"
rpt.lblFirma_Details.Text = " *** nur intern ***"
rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple
rpt.lblFirma_Name.Text = "IMEX Customs Service GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 15" & vbNewLine & "UID: ATU68490714 "
Case "TEST-KASSE"
'Default Werte:
rpt.lblFirma_Name.Text = "TEST-KASSE"
rpt.lblFirma_Details.Text = " *** nur intern ***"
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX"
rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple
rpt.Label1.Text = "Wir bestätigen, den o.g. Betrag von der Firma IMEX Customs Service GmbH erhalten zu haben."
Case "ATILLA"
rpt.picVERAG.Image = My.Resources.Atilla_big_med
rpt.Label1.Text = "Wir bestätigen, den o.g. Betrag von der Firma ATILLA Spedition GmbH erhalten zu haben."
End Select
Case "IMEX-KASSE-SUB"
'Default Werte:
rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple
rpt.lblFirma_Name.Text = "IMEX Customs Service GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 15" & vbNewLine & "UID: ATU68490714 "
rpt.Label1.Text = "Wir bestätigen, den o.g. Betrag von der Firma IMEX Customs Service GmbH erhalten zu haben."
Case "FRONT-OFFICE-SUB-KASSE"
'Default Werte:
rpt.picVERAG.Image = My.Resources.FrontOfficeSUB
rpt.lblFirma_Name.Text = "Front-Office Suben eG"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 14" & vbNewLine & "UID: ATU74813856 "
rpt.Label1.Text = "Wir bestätigen, den o.g. Betrag von der Firma Front-Office Suben eG erhalten zu haben."
End Select
If KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv Then
If BELEG.rksv_qr Is Nothing OrElse BELEG.rksv_qr = "" Then
If KASSE.rksv_KassaGuid <> "KASSE_01" Then
MsgBox("Fehler: QR-Code wurde nicht richtig erstellt!")
End If
Else
Dim bmpBytes As Byte() = Convert.FromBase64String(BELEG.rksv_qr)
Dim MS As New System.IO.MemoryStream(bmpBytes)
Dim QR_Image = Image.FromStream(MS)
rpt.QR.Image = QR_Image
End If
End If
End If
' rpt.DataSource = cProgramFunctions.dgridViewTods(dgvBelegPos)
Dim dt As New DataTable
dt.Columns.Add("clmnAnzahl", GetType(String))
dt.Columns.Add("clmnBeschreibung", GetType(String))
dt.Columns.Add("clmnBetrag", GetType(String))
dt.Columns.Add("clmnPreis", GetType(String))
For Each p In BELEG.POS
dt.Rows.Add(p.Anzahl, p.Leistungsbeschreibung, p.Betrag, p.Preis)
Next
rpt.DataSource = dt 'cProgramFunctions.dgridViewTods(dgvBelegPos)
Dim sum As Double = 0
'Dim cnt As Integer = 0
AddHandler rpt.Detail.Format, Sub()
rpt.lblLeistungsNr.Text = rpt.Fields.Item("clmnAnzahl").Value()
rpt.lblLeistun.Text = rpt.Fields.Item("clmnBeschreibung").Value()
rpt.lblBetrag.Text = CDbl(rpt.Fields.Item("clmnBetrag").Value()).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.lblBetragSum.Text = CDbl(sum).ToString("C")
Dim s As Double = IIf(IsNumeric(steuersatz), steuersatz, 0)
rpt.lblBetragSteuern.Text = CDbl(sum * s).ToString("C")
rpt.lblGesamtbetrag.Text = CDbl(sum + (sum * s)).ToString("C")
End Sub
rpt.Run(False)
If printername <> "" Then
rpt.Document.Printer.PrinterName = printername
Else
Dim p As New PrintDialog
If p.ShowDialog() = DialogResult.OK Then
printername = p.PrinterSettings.PrinterName
Else
rpt.Dispose()
End If
End If
If Not rpt.Document.Print(False, False) Then
MsgBox("Problem beim Drucken.")
End If
If BELEG.DruckDatumUhrzeit Is Nothing Then
BELEG.DruckDatumUhrzeit = Now
BELEG.SAVE()
End If
rpt.Dispose()
If False Then
AddHandler print.LoadCompleted, Sub()
' MsgBox("b" & printername)
' MsgBox(cboPrinter.SelectedItem.ToString)
' If cboPrinter.SelectedItem.ToString <> "" Then print.Document.Printer.PrinterName = cboPrinter.SelectedItem.ToString
If printername <> "" Then
print.Document.Printer.PrinterName = printername
Else
Dim p As New PrintDialog
If p.ShowDialog() = DialogResult.OK Then
printername = p.PrinterSettings.PrinterName
Else
print.Dispose()
Exit Sub
End If
End If
If printername = "" Then print.Dispose() : Exit Sub
print.Document.Printer.PrinterName = printername
If Not print.Print(False, False) Then
MsgBox("Problem beim Drucken.")
End If
If BELEG.DruckDatumUhrzeit Is Nothing Then
BELEG.DruckDatumUhrzeit = Now
BELEG.SAVE()
End If
print.Dispose()
' print.Close()
End Sub
End If
Return True
' Me.Cursor = Cursors.Default
End Function
Public Shared Function printNULLBeleg(KASSE As cRKSV_Kasse, PERSONAL As cPersonal, AUTODRUCK As Boolean, Firma As String) As Boolean
Try
If PERSONAL Is Nothing Then
Dim FMZOLL_SQL As New FMZOLL_SQL
PERSONAL = FMZOLL_SQL.getPersonalById(274)
End If
Dim ib = ""
' If Not AUTODRUCK Then ib = InputBox("Passwort:")
' If AUTODRUCK Or (ib = "verag#2" Or ib = "supervisor") Then
' Dim PERSONAL As SDL.cPersonal = Nothing
' Dim frmSecureLoginKassenbuch As New SDL.frmSecureLoginKassenbuch
' If frmSecureLoginKassenbuch.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
'PERSONAL = frmSecureLoginKassenbuch.PERSONAL
'
Dim TESTBUCHUNG = False
Dim oldBelegZaehler = KASSE.rksv_BelegIdZaehler
Dim summe As Double = 0
Dim RKSV_Beleg_Id = KASSE.INCREASE_BELEG_UMSATZ(If(TESTBUCHUNG, 0, summe))
If RKSV_Beleg_Id < 0 Then
'Exit Function
Return False
End If
Dim BELEG As New EABeleg(PERSONAL.Mandant, PERSONAL.Niederlassung, PERSONAL.ID)
' Dim GJ = New cGeschaeftsjahr(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ(BELEG.BelegDat))
BELEG.Ordnungsbegriff = "*** NULL-BELEG ***"
BELEG.Beleg_TYP = "0"
BELEG.Belegart = "0"
BELEG.Name1 = "*** NULL-BELEG ***"
BELEG.Steuerschlüssel = 3510
BELEG.BelegNr = cRKSV.getNewBelegNr(BELEG, Firma) 'GJ.INCREASE_BELEG() 'Vergabe der Belegnummer '
' Beleg noch nicht gespeichert.... BELEG.DEL_POS_List()' Positionen löschen, da BelegNr Neu vergeben
For Each p In BELEG.POS
p.BelegNr = BELEG.BelegNr
Next
BELEG.gebucht = True
BELEG.SAVE()
' QR_Image = Nothing
Dim QR_CodeString As String = ""
Dim LastJWS As String = ""
If KASSE.rksv_aktiv Then ' WENN für die Kasse die RKSV gilt
Dim answer = ""
If Not cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, 0, QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summe * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' Me.Cursor = Cursors.Default
'BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
' MsgBox("Programmfehler bei der digitalen Signatur.")
Return False
End If
KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
End If
If KASSE.rksvDE_aktiv Then ' WENN für die Kasse die DEUTSCHLAND gilt
Dim answer = ""
'*Nullbelg-POS*
Dim POS As New EABelegPositionen
POS.Abfertigungsart = 10 '"Sonstiges"
POS.Mandant = BELEG.Mandant
POS.Niederlassung = BELEG.Niederlassung
POS.Benutzer = BELEG.Benutzer
POS.BelegDat = BELEG.BelegDat
POS.BelegNr = BELEG.BelegNr
POS.PreislistenPos = -1
POS.LeistungsNr = 499
POS.LeistungsBez = "NULLBELEG"
POS.Leistungsbeschreibung = "NULLBELEG"
POS.PreislistenNr = -1
POS.PreistabellenNr = -1
POS.Preis = 0
POS.Anzahl = 1
POS.Anzahlmultiplikator = 1
POS.Betrag = 0
POS.Preisbindung = 0
' POS.AbfertigungsNr = 000
BELEG.POS.Add(POS)
If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, 0, QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summe * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' Me.Cursor = Cursors.Default
'BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
' MsgBox("Programmfehler bei der digitalen Signatur.")
Return False
End If
KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
If KASSE.rksv_KassaGuid = "KASSE_01" Then
BELEG.rksv_jws = Nothing
BELEG.rksv_qr = Nothing
End If
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
End If
'RKSV-Daten beim Beleg ergänzen:
BELEG.rksv_jws = LastJWS
BELEG.rksv_qr = QR_CodeString
BELEG.rksv_BelegId = RKSV_Beleg_Id
BELEG.rksv_id = KASSE.rksv_id
BELEG.rksv_umsatz = summe
BELEG.rksv_aktiv = (KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv)
BELEG.SAVE()
'printBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString) 'Beleg drucken
If AUTODRUCK Then
Dim pName = ""
For Each sPrinter As String In System.Drawing.Printing.PrinterSettings.InstalledPrinters
If sPrinter = "AUTODRUCK_MAIL" Then pName = sPrinter : Exit For
Next
If pName = "" Then
Dim oPS As New System.Drawing.Printing.PrinterSettings
pName = oPS.PrinterName
End If
cRKSV.printKundenBeleg(BELEG, KASSE, PERSONAL, pName, False) 'Beleg drucken
Else
cRKSV.printKundenBeleg(BELEG, KASSE, PERSONAL, "", False) 'Beleg drucken
End If
Return True
' End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Return False
End Function
Public Shared Function getCardSerialInReader(kasse_id As Integer, reader As String)
Try
Dim KASSE As New cRKSV_Kasse(kasse_id)
Dim client As RKSVWcfClient = New RKSVWcfClient()
client.Endpoint.Address = New System.ServiceModel.EndpointAddress(getRKSVLink(KASSE))
client.Open()
' svcRKSV.DBUserCredentials m_credentials = new svcRKSV.DBUserCredentials();
Dim credentials As New SDL.RKSVServer.DBUserCredentials
credentials.Database = "RKSVWcfDB"
credentials.Server = "AVISO\SQLEXPRESS"
credentials.Username = "Admin"
credentials.Password = "verag#2"
' credentials.CashboxID = kasse '"VERAG-SUB-KASSE-ZOLL"
' credentials.CompanyGUID = CompanyGUID ' "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
Return client.GetCardInReader(reader)
Catch ex As Exception
MsgBox("ERROR " & ex.Message & ex.StackTrace)
End Try
Return ""
End Function
Public Shared Function printFremdBeleg(BELEG As EABeleg, KASSE As cRKSV_Kasse, PERSONAL As cPersonal, KBEntry As cKassenbuch, KBEntryGB As cKassenbuch, printername As String) As Boolean
Dim print As New GrapeCity.ActiveReports.Viewer.Win.Viewer
print.Text = "Beleg"
Dim rpt As New rptEABeleg
'rpt.lblRgNr.Text = BELEG.rksv_BelegId '"12345 / TR"
' Dim QR As String = ""
If (KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv) And BELEG.rksv_BelegId > 0 Then
If BELEG.rksv_qr Is Nothing OrElse BELEG.rksv_qr = "" Then
If KASSE.rksv_KassaGuid <> "KASSE_01" Then
MsgBox("Fehler: QR-Code wurde nicht richtig erstellt!")
End If
Else
Dim bmpBytes As Byte() = Convert.FromBase64String(BELEG.rksv_qr)
Dim MS As New System.IO.MemoryStream(bmpBytes)
Dim QR_Image = Image.FromStream(MS)
rpt.QR.Image = QR_Image
End If
End If
' Dim bmpBytes As Byte() = Convert.FromBase64String(QR)
' Dim MS As New System.IO.MemoryStream(bmpBytes)
' Dim QR_Image = Image.FromStream(MS)
' rpt.QR.Image = QR_Image
rpt.Label25.Visible = (BELEG.DruckDatumUhrzeit IsNot Nothing) 'KOPIE
rpt.lblBuchungsdatum.Text = CDate(BELEG.BelegDat).ToShortDateString
rpt.lblUhrzeit.Text = "" 'Now.ToShortTimeString
rpt.lblBuchungstext.Text = KBEntry.Buchungstext 'cboKonto.Text
rpt.lblBelegdatum.Text = CDate(KBEntry.BelegDat).ToShortDateString
rpt.lblReferenz.Text = KBEntry.Referenz 'txtReferenz.Text
rpt.lblKonto.Text = KBEntryGB.Konto 'cboKonto._value
rpt.lblBetrag.Text = CDbl(BELEG.rksv_umsatz).ToString("C2")
rpt.lblSachbearbeiter.Text = PERSONAL.Name
rpt.lblKontoSB.Text = PERSONAL.KassenbuchNr
rpt.lblRgNr.Text = BELEG.rksv_BelegId
If BELEG.Belegart = 1 Then
'Einnahme
rpt.lblTitel.Text = "KASSE - EINGANG"
Else
rpt.lblTitel.Text = "KASSE - AUSGANG"
End If
If BELEG.storniert Then
rpt.Label25.Text = "** STORNO **"
rpt.Label25.Visible = True
rpt.lblStorno.Visible = True
rpt.lblStorno.Text = "STORNO" & vbNewLine & BELEG.Stornogrund
End If
If KASSE IsNot Nothing Then
Select Case KASSE.rksv_bez
Case "VERAG-SUB-KASSE-ZOLL"
'Default Werte:
'rpt.picVERAG.Image = My.Resources.Verag_AG_Logo2 'Standart
rpt.lblFirma_Name.Text = "VERAG Spedition AG"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 100" & vbNewLine & "UID: ATU53187000 "
Case "VERAG-CUSTOMSSERVICE-KASSE-ZOLL"
'Default Werte:
rpt.picVERAG.Image = My.Resources.Verag_Customs_Service_GMBH_Logo_med
rpt.lblFirma_Name.Text = "VERAG Customs Service GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 14" & vbNewLine & "UID: ATU68374109 "
Case "ATILLA-SUB-KASSE-ZOLL"
'Default Werte:
rpt.picVERAG.Image = My.Resources.Atilla_big_med
rpt.lblFirma_Name.Text = "ATILLA Spedition GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 15" & vbNewLine & "UID: ATU63158647 "
Case "VERAG-GMBH-KASSE-ZOLL"
'Default Werte:
rpt.picVERAG.Image = My.Resources.Verag_Spedition_GMBH_Logo_med
rpt.lblFirma_Name.Text = "VERAG Spedition GmbH"
rpt.lblFirma_Details.Text = "D 94152 Neuhaus am Inn | Hartham 6" & vbNewLine & "UID: DE813570890 "
Case "KASSE-VERWALTUNG"
'Default Werte:
' rpt.picVERAG.Image = My.Resources.Verag_AG_Logo2
rpt.lblFirma_Name.Text = "KASSE VERWALTUNG"
rpt.lblFirma_Details.Text = " *** nur intern ***"
Case "IMEX-KASSE-VERWALTUNG"
rpt.lblFirma_Name.Text = "KASSE VERWALTUNG"
rpt.lblFirma_Details.Text = " *** nur intern ***"
rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple
rpt.lblFirma_Name.Text = "IMEX Customs Service GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 15" & vbNewLine & "UID: ATU68490714 "
Case "TEST-KASSE"
'Default Werte:
' rpt.picVERAG.Image = My.Resources.Verag_AG_Logo2
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "IMEX" Then rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then rpt.picVERAG.Image = My.Resources.Atilla_big_med
rpt.lblFirma_Name.Text = "TEST-KASSE"
rpt.lblFirma_Details.Text = " *** nur intern ***"
Case "IMEX-KASSE-SUB"
'Default Werte:
rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple
rpt.lblFirma_Name.Text = "IMEX Customs Service GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 15" & vbNewLine & "UID: ATU68490714 "
Case "FRONT-OFFICE-SUB-KASSE"
'Default Werte:
rpt.picVERAG.Image = My.Resources.FrontOfficeSUB
rpt.lblFirma_Name.Text = "Front-Office Suben eG"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 14" & vbNewLine & "UID: ATU74813856 "
End Select
End If
rpt.Run(False)
If printername <> "" Then
rpt.Document.Printer.PrinterName = printername
Else
Dim p As New PrintDialog
If p.ShowDialog() = DialogResult.OK Then
printername = p.PrinterSettings.PrinterName
Else
rpt.Dispose()
End If
End If
If Not rpt.Document.Print(False, False) Then
MsgBox("Problem beim Drucken.")
End If
If BELEG.DruckDatumUhrzeit Is Nothing Then
BELEG.DruckDatumUhrzeit = Now
BELEG.SAVE()
End If
rpt.Dispose()
If False Then
print.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
print.LoadDocument(rpt)
'print = FormWindowState.Minimized
'print.Visible = False
' print.Show()
AddHandler print.LoadCompleted, Sub()
If printername <> "" Then
print.Document.Printer.PrinterName = printername
Else
Dim p As New PrintDialog
If p.ShowDialog() = DialogResult.OK Then
printername = p.PrinterSettings.PrinterName
Else
print.Dispose()
Exit Sub
End If
End If
If printername = "" Then print.Dispose() : Exit Sub
print.Document.Printer.PrinterName = printername
If Not print.Print(False, False) Then
MsgBox("Problem beim Drucken.")
End If
If BELEG.DruckDatumUhrzeit Is Nothing Then
BELEG.DruckDatumUhrzeit = Now
BELEG.SAVE()
End If
print.Dispose()
' print.Close()
End Sub
End If
Return True
' Me.Cursor = Cursors.Default
End Function
Public Shared Sub printAESKey(KASSE As cRKSV_Kasse, printername As String)
Dim print As New GrapeCity.ActiveReports.Viewer.Win.Viewer
print.Text = "AES-Key"
Dim rpt As New rptAESKey
rpt.lblKASSE.Text = KASSE.rksv_bez
rpt.lblDatum.Text = Now.ToString("dd.MM.yyyy") ' HH:mm")
rpt.txtAES.Text = KASSE.rksv_AesKey ' HH:mm")
Select Case KASSE.rksv_bez
Case "VERAG-SUB-KASSE-ZOLL"
'Default Werte:
'rpt.picVERAG.Image = My.Resources.Verag_AG_Logo2 'Standart
rpt.lblFirma_Name.Text = "VERAG Spedition AG"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 100" & vbNewLine & "UID: ATU53187000 "
Case "VERAG-CUSTOMSSERVICE-KASSE-ZOLL"
'Default Werte:
rpt.picVERAG.Image = My.Resources.Verag_Customs_Service_GMBH_Logo_med
rpt.lblFirma_Name.Text = "VERAG Customs Service GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 14" & vbNewLine & "UID: ATU68374109 "
Case "ATILLA-SUB-KASSE-ZOLL"
'Default Werte:
rpt.picVERAG.Image = My.Resources.Atilla_big_med
rpt.lblFirma_Name.Text = "ATILLA Spedition GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 15" & vbNewLine & "UID: ATU63158647 "
Case "VERAG-GMBH-KASSE-ZOLL"
'Default Werte:
rpt.picVERAG.Image = My.Resources.Verag_Spedition_GMBH_Logo_med
rpt.lblFirma_Name.Text = "VERAG Spedition GmbH"
rpt.lblFirma_Details.Text = "D 94152 Neuhaus am Inn | Hartham 6" & vbNewLine & "UID: DE813570890 "
Case "KASSE-VERWALTUNG"
'Default Werte:
' rpt.picVERAG.Image = My.Resources.Verag_AG_Logo2
rpt.lblFirma_Name.Text = "KASSE VERWALTUNG / BUCHHALTUNG"
rpt.lblFirma_Details.Text = " *** nur intern ***"
Case "IMEX-KASSE-VERWALTUNG"
rpt.lblFirma_Name.Text = "KASSE VERWALTUNG"
rpt.lblFirma_Details.Text = " *** nur intern ***"
rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple
rpt.lblFirma_Name.Text = "IMEX Customs Service GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 15" & vbNewLine & "UID: ATU68490714 "
Case "TEST-KASSE"
'Default Werte:
' rpt.picVERAG.Image = My.Resources.Verag_AG_Logo2
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "IMEX" Then rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then rpt.picVERAG.Image = My.Resources.Atilla_big_med
rpt.lblFirma_Name.Text = "TEST-KASSE"
rpt.lblFirma_Details.Text = " *** nur intern ***"
Case "IMEX-KASSE-SUB"
'Default Werte:
rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple
rpt.lblFirma_Name.Text = "IMEX Customs Service GmbH"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 15" & vbNewLine & "UID: ATU68490714 "
Case "FRONT-OFFICE-SUB-KASSE"
'Default Werte:
rpt.picVERAG.Image = My.Resources.FrontOfficeSUB
rpt.lblFirma_Name.Text = "Front-Office Suben eG"
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 14" & vbNewLine & "UID: ATU74813856 "
End Select
print.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
print.LoadDocument(rpt)
AddHandler print.LoadCompleted, Sub()
' MsgBox("b" & printername)
' MsgBox(cboPrinter.SelectedItem.ToString)
' If cboPrinter.SelectedItem.ToString <> "" Then print.Document.Printer.PrinterName = cboPrinter.SelectedItem.ToString
If printername <> "" Then
print.Document.Printer.PrinterName = printername
Else
Dim p As New PrintDialog
If p.ShowDialog() = DialogResult.OK Then
printername = p.PrinterSettings.PrinterName
Else
print.Dispose()
Exit Sub
End If
End If
If printername = "" Then print.Dispose() : Exit Sub
print.Document.Printer.PrinterName = printername
If Not print.Print(False, False) Then
MsgBox("Problem beim Drucken.")
End If
print.Dispose()
End Sub
End Sub
Shared Function GetGrenzstelle(avisoid) As String
Try
If avisoid IsNot Nothing AndAlso CInt(avisoid) > 0 Then
Dim AVISO = (New VERAG_PROG_ALLGEMEIN.cAvisoDAL).LesenAviso(avisoid, "")
If VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("RPT_SND_Grenzstelle") Then
If AVISO.Zollstelle IsNot Nothing AndAlso AVISO.Zollstelle <> "" Then
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
'Return "Grenze: " & SQL.getValueTxtBySql("SELECT basncd_dstnr +' - ' + [basncd_name] FROM basncd WHERE basncd_dstnr='" & AVISO.Zollstelle & "' ", "ATLAS")
Return "Grenze: " & SQL.getValueTxtBySql("SELECT Code +' - ' + [Description] FROM tbl_DY_ZollDE_C0141_Zollstellen WHERE Code='" & AVISO.Zollstelle & "' AND ((StartDate is null OR StartDate< GETDATE()) AND (EndDate is null OR EndDate> GETDATE())) ", "FMZOLL")
Else
Return "Grenze: " & AVISO.Grenzstelle
End If
End If
End If
Catch ex As Exception
Return ""
End Try
Return ""
End Function
Public Shared Function insertToSpedBuch(PERSONAL As cPersonal, PERSONAL_LG As cPersonal, BELEG As EABeleg, Optional AvisoID As Object = Nothing, Optional SendungsID As Object = Nothing, Optional barBetrag As Double = 0.0, Optional barBelegId As Integer = 0) As Boolean
'Zuerst schaun, ob Einträge in der Tabelle tblEABelegposition vorhanden
Dim dt As DataTable = SQL.loadDgvBySql("SELECT isnull(Abfertigungsart,10) as Abfertigungsart, Sum(isnull([Anzahl],isnull([TW1],0))*Anzahlmultiplikator) AS Abfertigungsanzahl, Sum(Betrag) AS Barzahlungsbetrag" &
" FROM tblEABelegposition" &
" WHERE Mandant = '" & BELEG.Mandant & "'" &
" And Niederlassung = '" & BELEG.Niederlassung & "'" &
" And Benutzer = " & BELEG.Benutzer & "" &
" And BelegDat = '" & BELEG.BelegDat.ToShortDateString & "' " &
" And BelegNr = " & BELEG.BelegNr & "" &
" GROUP BY Abfertigungsart ", "FMZOLL")
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
MsgBox("Fehler beim Eintrag ins Speditionsbuch!")
Return False
End If
'Dann alte Einträge aus Spedbuch löschen
SQL.doSQL("DELETE FROM Speditionsbuch WHERE FilialenNr=" & BELEG.FilialenNr & " AND AbfertigungsNr=" & BELEG.AbfertigungsNr & " ", "FMZOLL")
Dim UnterNr As Integer = 0
For Each r In dt.Rows
Dim SPED As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch
SPED.FilialenNr = BELEG.FilialenNr
SPED.AbfertigungsNr = BELEG.AbfertigungsNr
SPED.UnterNr = UnterNr
SPED.Abfertigungsdatum = BELEG.BelegDat.ToShortDateString
If PERSONAL.BLC = "R" Then
SPED.ErfassungsNr = BELEG.Mandant & "/" & BELEG.Niederlassung & "/" & PERSONAL.Name & "/" & BELEG.BelegDat.ToShortDateString & "/" & BELEG.rksv_BelegId 'Benutzer.Column(3)
End If
SPED.Bar = True
SPED.AvisUhrzeit = Now.ToShortTimeString
SPED.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
If PERSONAL_LG IsNot Nothing Then
SPED.Personalnummer = PERSONAL_LG.ID
Else
SPED.Personalnummer = PERSONAL.ID
End If
SPED.Vermerk = BELEG.Fahrer
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX" : SPED.Bemerkungen = GetGrenzstelle(AvisoID)
End Select
SPED.LKW_Kennzeichen = BELEG.LKW_Kennzeichen
SPED.Abfertigungsart = r("Abfertigungsart")
SPED.KdAuftragsNr = BELEG.Auftraggeber_KdAuftragsnummer
' SPED.Abfertigungsart = Nz(r("Abfertigungsart"), 10) ' wenn Abfertigungsart Null dann 10 (Sonstiges)
SPED.Abfertigungsanzahl = r("Abfertigungsanzahl")
' MsgBox(SQL.getValueTxtBySql("SELECT isnull(EpSbSgutKompl,0) FROM [Abfertigungsarten] WHERE [Abfertigungsart]=" & SPED.Abfertigungsart, "FMZOLL"))
Dim varEpSbSgutKompl As Boolean = SQL.getValueTxtBySql("SELECT isnull(EpSbSgutKompl,0) FROM [Abfertigungsarten] WHERE [Abfertigungsart]=" & SPED.Abfertigungsart, "FMZOLL")
'DLookup("[EpSbSgutKompl]", "Abfertigungsarten", "[Abfertigungsart] = " & !Abfertigungsart)
If CBool(varEpSbSgutKompl) Then
If BELEG.SgutKompl Is Nothing OrElse BELEG.SgutKompl = "" Then
If (MsgBox("Handelt es sich um Sammelgut?", vbYesNo, "Eingabeprüfung Sgut/Kompl")) = vbYes Then
SPED.SgutKompl = "S"
Else
SPED.SgutKompl = "K"
End If
Else
SPED.SgutKompl = BELEG.SgutKompl
End If
Else
SPED.SgutKompl = Nothing
End If
SPED.Zollsystem = "A"
SPED.VermittlerKundenNr = If(BELEG.KundenNr > 0, BELEG.KundenNr, Nothing)
SPED.Vermittler = BELEG.Ordnungsbegriff
SPED.FrachtführerKundenNr = If(BELEG.FrachtführerKundenNr > 0, BELEG.FrachtführerKundenNr, Nothing)
SPED.Frachtführer = BELEG.Frachtführer
Dim AD = New VERAG_PROG_ALLGEMEIN.cAvisoDAL
If AvisoID IsNot Nothing Then
Dim aviso_tmp As VERAG_PROG_ALLGEMEIN.cAviso = AD.LesenAviso(AvisoID, "")
If aviso_tmp.Grenzstelle IsNot Nothing AndAlso aviso_tmp.Grenzstelle <> "" Then SPED.Grenzstelle = aviso_tmp.Grenzstelle
End If
SPED.AvisoID = AvisoID
If SendungsID IsNot Nothing Then SPED.SendungID = SendungsID
Dim anz = SPED.Abfertigungsanzahl
If SPED.Abfertigungsart Then
SPED.AnzahlZA = IIf(SPED.Abfertigungsart = 1, anz, "0")
SPED.AnzahlZAFremd = IIf(SPED.Abfertigungsart = 2, anz, "0")
SPED.AnzahlZnV = IIf(SPED.Abfertigungsart = 3, anz, "0")
SPED.AnzahlZnVFremd = IIf(SPED.Abfertigungsart = 4, anz, "0")
SPED.AnzahlT1 = IIf(SPED.Abfertigungsart = 5, anz, "0")
SPED.AnzahlT2 = IIf(SPED.Abfertigungsart = 6, anz, "0")
SPED.AnzahlAE = IIf(SPED.Abfertigungsart = 7, anz, "0")
SPED.AnzahlCarnetTIR = IIf(SPED.Abfertigungsart = 8, anz, "0")
SPED.AnzahlBarvorlagen = IIf(SPED.Abfertigungsart = 9, anz, "0")
SPED.AnzahlSonstiges = IIf(SPED.Abfertigungsart = 10, anz, "0")
SPED.AnzahlGrenzgebühren = IIf(SPED.Abfertigungsart = 11, anz, "0")
End If
Select Case BELEG.Belegart
Case 1 ' Einnahme
If PERSONAL.BLC = "R" Then
SPED.Barzahlungsbetrag = r("Barzahlungsbetrag")
Else
SPED.Barzahlungsbetrag = 0.0
End If
Case 2 ' Ausgabe
SPED.Barzahlungsbetrag = barBetrag
If PERSONAL.BLC = "R" Then
SPED.ErfassungsNr = SPED.ErfassungsNr & "/" & FormatCurrency(r("Barzahlungsbetrag"))
End If
End Select
' .Update()
' rst2.MoveNext()
' intUnterNr = intUnterNr + 1
SPED.SAVE()
UnterNr += 1
Next
Return True
End Function
Public Shared Function SpedBuchExists(BELEG As EABeleg) As Boolean
Return (CInt(SQL.getValueTxtBySql("SELECT count(*) FROM Speditionsbuch WHERE FilialenNr=" & BELEG.FilialenNr & " AND AbfertigungsNr=" & BELEG.AbfertigungsNr & " ", "FMZOLL")) > 0)
End Function
Public Shared Function SpedBuchExists(FilialenNr As Integer, AbfertigungsNr As Integer) As Boolean
Return (CInt(SQL.getValueTxtBySql("SELECT count(*) FROM Speditionsbuch WHERE FilialenNr=" & FilialenNr & " AND AbfertigungsNr=" & AbfertigungsNr & " ", "FMZOLL")) > 0)
End Function
Public Shared Function getNewBelegNr(BELEG As EABeleg, Firma As String) As Integer
Dim GJ = New cGeschaeftsjahr(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma))
Return GJ.INCREASE_BELEG()
End Function
Public Shared Function getNewJournalNr(BELEG As EABeleg, Firma As String) As Integer
Dim GJ = New cGeschaeftsjahr(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma))
Return GJ.INCREASE_JOURNAL()
End Function
Public Shared Function insertKB(PERSONAL As cPersonal, BELEG As EABeleg, RKSV_id As Integer, RKSV_Beleg_Id As Integer, RKSV_aktiv As Integer, ByRef JournalNr As Integer, Firma As String, POSFIBU As Integer, Optional Finanzwege As String = "Bar", Optional BelegSofortInFIBUverbuchten As Boolean = False)
Try
If BELEG.POS.Count = 0 Then
MsgBox("Keine Positionen gefunden")
cRKSV.STORNO(BELEG, "Programmfehler: Keine Beleg-Pos. gefunden.", Firma)
Return False
End If
' Belegnr!!!!!!!!!!!!!!!!!!!!!!!!!!!!
' Dim GJ = New cGeschaeftsjahr(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ(BELEG.BelegDat))
BELEG.BelegNr = getNewBelegNr(BELEG, Firma) ' GJ.INCREASE_BELEG() 'Vergabe der Belegnummer'
' Beleg noch nicht gespeichert.... BELEG.DEL_POS_List()' Positionen löschen, da BelegNr Neu vergeben
For Each p In BELEG.POS
p.BelegNr = BELEG.BelegNr
Next
BELEG.SAVE()
'BELEG.SAVE_POS_List()
Dim KBEntry_List As New List(Of cKassenbuch)
Dim KBEntryGB_List As New List(Of cKassenbuch)
Dim KBEntryST_List As New List(Of cKassenbuch)
If BELEG.POS.Count > 0 Then
' Dim tb As DataRow = tbKBEintrag.Rows(0)
If Not BELEG.gebucht Then 'CBool(tbKBEintrag.Rows(0)("gebucht")) Then 'wenn nicht bereits gebucht
Dim dtBetraege = SQL.loadDgvBySql(" SELECT isnull(Sum(tblEABelegposition.Betrag),0) AS Nettobetrag, " &
" isnull(Sum(CASE WHEN [Steuerpflichtig]=1 THEN [Betrag] ELSE 0 END),0) AS SteuerpflichtigerBetrag, " &
" isnull(Sum(cast((CASE WHEN [Steuerpflichtig]=1 THEN [Betrag] ELSE 0 END)* [Steuersatz] as decimal(8,2))),0) AS SteuerBetrag, " &
" isnull(Sum(tblEABelegposition.Betrag+cast((CASE WHEN [Steuerpflichtig]=1 THEN [Betrag] ELSE 0 END)* [Steuersatz] as decimal(8,2))),0) AS Bruttobetrag " &
" FROM tblEABelegnummer INNER JOIN tblSteuersätze ON tblEABelegnummer.Steuerschlüssel = tblSteuersätze.Nr INNER JOIN tblEABelegposition INNER JOIN Leistungen ON tblEABelegposition.LeistungsNr = Leistungen.LeistungsNr ON tblEABelegnummer.Mandant = tblEABelegposition.Mandant AND tblEABelegnummer.Niederlassung = tblEABelegposition.Niederlassung AND tblEABelegnummer.Benutzer = tblEABelegposition.Benutzer AND tblEABelegnummer.BelegDat = tblEABelegposition.BelegDat AND tblEABelegnummer.BelegNr = tblEABelegposition.BelegNr " &
" WHERE tblEABelegposition.Mandant='" & BELEG.Mandant & "' AND tblEABelegposition.Niederlassung='" & BELEG.Niederlassung & "' AND tblEABelegposition.Benutzer='" & BELEG.Benutzer & "' AND tblEABelegposition.BelegDat='" & BELEG.BelegDat.ToShortDateString & "' AND tblEABelegposition.BelegNr='" & BELEG.BelegNr & "'", "FMZOLL")
If dtBetraege.Rows.Count = 0 Then
MsgBox("ERROR: Beleg - Eintrag nicht gefunden. Abbruch!")
cRKSV.STORNO(BELEG, "Programmfehler: Beleg - Eintrag nicht gefunden.", Firma)
Return False
End If
Dim Bruttobetrag As Double = dtBetraege.Rows(0)("Bruttobetrag")
Dim Nettobetrag As Double = dtBetraege.Rows(0)("Nettobetrag")
Dim SteuerBetrag As Double = dtBetraege.Rows(0)("SteuerBetrag")
'################
' EINTRAG: Kassenbuch
'################
Dim KBEntry As New cKassenbuch(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma), JournalNr)
KBEntry.JournalNr = getNewJournalNr(BELEG, Firma) ' GJ.INCREASE_JOURNAL() 'Vergabe der Journalnummer'
' KBEntry.JournalNr = fktJournalNr(rst1!Mandant, rst1!Niederlassung, rst1!Benutzer, rst1!BelegDat)
KBEntry.Konto = PERSONAL.KassenbuchNr
If BELEG.FilialenNr = -1 Or BELEG.AbfertigungsNr = -1 Then
If If(BELEG.LKW_Id, -1) > 0 Then
KBEntry.Buchungstext = Trim("LKW-Id: " & BELEG.LKW_Id)
Else
KBEntry.Buchungstext = "-"
End If
Else
KBEntry.Buchungstext = Trim("Pos. " & BELEG.FilialenNr & "/" & Format(BELEG.AbfertigungsNr, "00000000"))
End If
KBEntry.Buchungsdatum = Now.ToShortDateString
KBEntry.BelegDat = BELEG.BelegDat.ToShortDateString
KBEntry.BelegNr = BELEG.BelegNr
KBEntry.Belegart = BELEG.Belegart
If BELEG.Belegart = 1 Then
KBEntry.Soll = Bruttobetrag
ElseIf BELEG.Belegart = 2 Then
KBEntry.Haben = Bruttobetrag
End If
KBEntry.rksv_id = RKSV_id
KBEntry.rksv_aktiv = RKSV_aktiv
KBEntry.rksv_BelegId = RKSV_Beleg_Id
KBEntry.Belegverbuchung = True
KBEntry.gebucht = True
KBEntry.Finanzwege = Finanzwege
If Not KBEntry.INSERT() Then
Return False
Else
KBEntry_List.Add(KBEntry)
End If
'################
' EINTRAG: Gegenbuchung
'################
Dim curSteuerbetrag As Double = 0
For Each p In BELEG.POS
Dim dtBetraegeGB = SQL.loadDgvBySql(" SELECT " & getGl_account(KBEntry.rksv_id) & " AS Gegenkonto, isnull(tblEABelegposition.Betrag,0) AS Nettobetrag, " &
" isnull((cast((CASE WHEN [Steuerpflichtig]=1 THEN [Betrag] ELSE 0 END)* [Steuersatz] as decimal(8,2))),0) AS Steuerbetrag " &
" FROM tblSteuersätze INNER JOIN tblEABelegnummer ON tblSteuersätze.Nr = tblEABelegnummer.Steuerschlüssel INNER JOIN tblEABelegposition INNER JOIN Leistungen ON tblEABelegposition.LeistungsNr = Leistungen.LeistungsNr ON tblEABelegnummer.Mandant = tblEABelegposition.Mandant AND tblEABelegnummer.Niederlassung = tblEABelegposition.Niederlassung AND tblEABelegnummer.Benutzer = tblEABelegposition.Benutzer AND tblEABelegnummer.BelegDat = tblEABelegposition.BelegDat AND tblEABelegnummer.BelegNr = tblEABelegposition.BelegNr " &
" WHERE tblEABelegposition.Mandant='" & BELEG.Mandant & "' AND tblEABelegposition.Niederlassung='" & BELEG.Niederlassung & "' AND tblEABelegposition.Benutzer='" & BELEG.Benutzer & "' AND tblEABelegposition.BelegDat='" & BELEG.BelegDat.ToShortDateString & "' AND tblEABelegposition.BelegNr='" & BELEG.BelegNr & "' AND tblEABelegposition.LeistungsNr=" & p.LeistungsNr & " AND tblEABelegposition.PreislistenPos='" & p.PreislistenPos & "' " &
" AND tblEABelegposition.FilialenNr='" & p.FilialenNr & "' AND tblEABelegposition.AbfertigungsNr='" & p.AbfertigungsNr & "'", "FMZOLL")
If dtBetraegeGB.Rows.Count = 0 Then
MsgBox("ERROR: Beleg-Position - Eintrag nicht gefunden. Abbruch!")
cRKSV.STORNO(BELEG, "Programmfehler: Beleg - Eintrag nicht gefunden.", Firma)
Return False
End If
If Not IsNumeric(dtBetraegeGB.Rows(0)("Gegenkonto")) OrElse dtBetraegeGB.Rows(0)("Gegenkonto") <= 0 Then
MsgBox("ERROR: Gegenkonto nicht vorhanden. Abbruch!")
cRKSV.STORNO(BELEG, "Programmfehler: Gegenkonto nicht vorhanden.", Firma)
Return False
End If
Dim KBEntryGB As New cKassenbuch(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma), JournalNr)
KBEntryGB.JournalNr = getNewJournalNr(BELEG, Firma) 'GJ.INCREASE_JOURNAL() 'Vergabe der Journalnummer'
KBEntryGB.Konto = dtBetraegeGB.Rows(0)("Gegenkonto")
KBEntryGB.Buchungstext = p.LeistungsBez
KBEntryGB.Buchungsdatum = Now.ToShortDateString
KBEntryGB.BelegDat = p.BelegDat.ToShortDateString
KBEntryGB.Steuer = IIf(IsNumeric(BELEG.Steuerschlüssel) AndAlso BELEG.Steuerschlüssel > 0, BELEG.Steuerschlüssel, 0)
KBEntryGB.BelegNr = BELEG.BelegNr
KBEntryGB.Belegart = BELEG.Belegart
If BELEG.Belegart = 1 Then
KBEntryGB.Haben = dtBetraegeGB.Rows(0)("Nettobetrag")
ElseIf BELEG.Belegart = 2 Then
KBEntryGB.Soll = dtBetraegeGB.Rows(0)("Nettobetrag")
End If
KBEntryGB.Steuerbetrag = dtBetraegeGB.Rows(0)("SteuerBetrag")
curSteuerbetrag = curSteuerbetrag + dtBetraegeGB.Rows(0)("SteuerBetrag")
KBEntryGB.rksv_id = RKSV_id
KBEntryGB.rksv_aktiv = RKSV_aktiv
KBEntryGB.rksv_BelegId = RKSV_Beleg_Id
KBEntryGB.Belegverbuchung = True
KBEntryGB.gebucht = True
KBEntryGB.Finanzwege = Finanzwege
If Not KBEntryGB.INSERT() Then
Return False
Else
KBEntryGB_List.Add(KBEntryGB)
End If
Next
'################
' EINTRAG: Steuerbuchung
'################
If IsNumeric(BELEG.Steuerschlüssel) AndAlso BELEG.Steuerschlüssel > 0 And SteuerBetrag - curSteuerbetrag <> 0 Then
Dim KBEntryST As New cKassenbuch(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma), JournalNr)
KBEntryST.JournalNr = getNewJournalNr(BELEG, Firma) 'GJ.INCREASE_JOURNAL() 'Vergabe der Journalnummer'
KBEntryST.Konto = 8490
KBEntryST.Buchungstext = "Rundungsdifferenz in Steuer"
KBEntryST.Buchungsdatum = Now.ToShortDateString
KBEntryST.BelegDat = BELEG.BelegDat.ToShortDateString
KBEntryST.Steuer = IIf(IsNumeric(BELEG.Steuerschlüssel) AndAlso BELEG.Steuerschlüssel > 0, BELEG.Steuerschlüssel, 0)
KBEntryST.BelegNr = BELEG.BelegNr
KBEntryST.Belegart = BELEG.Belegart
If KBEntryST.Belegart = 1 Then
KBEntryST.Haben = SteuerBetrag - curSteuerbetrag
ElseIf KBEntryST.Belegart = 2 Then
KBEntryST.Soll = SteuerBetrag - curSteuerbetrag
End If
KBEntryST.rksv_id = RKSV_id
KBEntryST.rksv_aktiv = RKSV_aktiv
KBEntryST.rksv_BelegId = RKSV_Beleg_Id
KBEntryST.Belegverbuchung = True
KBEntryST.gebucht = True
If Not KBEntryST.INSERT() Then
Return False
Else
KBEntryST_List.Add(KBEntryST)
End If
End If
'################
' EINTRAG: Umbuchung bei EC-Zahlung
'################
If Finanzwege = "EC" Then
Dim BelegNrEC = -1
For i = 0 To 1
Dim KBEntryEC As New cKassenbuch(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma), JournalNr)
KBEntryEC.JournalNr = getNewJournalNr(BELEG, Firma)
If i = 0 Then
KBEntryEC.Konto = POSFIBU
BelegNrEC = getNewBelegNr(BELEG, Firma) '& KBEntryEC.Belegart 'zur Generierung von eigenem Buchungssatz
Else
KBEntryEC.Konto = PERSONAL.KassenbuchNr
End If
KBEntryEC.Buchungstext = "Umb. BK/KASSA"
KBEntryEC.Buchungsdatum = Now.ToShortDateString
KBEntryEC.BelegDat = BELEG.BelegDat.ToShortDateString
KBEntryEC.Belegart = 3
KBEntryEC.BelegNr = BelegNrEC
If BELEG.Belegart = 1 Then
If i = 0 Then
KBEntryEC.Soll = Bruttobetrag
Else
KBEntryEC.Haben = Bruttobetrag
End If
ElseIf BELEG.Belegart = 2 Then
If i = 0 Then
KBEntryEC.Haben = Bruttobetrag
Else
KBEntryEC.Soll = Bruttobetrag
End If
End If
KBEntryEC.rksv_id = RKSV_id
KBEntryEC.rksv_aktiv = RKSV_aktiv
KBEntryEC.rksv_BelegId = RKSV_Beleg_Id
KBEntryEC.Belegverbuchung = True
KBEntryEC.gebucht = True
KBEntryEC.Finanzwege = Finanzwege
If Not KBEntryEC.INSERT() Then
Return False
End If
Next
End If
'################
' DIREKTVERBUCHUNG SYSKA
'################
If BelegSofortInFIBUverbuchten AndAlso (BELEG.Beleg_TYP = "L" Or BELEG.Beleg_TYP = "K") Then
CreateSyskaBuchung(RKSV_id, BELEG, KBEntry_List, KBEntryGB_List, KBEntryST_List, IIf(BELEG.Beleg_TYP = "L", "AUSZAHLUNG", "EINZAHLUNG"))
End If
BELEG.gebucht = True
BELEG.SAVE()
End If
End If
Return True
Catch ex As Exception
MsgBox("ERROR: " & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
cRKSV.STORNO(BELEG, "Programmfehler!", Firma)
Return False
End Try
End Function
Public Shared Function getGl_account(rksv_id)
If rksv_id = 1 Then Return "Leistungen.Gl_account" ' VERAG-Kasse bei IMEX
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX" : Return "Leistungen.IMEX_Gl_account"
Case Else : Return "Leistungen.Gl_account"
End Select
End Function
Private Shared Sub periodenBuchungen(periode As Integer, konto As Integer, Mandant As String, Jahr As Integer, Sollsumme As Double, HabenSumme As Double)
If periode > 0 AndAlso periode < 13 Then
Dim periodenSoll_SQL As String = "SELECT [FIBU2].dbo.fibu_periodensaldo.dec_soll_" & periode & " From [FIBU2].dbo.fibu_periodensaldo Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_periodensaldo.si_jahr = " & Jahr & " And [FIBU2].dbo.fibu_periodensaldo.i_konto = " & konto
Dim periodenHaben_SQL As String = "SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_" & periode & " From [FIBU2].dbo.fibu_periodensaldo Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_periodensaldo.si_jahr = " & Jahr & " And [FIBU2].dbo.fibu_periodensaldo.i_konto = " & konto
Dim periodenSoll = (New VERAG_PROG_ALLGEMEIN.SQL).getValueTxtBySqlVarList(periodenSoll_SQL, "FIBU")
Dim periodenHaben = (New VERAG_PROG_ALLGEMEIN.SQL).getValueTxtBySqlVarList(periodenHaben_SQL, "FIBU")
Dim periodenSoll_DBl As Double = 0
Dim periodenHaben_DBl As Double = 0
If periodenSoll <> "" AndAlso IsNumeric(periodenSoll) Then
periodenSoll_DBl = CDbl(periodenSoll)
End If
If periodenHaben <> "" AndAlso IsNumeric(periodenHaben) Then
periodenHaben_DBl = CDbl(periodenHaben)
End If
periodenSoll_DBl += Sollsumme
periodenHaben_DBl += HabenSumme
Dim SQL_Update = "UPDATE [FIBU2].dbo.fibu_periodensaldo SET
[FIBU2].dbo.fibu_periodensaldo.dec_soll_" & periode & " = " & periodenSoll_DBl & ",
[FIBU2].dbo.fibu_periodensaldo.dec_haben_" & periode & " = " & periodenHaben_DBl & ",
[FIBU2].dbo.fibu_periodensaldo.eur_soll_" & periode & " = " & periodenSoll_DBl & ",
[FIBU2].dbo.fibu_periodensaldo.eur_haben_" & periode & " = " & periodenHaben_DBl & "
WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = " & Mandant & "
And [FIBU2].dbo.fibu_periodensaldo.si_jahr = " & Jahr & "
And [FIBU2].dbo.fibu_periodensaldo.i_konto = " & konto
Dim updated As Boolean = (New VERAG_PROG_ALLGEMEIN.SQL).doSQL(SQL_Update, "FIBU")
If konto = 2000 Then
Dim SQL_Update_2000 = "UPDATE [FIBU2].dbo.fibu_periodensaldodk SET
[FIBU2].dbo.fibu_periodensaldodk.dec_soll_" & periode & " = " & periodenSoll_DBl & ",
[FIBU2].dbo.fibu_periodensaldodk.dec_haben_" & periode & " = " & periodenHaben_DBl & ",
[FIBU2].dbo.fibu_periodensaldodk.eur_soll_" & periode & " = " & periodenSoll_DBl & ",
[FIBU2].dbo.fibu_periodensaldodk.eur_haben_" & periode & " = " & periodenHaben_DBl & "
WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = " & Mandant & "
And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = " & Jahr & "
And [FIBU2].dbo.fibu_periodensaldodk.i_konto = " & konto
Dim updated_2000 As Boolean = (New VERAG_PROG_ALLGEMEIN.SQL).doSQL(SQL_Update_2000, "FIBU")
End If
End If
End Sub
Private Shared Sub getDEBDaten(ByRef Mandant As String, ByRef DebKonto As Integer, ByRef c_sprache As String, ByRef c_ustidnr As String, ByRef c_zahlziel As String, ByRef si_tage As Integer, ByRef dec_skonto As Integer, ByRef si_ntage As Integer, ByRef SkontoDatum As Date, ByRef Nettodatum As Date)
Dim dtKontoinfo As DataTable = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql("SELECT isnull(c_sprache,'DE') as c_sprache ,isnull(c_ustidnr, '') as c_ustidnr , isnull(c_zahlziel, '0') as c_zahlziel FROM [FIBU2].dbo.fibu_konto WHERE [FIBU2].dbo.fibu_konto.i_konto = " & DebKonto & " And [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant, "FIBU")
If dtKontoinfo.Rows.Count = 1 Then
c_sprache = IIf(IsDBNull(dtKontoinfo.Rows(0).Item("c_sprache")), "DE", dtKontoinfo.Rows(0).Item("c_sprache"))
c_ustidnr = IIf(IsDBNull(dtKontoinfo.Rows(0).Item("c_ustidnr")), "", dtKontoinfo.Rows(0).Item("c_ustidnr"))
c_zahlziel = IIf(IsDBNull(dtKontoinfo.Rows(0).Item("c_zahlziel")), "", dtKontoinfo.Rows(0).Item("c_zahlziel"))
End If
Dim dt_skontoInfo As DataTable = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql("Select isnull(si_tage,0) as si_tage , isnull(dec_skonto, 0) as dec_skonto , isnull(si_ntage, 0) as si_ntage FROM [FIBU2].dbo.fibu_zahlziel WHERE [FIBU2].dbo.fibu_zahlziel.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_zahlziel.c_zahlziel = '" & c_zahlziel & "'", "FIBU")
If dt_skontoInfo.Rows.Count = 1 Then
si_tage = IIf(IsDBNull(dt_skontoInfo.Rows(0).Item("si_tage")), 0, CInt(dt_skontoInfo.Rows(0).Item("si_tage")))
dec_skonto = IIf(IsDBNull(dt_skontoInfo.Rows(0).Item("dec_skonto")), 0, CInt(dt_skontoInfo.Rows(0).Item("dec_skonto")))
si_ntage = IIf(IsDBNull(dt_skontoInfo.Rows(0).Item("si_ntage")), 0, CInt(dt_skontoInfo.Rows(0).Item("si_ntage")))
End If
SkontoDatum = SkontoDatum.AddDays(si_tage) 'SET @Skontodatum = DATEADD(DAY, @Skontotage, @gDatumKurz)
Nettodatum = Nettodatum.AddDays(si_ntage) 'SET @Nettodatum = DATEADD(DAY, @Nettotage, @gDatumKurz)
End Sub
Private Shared Function checkifgebucht(mandant As Integer, belegnrtext As String, PosText As String) As Boolean
Dim sql = "SELECT COUNT(fbz.i_beleg_refid) " &
"FROM [FIBU2].dbo.fibu_belegzeile AS fbz " &
"WHERE fbz.i_firm_refid = " & mandant &
" AND fbz.c_urbelegid = '" & belegnrtext & "'" &
" AND fbz.c_buchtext LIKE '%" & PosText.Replace("'", "''") & "%'"
Dim cntTxt = (New VERAG_PROG_ALLGEMEIN.SQL).getValueTxtBySqlVarList(sql, "FIBU", , "0")
Dim cnt As Integer = 0
If Integer.TryParse(cntTxt, cnt) AndAlso cnt >= 3 Then
Return True
Else
Return False
End If
End Function
Private Shared Function checkifSaldo(mandant As Integer, Jahr As Integer, kontoNr As Integer) As Boolean
Dim sql = "Select COUNT([FIBU2].dbo.fibu_periodensaldo.i_konto) FROM [FIBU2].dbo.fibu_periodensaldo WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = " & mandant & " And [FIBU2].dbo.fibu_periodensaldo.si_jahr = " & Jahr & " And [FIBU2].dbo.fibu_periodensaldo.i_konto = " & kontoNr & ""
Dim cntTxt = (New VERAG_PROG_ALLGEMEIN.SQL).getValueTxtBySqlVarList(sql, "FIBU", , "0")
Dim cnt As Integer = 0
If Integer.TryParse(cntTxt, cnt) AndAlso cnt > 0 Then
Return True
Else
Return False
End If
End Function
Public Shared Property DefaultMandant As Integer = IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, 9, 7)
Public Shared Property DefaultKassenkonto As Integer = 2700
Public Shared Function CreateSyskaBuchung(RKSV_id As Integer, beleg As EABeleg, KBEntry_list As List(Of cKassenbuch), KBEntryGB_list As List(Of cKassenbuch), KBEntryST_list As List(Of cKassenbuch), typ As String) As Boolean
If beleg Is Nothing Then Throw New ArgumentNullException(NameOf(beleg))
If Not (beleg.Beleg_TYP = "L" Or beleg.Beleg_TYP = "K") Then
Return False
End If
If DefaultMandant = 9 Then
MsgBox("ACHTUNG, Daten werden in Mandant " & DefaultMandant & " eingespielt -> " & IIf(DefaultMandant = 9, "TESTMANDANT!", "PRODUKTIVMANDANT!"))
End If
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL()
Dim mandant = DefaultMandant
Dim kassenkonto = DefaultKassenkonto
Dim bestandskonto As Integer = 0
Dim jahr As Integer = Now.Year
Dim periode As Integer = Now.Month
Dim rel_periode As Integer = Now.Month - 1
If rel_periode <= 0 Then
rel_periode += 12
End If
If rel_periode > periode Then
jahr -= 1
End If
Dim betrag As Decimal = SumBelegPositionen(beleg)
If betrag = 0 Then Return False
Dim ForderungktoTxt As String = sql.getValueTxtBySqlVarList("SELECT i_fordkto FROM [FIBU2].dbo.fibu_konto WHERE i_konto = " & SafeIntToSql(beleg.KundenNr) & " AND i_firm_refid = " & SafeIntToSql(mandant), "FIBU",, "2000")
Dim forderungskonto As Integer = SafeCIntDef(ForderungktoTxt, 2000)
Dim dtKonten As DataTable = BuildVerbuchungskonten(KBEntryGB_list, beleg, kassenkonto, forderungskonto, bestandskonto)
' 5) build booking text (and trim to 48 chars with remainder stored separately)
Dim buchungstextFull As String = (If(betrag < 0, "STORNO ", "")) & SafeString(beleg.FilialenNr) & "/" & SafeString(beleg.AbfertigungsNr) & "_" & SafeString(beleg.LKW_Kennzeichen) & "_" & SafeString(beleg.Frachtführer) & "_" & SafeString(beleg.Fahrer) & "_" & SafeString(beleg.Passnummer)
Dim buchungstext As String
Dim buchungstextBemerkung As String
SplitBuchungstext(buchungstextFull, 48, buchungstext, buchungstextBemerkung)
' 6) create Belegnummer / Protokoll / Stapel logic (keine Duplikate)
Dim stapelRefId As Integer = GetStapelRefId(sql, mandant)
Dim lfdNr As Integer = GetNextStapelLfdNr(sql, stapelRefId, mandant)
Dim protokollId As String = BuildProtokollId(stapelRefId, lfdNr, jahr, periode)
' 7) create Belegkopf
Dim i_beleg_refid As Integer = CInt(sql.getValueTxtBySqlVarList(
"SELECT i_nummer_refid + 1 FROM [FIBU2].dbo.fibu_nummern WHERE i_firm_refid = " & SafeIntToSql(mandant) & " AND c_nummernart LIKE 'Buchungsnummer'",
"FIBU",, "0"))
If String.IsNullOrWhiteSpace(i_beleg_refid) Then
Throw New InvalidOperationException("Kann keine Belegnummer erzeugen.")
End If
' update nummern table only if we will actually book (betrag<>0)
If betrag <> 0 Then
sql.doSQL("UPDATE [FIBU2].dbo.fibu_nummern SET i_nummer_refid = " & SafeIntToSql(i_beleg_refid) & " WHERE i_firm_refid = " & SafeIntToSql(mandant) & " AND c_nummernart LIKE 'Buchungsnummer'", "FIBU")
End If
Dim FIBU_YEAR = jahr
Dim BelegNrUID As String = "BR"
'If periode = 1 Then FIBU_YEAR = FIBU_YEAR - 1
BelegNrUID &= FIBU_YEAR.ToString.Substring(2, 2)
BelegNrUID &= i_beleg_refid.ToString("D5")
'insert perioden-salden!!
For Each Konten In dtKonten.Rows
Dim kontoNr As Integer = CInt(Konten("Konto"))
If Not checkifSaldo(mandant, FIBU_YEAR, kontoNr) Then
Dim aktellerSaldo As String = sql.getValueTxtBySqlVarList("Select [FIBU2].dbo.fibu_konto.dec_aktuellersaldo FROM [FIBU2].dbo.fibu_konto WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = " & SafeIntToSql(mandant) & " And [FIBU2].dbo.fibu_konto.i_konto = " & kontoNr & " ", "FIBU",, "0")
If aktellerSaldo <> "" AndAlso IsNumeric(aktellerSaldo) Then
InsertFibuPeriodensaldo(sql, mandant, jahr, kontoNr, CDbl(aktellerSaldo))
End If
End If
Next
'Set @dec_aktuellersaldo = (Select [FIBU2].dbo.fibu_konto.dec_aktuellersaldo FROM [FIBU2].dbo.fibu_konto WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @Schleifenkonto)
'If @dec_aktuellersaldo Is NULL SET @dec_aktuellersaldo = 0
'INSERT INTO [FIBU2].dbo.fibu_periodensaldo (
'[FIBU2].dbo.fibu_periodensaldo.i_firm_refid,
'[FIBU2].dbo.fibu_periodensaldo.si_jahr,
'[FIBU2].dbo.fibu_periodensaldo.i_konto,
'[FIBU2].dbo.fibu_periodensaldo.i_perioden,
'[FIBU2].dbo.fibu_periodensaldo.dec_eroeff,
'[FIBU2].dbo.fibu_periodensaldo.dec_abschluss,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_1,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_1,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_2,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_2,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_3,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_3,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_4,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_4,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_5,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_5,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_6,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_6,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_7,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_7,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_8,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_8,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_9,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_9,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_10,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_10,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_11,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_11,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_12,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_12,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_13,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_13,
'[FIBU2].dbo.fibu_periodensaldo.eur_eroeff,
'[FIBU2].dbo.fibu_periodensaldo.eur_abschluss,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_1,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_1,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_2,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_2,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_3,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_3,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_4,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_4,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_5,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_5,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_6,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_6,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_7,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_7,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_8,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_8,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_9,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_9,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_10,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_10,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_11,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_11,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_12,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_12,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_13,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_13,
'[FIBU2].dbo.fibu_periodensaldo.i_buchungskreis)
'VALUES (
'@MandantNr,
'@Jahr,
'@Schleifenkonto,
'0,
'@dec_aktuellersaldo,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'@dec_aktuellersaldo,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'1)
InsertBelegskopf_new(sql, mandant, jahr, periode, SafeIntToSql(i_beleg_refid), beleg.BelegDat.ToShortDateString, SafeString(beleg.BelegNr), 1, buchungstext, CType(betrag, Double), "EUR", Now(), VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME, protokollId, BelegNrUID)
' 8) insert belegzeilen depending on type
Dim zsZeilenNr As Integer = 0
If typ = "EINZAHLUNG" Then
If betrag <> 0 Then
' 1) Kassa (Soll)
zsZeilenNr += 1
Dim buchungsbetrag1 As Decimal = betrag
UpdateDtKontenAmount(dtKonten, kassenkonto, "Soll", buchungsbetrag1)
InsertBelegszeile_new(sql, mandant, jahr, periode, rel_periode, SafeIntToSql(i_beleg_refid), beleg.BelegDat.ToShortDateString, SafeString(beleg.BelegNr), SafeString(beleg.Belegart),
buchungstext, CType(buchungsbetrag1, Double), "EUR", zsZeilenNr, "KO", kassenkonto, beleg.KundenNr, "S", BelegNrUID)
' 2) Debitor (Haben)
zsZeilenNr += 1
Dim buchungsbetrag2 As Decimal = betrag
UpdateDtKontenAmount(dtKonten, beleg.KundenNr, "Haben", buchungsbetrag2)
InsertBelegszeile_new(sql, mandant, jahr, periode, rel_periode, SafeIntToSql(i_beleg_refid), beleg.BelegDat.ToShortDateString, SafeString(beleg.BelegNr), SafeString(beleg.Belegart),
buchungstext, CType(buchungsbetrag2, Double), "EUR", zsZeilenNr, "DE", beleg.KundenNr, kassenkonto, "H", BelegNrUID)
' 3) Forderung (Haben)
zsZeilenNr += 1
Dim buchungsbetrag3 As Decimal = betrag
UpdateDtKontenAmount(dtKonten, forderungskonto, "Haben", buchungsbetrag3)
InsertBelegszeile_new(sql, mandant, jahr, periode, rel_periode, SafeIntToSql(i_beleg_refid), beleg.BelegDat.ToShortDateString, SafeString(beleg.BelegNr), SafeString(beleg.Belegart),
buchungstext, CType(buchungsbetrag3, Double), "EUR", zsZeilenNr, "DB", forderungskonto, kassenkonto, "H", BelegNrUID)
End If
ElseIf typ = "AUSZAHLUNG" Then
If betrag <> 0 Then
' sequence for Auszahlung - signs and accounts handled via buchungsbetrag variables
' 1) Bestandskonto (Soll) = -betrag (outflow)
zsZeilenNr += 1
Dim buchungsbetrag1 As Decimal = betrag
UpdateDtKontenAmount(dtKonten, bestandskonto, "Soll", buchungsbetrag1)
InsertBelegszeile_new(sql, mandant, jahr, periode, rel_periode, SafeIntToSql(i_beleg_refid), beleg.BelegDat.ToShortDateString, SafeString(beleg.BelegNr), SafeString(beleg.Belegart),
buchungstext, CType(buchungsbetrag1, Double), "EUR", zsZeilenNr, "KO", bestandskonto, 0, "S", BelegNrUID)
' 2) Kassa (Haben) = +betrag (cash out)
zsZeilenNr += 1
Dim buchungsbetrag2 As Decimal = betrag
UpdateDtKontenAmount(dtKonten, kassenkonto, "Haben", buchungsbetrag2)
InsertBelegszeile_new(sql, mandant, jahr, periode, rel_periode, SafeIntToSql(i_beleg_refid), beleg.BelegDat.ToShortDateString, SafeString(beleg.BelegNr), SafeString(beleg.Belegart),
buchungstext, CType(buchungsbetrag2, Double), "EUR", zsZeilenNr, "KO", kassenkonto, 0, "H", BelegNrUID)
' 3) Debitor (Soll)
zsZeilenNr += 1
Dim buchungsbetrag3 As Decimal = betrag
UpdateDtKontenAmount(dtKonten, beleg.KundenNr, "Soll", buchungsbetrag3)
InsertBelegszeile_new(sql, mandant, jahr, periode, rel_periode, SafeIntToSql(i_beleg_refid), beleg.BelegDat.ToShortDateString, SafeString(beleg.BelegNr), SafeString(beleg.Belegart),
buchungstext, CType(buchungsbetrag3, Double), "EUR", zsZeilenNr, "DE", beleg.KundenNr, 0, "S", BelegNrUID)
' 4) Forderung (Soll)
zsZeilenNr += 1
Dim buchungsbetrag4 As Decimal = betrag
UpdateDtKontenAmount(dtKonten, forderungskonto, "Soll", buchungsbetrag4)
InsertBelegszeile_new(sql, mandant, jahr, periode, rel_periode, SafeIntToSql(i_beleg_refid), beleg.BelegDat.ToShortDateString, SafeString(beleg.BelegNr), SafeString(beleg.Belegart),
buchungstext, CType(buchungsbetrag4, Double), "EUR", zsZeilenNr, "DB", forderungskonto, 0, "S", BelegNrUID)
' 5) Bestandskonto (Haben)
zsZeilenNr += 1
Dim buchungsbetrag5 As Decimal = betrag
UpdateDtKontenAmount(dtKonten, bestandskonto, "Haben", buchungsbetrag5)
InsertBelegszeile_new(sql, mandant, jahr, periode, rel_periode, SafeIntToSql(i_beleg_refid), beleg.BelegDat.ToShortDateString, SafeString(beleg.BelegNr), SafeString(beleg.Belegart),
buchungstext, CType(buchungsbetrag5, Double), "EUR", zsZeilenNr, "KO", bestandskonto, 0, "H", BelegNrUID)
End If
End If
' 9) Salden aktualisieren und Periodenbuchungen
Dim si_tage As Integer = 0
Dim dec_skonto As Integer = 0
Dim si_ntage As Integer = 0
Dim c_sprache As String = ""
Dim c_ustidnr As String = ""
Dim c_zahlziel As String = ""
getDEBDaten(mandant.ToString(), beleg.KundenNr, c_sprache, c_ustidnr, c_zahlziel, si_tage, dec_skonto, si_ntage, Nothing, Nothing)
Dim opvorgangsbetrag As Decimal = 0
Saldenaktualisierung_new(sql, typ, CType(betrag, Double), beleg, 0, 0, mandant.ToString(), 0, forderungskonto, kassenkonto, 0, opvorgangsbetrag)
For Each kontoRow As DataRow In dtKonten.Rows
Dim sollVal As Decimal = If(IsDBNull(kontoRow("Soll")), 0D, CDec(kontoRow("Soll")))
Dim habenVal As Decimal = If(IsDBNull(kontoRow("Haben")), 0D, CDec(kontoRow("Haben")))
If sollVal <> 0D OrElse habenVal <> 0D Then
periodenBuchungen(periode, CInt(kontoRow("Konto")), mandant.ToString(), jahr, CDbl(sollVal), CDbl(habenVal))
End If
Next
' 10) Offene Posten (nur einmal!)
Dim OP_KZ As String = "g"
Select Case typ
Case "AUSZAHLUNG" : OP_KZ = "r"
Case "EINZAHLUNG" : OP_KZ = "g"
End Select
createOP_new(mandant, CDbl(betrag), SafeString(beleg.BelegNr), beleg.BelegDat.ToShortDateString, SafeString(beleg.BelegNr), buchungstext, CDbl(betrag), "EUR", beleg.KundenNr, forderungskonto, i_beleg_refid, OP_KZ, c_sprache, c_zahlziel, CStr(dec_skonto), beleg.BelegDat.ToShortDateString, beleg.BelegDat.ToShortDateString, c_ustidnr, BelegNrUID)
createOPVorgang_new(mandant, typ, CDbl(betrag), jahr, rel_periode, SafeIntToSql(i_beleg_refid), beleg.BelegDat.ToShortDateString, buchungstext, beleg.KundenNr, CDbl(opvorgangsbetrag), i_beleg_refid, Now.ToString(), kassenkonto, VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME, 1, OP_KZ)
If typ = "AUSZAHLUNG" Then 'die zweite op_vorgang_deb Zeile insertieren
createOPVorgang_new(mandant, typ, CDbl(betrag), jahr, rel_periode, SafeIntToSql(i_beleg_refid), beleg.BelegDat.ToShortDateString, buchungstext, beleg.KundenNr, CDbl(opvorgangsbetrag), i_beleg_refid, Now.ToString(), kassenkonto, VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME, 5)
End If
' 11) single check if gebucht
Dim gebucht = checkifgebucht_new(mandant, SafeString(BelegNrUID), buchungstext)
If gebucht Then
' logging instead of MsgBox in production
MsgBox("GEBUCHT!")
Else
MsgBox("NICHT GEBUCHT!")
End If
Return gebucht
End Function
Private Shared Function SumBelegPositionen(beleg As EABeleg) As Decimal
Dim sum As Decimal = 0D
If beleg?.POS Is Nothing Then Return 0D
For Each p In beleg.POS
' careful numeric conversion
sum += CDec(p.Betrag)
Next
Return sum
End Function
Private Shared Function BuildVerbuchungskonten(entries As List(Of cKassenbuch), beleg As EABeleg, kassenkonto As Integer, forderungkto As Integer, ByRef bestandskonto As Integer) As DataTable
Dim dt As New DataTable
dt.Columns.Add("Nr", GetType(Integer))
dt.Columns.Add("Konto", GetType(Integer))
dt.Columns.Add("Soll", GetType(Decimal))
dt.Columns.Add("Haben", GetType(Decimal))
Dim idx As Integer = 1
If entries Is Nothing Then Return dt
For Each r In entries
' Debitor (Personenkonto)
Dim personKto As Integer = If(beleg?.KundenNr > 0, beleg.KundenNr, 0)
Dim dr1 = dt.NewRow()
dr1("Nr") = idx : dr1("Konto") = personKto : dr1("Soll") = 0D : dr1("Haben") = 0D : dt.Rows.Add(dr1) : idx += 1
' Forderungskonto
Dim dr2 = dt.NewRow()
dr2("Nr") = idx : dr2("Konto") = forderungkto : dr2("Soll") = 0D : dr2("Haben") = 0D : dt.Rows.Add(dr2) : idx += 1
' Erlöskonto (from entry)
Dim dr3 = dt.NewRow()
dr3("Nr") = idx : dr3("Konto") = r.Konto : bestandskonto = r.Konto : dr3("Soll") = CDec(r.Soll) : dr3("Haben") = CDec(r.Haben) : dt.Rows.Add(dr3) : idx += 1
' Kassenkonto
Dim dr4 = dt.NewRow()
dr4("Nr") = idx : dr4("Konto") = kassenkonto : dr4("Soll") = CDec(r.Haben) : dr4("Haben") = CDec(r.Soll) : dt.Rows.Add(dr4) : idx += 1
Next
Return dt
End Function
Private Shared Sub SplitBuchungstext(full As String, maxLen As Integer, ByRef main As String, ByRef remainder As String)
If full Is Nothing Then full = ""
If full.Length <= maxLen Then
main = full
remainder = ""
Else
main = full.Substring(0, maxLen)
remainder = full.Substring(maxLen)
End If
End Sub
Private Shared Function GetStapelRefId(sql As VERAG_PROG_ALLGEMEIN.SQL, mandant As Integer) As String
Dim v = sql.getValueTxtBySqlVarList("SELECT i_stapel_refid FROM [FIBU2].dbo.fibu_stapelart WHERE c_stapelname Like 'Auszahlungskasse 1' AND i_firm_refid = " & SafeIntToSql(mandant), "FIBU",, "")
Return If(String.IsNullOrWhiteSpace(v), "0000", v)
End Function
Private Shared Function GetNextStapelLfdNr(sql As VERAG_PROG_ALLGEMEIN.SQL, stapelRefId As String, mandant As Integer) As Integer
If String.IsNullOrWhiteSpace(stapelRefId) OrElse stapelRefId = "0000" Then Return 1
Dim v = sql.getValueTxtBySqlVarList("SELECT ISNULL(MAX(i_lfdnr),0)+1 FROM [FIBU2].dbo.fibu_stapel WHERE i_firm_refid = " & SafeIntToSql(mandant) & " AND i_stapel_refid = " & SafeStringSql(stapelRefId), "FIBU",, "1")
Return SafeCIntDef(v, 1)
End Function
Private Shared Function BuildProtokollId(stapelRefId As Integer, lfd As Integer, jahr As Integer, periode As Integer) As String
Dim now As DateTime = DateTime.Now
Dim returnstring As String = ""
If stapelRefId <> 0 Then returnstring &= "${stapelRefId:0000}-"
If lfd > 1 Then returnstring &= "${lfd:0000}-"
returnstring &= now.ToString("dd-MM-yyyy HH:mm:ss")
Return returnstring
End Function
Private Shared Sub UpdateDtKontenAmount(dt As DataTable, konto As Integer, field As String, amount As Decimal)
If dt Is Nothing Then Return
Dim rows() As DataRow = dt.Select("Konto = " & konto)
If rows.Length = 0 Then
Dim r As DataRow = dt.NewRow()
r("Nr") = dt.Rows.Count + 1
r("Konto") = konto
r("Soll") = 0D
r("Haben") = 0D
dt.Rows.Add(r)
rows = dt.Select("Konto = " & konto)
End If
Dim target As DataRow = rows(0)
If String.Equals(field, "Soll", StringComparison.OrdinalIgnoreCase) Then
target("Soll") = CDec(target("Soll")) + amount
Else
target("Haben") = CDec(target("Haben")) + amount
End If
End Sub
' --- DB insert helpers (keep existing signatures) ---
Private Shared Sub InsertBelegskopf_new(sql As VERAG_PROG_ALLGEMEIN.SQL, mandant As Integer, jahr As Integer, periode As Integer, beleg_ref_id As String, datumKurz As String, BelegNr As String, BelegArt As Integer, Buchungstext As String, Belegkopfbetrag As Double, Waehrung As String, creationDate As String, Benutzer As String, ProtokollID As String, c_urbelegid As String)
Dim safeBT = SafeStringSql(Buchungstext)
Dim sqlStr = "INSERT INTO [FIBU2].dbo.fibu_belegkopf (i_firm_refid, si_jahr, si_periode, i_beleg_refid, d_beleg, c_urbelegid, si_belegart, c_buchtext, dec_betrag, c_waehrung, dec_fremdbetrag, eur_betrag, i_auftragid, d_gebucht, c_benutzer, i_buchungskreis, i_quelle_modul, c_quelle_maske, si_manipulation, i_stapel_refid, c_protokoll_id) " &
"VALUES(" & SafeIntToSql(mandant) & "," & jahr & "," & periode & "," & beleg_ref_id & ",'" & SafeStringSql(datumKurz) & "','" & SafeStringSql(c_urbelegid) & "'," & BelegArt & ",'" & safeBT & "'," & Belegkopfbetrag.ToString().Replace(",", ".") & ",'" & SafeStringSql(Waehrung) & "'," & Belegkopfbetrag.ToString().Replace(",", ".") & "," & Belegkopfbetrag.ToString().Replace(",", ".") & ",0,'" & SafeStringSql(creationDate) & "','" & SafeStringSql(Benutzer) & "',1,21,'Fleximport',0,2,'" & SafeStringSql(ProtokollID) & "');"
sql.doSQL(sqlStr, "FIBU")
End Sub
Private Shared Sub InsertBelegszeile_new(sql As VERAG_PROG_ALLGEMEIN.SQL, mandant As Integer, Jahr As Integer, periode As Integer, rel_periode As Integer, beleg_ref_id As String, datumKurz As String, BelegNr As String, BelegArt As String, Buchungstext As String, Buchungsbetrag As Double, Waehrung As String, ZeilenNr As Integer, ckennsoll2 As String, Sollkonto2 As Integer, Habenkonto2 As Integer, SollhabenKZ As String, c_urbelegid As String)
Dim safeBT = SafeStringSql(Buchungstext)
Dim sqlStr = "INSERT INTO [FIBU2].dbo.fibu_belegzeile (i_firm_refid, si_jahr, si_periode, si_rel_periode, i_beleg_refid, i_zeilen_refid, c_kennung, i_konto, c_sollhabenkz, i_steuer_refid, i_gegenkonto, dec_betrag, c_waehrung, dec_fremdbetrag, eur_betrag, d_beleg, d_gebucht, c_urbelegid, si_belegart, c_buchtext, i_buchungskreis) " &
"VALUES(" & SafeIntToSql(mandant) & "," & Jahr & "," & periode & "," & rel_periode & "," & beleg_ref_id & "," & ZeilenNr & ",'" & SafeStringSql(ckennsoll2) & "'," & Sollkonto2 & ",'" & SafeStringSql(SollhabenKZ) & "',0," & Habenkonto2 & "," & Buchungsbetrag.ToString().Replace(",", ".") & ",'" & SafeStringSql(Waehrung) & "'," & Buchungsbetrag.ToString().Replace(",", ".") & "," & Buchungsbetrag.ToString().Replace(",", ".") & ",'" & SafeStringSql(datumKurz) & "','" & SafeStringSql(datumKurz) & "','" & SafeStringSql(c_urbelegid) & "','" & SafeStringSql(BelegArt) & "','" & safeBT & "',1);"
sql.doSQL(sqlStr, "FIBU")
End Sub
Private Shared Sub InsertFibuPeriodensaldo(
sql As VERAG_PROG_ALLGEMEIN.SQL,
mandant As Integer,
jahr As Integer,
konto As Integer,
decAktuellerSaldo As Double)
Dim saldo As String = decAktuellerSaldo.ToString().Replace(",", ".")
Dim sqlStr As String =
"INSERT INTO [FIBU2].dbo.fibu_periodensaldo (i_firm_refid, si_jahr, i_konto, i_perioden, dec_eroeff, dec_abschluss, dec_soll_1, dec_haben_1, dec_soll_2, dec_haben_2, dec_soll_3, dec_haben_3,dec_soll_4, dec_haben_4, dec_soll_5, dec_haben_5, dec_soll_6, dec_haben_6, dec_soll_7, dec_haben_7, dec_soll_8, dec_haben_8, dec_soll_9, dec_haben_9, " &
" dec_soll_10, dec_haben_10, dec_soll_11, dec_haben_11, dec_soll_12, dec_haben_12, dec_soll_13, dec_haben_13, eur_eroeff, eur_abschluss, eur_soll_1, eur_haben_1, eur_soll_2, eur_haben_2, eur_soll_3, eur_haben_3, eur_soll_4, eur_haben_4, eur_soll_5, eur_haben_5, eur_soll_6, eur_haben_6, eur_soll_7, eur_haben_7, eur_soll_8, eur_haben_8, eur_soll_9, eur_haben_9, " &
" eur_soll_10, eur_haben_10, eur_soll_11, eur_haben_11, eur_soll_12, eur_haben_12, eur_soll_13, eur_haben_13, i_buchungskreis) " &
"VALUES (" &
SafeIntToSql(mandant) & "," &
jahr & "," &
konto & "," &
"0," &
String.Join(",", Enumerable.Repeat("0", 32)) & "," &
saldo & "," &
String.Join(",", Enumerable.Repeat("0", 26)) & "," &
"1);"
sql.doSQL(sqlStr, "FIBU")
End Sub
Private Shared Sub createOP_new(mandant As Integer, Betrag As Double, BelegNrText As String, datumKurz As String, BelegNr As String, Buchungstext As String, Buchungsbetrag As Double, Waehrung As String, Personenkonto As Integer, Forderungskonto As Integer, i_op_refid As String, c_op_Typ As Char, Sprache As String, Zahlungsziel As String, Skonto As String, Skontodatum As String, Nettodatum As String, c_ustidnr As String, c_urbelegid As String)
'Rechnung Betrag Positiv, Gutschrift Betrag negativ!typ
Dim vorzeichen As Integer = 1
Select Case c_op_Typ
Case "r" : vorzeichen = 1
Case "g" : vorzeichen = -1
End Select
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL()
Dim betragStr = (Betrag * vorzeichen).ToString().Replace(",", ".")
Dim sqlInsert = "INSERT INTO [FIBU2].dbo.op_debitor (i_firm_refid, i_op_refid, c_urbelegid, i_personenkonto, i_forderungskonto, c_rechnungid, d_rechnung, d_valuta, c_typ, c_sprache, c_waehrung, dec_eigenbrutto, dec_fremdbrutto, eur_bruttobetrag, dec_skf_eigen, dec_skf_fremd, eur_skontierfaehig, dec_eigenzahlung, dec_fremdzahlung, eur_zahlung, c_zahlziel, dec_skonto, d_skonto, dec_skonto2, d_netto, si_mahnstufe, i_mahnlauf_refid, si_exportiert, i_stapel_refid, i_stapel_lfdnr, dec_stpl_ew_betrag, dec_stpl_ew_skonto, dec_stpl_fw_betrag, dec_stpl_fw_skonto, eur_stpl_betrag, eur_stpl_skonto, i_clearing, i_eigene_bank, si_bankeinzug, c_bemerkung, lc_anmerkungen, i_zessionstext, i_buchungskreis, c_ustidnr) " &
"VALUES(" & SafeIntToSql(mandant) & "," & i_op_refid & ",'" & SafeStringSql(c_urbelegid) & "'," & Personenkonto & "," & Forderungskonto & ",'" & SafeStringSql(c_urbelegid) & "','" & SafeStringSql(datumKurz) & "','" & SafeStringSql(datumKurz) & "','" & SafeStringSql(CStr(c_op_Typ)) & "','" & SafeStringSql(Sprache) & "','" & SafeStringSql(Waehrung) & "'," & betragStr & "," & betragStr & "," & betragStr & "," & betragStr & "," & betragStr & "," & betragStr & ",0,0,0,'" & SafeStringSql(Zahlungsziel) & "','" & SafeStringSql(Skonto) & "','" & SafeStringSql(Skontodatum) & "',0,'" & SafeStringSql(Nettodatum) & "',0,0,0,0,0,0,0,0,0,0,0,0,0,0,'" & SafeStringSql(Buchungstext) & "','" & SafeStringSql(Buchungstext) & "',0,1,'" & SafeStringSql(c_ustidnr) & "');"
sql.doSQL(sqlInsert, "FIBU")
End Sub
Private Shared Sub createOPVorgang_new(mandant As Integer, TYP As String, Betrag As Double, Jahr As Integer, rel_periode As Integer, beleg_ref_id As String, datumKurz As String, Buchungstext As String, Personenkonto As Integer, opvorgangsbetrag As Double, i_op_refid As String, dt_creation As String, Sachkonto As Integer, Benutzer As String, si_zeilen_refid As Integer, Optional c_op_Typ As Char = "")
'Rechnung Betrag Positiv, Gutschrift Betrag negativ!
Dim vorzeichen As Integer = 1
Select Case c_op_Typ
Case "r" : vorzeichen = 1
Case "g" : vorzeichen = -1
End Select
opvorgangsbetrag = opvorgangsbetrag * vorzeichen
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL()
Dim sqlInsert = "INSERT INTO [FIBU2].dbo.op_vorgang_deb (i_firm_refid, i_personenkonto, i_op_refid, i_beleg_refid, c_vorgang, d_beleg, si_rel_periode, si_jahr, i_steuer_refid, dec_steuerproz, i_nne_az_konto, dec_nettobetrag, dec_steuerbetrag, eur_nettobetrag, eur_steuerbetrag, dec_fremdbetrag, si_skontierfaehig, si_zeilen_refid, c_bemerkung, dt_datum, c_benutzer, i_eg_konto, i_auftrag_refid, dec_naf_steuerbetr, eur_naf_steuerbetr) " &
"VALUES(" & SafeIntToSql(mandant) & "," & Personenkonto & "," & i_op_refid & "," & beleg_ref_id & ",'P','" & SafeStringSql(datumKurz) & "'," & rel_periode & "," & Jahr & ",0,0," & Sachkonto & "," & opvorgangsbetrag.ToString().Replace(",", ".") & ",0," & opvorgangsbetrag.ToString().Replace(",", ".") & ",0," & opvorgangsbetrag.ToString().Replace(",", ".") & ",1," & si_zeilen_refid & ",'" & SafeStringSql(Buchungstext) & "','" & SafeStringSql(dt_creation) & "','" & SafeStringSql(Benutzer) & "',0,0,0,0);"
sql.doSQL(sqlInsert, "FIBU")
End Sub
' --- existing helpers (kept, but ensure they are present in your codebase) ---
Private Shared Function checkifgebucht_new(mandant As Integer, belegnrtext As String, PosText As String) As Boolean
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL()
Dim safeBeleg = SafeStringSql(belegnrtext)
Dim safePos = SafeStringSql(PosText)
Dim q = "SELECT COUNT(i_beleg_refid) FROM [FIBU2].dbo.fibu_belegzeile WHERE i_firm_refid = " & SafeIntToSql(mandant) &
" AND c_urbelegid = '" & safeBeleg & "' AND c_buchtext LIKE '%" & safePos.Replace("'", "''") & "%'"
Dim cntTxt = sql.getValueTxtBySqlVarList(q, "FIBU",, "0")
Dim cnt As Integer = 0
Integer.TryParse(cntTxt, cnt)
Return cnt >= 3 ' same threshold as original (but consider lowering to 1 or 2)
End Function
Private Shared Function SafeString(value As Object) As String
If value Is Nothing Then Return String.Empty
Return value.ToString()
End Function
Private Shared Function SafeStringSql(value As Object) As String
Dim s = SafeString(value)
s = s.Replace("'", "''")
Return s
End Function
Public Shared Function SafeIntToSql(value As String) As String
If value Is Nothing Then Return "0"
Dim i As Integer
If Integer.TryParse(value.ToString(), i) Then
Return i.ToString()
Else
Return "0"
End If
End Function
Public Shared Function SafeIntToSql(value As Integer) As String
Dim i As Integer
If Integer.TryParse(value.ToString(), i) Then
Return i.ToString()
Else
Return "0"
End If
End Function
Private Shared Function SafeCIntDef(txt As String, def As Integer) As Integer
Dim i As Integer = 0
If Integer.TryParse(txt, i) Then Return i
Return def
End Function
' ----------------------------
' Saldenaktualisierung für Debitoren/Kreditoren/Kassen
' ----------------------------
Public Shared Sub Saldenaktualisierung_new(sql As VERAG_PROG_ALLGEMEIN.SQL, typ As String, betrag As Double, beleg As EABeleg, Optional kontoSoll As Integer = 0, Optional kontoHaben As Integer = 0, Optional mandant As String = "9", Optional jahr As Integer = 0, Optional forderungskto As Integer = 0, Optional kassenkonto As Integer = 0, Optional buchungsnr As Integer = 0, Optional ByRef opvorgangsbetrag As Decimal = 0D)
' Berechne Saldo abhängig vom Typ
Dim sollVal As Double = 0
Dim habenVal As Double = 0
Select Case typ.ToUpper()
Case "EINZAHLUNG"
sollVal = betrag
habenVal = 0
Case "AUSZAHLUNG"
sollVal = 0
habenVal = betrag
Case Else
sollVal = betrag
habenVal = 0
End Select
'SQL.doSQL("UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat ='" & Beleg.BelegDat.ToShortDateString & "', dec_sollsumme = " & dec_sollsumme.ToString.Replace(",", ".") & ", dec_habensumme = " & dec_habensumme.ToString.Replace(",", ".") & " WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_konto.i_konto =" & ErloeskontoBeiAuszahlung, "FIBU")
' Debitor
If beleg.KundenNr > 0 Then
Dim sqlStrDeb As String = "UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat ='" & beleg.BelegDat.ToShortDateString & "', dec_sollsumme = dec_sollsumme + " & sollVal.ToString.Replace(",", ".") & ", dec_habensumme = dec_habensumme + " & habenVal.ToString.Replace(",", ".") &
" WHERE i_firm_refid = " & SafeIntToSql(mandant) & " AND i_konto = " & beleg.KundenNr & " AND [c_kontoart] = 'DE'"
sql.doSQL(sqlStrDeb, "FIBU")
End If
' Kassenkonto
If kassenkonto > 0 Then
Dim sqlStrKas As String = "UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat ='" & beleg.BelegDat.ToShortDateString & "', dec_sollsumme = dec_sollsumme + " & sollVal.ToString.Replace(",", ".") & ", dec_habensumme = dec_habensumme + " & habenVal.ToString.Replace(",", ".") &
" WHERE i_firm_refid = " & SafeIntToSql(mandant) & " AND i_konto = " & kassenkonto & " AND [c_kontoart] = 'KO'"
sql.doSQL(sqlStrKas, "FIBU")
End If
' Forderungskonto
If forderungskto > 0 Then
Dim sqlStrF As String = "UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat ='" & beleg.BelegDat.ToShortDateString & "', dec_sollsumme = dec_sollsumme + " & sollVal.ToString.Replace(",", ".") & ", dec_habensumme = dec_habensumme + " & habenVal.ToString.Replace(",", ".") &
" WHERE i_firm_refid = " & SafeIntToSql(mandant) & " AND i_konto = " & forderungskto & " AND [c_kontoart] = 'KO'"
sql.doSQL(sqlStrF, "FIBU")
End If
' Optional: OP-Vorgangsbetrag für weitere Verarbeitung zurückgeben
opvorgangsbetrag = betrag
End Sub
' ----------------------------
' Debitorendaten abrufen
' ----------------------------
Public Shared Sub getDEBDaten_new(mandant As String, debitorNr As Integer, ByRef sprache As String, ByRef ustidnr As String, ByRef zahlziel As String, ByRef si_tage As Integer, ByRef dec_skonto As Integer, ByRef si_ntage As Integer, Optional ByRef kontakt As String = Nothing, Optional ByRef email As String = Nothing)
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL()
If debitorNr <= 0 Then
sprache = "D"
ustidnr = ""
zahlziel = "30"
si_tage = 0
dec_skonto = 0
si_ntage = 0
If kontakt IsNot Nothing Then kontakt = ""
If email IsNot Nothing Then email = ""
Exit Sub
End If
Dim q As String = "SELECT c_sprache, c_ustidnr, c_zahlziel, si_tage, dec_skonto, si_ntage, c_kontakt, c_email FROM [FIBU2].dbo.debitor " &
"WHERE i_firm_refid = " & SafeIntToSql(mandant) & " AND i_personenkonto = " & debitorNr
Dim dt As DataTable = sql.loadDgvBySql(q, "FIBU")
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
Dim row As DataRow = dt.Rows(0)
sprache = If(IsDBNull(row("c_sprache")), "D", row("c_sprache").ToString())
ustidnr = If(IsDBNull(row("c_ustidnr")), "", row("c_ustidnr").ToString())
zahlziel = If(IsDBNull(row("c_zahlziel")), "30", row("c_zahlziel").ToString())
si_tage = If(IsDBNull(row("si_tage")), 0, CInt(row("si_tage")))
dec_skonto = If(IsDBNull(row("dec_skonto")), 0, CInt(row("dec_skonto")))
si_ntage = If(IsDBNull(row("si_ntage")), 0, CInt(row("si_ntage")))
If kontakt IsNot Nothing Then kontakt = If(IsDBNull(row("c_kontakt")), "", row("c_kontakt").ToString())
If email IsNot Nothing Then email = If(IsDBNull(row("c_email")), "", row("c_email").ToString())
Else
' Defaults
sprache = "D"
ustidnr = ""
zahlziel = "30"
si_tage = 0
dec_skonto = 0
si_ntage = 0
If kontakt IsNot Nothing Then kontakt = ""
If email IsNot Nothing Then email = ""
End If
End Sub
End Class
Public Class cRKSV_DE__TEST
Shared SQL As New SQL
Shared Function getBelegSting_BAR(summeBRUTTO As Double, steuerSchluessel As Integer) As String
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & steuerSchluessel & "' ", "FMZOLL")
Dim BetragSatzNormal = IIf(steuersatz = 0.19, summeBRUTTO, 0.0)
Dim BetragSatzErm1 = IIf(steuersatz = 0.1, summeBRUTTO, 0.0)
Dim BetragSatzNull = IIf(steuersatz = 0, summeBRUTTO, 0.0)
BetragSatzNormal += IIf(steuersatz = 0.16, summeBRUTTO, 0.0)
BetragSatzErm1 += IIf(steuersatz = 0.05, summeBRUTTO, 0.0)
BetragSatzNormal += IIf(steuersatz = 0.2, summeBRUTTO, 0.0) ' Eig Nur AT
'Dim BetragSatzNormal = IIf(steuersatz = 0.2, summeBRUTTO, 0.0) 'summe
'Dim BetragSatzErm2 = IIf(steuersatz = 0.13, summeBRUTTO, 0.0)
'Dim BetragSatzNull = IIf(steuersatz = 0.0, summeBRUTTO, 0.0)
Dim sum = BetragSatzNormal
sum += BetragSatzErm1
sum += BetragSatzNull
MsgBox("Beleg^" & BetragSatzNormal.ToString("0.00") & "_" & BetragSatzErm1.ToString("0.00") & "_0.00_0.00_" & BetragSatzNull.ToString("0.00") & "^" & sum.ToString("0.00") & ":Bar")
Return "Beleg^" & BetragSatzNormal.ToString("0.00") & "_" & BetragSatzErm1.ToString("0.00") & "_0.00_0.00_" & BetragSatzNull.ToString("0.00") & "^" & sum.ToString("0.00") & ":Bar"
End Function
'Shared Function insertRKSV_DE(ByVal kasse As cRKSV_Kasse, CompanyGUID As String, ByVal umsatzZaehler As Double, ByVal belegDat As DateTime, ByVal steuerSchluessel As Integer, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, ByRef QR_CodeString As String, ByRef LastJWS As String, TEST As Boolean, ByRef answer As String) As Boolean
' MsgBox("123")
' Try
' ' COM-Objekt anlegen
' ' Dim licenseKey As String = kasse.rksv_DE_license '"07.11.2020;MEUCIQDfTvMPWQo4IVvTtuTbU9YHNwJ7EdMbogfGqmAp+rdw4gIgPJoEDE0OCfac/nCOKdksWvOZq+xvkFoYI0HFxJPkldU="
' ' Dim TSESerialNumber As String = "77A9D25F044A89E87578A8CD52D2A92564CC09214CC6448465414008D31C1CF1"
' Dim m_ksv = New ItgKsV.KsVCom()
' 'Dim m_ksv As ItgKsV.KsVCom = New ItgKsV.KsVCom()
' ' Dim result As Integer = m_ksv.InitialiseLibrary("F:", "SwissbitDemo", "12345", licenseKey)
' MsgBox(kasse.rksv_ipAdresse & " --- " & kasse.rksv_DE_TSE_Serial & " --- " & kasse.rksv_DE_apiToken & " --- " & kasse.rksv_DE_user & " --- " & kasse.rksv_DE_pwd & " --- " & kasse.rksv_DE_license)
' Dim result As Integer = m_ksv.InitialiseLibraryLan(kasse.rksv_ipAdresse, kasse.rksv_DE_TSE_Serial, kasse.rksv_DE_apiToken, kasse.rksv_DE_user, kasse.rksv_DE_pwd, kasse.rksv_DE_license) '--> ClientId/User "Admin" mit KsVCom Demo registriert
' If result <> &H0 Then
' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' Return False
' End If
' '' Setup bei erstmaliger Verwendung der Swissbit-TSE !!!
' 'result = m_ksv.SetupTSEForFirstUse("123456", "12345", "98765", "SwissbitDemo")
' 'If result <> &H0 Then
' ' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' 'Else
' ' MessageBox.Show("TSE setup succeeded.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
' 'End If
' ' BeginTransaction: für jede neue Rechnung wird eine Transaktion gestartet
' Dim transactionNumber As Long = 0
' result = m_ksv.StartTransaction(transactionNumber)
' If result <> &H0 Then
' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' Return False
' End If
' ' UpdateTransaction: processData bleibt leer
' result = m_ksv.UpdateTransaction(transactionNumber, "", "KassenBeleg-V1")
' If result <> &H0 Then
' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' End If
' ' FinishTransaction: Abschluss einer Rechnung, processData nach vorgegebenem Format
' result = m_ksv.FinishTransaction(transactionNumber, getBelegSting_BAR(summeBRUTTO, steuerSchluessel), "KassenBeleg-V1")
' If result <> &H0 Then
' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' End If
' ' QR-Code und weitere Werte, die auf der Rechnung angedruckt werden müssen
' ' QR-Code wird als base64 kodiertes bitmap geliefert
' Dim qrCode As String = String.Empty
' ' QR-Code Inhalt für die Ablage in der Datenbank, falls eine Rechnung nochmals gedruckt werden muss
' Dim qrCodeContent As String = String.Empty
' m_ksv.GetLastReceiptQrCode(qrCode)
' m_ksv.GetLastReceiptQrCodeContent(qrCodeContent)
' Dim sTransactionNumber As String = String.Empty
' Dim serialNumber As String = String.Empty
' Dim signature As String = String.Empty
' Dim sigCounter As String = String.Empty
' Dim dtStartTransaction As Date = Date.MinValue
' Dim dtFinishTransaction As Date = Date.MinValue
' m_ksv.GetLastReceiptValues(sTransactionNumber, serialNumber, signature, dtStartTransaction, dtFinishTransaction, sigCounter)
' QR_CodeString = qrCode
' LastJWS = signature
' '' Anzeige der gestarteten/noch möglichen Transaktionen
' 'Dim maxTransactions As Integer = 0
' 'Dim openTransactions As Integer = 0
' 'm_ksv.GetMaxStartedTransactions(maxTransactions)
' 'm_ksv.GetStartedTransactions(openTransactions)
' 'Dim startedTransactions As Integer() = Nothing
' 'result = m_ksv.GetStartedTransactionNumbers(startedTransactions)
' 'If result <> &H0 Then
' ' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' 'End If
' '' Export der TSE-Daten im TAR-Format
' 'result = m_ksv.ExportAsTarFile("d:\export.tar")
' 'If result <> 0 Then
' ' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' 'End If
' '' Bibliothek aufräumen, andernfalls wird ein power-cycle der TSE erforderlich um sie wieder einsetzen zu können
' ''result = CSharpImpl.__Assign(,, m_ksv.CleanupLibrary())
' 'result = m_ksv.CleanupLibrary()
' 'If result <> 0 Then
' ' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' 'End If
' Catch ex As Exception
' MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
' End Try
' Return False
'End Function
End Class
Public Class cRKSV_DE
Shared SQL As New SQL
'Shared Function getBelegSting_BAR(summeBRUTTO As Double, steuerSchluessel As Integer) As String
' Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & steuerSchluessel & "' ", "FMZOLL")
' Dim BetragSatzNormal = IIf(steuersatz = 0.19, summeBRUTTO, 0.0)
' Dim BetragSatzErm1 = IIf(steuersatz = 0.1, summeBRUTTO, 0.0)
' Dim BetragSatzNull = IIf(steuersatz = 0, summeBRUTTO, 0.0)
' BetragSatzNormal += IIf(steuersatz = 0.16, summeBRUTTO, 0.0)
' BetragSatzErm1 += IIf(steuersatz = 0.05, summeBRUTTO, 0.0)
' BetragSatzNormal += IIf(steuersatz = 0.2, summeBRUTTO, 0.0) ' Eig Nur AT
' 'Dim BetragSatzNormal = IIf(steuersatz = 0.2, summeBRUTTO, 0.0) 'summe
' 'Dim BetragSatzErm2 = IIf(steuersatz = 0.13, summeBRUTTO, 0.0)
' 'Dim BetragSatzNull = IIf(steuersatz = 0.0, summeBRUTTO, 0.0)
' Dim sum = BetragSatzNormal
' sum += BetragSatzErm1
' sum += BetragSatzNull
' MsgBox("Beleg^" & BetragSatzNormal.ToString("0.00") & "_" & BetragSatzErm1.ToString("0.00") & "_0.00_0.00_" & BetragSatzNull.ToString("0.00") & "^" & sum.ToString("0.00") & ":Bar")
' Return "Beleg^" & BetragSatzNormal.ToString("0.00") & "_" & BetragSatzErm1.ToString("0.00") & "_0.00_0.00_" & BetragSatzNull.ToString("0.00") & "^" & sum.ToString("0.00") & ":Bar"
'End Function
Shared Function stornoRKSV_DE(PERSONAL As cPersonal, BELEG As EABeleg, ByVal kasse As cRKSV_Kasse, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, ByRef QR_CodeString As String, ByRef LastJWS As String, TEST As Boolean, ByRef answer As String, Optional storno As Integer = 0) As Boolean
Return insertRKSV_DE(PERSONAL, BELEG, kasse, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, TEST, answer, 1)
End Function
Shared Function getRKSVLink(ByVal kasse As cRKSV_Kasse) As String
Return kasse.rksv_ipAdresse
'Return getRKSVLink(kasse.rksv_bez)
End Function
Shared Function insertRKSV_DE_ORIG(PERSONAL As cPersonal, BELEG As EABeleg, ByVal kasse As cRKSV_Kasse, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, ByRef QR_CodeString As String, ByRef LastJWS As String, TEST As Boolean, ByRef answer As String, Optional storno As Integer = 0) As Boolean
Try
Dim cashbox As String = kasse.rksv_KassaGuid '"VERAG_GMBH_KASSE_01" "KASSA 001"
'Dim endpoint = New System.ServiceModel.EndpointAddress(getRKSVLink(kasse))
' Dim m_com As VERAG_PROG_ALLGEMEIN.DSFinVKService.DSFinVKServerClient = New VERAG_PROG_ALLGEMEIN.DSFinVKService.DSFinVKServerClient("DSFinVKService", endpoint) '"http://ymgk028055.verag.ost.dmn:8733/DSFinVKService")
Dim m_com As DSFinVKServerClient = New DSFinVKServerClient() 'PROBLEM??
' Dim [error] = "" 'm_com.InitializeLibrary(tbLicense.Text, "D:\Database\DSFinVK\dsfinvkdb.db3", "Administrator", "test", cashbox)
Dim [error] = m_com.InitializeLibrary("SQLGUIDE01.verag.ost.dmn", "itg_RKSV_DE", "dsfinvk", "dsfinvk#1337", cashbox)
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
Dim BON_ID As Integer = 0
[error] = m_com.GetNextBON_ID(cashbox, BON_ID)
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
'Rechnung beginnen
Dim bonkopfBegin As VERAG_PROG_ALLGEMEIN.DSFinVKService.BonKopfBegin = New VERAG_PROG_ALLGEMEIN.DSFinVKService.BonKopfBegin()
bonkopfBegin.Z_KASSE_ID = cashbox
bonkopfBegin.BEDIENER_ID = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID 'tbBEDIENER_ID.Text
bonkopfBegin.BEDIENER_NAME = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME 'tbBEDIENER_NAME.Text
bonkopfBegin.BON_ID = BON_ID.ToString()
bonkopfBegin.BON_NAME = "" 'tbBON_NAME.Text
bonkopfBegin.BON_NOTIZ = "" 'tbBON_NOTIZ.Text
bonkopfBegin.BON_NR = BON_ID
bonkopfBegin.BON_STORNO = storno 'If(cbBON_STORNO.Checked, "1", "0")
bonkopfBegin.BON_TYP = "Beleg" 'cmbBON_TYP.SelectedItem.ToString()
bonkopfBegin.KUNDE_ID = "" 'tbKUNDE_ID.Text
bonkopfBegin.KUNDE_LAND = "" 'tbKUNDE_LAND.Text
bonkopfBegin.KUNDE_NAME = "" 'tbKUNDE_NAME.Text
bonkopfBegin.KUNDE_ORT = "" 'tbKUNDE_ORT.Text
bonkopfBegin.KUNDE_PLZ = "" 'tbKUNDE_PLZ.Text
bonkopfBegin.KUNDE_STRASSE = "" ' tbKUNDE_STRASSE.Text
bonkopfBegin.KUNDE_TYP = "" ' tbKUNDE_TYP.Text
bonkopfBegin.KUNDE_USTID = "" ' tbKUNDE_USTID.Text
bonkopfBegin.TERMINAL_ID = "" 'tbTERMINAL_ID.Text
Dim transactionNumber As Integer = 0
[error] = m_com.BeginReceipt(cashbox, bonkopfBegin, transactionNumber)
Dim cntZeile = 1
Dim GES_BRUTTO As Double = 0
For Each POS In BELEG.POS
'Bonposition hinzufügen
Dim position As VERAG_PROG_ALLGEMEIN.DSFinVKService.BonPosition = New VERAG_PROG_ALLGEMEIN.DSFinVKService.BonPosition()
position.AGENTUR_ID = "" 'Convert.ToInt32(dgvBonPos.Rows[m_dgvCurrentRow].Cells["AGENTUR_ID"].Value)
position.ARTIKELTEXT = POS.LeistungsBez 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["ARTIKELTEXT"].Value)
position.ART_NR = POS.LeistungsNr ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["ART_NR"].Value)
position.BON_ID = Convert.ToString(BON_ID)
position.EINHEIT = "Stk." ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["EINHEIT"].Value)
position.FAKTOR = 1 ' Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["FAKTOR"].Value)
position.GTIN = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GTIN"].Value)
position.GUTSCHEIN_NR = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GUTSCHEIN_NR"].Value)
position.GV_NAME = "" ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GV_NAME"].Value)
position.GV_TYP = "Umsatz" ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GV_TYP"].Value)
position.INHAUS = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["INHAUS"].Value)
position.MENGE = POS.Anzahl 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["MENGE"].Value)
position.POS_TERMINAL_ID = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_TERMINAL_ID"].Value)
position.POS_ZEILE = cntZeile 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_ZEILE"].Value)
position.P_STORNO = storno ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["P_STORNO"].Value)
position.STK_BR = POS.Preis 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["STK_BR"].Value)
position.WARENGR = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["WARENGR"].Value)
position.WARENGR_ID = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["WARENGR_ID"].Value)
position.Z_KASSE_ID = cashbox 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["Z_KASSE_ID"].Value)
' Beträge der Position
Dim position_vat = New VERAG_PROG_ALLGEMEIN.DSFinVKService.BonPosition_Ust()
position_vat.BON_ID = position.BON_ID
position_vat.POS_ZEILE = position.POS_ZEILE
Dim steuersatzID = 1
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT [Steuersatz] FROM [tblSteuersätze] where nr='" & BELEG.Steuerschlüssel & "'", "FMZOLL")
Select Case steuersatz
Case 0.19 : steuersatzID = 1
Case 0.07 : steuersatzID = 2
Case 0.00 : steuersatzID = 6
End Select
position_vat.UST_SCHLUESSEL = steuersatzID 'm_com.GetTaxIds(cashbox,) 'Convert.ToInt32(dgvBonPos.Rows[m_dgvCurrentRow].Cells["UST_SCHLUESSEL"].Value)
Dim steuerBetrag = POS.Betrag * position_vat.UST_SCHLUESSEL
position_vat.POS_BRUTTO = POS.Betrag + steuerBetrag 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_BRUTTO"].Value)
position_vat.POS_NETTO = POS.Betrag 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_NETTO"].Value)
position_vat.POS_UST = steuerBetrag 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_UST"].Value)
[error] = m_com.AddPositionToReceipt(cashbox, position, position_vat, transactionNumber)
cntZeile += 1
GES_BRUTTO += position_vat.POS_BRUTTO
Next
'Rechnung abschließen
Dim bonkopfFinish As VERAG_PROG_ALLGEMEIN.DSFinVKService.BonKopfFinish = New VERAG_PROG_ALLGEMEIN.DSFinVKService.BonKopfFinish()
bonkopfFinish.Z_KASSE_ID = cashbox
bonkopfFinish.BON_ID = BON_ID
If Not Decimal.TryParse(GES_BRUTTO, bonkopfFinish.UMS_BRUTTO) Then
bonkopfFinish.UMS_BRUTTO = 0.00
End If
bonkopfFinish.PROCESS_TYPE = "Kassenbeleg-V1"
bonkopfFinish.payment_currencies = {"EUR"}
bonkopfFinish.payment_types = {"Bar"}
bonkopfFinish.payment_per_currency = {119.0}
[error] = m_com.FinishReceipt(cashbox, bonkopfFinish, transactionNumber)
' Kassenabschluss anlegen über alle noch nicht abgeschlossenen Rechnungen zu dieser Kasse
' Error = m_com.CreateCashpointClosing(cashbox)
' ' DSFinV-K-Export
' Int from = 0
'Int to = 10
'Dim ret = m_com.ExportCSVFiles(from, to, tbSelectedFolder.Text, tbZipName.Text, True, True,
'true, true, true, true, true, true,
'true, true, true, true,
'true, true, true, true, true,
'true, true, true);
'If (ret == ErrorCode.OK) Then
'{
'MessageBox.Show("Die CSV Dateien wurden im Ordner " + tbSelectedFolder.Text + " angelegt und in die Zip-Datei " + tbZipName.Text + " gepackt.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
'}
'Else
'{
'MessageBox.Show("Beim exportieren der CSV-Dateien ging etwas schief:\r\n" + ret.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
'}
Dim transactionNumberRet As String
Dim serialNumber As String
Dim signature As String
Dim transactionStart As Date
Dim transactionFinish As Date
Dim sigCounter As String
m_com.GetLastReceiptValues(cashbox, transactionNumberRet, serialNumber, signature, transactionStart, transactionFinish, sigCounter)
Dim qrCode As String = String.Empty
Dim mimeType As String = String.Empty
m_com.GetLastReceiptQrCode(cashbox, qrCode, mimeType)
QR_CodeString = qrCode
LastJWS = signature
Catch ex As Exception
MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
End Try
Return False
End Function
Shared Function insertRKSV_DE(PERSONAL As cPersonal, BELEG As EABeleg, ByVal kasse As cRKSV_Kasse, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, ByRef QR_CodeString As String, ByRef LastJWS As String, TEST As Boolean, ByRef answer As String, Optional storno As Integer = 0) As Boolean
Try
' MsgBox("0: ")
Dim cashbox As String = kasse.rksv_KassaGuid '"VERAG_GMBH_KASSE_01" "KASSA 001"
'Dim endpoint = New System.ServiceModel.EndpointAddress(getRKSVLink(kasse))
' Dim m_com As VERAG_PROG_ALLGEMEIN.DSFinVKService.DSFinVKServerClient = New VERAG_PROG_ALLGEMEIN.DSFinVKService.DSFinVKServerClient("DSFinVKService", endpoint) '"http://ymgk028055.verag.ost.dmn:8733/DSFinVKService")
Dim m_com As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.DSFinVKServer = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.DSFinVKServer() 'PROBLEM??
m_com.Url = "http://ymgk028055.verag.ost.dmn:8733/DSFinVKService"
Dim [error] As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.ErrorCode
Dim InitializeLibraryResultSpecified As Boolean
' Dim [error] = "" 'm_com.InitializeLibrary(tbLicense.Text, "D:\Database\DSFinVK\dsfinvkdb.db3", "Administrator", "test", cashbox)
m_com.InitializeLibrary("SQLGUIDE01.verag.ost.dmn", "itg_RKSV_DE", "dsfinvk", "dsfinvk#1337", cashbox, [error], InitializeLibraryResultSpecified)
' MsgBox("1: " & [error])
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
If [error].ToString() <> "CASHBOX_ALREADY_MANAGED" Then '--> CASHBOX_ALREADY_MANAGED --> der Fehler darf auftreten, die Cashbox wird Serverseitig initialisert, hier nur der Versuch, falls das nciht geschehen ist... lt. Jan Mika / AITG
MessageBox.Show([error].ToString(), "Error1", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
End If
' MsgBox("2")
'BelegNr wird von RKSV übernommen
Dim BON_ID As Integer = 0
If False Then
Dim BON_IDSpecified = False
Dim GetNextBON_IDResultSpecified = False
m_com.GetNextBON_ID(cashbox, BON_ID, BON_IDSpecified, [error], GetNextBON_IDResultSpecified)
' MsgBox("3: " & [error])
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error2", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
Else
' MsgBox(RKSV_Beleg_Id)
BON_ID = RKSV_Beleg_Id
End If
'Dim BON_NR As Integer = 0
'[error] = m_com.GetNextBON_NR(cashbox, BON_NR)
'If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
' MessageBox.Show([error].ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' Return False
'End If
' MsgBox("4")
'-------------------------------------------------------------------------------------
'--------------------------------- Rechnung beginnen ---------------------------------
'-------------------------------------------------------------------------------------
Dim bonkopfBegin As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonKopfBegin = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonKopfBegin()
bonkopfBegin.Z_KASSE_ID = cashbox
bonkopfBegin.BEDIENER_ID = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID 'tbBEDIENER_ID.Text
bonkopfBegin.BEDIENER_NAME = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME 'tbBEDIENER_NAME.Text
bonkopfBegin.BON_ID = BON_ID.ToString()
bonkopfBegin.BON_NAME = "" 'tbBON_NAME.Text
bonkopfBegin.BON_NOTIZ = "" 'tbBON_NOTIZ.Text
bonkopfBegin.BON_NR = bonkopfBegin.BON_ID
bonkopfBegin.BON_STORNO = storno 'If(cbBON_STORNO.Checked, "1", "0")
bonkopfBegin.BON_TYP = "Beleg" 'cmbBON_TYP.SelectedItem.ToString()
bonkopfBegin.KUNDE_ID = If(BELEG.KundenNr > 0, BELEG.KundenNr, "") 'tbKUNDE_ID.Text
bonkopfBegin.KUNDE_LAND = If(BELEG.LandKz, "") 'tbKUNDE_LAND.Text
bonkopfBegin.KUNDE_NAME = If(BELEG.Frachtführer, "") 'tbKUNDE_NAME.Text
bonkopfBegin.KUNDE_ORT = If(BELEG.Ort, "") 'tbKUNDE_ORT.Text
bonkopfBegin.KUNDE_PLZ = If(BELEG.PLZ, "") 'tbKUNDE_PLZ.Text
bonkopfBegin.KUNDE_STRASSE = If(BELEG.Straße, "") ' tbKUNDE_STRASSE.Text
bonkopfBegin.KUNDE_TYP = "" ' tbKUNDE_TYP.Text
bonkopfBegin.KUNDE_USTID = If(BELEG.UstIdKz, "") & If(BELEG.UstIdNr, "") ' tbKUNDE_USTID.Text
bonkopfBegin.TERMINAL_ID = "" 'tbTERMINAL_ID.Text
Dim transactionNumber As Integer = 0
Dim transactionNumberSpecified As Boolean
Dim BeginReceiptResultSpecified As Boolean
m_com.BeginReceipt(cashbox, bonkopfBegin, transactionNumber, transactionNumberSpecified, [error], BeginReceiptResultSpecified)
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error3", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
' MsgBox("5 ANZ: " & BELEG.POS.Count)
Dim cntZeile = 1
Dim GES_BRUTTO As Double = 0
For Each POS In BELEG.POS
'Bonposition hinzufügen
Dim position As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonPosition = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonPosition()
position.AGENTUR_ID = -1 'Convert.ToInt32(dgvBonPos.Rows[m_dgvCurrentRow].Cells["AGENTUR_ID"].Value)
position.ARTIKELTEXT = POS.LeistungsBez 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["ARTIKELTEXT"].Value)
position.ART_NR = POS.LeistungsNr ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["ART_NR"].Value)
position.BON_ID = Convert.ToString(BON_ID)
position.EINHEIT = "Stk." ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["EINHEIT"].Value)
position.FAKTOR = 1 ' Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["FAKTOR"].Value)
position.GTIN = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GTIN"].Value)
position.GUTSCHEIN_NR = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GUTSCHEIN_NR"].Value)
position.GV_NAME = "" ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GV_NAME"].Value)
position.GV_TYP = "Umsatz" ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["GV_TYP"].Value)
position.INHAUS = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["INHAUS"].Value)
position.MENGE = POS.Anzahl 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["MENGE"].Value)
position.POS_TERMINAL_ID = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_TERMINAL_ID"].Value)
position.POS_ZEILE = cntZeile 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_ZEILE"].Value)
position.P_STORNO = storno ' Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["P_STORNO"].Value)
position.STK_BR = POS.Preis 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["STK_BR"].Value)
position.WARENGR = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["WARENGR"].Value)
position.WARENGR_ID = "" 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["WARENGR_ID"].Value)
position.Z_KASSE_ID = cashbox 'Convert.ToString(dgvBonPos.Rows[m_dgvCurrentRow].Cells["Z_KASSE_ID"].Value)
' Beträge der Position
Dim position_vat = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonPosition_Ust()
position_vat.BON_ID = position.BON_ID
position_vat.POS_ZEILE = position.POS_ZEILE
Dim steuersatzID = 1
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT [Steuersatz] FROM [tblSteuersätze] where nr='" & BELEG.Steuerschlüssel & "'", "FMZOLL")
Select Case steuersatz
Case 0.19 : steuersatzID = 1
Case 0.07 : steuersatzID = 2
Case 0.00 : steuersatzID = 6
End Select
' MsgBox(POS.Anzahl)
' MsgBox(POS.Betrag)
position_vat.UST_SCHLUESSEL = steuersatzID 'm_com.GetTaxIds(cashbox,) 'Convert.ToInt32(dgvBonPos.Rows[m_dgvCurrentRow].Cells["UST_SCHLUESSEL"].Value)
Dim steuerBetrag As Double = POS.Betrag * steuersatz
position_vat.POS_BRUTTO = Convert.ToDecimal(POS.Betrag + steuerBetrag) 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_BRUTTO"].Value)
position_vat.POS_NETTO = Convert.ToDecimal(POS.Betrag) 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_NETTO"].Value)
position_vat.POS_UST = Convert.ToDecimal(steuerBetrag) 'Convert.ToDecimal(dgvBonPos.Rows[m_dgvCurrentRow].Cells["POS_UST"].Value)
Dim AddPositionToReceiptResultSpecified As Boolean
m_com.AddPositionToReceipt(cashbox, position, position_vat, transactionNumber, transactionNumberSpecified, [error], AddPositionToReceiptResultSpecified)
cntZeile += 1
GES_BRUTTO += position_vat.POS_BRUTTO
Next
' MsgBox("6: " & GES_BRUTTO)
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error4", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
'Rechnung abschließen
Dim bonkopfFinish As VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonKopfFinish = New VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService.BonKopfFinish()
bonkopfFinish.Z_KASSE_ID = cashbox
bonkopfFinish.BON_ID = BON_ID
Try
bonkopfFinish.UMS_BRUTTO = Convert.ToDecimal(GES_BRUTTO)
Catch ex As Exception
bonkopfFinish.UMS_BRUTTO = 0.00
End Try
'If Not Decimal.TryParse(GES_BRUTTO, bonkopfFinish.UMS_BRUTTO) Then
' bonkopfFinish.UMS_BRUTTO = 0.00
'End If
bonkopfFinish.PROCESS_TYPE = "Kassenbeleg-V1"
bonkopfFinish.payment_currencies = {"EUR"}
bonkopfFinish.payment_types = {"Bar"}
bonkopfFinish.payment_per_currency = {GES_BRUTTO} '{0.0} 'BETRAG"!!!!!!!!!!!!
' MsgBox("6,1: ")
Dim FinishReceiptResult As Boolean = True
Dim FinishReceiptResultSpecified As Boolean
m_com.FinishReceipt(cashbox, bonkopfFinish, transactionNumber, FinishReceiptResult, [error], FinishReceiptResultSpecified)
' MsgBox("6,2: ")
If [error] <> VERAG_PROG_ALLGEMEIN.DSFinVKService.ErrorCode.OK Then
MessageBox.Show([error].ToString(), "Error5", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
' Kassenabschluss anlegen über alle noch nicht abgeschlossenen Rechnungen zu dieser Kasse
' Error = m_com.CreateCashpointClosing(cashbox)
' ' DSFinV-K-Export
' Int from = 0
'Int to = 10
'Dim ret = m_com.ExportCSVFiles(from, to, tbSelectedFolder.Text, tbZipName.Text, True, True,
'true, true, true, true, true, true,
'true, true, true, true,
'true, true, true, true, true,
'true, true, true);
'If (ret == ErrorCode.OK) Then
'{
'MessageBox.Show("Die CSV Dateien wurden im Ordner " + tbSelectedFolder.Text + " angelegt und in die Zip-Datei " + tbZipName.Text + " gepackt.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
'}
'Else
'{
'MessageBox.Show("Beim exportieren der CSV-Dateien ging etwas schief:\r\n" + ret.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
'}
' MsgBox("7")
Dim transactionNumberRet As String
Dim serialNumber As String
Dim signature As String
Dim transactionStart As Date
Dim transactionFinish As Date
Dim sigCounter As String
Dim transactionStartSpecified As Boolean
Dim transactionFinishSpecified As Boolean
Dim GetLastReceiptValuesResultSpecified As Boolean
'
m_com.GetLastReceiptValues(cashbox, transactionNumberRet, serialNumber, signature, transactionStart, transactionStartSpecified, transactionFinish, transactionFinishSpecified, sigCounter, [error], GetLastReceiptValuesResultSpecified)
' MsgBox("8")
Dim qrCode As String = String.Empty
Dim mimeType As String = String.Empty
Dim GetLastReceiptQrCodeResult As Boolean
Dim GetLastReceiptQrCodeResultSpecified As Boolean
m_com.GetLastReceiptQrCode(cashbox, qrCode, mimeType, GetLastReceiptQrCodeResult, GetLastReceiptQrCodeResultSpecified)
QR_CodeString = qrCode
LastJWS = signature
' MsgBox("9")
If QR_CodeString.Length > 50 And LastJWS.Length > 50 Then
Return True
End If
Catch ex As Exception
MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
End Try
Return False
End Function
'Shared Function insertRKSV_DE(ByVal kasse As cRKSV_Kasse, CompanyGUID As String, ByVal umsatzZaehler As Double, ByVal belegDat As DateTime, ByVal steuerSchluessel As Integer, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, ByRef QR_CodeString As String, ByRef LastJWS As String, TEST As Boolean, ByRef answer As String) As Boolean
' Try
' Dim xCom As New VERAG_PROG_ALLGEMEIN.RKSV_DE.DSFinVKServerClient
' Dim ret As Long
' Dim bonkopfBegin As New VERAG_PROG_ALLGEMEIN.RKSV_DE.BonKopfBegin
' Dim bonkopfFinish As New VERAG_PROG_ALLGEMEIN.RKSV_DE.BonKopfFinish
' Dim bonpos As New VERAG_PROG_ALLGEMEIN.RKSV_DE.BonPosition
' Dim bonpos_ust As New VERAG_PROG_ALLGEMEIN.RKSV_DE.BonPosition_Ust
' Dim transactionNumber As Long
' Dim bonId As Long
' Dim bonNr As Long
' Dim poszeile As Integer
' ' zwingend erforderliche Felder:
' Dim tbCashbox = kasse.rksv_KassaGuid ' VERAG_GMBH_KASSE_01
' bonkopfBegin.Z_KASSE_ID = tbCashbox
' bonkopfBegin.BON_ID = bonId
' bonkopfBegin.BON_NR = bonId
' bonkopfBegin.BON_TYP = "Beleg" 'tbBonTyp
' bonkopfBegin.BON_NAME = "" 'tbBonName
' bonkopfBegin.BON_STORNO = "0"
' bonkopfBegin.BEDIENER_ID = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID 'tbBedienerId
' bonkopfBegin.BEDIENER_NAME = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME ' tbBedienerName
' Dim tbBonStart = Format(Now(), "yyyy-mm-ddThh:MM:ss")
' poszeile = 1
' bonkopfBegin.BON_START = tbBonStart
' ' optionale Felder:
' ' bonkopfBegin.KUNDE_NAME = tbKundeName
' ' bonkopfBegin.KUNDE_ID = tbKundeId
' ' bonkopfBegin.KUNDE_TYP = tbKundeTyp
' ' bonkopfBegin.KUNDE_USTID = tbKundeUstId
' ' bonkopfBegin.KUNDE_STRASSE = tbKundeStrasse
' ' bonkopfBegin.KUNDE_PLZ = tbKundePlz
' ' bonkopfBegin.KUNDE_ORT = tbKundeOrt
' ' bonkopfBegin.KUNDE_LAND = tbKundeLand
' ret = xCom.BeginReceipt(tbCashbox, bonkopfBegin, transactionNumber)
' If ret <> 0 Then
' MsgBox("Es ist ein Fehler aufgetreten! ErrorCode = " + Str$(ret))
' Else
' tbTransNr = transactionNumber
' End If
' Dim qrCode As String = String.Empty
' ' QR-Code Inhalt für die Ablage in der Datenbank, falls eine Rechnung nochmals gedruckt werden muss
' Dim qrCodeContent As String = String.Empty
' m_ksv.GetLastReceiptQrCode(qrCode)
' m_ksv.GetLastReceiptQrCodeContent(qrCodeContent)
' Dim sTransactionNumber As String = String.Empty
' Dim serialNumber As String = String.Empty
' Dim signature As String = String.Empty
' Dim sigCounter As String = String.Empty
' Dim dtStartTransaction As Date = Date.MinValue
' Dim dtFinishTransaction As Date = Date.MinValue
' m_ksv.GetLastReceiptValues(sTransactionNumber, serialNumber, signature, dtStartTransaction, dtFinishTransaction, sigCounter)
' QR_CodeString = qrCode
' LastJWS = signature
' '' Anzeige der gestarteten/noch möglichen Transaktionen
' 'Dim maxTransactions As Integer = 0
' 'Dim openTransactions As Integer = 0
' 'm_ksv.GetMaxStartedTransactions(maxTransactions)
' 'm_ksv.GetStartedTransactions(openTransactions)
' 'Dim startedTransactions As Integer() = Nothing
' 'result = m_ksv.GetStartedTransactionNumbers(startedTransactions)
' 'If result <> &H0 Then
' ' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' 'End If
' '' Export der TSE-Daten im TAR-Format
' 'result = m_ksv.ExportAsTarFile("d:\export.tar")
' 'If result <> 0 Then
' ' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' 'End If
' '' Bibliothek aufräumen, andernfalls wird ein power-cycle der TSE erforderlich um sie wieder einsetzen zu können
' ''result = CSharpImpl.__Assign(,, m_ksv.CleanupLibrary())
' 'result = m_ksv.CleanupLibrary()
' 'If result <> 0 Then
' ' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
' 'End If
' Catch ex As Exception
' MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
' End Try
' Return False
'End Function
'################## ------- ------- ------- ##################
'################## ------- ------- ------- ##################
'################## ------- BUCHUNGEN------- ##################
'################## ------- ------- ------- ##################
'################## ------- ------- ------- ##################
'################## ------- DEFAULTWERTE------- ##################
'Declare @Kundensuchnr INTEGER
'Declare @Kundennr INTEGER
'Declare @belegdatum DATETIME
'Declare @belegnr INTEGER
'Declare @MandantNr INTEGER
'Declare @StapelAZK INTEGER
'Declare @Zaehler1 INTEGER
'Declare @ZSBuchnr INTEGER
'Declare @ZSzeilenr INTEGER
'Declare @Sollkonto INTEGER
'Declare @Habenkonto INTEGER
'Declare @ckennsoll VARCHAR(2)
' Declare @ckennhab VARCHAR(2)
' Declare @steuerproz FLOAT
'Declare @Jahr INTEGER
'Declare @Periode INTEGER
'Declare @Zeilenrefid INTEGER
'Declare @Kennung VARCHAR(2)
' Declare @Konto INTEGER
'Declare @SollHaben VARCHAR(1)
' Declare @Steuersatz FLOAT
'Declare @Steuerbetrag FLOAT
'Declare @Gegenkonto INTEGER
'Declare @Waehrung VARCHAR(5)
' Declare @Belegart INTEGER
'Declare @kkennung INTEGER
'Declare @kkennungsoll INTEGER
'Declare @kkennunghab INTEGER
'Declare @Splitart INTEGER
'Declare @Buchungsbelegkreis VARCHAR(5)
' Declare @Buchungstext_orig VARCHAR(255)
' Declare @Buchungstext VARCHAR(49)
' Declare @BuchungstextBemerkung VARCHAR(29)
' Declare @Firmenname VARCHAR(50)
' Declare @Ort VARCHAR(50)
' Declare @belegnrtext VARCHAR(24)
' Declare @Kontonummer VARCHAR(8)
' Declare @DB_Kontosoll INTEGER
'Declare @i_buchungskreis INTEGER
'Declare @i_bank_flags INTEGER
'Declare @i_quelle_modul INTEGER
'Declare @c_quelle_maske VARCHAR(50)
' Declare @si_manipulation INTEGER
'Declare @dt_creation DATETIME
'Declare @c_protokoll_id VARCHAR(100)
' Declare @C_Jahr VARCHAR(4)
' Declare @C_Periode VARCHAR(4)
' Declare @Tag INTEGER
'Declare @C_Tag VARCHAR(4)
' Declare @Stunde INTEGER
'Declare @C_Stunde VARCHAR(4)
' Declare @Minute INTEGER
'Declare @C_Minute VARCHAR(4)
' Declare @Sekunde INTEGER
'Declare @C_Sekunde VARCHAR(4)
' Declare @Monat INTEGER
'Declare @C_Monat VARCHAR(4)
' Declare @Anno INTEGER
'Declare @C_Anno VARCHAR(4)
' Declare @pruef INTEGER
'Declare @skf_soll INTEGER
'Declare @skf_haben INTEGER
'Declare @B_Bruttobetrag FLOAT
'Declare @dec_steuerproz FLOAT
'Declare @Benutzer VARCHAR(30)
' Declare @Systembenutzer INTEGER
'Declare @Barverkaufsrechnung BIT
'Declare @P_Bruttobetrag FLOAT
'Declare @P_Nettobetrag FLOAT
'Declare @Einzahlungsbetrag FLOAT
'Declare @Auszahlungsbetrag FLOAT
'Declare @Sollkonto2 INTEGER
'Declare @Habenkonto2 INTEGER
'Declare @ckennsoll2 VARCHAR(2)
' Declare @ckennhab2 VARCHAR(2)
' Declare @kkennungsoll2 INTEGER
'Declare @kkennunghab2 INTEGER
'Declare @Ben_Pos_Nr INTEGER
'Declare @Ben_Jahr INTEGER
'Declare @Position INTEGER
'Declare @Ganzer_Pos_Nr_Text VARCHAR(20)
' Declare @Bel_Jahr_Text VARCHAR(20)
' Declare @Bel_Jahr INTEGER
'Declare @Bel_Pos_Nr_Text VARCHAR(20)
' Declare @Bel_Pos_Nr INTEGER
'Declare @RechnungErstellen_B VARCHAR(24)
' Declare @Kassakonto VARCHAR(8)
' Declare @Kassanr INTEGER
'Declare @Rechnungsstatus BIT
'Declare @Zahlungsmittelbetraege FLOAT
'Declare @Korrekturbetrag FLOAT
'Declare @Waehrungsnr INTEGER
'Declare @Umrechnungsfaktor FLOAT
'Declare @LKW VARCHAR(50)
' Declare @Fahrer VARCHAR(50)
' Declare @Passnummer VARCHAR(50)
' Declare @Buchungsbetrag_B VARCHAR(50)
' Declare @Buchungsbetrag_P VARCHAR(50)
' Declare @belegdatumdavor DATETIME
'Declare @belegnrdavor INTEGER
'Declare @Bestandskonto VARCHAR(8)
' Declare @Erlöskonto VARCHAR(8)
' Declare @dec_steuerproz2 FLOAT
'Declare @LKW_B VARCHAR(50)
' Declare @Fahrer_B VARCHAR(50)
' Declare @Passnummer_B VARCHAR(50)
' Declare @AusbezahltAnFirma_B VARCHAR(50)
' Declare @AusbezahltAnFirma VARCHAR(50)
' Declare @Buchungsweg INTEGER
'Declare @i_beleg_refid INTEGER
'Declare @Positionszaehler INTEGER
'Declare @Belegkopfbetrag FLOAT
'Declare @relPeriode INTEGER
'Declare @c_sollhabenkz VARCHAR(1)
' Declare @i_fordkto INTEGER
'Declare @dec_aktuellersaldo FLOAT
'Declare @dec_sollsumme FLOAT
'Declare @dec_habensumme FLOAT
'Declare @eur_aktuellersaldo FLOAT
'Declare @updatekonto INTEGER
'Declare @i_op_refid INTEGER
'Declare @i_personenkonto INTEGER
'Declare @c_op_Typ VARCHAR(1)
' Declare @c_sprache VARCHAR(30)
' Declare @c_zahlziel VARCHAR(24)
' Declare @Skontotage INTEGER
'Declare @Nettotage INTEGER
'Declare @Skontodatum DATETIME
'Declare @Nettodatum DATETIME
'Declare @Skonto FLOAT
'Declare @c_ustidnr VARCHAR(50)
' Declare @opvorgangsbetrag FLOAT
'Declare @i_Sachkonto INTEGER
'Declare @gDatumKurz DATETIME
'Declare @BestandskontoInt INTEGER
'Declare @ErlöskontoInt INTEGER
'Declare @Kontenzähler INTEGER
'Declare @Schleifennr INTEGER
'Declare @aktuellersaldoDE FLOAT
'Declare @aktuellersaldoDB FLOAT
'Declare @aktuellersaldoBK FLOAT
'Declare @aktuellersaldoEK FLOAT
'Declare @Schleifenkonto INTEGER
'Declare @periodensoll FLOAT
'Declare @periodenhaben FLOAT
'Declare @Anmerkung VARCHAR(255)
' Declare @Einzelpreis FLOAT
'Set @belegdatum = @Datum@
'Set @Jahr = (DATEPART(YEAR, @belegdatum) - 2000)
'Set @Monat = (DATEPART(MONTH, @belegdatum) - 1)
'Set @Tag = (DATEPART(DAY, @belegdatum) - 1)
'Set @gDatumKurz = '01.01.2000'
'Set @gDatumKurz = DATEADD(YEAR, @Jahr, @gDatumKurz)
'Set @gDatumKurz = DATEADD(MONTH, @Monat, @gDatumKurz)
'Set @gDatumKurz = DATEADD(DAY, @Tag, @gDatumKurz)
'Set @Anmerkung = ''
'Set @belegnr = @Nr@
'Set @belegnrtext = ISNULL(@Rechnungsnr@, '')
'Set @Barverkaufsrechnung = ISNULL(@Barverkauf@, 0)
'Set @B_Bruttobetrag = ISNULL(@Bruttobetrag@, 0)
'Set @Buchungsbetrag_B = @B_Bruttobetrag
'Set @Kundennr = ISNULL(@Kunde@, 0)
'Set @Ben_Pos_Nr = (Select OWNFIELD_Positionsnr FROM Benutzer)
'Set @Ben_Jahr = (Select OWNFIELD_Jahr FROM Benutzer)
'Set @Buchungsweg = (Select ISNULL(OWNFIELD_Buchungsweg, 2) FROM Benutzer)
'Set @Rechnungsstatus = 1
'Set @Kassanr = (Select MIN(Nr) FROM Barverkauf_Kassen)
'Set @Kassakonto = (Select Bestandskonto FROM Barverkauf_Kassen WHERE Nr = @Kassanr)
'If ISNULL(@Kassakonto, '') = '' SET @Kassakonto = '2700'
'################## ------- RECHUNGSPOS------- ################## -> UNNÖTIG
' Declare PositionenRec CURSOR FOR ()
' Select Case
'Rechnungspositionen.Position,
'Rechnungspositionen.Positionstyp,
'ISNULL(Rechnungspositionen.Bruttobetrag, 0),
'ISNULL(Rechnungspositionen.Einzelpreis, 0)
'FROM Rechnungspositionen INNER JOIN Rechnung
'On (Rechnungspositionen.Datum = Rechnung.Datum
'And Rechnungspositionen.Rechnungsnr = Rechnung.Nr)
'WHERE Rechnungspositionen.Datum = @belegdatum
'And Rechnungspositionen.Rechnungsnr = @belegnr
'And Rechnung.Barverkauf = 1
'OPEN PositionenRec
'FETCH NEXT FROM PositionenRec INTO
'@Position,
'@Zaehler1,
'@P_Bruttobetrag,
'@Einzelpreis
'While @@FETCH_STATUS = 0
'BEGIN /* 03 */
'If ((@Zaehler1 <> 1) Or (@P_Bruttobetrag = 0) Or (@Einzelpreis = 0))
'BEGIN /* diese Position ist zu löschen */
'DELETE FROM Rechnungspositionen
'WHERE Datum = @belegdatum And Rechnungsnr = @belegnr And Position = @Position
'UPDATE Rechnungspositionen Set Position = @Position
'WHERE Datum = @belegdatum And Rechnungsnr = @belegnr And Position = (@Position + 1)
'End /* diese Position ist zu löschen */
'FETCH NEXT FROM PositionenRec INTO
'@Position,
'@Zaehler1,
'@P_Bruttobetrag,
'@Einzelpreis
'End /* 03 */
'CLOSE PositionenRec
'DEALLOCATE PositionenRec
' Set @Position = (Select MIN(Position) FROM Rechnungspositionen
'WHERE Datum = @belegdatum And Rechnungsnr = @belegnr And Positionstyp = 1)
'If @Position Is NULL SET @Position = 0
'If @Position > 0
'BEGIN /* Positionsnummernberechnung nur bei vorhandenen Positionen */
'Set @Ganzer_Pos_Nr_Text = (Select OWNFIELD_Pos_Nr_P FROM Rechnungspositionen
'WHERE Datum = @belegdatum And Rechnungsnr = @belegnr And Position = @Position)
'Set @Bel_Jahr_Text = SUBSTRING(@Ganzer_Pos_Nr_Text, 6, 2)
'Set @Bel_Jahr = ISNULL(CAST(@Bel_Jahr_Text As Integer), 0)
'Set @Bel_Pos_Nr_Text = SUBSTRING(@Ganzer_Pos_Nr_Text, 8, 5)
'Set @Bel_Pos_Nr = ISNULL(CAST(@Bel_Pos_Nr_Text As Integer), 0)
'If (@Ben_Jahr + 1) = @Bel_Jahr
'BEGIN /* Jahressprung */
'Set @Ganzer_Pos_Nr_Text = ('4806/' + @Bel_Jahr_Text + '00001/00')
'Set @Bel_Pos_Nr = 1
'UPDATE Rechnungspositionen Set OWNFIELD_Pos_Nr_P = @Ganzer_Pos_Nr_Text
'WHERE Datum = @belegdatum And Rechnungsnr = @belegnr
'End /* Jahressprung */
'UPDATE Benutzer Set OWNFIELD_Positionsnr = @Bel_Pos_Nr
'UPDATE Benutzer Set OWNFIELD_Jahr = @Bel_Jahr
'End /* Positionsnummernberechnung nur bei vorhandenen Positionen */
'If @Kundennr = 0
'BEGIN /* Allgemeinen Kunden zuordnen */
'Set @Kundennr = (Select MAX(Nr) FROM Kunden
'WHERE Kurzbez Like ('999999'))
'UPDATE Rechnung Set
'Kunde = @Kundennr
'WHERE Datum = @belegdatum And Nr = @belegnr
'End /* Allgemeinen Kunden zuordnen */
'Set @Einzahlungsbetrag = (Select ISNULL(OWNFIELD_Einzahlung_P, 0)
'FROM Rechnungspositionen
'WHERE Datum = @belegdatum And Rechnungsnr = @belegnr And Position = @Position)
'Set @Auszahlungsbetrag = (Select ISNULL(OWNFIELD_Auszahlung_P, 0)
'FROM Rechnungspositionen
'WHERE Datum = @belegdatum And Rechnungsnr = @belegnr And Position = @Position)
'If @Einzahlungsbetrag < 0 SET @Anmerkung = (@Anmerkung + ' Stornobuchung ')
'If @Auszahlungsbetrag < 0 SET @Anmerkung = (@Anmerkung + ' Stornobuchung ')
'UPDATE Rechnung Set
'RabattEingabeAbsolut = 0,
'Anmerkung = @Anmerkung,
'OWNFIELD_Einzahlung_B = @Einzahlungsbetrag,
'OWNFIELD_Auszahlung_B = @Auszahlungsbetrag,
'OWNFIELD_Pos_Nr_B = @Ganzer_Pos_Nr_Text,
'OWNFIELD_RechnungsnrText = @belegnrtext
'WHERE Datum = @belegdatum And Nr = @belegnr
'Set @Kundensuchnr = (Select ISNULL(OWNFIELD_Kundensuchnr, 0) FROM Kunden
'WHERE Nr = @Kundennr)
'If @Kundensuchnr > 0
'BEGIN /* nur löschen wenn eine Kundensuchnr vorhanden ist */
'DELETE FROM Kunden
'WHERE Nr <> @Kundennr And ISNULL(OWNFIELD_Kundensuchnr, 0) = @Kundensuchnr
'End /* nur löschen wenn eine Kundensuchnr vorhanden ist */
'Set @Zaehler1 = (Select COUNT(Position) FROM Rechnungspositionen
'WHERE Datum = @belegdatum And Rechnungsnr = @belegnr And Positionstyp = 1)
'If ((@Barverkaufsrechnung = 1) And (ISNULL(@Zaehler1, 0) > 0))
'BEGIN /* nur Barverkaufsrechnungen mit Positionen in den Fibustapel insertieren */
'Set @Systembenutzer = @Aktueller_Systembenutzer@
'Set @Benutzer = (Select SUBSTRING(Bezeichnung, 1, 30) FROM Systembenutzer
'WHERE Nr = @Systembenutzer)
'Set @dt_creation = Getdate()
'Set @Anno = (DATEPART(YEAR, @dt_creation))
'Set @C_Anno = CAST(@Anno As VARCHAR(4))
'Set @Monat = (DATEPART(MONTH, @dt_creation))
'Set @C_Monat = CAST(@Monat As VARCHAR(4))
'Set @Tag = (DATEPART(DAY, @dt_creation))
'Set @C_Tag = CAST(@Tag As VARCHAR(4))
'Set @Stunde = (DATEPART(HOUR, @dt_creation))
'Set @C_Stunde = CAST(@Stunde As VARCHAR(4))
'Set @Minute = (DATEPART(MINUTE, @dt_creation))
'Set @C_Minute = CAST(@Minute As VARCHAR(4))
'Set @Sekunde = (DATEPART(SECOND, @dt_creation))
'Set @C_Sekunde = CAST(@Sekunde As VARCHAR(4))
'Set @Buchungsbelegkreis = 'KE'
'If @Auszahlungsbetrag <> 0 SET @Buchungsbelegkreis = 'KA'
'Set @Firmenname = ISNULL(@Firmenname@, '')
'Set @Ort = ISNULL(@Ort@, '')
'Set @Buchungstext_orig = (@Buchungsbelegkreis + '_' + @Ganzer_Pos_Nr_Text)
'Set @Buchungstext = SUBSTRING(@Buchungstext_orig, 4, 48)
'Set @Waehrung = @Waehrung@
'Set @Jahr = (DATEPART(YEAR, @belegdatum))
'Set @Periode = (DATEPART(MONTH, @belegdatum))
'################## ------- BUCHUNGSDATEN------- ##################
'Set @Kontonummer = (Select Kontonummer FROM Kunden WHERE Nr = @Kundennr)
'Set @Habenkonto = CAST(@Kontonummer As Integer)
'Set @Sollkonto = 0
'Set @MandantNr = (Select OWNFIELD_REWE_Mandantennr FROM Benutzer)
'If ISNULL(@MandantNr, 0) = 0
'BEGIN /* Mandantennr 7 setzen */
'Set @MandantNr = 7
'UPDATE Benutzer Set OWNFIELD_REWE_Mandantennr = 7
'End /* Mandantennr 7 setzen */
'Set @relPeriode = (Select ISNULL(OWNFIELD_RelPeriode, 2) FROM Benutzer)
'Set @relPeriode = (@Periode - @relPeriode + 1)
'If @relPeriode <= 0 SET @relPeriode = (@relPeriode + 12)
'If @relPeriode > @Periode SET @Jahr = (@Jahr - 1)
'Set @i_personenkonto = @Habenkonto /* die ersten 2 Kontovoraussetzungen schaffen */
'Set @i_fordkto = (Select [FIBU2].dbo.fibu_konto.i_fordkto FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_konto = @i_personenkonto
'And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr)
'If ISNULL(@i_fordkto, 0) = 0 Set @i_fordkto = 2000
'DELETE FROM OWNTABLE_Verbuchungskonten
'INSERT INTO OWNTABLE_Verbuchungskonten (
'OWNFIELD_Nr,
'OWNFIELD_Konto,
'OWNFIELD_Soll,
'OWNFIELD_Haben)
'VALUES (
'1,
'@i_personenkonto,
'0,
'0)
'INSERT INTO OWNTABLE_Verbuchungskonten (
'OWNFIELD_Nr,
'OWNFIELD_Konto,
'OWNFIELD_Soll,
'OWNFIELD_Haben)
'VALUES (
'2,
'@i_fordkto,
'0,
'0)
'Set @Kontenzähler = 2
'Set @ckennsoll = (Select [FIBU2].dbo.fibu_konto.c_kontoart FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_konto = @Sollkonto
'And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr)
'If @ckennsoll Is NULL SET @ckennsoll = 'LE'
'Set @kkennungsoll = (Select [FIBU2].dbo.fibu_konto.i_kennung FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_konto = @Sollkonto
'And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr)
'If @kkennungsoll Is NULL SET @kkennungsoll = 0
'Set @ckennhab = (Select [FIBU2].dbo.fibu_konto.c_kontoart FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_konto = @Habenkonto
'And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr)
'Set @ckennhab = 'LE'
'Set @kkennunghab = (Select [FIBU2].dbo.fibu_konto.i_kennung FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_konto = @Habenkonto
'And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr)
'Set @kkennunghab = 0
'Set @pruef = 0
'Set @ZSzeilenr = 0
'Set @Belegart = 1
'Set @Splitart = 0
'Set @StapelAZK = (Select [FIBU2].dbo.fibu_stapelart.i_stapel_refid
'FROM [FIBU2].dbo.fibu_stapelart
'WHERE [FIBU2].dbo.fibu_stapelart.c_stapelname Like 'Auszahlungskasse 1'
'And [FIBU2].dbo.fibu_stapelart.i_firm_refid = @MandantNr)
'Set @Zaehler1 = (Select COUNT([FIBU2].dbo.fibu_stapel.i_lfdnr) FROM [FIBU2].dbo.fibu_stapel
'WHERE ISNULL([FIBU2].dbo.fibu_stapel.si_pruef, 0) > 0)
'If ISNULL(@Zaehler1, 0) > 0
'BEGIN /* der Stapel Auszahlungskasse 1 wird gerade geprüft oder gebucht */
'Set @StapelAZK = (Select [FIBU2].dbo.fibu_stapelart.i_stapel_refid
'FROM [FIBU2].dbo.fibu_stapelart
'WHERE [FIBU2].dbo.fibu_stapelart.c_stapelname Like 'Auszahlungskasse 2'
'And [FIBU2].dbo.fibu_stapelart.i_firm_refid = @MandantNr)
'End /* der Stapel Auszahlungskasse 1 wird gerade geprüft oder gebucht */
'Set @ZSBuchnr = (Select MAX([FIBU2].dbo.fibu_stapel.i_lfdnr)+1
'FROM [FIBU2].dbo.fibu_stapel
'WHERE [FIBU2].dbo.fibu_stapel.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_stapel.i_stapel_refid = @StapelAZK)
'If ((@ZSBuchnr Is NULL) Or (@ZSBuchnr = 0)) SET @ZSBuchnr = 1
'Set @c_protokoll_id = (CAST(@StapelAZK As VARCHAR(4)) + '-'
'+ CAST(@ZSBuchnr AS VARCHAR(4)) + '-'
'+ @C_Anno + '-'
'+ REPLICATE('0', 2-LEN(@C_Monat)) + @C_Monat + '-'
'+ REPLICATE('0', 2-LEN(@C_Tag)) + @C_Tag + ' '
'+ REPLICATE('0', 2-LEN(@C_Stunde)) + @C_Stunde + ':'
'+ REPLICATE('0', 2-LEN(@C_Minute)) + @C_Minute + ':'
'+ REPLICATE('0', 2-LEN(@C_Sekunde)) + @C_Sekunde)
'Declare lc_ProjekteRec CURSOR FOR ()
' Select Case
'Rechnungspositionen.Position,
'Rechnungspositionen.Nettobetrag,
'Rechnungspositionen.Bruttobetrag,
'ISNULL(Rechnungspositionen.USt, 0),
'ISNULL(Rechnungspositionen.OWNFIELD_LKW_P, ''),
'ISNULL(Rechnungspositionen.OWNFIELD_Fahrer_P, ''),
'ISNULL(Rechnungspositionen.OWNFIELD_Passnummer_P, ''),
'ISNULL(Rechnungspositionen.OWNFIELD_AusbezahltAnFirma_P, ''),
'ISNULL(Artikel.Erloeskonto_Inland, ''),
'ISNULL(Artikel.OWNFIELD_Bestandskonto, ''),
'ISNULL(Rechnung.OWNFIELD_LKW_B, ''),
'ISNULL(Rechnung.OWNFIELD_Fahrer_B, ''),
'ISNULL(Rechnung.OWNFIELD_Passnummer_B, ''),
'ISNULL(Rechnung.OWNFIELD_AusbezahltAnFirma_B, ''),
'Rechnung.Waehrungsnr,
'Rechnung.Umrechnungsfaktor
'FROM Rechnungspositionen INNER JOIN Rechnung
'On (Rechnungspositionen.Datum = Rechnung.Datum
'And Rechnungspositionen.Rechnungsnr = Rechnung.Nr)
'INNER JOIN Artikel On (Rechnungspositionen.Artikelnr = Artikel.Nr)
'WHERE Rechnungspositionen.Datum = @belegdatum
'And Rechnungspositionen.Rechnungsnr = @belegnr
'And Rechnungspositionen.Positionstyp = 1
'And Rechnung.Barverkauf = 1
'OPEN lc_ProjekteRec
'FETCH NEXT FROM lc_ProjekteRec INTO
'@Positionszaehler,
'@P_Nettobetrag,
'@P_Bruttobetrag,
'@dec_steuerproz,
'@LKW,
'@Fahrer,
'@Passnummer,
'@AusbezahltAnFirma,
'@Erlöskonto,
'@Bestandskonto,
'@LKW_B,
'@Fahrer_B,
'@Passnummer_B,
'@AusbezahltAnFirma_B,
'@Waehrungsnr,
'@Umrechnungsfaktor
'While @@FETCH_STATUS = 0
'################## ------- BUCHUNGEN------- ##################
'BEGIN /* 03 */
'Set @BestandskontoInt = CAST(@Bestandskonto As Integer)
'Set @ErlöskontoInt = CAST(@Erlöskonto As Integer)
'Set @Kontenzähler = (@Kontenzähler + 1)
'INSERT INTO OWNTABLE_Verbuchungskonten (
'OWNFIELD_Nr,
'OWNFIELD_Konto,
'OWNFIELD_Soll,
'OWNFIELD_Haben)
'VALUES (
'@Kontenzähler,
'@BestandskontoInt,
'0,
'0)
'Set @Kontenzähler = (@Kontenzähler + 1)
'INSERT INTO OWNTABLE_Verbuchungskonten (
'OWNFIELD_Nr,
'OWNFIELD_Konto,
'OWNFIELD_Soll,
'OWNFIELD_Haben)
'VALUES (
'@Kontenzähler,
'@ErlöskontoInt,
'0,
'0)
'Declare Schleifen1rec CURSOR FOR ()
' Select Case OWNFIELD_Nr, OWNFIELD_Konto
'FROM OWNTABLE_Verbuchungskonten
'OPEN Schleifen1rec
'FETCH NEXT FROM Schleifen1rec INTO
'@Schleifennr,
'@Schleifenkonto
'While @@FETCH_STATUS = 0
'BEGIN /* 03 */
'Set @Zaehler1 = (Select COUNT([FIBU2].dbo.fibu_periodensaldo.i_konto)
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'If ISNULL(@Zaehler1, 0) = 0
'BEGIN /* noch keine EB vorhanden */
'Set @dec_aktuellersaldo = (Select [FIBU2].dbo.fibu_konto.dec_aktuellersaldo
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @Schleifenkonto)
'If @dec_aktuellersaldo Is NULL SET @dec_aktuellersaldo = 0
'INSERT INTO [FIBU2].dbo.fibu_periodensaldo (
'[FIBU2].dbo.fibu_periodensaldo.i_firm_refid,
'[FIBU2].dbo.fibu_periodensaldo.si_jahr,
'[FIBU2].dbo.fibu_periodensaldo.i_konto,
'[FIBU2].dbo.fibu_periodensaldo.i_perioden,
'[FIBU2].dbo.fibu_periodensaldo.dec_eroeff,
'[FIBU2].dbo.fibu_periodensaldo.dec_abschluss,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_1,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_1,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_2,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_2,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_3,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_3,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_4,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_4,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_5,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_5,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_6,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_6,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_7,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_7,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_8,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_8,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_9,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_9,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_10,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_10,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_11,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_11,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_12,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_12,
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_13,
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_13,
'[FIBU2].dbo.fibu_periodensaldo.eur_eroeff,
'[FIBU2].dbo.fibu_periodensaldo.eur_abschluss,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_1,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_1,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_2,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_2,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_3,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_3,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_4,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_4,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_5,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_5,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_6,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_6,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_7,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_7,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_8,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_8,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_9,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_9,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_10,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_10,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_11,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_11,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_12,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_12,
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_13,
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_13,
'[FIBU2].dbo.fibu_periodensaldo.i_buchungskreis)
'VALUES (
'@MandantNr,
'@Jahr,
'@Schleifenkonto,
'0,
'@dec_aktuellersaldo,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'@dec_aktuellersaldo,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'1)
'End /* noch keine EB vorhanden */
'FETCH NEXT FROM Schleifen1rec INTO
'@Schleifennr,
'@Schleifenkonto
'End /* 03 */
'CLOSE Schleifen1rec
'DEALLOCATE Schleifen1rec
'################## ------- END BUCHUNGEN------- ##################
' If ((@LKW <> '') OR (@Fahrer <> '') OR (@Passnummer <> '') OR (@AusbezahltAnFirma <> ''))
'BEGIN /* nur Rechnungsupdate bei solchen Einträgen auf Positionsebene */
'If @LKW_B = '' SET @LKW_B = @LKW
'If @Fahrer_B = '' SET @Fahrer_B = @Fahrer
'If @Passnummer_B = '' SET @Passnummer_B = @Passnummer
'If @AusbezahltAnFirma_B = '' SET @AusbezahltAnFirma_B = @AusbezahltAnFirma
'UPDATE Rechnung Set
'OWNFIELD_LKW_B = @LKW_B,
'OWNFIELD_Fahrer_B = @Fahrer_B,
'OWNFIELD_Passnummer_B = @Passnummer_B,
'OWNFIELD_AusbezahltAnFirma_B = @AusbezahltAnFirma_B
'WHERE Datum = @belegdatum And Nr = @belegnr
'End /* nur Rechnungsupdate bei solchen Einträgen auf Positionsebene */
'Set @Buchungstext_orig =
'(@Buchungstext_orig + '_' + @LKW_B + '_' + @AusbezahltAnFirma_B + '_' + @Fahrer_B + '_'
'+ @Passnummer_B)
'Set @Buchungstext = SUBSTRING(@Buchungstext_orig, 4, 48)
'Set @BuchungstextBemerkung = SUBSTRING(@Buchungstext_orig, 49, 28)
'Set @ZSzeilenr = (@ZSzeilenr + 1) /* Erster Datensatz der ersten Buchungszeile */
'Set @Buchungsbetrag_P = @P_Bruttobetrag
'If @Einzahlungsbetrag <> 0 /* bei Einzahlung und Bestandskonto im Soll */
'Set @Sollkonto2 = CAST(@Bestandskonto As Integer)
'Set @Habenkonto2 = 0 /* gilt für den ersten Datensatz der ersten Buchungszeile pro Artikel */
'Set @dec_steuerproz2 = 0
'Set @Rechnungsstatus = 0
'Set @Belegkopfbetrag = @B_Bruttobetrag
'Set @ckennsoll2 = (Select [FIBU2].dbo.fibu_konto.c_kontoart FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_konto = @Sollkonto2
'And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr)
'If @ckennsoll2 Is NULL SET @ckennsoll2 = 'LE'
'Set @ckennsoll2 = 'KO'
'Set @kkennungsoll2 = (Select [FIBU2].dbo.fibu_konto.i_kennung FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_konto = @Sollkonto2
'And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr)
'If @kkennungsoll2 Is NULL SET @kkennungsoll2 = 0
'Set @kkennungsoll2 = 0
'Set @ckennhab2 = (Select [FIBU2].dbo.fibu_konto.c_kontoart FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_konto = @Habenkonto2
'And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr)
'Set @ckennhab2 = 'LE'
'Set @kkennunghab2 = (Select [FIBU2].dbo.fibu_konto.i_kennung FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_konto = @Habenkonto2
'And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr)
'Set @kkennunghab2 = 0
'If @Auszahlungsbetrag <> 0 /* Umkehrung von Soll und Habenkonto und Betragsvorzeichenwechsel */
'BEGIN /* Auszahlung und Gutschrift */
'Set @Sollkonto2 = CAST(@Erlöskonto As Integer)
'Set @Habenkonto2 = 0
'Set @ckennhab2 = 'LE'
'Set @ckennsoll2 = 'KO'
'Set @kkennunghab2 = 0
'Set @kkennungsoll2 = 0
'Set @Buchungsbetrag_B = @B_Bruttobetrag * (-1)
'Set @Buchungsbetrag_P = @P_Bruttobetrag * (-1)
'Set @dec_steuerproz2 = @dec_steuerproz
'Set @Belegkopfbetrag = @B_Bruttobetrag * (-2)
'End /* Auszahlung und Gutschrift */
'################## ------- STAPELBUCHUNGEN------- ##################
'If @Buchungsweg = 2
'BEGIN /* Buchung in den Stapel */
'INSERT INTO [FIBU2].dbo.fibu_stapel (
'[FIBU2].dbo.fibu_stapel.i_firm_refid,
'[FIBU2].dbo.fibu_stapel.i_stapel_refid,
'[FIBU2].dbo.fibu_stapel.i_lfdnr,
'[FIBU2].dbo.fibu_stapel.si_zeilenr,
'[FIBU2].dbo.fibu_stapel.si_belegart,
'[FIBU2].dbo.fibu_stapel.si_splitart,
'[FIBU2].dbo.fibu_stapel.d_beleg,
'[FIBU2].dbo.fibu_stapel.d_valuta,
'[FIBU2].dbo.fibu_stapel.c_urbelegid,
'[FIBU2].dbo.fibu_stapel.c_op_beleg,
'[FIBU2].dbo.fibu_stapel.c_buchtext,
'[FIBU2].dbo.fibu_stapel.si_jahr,
'[FIBU2].dbo.fibu_stapel.si_periode,
'[FIBU2].dbo.fibu_stapel.i_sollkonto,
'[FIBU2].dbo.fibu_stapel.c_kennungsoll,
'[FIBU2].dbo.fibu_stapel.i_kennungsoll,
'[FIBU2].dbo.fibu_stapel.i_habenkonto,
'[FIBU2].dbo.fibu_stapel.c_kennunghaben,
'[FIBU2].dbo.fibu_stapel.i_kennunghaben,
'[FIBU2].dbo.fibu_stapel.dec_betrag,
'[FIBU2].dbo.fibu_stapel.c_waehrung,
'[FIBU2].dbo.fibu_stapel.dec_eigenbetrag,
'[FIBU2].dbo.fibu_stapel.eur_betrag,
'[FIBU2].dbo.fibu_stapel.i_gegenkonto,
'[FIBU2].dbo.fibu_stapel.i_steuerart_refid,
'[FIBU2].dbo.fibu_stapel.i_steuer_refid,
'[FIBU2].dbo.fibu_stapel.i_eg_gegenkonto,
'[FIBU2].dbo.fibu_stapel.c_sollhabenkz,
'[FIBU2].dbo.fibu_stapel.dec_steuer,
'[FIBU2].dbo.fibu_stapel.dec_eigensteuer,
'[FIBU2].dbo.fibu_stapel.eur_steuerbetrag,
'[FIBU2].dbo.fibu_stapel.dec_steuerproz,
'[FIBU2].dbo.fibu_stapel.i_auftragid,
'[FIBU2].dbo.fibu_stapel.i_koart_refid,
'[FIBU2].dbo.fibu_stapel.si_pruef,
'[FIBU2].dbo.fibu_stapel.c_bemerk,
'[FIBU2].dbo.fibu_stapel.i_buchungskreis,
'[FIBU2].dbo.fibu_stapel.i_bank_flags,
'[FIBU2].dbo.fibu_stapel.i_quelle_modul,
'[FIBU2].dbo.fibu_stapel.c_quelle_maske,
'[FIBU2].dbo.fibu_stapel.si_manipulation,
'[FIBU2].dbo.fibu_stapel.dt_creation,
'[FIBU2].dbo.fibu_stapel.c_protokoll_id)
'VALUES (
'@MandantNr,
'@StapelAZK,
'@ZSBuchnr,
'@ZSzeilenr,
'@Belegart,
'@Splitart,
'@belegdatum,
'@belegdatum,
'@belegnrtext,
'@belegnrtext,
'@Buchungstext,
'@Jahr,
'@Periode,
'@Sollkonto2,
'@ckennsoll2,
'@kkennungsoll2,
'@Habenkonto2,
'@ckennhab2,
'@kkennunghab2,
'@Buchungsbetrag_P,
'@Waehrung,
'0,
'@Buchungsbetrag_P,
'0,
'0,
'0,
'0,
''K',
'0,
'0,
'0,
'@dec_steuerproz2,
'0,
'0,
'@pruef,
'@BuchungstextBemerkung,
'1,
'0,
'21,
''FlexImport',
'0,
'@dt_creation,
'@c_protokoll_id)
'End /* Buchung In den Stapel */
'################## ------- END STAPELBUCHUNGEN------- ##################
'################## ------- BUCHUNGEN------- ##################
'If @Buchungsweg = 3
'BEGIN /* Direktverbuchung */
'Set @i_beleg_refid = (Select [FIBU2].dbo.fibu_nummern.i_nummer_refid + 1
'FROM [FIBU2].dbo.fibu_nummern
'WHERE [FIBU2].dbo.fibu_nummern.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_nummern.c_nummernart Like 'Buchungsnummer')
'If @Einzahlungsbetrag <> 0
'BEGIN /* einfache Buchung */
'UPDATE [FIBU2].dbo.fibu_nummern Set
'[FIBU2].dbo.fibu_nummern.i_nummer_refid = @i_beleg_refid
'WHERE [FIBU2].dbo.fibu_nummern.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_nummern.c_nummernart Like 'Buchungsnummer'
'Set @i_op_refid = @i_beleg_refid
'Set @c_op_Typ = 'g'
'End /* einfache Buchung */
'If @Auszahlungsbetrag <> 0
'BEGIN /* doppelte Buchung mit doppeltem Nummernzählersprung */
'UPDATE [FIBU2].dbo.fibu_nummern Set
'[FIBU2].dbo.fibu_nummern.i_nummer_refid = (@i_beleg_refid + 1)
'WHERE [FIBU2].dbo.fibu_nummern.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_nummern.c_nummernart Like 'Buchungsnummer'
'Set @i_op_refid = (@i_beleg_refid + 1)
'Set @c_op_Typ = 'r'
'End /* doppelte Buchung mit doppeltem Nummernzählersprung */
'If @Positionszaehler = 1
'BEGIN /* Belegkopfinsert nur einmal pro Beleg */
'INSERT INTO [FIBU2].dbo.fibu_belegkopf (
'[FIBU2].dbo.fibu_belegkopf.i_firm_refid,
'[FIBU2].dbo.fibu_belegkopf.si_jahr,
'[FIBU2].dbo.fibu_belegkopf.si_periode,
'[FIBU2].dbo.fibu_belegkopf.i_beleg_refid,
'[FIBU2].dbo.fibu_belegkopf.d_beleg,
'[FIBU2].dbo.fibu_belegkopf.c_urbelegid,
'[FIBU2].dbo.fibu_belegkopf.si_belegart,
'[FIBU2].dbo.fibu_belegkopf.c_buchtext,
'[FIBU2].dbo.fibu_belegkopf.dec_betrag,
'[FIBU2].dbo.fibu_belegkopf.c_waehrung,
'[FIBU2].dbo.fibu_belegkopf.dec_fremdbetrag,
'[FIBU2].dbo.fibu_belegkopf.eur_betrag,
'[FIBU2].dbo.fibu_belegkopf.i_auftragid,
'[FIBU2].dbo.fibu_belegkopf.d_gebucht,
'[FIBU2].dbo.fibu_belegkopf.c_benutzer,
'[FIBU2].dbo.fibu_belegkopf.i_buchungskreis,
'[FIBU2].dbo.fibu_belegkopf.i_quelle_modul,
'[FIBU2].dbo.fibu_belegkopf.c_quelle_maske,
'[FIBU2].dbo.fibu_belegkopf.si_manipulation,
'[FIBU2].dbo.fibu_belegkopf.i_stapel_refid,
'[FIBU2].dbo.fibu_belegkopf.c_protokoll_id)
'VALUES (
'@MandantNr,
'@Jahr,
'@Periode,
'@i_beleg_refid,
'@gDatumKurz,
'@belegnrtext,
'@Belegart,
'@Buchungstext,
'@Belegkopfbetrag,
'@Waehrung,
'@Belegkopfbetrag,
'@Belegkopfbetrag,
'0,
'@dt_creation,
'@Benutzer,
'1,
'21,
''Fleximport',
'0,
'2,
'@c_protokoll_id)
'End /* Belegkopfinsert nur einmal pro Beleg */
'Set @ckennsoll2 = 'KO' /* erste Buchungszeile */
'Set @c_sollhabenkz = 'S'
'If @Einzahlungsbetrag <> 0
'BEGIN /* Einzahlung */
'Set @Sollkonto2 = CAST(@Bestandskonto As Integer)
'Set @Habenkonto2 = CAST(@Kontonummer As Integer)
'Set @dec_sollsumme = (Select OWNFIELD_Soll FROM OWNTABLE_Verbuchungskonten
'WHERE OWNFIELD_Konto = @Sollkonto2)
'UPDATE OWNTABLE_Verbuchungskonten Set
'OWNFIELD_Soll = (@dec_sollsumme + @P_Bruttobetrag)
'WHERE OWNFIELD_Konto = @Sollkonto2
'End /* Einzahlung */
'Else BEGIN /* Auszahlung */
'Set @Sollkonto2 = CAST(@Erlöskonto As Integer)
'Set @Habenkonto2 = 0
'Set @dec_sollsumme = (Select OWNFIELD_Soll FROM OWNTABLE_Verbuchungskonten
'WHERE OWNFIELD_Konto = @Sollkonto2)
'UPDATE OWNTABLE_Verbuchungskonten Set
'OWNFIELD_Soll = (@dec_sollsumme + @P_Bruttobetrag * (-1))
'WHERE OWNFIELD_Konto = @Sollkonto2
'End /* Auszahlung */
'INSERT INTO [FIBU2].dbo.fibu_belegzeile (
'[FIBU2].dbo.fibu_belegzeile.i_firm_refid,
'[FIBU2].dbo.fibu_belegzeile.si_jahr,
'[FIBU2].dbo.fibu_belegzeile.si_periode,
'[FIBU2].dbo.fibu_belegzeile.si_rel_periode,
'[FIBU2].dbo.fibu_belegzeile.i_beleg_refid,
'[FIBU2].dbo.fibu_belegzeile.i_zeilen_refid,
'[FIBU2].dbo.fibu_belegzeile.c_kennung,
'[FIBU2].dbo.fibu_belegzeile.i_konto,
'[FIBU2].dbo.fibu_belegzeile.c_sollhabenkz,
'[FIBU2].dbo.fibu_belegzeile.i_steuer_refid,
'[FIBU2].dbo.fibu_belegzeile.i_gegenkonto,
'[FIBU2].dbo.fibu_belegzeile.dec_betrag,
'[FIBU2].dbo.fibu_belegzeile.c_waehrung,
'[FIBU2].dbo.fibu_belegzeile.dec_fremdbetrag,
'[FIBU2].dbo.fibu_belegzeile.eur_betrag,
'[FIBU2].dbo.fibu_belegzeile.d_beleg,
'[FIBU2].dbo.fibu_belegzeile.d_gebucht,
'[FIBU2].dbo.fibu_belegzeile.c_urbelegid,
'[FIBU2].dbo.fibu_belegzeile.si_belegart,
'[FIBU2].dbo.fibu_belegzeile.c_buchtext,
'[FIBU2].dbo.fibu_belegzeile.i_buchungskreis)
'VALUES (
'@MandantNr,
'@Jahr,
'@Periode,
'@relPeriode,
'@i_beleg_refid,
'@ZSzeilenr,
'@ckennsoll2,
'@Sollkonto2,
'@c_sollhabenkz,
'0,
'@Habenkonto2,
'@Buchungsbetrag_P,
'@Waehrung,
'@Buchungsbetrag_P,
'@Buchungsbetrag_P,
'@gDatumKurz,
'@gDatumKurz,
'@belegnrtext,
'@Belegart,
'@Buchungstext,
'1)
'End /* Direktverbuchung */
'################## ------- END BUCHUNGEN------- ##################
'################## ------- STAPELBUCHUNGEN------- ##################
'If @Auszahlungsbetrag <> 0
'BEGIN /* bei Auszahlung die zweite Datenzeile zur ersten Bestandskontobuchung */
'Set @ZSzeilenr = (@ZSzeilenr + 1) /* für die zweite Buchungszeile */
'If @Buchungsweg = 2
'BEGIN /* Stapelverbuchung */
'Set @Sollkonto2 = 0
'Set @Habenkonto2 = CAST(@Bestandskonto As Integer)
'Set @ckennhab2 = 'KO'
'Set @ckennsoll2 = 'LE'
'Set @kkennunghab2 = 0
'Set @kkennungsoll2 = 0
'Set @dec_steuerproz2 = 0
'INSERT INTO [FIBU2].dbo.fibu_stapel (
'[FIBU2].dbo.fibu_stapel.i_firm_refid,
'[FIBU2].dbo.fibu_stapel.i_stapel_refid,
'[FIBU2].dbo.fibu_stapel.i_lfdnr,
'[FIBU2].dbo.fibu_stapel.si_zeilenr,
'[FIBU2].dbo.fibu_stapel.si_belegart,
'[FIBU2].dbo.fibu_stapel.si_splitart,
'[FIBU2].dbo.fibu_stapel.d_beleg,
'[FIBU2].dbo.fibu_stapel.d_valuta,
'[FIBU2].dbo.fibu_stapel.c_urbelegid,
'[FIBU2].dbo.fibu_stapel.c_op_beleg,
'[FIBU2].dbo.fibu_stapel.c_buchtext,
'[FIBU2].dbo.fibu_stapel.si_jahr,
'[FIBU2].dbo.fibu_stapel.si_periode,
'[FIBU2].dbo.fibu_stapel.i_sollkonto,
'[FIBU2].dbo.fibu_stapel.c_kennungsoll,
'[FIBU2].dbo.fibu_stapel.i_kennungsoll,
'[FIBU2].dbo.fibu_stapel.i_habenkonto,
'[FIBU2].dbo.fibu_stapel.c_kennunghaben,
'[FIBU2].dbo.fibu_stapel.i_kennunghaben,
'[FIBU2].dbo.fibu_stapel.dec_betrag,
'[FIBU2].dbo.fibu_stapel.c_waehrung,
'[FIBU2].dbo.fibu_stapel.dec_eigenbetrag,
'[FIBU2].dbo.fibu_stapel.eur_betrag,
'[FIBU2].dbo.fibu_stapel.i_gegenkonto,
'[FIBU2].dbo.fibu_stapel.i_steuerart_refid,
'[FIBU2].dbo.fibu_stapel.i_steuer_refid,
'[FIBU2].dbo.fibu_stapel.i_eg_gegenkonto,
'[FIBU2].dbo.fibu_stapel.c_sollhabenkz,
'[FIBU2].dbo.fibu_stapel.dec_steuer,
'[FIBU2].dbo.fibu_stapel.dec_eigensteuer,
'[FIBU2].dbo.fibu_stapel.eur_steuerbetrag,
'[FIBU2].dbo.fibu_stapel.dec_steuerproz,
'[FIBU2].dbo.fibu_stapel.i_auftragid,
'[FIBU2].dbo.fibu_stapel.i_koart_refid,
'[FIBU2].dbo.fibu_stapel.si_pruef,
'[FIBU2].dbo.fibu_stapel.c_bemerk,
'[FIBU2].dbo.fibu_stapel.i_buchungskreis,
'[FIBU2].dbo.fibu_stapel.i_bank_flags,
'[FIBU2].dbo.fibu_stapel.i_quelle_modul,
'[FIBU2].dbo.fibu_stapel.c_quelle_maske,
'[FIBU2].dbo.fibu_stapel.si_manipulation,
'[FIBU2].dbo.fibu_stapel.dt_creation,
'[FIBU2].dbo.fibu_stapel.c_protokoll_id)
'VALUES (
'@MandantNr,
'@StapelAZK,
'@ZSBuchnr,
'@ZSzeilenr,
'@Belegart,
'@Splitart,
'@belegdatum,
'@belegdatum,
'@belegnrtext,
'@belegnrtext,
'@Buchungstext,
'@Jahr,
'@Periode,
'@Sollkonto2,
'@ckennsoll2,
'@kkennungsoll2,
'@Habenkonto2,
'@ckennhab2,
'@kkennunghab2,
'@Buchungsbetrag_P,
'@Waehrung,
'0,
'@Buchungsbetrag_P,
'0,
'0,
'0,
'0,
''K',
'0,
'0,
'0,
'@dec_steuerproz2,
'0,
'0,
'@pruef,
'@BuchungstextBemerkung,
'1,
'0,
'21,
''FlexImport',
'0,
'@dt_creation,
'@c_protokoll_id)
'End /* Stapelverbuchung */
'################## -------END STAPELBUCHUNGEN------- ##################
'If @Buchungsweg = 3
'BEGIN /* Direktverbuchung der zweiten Datenzeile */
'Set @Sollkonto2 = CAST(@Bestandskonto As Integer)
'Set @Habenkonto2 = 0
'Set @ckennsoll2 = 'KO'
'Set @c_sollhabenkz = 'H'
'Set @dec_habensumme = (Select OWNFIELD_Haben FROM OWNTABLE_Verbuchungskonten
'WHERE OWNFIELD_Konto = @Sollkonto2)
'UPDATE OWNTABLE_Verbuchungskonten Set
'OWNFIELD_Haben = (@dec_habensumme + @P_Bruttobetrag * (-1))
'WHERE OWNFIELD_Konto = @Sollkonto2
'INSERT INTO [FIBU2].dbo.fibu_belegzeile (
'[FIBU2].dbo.fibu_belegzeile.i_firm_refid,
'[FIBU2].dbo.fibu_belegzeile.si_jahr,
'[FIBU2].dbo.fibu_belegzeile.si_periode,
'[FIBU2].dbo.fibu_belegzeile.si_rel_periode,
'[FIBU2].dbo.fibu_belegzeile.i_beleg_refid,
'[FIBU2].dbo.fibu_belegzeile.i_zeilen_refid,
'[FIBU2].dbo.fibu_belegzeile.c_kennung,
'[FIBU2].dbo.fibu_belegzeile.i_konto,
'[FIBU2].dbo.fibu_belegzeile.c_sollhabenkz,
'[FIBU2].dbo.fibu_belegzeile.i_steuer_refid,
'[FIBU2].dbo.fibu_belegzeile.i_gegenkonto,
'[FIBU2].dbo.fibu_belegzeile.dec_betrag,
'[FIBU2].dbo.fibu_belegzeile.c_waehrung,
'[FIBU2].dbo.fibu_belegzeile.dec_fremdbetrag,
'[FIBU2].dbo.fibu_belegzeile.eur_betrag,
'[FIBU2].dbo.fibu_belegzeile.d_beleg,
'[FIBU2].dbo.fibu_belegzeile.d_gebucht,
'[FIBU2].dbo.fibu_belegzeile.c_urbelegid,
'[FIBU2].dbo.fibu_belegzeile.si_belegart,
'[FIBU2].dbo.fibu_belegzeile.c_buchtext,
'[FIBU2].dbo.fibu_belegzeile.i_buchungskreis)
'VALUES (
'@MandantNr,
'@Jahr,
'@Periode,
'@relPeriode,
'@i_beleg_refid,
'@ZSzeilenr,
'@ckennsoll2,
'@Sollkonto2,
'@c_sollhabenkz,
'0,
'@Habenkonto2,
'@Buchungsbetrag_P,
'@Waehrung,
'@Buchungsbetrag_P,
'@Buchungsbetrag_P,
'@gDatumKurz,
'@gDatumKurz,
'@belegnrtext,
'@Belegart,
'@Buchungstext,
'1)
'End /* Direktverbuchung der zweiten Datenzeile */
'End /* bei Auszahlung die zweite Datenzeile zur Bestandskontobuchung */
'FETCH NEXT FROM lc_ProjekteRec INTO
'@Positionszaehler,
'@P_Nettobetrag,
'@P_Bruttobetrag,
'@dec_steuerproz,
'@LKW,
'@Fahrer,
'@Passnummer,
'@AusbezahltAnFirma,
'@Erlöskonto,
'@Bestandskonto,
'@LKW_B,
'@Fahrer_B,
'@Passnummer_B,
'@AusbezahltAnFirma_B,
'@Waehrungsnr,
'@Umrechnungsfaktor
'End /* 03 */
'CLOSE lc_ProjekteRec
'DEALLOCATE lc_ProjekteRec
' Set @ZSzeilenr = (@ZSzeilenr + 1)
'If @Auszahlungsbetrag <> 0
'BEGIN /* Auszahlung und erster Datensatz der zweiten Buchungszeile */
'Set @Sollkonto = CAST(@Kontonummer As Integer)
'Set @Habenkonto = 0
'Set @ckennhab = 'LE'
'Set @ckennsoll = 'DE'
'Set @kkennunghab = 0
'Set @kkennungsoll = 0
'Set @dec_steuerproz2 = NULL
'End /* Auszahlung und erster Datensatz der zweiten Buchungszeile */
'Else BEGIN /* zweiter Datensatz der ersten Buchungszeile */
'Set @Sollkonto = 0
'Set @Habenkonto = CAST(@Kontonummer As Integer)
'Set @ckennhab = 'DE'
'Set @ckennsoll = 'LE'
'Set @kkennunghab = 0
'Set @kkennungsoll = 0
'Set @dec_steuerproz2 = NULL
'End /* zweiter Datensatz der ersten Buchungszeile */
'If @Buchungsweg = 2
'BEGIN /* Stapelverbuchung */
'INSERT INTO [FIBU2].dbo.fibu_stapel (
'[FIBU2].dbo.fibu_stapel.i_firm_refid,
'[FIBU2].dbo.fibu_stapel.i_stapel_refid,
'[FIBU2].dbo.fibu_stapel.i_lfdnr,
'[FIBU2].dbo.fibu_stapel.si_zeilenr,
'[FIBU2].dbo.fibu_stapel.si_belegart,
'[FIBU2].dbo.fibu_stapel.si_splitart,
'[FIBU2].dbo.fibu_stapel.d_beleg,
'[FIBU2].dbo.fibu_stapel.d_valuta,
'[FIBU2].dbo.fibu_stapel.c_urbelegid,
'[FIBU2].dbo.fibu_stapel.c_op_beleg,
'[FIBU2].dbo.fibu_stapel.c_buchtext,
'[FIBU2].dbo.fibu_stapel.si_jahr,
'[FIBU2].dbo.fibu_stapel.si_periode,
'[FIBU2].dbo.fibu_stapel.i_sollkonto,
'[FIBU2].dbo.fibu_stapel.c_kennungsoll,
'[FIBU2].dbo.fibu_stapel.i_kennungsoll,
'[FIBU2].dbo.fibu_stapel.i_habenkonto,
'[FIBU2].dbo.fibu_stapel.c_kennunghaben,
'[FIBU2].dbo.fibu_stapel.i_kennunghaben,
'[FIBU2].dbo.fibu_stapel.dec_betrag,
'[FIBU2].dbo.fibu_stapel.c_waehrung,
'[FIBU2].dbo.fibu_stapel.dec_eigenbetrag,
'[FIBU2].dbo.fibu_stapel.eur_betrag,
'[FIBU2].dbo.fibu_stapel.i_gegenkonto,
'[FIBU2].dbo.fibu_stapel.i_steuerart_refid,
'[FIBU2].dbo.fibu_stapel.i_steuer_refid,
'[FIBU2].dbo.fibu_stapel.i_eg_gegenkonto,
'[FIBU2].dbo.fibu_stapel.c_sollhabenkz,
'[FIBU2].dbo.fibu_stapel.dec_steuer,
'[FIBU2].dbo.fibu_stapel.dec_eigensteuer,
'[FIBU2].dbo.fibu_stapel.eur_steuerbetrag,
'[FIBU2].dbo.fibu_stapel.dec_steuerproz,
'[FIBU2].dbo.fibu_stapel.i_auftragid,
'[FIBU2].dbo.fibu_stapel.i_koart_refid,
'[FIBU2].dbo.fibu_stapel.si_pruef,
'[FIBU2].dbo.fibu_stapel.c_bemerk,
'[FIBU2].dbo.fibu_stapel.i_buchungskreis,
'[FIBU2].dbo.fibu_stapel.i_bank_flags,
'[FIBU2].dbo.fibu_stapel.i_quelle_modul,
'[FIBU2].dbo.fibu_stapel.c_quelle_maske,
'[FIBU2].dbo.fibu_stapel.si_manipulation,
'[FIBU2].dbo.fibu_stapel.dt_creation,
'[FIBU2].dbo.fibu_stapel.c_protokoll_id)
'VALUES (
'@MandantNr,
'@StapelAZK,
'@ZSBuchnr,
'@ZSzeilenr,
'@Belegart,
'@Splitart,
'@belegdatum,
'@belegdatum,
'@belegnrtext,
'@belegnrtext,
'@Buchungstext,
'@Jahr,
'@Periode,
'@Sollkonto,
'@ckennsoll,
'@kkennungsoll,
'@Habenkonto,
'@ckennhab,
'@kkennunghab,
'@Buchungsbetrag_B,
'@Waehrung,
'0,
'@Buchungsbetrag_B,
'0,
'0,
'0,
'0,
''K',
'0,
'0,
'0,
'@dec_steuerproz2,
'0,
'0,
'@pruef,
'@BuchungstextBemerkung,
'1,
'0,
'21,
''FlexImport',
'0,
'@dt_creation,
'@c_protokoll_id)
'End /* Stapelverbuchung */
'If @Buchungsweg = 3
'BEGIN /* Direktverbuchung der Kundenbuchung */
'If @Einzahlungsbetrag <> 0
'BEGIN /* zweite Buchungszeile */
'Set @Sollkonto2 = CAST(@Kontonummer As Integer)
'Set @Habenkonto2 = CAST(@Bestandskonto As Integer)
'Set @ckennsoll2 = 'DE'
'Set @c_sollhabenkz = 'H'
'Set @dec_habensumme = (Select OWNFIELD_Haben FROM OWNTABLE_Verbuchungskonten
'WHERE OWNFIELD_Konto = @Sollkonto2)
'UPDATE OWNTABLE_Verbuchungskonten Set
'OWNFIELD_Haben = (@dec_habensumme + @B_Bruttobetrag)
'WHERE OWNFIELD_Konto = @Sollkonto2
'End /* zweite Buchungszeile */
'If @Auszahlungsbetrag <> 0
'BEGIN /* dritte Buchungszeile */
'Set @Sollkonto2 = CAST(@Kontonummer As Integer)
'Set @Habenkonto2 = 0
'Set @ckennsoll2 = 'DE'
'Set @c_sollhabenkz = 'S'
'Set @dec_sollsumme = (Select OWNFIELD_Soll FROM OWNTABLE_Verbuchungskonten
'WHERE OWNFIELD_Konto = @Sollkonto2)
'UPDATE OWNTABLE_Verbuchungskonten Set
'OWNFIELD_Soll = (@dec_sollsumme + @B_Bruttobetrag * (-1))
'WHERE OWNFIELD_Konto = @Sollkonto2
'End /* dritte Buchungszeile */
'INSERT INTO [FIBU2].dbo.fibu_belegzeile (
'[FIBU2].dbo.fibu_belegzeile.i_firm_refid,
'[FIBU2].dbo.fibu_belegzeile.si_jahr,
'[FIBU2].dbo.fibu_belegzeile.si_periode,
'[FIBU2].dbo.fibu_belegzeile.si_rel_periode,
'[FIBU2].dbo.fibu_belegzeile.i_beleg_refid,
'[FIBU2].dbo.fibu_belegzeile.i_zeilen_refid,
'[FIBU2].dbo.fibu_belegzeile.c_kennung,
'[FIBU2].dbo.fibu_belegzeile.i_konto,
'[FIBU2].dbo.fibu_belegzeile.c_sollhabenkz,
'[FIBU2].dbo.fibu_belegzeile.i_steuer_refid,
'[FIBU2].dbo.fibu_belegzeile.i_gegenkonto,
'[FIBU2].dbo.fibu_belegzeile.dec_betrag,
'[FIBU2].dbo.fibu_belegzeile.c_waehrung,
'[FIBU2].dbo.fibu_belegzeile.dec_fremdbetrag,
'[FIBU2].dbo.fibu_belegzeile.eur_betrag,
'[FIBU2].dbo.fibu_belegzeile.d_beleg,
'[FIBU2].dbo.fibu_belegzeile.d_gebucht,
'[FIBU2].dbo.fibu_belegzeile.c_urbelegid,
'[FIBU2].dbo.fibu_belegzeile.si_belegart,
'[FIBU2].dbo.fibu_belegzeile.c_buchtext,
'[FIBU2].dbo.fibu_belegzeile.i_buchungskreis)
'VALUES (
'@MandantNr,
'@Jahr,
'@Periode,
'@relPeriode,
'@i_beleg_refid,
'@ZSzeilenr,
'@ckennsoll2,
'@Sollkonto2,
'@c_sollhabenkz,
'0,
'@Habenkonto2,
'@Buchungsbetrag_B,
'@Waehrung,
'@Buchungsbetrag_B,
'@Buchungsbetrag_B,
'@gDatumKurz,
'@gDatumKurz,
'@belegnrtext,
'@Belegart,
'@Buchungstext,
'1)
'End /* Direktverbuchung der Kundenbuchung */
'Set @ZSzeilenr = (@ZSzeilenr + 1)
'If ((@Auszahlungsbetrag <> 0) And (@Buchungsweg = 2))
'BEGIN /* Auszahlung und zweiter Datensatz der zweiten Stapel Buchungszeile */
'Set @Sollkonto = 0
'Set @Habenkonto = CAST(@Erlöskonto As Integer)
'Set @ckennhab = 'KO'
'Set @ckennsoll = 'LE'
'Set @kkennunghab = 0
'Set @kkennungsoll = 0
'Set @dec_steuerproz2 = @dec_steuerproz
'INSERT INTO [FIBU2].dbo.fibu_stapel (
'[FIBU2].dbo.fibu_stapel.i_firm_refid,
'[FIBU2].dbo.fibu_stapel.i_stapel_refid,
'[FIBU2].dbo.fibu_stapel.i_lfdnr,
'[FIBU2].dbo.fibu_stapel.si_zeilenr,
'[FIBU2].dbo.fibu_stapel.si_belegart,
'[FIBU2].dbo.fibu_stapel.si_splitart,
'[FIBU2].dbo.fibu_stapel.d_beleg,
'[FIBU2].dbo.fibu_stapel.d_valuta,
'[FIBU2].dbo.fibu_stapel.c_urbelegid,
'[FIBU2].dbo.fibu_stapel.c_op_beleg,
'[FIBU2].dbo.fibu_stapel.c_buchtext,
'[FIBU2].dbo.fibu_stapel.si_jahr,
'[FIBU2].dbo.fibu_stapel.si_periode,
'[FIBU2].dbo.fibu_stapel.i_sollkonto,
'[FIBU2].dbo.fibu_stapel.c_kennungsoll,
'[FIBU2].dbo.fibu_stapel.i_kennungsoll,
'[FIBU2].dbo.fibu_stapel.i_habenkonto,
'[FIBU2].dbo.fibu_stapel.c_kennunghaben,
'[FIBU2].dbo.fibu_stapel.i_kennunghaben,
'[FIBU2].dbo.fibu_stapel.dec_betrag,
'[FIBU2].dbo.fibu_stapel.c_waehrung,
'[FIBU2].dbo.fibu_stapel.dec_eigenbetrag,
'[FIBU2].dbo.fibu_stapel.eur_betrag,
'[FIBU2].dbo.fibu_stapel.i_gegenkonto,
'[FIBU2].dbo.fibu_stapel.i_steuerart_refid,
'[FIBU2].dbo.fibu_stapel.i_steuer_refid,
'[FIBU2].dbo.fibu_stapel.i_eg_gegenkonto,
'[FIBU2].dbo.fibu_stapel.c_sollhabenkz,
'[FIBU2].dbo.fibu_stapel.dec_steuer,
'[FIBU2].dbo.fibu_stapel.dec_eigensteuer,
'[FIBU2].dbo.fibu_stapel.eur_steuerbetrag,
'[FIBU2].dbo.fibu_stapel.dec_steuerproz,
'[FIBU2].dbo.fibu_stapel.i_auftragid,
'[FIBU2].dbo.fibu_stapel.i_koart_refid,
'[FIBU2].dbo.fibu_stapel.si_pruef,
'[FIBU2].dbo.fibu_stapel.c_bemerk,
'[FIBU2].dbo.fibu_stapel.i_buchungskreis,
'[FIBU2].dbo.fibu_stapel.i_bank_flags,
'[FIBU2].dbo.fibu_stapel.i_quelle_modul,
'[FIBU2].dbo.fibu_stapel.c_quelle_maske,
'[FIBU2].dbo.fibu_stapel.si_manipulation,
'[FIBU2].dbo.fibu_stapel.dt_creation,
'[FIBU2].dbo.fibu_stapel.c_protokoll_id)
'VALUES (
'@MandantNr,
'@StapelAZK,
'@ZSBuchnr,
'@ZSzeilenr,
'@Belegart,
'@Splitart,
'@belegdatum,
'@belegdatum,
'@belegnrtext,
'@belegnrtext,
'@Buchungstext,
'@Jahr,
'@Periode,
'@Sollkonto,
'@ckennsoll,
'@kkennungsoll,
'@Habenkonto,
'@ckennhab,
'@kkennunghab,
'@Buchungsbetrag_B,
'@Waehrung,
'0,
'@Buchungsbetrag_B,
'0,
'0,
'0,
'0,
''K',
'0,
'0,
'0,
'@dec_steuerproz2,
'0,
'0,
'@pruef,
'@BuchungstextBemerkung,
'1,
'0,
'21,
''FlexImport',
'0,
'@dt_creation,
'@c_protokoll_id)
'End /* Auszahlung und zweiter Datensatz der zweiten Stapel Buchungszeile */
'If @Buchungsweg = 3
'BEGIN /* Direktverbuchung der Sammelkundenbuchung */
'Set @c_sprache = (Select [FIBU2].dbo.fibu_konto.c_sprache FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_konto = @Sollkonto2
'And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr)
'Set @c_ustidnr = (Select [FIBU2].dbo.fibu_konto.c_ustidnr FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_konto = @Sollkonto2
'And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr)
'Set @c_zahlziel = (Select [FIBU2].dbo.fibu_konto.c_zahlziel FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_konto = @Sollkonto2
'And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr)
'Set @Skontotage = (Select [FIBU2].dbo.fibu_zahlziel.si_tage FROM [FIBU2].dbo.fibu_zahlziel
'WHERE [FIBU2].dbo.fibu_zahlziel.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_zahlziel.c_zahlziel Like @c_zahlziel)
'If @Skontotage Is NULL SET @Skontotage = 0
'Set @Skonto = (Select [FIBU2].dbo.fibu_zahlziel.dec_skonto FROM [FIBU2].dbo.fibu_zahlziel
'WHERE [FIBU2].dbo.fibu_zahlziel.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_zahlziel.c_zahlziel Like @c_zahlziel)
'If @Skonto Is NULL SET @Skonto = 0
'Set @Nettotage = (Select [FIBU2].dbo.fibu_zahlziel.si_ntage FROM [FIBU2].dbo.fibu_zahlziel
'WHERE [FIBU2].dbo.fibu_zahlziel.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_zahlziel.c_zahlziel Like @c_zahlziel)
'If @Nettotage Is NULL SET @Nettotage = 0
'Set @Skontodatum = DATEADD(DAY, @Skontotage, @gDatumKurz)
'Set @Nettodatum = DATEADD(DAY, @Nettotage, @gDatumKurz)
'If @Einzahlungsbetrag <> 0
'BEGIN /* dritte Buchungszeile */
'Set @Sollkonto2 = @i_fordkto
'Set @Habenkonto2 = CAST(@Bestandskonto As Integer)
'Set @ckennsoll2 = 'DB'
'Set @c_sollhabenkz = 'H'
'Set @dec_habensumme = (Select OWNFIELD_Haben FROM OWNTABLE_Verbuchungskonten
'WHERE OWNFIELD_Konto = @Sollkonto2)
'UPDATE OWNTABLE_Verbuchungskonten Set
'OWNFIELD_Haben = (@dec_habensumme + @B_Bruttobetrag)
'WHERE OWNFIELD_Konto = @Sollkonto2
'End /* dritte Buchungszeile */
'If @Auszahlungsbetrag <> 0
'BEGIN /* vierte Buchungszeile */
'Set @Sollkonto2 = @i_fordkto
'Set @Habenkonto2 = 0
'Set @ckennsoll2 = 'DB'
'Set @c_sollhabenkz = 'S'
'Set @dec_sollsumme = (Select OWNFIELD_Soll FROM OWNTABLE_Verbuchungskonten
'WHERE OWNFIELD_Konto = @Sollkonto2)
'UPDATE OWNTABLE_Verbuchungskonten Set
'OWNFIELD_Soll = (@dec_sollsumme + @B_Bruttobetrag * (-1))
'WHERE OWNFIELD_Konto = @Sollkonto2
'End /* vierte Buchungszeile */
'INSERT INTO [FIBU2].dbo.fibu_belegzeile (
'[FIBU2].dbo.fibu_belegzeile.i_firm_refid,
'[FIBU2].dbo.fibu_belegzeile.si_jahr,
'[FIBU2].dbo.fibu_belegzeile.si_periode,
'[FIBU2].dbo.fibu_belegzeile.si_rel_periode,
'[FIBU2].dbo.fibu_belegzeile.i_beleg_refid,
'[FIBU2].dbo.fibu_belegzeile.i_zeilen_refid,
'[FIBU2].dbo.fibu_belegzeile.c_kennung,
'[FIBU2].dbo.fibu_belegzeile.i_konto,
'[FIBU2].dbo.fibu_belegzeile.c_sollhabenkz,
'[FIBU2].dbo.fibu_belegzeile.i_steuer_refid,
'[FIBU2].dbo.fibu_belegzeile.i_gegenkonto,
'[FIBU2].dbo.fibu_belegzeile.dec_betrag,
'[FIBU2].dbo.fibu_belegzeile.c_waehrung,
'[FIBU2].dbo.fibu_belegzeile.dec_fremdbetrag,
'[FIBU2].dbo.fibu_belegzeile.eur_betrag,
'[FIBU2].dbo.fibu_belegzeile.d_beleg,
'[FIBU2].dbo.fibu_belegzeile.d_gebucht,
'[FIBU2].dbo.fibu_belegzeile.c_urbelegid,
'[FIBU2].dbo.fibu_belegzeile.si_belegart,
'[FIBU2].dbo.fibu_belegzeile.c_buchtext,
'[FIBU2].dbo.fibu_belegzeile.i_buchungskreis)
'VALUES (
'@MandantNr,
'@Jahr,
'@Periode,
'@relPeriode,
'@i_beleg_refid,
'@ZSzeilenr,
'@ckennsoll2,
'@Sollkonto2,
'@c_sollhabenkz,
'0,
'@Habenkonto2,
'@Buchungsbetrag_B,
'@Waehrung,
'@Buchungsbetrag_B,
'@Buchungsbetrag_B,
'@gDatumKurz,
'@gDatumKurz,
'@belegnrtext,
'@Belegart,
'@Buchungstext,
'1)
'End /* Direktverbuchung der Sammelkundenbuchung */
'Set @ZSzeilenr = (@ZSzeilenr + 1)
'If ((@Buchungsweg = 3) And (@Auszahlungsbetrag <> 0))
'BEGIN /* fünfte Buchungszeile bei Auszahlung und Direktverbuchung */
'Set @Sollkonto2 = CAST(@Erlöskonto As Integer)
'Set @Habenkonto2 = 0
'Set @ckennsoll2 = 'KO'
'Set @c_sollhabenkz = 'H'
'Set @dec_habensumme = (Select OWNFIELD_Haben FROM OWNTABLE_Verbuchungskonten
'WHERE OWNFIELD_Konto = @Sollkonto2)
'UPDATE OWNTABLE_Verbuchungskonten Set
'OWNFIELD_Haben = (@dec_habensumme + @B_Bruttobetrag * (-1))
'WHERE OWNFIELD_Konto = @Sollkonto2
'INSERT INTO [FIBU2].dbo.fibu_belegzeile (
'[FIBU2].dbo.fibu_belegzeile.i_firm_refid,
'[FIBU2].dbo.fibu_belegzeile.si_jahr,
'[FIBU2].dbo.fibu_belegzeile.si_periode,
'[FIBU2].dbo.fibu_belegzeile.si_rel_periode,
'[FIBU2].dbo.fibu_belegzeile.i_beleg_refid,
'[FIBU2].dbo.fibu_belegzeile.i_zeilen_refid,
'[FIBU2].dbo.fibu_belegzeile.c_kennung,
'[FIBU2].dbo.fibu_belegzeile.i_konto,
'[FIBU2].dbo.fibu_belegzeile.c_sollhabenkz,
'[FIBU2].dbo.fibu_belegzeile.i_steuer_refid,
'[FIBU2].dbo.fibu_belegzeile.i_gegenkonto,
'[FIBU2].dbo.fibu_belegzeile.dec_betrag,
'[FIBU2].dbo.fibu_belegzeile.c_waehrung,
'[FIBU2].dbo.fibu_belegzeile.dec_fremdbetrag,
'[FIBU2].dbo.fibu_belegzeile.eur_betrag,
'[FIBU2].dbo.fibu_belegzeile.d_beleg,
'[FIBU2].dbo.fibu_belegzeile.d_gebucht,
'[FIBU2].dbo.fibu_belegzeile.c_urbelegid,
'[FIBU2].dbo.fibu_belegzeile.si_belegart,
'[FIBU2].dbo.fibu_belegzeile.c_buchtext,
'[FIBU2].dbo.fibu_belegzeile.i_buchungskreis)
'VALUES (
'@MandantNr,
'@Jahr,
'@Periode,
'@relPeriode,
'@i_beleg_refid,
'@ZSzeilenr,
'@ckennsoll2,
'@Sollkonto2,
'@c_sollhabenkz,
'0,
'@Habenkonto2,
'@Buchungsbetrag_B,
'@Waehrung,
'@Buchungsbetrag_B,
'@Buchungsbetrag_B,
'@gDatumKurz,
'@gDatumKurz,
'@belegnrtext,
'@Belegart,
'@Buchungstext,
'1)
'End /* fünfte Buchungszeile bei Auszahlung und Direktverbuchung */
'If @Buchungsweg = 3
'BEGIN /* Fortsetzung bei Direktverbuchung */
'Set @updatekonto = @i_fordkto
'Set @dec_aktuellersaldo = (Select [FIBU2].dbo.fibu_konto.dec_aktuellersaldo
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'Set @dec_sollsumme = (Select [FIBU2].dbo.fibu_konto.dec_sollsumme
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'Set @dec_habensumme = (Select [FIBU2].dbo.fibu_konto.dec_habensumme
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'Set @eur_aktuellersaldo = (Select [FIBU2].dbo.fibu_konto.eur_aktuellersaldo
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'If @Einzahlungsbetrag <> 0
'BEGIN /* Einzahlung */
'Set @dec_aktuellersaldo = (@dec_aktuellersaldo - @B_Bruttobetrag)
'Set @dec_sollsumme = (@dec_sollsumme - 0)
'Set @dec_habensumme = (@dec_habensumme + @B_Bruttobetrag)
'Set @eur_aktuellersaldo = (@eur_aktuellersaldo - @B_Bruttobetrag)
'End /* Einzahlung */
'Else BEGIN /* Auszahlung */
'Set @dec_aktuellersaldo = (@dec_aktuellersaldo - @B_Bruttobetrag)
'Set @dec_sollsumme = (@dec_sollsumme - @B_Bruttobetrag)
'Set @dec_habensumme = (@dec_habensumme + 0)
'Set @eur_aktuellersaldo = (@eur_aktuellersaldo - @B_Bruttobetrag)
'End /* Auszahlung */
'UPDATE [FIBU2].dbo.fibu_konto Set
'd_lebudat = @gDatumKurz,
'dec_aktuellersaldo = @dec_aktuellersaldo,
'dec_sollsumme = @dec_sollsumme,
'dec_habensumme = @dec_habensumme,
'eur_aktuellersaldo = @eur_aktuellersaldo
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto
'Set @updatekonto = CAST(@Bestandskonto As Integer)
'Set @i_Sachkonto = @updatekonto
'Set @dec_aktuellersaldo = (Select [FIBU2].dbo.fibu_konto.dec_aktuellersaldo
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'Set @dec_sollsumme = (Select [FIBU2].dbo.fibu_konto.dec_sollsumme
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'Set @dec_habensumme = (Select [FIBU2].dbo.fibu_konto.dec_habensumme
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'Set @eur_aktuellersaldo = (Select [FIBU2].dbo.fibu_konto.eur_aktuellersaldo
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'If @Einzahlungsbetrag <> 0
'BEGIN /* Einzahlung */
'Set @dec_aktuellersaldo = (@dec_aktuellersaldo + @B_Bruttobetrag)
'Set @dec_sollsumme = (@dec_sollsumme + @B_Bruttobetrag)
'Set @dec_habensumme = (@dec_habensumme + 0)
'Set @eur_aktuellersaldo = (@eur_aktuellersaldo + @B_Bruttobetrag)
'End /* Einzahlung */
'Else BEGIN /* Auszahlung */
'Set @dec_aktuellersaldo = (@dec_aktuellersaldo + @B_Bruttobetrag)
'Set @dec_sollsumme = (@dec_sollsumme - 0)
'Set @dec_habensumme = (@dec_habensumme - @B_Bruttobetrag)
'Set @eur_aktuellersaldo = (@eur_aktuellersaldo + @B_Bruttobetrag)
'End /* Auszahlung */
'UPDATE [FIBU2].dbo.fibu_konto Set
'd_lebudat = @gDatumKurz,
'dec_aktuellersaldo = @dec_aktuellersaldo,
'dec_sollsumme = @dec_sollsumme,
'dec_habensumme = @dec_habensumme,
'eur_aktuellersaldo = @eur_aktuellersaldo
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto
'If @Auszahlungsbetrag <> 0
'BEGIN /* Erlöskonto bei Auszahlung */
'Set @updatekonto = CAST(@Erlöskonto As Integer)
'Set @i_Sachkonto = @updatekonto
'Set @dec_sollsumme = (Select [FIBU2].dbo.fibu_konto.dec_sollsumme
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'Set @dec_habensumme = (Select [FIBU2].dbo.fibu_konto.dec_habensumme
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'Set @dec_sollsumme = (@dec_sollsumme - @B_Bruttobetrag)
'Set @dec_habensumme = (@dec_habensumme - @B_Bruttobetrag)
'UPDATE [FIBU2].dbo.fibu_konto Set
'd_lebudat = @gDatumKurz,
'dec_sollsumme = @dec_sollsumme,
'dec_habensumme = @dec_habensumme
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto
'End /* Erlöskonto bei Auszahlung */
'Set @updatekonto = CAST(@Kontonummer As Integer)
'Set @dec_aktuellersaldo = (Select [FIBU2].dbo.fibu_konto.dec_aktuellersaldo
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'Set @dec_sollsumme = (Select [FIBU2].dbo.fibu_konto.dec_sollsumme
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'Set @dec_habensumme = (Select [FIBU2].dbo.fibu_konto.dec_habensumme
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'Set @eur_aktuellersaldo = (Select [FIBU2].dbo.fibu_konto.eur_aktuellersaldo
'FROM [FIBU2].dbo.fibu_konto
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto)
'If @Einzahlungsbetrag <> 0
'BEGIN /* Einzahlung */
'Set @dec_aktuellersaldo = (@dec_aktuellersaldo - @B_Bruttobetrag)
'Set @dec_sollsumme = (@dec_sollsumme + 0)
'Set @dec_habensumme = (@dec_habensumme + @B_Bruttobetrag)
'Set @eur_aktuellersaldo = (@eur_aktuellersaldo - @B_Bruttobetrag)
'Set @opvorgangsbetrag = @B_Bruttobetrag * (-1)
'End /* Einzahlung */
'Else BEGIN /* Auszahlung */
'Set @dec_aktuellersaldo = (@dec_aktuellersaldo - @B_Bruttobetrag)
'Set @dec_sollsumme = (@dec_sollsumme - @B_Bruttobetrag)
'Set @dec_habensumme = (@dec_habensumme - 0)
'Set @eur_aktuellersaldo = (@eur_aktuellersaldo - @B_Bruttobetrag)
'Set @opvorgangsbetrag = @B_Bruttobetrag * (-1) / CAST(2 As FLOAT)
'End /* Auszahlung */
'UPDATE [FIBU2].dbo.fibu_konto Set
'd_lebudat = @gDatumKurz,
'dec_aktuellersaldo = @dec_aktuellersaldo,
'dec_sollsumme = @dec_sollsumme,
'dec_habensumme = @dec_habensumme,
'eur_aktuellersaldo = @eur_aktuellersaldo
'WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto
'Declare Schleifen2rec CURSOR FOR ()
' Select Case
'OWNFIELD_Nr,
'OWNFIELD_Konto,
'ISNULL(OWNFIELD_Soll, 0),
'ISNULL(OWNFIELD_Haben, 0)
'FROM OWNTABLE_Verbuchungskonten
'WHERE ((ISNULL(OWNFIELD_Soll, 0) <> 0) Or (ISNULL(OWNFIELD_Haben, 0) <> 0))
'OPEN Schleifen2rec
'FETCH NEXT FROM Schleifen2rec INTO
'@Schleifennr,
'@Schleifenkonto,
'@dec_sollsumme,
'@dec_habensumme
'While @@FETCH_STATUS = 0
'BEGIN /* 03 */
'If @Periode = 1
'BEGIN
'Set @periodensoll = (Select [FIBU2].dbo.fibu_periodensaldo.dec_soll_1
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'Set @periodenhaben = (Select [FIBU2].dbo.fibu_periodensaldo.dec_haben_1
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'UPDATE [FIBU2].dbo.fibu_periodensaldo Set
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_1 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_1 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_1 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_1 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto
'If @Schleifenkonto = 2000
'BEGIN /* Debitorendurchbuchungskonto */
'UPDATE [FIBU2].dbo.fibu_periodensaldodk Set
'[FIBU2].dbo.fibu_periodensaldodk.dec_soll_1 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.dec_haben_1 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_soll_1 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_haben_1 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto
'End /* Debitorendurchbuchungskonto */
'End
' If @Periode = 2
'BEGIN
'Set @periodensoll = (Select [FIBU2].dbo.fibu_periodensaldo.dec_soll_2
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'Set @periodenhaben = (Select [FIBU2].dbo.fibu_periodensaldo.dec_haben_2
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'UPDATE [FIBU2].dbo.fibu_periodensaldo Set
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_2 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_2 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_2 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_2 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto
'If @Schleifenkonto = 2000
'BEGIN /* Debitorendurchbuchungskonto */
'UPDATE [FIBU2].dbo.fibu_periodensaldodk Set
'[FIBU2].dbo.fibu_periodensaldodk.dec_soll_2 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.dec_haben_2 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_soll_2 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_haben_2 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto
'End /* Debitorendurchbuchungskonto */
'End
' If @Periode = 3
'BEGIN
'Set @periodensoll = (Select [FIBU2].dbo.fibu_periodensaldo.dec_soll_3
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'Set @periodenhaben = (Select [FIBU2].dbo.fibu_periodensaldo.dec_haben_3
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'UPDATE [FIBU2].dbo.fibu_periodensaldo Set
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_3 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_3 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_3 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_3 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto
'If @Schleifenkonto = 2000
'BEGIN /* Debitorendurchbuchungskonto */
'UPDATE [FIBU2].dbo.fibu_periodensaldodk Set
'[FIBU2].dbo.fibu_periodensaldodk.dec_soll_3 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.dec_haben_3 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_soll_3 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_haben_3 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto
'End /* Debitorendurchbuchungskonto */
'End
' If @Periode = 4
'BEGIN
'Set @periodensoll = (Select [FIBU2].dbo.fibu_periodensaldo.dec_soll_4
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'Set @periodenhaben = (Select [FIBU2].dbo.fibu_periodensaldo.dec_haben_4
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'UPDATE [FIBU2].dbo.fibu_periodensaldo Set
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_4 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_4 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_4 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_4 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto
'If @Schleifenkonto = 2000
'BEGIN /* Debitorendurchbuchungskonto */
'UPDATE [FIBU2].dbo.fibu_periodensaldodk Set
'[FIBU2].dbo.fibu_periodensaldodk.dec_soll_4 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.dec_haben_4 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_soll_4 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_haben_4 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto
'End /* Debitorendurchbuchungskonto */
'End
' If @Periode = 5
'BEGIN
'Set @periodensoll = (Select [FIBU2].dbo.fibu_periodensaldo.dec_soll_5
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'Set @periodenhaben = (Select [FIBU2].dbo.fibu_periodensaldo.dec_haben_5
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'UPDATE [FIBU2].dbo.fibu_periodensaldo Set
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_5 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_5 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_5 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_5 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto
'If @Schleifenkonto = 2000
'BEGIN /* Debitorendurchbuchungskonto */
'UPDATE [FIBU2].dbo.fibu_periodensaldodk Set
'[FIBU2].dbo.fibu_periodensaldodk.dec_soll_5 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.dec_haben_5 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_soll_5 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_haben_5 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto
'End /* Debitorendurchbuchungskonto */
'End
' If @Periode = 6
'BEGIN
'Set @periodensoll = (Select [FIBU2].dbo.fibu_periodensaldo.dec_soll_6
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'Set @periodenhaben = (Select [FIBU2].dbo.fibu_periodensaldo.dec_haben_6
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'UPDATE [FIBU2].dbo.fibu_periodensaldo Set
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_6 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_6 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_6 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_6 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto
'If @Schleifenkonto = 2000
'BEGIN /* Debitorendurchbuchungskonto */
'UPDATE [FIBU2].dbo.fibu_periodensaldodk Set
'[FIBU2].dbo.fibu_periodensaldodk.dec_soll_6 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.dec_haben_6 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_soll_6 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_haben_6 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto
'End /* Debitorendurchbuchungskonto */
'End
' If @Periode = 7
'BEGIN
'Set @periodensoll = (Select [FIBU2].dbo.fibu_periodensaldo.dec_soll_7
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'Set @periodenhaben = (Select [FIBU2].dbo.fibu_periodensaldo.dec_haben_7
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'UPDATE [FIBU2].dbo.fibu_periodensaldo Set
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_7 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_7 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_7 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_7 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto
'If @Schleifenkonto = 2000
'BEGIN /* Debitorendurchbuchungskonto */
'UPDATE [FIBU2].dbo.fibu_periodensaldodk Set
'[FIBU2].dbo.fibu_periodensaldodk.dec_soll_7 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.dec_haben_7 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_soll_7 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_haben_7 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto
'End /* Debitorendurchbuchungskonto */
'End
' If @Periode = 8
'BEGIN
'Set @periodensoll = (Select [FIBU2].dbo.fibu_periodensaldo.dec_soll_8
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'Set @periodenhaben = (Select [FIBU2].dbo.fibu_periodensaldo.dec_haben_8
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'UPDATE [FIBU2].dbo.fibu_periodensaldo Set
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_8 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_8 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_8 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_8 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto
'If @Schleifenkonto = 2000
'BEGIN /* Debitorendurchbuchungskonto */
'UPDATE [FIBU2].dbo.fibu_periodensaldodk Set
'[FIBU2].dbo.fibu_periodensaldodk.dec_soll_8 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.dec_haben_8 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_soll_8 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_haben_8 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto
'End /* Debitorendurchbuchungskonto */
'End
' If @Periode = 9
'BEGIN
'Set @periodensoll = (Select [FIBU2].dbo.fibu_periodensaldo.dec_soll_9
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'Set @periodenhaben = (Select [FIBU2].dbo.fibu_periodensaldo.dec_haben_9
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'UPDATE [FIBU2].dbo.fibu_periodensaldo Set
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_9 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_9 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_9 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_9 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto
'If @Schleifenkonto = 2000
'BEGIN /* Debitorendurchbuchungskonto */
'UPDATE [FIBU2].dbo.fibu_periodensaldodk Set
'[FIBU2].dbo.fibu_periodensaldodk.dec_soll_9 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.dec_haben_9 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_soll_9 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_haben_9 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto
'End /* Debitorendurchbuchungskonto */
'End
' If @Periode = 10
'BEGIN
'Set @periodensoll = (Select [FIBU2].dbo.fibu_periodensaldo.dec_soll_10
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'Set @periodenhaben = (Select [FIBU2].dbo.fibu_periodensaldo.dec_haben_10
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'UPDATE [FIBU2].dbo.fibu_periodensaldo Set
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_10 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_10 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_10 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_10 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto
'If @Schleifenkonto = 2000
'BEGIN /* Debitorendurchbuchungskonto */
'UPDATE [FIBU2].dbo.fibu_periodensaldodk Set
'[FIBU2].dbo.fibu_periodensaldodk.dec_soll_10 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.dec_haben_10 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_soll_10 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_haben_10 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto
'End /* Debitorendurchbuchungskonto */
'End
' If @Periode = 11
'BEGIN
'Set @periodensoll = (Select [FIBU2].dbo.fibu_periodensaldo.dec_soll_11
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'Set @periodenhaben = (Select [FIBU2].dbo.fibu_periodensaldo.dec_haben_11
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'UPDATE [FIBU2].dbo.fibu_periodensaldo Set
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_11 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_11 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_11 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_11 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto
'If @Schleifenkonto = 2000
'BEGIN /* Debitorendurchbuchungskonto */
'UPDATE [FIBU2].dbo.fibu_periodensaldodk Set
'[FIBU2].dbo.fibu_periodensaldodk.dec_soll_11 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.dec_haben_11 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_soll_11 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_haben_11 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto
'End /* Debitorendurchbuchungskonto */
'End
' If @Periode = 12
'BEGIN
'Set @periodensoll = (Select [FIBU2].dbo.fibu_periodensaldo.dec_soll_12
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'Set @periodenhaben = (Select [FIBU2].dbo.fibu_periodensaldo.dec_haben_12
'FROM [FIBU2].dbo.fibu_periodensaldo
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto)
'UPDATE [FIBU2].dbo.fibu_periodensaldo Set
'[FIBU2].dbo.fibu_periodensaldo.dec_soll_12 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.dec_haben_12 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_soll_12 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldo.eur_haben_12 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto
'If @Schleifenkonto = 2000
'BEGIN /* Debitorendurchbuchungskonto */
'UPDATE [FIBU2].dbo.fibu_periodensaldodk Set
'[FIBU2].dbo.fibu_periodensaldodk.dec_soll_12 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.dec_haben_12 = (@periodenhaben + @dec_habensumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_soll_12 = (@periodensoll + @dec_sollsumme),
'[FIBU2].dbo.fibu_periodensaldodk.eur_haben_12 = (@periodenhaben + @dec_habensumme)
'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr
'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto
'End /* Debitorendurchbuchungskonto */
'End
'FETCH NEXT FROM Schleifen2rec INTO
'@Schleifennr,
'@Schleifenkonto,
'@dec_sollsumme,
'@dec_habensumme
'End /* 03 */
'CLOSE Schleifen2rec
'DEALLOCATE Schleifen2rec
'INSERT INTO [FIBU2].dbo.op_debitor (
'[FIBU2].dbo.op_debitor.i_firm_refid,
'[FIBU2].dbo.op_debitor.i_op_refid,
'[FIBU2].dbo.op_debitor.c_urbelegid,
'[FIBU2].dbo.op_debitor.i_personenkonto,
'[FIBU2].dbo.op_debitor.i_forderungskonto,
'[FIBU2].dbo.op_debitor.c_rechnungid,
'[FIBU2].dbo.op_debitor.d_rechnung,
'[FIBU2].dbo.op_debitor.d_valuta,
'[FIBU2].dbo.op_debitor.c_typ,
'[FIBU2].dbo.op_debitor.c_sprache,
'[FIBU2].dbo.op_debitor.c_waehrung,
'[FIBU2].dbo.op_debitor.dec_eigenbrutto,
'[FIBU2].dbo.op_debitor.dec_fremdbrutto,
'[FIBU2].dbo.op_debitor.eur_bruttobetrag,
'[FIBU2].dbo.op_debitor.dec_skf_eigen,
'[FIBU2].dbo.op_debitor.dec_skf_fremd,
'[FIBU2].dbo.op_debitor.eur_skontierfaehig,
'[FIBU2].dbo.op_debitor.dec_eigenzahlung,
'[FIBU2].dbo.op_debitor.dec_fremdzahlung,
'[FIBU2].dbo.op_debitor.eur_zahlung,
'[FIBU2].dbo.op_debitor.c_zahlziel,
'[FIBU2].dbo.op_debitor.dec_skonto,
'[FIBU2].dbo.op_debitor.d_skonto,
'[FIBU2].dbo.op_debitor.dec_skonto2,
'[FIBU2].dbo.op_debitor.d_netto,
'[FIBU2].dbo.op_debitor.si_mahnstufe,
'[FIBU2].dbo.op_debitor.i_mahnlauf_refid,
'[FIBU2].dbo.op_debitor.si_exportiert,
'[FIBU2].dbo.op_debitor.i_stapel_refid,
'[FIBU2].dbo.op_debitor.i_stapel_lfdnr,
'[FIBU2].dbo.op_debitor.dec_stpl_ew_betrag,
'[FIBU2].dbo.op_debitor.dec_stpl_ew_skonto,
'[FIBU2].dbo.op_debitor.dec_stpl_fw_betrag,
'[FIBU2].dbo.op_debitor.dec_stpl_fw_skonto,
'[FIBU2].dbo.op_debitor.eur_stpl_betrag,
'[FIBU2].dbo.op_debitor.eur_stpl_skonto,
'[FIBU2].dbo.op_debitor.i_clearing,
'[FIBU2].dbo.op_debitor.i_eigene_bank,
'[FIBU2].dbo.op_debitor.si_bankeinzug,
'[FIBU2].dbo.op_debitor.c_bemerkung,
'[FIBU2].dbo.op_debitor.lc_anmerkungen,
'[FIBU2].dbo.op_debitor.i_zessionstext,
'[FIBU2].dbo.op_debitor.i_buchungskreis,
'[FIBU2].dbo.op_debitor.c_ustidnr)
'VALUES (
'@MandantNr,
'@i_op_refid,
'@belegnrtext,
'@i_personenkonto,
'@i_fordkto,
'@belegnrtext,
'@gDatumKurz,
'@gDatumKurz,
'@c_op_Typ,
'@c_sprache,
'@Waehrung,
'@B_Bruttobetrag * (-1),
'@B_Bruttobetrag * (-1),
'@B_Bruttobetrag * (-1),
'@B_Bruttobetrag * (-1),
'@B_Bruttobetrag * (-1),
'@B_Bruttobetrag * (-1),
'0,
'0,
'0,
'@c_zahlziel,
'@Skonto,
'@Skontodatum,
'0,
'@Nettodatum,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'0,
'@Buchungstext,
'@Buchungstext_orig,
'0,
'1,
'@c_ustidnr)
'INSERT INTO [FIBU2].dbo.op_vorgang_deb (
'[FIBU2].dbo.op_vorgang_deb.i_firm_refid,
'[FIBU2].dbo.op_vorgang_deb.i_personenkonto,
'[FIBU2].dbo.op_vorgang_deb.i_op_refid,
'[FIBU2].dbo.op_vorgang_deb.i_beleg_refid,
'[FIBU2].dbo.op_vorgang_deb.c_vorgang,
'[FIBU2].dbo.op_vorgang_deb.d_beleg,
'[FIBU2].dbo.op_vorgang_deb.si_rel_periode,
'[FIBU2].dbo.op_vorgang_deb.si_jahr,
'[FIBU2].dbo.op_vorgang_deb.i_steuer_refid,
'[FIBU2].dbo.op_vorgang_deb.dec_steuerproz,
'[FIBU2].dbo.op_vorgang_deb.i_nne_az_konto,
'[FIBU2].dbo.op_vorgang_deb.dec_nettobetrag,
'[FIBU2].dbo.op_vorgang_deb.dec_steuerbetrag,
'[FIBU2].dbo.op_vorgang_deb.eur_nettobetrag,
'[FIBU2].dbo.op_vorgang_deb.eur_steuerbetrag,
'[FIBU2].dbo.op_vorgang_deb.dec_fremdbetrag,
'[FIBU2].dbo.op_vorgang_deb.si_skontierfaehig,
'[FIBU2].dbo.op_vorgang_deb.si_zeilen_refid,
'[FIBU2].dbo.op_vorgang_deb.c_bemerkung,
'[FIBU2].dbo.op_vorgang_deb.dt_datum,
'[FIBU2].dbo.op_vorgang_deb.c_benutzer,
'[FIBU2].dbo.op_vorgang_deb.i_eg_konto,
'[FIBU2].dbo.op_vorgang_deb.i_auftrag_refid,
'[FIBU2].dbo.op_vorgang_deb.dec_naf_steuerbetr,
'[FIBU2].dbo.op_vorgang_deb.eur_naf_steuerbetr)
'VALUES (
'@MandantNr,
'@i_personenkonto,
'@i_op_refid,
'@i_beleg_refid,
''P',
'@gDatumKurz,
'@relPeriode,
'@Jahr,
'0,
'0,
'@i_Sachkonto,
'@opvorgangsbetrag,
'0,
'@opvorgangsbetrag,
'0,
'@opvorgangsbetrag,
'1,
'1, /* Zeilennummer */
'@Buchungstext,
'@dt_creation,
'@Benutzer,
'0,
'0,
'0,
'0)
'If @Auszahlungsbetrag <> 0
'BEGIN /* die zweite op_vorgang_deb Zeile insertieren */
'INSERT INTO [FIBU2].dbo.op_vorgang_deb (
'[FIBU2].dbo.op_vorgang_deb.i_firm_refid,
'[FIBU2].dbo.op_vorgang_deb.i_personenkonto,
'[FIBU2].dbo.op_vorgang_deb.i_op_refid,
'[FIBU2].dbo.op_vorgang_deb.i_beleg_refid,
'[FIBU2].dbo.op_vorgang_deb.c_vorgang,
'[FIBU2].dbo.op_vorgang_deb.d_beleg,
'[FIBU2].dbo.op_vorgang_deb.si_rel_periode,
'[FIBU2].dbo.op_vorgang_deb.si_jahr,
'[FIBU2].dbo.op_vorgang_deb.i_steuer_refid,
'[FIBU2].dbo.op_vorgang_deb.dec_steuerproz,
'[FIBU2].dbo.op_vorgang_deb.i_nne_az_konto,
'[FIBU2].dbo.op_vorgang_deb.dec_nettobetrag,
'[FIBU2].dbo.op_vorgang_deb.dec_steuerbetrag,
'[FIBU2].dbo.op_vorgang_deb.eur_nettobetrag,
'[FIBU2].dbo.op_vorgang_deb.eur_steuerbetrag,
'[FIBU2].dbo.op_vorgang_deb.dec_fremdbetrag,
'[FIBU2].dbo.op_vorgang_deb.si_skontierfaehig,
'[FIBU2].dbo.op_vorgang_deb.si_zeilen_refid,
'[FIBU2].dbo.op_vorgang_deb.c_bemerkung,
'[FIBU2].dbo.op_vorgang_deb.dt_datum,
'[FIBU2].dbo.op_vorgang_deb.c_benutzer,
'[FIBU2].dbo.op_vorgang_deb.i_eg_konto,
'[FIBU2].dbo.op_vorgang_deb.i_auftrag_refid,
'[FIBU2].dbo.op_vorgang_deb.dec_naf_steuerbetr,
'[FIBU2].dbo.op_vorgang_deb.eur_naf_steuerbetr)
'VALUES (
'@MandantNr,
'@i_personenkonto,
'@i_op_refid,
'@i_beleg_refid,
''P',
'@gDatumKurz,
'@relPeriode,
'@Jahr,
'0,
'0,
'@i_Sachkonto,
'@opvorgangsbetrag,
'0,
'@opvorgangsbetrag,
'0,
'@opvorgangsbetrag,
'1,
'5, /* Zeilennummer */
'@Buchungstext,
'@dt_creation,
'@Benutzer,
'0,
'0,
'0,
'0)
'End /* die zweite op_vorgang_deb Zeile insertieren */
'End /* Fortsetzung bei Direktverbuchung */
'Set @Zahlungsmittelbetraege = (Select SUM(Betrag) FROM Rechnung_Zahlungsmittel
'WHERE Datum = @belegdatum And Nr = @belegnr)
'If ISNULL(@Zahlungsmittelbetraege, 0) <> @B_Bruttobetrag
'BEGIN /* Zahlungsmittelkorrektur wegen Programmfehler erforderlich */
'Set @Zaehler1 = (Select COUNT(Datum) FROM Rechnung_Zahlungsmittel
'WHERE Datum = @belegdatum And Nr = @belegnr)
'If ISNULL(@Zaehler1, 0) > 0
'BEGIN /* es sind zutreffende Zahlungsmitteldatensätze vorhanden */
'Set @Korrekturbetrag = @B_Bruttobetrag / CAST(@Zaehler1 As FLOAT)
'UPDATE Rechnung_Zahlungsmittel Set
'Betrag = @Korrekturbetrag
'WHERE Datum = @belegdatum And Nr = @belegnr
'End /* es sind zutreffende Zahlungsmitteldatensätze vorhanden */
'Else BEGIN /* ein Zahlungsmitteldatensatz fehlt */
'INSERT INTO Rechnung_Zahlungsmittel (
'Datum,
'Nr,
'Waehrungsnr,
'TYP,
'Waehrung,
'Umrechnungsfaktor,
'Betrag,
'Satz,
'Gedruckt)
'VALUES (
'@belegdatum,
'@belegnr,
'@Waehrungsnr,
'18,
'@Waehrung,
'@Umrechnungsfaktor,
'@B_Bruttobetrag,
''',
'0)
'End /* ein Zahlungsmitteldatensatz fehlt */
'End /* Zahlungsmittelkorrektur wegen Programmfehler erforderlich */
'If @Buchungsweg > 1
'BEGIN
'Set @Zaehler1 = (Select COUNT([FIBU2].dbo.fibu_belegzeile.i_beleg_refid)
'FROM [FIBU2].dbo.fibu_belegzeile
'WHERE [FIBU2].dbo.fibu_belegzeile.i_firm_refid = @MandantNr
'And [FIBU2].dbo.fibu_belegzeile.c_urbelegid Like @belegnrtext
'And [FIBU2].dbo.fibu_belegzeile.c_buchtext Like ('%' + @Ganzer_Pos_Nr_Text + '%'))
'If ISNULL(@Zaehler1, 0) >= 3
'BEGIN /* Buchung ist vorhanden */
'UPDATE Rechnung Set Gebucht = 1 WHERE Datum = @belegdatum And Nr = @belegnr
'End /* Buchung ist vorhanden */
'End
' End /* nur Barverkaufsrechnungen mit Positionen In den Fibustapel insertieren */
'Set @belegdatumdavor = (Select MAX(Datum) FROM Rechnung
'WHERE Datum <> @belegdatum)
'Set @belegnrdavor = (Select MAX(Nr) FROM Rechnung
'WHERE Datum = @belegdatumdavor)
'Set @Waehrungsnr = (Select Waehrungsnr FROM Rechnung
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor)
'Set @Waehrung = (Select Waehrung FROM Rechnung
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor)
'Set @Umrechnungsfaktor = (Select Umrechnungsfaktor FROM Rechnung
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor)
'Set @B_Bruttobetrag = (Select Bruttobetrag FROM Rechnung
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor)
'Set @Zahlungsmittelbetraege = (Select SUM(Betrag) FROM Rechnung_Zahlungsmittel
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor)
'If ISNULL(@Zahlungsmittelbetraege, 0) <> @B_Bruttobetrag
'BEGIN /* Zahlungsmittelkorrektur wegen Programmfehler erforderlich */
'Set @Zaehler1 = (Select COUNT(Datum) FROM Rechnung_Zahlungsmittel
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor)
'If ISNULL(@Zaehler1, 0) > 0
'BEGIN /* es sind zutreffende Zahlungsmitteldatensätze vorhanden */
'Set @Korrekturbetrag = @B_Bruttobetrag / CAST(@Zaehler1 As FLOAT)
'UPDATE Rechnung_Zahlungsmittel Set
'Betrag = @Korrekturbetrag
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor
'End /* es sind zutreffende Zahlungsmitteldatensätze vorhanden */
'Else BEGIN /* ein Zahlungsmitteldatensatz fehlt */
'INSERT INTO Rechnung_Zahlungsmittel (
'Datum,
'Nr,
'Waehrungsnr,
'TYP,
'Waehrung,
'Umrechnungsfaktor,
'Betrag,
'Satz,
'Gedruckt)
'VALUES (
'@belegdatumdavor,
'@belegnrdavor,
'@Waehrungsnr,
'18,
'@Waehrung,
'@Umrechnungsfaktor,
'@B_Bruttobetrag,
''',
'0)
'End /* ein Zahlungsmitteldatensatz fehlt */
'End /* Zahlungsmittelkorrektur wegen Programmfehler erforderlich */
'Set @belegdatumdavor = (Select MAX(Datum) FROM Gutschrift)
'Set @belegnrdavor = (Select MAX(Nr) FROM Gutschrift
'WHERE Datum = @belegdatumdavor)
'Set @Waehrungsnr = (Select Waehrungsnr FROM Gutschrift
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor)
'Set @Waehrung = (Select Waehrung FROM Gutschrift
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor)
'Set @Umrechnungsfaktor = (Select Umrechnungsfaktor FROM Gutschrift
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor)
'Set @B_Bruttobetrag = (Select Bruttobetrag FROM Gutschrift
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor)
'Set @Zahlungsmittelbetraege = (Select SUM(Betrag) FROM Gutschrift_Zahlungsmittel
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor)
'If ISNULL(@Zahlungsmittelbetraege, 0) <> @B_Bruttobetrag * (-1)
'BEGIN /* Zahlungsmittelkorrektur wegen Programmfehler erforderlich */
'Set @Zaehler1 = (Select COUNT(Datum) FROM Gutschrift_Zahlungsmittel
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor)
'If ISNULL(@Zaehler1, 0) > 0
'BEGIN /* es sind zutreffende Zahlungsmitteldatensätze vorhanden */
'Set @Korrekturbetrag = @B_Bruttobetrag * (-1) / CAST(@Zaehler1 As FLOAT)
'UPDATE Gutschrift_Zahlungsmittel Set
'Betrag = @Korrekturbetrag
'WHERE Datum = @belegdatumdavor And Nr = @belegnrdavor
'End /* es sind zutreffende Zahlungsmitteldatensätze vorhanden */
'Else BEGIN /* ein Zahlungsmitteldatensatz fehlt */
'INSERT INTO Gutschrift_Zahlungsmittel (
'Datum,
'Nr,
'Waehrungsnr,
'TYP,
'Waehrung,
'Umrechnungsfaktor,
'Betrag,
'Satz,
'Gedruckt)
'VALUES (
'@belegdatumdavor,
'@belegnrdavor,
'@Waehrungsnr,
'18,
'@Waehrung,
'@Umrechnungsfaktor,
'@B_Bruttobetrag * (-1),
''',
'0)
'End /* ein Zahlungsmitteldatensatz fehlt */
'End /* Zahlungsmittelkorrektur wegen Programmfehler erforderlich */
'################## ------- ------- ------- ##################
'################## ------- ------- ------- ##################
'################## ------- BUCHUNGEN------- ##################
'################## ------- ------- ------- ##################
'################## ------- ------- ------- ##################
End Class