Prozeduren, Mailsender, MSE-Automatik

This commit is contained in:
2024-10-18 09:50:30 +02:00
parent 3950f2f100
commit ad16598414
13 changed files with 1158 additions and 1870 deletions

View File

@@ -137,7 +137,6 @@
<Compile Include="cATEZWorker.vb" />
<Compile Include="cOREGONWorker.vb" />
<Compile Include="cMAVIWorker.vb" />
<Compile Include="cUTA.vb" />
<Compile Include="frmNachrichtenVerarbeitung_MDM_divers.Designer.vb">
<DependentUpon>frmNachrichtenVerarbeitung_MDM_divers.vb</DependentUpon>
</Compile>

File diff suppressed because it is too large Load Diff

View File

@@ -3918,8 +3918,8 @@ Public Class cWorker_NCTS
End Function
Shared Function readNCTS_Ueberlassungsmeldung009(FORM As frmDYNachrichtenVerarbeitung, d As String, ByRef statusTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As String
Try
' Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp.LoadFromFile(d)
Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE_009.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE_009.UeberlassungsmeldungMRTyp.LoadFromFile(d)
Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp.LoadFromFile(d)
'Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE_009.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE_009.UeberlassungsmeldungMRTyp.LoadFromFile(d)
Dim MRN = ""
Dim division = ""
Dim Wiedergestellungsdatum As Object = Nothing
@@ -3954,19 +3954,19 @@ Public Class cWorker_NCTS
Wiedergestellungsdatum = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Wiedergestellungsdatum
' bearbeiter=NCTS.EinzelUeberlassungsmeldung.KopfDaten.
If NCTS.EinzelUeberlassungsmeldung.TransitOperation IsNot Nothing Then
If NCTS.EinzelUeberlassungsmeldung.TransitOperation.LimitDate.ToString <> "" Then 'Sollte mit Version 009 hier enthalten sein!
Wiedergestellungsdatum = DateTime.ParseExact(NCTS.EinzelUeberlassungsmeldung.TransitOperation.LimitDate, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)
If NCTS.EinzelUeberlassungsmeldung.TransitOperation.AdditionalInformation IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.ApplicationInternalData.AdditionalDetails IsNot Nothing Then
For Each a In NCTS.EinzelUeberlassungsmeldung.TransitOperation.ApplicationInternalData.AdditionalDetails
If a.Key = "LimitDate" Then
Wiedergestellungsdatum = DateTime.ParseExact(a.Value, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)
'If NCTS.EinzelUeberlassungsmeldung.TransitOperation IsNot Nothing Then
' If NCTS.EinzelUeberlassungsmeldung.TransitOperation.LimitDate.ToString <> "" Then 'Sollte mit Version 009 hier enthalten sein!
' Wiedergestellungsdatum = DateTime.ParseExact(NCTS.EinzelUeberlassungsmeldung.TransitOperation.LimitDate, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)
' If NCTS.EinzelUeberlassungsmeldung.TransitOperation.AdditionalInformation IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.ApplicationInternalData.AdditionalDetails IsNot Nothing Then
' For Each a In NCTS.EinzelUeberlassungsmeldung.TransitOperation.ApplicationInternalData.AdditionalDetails
' If a.Key = "LimitDate" Then
' Wiedergestellungsdatum = DateTime.ParseExact(a.Value, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)
End If
Next
End If
End If
End If
' End If
' Next
' End If
' End If
End If
'Verschluesse
If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse IsNot Nothing Then
If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl > 0 Then
@@ -3990,7 +3990,7 @@ Public Class cWorker_NCTS
End If
End If
'End If
' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
If readNCTS_Ueberlassungsmeldung009 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
@@ -4013,27 +4013,27 @@ Public Class cWorker_NCTS
'------------------------------------------------------------------------------------------------------------------------------
'GARANTIE ÜBERSCHREIBEN:
If NCTS.EinzelUeberlassungsmeldung.TransitOperation IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.Guarantee IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.Guarantee.Count > 0 Then
NCTS_TMP.ncts_GUARANTEE.Clear()
'If NCTS.EinzelUeberlassungsmeldung.TransitOperation IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.Guarantee IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.Guarantee.Count > 0 Then
' NCTS_TMP.ncts_GUARANTEE.Clear()
For Each GRT_M In NCTS.EinzelUeberlassungsmeldung.TransitOperation.Guarantee
' For Each GRT_M In NCTS.EinzelUeberlassungsmeldung.TransitOperation.Guarantee
For Each GRT In GRT_M.GuaranteeReference
Dim NCTS_GRT As New DAKOSY_Worker.cDakosy_NCTSOut004_Guarantee
' For Each GRT In GRT_M.GuaranteeReference
' Dim NCTS_GRT As New DAKOSY_Worker.cDakosy_NCTSOut004_Guarantee
NCTS_GRT.nctsGRT_Type = GRT_M.GuaranteeType
NCTS_GRT.nctsGRT_OtherGuaranteeReference = GRT_M.OtherGuaranteeReference
NCTS_GRT.nctsGRT_AmountToBeCovered = GRT.AmountToBeCovered
'NCTS_GRT.nctsGRT_AccessCode = GRT.accessCode
NCTS_GRT.nctsGRT_GRN = GRT.GRN
NCTS_GRT.nctsGRT_Currency = GRT.Currency
NCTS_TMP.ncts_GUARANTEE.Add(NCTS_GRT)
' NCTS_GRT.nctsGRT_Type = GRT_M.GuaranteeType
' NCTS_GRT.nctsGRT_OtherGuaranteeReference = GRT_M.OtherGuaranteeReference
' NCTS_GRT.nctsGRT_AmountToBeCovered = GRT.AmountToBeCovered
' 'NCTS_GRT.nctsGRT_AccessCode = GRT.accessCode
' NCTS_GRT.nctsGRT_GRN = GRT.GRN
' NCTS_GRT.nctsGRT_Currency = GRT.Currency
' NCTS_TMP.ncts_GUARANTEE.Add(NCTS_GRT)
Next
Next
NCTS_TMP.SAVE_Guarantee()
End If
' Next
' Next
' NCTS_TMP.SAVE_Guarantee()
'End If
'------------------------------------------------------------------------------------------------------------------------------
'For Each TE In NCTS_TMP.ncts_TRANSPORTEQUIPMENT

File diff suppressed because it is too large Load Diff

View File

@@ -6,8 +6,6 @@ Imports System.Xml
Imports Renci.SshNet
Imports VERAG_PROG_ALLGEMEIN
Public Class frmStartOptions
Dim WithEvents timer As New Timer
@@ -85,7 +83,7 @@ Public Class frmStartOptions
Dim PARAM = "" 'INSERT_BENACHRICHTIGUNG_VERMERKE_TEAMS
'PARAM = "mdm_mail_attach"
PARAM = ""
Dim parameter() As String = Environment.GetCommandLineArgs().ToArray
If (parameter.Count - 1) >= 1 Then 'Höher als 1 weil der index 0 der Pfad zum programm ist
@@ -568,6 +566,139 @@ Public Class frmStartOptions
closeMe()
'------------------------------
Case "MSE_NEWTRANSACTIONS_IMPORT" 'jeden Tag/1x pro Woche?
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.IN, VERAG_PROG_ALLGEMEIN.cAPI_Type.REST, VERAG_PROG_ALLGEMEIN.cAPI_ART.AVISO_IN_MSE, "MSE - Multiservice")
Dim mse As New cMSEAPI("MSE")
Dim fehler As String = ""
Dim token = mse.createJWT(fehler)
Dim dt As New DataTable
If fehler <> "" Then
API.UPDTAE_ERR(, fehler, "createJWT")
Else
Dim totalPages = 0
Dim batchrequestNr = 0
fehler = mse.getNewestTransactions(token, dt, batchrequestNr, totalPages, 0, True)
If fehler <> "" Then
API.UPDTAE_ERR("Batch-Nr: " & batchrequestNr & "-" & totalPages, fehler, "getNewestTransactions")
Exit Sub
End If
If totalPages > 1 Then
For i = 2 To totalPages
If dt.Rows.Count > 0 Then dt.Clear()
fehler = mse.getTransactionsFromBatchNrAndPage(token, dt, batchrequestNr, totalPages, i)
If fehler <> "" Then
API.UPDTAE_ERR("Batch-Nr: " & batchrequestNr & "-" & totalPages, fehler, "getTransactionsFromBatchNrAndPage")
Exit Sub
End If
i = i + 1
Next
End If
API.UPDTAE_OK()
End If
Case "MSE_NEWSETTLEMENTS_IMPORT" 'jeweils am 15/letzen Tag des Monats(allerdings vor den Rechnungen)
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.IN, VERAG_PROG_ALLGEMEIN.cAPI_Type.REST, VERAG_PROG_ALLGEMEIN.cAPI_ART.AVISO_IN_MSE, "MSE - Multiservice")
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False
Dim mse As New cMSEAPI("MSE")
Dim fehler As String = ""
Dim token = mse.createJWT(fehler)
Dim dt As New DataTable
If fehler <> "" Then
API.UPDTAE_ERR(, fehler, "createJWT")
Else
Dim totalPages = 0
Dim batchrequestNr = 0
fehler = mse.getNewestSettlements(token, dt, batchrequestNr, totalPages, 0)
If fehler <> "" Then
API.UPDTAE_ERR("Batch-Nr: " & batchrequestNr & "-" & totalPages, fehler, "getNewestSettlements")
Me.Visible = True
Exit Sub
End If
API.UPDTAE_OK()
End If
Case "MSE_NEWCUSTOMERS_IMPORT" 'jeweils am 15/letzen Tag des Monats(allerdings vor den Rechnungen)
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.IN, VERAG_PROG_ALLGEMEIN.cAPI_Type.REST, VERAG_PROG_ALLGEMEIN.cAPI_ART.AVISO_IN_MSE, "MSE - Multiservice")
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False
Dim mse As New cMSEAPI("MSE")
Dim fehler As String = ""
Dim token = mse.createJWT(fehler)
Dim dt As New DataTable
If fehler <> "" Then
API.UPDTAE_ERR(, fehler, "createJWT")
Exit Sub
Else
Dim totalPages = 0
Dim batchrequestNr = 0
fehler = mse.getCustomers(token, dt)
If fehler <> "" Then
API.UPDTAE_ERR(, fehler, "getCustomers")
Exit Sub
End If
API.UPDTAE_OK()
End If
Case "MSE_NEWINVOICES_IMPORT" 'jeweils am 15/letzen Tage des Monats
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.IN, VERAG_PROG_ALLGEMEIN.cAPI_Type.REST, VERAG_PROG_ALLGEMEIN.cAPI_ART.AVISO_IN_MSE, "MSE - Multiservice")
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False
Dim mse As New cMSEAPI("MSE")
Dim fehler As String = ""
Dim token = mse.createJWT(fehler)
Dim transactions As New DataTable
Dim invoice As New DataTable
If fehler <> "" Then
API.UPDTAE_ERR(, fehler, "createJWT")
Else
fehler = mse.getInvoices(token, invoice, Today(), Today(), True)
If fehler <> "" Then
API.UPDTAE_ERR("Datum: " & Today(), fehler, "getInvoices")
Exit Sub
End If
If invoice IsNot Nothing And invoice.Columns.Contains("invoice_id") AndAlso invoice.Rows.Count > 0 Then
Dim dvInvoice As New DataView(invoice)
Dim distinctInv As DataTable = dvInvoice.ToTable(True, New String() {"invoice_id"})
For Each r As DataRow In distinctInv.Rows
Dim totalPages = 0
Dim batchrequestNr = 0
fehler = mse.getSettlementsFromInvoiceID(token, transactions, r("invoice_id"), batchrequestNr, totalPages, 0)
If fehler <> "" Then
API.UPDTAE_ERR("Batch-Nr: " & batchrequestNr & "-" & totalPages, fehler, "getSettlementsFromInvoiceID")
Exit Sub
End If
If totalPages > 1 Then
For i = 2 To totalPages
If transactions.Rows.Count > 0 Then transactions.Clear()
fehler = mse.getSettlementsFromBatchNrAndPage(token, transactions, batchrequestNr, totalPages, i)
If fehler <> "" Then
API.UPDTAE_ERR("Batch-Nr: " & batchrequestNr & "-" & totalPages, fehler, "getSettlementsFromBatchNrAndPage")
Exit Sub
End If
Next
End If
Next
End If
API.UPDTAE_OK()
End If
Case Else
'Nur bei manuellem Start wird der fehler ausgegeben
VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW
@@ -4305,10 +4436,10 @@ Public Class frmStartOptions
End If
If node.Attributes("id") IsNot Nothing Then wk.fw_id = node.Attributes("id").Value
If node.HasChildNodes Then
For Each element As XmlElement In node.ChildNodes
If element.Name = "land" AndAlso element.InnerText <> "" Then wk.fw_land = element.InnerText
If element.Name = "iso2" AndAlso element.InnerText <> "" Then wk.fw_iso2 = element.InnerText
If element.Name = "iso3" AndAlso element.InnerText <> "" Then wk.fw_iso3 = element.InnerText
For Each element As XmlElement In node.ChildNodes
If element.Name = "land" AndAlso element.InnerText <> "" Then wk.fw_land = element.InnerText
If element.Name = "iso2" AndAlso element.InnerText <> "" Then wk.fw_iso2 = element.InnerText
If element.Name = "iso3" AndAlso element.InnerText <> "" Then wk.fw_iso3 = element.InnerText
If element.Name = "kurswert" AndAlso element.InnerText <> "" Then
wk.fw_kurswert = element.InnerText
End If
@@ -4324,9 +4455,9 @@ Public Class frmStartOptions
End If
Next
count = count + 1
wk.SAVE()
End If
count = count + 1
wk.SAVE()
End If
Next
Dim wk_euro
@@ -4348,19 +4479,17 @@ Public Class frmStartOptions
wk_euro.SAVE()
'Dim sqlCount = SQL.getValueTxtBySqlVarList("SELECT isnull(count(*),0) FROM tblZOLL_Wechselkurse WHERE [fw_startdatum]='" & startDatum & "' AND fw_enddatum='" & endDatum & "'", "FMZOLL")
'If count <> sqlCount Then
' 'MsgBox("Anzahl der Importierten Datensätze:" & sqlCount & vbNewLine & "Anzahl Datensätze in Datei: " & count)
' 'erg = False
'End If
'Dim sqlCount = SQL.getValueTxtBySqlVarList("SELECT isnull(count(*),0) FROM tblZOLL_Wechselkurse WHERE [fw_startdatum]='" & startDatum & "' AND fw_enddatum='" & endDatum & "'", "FMZOLL")
'If count <> sqlCount Then
' 'MsgBox("Anzahl der Importierten Datensätze:" & sqlCount & vbNewLine & "Anzahl Datensätze in Datei: " & count)
' 'erg = False
'End If
End If
End If
End If
End Using
Return erg
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
@@ -4491,6 +4620,9 @@ Public Class frmStartOptions
End Try
End Function
Function DELETE_Kundenumsaetze(deleteLastYears As Integer) As Boolean
Try
@@ -4817,14 +4949,16 @@ Public Class frmStartOptions
If sender Is LinkLabel59 Then
dtTransactionID.Columns.Add("transaction_id", GetType(String))
dtTransactionID.Columns.Add("found", GetType(Boolean))
dtTransactionID.Columns.Add("batch_seq_nr", GetType(Integer))
Dim R As DataRow = dtTransactionID.NewRow
R("transaction_id") = txtTransactionID.Text
R("found") = True
R("batch_seq_nr") = 0
dtTransactionID.Rows.Add(R)
ElseIf sender Is LinkLabel61 Then
dtTransactionID = SQL.loadDgvBySql("select [transaction_id], CAST(1 AS BIT) as found FROM [VERAG].[dbo].[tblMSESettlements] where [invoice_date] = '" & Date.Parse(datVon.Value).ToShortDateString & "' AND [transaction_id] not in (select [transaction_id] from [VERAG].[dbo].[tblMSETransactions])", "FMZOLL")
dtTransactionID = SQL.loadDgvBySql("select [transaction_id], CAST(1 AS BIT) as found, 0 as batch_seq_nr FROM [VERAG].[dbo].[tblMSESettlements] where [invoice_date] = '" & Date.Parse(datVon.Value).ToShortDateString & "' AND [transaction_id] not in (select [transaction_id] from [VERAG].[dbo].[tblMSETransactions])", "FMZOLL")
If dtTransactionID.Rows.Count = 0 Then
MsgBox("Zu diesem Rechnungsdatum gibt es keine Rechnung!")
Me.Visible = True
@@ -4839,7 +4973,7 @@ Public Class frmStartOptions
ElseIf sender Is LinkLabel62 Then
dtTransactionID = SQL.loadDgvBySql("select bills.[transaction_id], CAST(1 AS BIT) as found FROM [VERAG].[dbo].[tblMSESettlements] as bills
dtTransactionID = SQL.loadDgvBySql("select bills.[transaction_id], CAST(1 AS BIT) as found, trans.batch_seq_nr FROM [VERAG].[dbo].[tblMSESettlements] as bills
inner join [VERAG].[dbo].[tblMSETransactions] as trans on bills.[transaction_id] = trans.[transaction_id] where trans.[transaction_status] <> 'Billed' and [invoice_date] = '" & datVon.Value & " '", "FMZOLL")
If dtTransactionID.Rows.Count = 0 Then
MsgBox("Zu diesem Rechnungsdatum gibt es keine Rechnung!")
@@ -4863,6 +4997,10 @@ Public Class frmStartOptions
Exit Sub
Else
If dtTransactionID.Rows.Count = 1 Then
txtBatchNrofTransaction.Text = dtTransactionID(0).Item("batch_seq_nr")
End If
Dim dv = New DataView(dtTransactionID)
Dim dtMissingTransactions As New DataTable
dv.RowFilter = "found = false"
@@ -4941,8 +5079,52 @@ Public Class frmStartOptions
End Sub
Private Sub Button23_Click(sender As Object, e As EventArgs) Handles Button23.Click
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False
Dim ok = False
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = CheckBox8.Checked
If txtKdNr.Text <> "" AndAlso IsNumeric(txtKdNr.Text) Then
Dim ad As New cAdressen(txtKdNr.Text)
If ad Is Nothing Then
MsgBox("Diese KundenNr gibt es nicht!")
showPic(ok, PictureBox25)
Exit Sub
End If
If ad.Auswahl <> "A" Then
MsgBox("Dieser Kunde ist inaktiv!")
showPic(ok, PictureBox25)
Exit Sub
End If
If cMDMFunctionsAllgemein.Update_UStVASummenNeuBerechnen(ad.AdressenNr) Then
ok = cMDMFunctionsAllgemein.UStVAKunden_SummenNeuBerechnen(ad.AdressenNr)
End If
Else
'ansonsten alle Kunden
If cMDMFunctionsAllgemein.Update_UStVASummenNeuBerechnen() Then
ok = cMDMFunctionsAllgemein.UStVAKunden_SummenNeuBerechnen()
End If
End If
showPic(ok, PictureBox25)
End Sub
Private Sub LinkLabel64_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel64.LinkClicked
Dim iso2Laneder = "select distinct (Lieferland) FROM [VERAG].[dbo].[tblUTAImportNew] where Lieferland_ISO2 is null"
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dtiso2Laneder As DataTable = SQL.loadDgvBySql(iso2Laneder, "FMZOLL")
If dtiso2Laneder.Rows.Count > 0 Then
For Each r As DataRow In dtiso2Laneder.Rows
SQL.doSQL("Update [VERAG].[dbo].[tblUTAImportNew] set Lieferland_ISO2 = '" & VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(r.Item("Lieferland")) & "' where Lieferland = '" & r.Item("Lieferland") & "'", "FMZOLL")
Next
MsgBox("alle Länder gesetzt!")
Else
MsgBox("keine fehlenden Länder vorhanden!")
End If
End Sub
End Class