ustva, fakt, etc.

This commit is contained in:
2026-08-14 12:54:22 +02:00
parent c37ccc48b1
commit 193d4e7d9c
9 changed files with 53 additions and 27 deletions

View File

@@ -755,7 +755,7 @@ Public Class cFakturierung
End If
End Function
Public Shared Function doRechnungsDruck(RK_ID As Integer, Optional RechnungsDatum As Object = Nothing, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional ByRef printOriginalRg As Boolean = False, Optional SammelrechnungAnlagendruck As Boolean = False, Optional printStbVdb As Boolean = False) As Boolean
Public Shared Function doRechnungsDruck(RK_ID As Integer, Optional RechnungsDatum As Object = Nothing, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional ByRef printOriginalRg As Boolean = False, Optional SammelrechnungAnlagendruck As Boolean = False, Optional printStbVdb As Boolean = False, Optional sendManuell As Boolean = False) As Boolean
If RK_ID <= 0 Then Return False
Return doRechnungsDruck(New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID), RechnungsDatum, vorschau, Rechnugnsdruck, Path, PrinterName, printOriginalRg, SammelrechnungAnlagendruck, printStbVdb)
End Function
@@ -1389,7 +1389,7 @@ Public Class cFakturierung
Return CBool(CInt(SQL.getValueTxtBySql("SELECT TOP 1 isnull(count(*),0) FROM [tblVorauskassen] inner join Rechnungsausgang ON [vk_FilialeNr]=FilialenNr AND [vk_AbfertigungsNr]=AbfertigungsNr AND [vk_KdNr]=RechnungsKundenNr WHERE RechnungsNr='" & RechnungsNr & "' AND Buchungsjahr='" & Buchungsjahr & "'", "FMZOLL")) > 0)
End Function
Public Shared Function doRechnungsDruck(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional RechnungsDatum As Object = Nothing, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional printOriginalRg As Boolean = False, Optional SammelrechnungAnlagendruck As Boolean = False, Optional printStbVdb As Boolean = False) As Boolean
Public Shared Function doRechnungsDruck(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional RechnungsDatum As Object = Nothing, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional printOriginalRg As Boolean = False, Optional SammelrechnungAnlagendruck As Boolean = False, Optional printStbVdb As Boolean = False, Optional sendManuell As Boolean = False) As Boolean
' MsgBox(Rechnugnsdruck)
If RECHNUNG Is Nothing Then MsgBox("Fehler beim Laden der Rechnungsdaten!") : Return False
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
@@ -1411,7 +1411,7 @@ Public Class cFakturierung
End If
If FIRMA.Firma_ID <> 19 Then
Return doRechnungsdruck_allgemein(RECHNUNG, FIRMA, KD_RG, RechnungsDatum, vorschau, Rechnugnsdruck, Path, PrinterName, printOriginalRg, SammelrechnungAnlagendruck, printStbVdb)
Return doRechnungsdruck_allgemein(RECHNUNG, FIRMA, KD_RG, RechnungsDatum, vorschau, Rechnugnsdruck, Path, PrinterName, printOriginalRg, SammelrechnungAnlagendruck, printStbVdb, sendManuell)
Else
Return doRechnungsdruck_MDM(RECHNUNG, FIRMA, KD_RG, RechnungsDatum, vorschau, Rechnugnsdruck, Path, PrinterName, printOriginalRg, SammelrechnungAnlagendruck, printStbVdb)
End If
@@ -1420,7 +1420,7 @@ Public Class cFakturierung
End Function
Public Shared Function doRechnungsdruck_allgemein(Rechnung As cRechnungsausgang, firma As cFirmen, KD_RG As cAdressen, Optional RechnungsDatum As Object = Nothing, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional printOriginalRg As Boolean = False, Optional SammelrechnungAnlagendruck As Boolean = False, Optional printStbVdb As Boolean = False)
Public Shared Function doRechnungsdruck_allgemein(Rechnung As cRechnungsausgang, firma As cFirmen, KD_RG As cAdressen, Optional RechnungsDatum As Object = Nothing, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional printOriginalRg As Boolean = False, Optional SammelrechnungAnlagendruck As Boolean = False, Optional printStbVdb As Boolean = False, Optional sendManuell As Boolean = False)
Try
Dim rpt As New rptRechnungDruck(Rechnung.RechnungSprache)
@@ -1951,7 +1951,7 @@ Public Class cFakturierung
If Rechnung.[DruckDatumZeit] Is Nothing Then
Rechnung.[DruckDatumZeit] = Now 'Wenn Rg-Nr schon vergeben wird das neu gesetzt
Rechnung.SAVE_DruckDatumZeit() ' Nur SAVE_DruckDatumZeit ändern/setzen
Rechnung.SAVE_DruckDatumZeit(sendManuell, Rechnung.Automailversand) ' Nur SAVE_DruckDatumZeit ändern/setzen
End If
End If

View File

@@ -733,7 +733,7 @@ Public Class frmFaktEmail
'-----------------------------------------------------------------
Dim pathRG = ""
If Not cFakturierung.doRechnungsDruck(RECHNUNG, Rechnungsdatum,, 4, pathRG,, cbxOriginalPrint.Checked) Then
If Not cFakturierung.doRechnungsDruck(RECHNUNG, Rechnungsdatum,, 4, pathRG,, cbxOriginalPrint.Checked,,, True) Then
Exit Sub
End If
@@ -741,7 +741,7 @@ Public Class frmFaktEmail
If cbxRgKopieDrucken.Checked Then
'KOPIE DRUCK
cFakturierung.doRechnungsDruck(RECHNUNG,,, 1, "", cboPrinter.Text, False)
cFakturierung.doRechnungsDruck(RECHNUNG,,, 1, "", cboPrinter.Text, False,,, True)
End If
If pathRG <> "" Then ATTACHMENTS.Add(New cFakt_MailATTach(pathRG, If(RECHNUNG.BelegartenKz = "AR", "Rechnung.pdf", "Gutschrift.pdf")))

View File

@@ -680,7 +680,7 @@ Public Class frmFaktSammelRgDrucken
Dim func As New cAutomailversand
For Each r In MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Where(Function(x) x.Cells("RENR").Value Is Nothing OrElse IsDBNull(x.Cells("RENR").Value))
Dim ADR As New cAdressen(r.Cells("RechnungsKundenNr").Value)
If func.setandcheckEmpfaengerMail_SR(Nothing, ADR, "", "", "", Firma, Sammelrechung) = "" Then
If func.setandcheckEmpfaengerMail_SR(Nothing, ADR, "", "", "", cboFirma._value, Sammelrechung) = "" Then
MsgBox("Bei Kunde " & r.Cells("RechnungsKundenNr").Value & " fehlt der Email-Empfänger!" & vbNewLine & "Vorgang wird abgebrochen")
Exit Sub
End If
@@ -733,7 +733,7 @@ Public Class frmFaktSammelRgDrucken
End If
setMailversand_ALL(True, Firma, Sammelrechung)
setMailversand_ALL(True, cboFirma._value, Sammelrechung)
Me.Enabled = True
Me.Cursor = Cursors.Default
@@ -764,7 +764,7 @@ Public Class frmFaktSammelRgDrucken
If cAutomailversand.automRechnungsversand_deaktivieren(True) Then
'setMailversand(false, Firma, Sammelrechung, 2)
setMailversand_ALL(False, Firma, Sammelrechung)
setMailversand_ALL(False, cboFirma._value, Sammelrechung)
cbxAUTOMail.Checked = Not cbxAUTOMail.Checked
@@ -930,9 +930,9 @@ Public Class frmFaktSammelRgDrucken
Select Case Sammelrechung
Case 6
SQLString = "select RK_ID, RechnungsNr, FilialenNr, AbfertigungsNr from Rechnungsausgang where RechnungsKundenNr = " & MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value & " AND cast(RechnungsDatum as Date) = '" & txtRechnungsdatum._value & "' AND Sammelrechnung = " & Sammelrechung & " AND ISNULL(Rechnungsausgang.Automailversand,0) = 1 AND Rechnungsausgang.Status IN (2)" & IIf(Firma > 0, " AND Firma_ID =" & Firma, "")
Case Else
SQLString = "select RK_ID, RechnungsNr, FilialenNr, AbfertigungsNr from Rechnungsausgang where RechnungsKundenNr = " & MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value & " AND cast(Abfertigungsdatum as Date) <= '" & txtRechnungsdatum._value & "' AND Sammelrechnung = " & Sammelrechung & " AND ISNULL(Rechnungsausgang.Automailversand,0) = 1 AND Rechnungsausgang.Status IN (2) " & IIf(RechnungsNr > 0, " AND Rechnungsausgang.RechnungsNr =" & RechnungsNr, "") & IIf(Firma > 0, " AND Firma_ID =" & Firma, "")
SQLString = "select RK_ID, RechnungsNr, FilialenNr, AbfertigungsNr from Rechnungsausgang where RechnungsKundenNr = " & MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value & " AND cast(RechnungsDatum as Date) = '" & txtRechnungsdatum._value & "' AND Sammelrechnung = " & Sammelrechung & " AND ISNULL(Rechnungsausgang.Automailversand,0) = 1 AND Rechnungsausgang.Status IN (2)" & IIf(cboFirma._value > 0, " AND Firma_ID =" & cboFirma._value, "")
Case Else
SQLString = "select RK_ID, RechnungsNr, FilialenNr, AbfertigungsNr from Rechnungsausgang where RechnungsKundenNr = " & MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value & " AND cast(Abfertigungsdatum as Date) <= '" & txtRechnungsdatum._value & "' AND Sammelrechnung = " & Sammelrechung & " AND ISNULL(Rechnungsausgang.Automailversand,0) = 1 AND Rechnungsausgang.Status IN (2) " & IIf(RechnungsNr > 0, " AND Rechnungsausgang.RechnungsNr =" & RechnungsNr, "") & IIf(cboFirma._value > 0, " AND Firma_ID =" & cboFirma._value, "")
End Select
dtRE = (New SQL).loadDgvBySql(SQLString, "FMZOLL")
@@ -1038,7 +1038,7 @@ Public Class frmFaktSammelRgDrucken
Dim fun As New cAutomailversand
Dim ShowInfo As String = ""
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, getAvisoIds(), getKundenNr(), cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked, ShowInfo)
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, cboFirma._value, getAvisoIds(), getKundenNr(), cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked, ShowInfo)
If cbxMailoeffnen.Checked AndAlso Not ShowInfo.Contains("Empfänger") Then
ShowInfo = ""

