NCTS_TR CC015B, ATLAS Codelisten, BugFixes DY Nachrichtenverarbeitung, EZOLL: Zollbeleg versenden

This commit is contained in:
2023-03-06 22:04:21 +01:00
parent bdcac48401
commit 6dd614544d
14 changed files with 969 additions and 625 deletions

View File

@@ -3,6 +3,8 @@ Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Xml
Imports DocumentFormat.OpenXml.Drawing.Diagrams
Imports DocumentFormat.OpenXml.Wordprocessing
Imports Renci.SshNet
Public Class frmStartOptions
@@ -425,8 +427,8 @@ Public Class frmStartOptions
Try
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
Dim dt As DataTable = sql.loadDgvBySql("SELECT [zzAktivitaet].LizenzNr,[zzAktivitaet].Operatorid,[zzAktivitaet].AnmID,MsgTyp,[zzAktivitaet].ErstelltAm,pfad,LRN,CRN FROM [zzAktivitaet] INNER JOIN zsAnmRefs On zsAnmrefs.AnmID=zzAktivitaet.AnmID
where MsgTyp IN ('EZ922','EZ923','TR109') and ErstelltAm>='" & datum.ToShortDateString & " 00:00:00' and pfad is not null", "EZOLL", 200)
Dim dt As DataTable = sql.loadDgvBySql("SELECT [zzAktivitaet].LizenzNr,[zzAktivitaet].Operatorid,[zzAktivitaet].AnmID,MsgTyp,[zzAktivitaet].ErstelltAm,pfad,LRN,CRN ,[zzAktivitaet].VorgangID FROM [zzAktivitaet] INNER JOIN zsAnmRefs On zsAnmrefs.AnmID=zzAktivitaet.AnmID
where MsgTyp IN ('EZ922','EZ923','TR109', 'EX431') and ErstelltAm>='" & datum.ToShortDateString & " 00:00:00' and pfad is not null", "EZOLL", 200)
If dt IsNot Nothing Then
For Each row In dt.Rows
Dim cDHF_Anhaenge As New VERAG_PROG_ALLGEMEIN.cDHF_Anhaenge(row("AnmID"), row("MsgTyp"))
@@ -443,13 +445,23 @@ Public Class frmStartOptions
cDHF_Anhaenge.LRN = If(row("LRN") IsNot DBNull.Value, row("LRN"), "")
cDHF_Anhaenge.CRN = If(row("CRN") IsNot DBNull.Value, row("CRN"), "")
Dim destFull = ""
Dim Bezeichnung = ""
Select Case row("MsgTyp")
Case "EZ922" : Bezeichnung = "STEUERBESCHEID"
Case "EZ923"
Select Case row("VorgangID")
Case "AF"
Bezeichnung = "ABD"
Case Else '"EF"
Bezeichnung = "STEUERBESCHEID_MITT"
End Select
Case "TR109" : Bezeichnung = "VBD"
Case "EX431" : Bezeichnung = "AVM"
End Select
Try
Dim Bezeichnung = ""
Select Case row("MsgTyp")
Case "EZ922" : Bezeichnung = "STEUERBESCHEID"
Case "EZ923" : Bezeichnung = "STEUERBESCHEID_MITT"
Case "TR109" : Bezeichnung = "VBD"
End Select
If cDHF_Anhaenge.pfad <> "" Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("ZOLLDATEN", Bezeichnung, cDHF_Anhaenge.AnmID, "", "", "DHF_" & cDHF_Anhaenge.LRN.ToString.Replace("/", "-").Replace(",", "-").Replace("\", "-").Replace(":", "."), 0, False)
@@ -458,7 +470,7 @@ Public Class frmStartOptions
Dim ZIEL_PFAD = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "ZOLARIS\ECHTSYSTEM\ZOLLDATEN\" & Bezeichnung & "\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\"
If Not IO.Directory.Exists(ZIEL_PFAD) Then IO.Directory.CreateDirectory(ZIEL_PFAD)
Dim destFull = ""
destFull = ""
copyFile(cDHF_Anhaenge.pfad.Replace("C:\", "\\Ezoll\c$\"), ZIEL_PFAD, destFull)
If destFull <> "" Then
@@ -472,19 +484,43 @@ Public Class frmStartOptions
End Try
cDHF_Anhaenge.SAVE()
Dim SPEDBUCH_TMP As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch = Nothing
Select Case row("MsgTyp")
Case "EZ922"
DAKOSY_Worker.cZOLL_IMPORT.EZOLLImport(cDHF_Anhaenge.LRN, "EZA") 'Versucht den SpedBucheintrag, falls noch nicht vorhanden
DAKOSY_Worker.cZOLL_IMPORT.EZOLLImport(cDHF_Anhaenge.LRN, "EZA", SPEDBUCH_TMP) 'Versucht den SpedBucheintrag, falls noch nicht vorhanden
sql.doSQL("Update Speditionsbuch SET [DokumentId_Steuerbeleg]='" & cDHF_Anhaenge.docID & "' WHERE AtlasBezNrEZA='" & cDHF_Anhaenge.LRN & "' AND [DokumentId_Steuerbeleg] is null", "FMZOLL")
Case "TR109"
DAKOSY_Worker.cZOLL_IMPORT.EZOLLImport(cDHF_Anhaenge.LRN, "NCTS") 'Versucht den SpedBucheintrag, falls noch nicht vorhanden
DAKOSY_Worker.cZOLL_IMPORT.EZOLLImport(cDHF_Anhaenge.LRN, "NCTS", SPEDBUCH_TMP) 'Versucht den SpedBucheintrag, falls noch nicht vorhanden
sql.doSQL("Update Speditionsbuch SET [DokumentId_VBD]='" & cDHF_Anhaenge.docID & "' WHERE AtlasBezNrEZA='" & cDHF_Anhaenge.LRN & "' AND [DokumentId_VBD] is null", "FMZOLL")
' BEREITSTELLUNG DER DATEN AN FREMDSYSTEME
cVERAG_out_ncts.copyFileFTP_VERAGncts_EZOLL(cDHF_Anhaenge.AnmID)
Case "EZ923" 'Ergänzung STB - Mitteilung
DAKOSY_Worker.cZOLL_IMPORT.EZOLLImport(cDHF_Anhaenge.LRN, "EZA") 'Versucht den SpedBucheintrag, falls noch nicht vorhanden
sql.doSQL("Update Speditionsbuch SET DokumentId_Mitteilung='" & cDHF_Anhaenge.docID & "' WHERE AtlasBezNrEZA='" & cDHF_Anhaenge.LRN & "' AND DokumentId_Mitteilung is null", "FMZOLL")
Case "EZ923" ' STB/ABD
Select Case row("VorgangID")
Case "AF" ' --> AUSFUHR --> ABD
'AES Stuff....
DAKOSY_Worker.cZOLL_IMPORT.EZOLLImport(cDHF_Anhaenge.LRN, "AES", SPEDBUCH_TMP) 'Versucht den SpedBucheintrag, falls noch nicht vorhanden
sql.doSQL("Update Speditionsbuch SET [DokumentId_ABD]='" & cDHF_Anhaenge.docID & "' WHERE AtlasBezNrEZA='" & cDHF_Anhaenge.LRN & "' AND DokumentId_ABD is null", "FMZOLL")
'Zeitspanne ? 3 Tage , älter nicht senden..
If destFull <> "" AndAlso SPEDBUCH_TMP IsNot Nothing AndAlso SPEDBUCH_TMP.SendungID IsNot Nothing Then
doMailZollbeleg(destFull, "ABD", SPEDBUCH_TMP.SendungID, cDHF_Anhaenge.LRN)
End If
Case Else '' --> EINFUHR --> 'Ergänzung STB - Mitteilung
DAKOSY_Worker.cZOLL_IMPORT.EZOLLImport(cDHF_Anhaenge.LRN, "EZA", SPEDBUCH_TMP) 'Versucht den SpedBucheintrag, falls noch nicht vorhanden
sql.doSQL("Update Speditionsbuch SET DokumentId_Mitteilung='" & cDHF_Anhaenge.docID & "' WHERE AtlasBezNrEZA='" & cDHF_Anhaenge.LRN & "' AND DokumentId_Mitteilung is null", "FMZOLL")
End Select
Case "EX431" 'AVM --> EZoll Anhänge & Mail senden
'AES Stuff....
DAKOSY_Worker.cZOLL_IMPORT.EZOLLImport(cDHF_Anhaenge.LRN, "AES", SPEDBUCH_TMP) 'Versucht den SpedBucheintrag, falls noch nicht vorhanden
sql.doSQL("Update Speditionsbuch SET [DokumentId_AVM]='" & cDHF_Anhaenge.docID & "' WHERE AtlasBezNrEZA='" & cDHF_Anhaenge.LRN & "' AND DokumentId_AVM is null", "FMZOLL")
If destFull <> "" AndAlso SPEDBUCH_TMP IsNot Nothing AndAlso SPEDBUCH_TMP.SendungID IsNot Nothing Then
doMailZollbeleg(destFull, "AVM", SPEDBUCH_TMP.SendungID, cDHF_Anhaenge.LRN)
End If
End Select
@@ -518,6 +554,9 @@ Public Class frmStartOptions
End Try
End Sub
Sub doMailZollbeleg(pfad, art, dy_SendungsId, BezugsNr)
Try
@@ -715,15 +754,15 @@ Public Class frmStartOptions
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.AVISO_OUT_BELEGMAIL, art,,, KundenNr, SND.tblSnd_AvisoID, SND.tblSnd_SendungID, SND.FilialenNr, SND.AbfertigungsNr)
API.api_EMail = EMails
API.api_EMailCC = EMails_CC
API.api_EMailBCC = EMails_BCC
API.api_EMailSubject = betreff
API.api_EMailText = body
API.api_EMailAttCnt = pfadList.Count
API.api_EMail = EMails
API.api_EMailCC = EMails_CC
API.api_EMailBCC = EMails_BCC
API.api_EMailSubject = betreff
API.api_EMailText = body
API.api_EMailAttCnt = pfadList.Count
Select Case art
Select Case art
Case "STB"
If KD_ERW.EmailFreigabe_SteuerbescheidPDF Then
betreff = betreff.Replace("%Zollbeleg%", "Abgabenbescheid " & BezugsNr)
@@ -1720,30 +1759,30 @@ Public Class frmStartOptions
Dim dy_id As String = ""
If betreff.ToString.Length > 15 Then
dy_id = sql.getValueTxtBySql("SELECT isnull(eza_dyaAnmID,-1) FROM [tblDakosy_EZA] inner join tblDakosy_Zollanmeldungen on dy_id=eza_dyaAnmID where '" & betreff.ToString.Trim & "' LIKE eza_ObjectName +'%' and LEN(eza_ObjectName)>=13", "FMZOLL")
Else
dy_id = sql.getValueTxtBySql("SELECT isnull(eza_dyaAnmID,-1) FROM [tblDakosy_EZA] inner join tblDakosy_Zollanmeldungen on dy_id=eza_dyaAnmID where eza_ObjectName='" & betreff.ToString.Trim & "'", "FMZOLL")
End If
' IO.Directory.CreateDirectory(VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\ECHTSYSTEM\ZOLLDATEN\TEST3\")
DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("ZOLLDATEN", "STEUERBESCHEID", dy_id, "", "", betreff.ToString.Replace("/", "-").Replace(",", "-").Replace("\", "-").Replace(":", "."), 0, False)
DS.da_vorlage = False
Dim ZIEL_PFAD = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\ECHTSYSTEM\ZOLLDATEN\STEUERBESCHEID\NOT_IDENTIFIED\"
If IsNumeric(dy_id) AndAlso dy_id > 0 Then ZIEL_PFAD = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\ECHTSYSTEM\ZOLLDATEN\STEUERBESCHEID\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\"
If Not IO.Directory.Exists(ZIEL_PFAD) Then IO.Directory.CreateDirectory(ZIEL_PFAD)
Dim destFull = ""
moveFile(pfad, ZIEL_PFAD, destFull)
If DS.insertDataToDATENSERVER(destFull) Then
If IsNumeric(dy_id) AndAlso dy_id > 0 Then
sql.doSQL("UPDATE tblDakosy_Zollanmeldungen SET dy_STEUERBESCHEID_dsId='" & DS.da_id & "' where dy_id='" & dy_id & "'", "FMZOLL")
sql.doSQL("UPDATE Speditionsbuch SET DokumentId_Steuerbeleg='" & DS.da_id & "' where AtlasBezNrEZA='" & betreff.ToString.Trim & "' AND DokumentId_Steuerbeleg is null", "FMZOLL") 'Falls Spedbuch schon zuvor generiert wurde!
doMailZollbeleg(DS.GET_TOP1_PATH, "STB", dy_id)
If betreff.ToString.Length > 15 Then
dy_id = sql.getValueTxtBySql("SELECT isnull(eza_dyaAnmID,-1) FROM [tblDakosy_EZA] inner join tblDakosy_Zollanmeldungen on dy_id=eza_dyaAnmID where '" & betreff.ToString.Trim & "' LIKE eza_ObjectName +'%' and LEN(eza_ObjectName)>=13", "FMZOLL")
Else
dy_id = sql.getValueTxtBySql("SELECT isnull(eza_dyaAnmID,-1) FROM [tblDakosy_EZA] inner join tblDakosy_Zollanmeldungen on dy_id=eza_dyaAnmID where eza_ObjectName='" & betreff.ToString.Trim & "'", "FMZOLL")
End If
' IO.Directory.CreateDirectory(VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\ECHTSYSTEM\ZOLLDATEN\TEST3\")
DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("ZOLLDATEN", "STEUERBESCHEID", dy_id, "", "", betreff.ToString.Replace("/", "-").Replace(",", "-").Replace("\", "-").Replace(":", "."), 0, False)
DS.da_vorlage = False
Dim ZIEL_PFAD = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\ECHTSYSTEM\ZOLLDATEN\STEUERBESCHEID\NOT_IDENTIFIED\"
If IsNumeric(dy_id) AndAlso dy_id > 0 Then ZIEL_PFAD = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\ECHTSYSTEM\ZOLLDATEN\STEUERBESCHEID\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\"
If Not IO.Directory.Exists(ZIEL_PFAD) Then IO.Directory.CreateDirectory(ZIEL_PFAD)
Dim destFull = ""
moveFile(pfad, ZIEL_PFAD, destFull)
If DS.insertDataToDATENSERVER(destFull) Then
If IsNumeric(dy_id) AndAlso dy_id > 0 Then
sql.doSQL("UPDATE tblDakosy_Zollanmeldungen SET dy_STEUERBESCHEID_dsId='" & DS.da_id & "' where dy_id='" & dy_id & "'", "FMZOLL")
sql.doSQL("UPDATE Speditionsbuch SET DokumentId_Steuerbeleg='" & DS.da_id & "' where AtlasBezNrEZA='" & betreff.ToString.Trim & "' AND DokumentId_Steuerbeleg is null", "FMZOLL") 'Falls Spedbuch schon zuvor generiert wurde!
doMailZollbeleg(DS.GET_TOP1_PATH, "STB", dy_id)
End If
End If
End If
End If
End If
@@ -2811,9 +2850,9 @@ Public Class frmStartOptions
End Select
End If
If okDGV Then
r.DefaultCellStyle.BackColor = Color.LightGreen
r.DefaultCellStyle.BackColor = System.Drawing.Color.LightGreen
Else
r.DefaultCellStyle.BackColor = Color.IndianRed
r.DefaultCellStyle.BackColor = System.Drawing.Color.IndianRed
End If
End If
Me.Refresh()