plose
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.Reflection
|
||||
Imports System.Text.RegularExpressions
|
||||
Public Class cPLOSE_Inv_Data
|
||||
|
||||
Property plInv_Id As Integer
|
||||
@@ -27,6 +28,7 @@ Public Class cPLOSE_Inv_Data
|
||||
Property plInv_UStVAn_ID As Object = Nothing
|
||||
Property plInv_Archiv As Boolean = False
|
||||
Property plInv_ArchiviertDatum As Object = Nothing
|
||||
Property plInv_daIdgesetztDatum As Object = Nothing
|
||||
|
||||
|
||||
Public hasEntry = False
|
||||
@@ -41,9 +43,14 @@ Public Class cPLOSE_Inv_Data
|
||||
Me.plInv_Id = plInv_Id
|
||||
LOAD()
|
||||
End Sub
|
||||
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
||||
Function getParameterList(Optional withPrimaryKey As Boolean = True) As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
||||
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("plInv_Id", plInv_Id,, True))
|
||||
|
||||
If withPrimaryKey Then
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("plInv_Id", plInv_Id,, True))
|
||||
Else
|
||||
'list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("plInv_Id", plInv_Id))
|
||||
End If
|
||||
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("plInv_SupplierRechnungsDatum", plInv_SupplierRechnungsDatum))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("plInv_SupplierRechnungsNr", plInv_SupplierRechnungsNr))
|
||||
@@ -68,6 +75,7 @@ Public Class cPLOSE_Inv_Data
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("plInv_UStVAn_ID", plInv_UStVAn_ID))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("plInv_Archiv", plInv_Archiv))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("plInv_ArchiviertDatum", plInv_ArchiviertDatum))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("plInv_daIdgesetztDatum", plInv_daIdgesetztDatum))
|
||||
|
||||
Return list
|
||||
End Function
|
||||
@@ -88,6 +96,23 @@ Public Class cPLOSE_Inv_Data
|
||||
Return (plInv_Id > 0)
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Public Function SAVEUNQIUE() As Boolean
|
||||
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
||||
|
||||
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT plInv_Id FROM tblPLOSE_Inv_Data WHERE plInv_SupplierRechnungsDatum=@plInv_SupplierRechnungsDatum and plInv_SupplierRechnungsNr=@plInv_SupplierRechnungsNr and plInv_SupplierCountry=@plInv_SupplierCountry and plInv_LieferantCode=@plInv_LieferantCode and plInv_PLOSEKundennummer=@plInv_PLOSEKundennummer) " &
|
||||
" BEGIN " & getUpdateCmdUnique() & " END " &
|
||||
" Else " &
|
||||
" BEGIN " & getInsertCmd() & " END " &
|
||||
" commit tran "
|
||||
|
||||
plInv_Id = SQL.doSQLVarListID(plInv_Id, sqlstr, "FMZOLL", , list)
|
||||
Return (plInv_Id > 0)
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Public Sub LOAD()
|
||||
Try
|
||||
hasEntry = False
|
||||
@@ -137,6 +162,25 @@ Public Class cPLOSE_Inv_Data
|
||||
Return ""
|
||||
End Function
|
||||
|
||||
Public Function getUpdateCmdUnique() As String
|
||||
Try
|
||||
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
||||
|
||||
Dim str As String = ""
|
||||
For Each i In list
|
||||
If Not i.isPrimaryParam Then
|
||||
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
|
||||
End If
|
||||
Next
|
||||
str = str.Substring(0, str.Length - 1) 'wg. ','
|
||||
Return (" UPDATE [tblPLOSE_Inv_Data] SET " & str & " WHERE plInv_SupplierRechnungsDatum=@plInv_SupplierRechnungsDatum and plInv_SupplierRechnungsNr=@plInv_SupplierRechnungsNr and plInv_SupplierCountry=@plInv_SupplierCountry and plInv_LieferantCode=@plInv_LieferantCode and plInv_PLOSEKundennummer=@plInv_PLOSEKundennummer ")
|
||||
|
||||
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 ""
|
||||
End Function
|
||||
|
||||
|
||||
Public Function getInsertCmd() As String
|
||||
Try
|
||||
@@ -158,5 +202,79 @@ Public Class cPLOSE_Inv_Data
|
||||
Return ""
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Public Shared Function setDatenarchivID(jahr As Integer, Optional message As Boolean = False) As Boolean
|
||||
|
||||
If jahr > Now.Year Then Return False
|
||||
If jahr < 2020 Then Return False
|
||||
|
||||
|
||||
Dim REohneDAID As String = "Select plInv_Id, plInv_PdfFileName, plInv_daId FROM [tblPLOSE_Inv_Data] where plInv_daId Is null And plInv_PdfFileName Is Not null And Year(plInv_SupplierRechnungsDatum) = " & jahr
|
||||
|
||||
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
Dim dtREohneDAID As DataTable = SQL.loadDgvBySql(REohneDAID, "FMZOLL")
|
||||
|
||||
If dtREohneDAID.Rows.Count > 0 Then
|
||||
|
||||
If IIf(message, vbYes = MsgBox("Bei " & dtREohneDAID.Rows.Count & " PLOSE-Rechnungen fehlt die Zuweisung zur Datenarchiv-ID (PDF)." & vbNewLine & "Datenarchiv-ID setzen?", vbYesNoCancel), True) Then
|
||||
|
||||
For Each r As DataRow In dtREohneDAID.Rows
|
||||
|
||||
Dim filename As String = IIf(Not IsDBNull(r.Item("plInv_PdfFileName")), r.Item("plInv_PdfFileName"), "")
|
||||
Dim filename2 As String = ""
|
||||
Dim filename3 As String = ""
|
||||
Dim filename4 As String = ""
|
||||
|
||||
|
||||
If filename <> "" Then
|
||||
|
||||
filename2 = filename.Replace("-", "_")
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
|
||||
If message Then MsgBox("alle Rechnungsdaten gesetzt!")
|
||||
Return True
|
||||
End If
|
||||
|
||||
Else
|
||||
If message Then MsgBox("keine fehlenden Rechnunngsdaten vorhanden!")
|
||||
Return False
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
Reference in New Issue
Block a user