Plose-Prüfung, etc.

This commit is contained in:
2025-10-06 15:04:27 +02:00
parent 58047b88c7
commit bb9ec487cf
2 changed files with 82 additions and 34 deletions

View File

@@ -247,15 +247,15 @@ Public Class cPLOSE_Inv_Data
If Regex.IsMatch(filename, "^[A-Za-z]") Then
Dim match As Match = Regex.Match(filename, "\d+")
If match.Success Then
filename3 = filename.Substring(match.Index).Trim
filename4 = filename.Replace("-", "_")
End If
Dim match As Match = Regex.Match(filename, "\d+")
If match.Success Then
filename3 = filename.Substring(match.Index).Trim
filename4 = filename.Replace("-", "_")
End If
ElseIf filename.Contains("_dk") Then 'Sonderlogik Dänemark
ElseIf filename.Contains("_dk") Then 'Sonderlogik Dänemark
filename3 = filename.Replace(jahrEnd & "-", jahrEnd)
filename3 = filename.Replace(jahrEnd & "-", jahrEnd)
filename4 = filename.Replace(jahrEnd & "-", jahrEnd)
filename3 = filename3.Replace(" ", "")
@@ -263,43 +263,43 @@ Public Class cPLOSE_Inv_Data
ElseIf filename.Contains("_fy") Then 'Sonderlogik Norwegen
Dim indexOfFirst_ = filename.IndexOf("_fy")
If filename.Length > indexOfFirst_ + 5 Then
Dim month = filename.Substring(indexOfFirst_ + 3, 2)
If IsNumeric(month) Then
Dim test = month.IndexOf(0)
Dim monthWithoutLeadingZero As String = month
If monthWithoutLeadingZero.IndexOf(0) = 0 Then monthWithoutLeadingZero = monthWithoutLeadingZero.Replace("0", "")
filename3 = filename.Replace(jahrEnd & month, jahrEnd & monthWithoutLeadingZero)
Dim indexOfFirst_ = filename.IndexOf("_fy")
If filename.Length > indexOfFirst_ + 5 Then
Dim month = filename.Substring(indexOfFirst_ + 3, 2)
If IsNumeric(month) Then
Dim test = month.IndexOf(0)
Dim monthWithoutLeadingZero As String = month
If monthWithoutLeadingZero.IndexOf(0) = 0 Then monthWithoutLeadingZero = monthWithoutLeadingZero.Replace("0", "")
filename3 = filename.Replace(jahrEnd & month, jahrEnd & monthWithoutLeadingZero)
filename4 = filename.Replace(jahrEnd & month, jahrEnd & monthWithoutLeadingZero)
filename3 = filename3.Replace(" ", "")
filename4 = filename4.Replace(" ", "")
End If
End If
End If
Dim daId As Integer = 0
If filename3 = "" Then
daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "')", "FMZOLL",,, 0))
Else
daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "' or da_name like '%" & filename3 & "' or da_name like '%" & filename4 & "')", "FMZOLL",,, 0))
End If
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
Dim Path As String = DS.GET_TOP1_PATH()
If Path <> "" And System.IO.File.Exists(Path) Then
SQL.doSQL("UPDATE [tblPLOSE_Inv_Data] SET plInv_daId = " & DS.da_id & ", plInv_daIdgesetztDatum = getdate() WHERE plInv_Id = " & r.Item("plInv_Id") & " AND plInv_daId is null", "FMZOLL")
End If
End If
Dim daId As Integer = 0
If filename3 = "" Then
daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "')", "FMZOLL",,, 0))
Else
daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "' or da_name like '%" & filename3 & "' or da_name like '%" & filename4 & "')", "FMZOLL",,, 0))
End If
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
Dim Path As String = DS.GET_TOP1_PATH()
If Path <> "" And System.IO.File.Exists(Path) Then
SQL.doSQL("UPDATE [tblPLOSE_Inv_Data] SET plInv_daId = " & DS.da_id & ", plInv_daIdgesetztDatum = getdate() WHERE plInv_Id = " & r.Item("plInv_Id") & " AND plInv_daId is null", "FMZOLL")
End If
End If
End If
Next
@@ -317,6 +317,33 @@ Public Class cPLOSE_Inv_Data
End Function
Public Shared Function checkImport() As Boolean
Dim mehrfachIMportiert_SQL As String = " select plose_Dateiname, count(distinct(plose_Einlesedatum)) as Einlesedatum from tblPLOSE_Details
where plose_Fakturiert = 0
group by plose_Dateiname
having count(distinct(plose_Einlesedatum)) > 1
order by plose_Dateiname"
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dtMehrfachImportiert_DT As DataTable = SQL.loadDgvBySql(mehrfachIMportiert_SQL, "FMZOLL")
If dtMehrfachImportiert_DT.Rows.Count > 0 Then
If vbYes = MsgBox("ACHTUNG, es wurden " & dtMehrfachImportiert_DT.Rows.Count & " Abrechnungsdaten mehrfach importiert!" & vbNewLine & "Info anzeigen?", vbYesNo) Then
cProgramFunctions.genExcelFromDT_NEW(dtMehrfachImportiert_DT,,, "Mehrfach importierte Dateien")
End If
Return False
Else
Return True
End If
End Function

View File

@@ -3473,6 +3473,7 @@ Public Class usrctlProcedures
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(fd.FileName, Encoding.Default)
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(";")
MyReader.HasFieldsEnclosedInQuotes = True ' <— Important line! (semicolon inside quotes will be ignored)
Dim currentRow As String()
While Not MyReader.EndOfData
Try
@@ -3709,7 +3710,27 @@ Public Class usrctlProcedures
End While
If savedDY Then
sql.doSQL("EXECUTE dbo.sp_DeleteDuplicateZollmeldungen", "FMZOLL")
'zuerst alle doppelten löschen und die fehlerhaften zuerst
Dim sql_deleleMultEntries As String = "
WITH Doppelte AS (
SELECT
*,
ROW_NUMBER() OVER (
PARTITION BY Registriernummer_MRN, PositionNo, Positionsunterlagenzeile
ORDER BY (SELECT NULL)
) AS rn
FROM [tbl_DY_Zollmeldungen_Import]
)
DELETE FROM Doppelte
WHERE rn > 1 and importfile is null;"
sql.doSQL(sql_deleleMultEntries, "AVISO")
'dann generell alle doppelten löschen
sql.doSQL("EXECUTE dbo.sp_DeleteDuplicateZollmeldungen", "AVISO")
End If
End Using