Compare commits

...

2 Commits

8 changed files with 475 additions and 140 deletions

View File

@@ -28,6 +28,11 @@ Public Class cKassenbuch
Property rksv_BelegId As Object = Nothing
Property rksv_aktiv As Boolean = False
Property durchfuehrender_Benutzer As Integer = -1
Property FilialenNr As Integer
Property AbfertigungsNr As Integer
Property UnterNr As Integer = -1
Property Trdin As Boolean = False
Dim SQL As New SQL
@@ -104,6 +109,10 @@ Public Class cKassenbuch
Me.rksv_BelegId = cSqlDb.checkNullReturnValue(dr.Item("rksv_BelegId"), Nothing)
Me.rksv_aktiv = cSqlDb.checkNullReturnValue(dr.Item("rksv_aktiv"), False)
Me.durchfuehrender_Benutzer = cSqlDb.checkNullInteger(dr.Item("durchfuehrender_Benutzer"))
Me.FilialenNr = cSqlDb.checkNullInteger(dr.Item("FilialenNr"))
Me.AbfertigungsNr = cSqlDb.checkNullInteger(dr.Item("AbfertigungsNr"))
Me.UnterNr = cSqlDb.checkNullInteger(dr.Item("UnterNr"))
Me.Trdin = cSqlDb.checkNullReturnValue(dr.Item("Trdin"), False)
@@ -151,6 +160,11 @@ Public Class cKassenbuch
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_aktiv", rksv_aktiv))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("durchfuehrender_Benutzer", durchfuehrender_Benutzer))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Trdin", Trdin))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FilialenNr", FilialenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("AbfertigungsNr", AbfertigungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("UnterNr", UnterNr))
Return list
End Function

View File

@@ -692,8 +692,11 @@ Public Class frmFaktEmail
accountToSent = SDL.cFakturierung.getDefaultMail("AMBAR",, True)
Case 19
accountToSent = "mmdabrechnung@verag.ag" 'bewusst falsch geschrieben!!!!
Case 7
accountToSent = "rechnung@atilla-spedition.com"
Case Else
accountToSent = "rechnungsversand@verag.ag"
End Select

View File

@@ -544,7 +544,7 @@ Public Class frmMDM_USTVAntrag
Antrag_LandKz = SQL.DLookup("LandKz", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & USTV_ANTRAG.UStVAn_LandNr & "'", "FMZOLL")
setValue(USTV_ANTRAG)
If CInt(USTV_ANTRAG.UStVAn_KuNr) >= 150000 AndAlso CInt(USTV_ANTRAG.UStVAn_KuNr) < 160000 Then
If (CInt(USTV_ANTRAG.UStVAn_KuNr) >= 150000 AndAlso CInt(USTV_ANTRAG.UStVAn_KuNr) < 160000) Or (CInt(USTV_ANTRAG.UStVAn_KuNr) >= 180000 AndAlso CInt(USTV_ANTRAG.UStVAn_KuNr) < 190000) Then
btnRMCQuartal.Visible = True
Else
btnRMCQuartal.Visible = False
@@ -4088,20 +4088,26 @@ Public Class frmMDM_USTVAntrag
Private Sub btnRMCQuartal_Click(sender As Object, e As EventArgs) Handles btnRMCQuartal.Click
Dim rmc As cRMC
Dim nurUnter50EurAnzeigen As Boolean = True
Dim input = InputBox("Bitte geben Sie das gewünschte Quartal ein:", "RMC Quartalsgebühren")
If input <> "" AndAlso IsNumeric(input) AndAlso CInt(input) < 5 AndAlso CInt(input) > 0 Then
Select Case MsgBox("Sollen nur Anträge angezeigt werden, deren Bearbeitung pro Quartal unter 50EUR liegt?", vbYesNo)
Case vbYes : nurUnter50EurAnzeigen = True
Case vbNo : nurUnter50EurAnzeigen = False
End Select
Dim rmc As cRMC
Dim nurUnter50EurAnzeigen As Boolean = True
Select Case MsgBox("Sollen nur Anträge angezeigt werden, deren Bearbeitung pro Quartal unter 50EUR liegt?", vbYesNo)
Case vbYes : nurUnter50EurAnzeigen = True
Case vbNo : nurUnter50EurAnzeigen = False
End Select
Dim dt = rmc.getRMCQuartalsAbrechnungen(SQL, CInt(input), Now.Year, "373, 374", USTV_ANTRAG, Antrag_LandKz, nurUnter50EurAnzeigen)
If dt.Rows.Count > 0 Then
cProgramFunctions.genExcelFromDT_NEW(dt)
Else
MsgBox("keine Daten für ausgewählten Zeitraum")
End If
Dim dt = rmc.getRMCQuartalsAbrechnungen(SQL, 1, Now.Year, "327", USTV_ANTRAG, Antrag_LandKz, nurUnter50EurAnzeigen)
If dt.Rows.Count > 0 Then
cProgramFunctions.genExcelFromDT_NEW(dt)
Else
MsgBox("keine Daten für ausgewählten Zeitraum")
End If

View File

@@ -230,6 +230,7 @@ Public Class frmDakosyStammreferenzVerwalten
cboNL.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NEU", "NEU"))
cboNL.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NKD", "NKD"))
cboNL.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DTB", "DTB"))
cboNL.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AMBWO", "AMBWO"))
cboNL.changeItem("")
Case "IMEX"

View File

@@ -17,12 +17,13 @@ Public Class cAufschubKonten
Property brgakto_gs_ust As Object = Nothing
Property brgakto_gs_aktSaldo As Decimal
Property brgakto_gs_ATR As Boolean = False
Property brgakto_firmaID As Object = Nothing
Public hasEntry = False
Dim SQL As New SQL
Sub New(brgakto_id)
Sub New(brgakto_id As Integer)
Me.brgakto_id = brgakto_id
LOAD()
End Sub
@@ -33,6 +34,14 @@ Public Class cAufschubKonten
brgakto_betrag = getReferenzbetrag(Today)
End Sub
Sub New(brgakto_gs_standort As String, brgakto_firmaID As Integer)
Me.brgakto_gs_standort = brgakto_gs_standort
Me.brgakto_firmaID = brgakto_firmaID
LOADStandort(brgakto_firmaID)
brgakto_betrag = getReferenzbetrag(Today)
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("brgakto_id", brgakto_id,, True))
@@ -47,6 +56,7 @@ Public Class cAufschubKonten
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("brgakto_gs_ust", brgakto_gs_ust))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("brgakto_gs_ATR", brgakto_gs_ATR))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("brgakto_gs_aktSaldo", brgakto_gs_aktSaldo))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("brgakto_firmaID", brgakto_firmaID))
Return list
@@ -95,16 +105,16 @@ Public Class cAufschubKonten
End Sub
Public Sub LOADStandort()
Public Sub LOADStandort(Optional firma As Integer = 0)
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionADMIN()
Using cmd As New SqlCommand("SELECT * FROM tblBrgAufschubKonten WHERE brgakto_gs_standort=@brgakto_gs_standort ", conn)
Using cmd As New SqlCommand("SELECT * FROM tblBrgAufschubKonten WHERE brgakto_gs_standort=@brgakto_gs_standort " & IIf(firma <> 0, " AND brgakto_firma=@brgakto_firma", ""), conn)
cmd.Parameters.AddWithValue("@brgakto_gs_standort", brgakto_gs_standort)
If firma <> 0 Then cmd.Parameters.AddWithValue("@brgakto_firmaID", brgakto_firmaID)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()

View File

