6928 lines
298 KiB
VB.net
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 |