From 0b9f816fadaf09e4f7d0127bfc4b39f2201f22c2 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 13 Mar 2025 09:12:15 +0100 Subject: [PATCH] Fremdrechnungen, offeneAntraege, etc. --- SDL/My Project/AssemblyInfo.vb | 4 +-- SDL/USTV/frmUSTVoffeneAntraege.vb | 32 ++++++++++++++++------- SDL/mdm/usrcntlFremdrechnungen.vb | 27 +++++-------------- VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb | 6 +++++ 4 files changed, 36 insertions(+), 33 deletions(-) diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 9a7abcd7..c187bf12 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/SDL/USTV/frmUSTVoffeneAntraege.vb b/SDL/USTV/frmUSTVoffeneAntraege.vb index 4421bce3..88a583b9 100644 --- a/SDL/USTV/frmUSTVoffeneAntraege.vb +++ b/SDL/USTV/frmUSTVoffeneAntraege.vb @@ -511,6 +511,8 @@ Public Class frmUSTVoffeneAntraege Dim sqlwhereLand = "" Dim sqlwhereSteuerNr = "" + Dim kundenLandISO2 As String = "" + Dim SQLPLOSEUMSTELLUNG = "" If kdnr > 0 Then @@ -528,6 +530,15 @@ Public Class frmUSTVoffeneAntraege If cbxKundeLand._value <> "" Then sqlwhereLand &= " and Kundenland = '" & cbxKundeLand._value & "'" + 'LandKZ vom Kunden muss auf ISO2 konvertiert werden, weil da ein Misch-Masch in der Datenbank herrscht! + If cbxKundeLand._value.Length = 2 Then + kundenLandISO2 = cbxKundeLand._value + ElseIf cbxKundeLand._value.Length = 3 Then + kundenLandISO2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(cbxKundeLand._value) + ElseIf cbxKundeLand._value.Length = 1 Then + kundenLandISO2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO1Land(cbxKundeLand._value) + End If + End If If cbxUStV.Checked Then @@ -538,17 +549,18 @@ Public Class frmUSTVoffeneAntraege sqlwhereLand &= " and isnull(UStVAn_ID,0) = 0 " End If + If dtkeineMWST.Rows.Count > 0 AndAlso kundenLandISO2 <> "" Then + Dim dtkeineMWST_ohneContraint As DataTable = dtkeineMWST.Select("Land = '" & kundenLandISO2 & "'").CopyToDataTable + Dim counter = 0 + Dim landBez As String = "" + For Each row As DataRow In dtkeineMWST_ohneContraint.Rows + landBez &= "'" & row.Item("Erstattungsland") & "'" + counter = counter + 1 + If (dtkeineMWST_ohneContraint.Rows.Count <> 0 And counter <> dtkeineMWST_ohneContraint.Rows.Count) Then landBez &= "," + Next + sqlwhereLand &= " AND Einreichland not in (" & landBez & ")" - Dim dtkeineMWST_ohneContraint As DataTable = dtkeineMWST.Select("Lieferant = ''").CopyToDataTable - Dim counter = 0 - Dim landBez As String = "" - For Each row As DataRow In dtkeineMWST_ohneContraint.Rows - landBez = "'" & row.Item("Erstattungsland") & "'" - counter = counter + 1 - If (dtkeineMWST_ohneContraint.Rows.Count <> 0 And counter <> dtkeineMWST_ohneContraint.Rows.Count) Then landBez &= "," - Next - sqlwhereLand &= " AND Einreichland not in (" & landBez & ")" - + End If Dim year = CDate(dat_Sum_Von.Value).Year diff --git a/SDL/mdm/usrcntlFremdrechnungen.vb b/SDL/mdm/usrcntlFremdrechnungen.vb index 88645df3..180ca658 100644 --- a/SDL/mdm/usrcntlFremdrechnungen.vb +++ b/SDL/mdm/usrcntlFremdrechnungen.vb @@ -337,15 +337,17 @@ Public Class usrcntlFremdrechnungen 'ORIGINAL-RECHNUNG senden wenn: '1. wenn die Rechnung in dem Land in dem er ansässig ist ausgestellt wurde (rumän. Kunde – Rechnung ausgestellt in Rumänien = z.B. IDS in RO getankt…) - If land <> "" Then + If land <> "" Then 'LandKZ vom Kunden muss auf ISO2 konvertiert werden, weil da ein Misch-Masch in der Datenbank herrscht! If KUNDE.LandKz <> "" Then Dim landKZiso2 = "" + If KUNDE.LandKz.Length = 2 Then landKZiso2 = KUNDE.LandKz ElseIf KUNDE.LandKz.Length = 3 Then landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(KUNDE.LandKz) - + ElseIf KUNDE.LandKz.Length = 1 Then + landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO1Land(KUNDE.LandKz) End If SQLWhere &= " AND " & land & " not in ('" & landKZiso2 & "')" @@ -353,7 +355,6 @@ Public Class usrcntlFremdrechnungen End If '2. wenn die Rechnung die Summe NULL aufweist - Select Case aktLieferant Case "UTA" : If Not alle Then SQLWhere &= " AND Gesamtbetrag_Brutto_in_Darstellwährung <> 0 AND Art = 'RE'" 'UTA bei UTA auch EPN ausblenden! Case "PLOSE" : If Not alle Then SQLWhere &= " AND plInv_Bruttobetrag <> 0" 'PLOSE @@ -363,17 +364,6 @@ Public Class usrcntlFremdrechnungen Case "ALLE" : If alle Then SQLWhere &= " AND temp.Nettobetrag <> 0" 'ALLE End Select - - 'Dim counter = 0 - 'For Each n In List - ' gsnr &= n.ToString() - ' counter = counter + 1 - ' If (List.Count <> 0 And counter <> List.Count) Then - ' gsnr &= "," - ' End If - - - '3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt If land <> "" AndAlso dtkeineMWST.Rows.Count > 0 Then Dim dtkeineMWST_ohneContraint As DataTable = dtkeineMWST.Select("Lieferant = ''").CopyToDataTable @@ -387,10 +377,7 @@ Public Class usrcntlFremdrechnungen SQLWhere &= " AND " & land & " not in (" & landBez & ")" End If - - '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 = "" @@ -432,7 +419,8 @@ Public Class usrcntlFremdrechnungen landKZiso2 = KUNDE.LandKz ElseIf KUNDE.LandKz.Length = 3 Then landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(KUNDE.LandKz) - + ElseIf KUNDE.LandKz.Length = 1 Then + landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO1Land(KUNDE.LandKz) End If SQLWhere &= " AND " & land & " not in ('" & landKZiso2 & "')" @@ -440,13 +428,11 @@ Public Class usrcntlFremdrechnungen End If '2. wenn die Rechnung die Summe NULL aufweist - Select Case aktLieferant Case "IDS" : If Not alle Then SQLWhere &= " AND [AmminclVAT] <> 0" 'IDS End Select '3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt - If land <> "" AndAlso dtkeineMWST.Rows.Count > 0 Then Dim dtkeineMWST_IDS As DataTable = dtkeineMWST.Select("Lieferant = 'IDS'").CopyToDataTable Dim counter = 0 @@ -462,7 +448,6 @@ Public Class usrcntlFremdrechnungen '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 = "" diff --git a/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb b/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb index e7bcac9d..2f8cb588 100644 --- a/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb +++ b/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb @@ -553,6 +553,12 @@ BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, [Control], New Object( End Function + Shared Function getISO2LandFromISO1Land(Iso1Land As String) + Dim sqlstr = "SELECT TOP 1 isnull([Länderverzeichnis für die Außenhandelsstatistik].LandKz,'') AS LandKzISO2 FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN Währungstabelle ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = Währungstabelle.Währungsschlüssel WHERE Währungstabelle.LandKz='" & Iso1Land & "' " + Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL + Return SQL.getValueTxtBySql(sqlstr, "FMZOLL") + End Function + Shared Function getISO1Land(LandKz As String) Dim sqlstr = "SELECT TOP 1 isnull(Währungstabelle.LandKz,'') AS LandKzISO1 FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN Währungstabelle ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = Währungstabelle.Währungsschlüssel WHERE [Länderverzeichnis für die Außenhandelsstatistik].LandKz='" & LandKz & "' " Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL