Merge branch 'newMaster2024' of https://git.it.verag.ag/edv/SDL into newMaster2024

This commit is contained in:
2026-04-13 13:19:20 +02:00
16 changed files with 1130 additions and 387 deletions

View File

@@ -28,6 +28,7 @@ Public Class cKassenbuch
Property rksv_BelegId As Object = Nothing
Property rksv_aktiv As Boolean = False
Property durchfuehrender_Benutzer As Integer = -1
Property Trdin As Boolean = False
Dim SQL As New SQL
@@ -104,6 +105,7 @@ 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.Trdin = cSqlDb.checkNullReturnValue(dr.Item("Trdin"), False)
@@ -150,6 +152,7 @@ Public Class cKassenbuch
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_BelegId", rksv_BelegId))
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))
Return list
End Function

View File

@@ -1,5 +1,4 @@
Imports System.IO
Imports com.sun.tools.doclets.internal.toolkit.util
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
@@ -12,7 +11,7 @@ Public Class cAutomailversand
Dim rechnungenMailversand = "SELECT RechnungsNr,RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST, max(Rechnungsausgang.[RechnungsLandKz]) as RechnungsLandKz, MitgliedslandEU, sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer FROM Rechnungsausgang
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & Sammelrechnungsdatum.ToShortDateString & "'
WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Sammelrechnungsdatum.ToShortDateString & "'
and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 " & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & "
GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU
ORDER BY RechnungsLandKz, RechnungsKundenNr"
@@ -22,35 +21,41 @@ Public Class cAutomailversand
For Each row As DataRow In dt.Rows
Dim BelegartenNr = "70"
Dim steuerbetrag As Double = 0
Dim SR_DT As DataTable = Nothing
Dim RechnungsNr As Integer = -1
Dim DruckDatumZeit As DateTime
Dim Rechnungsdatum = Nothing
Dim ATTACHMENTS As New List(Of cFakt_MailATTach)
'AKTUELL IMMER MIT KOPIE
MDMKopiedrucken = True
Dim isEU As Boolean = row.Item("MitgliedslandEU")
If FirmaID = 19 Then
If isEU Then
If row.Item("keineMWST") Then
'1. Schritt: kein MWST Kunde -> ORIGINAL-RE per Mail!
MDMKopiedrucken = Not row.Item("keineMWST")
'AKTUELL IMMER MIT KOPIE
MDMKopiedrucken = True
Dim isEU As Boolean = row.Item("MitgliedslandEU")
If isEU Then
If row.Item("keineMWST") Then
'1. Schritt: kein MWST Kunde -> ORIGINAL-RE per Mail!
MDMKopiedrucken = Not row.Item("keineMWST")
End If
'2. Schritt: MWST Kunde -> wenn kein MWST-BEtrag ->Original sonst Kopie per Mail!
If MDMKopiedrucken Then
MDMKopiedrucken = CDbl(row.Item("Steuer")) <> 0
End If
Else
'immer KOPIE weil Ausdruck aktuell noch gesendet!
End If
'2. Schritt: MWST Kunde -> wenn kein MWST-BEtrag ->Original sonst Kopie per Mail!
If MDMKopiedrucken Then
MDMKopiedrucken = CDbl(row.Item("Steuer")) <> 0
End If
Else
'immer KOPIE weil Ausdruck aktuell noch gesendet!
End If
SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, Sammelrechnungsdatum, row.Item("RechnungsKundenNr"),, , , , True)
SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, Sammelrechnungsdatum, row.Item("RechnungsKundenNr"),,,,, True)
Dim AD = New VERAG_PROG_ALLGEMEIN.cAdressen(row.Item("RechnungsKundenNr"))
Dim FISKAL = New cFiskal_Daten(row.Item("RechnungsKundenNr"))
If RechnungsNr = -1 Then
If SR_DT.Rows.Count > 0 Then
@@ -60,12 +65,16 @@ Public Class cAutomailversand
RechnungsNr = distinctDT_SR.Rows(0).Item("RechnungsNr")
DruckDatumZeit = distinctDT_SR.Rows(0).Item("DruckDatumZeit")
Rechnungsdatum = distinctDT_SR.Rows(0).Item("Rechnungsdatum")
BelegartenNr = SR_DT.Rows(0)("BelegartenNr")
For Each r In SR_DT.Rows
steuerbetrag += r("steuerpflichtigerGesamtbetrag")
If BelegartenNr <> r("BelegartenNr") Then BelegartenNr = "70" : Exit For
Next
End If
End If
End If
Dim SR As Boolean = True
Dim MailTo As String = ""
@@ -101,13 +110,14 @@ Public Class cAutomailversand
End If
'im TESTSYSTEM bewusst die Empfänger leeren!
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
MailTo = ""
MailtoCC = ""
MailtoBCC = "mmdabrechnung@verag.ag"
MailtoBCC = setAccountToSend(FirmaID)
Else
MailtoBCC = "mmdabrechnung@verag.ag"
MailtoBCC = setAccountToSend(FirmaID)
End If
@@ -119,8 +129,8 @@ Public Class cAutomailversand
Dim listPDFs As New List(Of String)
Dim showError As Boolean = False
setEmailText(row, FirmaID, RechnungsNr, Mailsubject, HTMLMail)
If doRechnung(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError) Then
setEmailText(row, FirmaID, RechnungsNr, Mailsubject, HTMLMail, SammelrechungArt, dt, BelegartenNr)
If do_SR(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError) Then
loadAndSetAnhaenge(SR_DT, ATTACHMENTS, listPDFs)
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST"
@@ -156,51 +166,99 @@ Public Class cAutomailversand
End Sub
Sub sendMailEinzelrechnung(Rechnungsdatum As Date, RechungArt As Integer, FirmaID As Integer, Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False)
Sub sendMailEinzelrechnungen(Rechnungsdatum As Date, FirmaID As Integer, Optional Sachbearbeiter As String = "", Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False)
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
Dim rechnungenMailversand = "SELECT RechnungsNr,RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST, max(Rechnungsausgang.[RechnungsLandKz]) as RechnungsLandKz, MitgliedslandEU, sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer FROM Rechnungsausgang
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "'
and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 " & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & "
GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU
ORDER BY RechnungsLandKz, RechnungsKundenNr"
Dim dt As DataTable = sql.loadDgvBySql(rechnungenMailversand, "FMZOLL")
Try
For Each r In dt.Rows
Dim MailTo As String = ""
Dim MailtoCC As String = ""
Dim MailtoBCC As String = ""
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
MailTo = ""
MailtoCC = ""
MailtoBCC = setAccountToSend(FirmaID)
Else
MailtoBCC = setAccountToSend(FirmaID)
End If
Next
Catch ex As System.Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL,,,,,,)
End Try
End Sub
Private Sub setEmailText(row As DataRow, Firma_ID As Integer, RechnungsNr As Integer, ByRef Subject As String, ByRef TextHTML As String)
Private Sub setEmailText(row As DataRow, Firma_ID As Integer, RechnungsNr As Integer, ByRef Subject As String, ByRef TextHTML As String, ByRef SammelrechungArt As Integer, dt As DataTable, ByRef BelegartenNr As Integer)
Dim txtRgNr As String = IIf(RechnungsNr < 0, -1, RechnungsNr)
Dim Mailtext As String
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(4, "", Firma_ID)
Dim spracheRechnung As String = "EN" 'Defaultsprache
If SammelrechungArt <> 6 Then
Select Case row.Item("RechnungsLandKz")
Case "TR", "RO", "DE", "SRB" : spracheRechnung = row.Item("RechnungsLandKz")
Case "A", "AT", "D", "CH", "DE" : spracheRechnung = "DE"
Case "HR", "SLO", "BIH", "MNE", "MK", "MO" : spracheRechnung = "SRB"
End Select
Subject = "VERAG Sammel-Rechnung"
TextHTML &= getSammelRgTExt(getSelectionLandKz(dt), Firma_ID)
If listOfTextconserven.LIST.Any(Function(c) c.txt_sprache = spracheRechnung) Then
Else
Dim r As cTextkonserve = listOfTextconserven.LIST.Find(Function(c) c.txt_sprache = spracheRechnung)
If r IsNot Nothing Then
Subject = r.txt_betreff
Subject = Subject.Replace("%BelegNr%", txtRgNr)
TextHTML &= r.txt_text
If Mailtext <> "" Then TextHTML &= Mailtext
TextHTML &= vbNewLine & vbNewLine
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(4, "", Firma_ID)
Dim spracheRechnung As String = "EN" 'Defaultsprache
Select Case row.Item("RechnungsLandKz")
Case "TR", "RO", "DE", "SRB" : spracheRechnung = row.Item("RechnungsLandKz")
Case "A", "AT", "D", "CH", "DE" : spracheRechnung = "DE"
Case "HR", "SLO", "BIH", "MNE", "MK", "MO" : spracheRechnung = "SRB"
End Select
If listOfTextconserven.LIST.Any(Function(c) c.txt_sprache = spracheRechnung) Then
Dim r As cTextkonserve = listOfTextconserven.LIST.Find(Function(c) c.txt_sprache = spracheRechnung)
If r IsNot Nothing Then
Subject = r.txt_betreff
Subject = Subject.Replace("%BelegNr%", txtRgNr)
TextHTML &= r.txt_text
If Mailtext <> "" Then TextHTML &= Mailtext
TextHTML &= vbNewLine & vbNewLine
End If
End If
End If
End Sub
Private Function doRechnung(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True, Optional saveInThereFore As Boolean = False, Optional showError As Boolean = True)
Private Function do_SR(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True, Optional saveInThereFore As Boolean = False, Optional showError As Boolean = True)
Dim RechnungsNrisSet As Boolean = False
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(19, 6, Rechnungsdatum, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit, , , ,, ,,, True, Kopie,, saveInThereFore, showError)
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(FirmaID, Sammelrechnungsart, Rechnungsdatum, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit, , , ,, ,,, True, Kopie, True, saveInThereFore, showError)
Return RechnungsNrisSet
End Function
@@ -315,6 +373,9 @@ Public Class cAutomailversand
Private Function setLog(SR_DT As DataTable, row As DataRow, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, Optional ATTACHMENTS As List(Of cFakt_MailATTach) = Nothing, Optional Mailsubject As String = "", Optional Mailhtml As String = "", Optional MailTo As String = "", Optional MailtoCC As String = "", Optional MailtoBCC As String = "", Optional Mail As Microsoft.Office.Interop.Outlook.MailItem = Nothing) As Boolean
Dim accountToSend = setAccountToSend(FirmaID)
Dim mailcreated As Boolean = False
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
@@ -329,14 +390,14 @@ Public Class cAutomailversand
If Mail IsNot Nothing Then
EMails = Mail.To
EMails_CC = Mail.CC
EMails_BCC = Mail.BCC
EMails_BCC = accountToSend 'Mail.BCC
EMail_subject = Mail.Subject
EMail_HTML = Mail.Body
AttCount = Mail.Attachments.Count
Else
EMails = MailTo
EMails_CC = MailtoCC
EMails_BCC = MailtoBCC
EMails_BCC = accountToSend 'MailtoBCC
EMail_subject = Mailsubject
EMail_HTML = Mailhtml
AttCount = ATTACHMENTS.Count
@@ -356,7 +417,7 @@ Public Class cAutomailversand
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "SAMMELRECHNUNG-MDM",,, row.Item("RechnungsKundenNr"), , , FilialenNr, AbfertigungsNr)
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "SAMMELRECHNUNG_" & FirmaID,,, row.Item("RechnungsKundenNr"), , , FilialenNr, AbfertigungsNr)
API.api_EMail = EMails
API.api_EMailCC = EMails_CC
@@ -383,7 +444,7 @@ Public Class cAutomailversand
Next
If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(EMails, EMail_subject, EMail_HTML, "mmdabrechnung@verag.ag", False, False, EMails_CC, EMails_BCC, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", "mmdabrechnung@verag.ag")) Then
If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(EMails, EMail_subject, EMail_HTML, accountToSend, False, False, EMails_CC, EMails_BCC, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", accountToSend)) Then
API.UPDTAE_OK()
mailcreated = True
Else
@@ -402,5 +463,130 @@ Public Class cAutomailversand
Return mailcreated
End Function
Function getSammelRgTExt(RechnungsLandKz, FIRMA_ID) As String
If RechnungsLandKz = "" Then
getSammelRgTExt = "Sehr geehrte Damen und Herren,<br>"
getSammelRgTExt &= "Dear Ladies and Gentlemen,<br>"
getSammelRgTExt &= "Sayin Bayanlar ve Baylar,<br>"
getSammelRgTExt &= "<br>"
getSammelRgTExt &= "im Anhang senden wir Ihnen die o.g. Rechnung.<br>"
getSammelRgTExt &= "attached we send you the invoice mentioned above.<br>"
getSammelRgTExt &= "ekte baslikta yazan faturayi bulabilirsinz.<br>"
getSammelRgTExt &= "<br>"
getSammelRgTExt &= "<br><br><br>Mit freundlichen Grüßen / Best regards / Saygilarimizla<br><br>VERAG Spedition AG<br><br>" & cFakturierung.getSignature(RechnungsLandKz, FIRMA_ID)
Return "<div style=""font-family:Calibri, Arial"">" & getSammelRgTExt & "</div>"
End If
getSammelRgTExt = "<div style=""font-family:Calibri, Arial"">" & getSammelRgTExt & "</div>"
End Function
Function getSelectionLandKz(dt As DataTable) As String
getSelectionLandKz = ""
If dt.Rows.Count > 0 Then
If dt.Rows.Count > 0 Then
For Each r As DataRow In dt.Rows
If Not IsDBNull(r("RechnungsLandKz")) Then
Dim landKz As String = r("RechnungsLandKz").ToString()
If getSelectionLandKz = "" Then
getSelectionLandKz = landKz
ElseIf getSelectionLandKz <> landKz Then
Return ""
End If
End If
Next
End If
End If
End Function
Private Function setAccountToSend(FIRMA_ID) As String
Dim accountToSend = ""
Select Case FIRMA_ID
Case 24
accountToSend = SDL.cFakturierung.getDefaultMail("AMBAR",, True)
Case 19
accountToSend = "mmdabrechnung@verag.ag" 'bewusst falsch geschrieben!!!!
Case 7
accountToSend = "rechnung@atilla-spedition.com"
Case Else
accountToSend = "rechnungsversand@verag.ag"
End Select
Return accountToSend
End Function
Function addRgData_ZF_Passau(RechnungsLandKz As String, RECHNUNG As cRechnungsausgang, SPEDBUCH As cSpeditionsbuch) As String ' NUR EINZELRECHNUNG
addRgData_ZF_Passau = vbNewLine & vbNewLine
Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
Select Case RechnungsLandKz
Case "TR"
addRgData_ZF_Passau &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then
addRgData_ZF_Passau &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
addRgData_ZF_Passau &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
End If
Case "A", "AT", "D", "DE", "CH"
addRgData_ZF_Passau &= "Absender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then
addRgData_ZF_Passau &= "Handelsrechnungs-Nr.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
addRgData_ZF_Passau &= "Handelsrechnungs-Betrag: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
End If
Case Else
addRgData_ZF_Passau &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then
addRgData_ZF_Passau &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
addRgData_ZF_Passau &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
End If
End Select
' addRgData_ZF_Passau = RichTextBox.Text.Replace("Mit freundlichen Grüßen", "")
End Function
Function addRgData_Parsan(RechnungsLandKz As String, RECHNUNG As cRechnungsausgang, SPEDBUCH As cSpeditionsbuch) As String 'NUR EINZELRECHNUNG
addRgData_Parsan = vbNewLine & vbNewLine
Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
Select Case RechnungsLandKz
Case "TR"
' addRgData_Parsan &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then
addRgData_Parsan &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
addRgData_Parsan &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
End If
Case "A", "AT", "D", "DE", "CH"
' addRgData_Parsan &= "Absender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then
addRgData_Parsan &= "Handelsrechnungs-Nr.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
addRgData_Parsan &= "Handelsrechnungs-Betrag: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
End If
Case Else
'addRgData_Parsan &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then
addRgData_Parsan &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
addRgData_Parsan &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
End If
End Select
End Function
End Class

View File

@@ -4348,12 +4348,8 @@ Public Class cFakturierung
' If FilialeTmp < 0 Then FilialeTmp = RG.FilialenNr 'erstes Mal
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal
If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr
' KEIN doSAMMELRechnungsDruck_Abschnitt!!!!
If Not MDMRENrvoarhanden Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
End If
kdTmp = RG.RechnungsKundenNr
FilialeTmp = RG.FilialenNr
@@ -4363,12 +4359,16 @@ Public Class cFakturierung
' If FilialeTmp < 0 Then FilialeTmp = RG.FilialenNr 'erstes Mal
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal
If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr
Dim path = ""
doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore)
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
If path <> "" Then listPDFs.Add(path)
If Not setAutoMailversand Then
Dim path = ""
doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore)
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
If path <> "" Then listPDFs.Add(path)
Else
If Not MDMRENrvoarhanden Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
End If
End If
kdTmp = RG.RechnungsKundenNr
kdTmp = RG.RechnungsKundenNr
FilialeTmp = RG.FilialenNr
FIRMATmp = RG.Firma_ID
End Select
@@ -4377,8 +4377,8 @@ Public Class cFakturierung
RG.[VorschauID] = VorschauID
Else
If SammelrechungArt = 6 Then
If RechnungsdruckArt = 7 Then 'RechnungsdruckArt = 7 ist die Erstellung per MDM-Sammelabrechnung!
If SammelrechungArt = 6 Or (setAutoMailversand And SammelrechungArt <> 6) Then
If RechnungsdruckArt = 7 Then 'RechnungsdruckArt = 7 ist die Erstellung per MDM-Sammelabrechnung bzw. der Sammelrechnung für Mailversand!!
RG.[Status] = 2 'Bei MDM Abrechnung; Druck später!!
RG.Automailversand = setAutoMailversand
Else
@@ -4413,7 +4413,9 @@ Public Class cFakturierung
'Letzter Abschnitt:
If found Then
Dim path = ""
If Not (SammelrechungArt = 6 And RechnungsdruckArt = 7) Then doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,, MDMREkopie,,,, saveInThereFore)
If Not (SammelrechungArt = 6 And RechnungsdruckArt = 7) Then
doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,, MDMREkopie,,,, saveInThereFore)
End If
If path <> "" Then listPDFs.Add(path)
End If
lastAktuelle_RgNr = Aktuelle_RgNr
@@ -4874,7 +4876,7 @@ Public Class cFakturierung
RG_Bezeichnung = "Provisionsabrechnung_" & Now.ToString("yyyyMMdd_HHmmss") & ".pdf"
End If
If isMDMRechnungsdruck Then
If isMDMRechnungsdruck AndAlso FIRMA.Firma_ID = 19 Then
rpt = SammelRechnungAnlagenDruck_MDM(ROW, isMDMRechnungsdruck, dt, FIRMA, Rechnugnsdruck, KD_RG, RechnungsNr, VorschauID, Sammelrechnungskopie, RG_Bezeichnung, SammelrechnungsDT, tmpPath)
Else
rpt = SammelRechnungAnlagenDruck(ROW, isMDMRechnungsdruck, dt, FIRMA, Rechnugnsdruck, KD_RG, RechnungsNr, VorschauID, Sammelrechnungskopie, RG_Bezeichnung, SammelrechnungsDT, tmpPath)

View File

@@ -2,8 +2,6 @@
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Public Class frmFaktEmail
Dim RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang
@@ -78,23 +76,8 @@ Public Class frmFaktEmail
End Sub
Private Sub frmFaktEmail_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Select Case RECHNUNG.RechnungsLandKz
' Case "TR"
' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr
' TextHTML = "Sayin Bayanlar ve Baylar,<br><br>ekte baslikta yazan faturayi bulabilirsinz."
' TextHTML &= "<br><br><br>Saygilarimizla<br><br>" & cFakturierung.getSignature(RECHNUNG)
' Case "A", "AT", "D", "DE", "CH"
' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr
' TextHTML = "Sehr geehrte Damen und Herren,<br><br>im Anhang senden wir Ihnen die o.g. Rechnung."
' TextHTML &= "<br><br><br>Mit freundlichen Grüßen<br><br>" & cFakturierung.getSignature(RECHNUNG)
' Case Else
' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr
' TextHTML = "Sehr geehrte Damen und Herren,<br><br>attached we send you the invoice mentioned above."
' TextHTML &= "<br><br><br>Best regards<br><br>" & cFakturierung.getSignature(RECHNUNG)
'End Select
cboFaStb_Sprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE", "DE"))
cboFaStb_Sprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("EN", "EN"))
@@ -546,7 +529,7 @@ Public Class frmFaktEmail
Mail = outl.CreateItem(0)
Mail.Subject = txtSubject.Text
If Firma_ID = 24 OrElse Firma_ID = 19 Then
If Firma_ID = 24 OrElse Firma_ID = 19 OrElse Firma_ID = 1 OrElse Firma_ID = 7 Then
Try
Dim oAccount As Outlook.Account
Dim accountToSent = ""
@@ -554,109 +537,113 @@ Public Class frmFaktEmail
Select Case Firma_ID
Case 24
accountToSent = SDL.cFakturierung.getDefaultMail("AMBAR",, True)
Case Else
Case 19
accountToSent = "mmdabrechnung@verag.ag" 'bewusst falsch geschrieben!!!!
Case 7
accountToSent = "rechnung@atilla-spedition.com"
Case Else
accountToSent = "rechnungsversand@verag.ag"
End Select
If accountToSent <> "" Then
If outl.Session.Accounts.Count > 0 Then
For Each oAccount In outl.Session.Accounts
If oAccount.SmtpAddress.ToLower = accountToSent.ToLower Then
Mail.SendUsingAccount = oAccount
Exit For
If outl.Session.Accounts.Count > 0 Then
For Each oAccount In outl.Session.Accounts
If oAccount.SmtpAddress.ToLower = accountToSent.ToLower Then
Mail.SendUsingAccount = oAccount
Exit For
End If
Next
End If
Next
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler beim Ermitteln des Mail-Accounts." & ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler beim Ermitteln des Mail-Accounts." & ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End If
'Mail-Adressen eintragen
'-----------------------------------------------------------------
For Each r In dgvEmail.Rows
If r.cells(0).value <> "" Then Mail.To &= r.cells(0).value & ";"
Next
For Each r In dgvEmailCC.Rows
If r.cells(0).value <> "" Then Mail.CC &= r.cells(0).value & ";"
Next
For Each r In dgvEmailBCC.Rows
If r.cells(0).value <> "" Then Mail.BCC &= r.cells(0).value & ";"
Next
'Mail-Adressen eintragen
'-----------------------------------------------------------------
For Each r In dgvEmail.Rows
If r.cells(0).value <> "" Then Mail.To &= r.cells(0).value & ";"
Next
For Each r In dgvEmailCC.Rows
If r.cells(0).value <> "" Then Mail.CC &= r.cells(0).value & ";"
Next
For Each r In dgvEmailBCC.Rows
If r.cells(0).value <> "" Then Mail.BCC &= r.cells(0).value & ";"
Next
RichTextBox.Text = RichTextBox.Text.Replace("%RgNr%", lastAktuelle_RgNr)
txtSubject.Text = txtSubject.Text.Replace("%RgNr%", lastAktuelle_RgNr)
RichTextBox.Text = RichTextBox.Text.Replace("%RgNr%", lastAktuelle_RgNr)
txtSubject.Text = txtSubject.Text.Replace("%RgNr%", lastAktuelle_RgNr)
Dim TextHTML = "<div style=""font-family:Calibri, Arial"">" & RichTextBox.Text.Replace(ControlChars.Lf, "<br>") & cFakturierung.getSignature(AD.LandKz, Firma_ID,,,, additionalLine,, IIf(Firma_ID = "24", True, False)) & "</div>"
Dim TextHTML = "<div style=""font-family:Calibri, Arial"">" & RichTextBox.Text.Replace(ControlChars.Lf, "<br>") & cFakturierung.getSignature(AD.LandKz, Firma_ID,,,, additionalLine,, IIf(Firma_ID = "24", True, False)) & "</div>"
Mail.HTMLBody = TextHTML
Mail.Subject = txtSubject.Text
Mail.HTMLBody = TextHTML
Mail.Subject = txtSubject.Text
ATTACHMENTS.Clear()
'-----------------------------------------------------------------
'Rechnungen anfügen
'-----------------------------------------------------------------
For Each l In listPDFs
' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
ATTACHMENTS.Clear()
'-----------------------------------------------------------------
'Rechnungen anfügen
'-----------------------------------------------------------------
For Each l In listPDFs
' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
Next
For Each l In SonstAnlagen
' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
Next
For Each l In SonstAnlagen
' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
Next
addAttachments(Mail, lastAktuelle_RgNr, cbxMergeRg.Checked)
Next
addAttachments(Mail, lastAktuelle_RgNr, cbxMergeRg.Checked)
'-----------------------------------------------------------------
'Steuerbescheid/VDB anfügen
'-----------------------------------------------------------------
getAnhaenge()
'For Each l In listPDFs
' ' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
' ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
'Next
'-----------------------------------------------------------------
'Steuerbescheid/VDB anfügen
'-----------------------------------------------------------------
getAnhaenge()
'For Each l In listPDFs
' ' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
' ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
'Next
'Rechnungsanhänge anfügen
'-----------------------------------------------------------------
If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then
For Each r In SR_DT.Rows
Dim RG_ANH = VERAG_PROG_ALLGEMEIN.cRechnungsausgang.LOAD_ANHAENGE_LIST(r("RK_ID"))
If RG_ANH IsNot Nothing Then
For Each ANH In RG_ANH
ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId), ANH.Bezeichnung))
'Rechnungsanhänge anfügen
'-----------------------------------------------------------------
If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then
For Each r In SR_DT.Rows
Dim RG_ANH = VERAG_PROG_ALLGEMEIN.cRechnungsausgang.LOAD_ANHAENGE_LIST(r("RK_ID"))
If RG_ANH IsNot Nothing Then
For Each ANH In RG_ANH
ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId), ANH.Bezeichnung))
Next
End If
Next
End If
Next
End If
'-----------------------------------------------------------------
'-----------------------------------------------------------------
addAttachments(Mail, lastAktuelle_RgNr, cbxMergePDF.Checked)
addAttachments(Mail, lastAktuelle_RgNr, cbxMergePDF.Checked)
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" Then
Try
Mail.SentOnBehalfOfName = "buchhaltung@ambarlog.com"
Catch ex2 As Exception
MsgBox(ex2.Message)
End Try
End If
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" Then
Try
Mail.SentOnBehalfOfName = "buchhaltung@ambarlog.com"
Catch ex2 As Exception
MsgBox(ex2.Message)
End Try
End If
Mail.Display()
'------------------------------------------------------------------------------------------
' STB /FA SR: ABFRAGE FISKAL-VZ
If isFiskal Then
send_StbFAMail(AD.AdressenNr, " Rg-Nr.: " & lastAktuelle_RgNr, lastAktuelle_RgNr)
End If
Mail.Display()
'------------------------------------------------------------------------------------------
' STB /FA SR: ABFRAGE FISKAL-VZ
If isFiskal Then
send_StbFAMail(AD.AdressenNr, " Rg-Nr.: " & lastAktuelle_RgNr, lastAktuelle_RgNr)
End If
'------------------------------------------------------------------------------------------
End If
@@ -692,8 +679,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

@@ -401,7 +401,7 @@ Partial Class frmFaktSammelRgDrucken
'cbxAUTOMail
'
Me.cbxAUTOMail.AutoSize = True
Me.cbxAUTOMail.Location = New System.Drawing.Point(555, 44)
Me.cbxAUTOMail.Location = New System.Drawing.Point(532, 66)
Me.cbxAUTOMail.Name = "cbxAUTOMail"
Me.cbxAUTOMail.Size = New System.Drawing.Size(116, 17)
Me.cbxAUTOMail.TabIndex = 30

View File

@@ -58,6 +58,8 @@ Public Class frmFaktSammelRgDrucken
Case 7 : txtZeitraumBis.Text = Now.ToShortDateString : lblSB.Visible = True : cboSB.Visible = True : cboSB.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME)
End Select
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then cbxAUTOMail.Visible = True : pnlAUTOMailversand.Visible = True
initDGV()
End Sub
@@ -65,53 +67,153 @@ Public Class frmFaktSammelRgDrucken
Sub initDGV()
With MyDatagridview1
Dim whereAbfArt = ""
Dim whereMWST = ""
'Dim whereAbfArt = ""
'Dim whereMWST = ""
'Dim abfertigungsarten = getValues()
'If Sammelrechung <> 6 AndAlso abfertigungsarten <> "" Then
' whereAbfArt = " AND (SELECT Abfertigungsart FROM Speditionsbuch WHERE Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr) IN (" & abfertigungsarten & ") "
'End If
'If cbxMWST.CheckState.Indeterminate Then
' whereMWST = ""
'Else
' whereMWST = "AND isnull(tblKundenErweitert.kde_keineMWSt,0) = " & IIf(cbxMWST.Checked, "1", "0")
'End If
'If cbxAUTOMail.Checked Or Not cbxAUTOMail.Checked Then
' whereMWST = " AND isnull(Rechnungsausgang.Automailversand,0) = " & IIf(cbxAUTOMail.Checked, "1", "0")
' whereAbfArt &= " AND isnull(Rechnungsausgang.Automailversand,0) = " & IIf(cbxAUTOMail.Checked, "1", "0")
'End If
'Dim sqlStr = ""
'Select Case Sammelrechung
' Case 6 ' Maut Sammelrechnung
' sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1],0 as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe,sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer, isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST
' ,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck
' FROM Rechnungsausgang left join tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
' WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = 6 And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & txtRechnungsdatum._value & "'
' " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & "
' " & whereAbfArt & " " & whereMWST & "
' GROUP BY RechnungsKundenNr, isnull(tblKundenErweitert.kde_keineMWSt,0)
' ORDER BY RechnungsLandKz, RechnungsKundenNr "
' Case Else
' sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1]," & If(Sammelrechung = 7, "AvisoId", "0") & " as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe" & If(Sammelrechung = 7, ",max([LKW Kennzeichen]) as LKW", "") & "
' ,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck
' FROM Rechnungsausgang
' WHERE Rechnungsausgang.Status IN (0,2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechung & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) <= '" & txtZeitraumBis._value & "'
' " & If(Sammelrechung = 7 And cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & "
' " & whereAbfArt & "
' AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "'
' GROUP BY RechnungsKundenNr " & If(Sammelrechung = 7, ",AvisoId", "") & "
' ORDER BY Rechnungsausgang.RechnungsKundenNr "
'End Select
Dim whereAbfArt As String = ""
Dim whereMWST As String = ""
Dim whereAutoMail As String = ""
Dim abfertigungsarten = getValues()
' Abfertigungsarten
If Sammelrechung <> 6 AndAlso abfertigungsarten <> "" Then
whereAbfArt = " AND (SELECT Abfertigungsart FROM Speditionsbuch WHERE Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr) IN (" & abfertigungsarten & ") "
End If
If cbxMWST.CheckState.Indeterminate Then
whereMWST = ""
Else
whereMWST = "AND isnull(tblKundenErweitert.kde_keineMWSt,0) = " & IIf(cbxMWST.Checked, "1", "0")
whereAbfArt = " AND (SELECT Abfertigungsart
FROM Speditionsbuch
WHERE Speditionsbuch.FilialenNr = Rechnungsausgang.FilialenNr
AND Speditionsbuch.AbfertigungsNr = Rechnungsausgang.AbfertigungsNr
AND Speditionsbuch.UnterNr = Rechnungsausgang.SpeditionsbuchUnterNr
) IN (" & abfertigungsarten & ") "
End If
If cbxAUTOMail.Checked Or Not cbxAUTOMail.Checked Then
whereMWST = " AND isnull(Rechnungsausgang.Automailversand,0) = " & IIf(cbxAUTOMail.Checked, "1", "0")
' MWST
If Not cbxMWST.CheckState = CheckState.Indeterminate Then
whereMWST = " AND ISNULL(tblKundenErweitert.kde_keineMWSt,0) = " & If(cbxMWST.Checked, "1", "0")
End If
Dim sqlStr = ""
whereAutoMail = " AND ISNULL(Rechnungsausgang.Automailversand,0) = " & If(cbxAUTOMail.Checked, "1", "0")
Dim sqlStr As String = ""
Select Case Sammelrechung
Case 6 ' Maut Sammelrechnung
sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1],0 as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe,sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer, isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST
,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck
FROM Rechnungsausgang left join tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = 6 And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & txtRechnungsdatum._value & "'
" & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & "
" & whereAbfArt & " " & whereMWST & "
GROUP BY RechnungsKundenNr, isnull(tblKundenErweitert.kde_keineMWSt,0)
ORDER BY RechnungsLandKz, RechnungsKundenNr "
sqlStr = "
SELECT
Rechnungsausgang.RechnungsKundenNr,
MAX(Rechnungsausgang.[RechnungsName 1]) AS [RechnungsName 1],
0 AS AvisoId,
MAX(Rechnungsausgang.[RechnungsLandKz]) AS [RechnungsLandKz],
COUNT(*) AS Anzahl,
SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe,
SUM(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer,
ISNULL(tblKundenErweitert.kde_keineMWSt,0) AS keineMWST,
(SELECT CASE
WHEN Rechnungsdruck = 0 THEN 'POST'
WHEN Rechnungsdruck = 1 THEN 'FAX'
WHEN Rechnungsdruck = 2 THEN 'E-MAIL'
ELSE '-' END
FROM Adressen
WHERE AdressenNr = Rechnungsausgang.RechnungsKundenNr) AS Rechnungsdruck
FROM Rechnungsausgang
LEFT JOIN tblKundenErweitert
ON tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
WHERE
Rechnungsausgang.Status = 2
AND Rechnungsausgang.Firma_ID = '" & cboFirma._value & "'
AND Rechnungsausgang.Sammelrechnung = " & Sammelrechung & "
AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) = '" & txtRechnungsdatum._value & "'
" & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & "
" & whereAbfArt & whereMWST & whereAutoMail & "
GROUP BY
RechnungsKundenNr,
ISNULL(tblKundenErweitert.kde_keineMWSt,0)
ORDER BY
RechnungsLandKz, RechnungsKundenNr"
Case Else
sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1]," & If(Sammelrechung = 7, "AvisoId", "0") & " as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe" & If(Sammelrechung = 7, ",max([LKW Kennzeichen]) as LKW", "") & "
,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck
FROM Rechnungsausgang
WHERE Rechnungsausgang.Status IN (0,2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechung & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) <= '" & txtZeitraumBis._value & "'
" & If(Sammelrechung = 7 And cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & "
" & whereAbfArt & "
AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "'
GROUP BY RechnungsKundenNr " & If(Sammelrechung = 7, ",AvisoId", "") & "
ORDER BY Rechnungsausgang.RechnungsKundenNr "
sqlStr = "
SELECT
min(Rechnungsausgang.RechnungsNr) as RENR,
Rechnungsausgang.RechnungsKundenNr,
MAX(Rechnungsausgang.[RechnungsName 1]) AS [RechnungsName 1],
" & If(Sammelrechung = 7, "AvisoId", "0") & " AS AvisoId,
MAX(Rechnungsausgang.[RechnungsLandKz]) AS [RechnungsLandKz],
COUNT(*) AS Anzahl,
SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe
" & If(Sammelrechung = 7, ", MAX([LKW Kennzeichen]) AS LKW", "") & ",
(SELECT CASE
WHEN Rechnungsdruck = 0 THEN 'POST'
WHEN Rechnungsdruck = 1 THEN 'FAX'
WHEN Rechnungsdruck = 2 THEN 'E-MAIL'
ELSE '-' END
FROM Adressen
WHERE AdressenNr = Rechnungsausgang.RechnungsKundenNr) AS Rechnungsdruck
FROM Rechnungsausgang
WHERE
Rechnungsausgang.Status IN (0,2)
AND Rechnungsausgang.Firma_ID = '" & cboFirma._value & "'
AND Rechnungsausgang.Sammelrechnung = '" & Sammelrechung & "'
AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & txtZeitraumBis._value & "'
" & If(Sammelrechung = 7 AndAlso cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & "
" & whereAbfArt & whereAutoMail & "
AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "'
GROUP BY
RechnungsKundenNr " & If(Sammelrechung = 7, ", AvisoId", "") & "
ORDER BY
Rechnungsausgang.RechnungsKundenNr"
End Select
'Rechnungsausgang.Status IN (0,2) --> vormals nur 2
.SET_SQL(sqlStr, "FMZOLL")
.LOAD()
@@ -137,8 +239,12 @@ Public Class frmFaktSammelRgDrucken
.Columns("RechnungsLandKz").Visible = True
End If
If .Columns.Contains("keineMWST") Then
.Columns("keineMWST").Visible = False
If .Columns.Contains("keineMWST") Then
.Columns("keineMWST").Visible = False
End If
If .Columns.Contains("RENR") Then
.Columns("RENR").Visible = False
End If
If .Columns.Contains("Steuer") Then
@@ -558,21 +664,73 @@ Public Class frmFaktSammelRgDrucken
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
If vbYes = MsgBox("Möchten Sie alle markieren Rechnungen den automatischen Emailversand aktivieren?" & vbNewLine & "Die Rechnungen werden automatisch im Nachtlauf per EMail verschickt!", vbYesNoCancel) Then
setMailversand(True, 19, 6, 2)
Dim noRENRExisting As Boolean = False
If MyDatagridview1.Columns.Contains("RENR") Then
noRENRExisting = MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Any(Function(r) r.Cells("RENR").Value Is Nothing OrElse IsDBNull(r.Cells("RENR").Value))
If noRENRExisting Then
If cboFirma._value = "" Then MsgBox("Bitte Firma angeben!") : Exit Sub
If txtZeitraumBis.Text = "" Then MsgBox("Bitte Zeitraum-Bis angeben!") : Exit Sub
If txtRechnungsdatum.Text = "" Then MsgBox("Bitte Rechnungsdatum angeben!") : Exit Sub
If vbYes = MsgBox("Es wird eine Belegsnummer vergeben, die Belege gelten somit als gedruckt und können nicht mehr bearbeitet werden.", vbYesNoCancel) Then
For Each r In MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Where(Function(x) x.Cells("RENR").Value Is Nothing OrElse IsDBNull(x.Cells("RENR").Value))
If IsDate(txtRechnungsdatum.Text) AndAlso IsDate(txtZeitraumBis.Text) AndAlso Not IsDBNull(r.Cells("RechnungsLandKz").Value) AndAlso Not IsDBNull(r.Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then
Me.Enabled = False
Me.Cursor = Cursors.WaitCursor
Dim listPDFs As New List(Of String)
Dim SonstAnlagen As New List(Of String)
Dim RechnungsNrisSet As Boolean = False
Dim abfertigungsarten = getValues()
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, getSelectionKdNr, 7, listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, , cbxTransFerry.Checked, cboFaktGrp._value, abfertigungsarten,,, True)
If Not RechnungsNrisSet Then
MsgBox("Fehler bei RechnungsNrErzeugung!")
End If
Me.Enabled = True
End If
Next
Me.Enabled = True
Me.Cursor = Cursors.Default
Else
End If
End If
End If
setMailversand_ALL(True, Firma, Sammelrechung, 2)
Me.Enabled = True
Me.Cursor = Cursors.Default
End If
End If
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
If vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand deaktiveren?" & vbNewLine & "Die Rechnungen müssen dann manuell per Mail verschickt werden!", vbYesNoCancel) Then
setMailversand(False, 19, 6, 2)
'setMailversand(false, Firma, Sammelrechung, 2)
setMailversand_ALL(False, Firma, Sammelrechung, 2)
End If
End If
@@ -593,6 +751,7 @@ Public Class frmFaktSammelRgDrucken
For Each r As DataGridViewRow In MyDatagridview1.SelectedRows
If IsDate(txtRechnungsdatum.Text) AndAlso r.Cells("RechnungsLandKz").Value <> "" AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then
If (New SQL).doSQL("UPDATE Rechnungsausgang set Automailversand = " & mailversandString &
" from Rechnungsausgang left join tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr where Rechnungsausgang.Status In (" & Status & ") And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnung & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" &
CDate(txtRechnungsdatum.Text).ToShortDateString & "' and RechnungsKundenNr = " & r.Cells("RechnungsKundenNr").Value & " and RechnungsLandKz = '" & r.Cells("RechnungsLandKz").Value & " ' and isnull(Automailversand, 0) <> " & mailversandString &
@@ -609,6 +768,60 @@ Public Class frmFaktSammelRgDrucken
End Function
Private Function setMailversand_ALL(Mailversand As Boolean, FirmaID As Integer, Sammelrechnung As Integer, Status As Integer) As Boolean
Dim count As Integer = 0
Dim mailversandString As String = If(Mailversand, "1", "0")
Dim whereMWST As String = ""
Dim whereAutoMail As String = ""
' MWST Filter
If cbxMWST.CheckState <> CheckState.Indeterminate Then
whereMWST = " AND ISNULL(tblKundenErweitert.kde_keineMWSt,0) = " & If(cbxMWST.Checked, "1", "0")
End If
' Automail Filter (nur ändern wenn unterschiedlich)
whereAutoMail = " AND ISNULL(Rechnungsausgang.Automailversand,0) <> " & mailversandString
For Each r As DataGridViewRow In MyDatagridview1.SelectedRows
Dim sql As String = ""
If IsDate(txtRechnungsdatum.Text) AndAlso Not IsDBNull(r.Cells("RechnungsLandKz").Value) AndAlso Not IsDBNull(r.Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then
sql = "UPDATE Rechnungsausgang SET Automailversand = " & mailversandString & " FROM Rechnungsausgang LEFT JOIN tblKundenErweitert ON tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
WHERE
Rechnungsausgang.Status IN (" & Status & ")
AND Rechnungsausgang.Firma_ID = '" & FirmaID & "'
AND Rechnungsausgang.Sammelrechnung = '" & Sammelrechnung & "'
AND CONVERT(DATE, Rechnungsausgang.Rechnungsdatum, 104) = '" & CDate(txtRechnungsdatum.Text).ToShortDateString & "'
AND Rechnungsausgang.RechnungsKundenNr = " & r.Cells("RechnungsKundenNr").Value & "
AND Rechnungsausgang.RechnungsLandKz = '" & r.Cells("RechnungsLandKz").Value.ToString.Trim & "'
" & whereAutoMail & "
" & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & "
" & whereMWST
End If
If (New SQL).doSQL(sql, "FMZOLL") Then
count += 1
End If
Next
If count <> MyDatagridview1.SelectedRows.Count Then
MsgBox("ACHTUNG" & vbNewLine &
"Der automatische Mailversand wurde nur bei " & count & " Rechnungen " &
If(Mailversand, "aktiviert!", "deaktiviert!") & vbNewLine &
"Markiert waren " & MyDatagridview1.SelectedRows.Count & " Rechnungen!")
End If
End Function
Private Sub cbxAUTOMail_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAUTOMail.CheckedChanged
@@ -638,7 +851,7 @@ Public Class frmFaktSammelRgDrucken
If IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) Then
Dim dtRE As DataTable = (New SQL).loadDgvBySql("select RK_ID, RechnungsNr, FilialenNr from Rechnungsausgang where RechnungsKundenNr = " & MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value & " AND cast(RechnungsDatum as Date) = '" & txtRechnungsdatum._value & "' AND Sammelrechnung = 6" & IIf(Firma > 0, " AND Firma_ID =" & Firma, ""), "FMZOLL")
Dim dtRE As DataTable = (New SQL).loadDgvBySql("select RK_ID, RechnungsNr, FilialenNr from Rechnungsausgang where RechnungsKundenNr = " & MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value & " AND cast(RechnungsDatum as Date) = '" & txtRechnungsdatum._value & "' AND Sammelrechnung = " & Sammelrechung & IIf(Firma > 0, " AND Firma_ID =" & Firma, ""), "FMZOLL")
If dtRE.Rows.Count > 0 Then
Dim RK_ID As String = ""
@@ -696,11 +909,11 @@ Public Class frmFaktSammelRgDrucken
If MyDatagridview1.SelectedRows.Count > 0 Then
If Not vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand JETZT durchführen?" & vbNewLine & "Ansonten werden sie im Nachtlauf automatisch versendet!", vbYesNoCancel) Then Exit Sub
If Not vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand JETZT durchführen?" & vbNewLine & "Ansonsten werden sie im Nachtlauf automatisch versendet!", vbYesNoCancel) Then Exit Sub
Dim fun As New cAutomailversand
For Each r In MyDatagridview1.SelectedRows
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), 6, 19, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked)
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked)
Next
initDGV()

View File

@@ -288,6 +288,7 @@ Partial Class usrCntlFaktAbrechnung
Me.GutschriftAnVeragToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.VeragAGToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.VeragCSToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.cbxAUTOMailversand = New System.Windows.Forms.CheckBox()
Me.pnlTop.SuspendLayout()
Me.Panel3.SuspendLayout()
Me.Panel1.SuspendLayout()
@@ -804,6 +805,7 @@ Partial Class usrCntlFaktAbrechnung
'Panel1
'
Me.Panel1.AutoScroll = True
Me.Panel1.Controls.Add(Me.cbxAUTOMailversand)
Me.Panel1.Controls.Add(Me.Button17)
Me.Panel1.Controls.Add(Me.txtTextZZ)
Me.Panel1.Controls.Add(Me.dgvAnhaenge)
@@ -4057,6 +4059,17 @@ Partial Class usrCntlFaktAbrechnung
Me.VeragCSToolStripMenuItem.Size = New System.Drawing.Size(122, 22)
Me.VeragCSToolStripMenuItem.Text = "Verag CS"
'
'cbxAUTOMailversand
'
Me.cbxAUTOMailversand.AutoSize = True
Me.cbxAUTOMailversand.Location = New System.Drawing.Point(697, 142)
Me.cbxAUTOMailversand.Name = "cbxAUTOMailversand"
Me.cbxAUTOMailversand.Size = New System.Drawing.Size(116, 17)
Me.cbxAUTOMailversand.TabIndex = 241
Me.cbxAUTOMailversand.Text = "AUTO Mailversand"
Me.cbxAUTOMailversand.UseVisualStyleBackColor = True
Me.cbxAUTOMailversand.Visible = False
'
'usrCntlFaktAbrechnung
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -4351,4 +4364,5 @@ Partial Class usrCntlFaktAbrechnung
Friend WithEvents cboVorauskasse As VERAG_PROG_ALLGEMEIN.MyComboBox
Friend WithEvents cboRgArt As VERAG_PROG_ALLGEMEIN.MyComboBox
Friend WithEvents Label57 As Label
Friend WithEvents cbxAUTOMailversand As CheckBox
End Class

View File

@@ -142,6 +142,7 @@ Public Class usrCntlFaktAbrechnung
Label40.Visible = False
sbLeistung._value = ""
cbxOriginalPrint.Checked = False
cbxAUTOMailversand.Checked = False
If RK_ID_TMP > 0 Then
RECHNUNG = New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID_TMP)
@@ -302,6 +303,7 @@ Public Class usrCntlFaktAbrechnung
txtErfassungsnummer.Text = If(RECHNUNG.ErfassungsNr, "")
cboRechnungNotiz.Text = If(RECHNUNG.Notiz, "")
cbxAUTOMailversand.Checked = RECHNUNG.Automailversand
initRgArt()
cboRgArt._value = RECHNUNG.Rechnungsart
@@ -544,6 +546,10 @@ Public Class usrCntlFaktAbrechnung
FirmaTmp = "VERAG360"
End If
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
cbxAUTOMailversand.Visible = True
End If
cboVorauskasse.Items.Clear()
cboVorauskasse.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NEIN", 0))
cboVorauskasse.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("JA", 1))
@@ -2496,6 +2502,8 @@ Public Class usrCntlFaktAbrechnung
RECHNUNG.KdAuftragsNr = cProgramFunctions.isLeerNothing(txtKdAuftragsNr.Text)
RECHNUNG.Automailversand = cbxAUTOMailversand.Checked
If RECHNUNG.Abfertigungsdatum < CDate("01.01.2000") Then RECHNUNG.Abfertigungsdatum = Now
If dgvOffertenSperrliste.SelectedRows.Count > 0 Then RECHNUNG.OffertenNr = dgvOffertenSperrliste.SelectedRows(0).Cells("OffertenNr").Value 'Wenn mehrfachauswahl möcglich-> Ändern

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

@@ -50,14 +50,15 @@ Partial Class frmNacherfassungLeihgeld
Me.Label11 = New System.Windows.Forms.Label()
Me.cbxProvisionAuftraggeber = New System.Windows.Forms.CheckBox()
Me.Panel1 = New System.Windows.Forms.Panel()
Me.cbxProvinMAKassa = New System.Windows.Forms.CheckBox()
Me.txtAuftrProvision = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.cboProvisionBetrag = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.cboProvisionStaffel = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.txtProvisionProzent = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.cboProvisionStaffelArt = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.Panel2 = New System.Windows.Forms.Panel()
Me.cboPrinter = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.cboPrinterProvisionBeleg = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.cboProvisionStaffel = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.txtProvisionProzent = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.cboProvisionStaffelArt = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.Label44 = New System.Windows.Forms.Label()
Me.txtOpLeihgeld = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.txtKdAuftragsnummer = New VERAG_PROG_ALLGEMEIN.MyTextBox()
@@ -71,7 +72,6 @@ Partial Class frmNacherfassungLeihgeld
Me.txtFahrer = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.cbxOP_sofort_buchen = New System.Windows.Forms.CheckBox()
Me.lblGesperrt = New System.Windows.Forms.Label()
Me.cbxProvinMAKassa = New System.Windows.Forms.CheckBox()
Me.pnl.SuspendLayout()
Me.Panel1.SuspendLayout()
Me.Panel2.SuspendLayout()
@@ -409,6 +409,17 @@ Partial Class frmNacherfassungLeihgeld
Me.Panel1.Size = New System.Drawing.Size(441, 147)
Me.Panel1.TabIndex = 20
'
'cbxProvinMAKassa
'
Me.cbxProvinMAKassa.AutoSize = True
Me.cbxProvinMAKassa.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cbxProvinMAKassa.Location = New System.Drawing.Point(21, 31)
Me.cbxProvinMAKassa.Name = "cbxProvinMAKassa"
Me.cbxProvinMAKassa.Size = New System.Drawing.Size(138, 17)
Me.cbxProvinMAKassa.TabIndex = 22
Me.cbxProvinMAKassa.Text = "in Mitarbeiter-Kassa"
Me.cbxProvinMAKassa.UseVisualStyleBackColor = True
'
'txtAuftrProvision
'
Me.txtAuftrProvision._DateTimeOnly = False
@@ -457,6 +468,40 @@ Partial Class frmNacherfassungLeihgeld
Me.cboProvisionBetrag.Size = New System.Drawing.Size(124, 26)
Me.cboProvisionBetrag.TabIndex = 8
'
'Panel2
'
Me.Panel2.Controls.Add(Me.Label6)
Me.Panel2.Controls.Add(Me.Label7)
Me.Panel2.Controls.Add(Me.cboPrinter)
Me.Panel2.Controls.Add(Me.cboPrinterProvisionBeleg)
Me.Panel2.Location = New System.Drawing.Point(210, 83)
Me.Panel2.Name = "Panel2"
Me.Panel2.Size = New System.Drawing.Size(228, 59)
Me.Panel2.TabIndex = 21
'
'cboPrinter
'
Me.cboPrinter._allowedValuesFreiText = Nothing
Me.cboPrinter._allowFreiText = False
Me.cboPrinter._value = ""
Me.cboPrinter.FormattingEnabled = True
Me.cboPrinter.Location = New System.Drawing.Point(83, 6)
Me.cboPrinter.Name = "cboPrinter"
Me.cboPrinter.Size = New System.Drawing.Size(131, 21)
Me.cboPrinter.TabIndex = 1
'
'cboPrinterProvisionBeleg
'
Me.cboPrinterProvisionBeleg._allowedValuesFreiText = Nothing
Me.cboPrinterProvisionBeleg._allowFreiText = False
Me.cboPrinterProvisionBeleg._value = ""
Me.cboPrinterProvisionBeleg.Enabled = False
Me.cboPrinterProvisionBeleg.FormattingEnabled = True
Me.cboPrinterProvisionBeleg.Location = New System.Drawing.Point(83, 30)
Me.cboPrinterProvisionBeleg.Name = "cboPrinterProvisionBeleg"
Me.cboPrinterProvisionBeleg.Size = New System.Drawing.Size(131, 21)
Me.cboPrinterProvisionBeleg.TabIndex = 3
'
'cboProvisionStaffel
'
Me.cboProvisionStaffel._allowedValuesFreiText = Nothing
@@ -505,40 +550,6 @@ Partial Class frmNacherfassungLeihgeld
Me.cboProvisionStaffelArt.Size = New System.Drawing.Size(156, 21)
Me.cboProvisionStaffelArt.TabIndex = 3
'
'Panel2
'
Me.Panel2.Controls.Add(Me.Label6)
Me.Panel2.Controls.Add(Me.Label7)
Me.Panel2.Controls.Add(Me.cboPrinter)
Me.Panel2.Controls.Add(Me.cboPrinterProvisionBeleg)
Me.Panel2.Location = New System.Drawing.Point(210, 83)
Me.Panel2.Name = "Panel2"
Me.Panel2.Size = New System.Drawing.Size(228, 59)
Me.Panel2.TabIndex = 21
'
'cboPrinter
'
Me.cboPrinter._allowedValuesFreiText = Nothing
Me.cboPrinter._allowFreiText = False
Me.cboPrinter._value = ""
Me.cboPrinter.FormattingEnabled = True
Me.cboPrinter.Location = New System.Drawing.Point(83, 6)
Me.cboPrinter.Name = "cboPrinter"
Me.cboPrinter.Size = New System.Drawing.Size(131, 21)
Me.cboPrinter.TabIndex = 1
'
'cboPrinterProvisionBeleg
'
Me.cboPrinterProvisionBeleg._allowedValuesFreiText = Nothing
Me.cboPrinterProvisionBeleg._allowFreiText = False
Me.cboPrinterProvisionBeleg._value = ""
Me.cboPrinterProvisionBeleg.Enabled = False
Me.cboPrinterProvisionBeleg.FormattingEnabled = True
Me.cboPrinterProvisionBeleg.Location = New System.Drawing.Point(83, 30)
Me.cboPrinterProvisionBeleg.Name = "cboPrinterProvisionBeleg"
Me.cboPrinterProvisionBeleg.Size = New System.Drawing.Size(131, 21)
Me.cboPrinterProvisionBeleg.TabIndex = 3
'
'Label44
'
Me.Label44.AutoSize = True
@@ -810,6 +821,7 @@ Partial Class frmNacherfassungLeihgeld
'cbxOP_sofort_buchen
'
Me.cbxOP_sofort_buchen.AutoSize = True
Me.cbxOP_sofort_buchen.Enabled = False
Me.cbxOP_sofort_buchen.Location = New System.Drawing.Point(291, 290)
Me.cbxOP_sofort_buchen.Name = "cbxOP_sofort_buchen"
Me.cbxOP_sofort_buchen.Size = New System.Drawing.Size(145, 17)
@@ -829,17 +841,6 @@ Partial Class frmNacherfassungLeihgeld
Me.lblGesperrt.Text = "gesperrt!"
Me.lblGesperrt.Visible = False
'
'cbxProvinMAKassa
'
Me.cbxProvinMAKassa.AutoSize = True
Me.cbxProvinMAKassa.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cbxProvinMAKassa.Location = New System.Drawing.Point(21, 31)
Me.cbxProvinMAKassa.Name = "cbxProvinMAKassa"
Me.cbxProvinMAKassa.Size = New System.Drawing.Size(138, 17)
Me.cbxProvinMAKassa.TabIndex = 22
Me.cbxProvinMAKassa.Text = "in Mitarbeiter-Kassa"
Me.cbxProvinMAKassa.UseVisualStyleBackColor = True
'
'frmNacherfassungLeihgeld
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)

View File

@@ -523,10 +523,20 @@ Public Class frmNacherfassungLeihgeld
RG.FilialenNr = SPEDBUCH.FilialenNr
RG.Abfertigungsdatum = SPEDBUCH.Abfertigungsdatum
RG.Sammelrechnung = 0
RG.BelegartenKz = "AR"
RG.BelegartenNr = 70
RG.BelegartenBez = "Rechnung"
RG.Vorzeichen = "+"
If summeBRUTTO >= 0 Then
RG.BelegartenNr = 70
RG.BelegartenKz = "AR"
RG.BelegartenBez = "Rechnung"
RG.Vorzeichen = "+"
Else
RG.BelegartenNr = 71
RG.BelegartenKz = "AG"
RG.BelegartenBez = "Gutschrift"
RG.Vorzeichen = "-"
End If
RG.VermittlerKundenNr = AD.AdressenNr
RG.VermittlerLandKz = AD.LandKz

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

@@ -1,5 +1,6 @@
Imports System.Data.SqlClient
Imports System.Reflection
Imports com.sun.org.apache.xpath.internal.operations
Public Class cTrdInvoice
@@ -35,7 +36,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 +47,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 +94,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 +121,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 +235,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 +246,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 +260,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 +271,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 +412,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 +432,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 +449,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 +497,16 @@ 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 TRD_INVOICE.Source = "KB" AndAlso Not TRD_INVOICE.BV = 1 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,18 +525,32 @@ 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 rksv_BelegId = " & ROW("RK_RechnungsNr"), "FMZOLL")
End If
End If
End If
End If
End If
Next
Return True
@@ -533,12 +569,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 +621,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 +628,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 +651,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 +765,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 +779,46 @@ 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, 0 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 HAVING case when SUM(soll) > 0 then MIN(KundenNr) else 2700 end > 0"
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,42 @@ 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(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, 0 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]
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='VERA' and tblKassenbuch.Niederlassung='SUA' And Konto=5033
group by tblKassenbuch.rksv_BelegId
HAVING max(tblKassenbuch.BelegDat)='" & RechnungsDatum.ToShortDateString & "' AND tblKassenbuch.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
@@ -129,7 +130,7 @@ Public Class cSyska_Interface
'DATEIPFAD für Stammdaten
'-------------------------------------------------------------------------------------------
Dim pathArchivKD = "\\datenarchiv\Datenarchiv\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
Dim pathKD = "\\syncluster01.verag.ost.dmn\F\BUCHHALTUNG\FIBU\Syska\" & FIRMA.Firma_ID & "\"
Dim pathKD = "\\syncluster01.verag.ost.dmn\F\FIBU\Syska\" & FIRMA.Firma_ID & "\"
'pathKD = pathArchivKD 'TEST
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
@@ -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\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,89 @@ 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
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 +571,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 +619,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 +757,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 +847,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 +879,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 +1052,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()