View File

@@ -1897,7 +1897,8 @@ Public Class usrCntlFaktAbrechnung
'soll immer alle POS bekommen! laut Lidya! 28.04.2025 - aber nicht im Excel-Format sondern als PDF-Batinic 15.05.2025
Dim dtPOSList As New DataTable
Dim prt As String = FUNC.generatePosList(USTV, "", "", "", False, "prt", dtPOSList, isVZ, IIf(RECHNUNG IsNot Nothing, RECHNUNG.RK_ID, -1))
Dim hasVZalreadybilled As Boolean = USTV.hasVZalreadyBilled()
Dim prt As String = FUNC.generatePosList(USTV, "", "", "", False, "prt", dtPOSList, isVZ, IIf(RECHNUNG IsNot Nothing, RECHNUNG.RK_ID, -1), hasVZalreadybilled)
If prt <> "" Then
Try
@@ -1907,12 +1908,12 @@ Public Class usrCntlFaktAbrechnung
If Not String.IsNullOrWhiteSpace(tmpPath) Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "POS_LISTE", "", "", SPEDBUCH.AbfertigungsNr & ".pdf", USTV.UStVAn_KuNr, False)
If Not DS.hasITEMS OrElse (DS.hasITEMS AndAlso DS.da_date < USTV.UStVAn_Zeitstempel) OrElse isVZ Then 'ahhh die VZ
If Not DS.hasITEMS OrElse (DS.hasITEMS AndAlso DS.da_date < USTV.UStVAn_letzteAenderung) OrElse isVZ OrElse (hasVZalreadybilled And Not isVZ) Then 'ahhh die VZ
Dim DS_NEW As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "POS_LISTE", "", "", SPEDBUCH.AbfertigungsNr & "_" & RECHNUNG.RK_ID & ".pdf", USTV.UStVAn_KuNr, False) ' Wechsel auf neues Namensschema
If Not DS_NEW.hasITEMS Then
DS_NEW.uploadDataToDATENSERVER(tmpPath,,, False,, True, True)
reportAktualisiert = True
ElseIf DS_NEW.da_date <= USTV.UStVAn_Zeitstempel Then
ElseIf DS_NEW.da_date <= USTV.UStVAn_letzteAenderung Then
DS_NEW.uploadDataToDATENSERVER(tmpPath,,, False,, True, True)
reportAktualisiert = True
End If

View File

@@ -150,8 +150,8 @@ Public Class usrcntlVorauskasse
Select Case land
Case "DE"
If SENDUNG.tblSnd_Abfertigungsart_ID = 65 AndAlso brexitEnabled Then 'cbam
cboFirma.changeItem("26")
If SENDUNG.tblSnd_Abfertigungsart_ID = 65 Then 'cbam
cboFirma.changeItem("11")
Else
cboFirma.changeItem("1")
End If

View File

@@ -1835,7 +1835,9 @@ Public Class frmMDM_USTVAntrag
dgvUSTVPositionen.GetOrder()
getValue(USTV_ANTRAG)
USTV_ANTRAG.UStVAn_letzteAenderung = Now()
If USTV_ANTRAG.SAVE Then
init()
dgvUSTVPositionen.SetOrder()
End If
@@ -1889,6 +1891,8 @@ Public Class frmMDM_USTVAntrag
End If
Else
Dim USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag()
@@ -3866,7 +3870,7 @@ Public Class frmMDM_USTVAntrag
Next
SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 1 WHERE [UStVAn_ID] IN (SELECT distinct([UStVAn_ID]) FROM [tblUStVPositionen] WHERE isnull([UStVPo_VZ],0) = 1 and isnull([UStVPo_VZ_RKID],0) = 0)", "FMZOLL") 'Aktualisierung
SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 1, UStVAn_letzteAenderung = getDate() WHERE [UStVAn_ID] IN (SELECT distinct([UStVAn_ID]) FROM [tblUStVPositionen] WHERE isnull([UStVPo_VZ],0) = 1 and isnull([UStVPo_VZ_RKID],0) = 0)", "FMZOLL") 'Aktualisierung
init()
End If
@@ -3902,7 +3906,7 @@ Public Class frmMDM_USTVAntrag
Dim count_nichtAbgerVZ As Integer = -1
count_nichtAbgerVZ = CInt(SQL.getValueTxtBySql("SELECT COUNT(*) FROM [tblUStVPositionen] WHERE [UStVAn_ID] = " & USTV_ANTRAG.UStVAn_ID & " and [UStVPo_VZ] = 1 and isnull(UStVPo_VZ_RKID,0) = 0", "FMZOLL"))
If count_nichtAbgerVZ = 0 Then
SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 0 WHERE [UStVAn_ID] =" & USTV_ANTRAG.UStVAn_ID, "FMZOLL")
SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 0, UStVAn_letzteAenderung = getDate() WHERE [UStVAn_ID] =" & USTV_ANTRAG.UStVAn_ID, "FMZOLL")
End If
init()
@@ -3996,7 +4000,7 @@ Public Class frmMDM_USTVAntrag
Next
If isSet Then SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 1 WHERE [UStVAn_ID] IN (SELECT distinct([UStVAn_ID]) FROM [tblUStVPositionen] WHERE isnull([UStVPo_VZ],0) = 1 and isnull([UStVPo_VZ_RKID],0) = 0)", "FMZOLL") 'Aktualisierung
If isSet Then SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 1, UStVAn_letzteAenderung = getDate() WHERE [UStVAn_ID] IN (SELECT distinct([UStVAn_ID]) FROM [tblUStVPositionen] WHERE isnull([UStVPo_VZ],0) = 1 and isnull([UStVPo_VZ_RKID],0) = 0)", "FMZOLL") 'Aktualisierung
init()
End If

View File