@@ -35,7 +35,8 @@ Public Class cTrdInvoice
Property Firma_ID As Object = Nothing
Property UStVAn_ID As Object = Nothing
Property VZ As Integer
Property BV As Object = Nothing
Property Source As Object = Nothing
Property hasEntry As Boolean = False
@@ -45,21 +46,22 @@ Public Class cTrdInvoice
End Sub
Sub New(Rechnungsdatum, Rechnungsnummer)
Sub New(Rechnungsdatum, Rechnungsnummer, Source)
Me.Rechnungsnummer = Rechnungsnummer
Me.Rechnungsdatum = Rechnungsdatum
Me.Source = Source
LOAD()
End Sub
Sub New(Rechnungsdatum, Rechnungsnummer, Buchungsjahr)
Sub New(Rechnungsdatum, Rechnungsnummer, Buchungsjahr, Source)
Me.Rechnungsnummer = Buchungsjahr.ToString.Substring(2, 2) & Rechnungsnummer
Me.Rechnungsdatum = Rechnungsdatum
Me.Source = Source
LOAD()
End Sub
Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsdatum", Rechnungsdatum))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsnummer", Rechnungsnummer))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Speditionsbuch", Speditionsbuch))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("FilialenNr", FilialenNr))
@@ -91,6 +93,8 @@ Public Class cTrdInvoice
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Firma_ID", Firma_ID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVAn_ID", UStVAn_ID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VZ", VZ))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BV", BV))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Source", Source))
Return list
@@ -116,9 +120,10 @@ Public Class cTrdInvoice
Public Sub LOAD()
Try
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblTrdinInvoice WHERE Rechnungsnummer=@Rechnungsnummer and Rechnungsdatum=@Rechnungsdatum ", conn)
Using cmd As New SqlCommand("SELECT * FROM tblTrdinInvoice WHERE Rechnungsnummer=@Rechnungsnummer and Rechnungsdatum=@Rechnungsdatum and Source=@Source ", conn)
cmd.Parameters.AddWithValue("@Rechnungsnummer", Rechnungsnummer)
cmd.Parameters.AddWithValue("@Rechnungsdatum", Rechnungsdatum)
cmd.Parameters.AddWithValue("@Source", Source)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
hasEntry = True
@@ -229,7 +234,6 @@ Public Class cTrdProduct
Property Rechnungsdatum As Date
Property Rechnungsnummer As Integer
Property Leistungsnummer As Integer
Property Leistungsbezeichnung As String
Property Steuerpflichtig As Boolean
@@ -241,6 +245,7 @@ Public Class cTrdProduct
Property Sachkonto As Object = Nothing
Property Buchungstext As Object = Nothing
Property VZBetrag As Object = Nothing
Property Source As Object = Nothing
Dim SQL As New SQL
@@ -254,7 +259,6 @@ Public Class cTrdProduct
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsdatum", Rechnungsdatum))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsnummer", Rechnungsnummer))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Leistungsnummer", Leistungsnummer))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Leistungsbezeichnung", Leistungsbezeichnung))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Steuerpflichtig", Steuerpflichtig))
@@ -266,6 +270,7 @@ Public Class cTrdProduct
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sachkonto", Sachkonto))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Buchungstext", Buchungstext))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VZBetrag", VZBetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Source", Source))
Return list
End Function
@@ -406,7 +411,17 @@ Class TrdInvoice_FUNCTIONS
Dim WährungsdifferenzSteuerpflichtigerBetrag As Double
Dim WährungsdifferenzSteuerfreierBetrag As Integer
Dim dt As DataTable = SQL.loadDgvBySql(getSQLString_SELECTForTrdInvoice(Firma, Buchungsjahr), "FMZOLL", 9800)
Dim dt As DataTable
If Not Firma = 7 Then
dt = SQL.loadDgvBySql(getSQLString_SELECTForTrdInvoice(Firma, Buchungsjahr, True), "FMZOLL", 9800)
Else
dt = SQL.loadDgvBySql(getSQLString_SELECTForTrdInvoice(Firma, Buchungsjahr, False) & " UNION ALL " & getSQLString_SELECTForTrdInvoice_Barverkauf("VERA", "SUA", 5033, Buchungsjahr, True), "FMZOLL", 9800) 'Nur Leigheldkonto!
End If
Dim dtVZ As DataTable
@@ -416,9 +431,9 @@ Class TrdInvoice_FUNCTIONS
For Each ROW In dt.Rows
Dim TRD_INVOICE As VERAG_PROG_ALLGEMEIN.cTrdInvoice
If Buchungsjahr > 2000 Then
TRD_INVOICE = New VERAG_PROG_ALLGEMEIN.cTrdInvoice(ROW("RK_RechnungsDatum"), ROW("RK_RechnungsNr"), Buchungsjahr) 'nur UNISPED!!!!
TRD_INVOICE = New VERAG_PROG_ALLGEMEIN.cTrdInvoice(ROW("RK_RechnungsDatum"), ROW("RK_RechnungsNr"), Buchungsjahr, ROW("Source")) 'nur UNISPED!!!!
Else
TRD_INVOICE = New VERAG_PROG_ALLGEMEIN.cTrdInvoice(ROW("RK_RechnungsDatum"), ROW("RK_RechnungsNr"))
TRD_INVOICE = New VERAG_PROG_ALLGEMEIN.cTrdInvoice(ROW("RK_RechnungsDatum"), ROW("RK_RechnungsNr"), ROW("Source"))
End If
@@ -433,25 +448,21 @@ Class TrdInvoice_FUNCTIONS
TRD_INVOICE.SteuerfreierBetragLokal = ROW("RK_SteuerfreierBetrag")
TRD_INVOICE.SteuerbetragLokal = ROW("RK_Steuerbetrag")
TRD_INVOICE.RechnungsbetragLokal = ROW("RK_Rechnungsbetrag")
TRD_INVOICE.SteuerpflichtigerBetragFremd = 0
TRD_INVOICE.SteuerfreierBetragFremd = 0
TRD_INVOICE.SteuerbetragFremd = 0
TRD_INVOICE.RechnungsbetragFremd = 0
TRD_INVOICE.WährungFremd = Nothing
Else
TRD_INVOICE.SteuerpflichtigerBetragFremd = ROW("RK_SteuerpflichtigerBetrag")
TRD_INVOICE.SteuerfreierBetragFremd = ROW("RK_SteuerfreierBetrag")
TRD_INVOICE.SteuerbetragFremd = ROW("RK_Steuerbetrag")
TRD_INVOICE.RechnungsbetragFremd = ROW("RK_Rechnungsbetrag")
TRD_INVOICE.SteuerpflichtigerBetragLokal = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(ROW("RK_SteuerpflichtigerBetrag"), ROW("RK_Währungscode"), LOKALWÄHRUNG)
TRD_INVOICE.SteuerfreierBetragLokal = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(ROW("RK_SteuerfreierBetrag"), ROW("RK_Währungscode"), LOKALWÄHRUNG)
TRD_INVOICE.SteuerbetragLokal = CDbl(TRD_INVOICE.SteuerpflichtigerBetragLokal * ROW("RK_SteuersatzProzent") * 100) / 100
TRD_INVOICE.RechnungsbetragLokal = TRD_INVOICE.SteuerpflichtigerBetragLokal + TRD_INVOICE.SteuerfreierBetragLokal + TRD_INVOICE.SteuerbetragLokal
' Basis zur Feststellung von Rundungsdifferenzen schaffen.
TRD_INVOICE.SteuerpflichtigerBetragLokal = 0
TRD_INVOICE.SteuerfreierBetragLokal = 0
TRD_INVOICE.SteuerbetragLokal = 0
@@ -485,6 +496,12 @@ Class TrdInvoice_FUNCTIONS
TRD_INVOICE.Abgleich_op_debitor = 0
TRD_INVOICE.Nettozahlungsziel = ROW("RK_Nettozahlungsziel")
TRD_INVOICE.Firma_ID = ROW("RK_Firma_ID")
TRD_INVOICE.BV = 0
TRD_INVOICE.Source = ROW("Source")
If TRD_INVOICE.FilialenNr = 4813 AndAlso TRD_INVOICE.Firma_ID = 7 Then
TRD_INVOICE.BV = 1
End If
If dtVZ IsNot Nothing AndAlso dtVZ.Rows.Count > 0 Then
For Each VZ_ROW In dtVZ.Rows
@@ -503,16 +520,30 @@ Class TrdInvoice_FUNCTIONS
' Buchungstext &= " / nicht verzinsen"
ElseIf Buchungstext <> "" AndAlso Buchungstext.Contains("Zahlungen") Then
Buchungstext = Buchungstext.Replace("Zahlungen", "Zinsen")
End If
If TRD_INVOICE.Source = "KB" Then
Select Case TRD_INVOICE.BelegartenNr
Case "30" : Buchungstext &= " Ausgabe-LG"
Case "31" : Buchungstext &= " Einnahme-LG"
End Select
End If
If TRD_INVOICE.SAVE Then
If TrdinSchreibenProduct(TRD_INVOICE.Rechnungsdatum, ROW("RK_RechnungsNr"), TRD_INVOICE.Rechnungsnummer, RK_Währungscode, ROW("RK_RechnungsLandKz"), Buchungstext, TRD_INVOICE.Firma_ID, lngSatzzähler, WährungsdifferenzSteuerpflichtigerBetrag, WährungsdifferenzSteuerfreierBetrag, Buchungsjahr, TRD_INVOICE.VZ) Then
'UPDATE rechnugnsausgang
Dim firmaTmpsql = If(Firma > 0, " AND Firma_ID= '" & Firma & "' ", "")
Dim buchungsjahrTmpsql = If(Buchungsjahr > 0, " AND Buchungsjahr= '" & Buchungsjahr & "' ", "")
SQL.doSQL("UPDATE [Rechnungsausgang] SET [Trdin] = 1 WHERE convert(date,[RechnungsDatum] ,104) = '" & TRD_INVOICE.Rechnungsdatum.ToShortDateString & "' AND RechnungsNr = " & ROW("RK_RechnungsNr") & firmaTmpsql & buchungsjahrTmpsql, "FMZOLL")
If TRD_INVOICE.Source = "RE" Then
If TrdinSchreibenProduct(TRD_INVOICE.Rechnungsdatum, ROW("RK_RechnungsNr"), TRD_INVOICE.Rechnungsnummer, RK_Währungscode, ROW("RK_RechnungsLandKz"), Buchungstext, TRD_INVOICE.Firma_ID, lngSatzzähler, WährungsdifferenzSteuerpflichtigerBetrag, WährungsdifferenzSteuerfreierBetrag, Buchungsjahr, TRD_INVOICE.VZ, False) Then
Dim firmaTmpsql = If(Firma > 0, " AND Firma_ID= '" & Firma & "' ", "")
Dim buchungsjahrTmpsql = If(Buchungsjahr > 0, " AND Buchungsjahr= '" & Buchungsjahr & "' ", "")
SQL.doSQL("UPDATE [Rechnungsausgang] SET [Trdin] = 1 WHERE convert(date,[RechnungsDatum] ,104) = '" & TRD_INVOICE.Rechnungsdatum.ToShortDateString & "' AND RechnungsNr = " & ROW("RK_RechnungsNr") & firmaTmpsql & buchungsjahrTmpsql, "FMZOLL")
End If
ElseIf TRD_INVOICE.Source = "KB" Then
If TrdinSchreibenProduct(TRD_INVOICE.Rechnungsdatum, ROW("RK_RechnungsNr"), TRD_INVOICE.Rechnungsnummer, RK_Währungscode, ROW("RK_RechnungsLandKz"), Buchungstext, TRD_INVOICE.Firma_ID, lngSatzzähler, WährungsdifferenzSteuerpflichtigerBetrag, WährungsdifferenzSteuerfreierBetrag, Buchungsjahr, TRD_INVOICE.VZ, True) Then
SQL.doSQL("UPDATE [tblKassenbuch] SET [Trdin] = 1 WHERE tblKassenbuch.Mandant='VERA' and tblKassenbuch.Niederlassung='SUA' And Konto=5033 AND convert(date,[BelegDat] ,104) = '" & TRD_INVOICE.Rechnungsdatum.ToShortDateString & "' AND BelegNr = " & ROW("RK_RechnungsNr"), "FMZOLL")
End If
End If
End If
End If
Next
@@ -533,12 +564,21 @@ Class TrdInvoice_FUNCTIONS
Shared Function TrdinSchreibenProduct(RechnungsDatum, RK_RechnungsNr, TRD_RechnungsNr, RK_Währungscode, RK_RechnungsLandKz, RK_Buchungstext, RK_Firma_ID, ByRef lngSatzzähler, ByRef WährungsdifferenzSteuerpflichtigerBetrag, ByRef WährungsdifferenzSteuerfreierBetrag, Buchungsjahr, isVZ) As Boolean
Shared Function TrdinSchreibenProduct(RechnungsDatum, RK_RechnungsNr, TRD_RechnungsNr, RK_Währungscode, RK_RechnungsLandKz, RK_Buchungstext, RK_Firma_ID, ByRef lngSatzzähler, ByRef WährungsdifferenzSteuerpflichtigerBetrag, ByRef WährungsdifferenzSteuerfreierBetrag, Buchungsjahr, isVZ, isBV) As Boolean
Try
Dim LOKALWÄHRUNG = "EUR"
Dim dt As DataTable = SQL.loadDgvBySql(getSQLString_SELECTForTrdProduct(RechnungsDatum, RK_RechnungsNr, RK_Firma_ID, Buchungsjahr), "FMZOLL")
Dim dt As DataTable
If isBV Then
dt = SQL.loadDgvBySql(getSQLString_SELECTForTrdProduct_Barverkauf(RechnungsDatum, RK_RechnungsNr, RK_Firma_ID, Buchungsjahr), "FMZOLL")
Else
dt = SQL.loadDgvBySql(getSQLString_SELECTForTrdProduct(RechnungsDatum, RK_RechnungsNr, RK_Firma_ID, Buchungsjahr), "FMZOLL")
End If
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
For Each ROW In dt.Rows
Dim TRD_PRODUCT As New VERAG_PROG_ALLGEMEIN.cTrdProduct()
@@ -576,7 +616,6 @@ Class TrdInvoice_FUNCTIONS
End If
End If
TRD_PRODUCT.Leistungsnummer = ROW("RP_LeistungsNr")
TRD_PRODUCT.Leistungsbezeichnung = ROW("RP_LeistungsBez")
TRD_PRODUCT.Steuerpflichtig = ROW("RP_Steuerpflichtig")
@@ -584,6 +623,17 @@ Class TrdInvoice_FUNCTIONS
TRD_PRODUCT.Sachkonto = getSachkonto(RK_Firma_ID, ROW("RP_LeistungsNr"), RK_RechnungsLandKz, ROW("RP_Steuerpflichtig"), ROW("AufschubkontoNr"))
TRD_PRODUCT.Buchungstext = RK_Buchungstext
If TRD_PRODUCT.Buchungstext.ToString.Contains("Pos. ") Then
TRD_PRODUCT.Buchungstext = TRD_PRODUCT.Buchungstext.ToString.Replace("Pos. ", "")
End If
If TRD_PRODUCT.Buchungstext IsNot Nothing AndAlso TRD_PRODUCT.Buchungstext.Length > 35 Then
TRD_PRODUCT.Buchungstext = TRD_PRODUCT.Buchungstext.ToString.Replace("Pos. ", "")
TRD_PRODUCT.Buchungstext = TRD_PRODUCT.Buchungstext.Substring(0, Math.Min(35, TRD_PRODUCT.Buchungstext.Length))
End If
If isVZ > 0 Then
Select Case ROW("RP_LeistungsNr")
Case "123", "124", "125", "126", "128", "117", "118", "119"
@@ -596,7 +646,11 @@ Class TrdInvoice_FUNCTIONS
End If
If isBV Then
TRD_PRODUCT.Source = "KB"
Else
TRD_PRODUCT.Source = "RE"
End If
TRD_PRODUCT.SAVE()
Next
@@ -706,7 +760,7 @@ Class TrdInvoice_FUNCTIONS
getSachkonto = CInt(getSachkonto)
End Function
Shared Function getSQLString_SELECTForTrdInvoice(Optional Firma As Integer = -1, Optional Buchungsjahr As Integer = -1)
Shared Function getSQLString_SELECTForTrdInvoice(Optional Firma As Integer = -1, Optional Buchungsjahr As Integer = -1, Optional WithOrderClause As Boolean = True)
getSQLString_SELECTForTrdInvoice = "SELECT Rechnungsausgang.RechnungsDatum AS RK_RechnungsDatum, Rechnungsausgang.RechnungsNr AS RK_RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum) AS RK_Abfertigungsdatum, min(Rechnungsausgang.FilialenNr) AS RK_FilialenNr,
min(Rechnungsausgang.AbfertigungsNr) AS RK_AbfertigungsNr, min(Rechnungsausgang.UnterNr) AS RK_UnterNr, min(Rechnungsausgang.BelegartenNr) AS RK_BelegartenNr,
case when min(Firma_ID)=19 and min(Rechnungsausgang.FilialenNr) = 8001 and min(Rechnungsausgang.OffertenNr) = 95 then
@@ -720,14 +774,51 @@ Class TrdInvoice_FUNCTIONS
Sum(RechnungsausgangPositionen.SteuerfreierBetrag) AS RK_SteuerfreierBetrag
, (Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag)*min(Rechnungsausgang.[Steuersatz %])*100)/100 AS RK_Steuerbetrag,
Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag)+Sum(RechnungsausgangPositionen.SteuerfreierBetrag)+((Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag)*min(Rechnungsausgang.[Steuersatz %])*100)/100) AS RK_Rechnungsbetrag,
Count(1) AS RK_Satzzähler, '' as VZ
Count(1) AS RK_Satzzähler, '' as VZ, 0 as BV, 'RE' as Source
FROM Rechnungsausgang INNER JOIN RechnungsausgangPositionen ON Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID
WHERE (((Rechnungsausgang.RechnungsDatum) Is Not Null) AND ((Rechnungsausgang.RechnungsNr) Is Not Null) AND ((Rechnungsausgang.Trdin)=0)) " & If(Firma > 0, " and Firma_ID=" & Firma, "") & If(Buchungsjahr > 0, " and Buchungsjahr=" & Buchungsjahr, "") & "
GROUP BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr
ORDER BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum), min(Rechnungsausgang.FilialenNr), min(Rechnungsausgang.AbfertigungsNr), min(Rechnungsausgang.UnterNr);"
GROUP BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr"
If WithOrderClause Then
getSQLString_SELECTForTrdInvoice &= " ORDER BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum), min(Rechnungsausgang.FilialenNr), min(Rechnungsausgang.AbfertigungsNr), min(Rechnungsausgang.UnterNr);"
End If
'" & If(Firma = 4, " and Rechnungsausgang.RechnungsNr='23800029'", "") & "
End Function
Shared Function getSQLString_SELECTForTrdInvoice_Barverkauf(Mandant As String, Niederlassung As String, Konto As Integer, Optional Buchungsjahr As Integer = -1, Optional WithOrderClause As Boolean = True) 'NUR LEIHGELD-KASE ATILLA!
getSQLString_SELECTForTrdInvoice_Barverkauf = " select
max(tblKassenbuch.BelegDat) as RK_RechnungsDatum,max(tblKassenbuch.rksv_BelegId) as RK_RechnungsNr,max(tblKassenbuch.BelegDat) AS RK_Abfertigungsdatum, min([tblEABelegnummer].FilialenNr) as RK_FilialenNr, min([tblEABelegnummer].AbfertigungsNr) AS RK_AbfertigungsNr, min(tblKassenbuch.UnterNr) AS RK_UnterNr,
case when SUM(soll) > 0 then
'31' --Einnahme
else
'30' -- Ausgabe
end as RK_BelegartenNr,
ISNULL(MIN(Buchungstext), '') + ' ' +ISNULL(MIN([LKW Kennzeichen]), '') + ' ' +ISNULL(MIN(Fahrer), '') AS RK_Buchungstext,
case when SUM(soll) > 0 then
MIN(KundenNr)
else
2700
end as RK_KundenNrZentrale,
0 AS RK_RechnungsKundenNr, 'AT' AS RK_RechnungsLandKz, '' AS RK_RechnungsUstIdKz,
''AS RK_RechnungsUstIdNr, 0 AS RK_Lastschrift, 0 AS RK_Steuerschlüssel, 0 AS RK_SteuersatzProzent, 'EUR' AS RK_Währungscode,
0 AS RK_Nettozahlungsziel, 7 as Firma_ID,0 AS RK_SteuerpflichtigerBetrag, (SUM(soll) + SUM(haben)) AS RK_SteuerfreierBetrag,
0 AS RK_Steuerbetrag, (SUM(soll) + SUM(haben)) AS RK_Rechnungsbetrag,Count(1) AS RK_Satzzähler,'' as VZ,1 as BV,'KB' as Source
FROM [tblKassenbuch]
inner join [tblEABelegnummer] on [tblEABelegnummer].Mandant=tblKassenbuch.Mandant AND [tblEABelegnummer].Niederlassung=tblKassenbuch.Niederlassung AND [tblEABelegnummer].Benutzer=tblKassenbuch.Benutzer AND [tblEABelegnummer].BelegDat=tblKassenbuch.BelegDat AND [tblEABelegnummer].BelegNr=tblKassenbuch.BelegNr
WHERE tblKassenbuch.Mandant='" & Mandant & "' and tblKassenbuch.Niederlassung='" & Niederlassung & "' And Konto= " & Konto & " and Trdin = 0 " & If(Buchungsjahr > 0, " and Year(cast(Buchungsdatum as date)) =" & Buchungsjahr, "") & "
group by tblKassenbuch.rksv_BelegId, KundenNr"
If WithOrderClause Then
getSQLString_SELECTForTrdInvoice_Barverkauf &= " ORDER BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum), min(Rechnungsausgang.FilialenNr), min(Rechnungsausgang.AbfertigungsNr), min(Rechnungsausgang.UnterNr);"
End If
End Function
Shared Function getSQLString_SELECT_VZ(Optional Firma As Integer = -1, Optional Buchungsjahr As Integer = -1)
getSQLString_SELECT_VZ = "SELECT Rechnungsausgang.RechnungsDatum AS RK_RechnungsDatum, Rechnungsausgang.RechnungsNr AS RK_RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum) AS RK_Abfertigungsdatum, min(Rechnungsausgang.FilialenNr) AS RK_FilialenNr,
min(Rechnungsausgang.AbfertigungsNr) AS RK_AbfertigungsNr, min(Rechnungsausgang.UnterNr) AS RK_UnterNr, min(Rechnungsausgang.BelegartenNr) AS RK_BelegartenNr,max(CONVERT(int,isnull(tblUStVPositionen.UStVPo_VZ,0))) as VZ, MAX(isnull(tblUStVPositionen.UStVAn_ID,0)) as AntragsID
@@ -749,4 +840,40 @@ Class TrdInvoice_FUNCTIONS
HAVING (((Rechnungsausgang.RechnungsDatum)='" & RechnungsDatum.ToShortDateString & "') AND ((Rechnungsausgang.RechnungsNr)=" & RechnungsNr & ")) " & If(Firma > 0, " and Rechnungsausgang.Firma_ID=" & Firma, "") & If(Buchungsjahr > 0, " and Rechnungsausgang.Buchungsjahr=" & Buchungsjahr, "") & "
ORDER BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, RechnungsausgangPositionen.LeistungsNr, RechnungsausgangPositionen.LeistungsBez, RechnungsausgangPositionen.Steuerpflichtig;"
End Function
Shared Function getSQLString_SELECTForTrdProduct_Barverkauf(RechnungsDatum As Date, RechnungsNr As Integer, Optional Firma As Integer = -1, Optional Buchungsjahr As Integer = -1)
getSQLString_SELECTForTrdProduct_Barverkauf = " select max(BelegDat) as RK_RechnungsDatum,max(rksv_BelegId) as RK_RechnungsNr,max(BelegDat) AS RK_Abfertigungsdatum, min(FilialenNr) as RK_FilialenNr, min(AbfertigungsNr) AS RK_AbfertigungsNr, min(UnterNr) AS RK_UnterNr,
case when SUM(soll) > 0 then
'Einnahme-LG'
else
'Ausgabe-LG'
end as RP_LeistungsBez,
0 as RP_Steuerpflichtig,
min(Buchungstext) as RK_Buchungstext,
110 as RP_LeistungsNr,
0 AS RK_KundenNrZentrale,
0 AS RK_RechnungsKundenNr,
'AT' AS RK_RechnungsLandKz,
'' AS RK_RechnungsUstIdKz,
''AS RK_RechnungsUstIdNr,
0 AS RK_Lastschrift,
0 AS RK_Steuerschlüssel,
0 AS RK_SteuersatzProzent,
'EUR' AS RK_Währungscode,
0 AS RK_Nettozahlungsziel,
7 as Firma_ID,
0 AS RP_SteuerpflichtigerBetrag,
(SUM(soll) + SUM(haben)) AS RP_SteuerfreierBetrag,
0 AS RK_Steuerbetrag,
(SUM(soll) + SUM(haben)) AS RK_Rechnungsbetrag,
Count(1) AS RP_Satzzähler,
'' as VZ,
1 as BV,
'KB' as Source,
'' as RP_Belegdaten,
'' as AufschubkontoNr
FROM [tblKassenbuch] where tblKassenbuch.Mandant='VERA' and tblKassenbuch.Niederlassung='SUA' And Konto=5033
group by rksv_BelegId
HAVING max(BelegDat)='" & RechnungsDatum.ToShortDateString & "' AND rksv_BelegId=" & RechnungsNr
End Function
End Class

View File

@@ -1,5 +1,6 @@
Imports System.Text.RegularExpressions
Imports sun.util.resources.cldr.ve
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
Public Class cSyska_Interface
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
@@ -295,7 +296,7 @@ Public Class cSyska_Interface
'DATEIPFAD für Buchungsdaten
'-------------------------------------------------------------------------------------------
Dim pathArchiv = "\\datenarchiv\Datenarchiv\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
Dim path = "\\fmzoll\f\FMZoll\FiBu\Syska\" & FIRMA.Firma_ID & "\"
Dim path = "\\syncluster01.verag.ost.dmn\F\BUCHHALTUNG\FIBU\Syska\" & FIRMA.Firma_ID & "\"
'pathKD = pathArchivKD 'TEST
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
@@ -314,89 +315,27 @@ Public Class cSyska_Interface
'----------------- Buchungssätze -----------------
If True Then 'boolBuchungen Then
If WdhDateiname = "" AndAlso Not ambargubuchungen Then TrdInvoice_FUNCTIONS.TrdinSchreiben(FIRMA.Firma_ID) 'Lädt die Daten aus der Tabelle Rechnungsausgang in die Tabelle trdInvoice (nur für 20 = IMEX )
Dim dt_Buchungen As DataTable = getBuchungen(FIRMA.Firma_ID, WdhDateiname, ambargubuchungen, ambarKreditor)
Dim dt_Buchungen_ALL As DataTable = getBuchungen(FIRMA.Firma_ID, WdhDateiname, ambargubuchungen, ambarKreditor)
' MsgBox(WdhDateiname & " - " & dt_Buchungen.Rows.Count)
If dt_Buchungen IsNot Nothing AndAlso dt_Buchungen.Rows.Count > 0 Then
If dt_Buchungen_ALL IsNot Nothing AndAlso dt_Buchungen_ALL.Rows.Count > 0 Then
Dim ROWS_BV = dt_Buchungen_ALL.AsEnumerable().Where(Function(r) r.Field(Of Boolean)("BV") = True)
Dim ROWS_not_BV = dt_Buchungen_ALL.AsEnumerable().Where(Function(r) r.Field(Of Boolean)("BV") = False)
Dim dt_Buchungen_BV As DataTable = If(ROWS_BV.Any(), ROWS_BV.CopyToDataTable(), dt_Buchungen_ALL.Clone())
Dim dt_Buchungen As DataTable = If(ROWS_not_BV.Any(), ROWS_not_BV.CopyToDataTable(), dt_Buchungen_ALL.Clone())
Try
Dim file As System.IO.StreamWriter
Dim Dateiname = IIf(ambargubuchungen, "GS_AMBAR_" & ambarKreditor & "_", "AVISO_BUBE_") & Now.ToString("ddMMyyyy_HHmm") & ".txt"
file = My.Computer.FileSystem.OpenTextFileWriter(path & Dateiname, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
' initKDNr(dt_Buchungen)
Dim SummeBuchungen As Double = 0
'file.WriteLine(genBuchungenBeginn()) 'not needed
For Each r In dt_Buchungen.Rows
Dim curDifferenzbetrag As Double = 0
If r("WährungFremd") Is DBNull.Value Then
curDifferenzbetrag = Math.Round(If(r("RechnungsbetragLokal") < 0, 0 - r("RechnungsbetragLokal"), r("RechnungsbetragLokal")), 2)
Else
curDifferenzbetrag = Math.Round(If(r("RechnungsbetragFremd") < 0, 0 - r("RechnungsbetragFremd"), r("RechnungsbetragFremd")), 2)
End If
If r("BelegartenNr") = 70 Or ambargubuchungen And r("BelegartenNr") = 71 Then 'RECHNUNG ---> Immer am Anfang
file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, FIRMA, ambargubuchungen))
End If
Dim dt_BuchungenZeilen As DataTable
If Not ambargubuchungen Then
dt_BuchungenZeilen = getBuchungenZeilen(FIRMA.Firma_ID, r("Rechnungsnummer"), r("Rechnungsdatum"), WdhDateiname)
Else
dt_BuchungenZeilen = getBuchungenZeilenAMBAR(r("Rechnungsnummer"), r("Rechnungsdatum"), WdhDateiname)
End If
If dt_BuchungenZeilen IsNot Nothing AndAlso dt_BuchungenZeilen.Rows.Count > 0 Then
For Each rz In dt_BuchungenZeilen.Rows
file.WriteLine(genBuchungsZeile(rz, SummeBuchungen, Geschaeftsjahr, FIRMA, curDifferenzbetrag, ambargubuchungen, r("Buchungstext"))) ' BuchungsZeilen...
Next
End If
If curDifferenzbetrag <> 0 Then 'Differenz --> Ausgelich auf Diff.Konto
file.WriteLine(genBuchungsZeileDiffBetrag(r, SummeBuchungen, Geschaeftsjahr, FIRMA, curDifferenzbetrag))
End If
If r("BelegartenNr") = 71 And Not ambargubuchungen Then 'GUTSCHRIFT ---> Immer am Schluss
file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, FIRMA, ambargubuchungen))
End If
Next
For Each r In dt_Buchungen.Rows
If r("VZ") = 1 Then
file.WriteLine(genBuchungsZeileVZ(r, SummeBuchungen, Geschaeftsjahr, FIRMA, ambargubuchungen))
End If
Next
' file.WriteLine(genBuchungenEnd(SummeBuchungen))
bool_DatenVorhanden = True
'Update Filename TrdIn 'NOCH NICHT!!!! -->JETZT DOCH!!!
Dim varDateiname As String = IIf(ambargubuchungen, "AmbDateiname", "TrdinDateiname")
Dim whereAmbarBuchungen As String = ""
If ambargubuchungen And ambarKreditor = "AG" Then
whereAmbarBuchungen = "AND RechnungsKundenNr = 3013401 and RechnungsUstIdNr = 'U53187000' And BelegartenNr = 71"
ElseIf ambargubuchungen And ambarKreditor = "CS" Then
whereAmbarBuchungen = "AND RechnungsKundenNr = 3017683 and RechnungsUstIdNr = 'U68374109' And BelegartenNr = 71"
'2 Dateien Belege betreffend BV und andere Belege
If dt_Buchungen.Rows.Count > 0 Then
createBuchungszeilen(dt_Buchungen, ambargubuchungen, FIRMA, WdhDateiname, Geschaeftsjahr, path, pathArchiv, ambarKreditor, bool_DatenVorhanden, OpenFile, False)
End If
If dt_Buchungen_BV.Rows.Count > 0 Then
createBuchungszeilen(dt_Buchungen_BV, ambargubuchungen, FIRMA, WdhDateiname, Geschaeftsjahr, path, pathArchiv, ambarKreditor, bool_DatenVorhanden, OpenFile, True)
End If
If WdhDateiname = "" Then
SQL.doSQL("update [tblTrdinInvoice] Set " & varDateiname & "='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND " & varDateiname & " is null " & whereAmbarBuchungen, "FMZOLL")
Else
SQL.doSQL("update [tblTrdinInvoice] Set " & varDateiname & "='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND " & varDateiname & " ='" & WdhDateiname & "' " & whereAmbarBuchungen, "FMZOLL")
End If
file.Close()
'In Archiv sichern
If pathArchiv <> "" Then
If Not System.IO.Directory.Exists(pathArchiv) Then System.IO.Directory.CreateDirectory(pathArchiv)
If path <> pathArchiv Then System.IO.File.Copy(path & Dateiname, pathArchiv & Dateiname)
End If
If bool_DatenVorhanden Then
If OpenFile Then Process.Start(path & Dateiname)
Else
System.IO.File.Delete(path & Dateiname)
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL)
@@ -414,6 +353,93 @@ Public Class cSyska_Interface
Return False
End Function
Private Shared Function createBuchungszeilen(dt As DataTable, ambargubuchungen As Boolean, firma As cFirmen, WdhDateiname As String, Geschaeftsjahr As Integer, path As String, pathArchiv As String, ambarKreditor As String, bool_DatenVorhanden As Boolean, OpenFile As Boolean, onlyBarverkauf As Boolean)
Dim file As System.IO.StreamWriter
Dim Dateiname = IIf(ambargubuchungen, "GS_AMBAR_" & ambarKreditor & "_", "AVISO_BUBE_") & IIf(onlyBarverkauf, "BV_", "") & Now.ToString("ddMMyyyy_HHmm") & ".txt"
file = My.Computer.FileSystem.OpenTextFileWriter(path & Dateiname, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
Dim SummeBuchungen As Double = 0
For Each r In dt.Rows
If r("Buchungstext").ToString.Contains("26000033") Then
Dim test As String = ""
End If
Dim curDifferenzbetrag As Double = 0
If r("WährungFremd") Is DBNull.Value Then
curDifferenzbetrag = Math.Round(If(r("RechnungsbetragLokal") < 0, 0 - r("RechnungsbetragLokal"), r("RechnungsbetragLokal")), 2)
Else
curDifferenzbetrag = Math.Round(If(r("RechnungsbetragFremd") < 0, 0 - r("RechnungsbetragFremd"), r("RechnungsbetragFremd")), 2)
End If
If (r("BelegartenNr") = 70 Or ambargubuchungen And r("BelegartenNr") = 71) Then 'RECHNUNG ---> Immer am Anfang
file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, firma, ambargubuchungen))
End If
Dim dt_BuchungenZeilen As DataTable
If Not ambargubuchungen Then
dt_BuchungenZeilen = getBuchungenZeilen(firma.Firma_ID, r("Rechnungsnummer"), r("Rechnungsdatum"), r("Source"), WdhDateiname)
Else
dt_BuchungenZeilen = getBuchungenZeilenAMBAR(r("Rechnungsnummer"), r("Rechnungsdatum"), r("Source"), WdhDateiname)
End If
If dt_BuchungenZeilen IsNot Nothing AndAlso dt_BuchungenZeilen.Rows.Count > 0 Then
For Each rz In dt_BuchungenZeilen.Rows
file.WriteLine(genBuchungsZeile(rz, SummeBuchungen, Geschaeftsjahr, firma, curDifferenzbetrag, ambargubuchungen, r("Buchungstext"))) ' BuchungsZeilen...
Next
End If
If curDifferenzbetrag <> 0 AndAlso Not (r("BelegartenNr") = 31 Or r("BelegartenNr") = 30) Then 'Differenz --> Ausgelich auf Diff.Konto -> nicht bei EINZAHLUNGEN/AUSZAHLUNGEN
file.WriteLine(genBuchungsZeileDiffBetrag(r, SummeBuchungen, Geschaeftsjahr, firma, curDifferenzbetrag))
End If
If (r("BelegartenNr") = 71 Or r("BelegartenNr") = 31 Or r("BelegartenNr") = 30) And Not ambargubuchungen Then 'GUTSCHRIFT|EINNAHNE|AUSGABE ---> Immer am Schluss
file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, firma, ambargubuchungen))
End If
Next
For Each r In dt.Rows
If r("VZ") = 1 Then
file.WriteLine(genBuchungsZeileVZ(r, SummeBuchungen, Geschaeftsjahr, firma, ambargubuchungen))
End If
Next
bool_DatenVorhanden = True
Dim varDateiname As String = IIf(ambargubuchungen, "AmbDateiname", "TrdinDateiname")
Dim whereAmbarBuchungen As String = ""
If ambargubuchungen And ambarKreditor = "AG" Then
whereAmbarBuchungen = "AND RechnungsKundenNr = 3013401 and RechnungsUstIdNr = 'U53187000' And BelegartenNr = 71"
ElseIf ambargubuchungen And ambarKreditor = "CS" Then
whereAmbarBuchungen = "AND RechnungsKundenNr = 3017683 and RechnungsUstIdNr = 'U68374109' And BelegartenNr = 71"
End If
If WdhDateiname = "" Then
SQL.doSQL("update [tblTrdinInvoice] Set " & varDateiname & "='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & firma.Firma_ID & " AND " & varDateiname & " is null and isnull(BV, 0) = " & IIf(onlyBarverkauf, "1", "0") & whereAmbarBuchungen, "FMZOLL")
Else
SQL.doSQL("update [tblTrdinInvoice] Set " & varDateiname & "='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & firma.Firma_ID & " AND " & varDateiname & " ='" & WdhDateiname & "' and isnull(BV, 0) = " & IIf(onlyBarverkauf, "1", "0") & whereAmbarBuchungen, "FMZOLL")
End If
file.Close()
If pathArchiv <> "" Then
If Not System.IO.Directory.Exists(pathArchiv) Then System.IO.Directory.CreateDirectory(pathArchiv)
If path <> pathArchiv Then System.IO.File.Copy(path & Dateiname, pathArchiv & Dateiname)
End If
If bool_DatenVorhanden Then
If OpenFile Then Process.Start(path & Dateiname)
Else
System.IO.File.Delete(path & Dateiname)
End If
End Function
'Public Shared Function genDatensatz_BuchungenTEST(ByRef Firma_ID As Integer, Optional OpenFile As Boolean = False) As Boolean ' Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True ) As Boolean
' Try
' Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(Firma_ID)
@@ -549,11 +575,11 @@ Public Class cSyska_Interface
,min(WährungFremd) as WährungFremd,min(SteuerbetragFremd) as SteuerbetragFremd,min(RechnungsbetragFremd) as RechnungsbetragFremd,min(TrdinDateiname) as TrdinDateiname,min(Abgleich_op_debitor+0) as Abgleich_op_debitor
,min(Nettozahlungsziel) as Nettozahlungsziel,min(Firma_ID) as Firma_ID,min(UStVAn_ID) as UStVAn_ID /*,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig*/,sum(PROD.SteuerpflichtigerBetragLokal) as SteuerpflichtigerBetragLokal
,sum(PROD.SteuerfreierBetragLokal) as SteuerfreierBetragLokal,sum(PROD.SteuerpflichtigerBetragFremd) as SteuerpflichtigerBetragFremd,sum(PROD.SteuerfreierBetragFremd) as SteuerfreierBetragFremd,min(Belegdaten) as Belegdaten
,min(Sachkonto) as Sachkonto,min(Buchungstext) as Buchungstext,Sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal]) As BetragLokal, Sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd]) As BetragFremd, MAX(VZ) as VZ, SUM(isnull(PROD.VZBetrag,0)) as VZBetrag
,min(Sachkonto) as Sachkonto,min(Buchungstext) as Buchungstext,Sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal]) As BetragLokal, Sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd]) As BetragFremd, MAX(VZ) as VZ, SUM(isnull(PROD.VZBetrag,0)) as VZBetrag, IVO.BV, IVO.Source
FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum=PROD.Rechnungsdatum
FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum=PROD.Rechnungsdatum and IVO.Source = PROD.Source
" & where & "
group by Firma_id, IVO.Rechnungsnummer,IVO.rechnungsdatum/*,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig*/
group by Firma_id, IVO.Rechnungsnummer,IVO.rechnungsdatum, IVO.BV, IVO.Source/*,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig*/
ORDER BY IVO.Rechnungsdatum, IVO.Rechnungsnummer "
' --and IVO.Rechnungsnummer=19400002
Return SQL.loadDgvBySql(sqlStr, "FMZOLL", 9800)
@@ -597,32 +623,32 @@ Public Class cSyska_Interface
'End Function
Shared Function getBuchungenZeilen(Firma_ID As Integer, Rechnungsnummer As Integer, Rechnungsdatum As Date, Optional WdhDateiname As String = "") As DataTable
Shared Function getBuchungenZeilen(Firma_ID As Integer, Rechnungsnummer As Integer, Rechnungsdatum As Date, Source As String, Optional WdhDateiname As String = "") As DataTable
Dim sqlStr = " SELECT Sachkonto,IVO.Rechnungsdatum Rechnungsdatum,IVO.Rechnungsnummer Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,steuerpflichtig,[Steuersatz %] Steuersatz,BelegartenNr,
WährungFremd, WährungLokal,sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal])BetragLokal,
sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd])BetragFremd ,sum(RechnungsbetragLokal) RechnungsbetragLokal,sum(RechnungsbetragFremd) RechnungsbetragFremd
FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum = PROD.Rechnungsdatum
WHERE Firma_ID ='" & Firma_ID & "' AND IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND " & If(WdhDateiname = "", " TrdinDateiname Is Null ", " TrdinDateiname ='" & WdhDateiname & "' ") & "
GROUP BY Sachkonto,IVO.Rechnungsdatum,IVO.Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,steuerpflichtig,[Steuersatz %] ,BelegartenNr,WährungFremd,WährungLokal
ORDER BY Rechnungsdatum, Rechnungsnummer "
sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd])BetragFremd ,sum(RechnungsbetragLokal) RechnungsbetragLokal,sum(RechnungsbetragFremd) RechnungsbetragFremd, IVO.Source
FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum = PROD.Rechnungsdatum and IVO.Source = PROD.Source
WHERE Firma_ID ='" & Firma_ID & "' AND IVO.Source = '" & Source & "' AND IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND " & If(WdhDateiname = "", " TrdinDateiname Is Null ", " TrdinDateiname ='" & WdhDateiname & "' ") & "
GROUP BY Sachkonto,IVO.Rechnungsdatum,IVO.Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,steuerpflichtig,[Steuersatz %] ,BelegartenNr,WährungFremd,WährungLokal, IVO.Source
ORDER BY Rechnungsdatum, Rechnungsnummer, IVO.Source "
' --and IVO.Rechnungsnummer=19400002
Return SQL.loadDgvBySql(sqlStr, "FMZOLL", 9800)
End Function
Shared Function getBuchungenZeilenAMBAR(Rechnungsnummer As Integer, Rechnungsdatum As Date, Optional WdhDateiname As String = "") As DataTable
Shared Function getBuchungenZeilenAMBAR(Rechnungsnummer As Integer, Rechnungsdatum As Date, Source As String, Optional WdhDateiname As String = "") As DataTable
Dim sqlStr = " SELECT isnull(le.SachkontoEUSteuerfrei,'0000') as Sachkonto ,IVO.Rechnungsdatum Rechnungsdatum,IVO.Rechnungsnummer Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,PROD.steuerpflichtig,[Steuersatz %] Steuersatz,BelegartenNr,
WährungFremd, WährungLokal,sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal])BetragLokal,
sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd])BetragFremd ,sum(RechnungsbetragLokal) RechnungsbetragLokal,sum(RechnungsbetragFremd) RechnungsbetragFremd
FROM VERAG.dbo.tblTrdinInvoice as IVO
left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum = PROD.Rechnungsdatum
left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum = PROD.Rechnungsdatum and IVO.Source = PROD.Source
left join [Leistungen] as le on le.LeistungsNr = PROD.Leistungsnummer
WHERE Firma_ID ='24' AND IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND " & If(WdhDateiname = "", " AmbDateiname Is Null ", " AmbDateiname ='" & WdhDateiname & "' ") & "
GROUP BY le.SachkontoEUSteuerfrei ,IVO.Rechnungsdatum,IVO.Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,PROD.steuerpflichtig,[Steuersatz %] ,BelegartenNr,WährungFremd,WährungLokal
WHERE Firma_ID ='24' AND IVO.Source = '" & Source & "' AND IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND " & If(WdhDateiname = "", " AmbDateiname Is Null ", " AmbDateiname ='" & WdhDateiname & "' ") & "
GROUP BY le.SachkontoEUSteuerfrei ,IVO.Rechnungsdatum,IVO.Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,PROD.steuerpflichtig,[Steuersatz %] ,BelegartenNr,WährungFremd,WährungLokal, IVO.Source
ORDER BY Rechnungsdatum, Rechnungsnummer "
' --and IVO.Rechnungsnummer=19400002
Return SQL.loadDgvBySql(sqlStr, "FMZOLL", 9800)
@@ -735,6 +761,79 @@ Public Class cSyska_Interface
End If
ElseIf row("BelegartenNr") = 31 Then 'Einnahme
Dim FiBuWährung = ""
Dim FiBuSollkontonummer = "0"
Dim FiBuHabenkontonummer = row("KundenNrZentrale")
Dim FiBuBruttobetrag As Double
If row("WährungFremd") Is DBNull.Value Then
FiBuWährung = row("WährungLokal")
FiBuBruttobetrag = (CDbl(row("RechnungsbetragLokal")))
Else
FiBuWährung = row("WährungFremd")
FiBuBruttobetrag = (CDbl(row("RechnungsbetragFremd")))
End If
Dim FiBuEigenbruttobetrag = CDbl(row("RechnungsbetragLokal"))
genBuchungsZeileSum = "L" & vbTab
genBuchungsZeileSum &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
genBuchungsZeileSum &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
genBuchungsZeileSum &= FiBuSollkontonummer & vbTab
genBuchungsZeileSum &= FiBuHabenkontonummer & vbTab
genBuchungsZeileSum &= IIf(row("Buchungstext") <> "" AndAlso row("Buchungstext").ToString.Contains("Zinsen"), row("Buchungstext") & vbTab, row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & vbTab)
genBuchungsZeileSum &= Format(CDbl(FiBuBruttobetrag), fmt) & vbTab
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
genBuchungsZeileSum &= FiBuWährung & vbTab
genBuchungsZeileSum &= Format(CDbl(FiBuEigenbruttobetrag), fmt) & vbTab
ElseIf row("BelegartenNr") = 30 Then 'Ausgabe
Dim FiBuSollkontonummer = "0"
Dim FiBuHabenkontonummer = row("KundenNrZentrale") '2700
Dim Bruttobetrag As Double
Dim FiBuWährung = ""
If row("WährungFremd") Is DBNull.Value Then
Bruttobetrag = row("RechnungsbetragLokal") 'Bruttobetrag
Else
Bruttobetrag = row("RechnungsbetragFremd") 'Bruttobetrag
End If
If row("WährungFremd") Is DBNull.Value Then
FiBuWährung = row("WährungLokal")
Else
FiBuWährung = row("WährungFremd")
End If
Dim FiBuEigenbruttobetrag = row("RechnungsbetragLokal")
genBuchungsZeileSum = "L" & vbTab
genBuchungsZeileSum &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
genBuchungsZeileSum &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
genBuchungsZeileSum &= FiBuSollkontonummer & vbTab
genBuchungsZeileSum &= FiBuHabenkontonummer & vbTab
'genBuchungsZeileSum &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & vbTab
genBuchungsZeileSum &= IIf(row("Buchungstext") <> "" AndAlso row("Buchungstext").ToString.Contains("Zinsen"), row("Buchungstext") & vbTab, row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & vbTab)
genBuchungsZeileSum &= Format(CDbl(Bruttobetrag), fmt) & vbTab
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
genBuchungsZeileSum &= FiBuWährung & vbTab
genBuchungsZeileSum &= Format(CDbl(FiBuEigenbruttobetrag), fmt) & vbTab
End If
@@ -752,11 +851,11 @@ Public Class cSyska_Interface
Dim FiBuSteuerbetrag As String
Dim FiBuSollkontonummer As Integer
Dim FiBuHabenkontonummer As Integer
Dim FiBuWährung = "EUR"
Select Case row("BelegartenNr")
Case 70 'Rechnung
Case 70 'Rechnung
FiBuSollkontonummer = "0"
FiBuHabenkontonummer = If(row("Sachkonto") IsNot DBNull.Value AndAlso IsNumeric(row("Sachkonto")), row("Sachkonto"), 0)
If row("WährungFremd") Is DBNull.Value Then
@@ -784,6 +883,28 @@ Public Class cSyska_Interface
End If
Case 31 'Einnahme
FiBuSollkontonummer = 2700 'If(row("Sachkonto") IsNot DBNull.Value AndAlso IsNumeric(row("Sachkonto")), row("Sachkonto"), 0)
FiBuHabenkontonummer = "0"
If row("WährungFremd") Is DBNull.Value Then
curNettobetrag = row("BetragLokal")
Else
curNettobetrag = row("BetragFremd")
End If
Case 30 'Ausgabe
FiBuSollkontonummer = If(row("Sachkonto") IsNot DBNull.Value AndAlso IsNumeric(row("Sachkonto")), row("Sachkonto"), 0)
FiBuHabenkontonummer = "0"
If row("WährungFremd") Is DBNull.Value Then
curNettobetrag = row("BetragLokal")
Else
curNettobetrag = row("BetragFremd")
End If
End Select
If CBool(row("steuerpflichtig")) Then
@@ -935,6 +1056,14 @@ Public Class cSyska_Interface
Case 71 'Gutschrift
FiBuSollkontonummer = "8490"
FiBuHabenkontonummer = "0"
Case 31 'Einnahme
FiBuSollkontonummer = "8490"
FiBuHabenkontonummer = "0"
Case 30 'Ausgabe
FiBuSollkontonummer = "8490"
FiBuHabenkontonummer = "0"
End Select

View File

@@ -1,6 +1,5 @@
Imports System.Data.SqlClient
Imports System.Reflection
Imports Spire.Pdf
Public Class cGesamtsicherheitsReferenz
@@ -14,6 +13,7 @@ Public Class cGesamtsicherheitsReferenz
Property gsr_Saldo As Object = Nothing
Property gsr_ATR As Boolean = False
Property gsr_standort As Object = Nothing
Property gsr_firma As Object = Nothing
Public hasEntry = False
@@ -23,11 +23,23 @@ Public Class cGesamtsicherheitsReferenz
End Sub
Sub New(_gsr_standort)
Sub New(gsr_id As Integer)
gsr_id = gsr_id
LOADID()
End Sub
Sub New(_gsr_standort As String)
gsr_standort = _gsr_standort
LOAD()
End Sub
Sub New(_gsr_standort As String, _gsr_firma As String)
gsr_standort = _gsr_standort
gsr_firma = _gsr_firma
LOAD(_gsr_firma)
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gsr_standort", gsr_standort,, True))
@@ -56,7 +68,7 @@ Public Class cGesamtsicherheitsReferenz
Return SQL.doSQLVarList(sqlstr, "AVISO", , list)
End Function
Public Sub LOAD()
Public Sub LOAD(Optional Firma As String = "")
Try
@@ -64,8 +76,41 @@ Public Class cGesamtsicherheitsReferenz
Using conn As SqlConnection = SQL.GetNewOpenConnectionAVISO()
Using cmd As New SqlCommand("SELECT * FROM tblGesamtsicherheitReferenz WHERE gsr_Standort=@gsr_standort ", conn)
Using cmd As New SqlCommand("SELECT * FROM tblGesamtsicherheitReferenz WHERE gsr_Standort=@gsr_standort " & IIf(Firma <> "", "AND gsr_firma=@gsr_firma", ""), conn)
cmd.Parameters.AddWithValue("@gsr_standort", gsr_standort)
If Firma <> "" Then cmd.Parameters.AddWithValue("@gsr_firma", gsr_firma)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
End Sub
Public Sub LOADID(Optional Firma As String = "")
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionAVISO()
Using cmd As New SqlCommand("SELECT * FROM tblGesamtsicherheitReferenz WHERE gsr_id=@gsr_id ", conn)
cmd.Parameters.AddWithValue("@gsr_id", gsr_id)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()