fremdrechnungen

This commit is contained in:
2025-10-30 14:11:55 +01:00
parent fbbe752605
commit bfdd2ba9b3
2 changed files with 58 additions and 27 deletions

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben: ' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.4.7.9")> <Assembly: AssemblyVersion("1.4.8.0")>
<Assembly: AssemblyFileVersion("1.4.7.9")> <Assembly: AssemblyFileVersion("1.4.8.0")>

View File

@@ -450,15 +450,23 @@ Public Class usrcntlFremdrechnungen
End Function End Function
Private Function setSQLDetailWhere(aktLieferant As String, land As String, Optional alle As Boolean = False) As String Private Function setSQLDetailWhere(aktLieferant As String, land As String, Optional alle As Boolean = False, Optional KundenNr_Input As Integer = -1, Optional dtKundeMWSTTemp As DataTable = Nothing) As String
'das hier ist nur PRO KUNDE möglich!!! 'das hier ist nur PRO KUNDE möglich!!!
Dim SQLWhere = "" Dim SQLWhere = ""
If cbx.Checked AndAlso KUNDE IsNot Nothing Then If (cbx.Checked AndAlso KUNDE IsNot Nothing AndAlso KUNDE.KundenNr > 0 OrElse cbx.Checked AndAlso KundenNr_Input > 0) Then
Dim erw As New cKundenErweitert(KUNDE.KundenNr) Dim checkKundenNR As Integer = -1
If KUNDE.KundenNr > 0 Then
checkKundenNR = KUNDE.KundenNr
ElseIf KundenNr_Input > 0 Then
checkKundenNR = KundenNr_Input
KUNDE = kundenSQL.getKundeByKdNr(KundenNr_Input)
End If
Dim erw As New cKundenErweitert(checkKundenNR)
If erw.kde_keineMWSt Then Return SQLWhere If erw.kde_keineMWSt Then Return SQLWhere
SQLWhere &= "AND (" SQLWhere &= "AND ("
'ORIGINAL-RECHNUNG senden wenn: 'ORIGINAL-RECHNUNG senden wenn:
@@ -499,21 +507,45 @@ Public Class usrcntlFremdrechnungen
End If End If
'4. Rechnungen der Länder, in denen der Kunde selber MWST beantragt '4. Rechnungen der Länder, in denen der Kunde selber MWST beantragt
If land <> "" AndAlso dtKundeMWST.Rows.Count > 0 Then
Dim counter = 0
Dim landBez As String = ""
For Each row As DataRow In dtKundeMWST.Rows
landBez &= "'" & row.Item("LandKz") & "'"
counter = counter + 1
If (dtKundeMWST.Rows.Count <> 0 And counter <> dtKundeMWST.Rows.Count) Then landBez &= ","
Next
SQLWhere &= " OR " & land & " in (" & landBez & ")"
End If
SQLWhere &= ")"
End If
If dtKundeMWST Is Nothing Then
If dtKundeMWSTTemp IsNot Nothing Then
If land <> "" AndAlso dtKundeMWSTTemp.Rows.Count > 0 Then
Dim counter = 0
Dim landBez As String = ""
For Each row As DataRow In dtKundeMWSTTemp.Rows
landBez &= "'" & row.Item("LandKz") & "'"
counter = counter + 1
If (dtKundeMWSTTemp.Rows.Count <> 0 And counter <> dtKundeMWSTTemp.Rows.Count) Then landBez &= ","
Next
SQLWhere &= " OR " & land & " in (" & landBez & ")"
End If
SQLWhere &= ")"
End If
Else
If land <> "" AndAlso dtKundeMWST.Rows.Count > 0 Then
Dim counter = 0
Dim landBez As String = ""
For Each row As DataRow In dtKundeMWST.Rows
landBez &= "'" & row.Item("LandKz") & "'"
counter = counter + 1
If (dtKundeMWST.Rows.Count <> 0 And counter <> dtKundeMWST.Rows.Count) Then landBez &= ","
Next
SQLWhere &= " OR " & land & " in (" & landBez & ")"
End If
SQLWhere &= ")"
End If
End If
Return SQLWhere Return SQLWhere
End Function End Function
@@ -845,11 +877,8 @@ Public Class usrcntlFremdrechnungen
Dim dtKundeMWSTTemp As DataTable = (New SQL).loadDgvBySql("select LandKz from tblKundenMWST where KdNr = " & KUNDE_TEMP.KundenNr, "FMZOLL") Dim dtKundeMWSTTemp As DataTable = (New SQL).loadDgvBySql("select LandKz from tblKundenMWST where KdNr = " & KUNDE_TEMP.KundenNr, "FMZOLL")
'2. wenn die Rechnung die Summe NULL aufweist '2. wenn die Rechnung die Summe NULL aufweist
'3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt (auch nicht auf Diesel -> IDS) '3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt (auch nicht auf Diesel -> IDS)
'4. Rechnungen der Länder, in denen der Kunde selber MWST beantragt '4. Rechnungen der Länder, in denen der Kunde selber MWST beantragt
@@ -945,7 +974,7 @@ Public Class usrcntlFremdrechnungen
Dim sendÍnvoice As Boolean = IIf(onlyRelevantInvioces AndAlso KUNDE.KundenNr = 0, False, True) Dim sendÍnvoice As Boolean = IIf(onlyRelevantInvioces AndAlso KUNDE.KundenNr = 0, False, True)
If onlyRelevantInvioces AndAlso Lieferant <> "IDS" AndAlso erw.kde_keineMWSt Then If onlyRelevantInvioces AndAlso erw.kde_keineMWSt Then ' AndAlso Lieferant <> "IDS"
sendÍnvoice = True 'dann immer mitschicken! sendÍnvoice = True 'dann immer mitschicken!
End If End If
@@ -960,8 +989,8 @@ Public Class usrcntlFremdrechnungen
'3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt -> dtkeineMWST '3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt -> dtkeineMWST
If Not sendÍnvoice AndAlso landKZiso2 <> "" AndAlso dtkeineMWST.Rows.Count > 0 Then If Not sendÍnvoice AndAlso landKZiso2 <> "" AndAlso dtkeineMWST.Rows.Count > 0 Then
Dim rows() As DataRow = dtkeineMWST.Select("Lieferant <> 'IDS' AND Land = '" & landKZiso2 & "' and Erstattungsland = '" & row.Cells("Land").Value & "'") Dim rows() As DataRow = dtkeineMWST.Select("Lieferant <> 'IDS' AND Land = '" & landKZiso2 & "' and Erstattungsland = '" & row.Cells("Land").Value & "'")
Dim dtkeineMWST_ohneContraint As New DataTable Dim dtkeineMWST_ohneContraint As New DataTable
If rows.Length > 0 Then dtkeineMWST_ohneContraint = rows.CopyToDataTable() If rows.Length > 0 Then dtkeineMWST_ohneContraint = rows.CopyToDataTable()
If dtkeineMWST_ohneContraint.Rows.Count > 0 Then sendÍnvoice = True If dtkeineMWST_ohneContraint.Rows.Count > 0 Then sendÍnvoice = True
End If End If
@@ -994,8 +1023,10 @@ Public Class usrcntlFremdrechnungen
If Lieferant = "IDS" Then If Lieferant = "IDS" Then
'IDS hat wieder sonderlogik
Dim dt As New DataTable Dim dt As New DataTable
dt = initDGVRechnungsdetails(row.Cells("invoice_id").Value, True) dt = initDGVRechnungsdetails(row.Cells("invoice_id").Value, True, kvp.Key, dtKundeMWSTTemp)
For Each r As DataRow In dt.Rows For Each r As DataRow In dt.Rows
@@ -1436,11 +1467,11 @@ Public Class usrcntlFremdrechnungen
End Sub End Sub
Private Function initDGVRechnungsdetails(rechnugnsID As Integer, Optional setDatatable As Boolean = False) As DataTable Private Function initDGVRechnungsdetails(rechnugnsID As Integer, Optional setDatatable As Boolean = False, Optional KundenNr_Input As Integer = -1, Optional dtKundeMWSTTemp As DataTable = Nothing) As DataTable
Dim sql = " select [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer, CustomerCode as Kundennummer,[daId],[TransactionVolume] as Transaktionsmenge,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt, Dim sql = " select [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer, CustomerCode as Kundennummer,[daId],[TransactionVolume] as Transaktionsmenge,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt,
cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden,[Country] as Land cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden,[Country] as Land
FROM [VERAG].[dbo].[tblIDSInvoicesNewSplittedByCountry] WHERE [TotalInvoiceId] = " & rechnugnsID & setSQLDetailWhere(aktLieferant, "Country") FROM [VERAG].[dbo].[tblIDSInvoicesNewSplittedByCountry] WHERE [TotalInvoiceId] = " & rechnugnsID & setSQLDetailWhere(aktLieferant, "Country", , KundenNr_Input, dtKundeMWSTTemp)
If setDatatable Then If setDatatable Then