@@ -62,6 +62,7 @@ Public Class cUSTVAntrag
Property UStVAn_Sicherheit As Object = Nothing
Property UStVAn_MWSTEingang_offen As Object = Nothing
Property POSITIONEN As New List(Of cUStVPositionen) '= Nothing
Property UStVAn_letzteAenderung As Object = Nothing
Public hasEntry = False
@@ -133,6 +134,7 @@ Public Class cUSTVAntrag
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVAn_VZoffen", UStVAn_VZoffen)) '
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVAn_Sicherheit", UStVAn_Sicherheit))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVAn_MWSTEingang_offen", UStVAn_MWSTEingang_offen))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVAn_letzteAenderung", UStVAn_letzteAenderung))
Return list
@@ -322,6 +324,18 @@ Public Class cUSTVAntrag
Return -1
End Function
Public Function hasVZalreadyBilled() As Boolean
Try
Return SQL.getValueTxtBySql("SELECT count(*) FROM tblUStVPositionen where UStVAn_ID=" & UStVAn_ID & " and UStVPo_VZ = 1 and UStVPo_VZ_RKID is not null", "FMZOLL",,, "0") > 0
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
Return False
End Function
Public Function DELETE() As Boolean

View File

@@ -1098,7 +1098,7 @@ Public Class cMDMFunctionsAllgemein
End Function
Shared Function generatePosList(USTV_ANTRAG As cUSTVAntrag, posId As String, Antrag_LandKz As String, SteuerNR As String, openFile As Boolean, type As String, ByRef dt As DataTable, Optional isVZ As Boolean = False, Optional RK_ID As Integer = -1) As String
Shared Function generatePosList(USTV_ANTRAG As cUSTVAntrag, posId As String, Antrag_LandKz As String, SteuerNR As String, openFile As Boolean, type As String, ByRef dt As DataTable, Optional isVZ As Boolean = False, Optional RK_ID As Integer = -1, Optional hasVZalredyBilled As Boolean = False) As String
Dim sql As New SQL
@@ -1107,6 +1107,8 @@ Public Class cMDMFunctionsAllgemein
sqlWHere = " And UStVPo_ID in(" & posId & ")"
ElseIf isVZ Then
sqlWHere = " and UStVPo_VZ = 1 And (UStVPo_VZ_RKID is null" & IIf(RK_ID > 0, " or UStVPo_VZ_RKID = " & RK_ID & ")", ")")
ElseIf hasVZalredyBilled Then
sqlWHere = " and isnull(UStVPo_VZ,0) = 0 And UStVPo_VZ_RKID is null "
End If
Dim StringSQL = "SELECT [UStVPo_ID] as Number ,[UStVPo_ReDat] as 'Date of Invoice',[UStVPo_ReNr] as 'Number of invoice' ,[UStVPo_Leistungsbezeichnung] as 'Name of service',[UStVPo_Leistender] as 'Name of supplier',leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as Street,
@@ -1164,9 +1166,9 @@ Public Class cMDMFunctionsAllgemein
End If
header2 = "VAT NO.: " & USTV_ANTRAG.UStVAn_Steuernummer & " " & "Name/Company: " & AD.Name_1 & " " & AD.Name_2 & " " & "VAT in " & Antrag_LandKz & ": " & SteuerNR
End If
End If
Return cProgramFunctions.genExcelFromDT_NEW_(dtNew, {"K1:K" & (dtNew.Rows.Count + 1)},, header1, header2, IIf(USTV_ANTRAG.UStVAn_Währungscode = "EUR", "", ""), True, "J", True, True, openFile)
Return cProgramFunctions.genExcelFromDT_NEW_(dtNew, {"K1:K" & (dtNew.Rows.Count + 1)},, header1, header2, IIf(USTV_ANTRAG.UStVAn_Währungscode = "EUR", "", ""), True, "J", True, True, openFile)
Else

View File

@@ -464,9 +464,14 @@ Public Class cRechnungsausgang
End Function
Public Function SAVE_DruckDatumZeit() As Boolean
Public Function SAVE_DruckDatumZeit(Optional sendmanuell As Boolean = False, Optional isAutoMail As Boolean = False) As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " UPDATE Rechnungsausgang SET DruckDatumZeit=@DruckDatumZeit WHERE RK_ID=@RK_ID "
Dim SQLStringZusatz = ""
If isAutoMail AndAlso sendmanuell Then
SQLStringZusatz = ", Automailversand_sent=@DruckDatumZeit"
End If
Dim sqlstr = " UPDATE Rechnungsausgang SET DruckDatumZeit=@DruckDatumZeit " & SQLStringZusatz & " WHERE RK_ID=@RK_ID "
Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
End Function