Imports SDL
Imports VERAG_PROG_ALLGEMEIN
Imports VERAG_PROG_ALLGEMEIN.cGlobal
Imports VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO
Public Class AvisoStatusFunctions
Dim Standorte As New cStandorteDAL
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim AvisoDAL As New cAvisoDAL
Dim VermerkeDAL As New cVermerkeDAL
Public Function getAnkunftDateNow() As Date
Try
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "FRONTOFFICE" Or (VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" And VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = "SUB") Then
If Now.DayOfWeek = DayOfWeek.Sunday Then
Return CDate(Now.AddDays(1).ToShortDateString & " 06:00:00")
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, "LOG",,,,, "ERR_HFST_SETDATE")
End Try
Return Now
End Function
Public Shared Sub ummeldenAVISO(Aviso As VERAG_PROG_ALLGEMEIN.cAviso, Grenzstelle As String)
If Aviso IsNot Nothing Then
Select Case Aviso.Status
Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft
'Nur wenn Ankunft --> Status auf den letzten vor Ankunft ändern
If Aviso.Vorgeschrieben <> cMeineFunktionenAVISO.LeerDatum Then
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben
ElseIf Aviso.Vorbereitet <> cMeineFunktionenAVISO.LeerDatum Then
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet
Else
Aviso.Status = Status_Erfasst
End If
End Select
End If
If Grenzstelle = "???" Then
AvisoStatusFunctions.insertVermerkAllg(Aviso.AvisoID, "LKW nach umgemeldet", 94)
Else
AvisoStatusFunctions.insertVermerkAllg(Aviso.AvisoID, "LKW nach '" & Grenzstelle & "' umgemeldet", 94)
End If
Aviso.Grenzstelle = Grenzstelle
Dim AvisoDAL As New VERAG_PROG_ALLGEMEIN.cAvisoDAL
AvisoDAL.SpeichernAviso(Aviso)
End Sub
Public Sub sendAnkunftBenachrichtigung(AvisoId)
'VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.INSERT_BENACHRICHTIGUNG(AvisoId, -1, 3, "T", TeamID, "*ANKUNFT*", 0, "", "AUTO: LKW Ankunft - nicht vorgeschrieben!")
Dim alreadySent As New List(Of Integer)
Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen)
For Each r In AvisoDAL.loadDataTableBySQL("SELECT tblSnd_SendungID FROM tblSendungen WHERE tblSnd_AvisoID=" & AvisoId).Rows
SENDUNG_LIST.Add(New VERAG_PROG_ALLGEMEIN.cSendungen(r("tblSnd_SendungID")))
Next
For Each s In SENDUNG_LIST
'Keine Fremdspedition / Handling + nicht vorgeschrieben
If Not s.tblSnd_Fremdspedition And s.tblSnd_Abfertigungsart_ID <> "23" And s.tblSnd_Vorgeschrieben = Nothing Then
'Avisierer vorhanden
Dim TeamId = ""
'Zugeordnetes Team anhand von Avisierer...
If s.tblSnd_AvisiererKdNr IsNot Nothing AndAlso s.tblSnd_AvisiererKdNr > 0 Then
TeamId = SQL.getValueTxtBySql("SELECT TOP 1 kde_TeamId FROM [tblKundenErweitert] where kde_KundenNr ='" & s.tblSnd_AvisiererKdNr & "'", "FMZOLL")
End If
'...wenn nicht --> Team aus Sendung
'If TeamId = "" And If(s.tblSnd_TeamId, "") <> "" Then TeamId = s.tblSnd_TeamId 'derzeit nicht..
If TeamId <> "" Then
Dim sent = False
For Each i In alreadySent
If i = TeamId Then sent = True
Next
If Not sent Then
VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.INSERT_BENACHRICHTIGUNG(AvisoId, -1, 3, "T", TeamId, "*ANKUNFT*", 0, "", "AUTO: LKW Ankunft - nicht vorgeschrieben!")
alreadySent.Add(TeamId)
End If
End If
End If
Next
End Sub
Public Function printQR_CODE(aviso As VERAG_PROG_ALLGEMEIN.cAviso) As Boolean
If aviso Is Nothing Then Return False
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA <> "ATILLA" Then
Select Case aviso.Grenzstelle
Case "NEU", "DTB", "NKN"
Dim rpt As New rptQRSendung_VerwahrungApp(aviso, Nothing)
Dim printer = VERAG_PROG_ALLGEMEIN.cAllgemein.PRINTER_BON
If printer = "" Then printer = SDL.cProgramFunctions.getDruckernameBySearch("BON", True)
If printer = "" Then printer = SDL.cProgramFunctions.getDruckernameBySearch("INFO", True)
'If printer = "" Then
SDL.cProgramFunctions.printRpt(rpt, printer, True)
Return True
' End If
End Select
End If
Return False
End Function
Public Function setAnkunft(AvisoID) As Boolean
'falls keine Auswahl bzw. kein Datensatz, dann nichts machen
If AvisoID <= 0 Then
MsgBox("Kein Aviso ausgewählt!")
Return False
End If
'jetzt ausgewählten Datensatz einlesen
Dim Aviso As New cAviso
Aviso = AvisoDAL.LesenAviso(AvisoID, "")
If Aviso Is Nothing Then Return False
If Aviso.Abgeschlossen Then MsgBox("Der Akt wurde bereits abgeschlossen.", vbInformation) : Return False
'If Aviso.Warenort = False Then 'VERIMEX darf bei Warenort Status setzen
' If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
' MsgBox("Keine Berechtigung!")
' Return False
' End If
'End If
Dim msg As String
Dim antwort As MsgBoxResult
' Taste ANKUNFT
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft Then
MsgBox("Dieses LKW-Aviso ist bereits auf ANKUNFT gesetzt.", vbInformation)
Return False
End If
'Wenn Aviserer einem Team zugeordnet, aber noch nicht "vorgeschrieben", dann bekommt das Team eine Nachricht!
' If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet Or Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Erfasst Then
'Sendungsbasis
' End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen Then
msg = "Dieses LKW-Aviso hat bereits den Status 'LKW nicht eingetroffen'." & vbCrLf & vbCrLf &
"Soll es jetzt trotzdem auf ANKUNFT (zurück)gesetzt werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle), "Status-Änderung")
If antwort = vbNo Then Return False
End If
Dim Rücksetzen As Boolean = False
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben Then
msg = "Dieses LKW-Aviso ist bereits auf FREIGABE gesetzt." & vbCrLf & vbCrLf &
"Soll der Status wieder auf ANKUNFT geändert werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle), "Status-Änderung")
If antwort = vbNo Then Return False
'Status ist offen - jetzt auf Ankunft setzen
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Erfasst Then
Aviso.Vorbereitet = LeerDatum
Aviso.Vorgeschrieben = LeerDatum
End If
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft
Aviso.Freigabe = LeerDatum
Aviso.Dauer = 0
Rücksetzen = True
Else
Aviso.Ankunft = getAnkunftDateNow()
End If
'E-Mail
If Aviso.FIRMA <> "ATILLA" Then
sendAnkunftBenachrichtigung(Aviso.AvisoID)
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_ATILLA_VERIMEX Or Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_ATILLA_INDONESIEN Then
Rücksetzen = True
End If
'Fahrer Handy-Nr.
Dim frmAnkunftSetzen As New frmAnkunftSetzen(Aviso)
If frmAnkunftSetzen.ShowDialog() = DialogResult.Cancel Then
Return False 'Abbrechen
End If
'If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" Then
' If Aviso.Grenzstelle.Replace("???", "") <> "" Then
' If VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG <> "" Then Aviso.Grenzstelle = VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG
' End If
'End If
' If Aviso.Grenzstelle.Replace("???", "") <> "" Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG <> "" Then
If Aviso.Grenzstelle <> VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG Then
Dim f As New frmAnkunftAendern(Aviso)
If f.ShowDialog() Then
Aviso.Grenzstelle = f.AVISO.Grenzstelle
End If
End If
End If
' End If
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft
Aviso.Änderungen = "auf ANKUNFT gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
Aviso.letzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
Dim tmpid = AvisoDAL.SpeichernAviso(Aviso)
AvisoDAL.addAenderung(tmpid, "auf ANKUNFT gesetzt", "auf ANKUNFT gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
If Not Rücksetzen Then
'nach dem erfolgreichem Speichern wird jetzt noch ein automatisches Mail für den Frächter und Auftraggeber erstellt
'Mail-Adressen aus Firmentabelle holen
SendAnkunftEmail(Aviso)
End If
'Verwahrungs-Ticket Drucken, wenn parameter
printQR_CODE(Aviso)
'Ticket Drucken, wenn parameter
If VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("TICKET_ANKUNFT") Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("TICKET_ANKUNFT", "AVISO") Then
Dim rpt As New rptQRAviso(Aviso)
Dim printer = SDL.cProgramFunctions.getDruckernameBySearch("INFO", True)
If printer <> "" Then
SDL.cProgramFunctions.printRpt(rpt, printer, True)
Else
SDL.cProgramFunctions.showRpt(rpt, "AVISO", False)
End If
End If
'Wenn Atilla, dann Eintrag anzeigen, um zu korrigieren und Aktendeckel auszudrucken
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then 'And VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True Then
Dim frmGrayOut = VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO.grayoutForm()
Dim f As New frmEintragAviso
f.AktenzetteldruckenVisible = True
f.ShowDialog(frmGrayOut)
frmGrayOut.Close()
End If
Return (tmpid > 0)
End Function
Shared Sub SendAnkunftEmail(AVISO As cAviso, Optional ForceMail As String = "")
Dim AvisoDAL As New cAvisoDAL
Dim art = 1
If AVISO.ImEx = "EXPORT" Or VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then art = 3
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
' Case "ATILLA"
'Case "VERAG", "IMEX"
Case Else
Dim EMails As String = ""
Dim EMails_CC As String = ""
Dim EMails_BCC As String = ""
Dim Emails_list_sent As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(AVISO.Auftraggeber_KdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, AVISO.Auftraggeber_KdNr, ForceMail, "AVISIERER")
'Frächter und Avisierer werden getrennt voneinander eingelesen, damit es kein Problem mit gesendeten VBD/Steuerbescheiden gibt!
If AVISO.Frächter_KdNr <> AVISO.Auftraggeber_KdNr Then
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(AVISO.Frächter_KdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, AVISO.Frächter_KdNr, ForceMail, "FRÄCHTER")
End If
Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen)
For Each r In AvisoDAL.loadDataTableBySQL("SELECT tblSnd_SendungID FROM tblSendungen WHERE tblSnd_AvisoID=" & AVISO.AvisoID).Rows
SENDUNG_LIST.Add(New VERAG_PROG_ALLGEMEIN.cSendungen(r("tblSnd_SendungID")))
Next
For Each s In SENDUNG_LIST
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(s.tblSnd_EmpfaengerKdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, s.tblSnd_EmpfaengerKdNr, ForceMail, "EMPFÄNGER")
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(s.tblSnd_AuftraggeberKdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, s.tblSnd_AuftraggeberKdNr, ForceMail, "AUFTRAGGEBER")
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(s.tblSnd_FrachtfuehrerKdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, s.tblSnd_FrachtfuehrerKdNr, ForceMail, "FRÄCHTER")
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(s.tblSnd_AvisiererKdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, s.tblSnd_AvisiererKdNr, ForceMail, "AVISIERER")
Next
End Select
End Sub
'freigabe
Shared Sub SendFreigabeEmail(AVISO As cAviso, Optional ForceMail As String = "")
Dim AvisoDAL As New cAvisoDAL
Dim art = 2
If AVISO.ImEx = "EXPORT" Or VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then art = 4
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
' Case "ATILLA"
'Case "VERAG", "IMEX"
Case Else
'Mail-Adressen aus Firmentabelle holen
Dim EMails As String = ""
Dim EMails_CC As String = ""
Dim EMails_BCC As String = ""
Dim Emails_list_sent As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(AVISO.Auftraggeber_KdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, AVISO.Auftraggeber_KdNr, ForceMail)
'Frächter und Avisierer werden getrennt voneinander eingelesen, damit es kein Problem mit gesendeten VBD/Steuerbescheiden gibt!
If AVISO.Frächter_KdNr <> AVISO.Auftraggeber_KdNr Then
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(AVISO.Frächter_KdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, AVISO.Frächter_KdNr, ForceMail)
End If
Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen)
For Each r In AvisoDAL.loadDataTableBySQL("SELECT tblSnd_SendungID FROM tblSendungen WHERE tblSnd_AvisoID=" & AVISO.AvisoID).Rows
SENDUNG_LIST.Add(New VERAG_PROG_ALLGEMEIN.cSendungen(r("tblSnd_SendungID")))
Next
For Each s In SENDUNG_LIST
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(s.tblSnd_EmpfaengerKdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, s.tblSnd_EmpfaengerKdNr, ForceMail)
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(s.tblSnd_AuftraggeberKdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, s.tblSnd_AuftraggeberKdNr, ForceMail)
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(s.tblSnd_FrachtfuehrerKdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, s.tblSnd_FrachtfuehrerKdNr, ForceMail)
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(s.tblSnd_AvisiererKdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, s.tblSnd_AvisiererKdNr, ForceMail)
Next
End Select
End Sub
Shared Sub SendStatusEmail(AVISO As cAviso, Optional ForceMail As String = "")
Dim AvisoDAL As New cAvisoDAL
Dim art = 5
' If AVISO.ImEx = "EXPORT" Or VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then art = 4
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "ATILLA"
'NED!
'Case "VERAG", "IMEX"
Case "VERAG", "IMEX"
'Mail-Adressen aus Firmentabelle holen
Dim EMails As String = ""
Dim EMails_CC As String = ""
Dim EMails_BCC As String = ""
Dim Emails_list_sent As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(AVISO.Auftraggeber_KdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, AVISO.Auftraggeber_KdNr, ForceMail)
'Frächter und Avisierer werden getrennt voneinander eingelesen, damit es kein Problem mit gesendeten VBD/Steuerbescheiden gibt!
If AVISO.Frächter_KdNr <> AVISO.Auftraggeber_KdNr Then
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(AVISO.Frächter_KdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, AVISO.Frächter_KdNr, ForceMail)
End If
Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen)
For Each r In AvisoDAL.loadDataTableBySQL("SELECT tblSnd_SendungID FROM tblSendungen WHERE tblSnd_AvisoID=" & AVISO.AvisoID).Rows
SENDUNG_LIST.Add(New VERAG_PROG_ALLGEMEIN.cSendungen(r("tblSnd_SendungID")))
Next
For Each s In SENDUNG_LIST
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(s.tblSnd_EmpfaengerKdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, s.tblSnd_EmpfaengerKdNr, ForceMail)
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(s.tblSnd_AuftraggeberKdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, s.tblSnd_AuftraggeberKdNr, ForceMail)
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(s.tblSnd_FrachtfuehrerKdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, s.tblSnd_FrachtfuehrerKdNr, ForceMail)
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(s.tblSnd_AvisiererKdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, s.tblSnd_AvisiererKdNr, ForceMail)
Next
End Select
End Sub
Shared Sub SendStatusEmailByKdNr(AVISO As cAviso, KdNr As Integer)
Dim AvisoDAL As New cAvisoDAL
Dim art = 5
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "ATILLA"
'NED!
Case "VERAG", "IMEX"
'Mail-Adressen aus Firmentabelle holen
Dim EMails As String = ""
Dim EMails_CC As String = ""
Dim EMails_BCC As String = ""
Dim Emails_list_sent As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(KdNr, art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
If Emails_list_sent.LIST.Count > 0 Then
Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, KdNr, "")
' VERAG_PROG_ALLGEMEIN.cAvisoStatusMails.INSERT_INTO(AVISO.AvisoID, KdNr, art)
End If
End Select
End Sub
Shared Sub Email_senden(art, AVISO, EMails, EMails_CC, EMails_BCC, KundenNr, Optional ForceMail = "", Optional artKunde = "")
'art = 1 : Ankunft
'art = 2 : Freigabe
'art = 3 : Ankunft Export
'art = 4 : Freigabe Export
'art = 5 : Status
If KundenNr Is Nothing OrElse Not IsNumeric(KundenNr) Then Exit Sub
If KundenNr <= 0 Then Exit Sub
If art = 2 Then ' Freigabe
Dim KUNDE As New VERAG_PROG_ALLGEMEIN.cKunde(KundenNr)
Dim KUNDE_ERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(KundenNr)
If KUNDE.EmailFreigabe And KUNDE_ERW.EmailFreigabe_Art = "BLG" Then
Exit Sub ' Keine Freigabe-Mail, wenn "BELEG" bei Freigabe gewählt wurde --> Der STB wird indem Fall pro Beleg geschickt.
End If
End If
If art = 4 Then ' Freigabe Export
'Dim KUNDE As New VERAG_PROG_ALLGEMEIN.cKunde(KundenNr)
Dim KUNDE_ERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(KundenNr)
If KUNDE_ERW.EmailFreigabe_Export And KUNDE_ERW.EmailFreigabe_Export_Art = "BLG" Then
Exit Sub ' Keine Freigabe-Mail, wenn "BELEG" bei Freigabe gewählt wurde --> Der STB wird indem Fall pro Beleg geschickt.
End If
End If
Dim Standorte As New cStandorteDAL
'nur Mail erstellen, falls mindestens ein Empfänger vorhanden
If EMails <> "" Or EMails_CC <> "" Or EMails_BCC <> "" Then
Dim hBetreff As String = If(art = 1 Or art = 3, VERAG_PROG_ALLGEMEIN.cGlobal.Optionen.eMail_Ankunft_Betreff, VERAG_PROG_ALLGEMEIN.cGlobal.Optionen.eMail_Freigabe_Betreff)
Dim hBody As String = If(art = 1 Or art = 3, VERAG_PROG_ALLGEMEIN.cGlobal.Optionen.eMail_Ankunft_Text, VERAG_PROG_ALLGEMEIN.cGlobal.Optionen.eMail_Freigabe_Text)
Select Case art 'DEFAULT!!
Case 1, 3
hBetreff = VERAG_PROG_ALLGEMEIN.cGlobal.Optionen.eMail_Ankunft_Betreff
hBody = VERAG_PROG_ALLGEMEIN.cGlobal.Optionen.eMail_Ankunft_Text
Case 2, 4
hBetreff = VERAG_PROG_ALLGEMEIN.cGlobal.Optionen.eMail_Freigabe_Betreff
hBody = VERAG_PROG_ALLGEMEIN.cGlobal.Optionen.eMail_Freigabe_Text
Case 5
hBetreff = VERAG_PROG_ALLGEMEIN.cGlobal.Optionen.eMail_Status_Betreff
hBody = VERAG_PROG_ALLGEMEIN.cGlobal.Optionen.eMail_Status_Text
End Select
'jetzt nachsehen, ob indiv. eMail-Text für Standort vorhanden
Dim GrenzstelleMail = AVISO.Grenzstelle.replace("?", "")
GrenzstelleMail = GrenzstelleMail.replace("WO_GE", "") 'KEINE MAIL
GrenzstelleMail = GrenzstelleMail.replace("WO_KITA", "") 'KEINE MAIL
'Prüfen ob WO oder ZA, in dem Fall keine Mail senden
Dim GRZ As New VERAG_PROG_ALLGEMEIN.cGrenzstelle(GrenzstelleMail)
If GRZ IsNot Nothing AndAlso GRZ.hasEntry Then
If Not GRZ.grz_AvisoStatusVorOrt Then
GrenzstelleMail = "" 'KEINE MAIL
End If
'If GRZ.grz_Zollamt Then GrenzstelleMail = "" 'KEINE MAIL
'If GRZ.grz_Warenort Then GrenzstelleMail = "" 'KEINE MAIL
End If
If GrenzstelleMail = "" And art <> 5 Then
'----------------------------------------
Exit Sub ' Wenn Grenzstelle leer / ??? --> Keine MAIL!
'If GrenzstelleMail = "" Then GrenzstelleMail = VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG
End If
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "FRONTOFFICE" Then GrenzstelleMail = "FO"
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "UNISPED" Then GrenzstelleMail = "UNI"
If GrenzstelleMail <> "" Then
Dim Standort As New cStandort
Standort = Standorte.LesenStandort(0, GrenzstelleMail, "")
If Not IsNothing(Standort) Then
Select Case art
Case 1, 3
If Standort.eMail_Ankunft_Betreff <> "" Then
hBetreff = Standort.eMail_Ankunft_Betreff
hBody = Standort.eMail_Ankunft_Text
End If
Case 2, 4
If Standort.eMail_Freigabe_Betreff <> "" Then
hBetreff = Standort.eMail_Freigabe_Betreff
hBody = Standort.eMail_Freigabe_Text
End If
Case 5
If Standort.eMail_Status_Betreff <> "" Then
hBetreff = Standort.eMail_Status_Betreff
hBody = Standort.eMail_Status_Text
End If
End Select
End If
End If
Dim anhaenge As New List(Of String)
hBetreff = Platzhalter_ersetzen(hBetreff, AVISO.LKW_Nr, AVISO.Grenzstelle, AVISO.AvisoId, 0, AVISO, KundenNr, anhaenge, artKunde) ' art 0 damit nicht beim betreff auch die DY-Daten durchsuht werden und die Sendungsliste erstellt wird.
hBody = Platzhalter_ersetzen(hBody, AVISO.LKW_Nr, AVISO.Grenzstelle, AVISO.AvisoId, art, AVISO, KundenNr, anhaenge, artKunde)
hBody = hBody.Replace("%0", "
")
hBody = hBody.Replace("%Firma", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA) ' gibts noch nicht!
'Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA '= "IMEX"
' Case "VERAG"
' Case "UNISPED"
' hBody = hBody.Replace("VERAG", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA) 'hier der Ersatz
'End Select
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_STATUSMAIL, art,,, KundenNr, AVISO.AvisoId)
API.api_EMail = EMails
API.api_EMailCC = EMails_CC
API.api_EMailBCC = EMails_BCC
API.api_EMailSubject = hBetreff
API.api_EMailText = hBody
API.api_EMailAttCnt = anhaenge.Count
If ForceMail <> "" Then
Dim mailsTXT = ""
mailsTXT &= "TO: " & EMails & "
"
mailsTXT &= "CC: " & EMails_CC & "
"
mailsTXT &= "BCC: " & EMails_BCC & "
"
If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(ForceMail, hBetreff, mailsTXT & hBody, VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.getAbsenderEmail(), False, False, "", "", anhaenge, art) Then
API.UPDTAE_OK()
Else
API.UPDTAE_ERR()
End If
Else
EMails_BCC &= If(EMails_BCC <> "", ";", "") & VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.getBCCEmail() 'Damit Mails gespeichert werden.
Dim MailArt = ""
Select Case art
Case 1, 3 : MailArt = "Ankunft"
Case 2, 4 : MailArt = "Freigabe"
Case 5 : MailArt = "Status"
End Select
If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(EMails, hBetreff, hBody, VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.getAbsenderEmail(), False, False, EMails_CC, EMails_BCC, anhaenge, art) Then
API.UPDTAE_OK()
Dim txt = " E-Mail gesendet an: " & EMails
If EMails_CC.ToString.Trim <> "" Then txt &= " CC: " & EMails_CC
If EMails_BCC.ToString.Trim <> "" Then txt &= " BCC: " & EMails_BCC
AvisoStatusFunctions.insertVermerkAllg(AVISO.AvisoId, MailArt & txt, 46, , "(AUTO)")
Else
API.UPDTAE_ERR()
AvisoStatusFunctions.insertVermerkAllg(AVISO.AvisoId, "ERR: " & MailArt & " E-Mail konnte nicht gesendet werden!", 46, , "(AUTO)")
End If
End If
'OLD ----------------------------------
If False Then
Dim hMail As String = "mailto:" & EMails & "?subject=" & hBetreff
If EMails_CC.ToString.Trim <> "" Then hMail += "&CC=" & EMails_CC
If EMails_BCC.ToString.Trim <> "" Then hMail += "&BCC=" & EMails_BCC
If hBody <> "" Then hMail += "&Body=" & hBody
Try
System.Diagnostics.Process.Start(hMail)
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW, "Beim Mail-Versenden ist ein Fehler aufgetreten")
End Try
End If
' ----------------------------------
End If
End Sub
Public Function setVorbereitet(AvisoID) As Boolean
'If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
' MsgBox("Keine Berechtigung!")
' Return False
'End If
'falls keine Auswahl bzw. kein Datensatz, dann nichts machen
If AvisoID <= 0 Then
MsgBox("Kein Aviso ausgewählt!")
Return False
End If
'jetzt ausgewählten Datensatz einlesen
Dim Aviso As New cAviso
Aviso = AvisoDAL.LesenAviso(AvisoID, "")
If Aviso Is Nothing Then Return False
If Aviso.Abgeschlossen Then MsgBox("Der Akt wurde bereits abgeschlossen.", vbInformation) : Return False
Dim msg As String
Dim antwort As MsgBoxResult
' Taste VORBEREITET
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet Then
MsgBox("Dieses LKW-Aviso ist bereits auf VORBEREITET gesetzt.", vbInformation)
Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben Then
msg = "Dieses LKW-Aviso hat bereits den Status 'Vorgeschrieben'." & vbCrLf & vbCrLf &
"Soll es jetzt trotzdem auf VORBEREITET (zurück)gesetzt werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle),
"Status-Änderung")
If antwort = vbNo Then Return False
'SQL.doSQL("UPDATE tblSendungen SET tblSnd_Vorgeschrieben=null WHERE tblSnd_Vorgeschrieben is not null AND tblSnd_AvisoID='" & AvisoID & "'", "AVISO")
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen Then
msg = "Dieses LKW-Aviso hat bereits den Status 'LKW nicht eingetroffen'." & vbCrLf & vbCrLf &
"Soll es jetzt trotzdem auf VORBEREITET (zurück)gesetzt werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle),
"Status-Änderung")
If antwort = vbNo Then Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben Then
msg = "Dieses LKW-Aviso ist bereits auf FREIGABE gesetzt." & vbCrLf & vbCrLf &
"Soll der Status wieder auf VORBEREITET geändert werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle),
"Status-Änderung")
If antwort = vbNo Then Return False
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet
Aviso.Freigabe = LeerDatum
Aviso.Ankunft = LeerDatum
Aviso.Vorgeschrieben = LeerDatum
Aviso.Vorbereitet = Now
Aviso.Dauer = 0
Else
Aviso.Vorbereitet = Now
' Aviso.Grenzstelle = cGlobal.AktiverMitarbeiter.Grenzstelle
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft Then
msg = "Dieses LKW-Aviso ist bereits auf ANKUNFT gesetzt." & vbCrLf & vbCrLf &
"Soll der Status wieder auf VORBEREITET geändert werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle),
"Status-Änderung")
If antwort = vbNo Then Return False
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet
Aviso.Freigabe = LeerDatum
Aviso.Ankunft = LeerDatum
Aviso.Vorgeschrieben = LeerDatum
Aviso.Vorbereitet = Now
Aviso.Dauer = 0
Else
Aviso.Vorbereitet = Now
' Aviso.Grenzstelle = cGlobal.AktiverMitarbeiter.Grenzstelle
End If
'Status ist offen - jetzt auf VORBEREITET setzen
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet
Aviso.Änderungen = "auf VORBEREITET gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
Aviso.letzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
Dim tmpid = AvisoDAL.SpeichernAviso(Aviso)
AvisoDAL.addAenderung(tmpid, "auf VORBEREITET gesetzt", "auf VORBEREITET gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
' SQL.doSQL("UPDATE tblSendungen SET tblSnd_Vorbereitet=getDate() WHERE tblSnd_Vorbereitet IS NULL AND tblSnd_AvisoID='" & AvisoID & "'", "AVISO")
If False Then
Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen)
VERAG_PROG_ALLGEMEIN.cSendungen.LOAD_LIST(SENDUNG_LIST, -1, Aviso.AvisoID)
For Each s In SENDUNG_LIST
If VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER OrElse VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale2(s.FilialenNr, False) = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Then
If s.tblSnd_Vorbereitet Is Nothing Then
s.tblSnd_Vorbereitet = Now
End If
'If VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "" Then
'Else
' If s.tblSnd_VG_MA Is Nothing Then
' s.tblSnd_VG_MA = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
' s.LetzterMitarbeiterId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
' s.LetzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
' End If
'End If
s.SAVE()
End If
Next
End If
Return (tmpid > 0)
End Function
Public Function setAnINDONESIEN(AvisoID) As Boolean
'If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
' MsgBox("Keine Berechtigung!")
' Return False
'End If
'falls keine Auswahl bzw. kein Datensatz, dann nichts machen
If AvisoID <= 0 Then
MsgBox("Kein Aviso ausgewählt!")
Return False
End If
'jetzt ausgewählten Datensatz einlesen
Dim Aviso As New cAviso
Aviso = AvisoDAL.LesenAviso(AvisoID, "")
If Aviso Is Nothing Then Return False
If Aviso.Abgeschlossen Then MsgBox("Der Akt wurde bereits abgeschlossen.", vbInformation) : Return False
Dim msg As String
Dim antwort As MsgBoxResult
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_ATILLA_INDONESIEN Then
MsgBox("Dieses LKW-Aviso ist bereits auf 'AN INDONESIEN' gesetzt.", vbInformation)
Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben Then
MsgBox("Dieses LKW-Aviso ist bereits auf FREIGABE gesetzt.")
Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen Then
msg = "Dieses LKW-Aviso hat bereits den Status 'LKW nicht eingetroffen'." & vbCrLf & vbCrLf &
"Soll es jetzt trotzdem auf VORBEREITET (zurück)gesetzt werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle),
"Status-Änderung")
If antwort = vbNo Then Return False
End If
'Status ist offen - jetzt auf 'AN INDONESIEN' setzen
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_ATILLA_INDONESIEN
Aviso.Änderungen = "auf 'AN INDONESIEN' gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
Aviso.letzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
Dim tmpid = AvisoDAL.SpeichernAviso(Aviso)
AvisoDAL.addAenderung(tmpid, "auf 'AN INDONESIEN' gesetzt", "auf 'AN INDONESIEN' gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
Return (tmpid > 0)
End Function
Public Function setAnVERIMEX(AvisoID) As Boolean
'If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
' MsgBox("Keine Berechtigung!")
' Return False
'End If
'falls keine Auswahl bzw. kein Datensatz, dann nichts machen
If AvisoID <= 0 Then
MsgBox("Kein Aviso ausgewählt!")
Return False
End If
'jetzt ausgewählten Datensatz einlesen
Dim Aviso As New cAviso
Aviso = AvisoDAL.LesenAviso(AvisoID, "")
If Aviso Is Nothing Then Return False
If Aviso.Abgeschlossen Then MsgBox("Der Akt wurde bereits abgeschlossen.", vbInformation) : Return False
Dim msg As String
Dim antwort As MsgBoxResult
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_ATILLA_VERIMEX Then
MsgBox("Dieses LKW-Aviso ist bereits auf 'AN VERIMEX' gesetzt.", vbInformation)
Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben Then
MsgBox("Dieses LKW-Aviso ist bereits auf FREIGABE gesetzt.")
Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen Then
msg = "Dieses LKW-Aviso hat bereits den Status 'LKW nicht eingetroffen'." & vbCrLf & vbCrLf &
"Soll es jetzt trotzdem auf VORBEREITET (zurück)gesetzt werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle),
"Status-Änderung")
If antwort = vbNo Then Return False
End If
'Status ist offen - jetzt auf 'AN VERIMEX' setzen
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_ATILLA_VERIMEX
Aviso.Änderungen = "auf 'AN VERIMEX' gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
Aviso.letzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
Dim tmpid = AvisoDAL.SpeichernAviso(Aviso)
AvisoDAL.addAenderung(tmpid, "auf 'AN VERIMEX' gesetzt", "auf 'AN VERIMEX' gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
Return (tmpid > 0)
End Function
Public Function setVorgeschreiben(AvisoID) As Boolean
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
MsgBox("Keine Berechtigung!")
Return False
End If
'falls keine Auswahl bzw. kein Datensatz, dann nichts machen
If AvisoID <= 0 Then
MsgBox("Kein Aviso ausgewählt!")
Return False
End If
'jetzt ausgewählten Datensatz einlesen
Dim Aviso As New cAviso
Aviso = AvisoDAL.LesenAviso(AvisoID, "")
If Aviso Is Nothing Then Return False
If Aviso.Abgeschlossen Then MsgBox("Der Akt wurde bereits abgeschlossen.", vbInformation) : Return False
Dim msg As String
Dim antwort As MsgBoxResult
' Taste VORGESCHRIEBEN
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben Then
MsgBox("Dieses LKW-Aviso ist bereits auf VORGESCHRIEBEN gesetzt.", vbInformation)
Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen Then
msg = "Dieses LKW-Aviso hat bereits den Status 'LKW nicht eingetroffen'." & vbCrLf & vbCrLf &
"Soll es jetzt trotzdem auf VORGESCHRIEBEN (zurück)gesetzt werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle),
"Status-Änderung")
If antwort = vbNo Then Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben Then
msg = "Dieses LKW-Aviso ist bereits auf FREIGABE gesetzt." & vbCrLf & vbCrLf &
"Soll der Status wieder auf VORGESCHRIEBEN geändert werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle),
"Status-Änderung")
If antwort = vbNo Then Return False
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben
Aviso.Freigabe = LeerDatum
Aviso.Ankunft = LeerDatum
Aviso.Dauer = 0
Else
Aviso.Vorgeschrieben = Now
' Aviso.Grenzstelle = cGlobal.AktiverMitarbeiter.Grenzstelle
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft Then
msg = "Dieses LKW-Aviso ist bereits auf ANKUNFT gesetzt." & vbCrLf & vbCrLf &
"Soll der Status wieder auf VORGESCHRIEBEN geändert werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle),
"Status-Änderung")
If antwort = vbNo Then Return False
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben
Aviso.Freigabe = LeerDatum
Aviso.Ankunft = LeerDatum
Aviso.Dauer = 0
Else
Aviso.Vorgeschrieben = Now
' Aviso.Grenzstelle = cGlobal.AktiverMitarbeiter.Grenzstelle
End If
'Status ist offen - jetzt auf VORGESCHRIEBEN setzen
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben
Aviso.Änderungen = "auf VORGESCHRIEBEN gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
Aviso.letzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
Dim tmpid = AvisoDAL.SpeichernAviso(Aviso)
AvisoDAL.addAenderung(tmpid, "auf VORGESCHRIEBEN gesetzt", "auf VORGESCHRIEBEN gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
'SQL.doSQL("UPDATE tblSendungen SET tblSnd_Vorgeschrieben=getDate() WHERE tblSnd_Vorgeschrieben IS NULL AND tblSnd_AvisoID='" & AvisoID & "'", "AVISO")
'If VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "" Then
'Else
' SQL.doSQL("UPDATE tblSendungen SET tblSnd_VG_MA='" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "',LetzterMitarbeiterId='" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "',LetzterMitarbeiter='" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "' WHERE tblSnd_VG_MA IS NULL AND tblSnd_AvisoID='" & AvisoID & "'", "AVISO")
'End If
If False Then
Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen)
VERAG_PROG_ALLGEMEIN.cSendungen.LOAD_LIST(SENDUNG_LIST, -1, Aviso.AvisoID)
For Each s In SENDUNG_LIST
If VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER OrElse VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale2(s.FilialenNr, False) = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Then
If s.tblSnd_Vorgeschrieben Is Nothing Then
s.tblSnd_Vorgeschrieben = Now
End If
If VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "" Then
Else
If s.tblSnd_VG_MA Is Nothing Then
s.tblSnd_VG_MA = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
s.LetzterMitarbeiterId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
s.LetzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
End If
End If
s.SAVE()
End If
Next
End If
vermerkVorgeschreiben(AvisoID)
'Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
' Case "VERAG", "ATILLA"
' Dim frmInsertVermerkFach As New frmInsertVermerkFach(Aviso.AvisoID)
' frmInsertVermerkFach.ShowDialog()
' 'Case "IMEX"
' ' Dim frmInsertVermerkFach As New frmInsertVermerkFachIMEX(Aviso.AvisoID)
' ' frmInsertVermerkFach.ShowDialog()
'End Select
Return (tmpid > 0)
End Function
Sub vermerkVorgeschreiben(AvisoID)
Dim VermerkeDAL As New cVermerkeDAL
Dim myVermerk As New cVermerk
myVermerk.AvisoID = AvisoID
myVermerk.Datum = Now
myVermerk.Mitarbeiter = cGlobal.AktiverMitarbeiter.Mitarbeiter : myVermerk.MitarbeiterId = cGlobal.AktiverMitarbeiter.MitarbeiterID
myVermerk.Hinweis_Vermerk = "Akt vorgeschrieben" : myVermerk.VermerkCodeId = 35
VermerkeDAL.SpeichernVermerk(myVermerk)
End Sub
Public Function setErfasst(AvisoID) As Boolean
' If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("STATUS_Erfasst", "AVISO") Then
MsgBox("Keine Berechtigung!")
Return False
End If
'falls keine Auswahl bzw. kein Datensatz, dann nichts machen
If AvisoID <= 0 Then
MsgBox("Kein Aviso ausgewählt!")
Return False
End If
'jetzt ausgewählten Datensatz einlesen
Dim Aviso As New cAviso
Aviso = AvisoDAL.LesenAviso(AvisoID, "")
If Aviso Is Nothing Then Return False
If Aviso.Abgeschlossen Then MsgBox("Der Akt wurde bereits abgeschlossen.", vbInformation) : Return False
Dim msg As String
Dim antwort As MsgBoxResult
'Taste ERFASST
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben Then
MsgBox("Dieses LKW-Aviso ist bereits freigegeben.", vbInformation)
Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen Then
MsgBox("Dieses LKW-Aviso ist bereits auf 'LKW nicht eingetroffen' gesetzt.", vbInformation)
Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Erfasst Then
MsgBox("Dieses LKW-Aviso ist bereits auf ERFASST gesetzt.", vbInformation)
Return False
End If
Dim tmpid = -1
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet Then
msg = "Dieses LKW-Aviso ist bereits auf VORBEREITET gesetzt." & vbCrLf & vbCrLf &
"Soll der Status wieder auf ERFASST geändert werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle),
"Status-Änderung")
If antwort = vbNo Then Return False
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Erfasst
Aviso.Ankunft = LeerDatum
Aviso.Vorbereitet = LeerDatum
Aviso.Vorgeschrieben = LeerDatum
Aviso.Änderungen = "auf ERFASST gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
Aviso.letzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
tmpid = AvisoDAL.SpeichernAviso(Aviso)
AvisoDAL.addAenderung(tmpid, "auf ERFASST gesetzt", "auf ERFASST gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben Then
msg = "Dieses LKW-Aviso ist bereits auf VORGESCHRIEBEN gesetzt." & vbCrLf & vbCrLf &
"Soll der Status wieder auf ERFASST geändert werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle),
"Status-Änderung")
If antwort = vbNo Then Return False
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Erfasst
Aviso.Ankunft = LeerDatum
Aviso.Vorbereitet = LeerDatum
Aviso.Vorgeschrieben = LeerDatum
Aviso.Änderungen = "auf ERFASST gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
Aviso.letzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
tmpid = AvisoDAL.SpeichernAviso(Aviso)
AvisoDAL.addAenderung(tmpid, "auf ERFASST gesetzt", "auf ERFASST gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft Then
msg = "Dieses LKW-Aviso ist bereits auf ANKUNFT gesetzt." & vbCrLf & vbCrLf &
"Soll der Status wieder auf ERFASST geändert werden?"
antwort = MsgBox(msg, CType(MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question, MsgBoxStyle),
"Status-Änderung")
If antwort = vbNo Then Return False
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Erfasst
Aviso.Ankunft = LeerDatum
Aviso.Vorbereitet = LeerDatum
Aviso.Vorgeschrieben = LeerDatum
Aviso.Änderungen = "auf ERFASST gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
Aviso.letzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
tmpid = AvisoDAL.SpeichernAviso(Aviso)
AvisoDAL.addAenderung(tmpid, "auf ERFASST gesetzt", "auf ERFASST gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
End If
Return (tmpid > 0)
End Function
Public Function setAbgeschlossen(AvisoID As Integer, value As Boolean) As Boolean
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
MsgBox("Keine Berechtigung!")
Return False
End If
'falls keine Auswahl bzw. kein Datensatz, dann nichts machen
If AvisoID <= 0 Then
MsgBox("Kein Aviso ausgewählt!")
Return False
End If
'jetzt ausgewählten Datensatz einlesen
Dim Aviso As New cAviso
Aviso = AvisoDAL.LesenAviso(AvisoID, "")
If Aviso Is Nothing Then Return False
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben Or Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet Or Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Erfasst Or Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben Then
'Prüfung
If False Then
'If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
' If value Then
' Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
' If SQL.getValueTxtBySql("SELECT isnull(count(*),0) FROM Speditionsbuch WHERE AvisoID=" & AvisoID, "FMZOLL") = 0 Then
' If vbYes <> MsgBox("Keine Speditionbucheinträge vorhanden!" & vbNewLine & vbNewLine & "Möchten Sie trotzdem fortfahren?", vbYesNoCancel) Then
' Return False
' End If
' End If
' Aviso.Abgeschlossen = value
' AvisoDAL.SpeichernAviso(Aviso)
' AvisoDAL.addAenderung(AvisoID, "AKT abgeschlossen", "auf 'AKT ABGESCHLOSSEN' gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
' Else
' Aviso.Abgeschlossen = value
' AvisoDAL.SpeichernAviso(Aviso)
' AvisoDAL.addAenderung(AvisoID, "AKT erneut geöffnet", "auf 'AKT OFFEN' gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
' End If
Else
If value Then
For Each r In AvisoDAL.loadDataTableBySQL("SELECT tblSnd_SpeditionsbuchEingetragen FROM tblSendungen WHERE tblSnd_AvisoID=" & AvisoID & " AND [tblSnd_Fremdspedition]=0").Rows
If Not CBool(r(0)) Then
MsgBox("Sie müssen erst alle Sendungen ins Speditionsbuch eintragen!")
Return False
End If
Next
Aviso.Abgeschlossen = value
AvisoDAL.SpeichernAviso(Aviso)
'--> Nicht mehr benötigt, alte Archiv Software IMEX
'Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
' Case "IMEX" : createNLC(Aviso)
'End Select
AvisoDAL.addAenderung(AvisoID, "AKT abgeschlossen", "auf 'AKT ABGESCHLOSSEN' gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
'Benachrichtigungen erledigen
VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.BESTAETIGEN_BENACHRICHTIGUNG_ALL(Aviso.AvisoID, False)
Else
Aviso.Abgeschlossen = value
AvisoDAL.SpeichernAviso(Aviso)
AvisoDAL.addAenderung(AvisoID, "AKT erneut geöffnet", "auf 'AKT OFFEN' gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
End If
End If
Return True
Else
MsgBox("LKW-Status muss auf 'Freigegeben' sein.", vbInformation)
Return False
End If
Return True
End Function
Function createNLC(aviso As VERAG_PROG_ALLGEMEIN.cAviso) As Boolean
Dim haserror = True
Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen)
VERAG_PROG_ALLGEMEIN.cSendungen.LOAD_LIST(SENDUNG_LIST, -1, aviso.AvisoID)
For Each s In SENDUNG_LIST
If Not createNLCSimple(aviso, s) Then haserror = False
Next
Return haserror
End Function
Function createNLCSimple(AVISO As VERAG_PROG_ALLGEMEIN.cAviso, SENDUNG As VERAG_PROG_ALLGEMEIN.cSendungen) As Boolean
Try
Dim resPath As String = System.IO.Path.GetFullPath(Application.StartupPath & "\Resources\")
Dim nlcString As String = My.Computer.FileSystem.ReadAllText(resPath & "\MUSTER.NLC", System.Text.Encoding.Default)
nlcString = nlcString.Replace("%Empfaenger%", SENDUNG.tblSnd_Empfaenger)
nlcString = nlcString.Replace("%Versender%", SENDUNG.tblSnd_Absender)
nlcString = nlcString.Replace("%Fraechter%", AVISO.Frächter)
nlcString = nlcString.Replace("%Auftraggeber%", SENDUNG.tblSnd_Auftraggeber)
nlcString = nlcString.Replace("%AvisNr%", AVISO.AvisoID)
nlcString = nlcString.Replace("%LKWKennzeichen%", AVISO.LKW_Nr)
If AVISO.Ankunft > CDate("01.01.2001") Then nlcString = nlcString.Replace("%Ankunft%", AVISO.Ankunft)
If AVISO.Freigabe > CDate("01.01.2001") Then nlcString = nlcString.Replace("%Datum%", AVISO.Freigabe.ToShortDateString)
nlcString = nlcString.Replace("%PosNr%", SENDUNG.FilialenNr & "/" & SENDUNG.AbfertigungsNr)
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
My.Computer.FileSystem.WriteAllText("C:\Temp\" & SENDUNG.FilialenNr & "_" & SENDUNG.AbfertigungsNr & ".nlc", nlcString, False)
Else
My.Computer.FileSystem.WriteAllText("\\192.168.1.20\daten\PronobisApps\JobExtender\Jobs\UpdIdx_Abfertigung\" & SENDUNG.FilialenNr & "_" & SENDUNG.AbfertigungsNr & ".nlc", nlcString, False)
End If
Console.ReadLine()
Return True
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Return False
End Try
End Function
Public Function setNichtEingeftroffen(AvisoID, Optional geloescht = False) As Boolean
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
MsgBox("Keine Berechtigung!")
Return False
End If
'falls keine Auswahl bzw. kein Datensatz, dann nichts machen
If AvisoID <= 0 Then
MsgBox("Kein Aviso ausgewählt!")
Return False
End If
'jetzt ausgewählten Datensatz einlesen
Dim Aviso As New cAviso
Aviso = AvisoDAL.LesenAviso(AvisoID, "")
If Aviso Is Nothing Then Return False
If Aviso.Abgeschlossen Then MsgBox("Der Akt wurde bereits abgeschlossen.", vbInformation) : Return False
Dim msg As String
Dim antwort As MsgBoxResult
'Taste NICHT EINGETROFFEN
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben Then
MsgBox("Dieses LKW-Aviso ist bereits freigegeben.", vbInformation)
Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen Then
MsgBox("Dieses LKW-Aviso ist bereits auf 'LKW nicht eingetroffen' gesetzt.", vbInformation)
Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft Then
MsgBox("Dieses LKW-Aviso ist bereits auf ANKUNFT gesetzt.", vbInformation)
Return False
End If
Dim tmpid = -1
' If Aviso.Status = VERAG_PROG_ALLGEMEIN.cglobal.Status_Erfasst Then
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen
Aviso.letzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
tmpid = AvisoDAL.SpeichernAviso(Aviso)
If geloescht Then
Aviso.Änderungen = "auf 'Gelöscht' gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
AvisoDAL.addAenderung(tmpid, "auf 'Gelöscht' gesetzt", "auf 'Gelöscht' gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
Else
Aviso.Änderungen = "auf LKW nicht eingetroffen gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
AvisoDAL.addAenderung(tmpid, "auf LKW nicht eingetroffen gesetzt", "auf LKW nicht eingetroffen gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
End If
' End If
Return (tmpid > 0)
End Function
Public Function setFreigabe(AvisoID As Integer, CONTROL As Control, Optional allowEveryState As Boolean = False) As Boolean
'falls keine Auswahl bzw. kein Datensatz, dann nichts machen
If AvisoID <= 0 Then
MsgBox("Kein Aviso ausgewählt!")
Return False
End If
'jetzt ausgewählten Datensatz einlesen
Dim Aviso As New cAviso
Aviso = AvisoDAL.LesenAviso(AvisoID, "")
If Aviso Is Nothing Then Return False
If Aviso.Abgeschlossen Then MsgBox("Der Akt wurde bereits abgeschlossen.", vbInformation) : Return False
'If Aviso.Warenort = False Then 'VERIMEX darf bei Warenort Status setzen
' If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
' MsgBox("Keine Berechtigung!")
' Return False
' End If
'End If
'Prüfung kassieren:
Dim CURRENT_INDEX = -1
Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen)
VERAG_PROG_ALLGEMEIN.cSendungen.LOAD_LIST(SENDUNG_LIST, CURRENT_INDEX, AvisoID)
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim zuKassieren As Double = 0
Dim belegVorhanden As Boolean = True
Dim found As Boolean = False
'Dim zuKassBelege As String = ""
For Each S In SENDUNG_LIST 'LÄDT alle SENDUNGSDATEN
If If(S.tblSnd_BARzuKassieren, 0) > 0 Then
zuKassieren += S.tblSnd_BARzuKassieren
If S.FilialenNr > 0 And S.AbfertigungsNr > 0 Then
Try
If SQL.getValueTxtBySql("SELECT Count(*) FROM [tblEABelegnummer] as b INNER JOIN [tblEABelegposition] as p ON (b.BelegNr = p.BelegNr AND b.BelegDat = p.BelegDat AND b.Benutzer = p.Benutzer AND b.Niederlassung = p.Niederlassung AND b.Mandant = p.Mandant) where ((b.AbfertigungsNr='" & S.AbfertigungsNr & "' and b.FilialenNr='" & S.FilialenNr & "') or (p.AbfertigungsNr='" & S.AbfertigungsNr & "' and p.FilialenNr='" & S.FilialenNr & "')) and storniert=0 and gebuchtstorno=0 ", "FMZOLL") > 0 Then
found = True
Else
belegVorhanden = False
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End If
End If
Next
If zuKassieren > 0 Then
If Not found Or Not belegVorhanden Then
If vbYes <> MsgBox("BAR-Beleg fehlt!" & vbNewLine & "Wurde der Betrag '" & zuKassieren.ToString("C2") & "' (Summe) bereits kassiert?", vbYesNoCancel, "Bar kassieren") Then
Return False
End If
End If
End If
'Taste FREIGABE
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben Then
MsgBox("Dieses LKW-Aviso ist bereits freigegeben.", vbInformation)
Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen Then
MsgBox("Dieses LKW-Aviso ist bereits auf 'LKW nicht eingetroffen' gesetzt.", vbInformation)
Return False
End If
If allowEveryState = False And (Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Erfasst Or Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet Or Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben) Then
MsgBox("Dieses LKW-Aviso wurde noch nicht auf ANKUNFT gesetzt und kann deshalb nicht auf FREIGABE gesetzt werden.", vbInformation)
Return False
End If
Dim tmpid = -1
'Status ist Ankunft - jetzt auf Freigabe setzen und Dauer berechnen
If allowEveryState Or Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft Then
If Not setFreigabeMsg(Aviso) Then
Return False
End If
Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben
Aviso.Freigabe = Now
Aviso.Dauer = CInt(DateDiff(DateInterval.Minute, Aviso.Ankunft, Now))
If Aviso.Dauer = 0 Then Aviso.Dauer = 1 'Sonderfall, wenn Ankunft und Freigabe hintereinander gedrückt wird (z.b. vergessen)
Aviso.Änderungen = "auf FREIGABE gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
Aviso.letzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
If Not Aviso.LKW_fertig Then
Aviso.LKW_fertig = True
Aviso.Änderungen = "LKW ist fertig - nicht gesetzt, deshalb automatisch gesetzt mit FREIGABE" & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
End If
'If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" Then
' If Aviso.Grenzstelle.Replace("???", "") <> "" Then
' If VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG <> "" Then Aviso.Grenzstelle = VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG
' End If
'End If
Aviso.FreigabeFiliale = VERAG_PROG_ALLGEMEIN.cAllgemein.getSTAMMFILIALE
'Speditionsbuch aktualisieren
SQL.doSQL("UPDATE Speditionsbuch SET FilialenNrHandling='" & VERAG_PROG_ALLGEMEIN.cAllgemein.getSTAMMFILIALE & "' WHERE AvisoId='" & Aviso.AvisoID & "'", "FMZOLL")
tmpid = AvisoDAL.SpeichernAviso(Aviso)
AvisoDAL.addAenderung(tmpid, "auf FREIGABE gesetzt", "auf FREIGABE gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
If Not Aviso.LKW_fertig Then
AvisoDAL.addAenderung(tmpid, "LKW ist fertig - nicht gesetzt", "LKW ist fertig - nicht gesetzt, deshalb automatisch gesetzt mit FREIGABE")
End If
'Wenn DE oder AT Zoll eingereicht -> automatisch fertigstellen XXXXXXXXXX
' MsgBox(AvisoDAL.VermerkExistsInAvisoByID(Aviso.AvisoID, 17))
If AvisoDAL.VermerkExistsInAvisoByID(Aviso.AvisoID, 17) Then
' MsgBox(AvisoDAL.VermerkExistsInAvisoByID(Aviso.AvisoID, 18))
If Not AvisoDAL.VermerkExistsInAvisoByID(Aviso.AvisoID, 18) Then
Dim myVermerk As New cVermerk
myVermerk.AvisoID = Aviso.AvisoID : myVermerk.Datum = Now
myVermerk.Mitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter : myVermerk.MitarbeiterId = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.MitarbeiterID
myVermerk.Hinweis_Vermerk = "DE Zoll fertig" : myVermerk.VermerkCodeId = 18
VermerkeDAL.SpeichernVermerk(myVermerk)
End If
End If
If AvisoDAL.VermerkExistsInAvisoByID(Aviso.AvisoID, 19) Then
If Not AvisoDAL.VermerkExistsInAvisoByID(Aviso.AvisoID, 20) Then
Dim myVermerk As New cVermerk
myVermerk.AvisoID = Aviso.AvisoID : myVermerk.Datum = Now
myVermerk.Mitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter : myVermerk.MitarbeiterId = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.MitarbeiterID
myVermerk.Hinweis_Vermerk = "AT Zoll fertig" : myVermerk.VermerkCodeId = 20
VermerkeDAL.SpeichernVermerk(myVermerk)
End If
End If
'nach dem erfolgreichem Speichern wird jetzt noch ein automatisches Mail für den Frächter und Auftraggeber erstellt
SendFreigabeEmail(Aviso)
VERAG_PROG_ALLGEMEIN.cMessenger.SET_LKWCHAT_INAKTIV(Aviso.AvisoID)
If True Then
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("AUTONACHERFASSUNG", CONTROL.FindForm) Then
Dim doAutoNacherf = True ' (vbYes = MsgBox("Autonacherfassung durchführen?", vbYesNoCancel))
If doAutoNacherf Then
AUTONACHERFASSUNG(CONTROL, AvisoID)
End If
End If
End If
End If
Return (tmpid > 0)
End Function
Function setFreigabeMsg(AVISO As VERAG_PROG_ALLGEMEIN.cAviso) As Boolean
Dim text = ""
Dim text_Freigabe = ""
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "ATILLA"
'Case "VERAG", "IMEX", "IMEX", "IMEX"
Case Else
Try
If IsNumeric(AVISO.Auftraggeber_KdNr) Then
Dim cADMIN As New cADMIN
text = cADMIN.getValueTxtBySql("SELECT DokumenteLKWFreigabe FROM Kunden WHERE KundenNr=" & AVISO.Auftraggeber_KdNr, "FMZOLL")
End If
Catch ex As Exception
End Try
End Select
If AVISO.Freigabe_Info <> "" Then
text_Freigabe &= AVISO.Freigabe_Info
End If
If True Then ' If text <> "" Or text_Freigabe <> "" Then
Dim f As New frmFreigabeSetzen(AVISO)
f.rtbDokumente.Text = text
f.rtbSonstigeInfo.Text = text_Freigabe
If AVISO.Grenzstelle = "SUB" Then ' Nur in Suben!
f.cbxInfoblattFurDigitalabfertigungDrucken.Checked = (SQL.DLookup("COUNT(*)", "Vermerke", " AvisoID=" & AVISO.AvisoID & " and VermerkeCode=82", "AVISO", 0) > 0)
End If
If f.ShowDialog() = DialogResult.Cancel Then
Return False
End If
End If
Return True
End Function
Shared Sub printFinish(myAviso As VERAG_PROG_ALLGEMEIN.cAviso)
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
If VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("PRINT_Freigabe_FinishDigital") Then
If myAviso.Grenzstelle = "SUB" Then ' Nur in Suben!
If (SQL.DLookup("COUNT(*)", "Vermerke", " AvisoID=" & myAviso.AvisoID & " and VermerkeCode=82", "AVISO", 0) > 0) Then
Dim path = SDL.FormularManagerNEU.Finish_AVISO(myAviso)
Dim oPS As New System.Drawing.Printing.PrinterSettings
If path <> "" Then
VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaGS(path, oPS.PrinterName)
MsgBox("Finish-Zettel wird gedruckt!")
End If
End If
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Public Sub AUTONACHERFASSUNG(CONTROL As Control, AvisoID As Integer)
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
MsgBox("Keine Berechtigung!")
Exit Sub
End If
Dim ZOLL_IMPORT As New DAKOSY_Worker.cZOLL_IMPORT
Try
CONTROL.FindForm.Cursor = Cursors.WaitCursor
Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen)
For Each r In AvisoDAL.loadDataTableBySQL("SELECT tblSnd_SendungID FROM tblSendungen WHERE tblSnd_AvisoID=" & AvisoID).Rows
SENDUNG_LIST.Add(New VERAG_PROG_ALLGEMEIN.cSendungen(r("tblSnd_SendungID")))
Next
For Each s In SENDUNG_LIST
If s.tblSnd_Abfertigungsart_ID = 23 Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FMZollPersID Then
Dim Personalnummer = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FMZollPersID
Dim SPEDITIONSBUCH As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(s.FilialenNr, s.AbfertigungsNr)
If Not SPEDITIONSBUCH.hasEntry Then
Dim notFound As Boolean = True
SPEDITIONSBUCH = ZOLL_IMPORT.IMPORT(SPEDITIONSBUCH, AvisoID, s.tblSnd_SendungID, "", "", "", "", "", notFound, True, Personalnummer)
If ZOLL_IMPORT.checkIfAutoOK Then
If SPEDITIONSBUCH.SAVE() Then
s.tblSnd_SpeditionsbuchEingetragen = 1
s.SAVE()
End If
End If
Else
Dim SPEDBUCH_LIST As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuchList(s.FilialenNr, s.AbfertigungsNr) 'Liste laden, falls merhrere Einträge
If SPEDBUCH_LIST IsNot Nothing AndAlso SPEDBUCH_LIST.LIST IsNot Nothing Then
For Each SB In SPEDBUCH_LIST.LIST
If Not SPEDITIONSBUCH.Bar Then
ZOLL_IMPORT.SetBarKassiert(SB) ' BAR-Häckchen setzen, wenn kassiert wurde! (durch auto-Nacherfassung of nicht gesetzt)
End If
Next
End If
End If
'If ZOLL_IMPORT.AUTO_IMPORT(s.tblSnd_SendungID) Then
' s.tblSnd_SpeditionsbuchEingetragen = 1
' s.SAVE()
'End If
End If
End If
Next
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
CONTROL.FindForm.Cursor = Cursors.Default
End Sub
Public Function AktUebernehmen(AvisoID, Optional askSendungenUebernehmen = False, Optional checkStatus = True, Optional nurLeereSendungenUebernehmen = False) As Boolean
'If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
' MsgBox("Keine Berechtigung!")
' Return False
'End If
'falls keine Auswahl bzw. kein Datensatz, dann nichts machen
If AvisoID <= 0 Then
MsgBox("Kein Aviso ausgewählt!")
Return False
End If
'jetzt ausgewählten Datensatz einlesen
Dim Aviso As New cAviso
Aviso = AvisoDAL.LesenAviso(AvisoID, "")
If Aviso Is Nothing Then Return False
If Aviso.Abgeschlossen Then MsgBox("Der Akt wurde bereits abgeschlossen.", vbInformation) : Return False
Dim msg As String
Dim antwort As MsgBoxResult
If checkStatus Then
'Taste Akt übernehmen
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben Then
MsgBox("Dieses LKW-Aviso ist bereits freigegeben.", vbInformation)
Return False
End If
If Aviso.Status = VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen Then
MsgBox("Dieses LKW-Aviso ist bereits auf 'LKW nicht eingetroffen' gesetzt.", vbInformation)
Return False
End If
End If
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
Aviso.Buero = VERAG_PROG_ALLGEMEIN.cAllgemein.BÜRO
End If
'Status ist Ankunft, Vorbereitet, Vorgeschrieben oder Erfasst - aktiver Mitarbeiter wird geändert
Aviso.letzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
'If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" Then
' If Aviso.Grenzstelle.Replace("???", "") <> "" Then
' If VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG <> "" Then Aviso.Grenzstelle = VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG
' End If
'End If
Aviso.Änderungen = "Akt übernommen von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
Dim tmpid = AvisoDAL.SpeichernAviso(Aviso)
AvisoDAL.addAenderung(tmpid, "Akt übernommen", "Akt übernommen von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
'Benachrichtigungen erledigen 'nicht mehr, 16.07.2020
'VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.BESTAETIGEN_BENACHRICHTIGUNG_ALL(Aviso.AvisoID, True)
If askSendungenUebernehmen Or nurLeereSendungenUebernehmen Then
Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen)
VERAG_PROG_ALLGEMEIN.cSendungen.LOAD_LIST(SENDUNG_LIST, -1, AvisoID) 'LÄDT alle SENDUNGSDATEN
If nurLeereSendungenUebernehmen Then
For Each s In SENDUNG_LIST
If s.LetzterMitarbeiterId Is Nothing OrElse CInt(s.LetzterMitarbeiterId) <= 0 Then
SendungUebernehmen(s.tblSnd_SendungID, AvisoID)
End If
Next
Else
Dim alleAkten = False
If askSendungenUebernehmen Then
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER Then
For Each s1 In SENDUNG_LIST
If s1.LetzterMitarbeiterId IsNot Nothing AndAlso s1.LetzterMitarbeiterId <> VERAG_PROG_ALLGEMEIN.cAllgemein.USRID Then
Select Case MsgBox("Möchten Sie alle Sendungen übernehmen?", vbYesNoCancel)
Case vbYes : alleAkten = True
Case vbCancel : Return False
End Select
Exit For
End If
Next
End If
End If
If alleAkten Then
For Each s In SENDUNG_LIST
' If s.LetzterMitarbeiterId IsNot Nothing Then
SendungUebernehmen(s.tblSnd_SendungID, AvisoID)
' End If
Next
End If
End If
End If
Try
If frmHauptfenster.pnlDetailsRechts.Controls.Count > 0 Then
Select Case VERAG_PROG_ALLGEMEIN.cAviso.getFirmaByAvisoId(AvisoID)
'Case "VERAG"
' If DirectCast(frmHauptfenster.pnlDetailsRechts.Controls(0), usrcntlAktDetails).AvisoID = AvisoID Then
' DirectCast(frmHauptfenster.pnlDetailsRechts.Controls(0), usrcntlAktDetails).showInfo("Akt übernommen", 2)
' End If
Case "ATILLA"
If VERAG_PROG_ALLGEMEIN.cAllgemein.ATILLA_SND Then
GoTo ELSE_ATILLA
Else
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DAKOSY", "AVISO") Then
If DirectCast(frmHauptfenster.pnlDetailsRechts.Controls(0), usrcntlAktDetailsATILLANeu).AvisoID = AvisoID Then
DirectCast(frmHauptfenster.pnlDetailsRechts.Controls(0), usrcntlAktDetailsATILLANeu).showInfo("Akt übernommen", 2)
End If
End If
End If
Case Else
ELSE_ATILLA:
If DirectCast(frmHauptfenster.pnlDetailsRechts.Controls(0), usrcntlAktDetails).AvisoID = AvisoID Then
DirectCast(frmHauptfenster.pnlDetailsRechts.Controls(0), usrcntlAktDetails).showInfo("Akt übernommen", 2)
End If
End Select
End If
Catch ex As Exception
'MsgBox(ex.Message)
End Try
Return (tmpid > 0)
End Function
Public Function AktUebernehmen_Zuruecksetzen(AvisoID As Integer, Optional WeiterleitungTextTV As String = "", Optional letzterMitarbeiter As String = "Weiterleitung") As Boolean
Try
'If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
' MsgBox("Keine Berechtigung!")
' Return False
'End If
'falls keine Auswahl bzw. kein Datensatz, dann nichts machen
If AvisoID <= 0 Then
MsgBox("Kein Aviso ausgewählt!")
Return False
End If
'jetzt ausgewählten Datensatz einlesen
Dim Aviso As New cAviso
Aviso = AvisoDAL.LesenAviso(AvisoID, "")
If Aviso Is Nothing Then Return False
If Aviso.Abgeschlossen Then MsgBox("Der Akt wurde bereits abgeschlossen.", vbInformation) : Return False
Aviso.LetzterMitarbeiterId = -1
Aviso.letzterMitarbeiter = letzterMitarbeiter ' VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.WeiterleitungTextTV = WeiterleitungTextTV ' VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter
Aviso.TeamId = -1 'VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
'Aviso.Änderungen = "Akt übernommen von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen))
'Dim tmpid = AvisoDAL.SpeichernAviso(Aviso)
'AvisoDAL.addAenderung(tmpid, "Akt übernommen", "Akt übernommen von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen)
VERAG_PROG_ALLGEMEIN.cSendungen.LOAD_LIST(SENDUNG_LIST, -1, AvisoID) 'LÄDT alle SENDUNGSDATEN
AvisoDAL.SpeichernAviso(Aviso, False)
'Nicht MEHR!
'For Each s In SENDUNG_LIST
' ' If s.LetzterMitarbeiterId IsNot Nothing Then
' SendungUebernehmen_Zuruecksetzen(s.tblSnd_SendungID, AvisoID)
' ' End If
'Next
Return True
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Return False
End Try
End Function
Public Function SendungUebernehmen(SendungsId As Integer, AvisoID As Integer, Optional MaId As Integer = -1, Optional GesendetAn As Boolean = False) As Boolean
'If SendungsId Is Nothing Then Return False
If Not IsNumeric(SendungsId) Then Return False
' If AvisoID Is Nothing Then Return False
If Not IsNumeric(AvisoID) Then Return False
Dim SENDUNG_TMP = New VERAG_PROG_ALLGEMEIN.cSendungen(SendungsId)
Return SendungUebernehmen(SENDUNG_TMP, MaId, GesendetAn)
End Function
Public Function SendungUebernehmen(ByRef SENDUNG_TMP As VERAG_PROG_ALLGEMEIN.cSendungen, Optional MaId As Integer = -1, Optional GesendetAn As Boolean = False) As Boolean
Dim MITARBEITER As cMitarbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER
If MaId > 0 Then
MITARBEITER = New cMitarbeiter(MaId)
End If
If SENDUNG_TMP Is Nothing Then Return False
Dim saveSachbearbeiterTmp = SENDUNG_TMP.saveSachbearbeiter
SENDUNG_TMP.saveSachbearbeiter = True
SENDUNG_TMP.LetzterMitarbeiterId = MITARBEITER.mit_id
SENDUNG_TMP.LetzterMitarbeiter = MITARBEITER.Fullname
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER Then ' nur, wenn BO, dann darf das Team geändert werden... Damit das zuständige Team nachvollzeiehn kann, was mit dem LKW ist...
SENDUNG_TMP.tblSnd_TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
End If
If VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "QS" Then
If (SENDUNG_TMP.tblSnd_QS_MA Is Nothing OrElse SENDUNG_TMP.tblSnd_QS_MA <= 0) Then SENDUNG_TMP.tblSnd_QS_MA = MITARBEITER.mit_id
Else
If (SENDUNG_TMP.tblSnd_VG_MA Is Nothing OrElse SENDUNG_TMP.tblSnd_VG_MA <= 0) Then SENDUNG_TMP.tblSnd_VG_MA = MITARBEITER.mit_id
End If
If SENDUNG_TMP.SAVE() Then
AvisoDAL.addAenderung(SENDUNG_TMP.tblSnd_AvisoID, "Sendung übernommen", "Sendung Nr. " & SENDUNG_TMP.tblSnd_PosUnterNr & If(GesendetAn, " gesendet an ", " übernommen von ") & MITARBEITER.Fullname & " am " & Format(Now, "dd.MM.yyyy HH:mm") & If(GesendetAn, " (von " & VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.Fullname & ")", ""))
SENDUNG_TMP.saveSachbearbeiter = saveSachbearbeiterTmp
'Benachrichtigungen erledigen 'nicht mehr, 16.07.2020
' VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.BESTAETIGEN_BENACHRICHTIGUNG_SND(SENDUNG_TMP.tblSnd_SendungID, True)
Return True
End If
SENDUNG_TMP.saveSachbearbeiter = saveSachbearbeiterTmp
Return False
End Function
Public Function SendungUebernehmen_Zuruecksetzen(SendungsId As Integer, AvisoID As Integer) As Boolean
If Not IsNumeric(SendungsId) Then Return False
If Not IsNumeric(AvisoID) Then Return False
Dim SENDUNG_TMP = New VERAG_PROG_ALLGEMEIN.cSendungen(SendungsId)
Return SendungUebernehmen_Zuruecksetzen(SENDUNG_TMP)
End Function
Public Function SendungUebernehmen_Zuruecksetzen(ByRef SENDUNG_TMP As VERAG_PROG_ALLGEMEIN.cSendungen) As Boolean
If SENDUNG_TMP Is Nothing Then Return False
Dim saveSachbearbeiterTmp = SENDUNG_TMP.saveSachbearbeiter
SENDUNG_TMP.saveSachbearbeiter = True
SENDUNG_TMP.LetzterMitarbeiterId = -1
SENDUNG_TMP.LetzterMitarbeiter = ""
SENDUNG_TMP.tblSnd_TeamId = -1
'If Not VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER Then ' nur, wenn BO, dann darf das Team geändert werden... Damit das zuständige Team nachvollzeiehn kann, was mit dem LKW ist...
' SENDUNG_TMP.tblSnd_TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
'End If
If SENDUNG_TMP.SAVE() Then
'AvisoDAL.addAenderung(SENDUNG_TMP.tblSnd_AvisoID, "Sendung übernommen", "Sendung Nr. " & SENDUNG_TMP.tblSnd_PosUnterNr & If(GesendetAn, " gesendet an ", " übernommen von ") & MITARBEITER.Fullname & " am " & Format(Now, "dd.MM.yyyy HH:mm") & If(GesendetAn, " (von " & VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.Fullname & ")", ""))
SENDUNG_TMP.saveSachbearbeiter = saveSachbearbeiterTmp
Return True
End If
SENDUNG_TMP.saveSachbearbeiter = saveSachbearbeiterTmp
Return False
End Function
Public Function setSendungVorgeschrieben(SendungsId, AvisoID) As Boolean
If SendungsId Is Nothing Then Return False
If Not IsNumeric(SendungsId) Then Return False
If AvisoID Is Nothing Then Return False
If Not IsNumeric(AvisoID) Then Return False
Dim SENDUNG_TMP = New VERAG_PROG_ALLGEMEIN.cSendungen(SendungsId)
SENDUNG_TMP.saveSachbearbeiter = True
If SENDUNG_TMP.tblSnd_Vorgeschrieben Is Nothing Then
SENDUNG_TMP.tblSnd_VG_MA = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA <> "VERIMEX" Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId IsNot Nothing Then SENDUNG_TMP.tblSnd_TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
End If
SENDUNG_TMP.tblSnd_Vorgeschrieben = Now 'SENDUNG_TMP.tblSnd_Status=VERAG_PROG_ALLGEMEIN.vor ' Status macht keinen Sinn..
AvisoDAL.addAenderung(AvisoID, "Sendung auf VORGESCHRIEBEN gesetzt", "Sendung '" & SENDUNG_TMP.tblSnd_PosUnterNr & " " & SENDUNG_TMP.tblSnd_Empfaenger & "' auf VORGESCHRIEBEN gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Kreditlimit_Check_SND_Vorgeschrieben", "AVISO") Then
frmSendungsdetailsNEU.checkKreditlimit_ID(frmHauptfenster, AvisoID, SendungsId, True, False) 'NOCH NICHT..
End If
Else
SENDUNG_TMP.tblSnd_Vorgeschrieben = Nothing
AvisoDAL.addAenderung(AvisoID, "Sendung auf NICHT VORGESCHRIEBEN gesetzt", "Sendung '" & SENDUNG_TMP.tblSnd_PosUnterNr & " " & SENDUNG_TMP.tblSnd_Empfaenger & "' auf NICHT VORGESCHRIEBEN gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
End If
Return SENDUNG_TMP.SAVE()
End Function
Public Function setSendungVorbereitetQS(SendungsId, AvisoID) As Boolean
If SendungsId Is Nothing Then Return False
If Not IsNumeric(SendungsId) Then Return False
If AvisoID Is Nothing Then Return False
If Not IsNumeric(AvisoID) Then Return False
Dim SENDUNG_TMP = New VERAG_PROG_ALLGEMEIN.cSendungen(SendungsId)
SENDUNG_TMP.saveSachbearbeiter = True
If SENDUNG_TMP.tblSnd_Vorbereitet Is Nothing Then ' VB gesetzt!
SENDUNG_TMP.tblSnd_QS_MA = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
SENDUNG_TMP.tblSnd_FilialeAbklaerung = VERAG_PROG_ALLGEMEIN.cAllgemein.getSTAMMFILIALE
'If VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "QS" Then
' SENDUNG_TMP.tblSnd_QS_MA = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
'End If
'Lt. Bespr. ML und TW (6.10.22) --> wenn VBQS gesetzt, soll MA leer sein:
SENDUNG_TMP.LetzterMitarbeiter = ""
SENDUNG_TMP.LetzterMitarbeiterId = -1
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA <> "VERIMEX" Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId IsNot Nothing Then SENDUNG_TMP.tblSnd_TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
End If
SENDUNG_TMP.tblSnd_Vorbereitet = Now 'SENDUNG_TMP.tblSnd_Status=VERAG_PROG_ALLGEMEIN.vor ' Status macht keinen Sinn..
AvisoDAL.addAenderung(AvisoID, "Sendung auf VORBEREITET gesetzt", "Sendung '" & SENDUNG_TMP.tblSnd_PosUnterNr & " " & SENDUNG_TMP.tblSnd_Empfaenger & "' auf VORBEREITET gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
Else
SENDUNG_TMP.tblSnd_Vorbereitet = Nothing
AvisoDAL.addAenderung(AvisoID, "Sendung auf NICHT VORBEREITET gesetzt", "Sendung '" & SENDUNG_TMP.tblSnd_PosUnterNr & " " & SENDUNG_TMP.tblSnd_Empfaenger & "' auf NICHT VORBEREITET gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
End If
Return SENDUNG_TMP.SAVE()
End Function
Public Function setSendungAbklaerungTR(SendungsId, AvisoID) As Boolean
If SendungsId Is Nothing Then Return False
If Not IsNumeric(SendungsId) Then Return False
If AvisoID Is Nothing Then Return False
If Not IsNumeric(AvisoID) Then Return False
Dim SENDUNG_TMP = New VERAG_PROG_ALLGEMEIN.cSendungen(SendungsId)
SENDUNG_TMP.saveSachbearbeiter = True
'If SENDUNG_TMP.tblSnd_Vorgeschrieben IsNot Nothing Then
' MsgBox("Sendung wurde bereits auf 'Vorgeschrieben' gesetzt - Status nicht mehr möglich!")
' Return False
'End If
'If SENDUNG_TMP.tblSnd_Vorbereitet IsNot Nothing Then
' MsgBox("Sendung wurde bereits auf 'QS Vorbereitet' gesetzt - Status nicht mehr möglich!")
' Return False
'End If
If SENDUNG_TMP.tblSnd_AbklaerungTR Is Nothing Then
SENDUNG_TMP.tblSnd_AbklaerungTR_MA = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
SENDUNG_TMP.tblSnd_FilialeAbklaerung = VERAG_PROG_ALLGEMEIN.cAllgemein.getSTAMMFILIALE
'If VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "QS" Then
' SENDUNG_TMP.tblSnd_QS_MA = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
'End If
'If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId IsNot Nothing Then SENDUNG_TMP.tblSnd_TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
SENDUNG_TMP.tblSnd_AbklaerungTR = Now 'SENDUNG_TMP.tblSnd_Status=VERAG_PROG_ALLGEMEIN.vor ' Status macht keinen Sinn..
AvisoDAL.addAenderung(AvisoID, "Sendung auf ABGEKLÄRT (TR) gesetzt", "Sendung '" & SENDUNG_TMP.tblSnd_PosUnterNr & " " & SENDUNG_TMP.tblSnd_Empfaenger & "' auf ABGEKLÄRT (TR) gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
Else
SENDUNG_TMP.tblSnd_AbklaerungTR = Nothing
AvisoDAL.addAenderung(AvisoID, "Sendung auf NICHT ABGEKLÄRT (TR) gesetzt", "Sendung '" & SENDUNG_TMP.tblSnd_PosUnterNr & " " & SENDUNG_TMP.tblSnd_Empfaenger & "' auf NICHT ABGEKLÄRT (TR) gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
End If
Return SENDUNG_TMP.SAVE()
End Function
Public Function setSendungAbfertigungTR(SendungsId, AvisoID, Optional anzahl = 1, Optional anzahlPos = 1) As Boolean
If SendungsId Is Nothing Then Return False
If Not IsNumeric(SendungsId) Then Return False
If AvisoID Is Nothing Then Return False
If Not IsNumeric(AvisoID) Then Return False
Dim SENDUNG_TMP = New VERAG_PROG_ALLGEMEIN.cSendungen(SendungsId)
SENDUNG_TMP.saveSachbearbeiter = True
'If SENDUNG_TMP.tblSnd_Vorgeschrieben IsNot Nothing Then
' MsgBox("Sendung wurde bereits auf 'Vorgeschrieben' gesetzt - Status nicht mehr möglich!")
' Return False
'End If
'If SENDUNG_TMP.tblSnd_Vorbereitet IsNot Nothing Then
' MsgBox("Sendung wurde bereits auf 'QS Vorbereitet' gesetzt - Status nicht mehr möglich!")
' Return False
'End If
SENDUNG_TMP.tblSnd_AbfertigungTRAnzahl = anzahl
SENDUNG_TMP.tblSnd_AbfertigungTRAnzahlPos = anzahlPos
If SENDUNG_TMP.tblSnd_AbfertigungTR Is Nothing Then
SENDUNG_TMP.tblSnd_AbfertigungTR_MA = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
'SENDUNG_TMP.tblSnd_FilialeAbfertigung = VERAG_PROG_ALLGEMEIN.cAllgemein.getSTAMMFILIALE
'If VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "QS" Then
' SENDUNG_TMP.tblSnd_QS_MA = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
'End If
' If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId IsNot Nothing Then SENDUNG_TMP.tblSnd_TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
SENDUNG_TMP.tblSnd_AbfertigungTR = Now 'SENDUNG_TMP.tblSnd_Status=VERAG_PROG_ALLGEMEIN.vor ' Status macht keinen Sinn..
AvisoDAL.addAenderung(AvisoID, "Sendung auf ABGEFERTIGT (TR) gesetzt", "Sendung '" & SENDUNG_TMP.tblSnd_PosUnterNr & " " & SENDUNG_TMP.tblSnd_Empfaenger & "' auf ABGEFERTIGT (TR) gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & "(Anz:" & SENDUNG_TMP.tblSnd_AbfertigungTRAnzahl & ", Pos:" & SENDUNG_TMP.tblSnd_AbfertigungTRAnzahlPos & ")")
Else
SENDUNG_TMP.tblSnd_AbfertigungTR = Nothing
AvisoDAL.addAenderung(AvisoID, "Sendung auf NICHT ABGEFERTIGT (TR) gesetzt", "Sendung '" & SENDUNG_TMP.tblSnd_PosUnterNr & " " & SENDUNG_TMP.tblSnd_Empfaenger & "' auf NICHT ABGEFERTIGT (TR) gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
End If
Return SENDUNG_TMP.SAVE()
End Function
Public Function setSendungFakturiert(SendungsId, AvisoID) As Boolean
If SendungsId Is Nothing Then Return False
If Not IsNumeric(SendungsId) Then Return False
If AvisoID Is Nothing Then Return False
If Not IsNumeric(AvisoID) Then Return False
Dim SENDUNG_TMP = New VERAG_PROG_ALLGEMEIN.cSendungen(SendungsId)
SENDUNG_TMP.saveSachbearbeiter = False
If SENDUNG_TMP.tblSnd_Fakturiert Is Nothing Then
SENDUNG_TMP.tblSnd_Fakturiert = Now 'SENDUNG_TMP.tblSnd_Status=VERAG_PROG_ALLGEMEIN.vor ' Status macht keinen Sinn..
AvisoDAL.addAenderung(AvisoID, "Sendung auf FAKTURIERT gesetzt", "Sendung '" & SENDUNG_TMP.tblSnd_PosUnterNr & " " & SENDUNG_TMP.tblSnd_Empfaenger & "' auf FAKTURIERT gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
Else
SENDUNG_TMP.tblSnd_Fakturiert = Nothing
AvisoDAL.addAenderung(AvisoID, "Sendung auf NICHT FAKTURIERT gesetzt", "Sendung '" & SENDUNG_TMP.tblSnd_PosUnterNr & " " & SENDUNG_TMP.tblSnd_Empfaenger & "' auf NICHT FAKTURIERT gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm"))
End If
Return SENDUNG_TMP.SAVE()
End Function
Public Function openSnd(sendId, AvisoID) As Form
Try
If sendId Is Nothing Then Return Nothing
If AvisoID Is Nothing Then Return Nothing
If sendId <= 0 Then Return Nothing
If AvisoID <= 0 Then Return Nothing
For Each openForm In Application.OpenForms()
If TypeOf (openForm) Is frmSendungsdetailsNEU Then
'MsgBox("Sendungsfenster bereits geöffnet!")
'CType(openForm, frmSendungsdetailsNEU).BringToFront()
'Return Nothing
CType(openForm, frmSendungsdetailsNEU).WindowState = FormWindowState.Minimized
CType(openForm, frmSendungsdetailsNEU).Close()
Exit For
End If
Next
' Dim frmGrayOut = VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO.grayoutForm()
Dim frmSendungsdetails As New frmSendungsdetailsNEU(AvisoID, sendId)
frmSendungsdetails.Show() 'Dialog() ' frmSendungsdetails.ShowDialog(frmGrayOut)
' frmGrayOut.Close()
Return frmSendungsdetails
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function
'avisoAktualisierenAktiveIdBehalten(AvisoID)
' End Function
Shared Function getGrenzstelleZollstelle(hGrenzstelle As String, AVISO As VERAG_PROG_ALLGEMEIN.cAviso) As String
If hGrenzstelle.Replace("???", "") <> "" Then
Dim Standorte As New cStandorteDAL
Dim Standort As New cStandort
Standort = Standorte.LesenStandort(0, hGrenzstelle, "")
If Not IsNothing(Standort) Then
Return Standort.Standort_Text.Trim
End If
Else
If AVISO.Zollstelle IsNot Nothing AndAlso AVISO.Zollstelle.ToString <> "" Then
' hGrenzstelle = VERAGSQL.getValueTxtBySql("SELECT [basncd_name] FROM basncd WHERE basncd_dstnr='" & AVISO.Zollstelle & "' ", "ATLAS")
hGrenzstelle = VERAGSQL.getValueTxtBySql("SELECT [Description] FROM tbl_DY_ZollDE_C0141_Zollstellen WHERE Code='" & AVISO.Zollstelle & "' AND ((StartDate is null OR StartDate< GETDATE()) AND (EndDate is null OR EndDate> GETDATE())) order by left(Code,2), Description ", "FMZOLL")
End If
End If
Return hGrenzstelle.Replace("???", "")
End Function
Shared Function Platzhalter_ersetzen(hText As String, hLKW As String, hGrenzstelle As String, abfertigungsNr As String, art As String, AVISO As VERAG_PROG_ALLGEMEIN.cAviso, KundenNr As Integer, ByRef anhaenge As List(Of String), artKunde As String) As String
If hText = "" Then
Platzhalter_ersetzen = hText
Exit Function
End If
hText = hText.Replace("%LKW%", hLKW)
'-------------- SIGNATUR --------------
Dim signatur = ""
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX"
' signatur = "
' Freundliche Grüße / Saygılarımızla / Best Regards
' IMEX Customs Service GmbH
'Abteilung: EU Zollabfertigung
'Tel.: +43 7711 2777 DW 200
'Mail: eu@verag.ag
' "
Case "UNISPED"
' signatur = "
' Freundliche Grüße / Saygılarımızla / Best Regards
' UNISPED Speditions GmbH
'Abteilung: EU Zollabfertigung
'Tel.: +43 7711 2777 DW 200
'Mail: eu@verag.ag
' "
Case "ATILLA"
' signatur = "
' Freundliche Grüße / Saygılarımızla / Best Regards
' ATILLA Spedition GmbH
'Abteilung: EU Zollabfertigung
'Tel.: +43 7711 2777 DW 200
'Mail: eu@verag.ag
' "
Case "AMBAR"
' signatur = "
' Freundliche Grüße / Saygılarımızla / Best Regards
' AMBAR
'Abteilung: EU Zollabfertigung
'Tel.: +43 7711 2777 DW 200
'Mail: eu@verag.ag
' "
Case Else
signatur = "
Freundliche Grüße / Saygılarımızla / Best Regards
VERAG Spedition AG
Abteilung: EU Zollabfertigung
Tel.: +43 7711 2777 DW 200
Mail: eu@verag.ag
"
End Select
hText = hText.Replace("%Signatur%", signatur)
'--------------------------------------------------------
Select Case art
Case "5"
Dim linkAviso = "https://status.app.verag.ag/aviso-status/" & VERAG_PROG_ALLGEMEIN.cCryptography3.Encrypt(AVISO.AvisoID)
hText = hText.Replace("%Link%", "
| Nr. | Spedition | PosNr | Art | Empfänger | ATC/MRN | Frist (T1/T2) | |
| Nr. | PosNr | Art | Empfänger | ATC/MRN | Frist (T1/T2) | ||
| Nr. | Spedition | PosNr | Art | Empfänger | ATC/MRN | Frist (T1/T2) | " & If(showNCTSAdress, "Gestellungsadresse (T1/T2) | ", "") & "" Dim found = False Select Case s.tblSnd_Abfertigungsart_ID Case 5, 6, 18, 24, 32, 33, 34, 37, 40 'Versand gestellungsadresse = " | " & s.getNCTSAdress(True, True, False) & " | " getDataFronDY_NCTS(s.tblSnd_SendungID, AtcMrn, frist, DsId, s.FilialenNr, s.AbfertigungsNr, s.tblSnd_Abfertigungsart_ID, s.tblSnd_DakosyRef) If KUNDE_ERW.EmailFreigabe_VBDPDF And IsNumeric(DsId) Then 'VBD anhängen Try Dim anhaengeVersand As New List(Of String) Dim PathTmp = (New VERAG_PROG_ALLGEMEIN.cDATENSERVER(DsId)).GET_TOP1_PATH(False) If PathTmp <> "" Then anhaengeVersand.Add(PathTmp) : found = True '--------------------------------------------------------- 'AMBAR: BEI T2 auch EXPORT_DOCS mitschicken! ' ------------------------'''Rechnung, CMR; Ausfuhr '--------------------------------------------------------- If VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("FREIGABEMAIL_T2_ANHAENGER") Then '--> nur bei AMBAR gesetzt Select Case s.tblSnd_Abfertigungsart_ID Case 6, 18, 24, 32, 33, 34, 37, 40 'nur T2!! Dim ANH_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge) VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge.LOAD_LIST_BySendung(ANH_LIST, s.tblSnd_SendungID) 'LÄDT alle Aviso-Anhänge For Each l In ANH_LIST Select Case l.anh_Art.ToString.ToUpper ' Case "RECHNUNG", "CMR", "AUSFUHR", "COO", "PACKLISTE" Case "EXPORT_DOCS" Dim PathTmpANH = (New VERAG_PROG_ALLGEMEIN.cDATENSERVER(l.anh_docId)).GET_TOP1_PATH(False) If PathTmpANH <> "" Then anhaengeVersand.Add(PathTmpANH) : found = True End Select Next End Select End If '--------------------------------------------------------- If anhaengeVersand.Count = 1 Then anhaenge.Add(anhaengeVersand(0)) 'Falls nur 1 Anhang ElseIf anhaengeVersand.Count > 1 Then 'AMBAR: Zusammenfassen des T2 und der T2 Anhänge Dim zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("T2_" & s.FilialenNr & "-" & s.AbfertigungsNr & ".pdf", ".pdf",, False, "Zusammenfassung_T2_AMB") If SDL.FormularManagerNEU.MergePdfFiles(anhaengeVersand, zielPfadZusammenfassung) Then anhaenge.Add(zielPfadZusammenfassung) End If End If Catch ex As Exception : VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) : End Try If Not found Then AvisoStatusFunctions.insertSendungsVermerk(s.tblSnd_SendungID, AVISO.AvisoID, "ERR: VBD nicht gefunden: " & s.FilialenNr & "/" & s.AbfertigungsNr, 47) 'AvisoStatusFunctions.insertVermerkAllg(AVISO.AvisoID, "ERR: VBD nicht gefunden: " & s.FilialenNr & "/" & s.AbfertigungsNr, 46, , "(AUTO)") MsgBox("ACHTUNG: Das Versandbegleitdokument konnte nicht automatisiert ermittelt werden." & vbNewLine & "Bitte dem Kunden das VBD per E-Mail zustellen!" & vbNewLine & vbNewLine & "Sendung: " & s.FilialenNr & "/" & s.AbfertigungsNr) End If End If Case 7 'Ausfuhr getDataFronDY_AES(s.tblSnd_SendungID, AtcMrn, DsId, s.FilialenNr, s.AbfertigungsNr, DsId2) ' MsgBox(DsId) If KUNDE_ERW.EmailFreigabe_ABDPDF And IsNumeric(DsId) Then 'VBD anhängen Try Dim PathTmp = (New VERAG_PROG_ALLGEMEIN.cDATENSERVER(DsId)).GET_TOP1_PATH(False) If PathTmp <> "" Then anhaenge.Add(PathTmp) : found = True Catch ex As Exception : VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) : End Try If Not found Then AvisoStatusFunctions.insertSendungsVermerk(s.tblSnd_SendungID, AVISO.AvisoID, "ERR: ABD nicht gefunden: " & s.FilialenNr & "/" & s.AbfertigungsNr, 47) 'AvisoStatusFunctions.insertVermerkAllg(AVISO.AvisoID, "ERR: VBD nicht gefunden: " & s.FilialenNr & "/" & s.AbfertigungsNr, 46, , "(AUTO)") MsgBox("ACHTUNG: Das Ausfuhrbegleitdokument konnte nicht automatisiert ermittelt werden." & vbNewLine & "Bitte dem Kunden das ABD per E-Mail zustellen!" & vbNewLine & vbNewLine & "Sendung: " & s.FilialenNr & "/" & s.AbfertigungsNr) End If End If Case Else getDataFronDY_EZA(s.tblSnd_SendungID, AtcMrn, DsId, s.FilialenNr, s.AbfertigungsNr, DsId2) If s.tblSnd_Abfertigungsart_ID = 23 Then s.LOAD_HANDLING() For Each hd In s.HANDLING AtcMrn &= hd.sndhdg_nr & ", " Next If AtcMrn.EndsWith(", ") Then AtcMrn = AtcMrn.Substring(0, AtcMrn.Length - 2) 'If If(s.tblSnd_ATCMRN_Fremd, "") <> "" Then AtcMrn = s.tblSnd_ATCMRN_Fremd End If Select Case artKunde Case "FRÄCHTER", "AVISIERER" 'Die bekommen keine Steuerbescheide.. Case Else If KUNDE_ERW.EmailFreigabe_SteuerbescheidPDF And (IsNumeric(DsId) Or IsNumeric(DsId2)) Then 'Steuerbescheid anhängen If checkSteuerbescheidbedingung(KundenNr, DsId) Or checkSteuerbescheidbedingung(KundenNr, DsId2) Then Try If IsNumeric(DsId) Then Dim PathTmp = (New VERAG_PROG_ALLGEMEIN.cDATENSERVER(DsId)).GET_TOP1_PATH(False) If PathTmp <> "" Then anhaenge.Add(PathTmp) : found = True End If If IsNumeric(DsId) Then Dim PathTmp2 = (New VERAG_PROG_ALLGEMEIN.cDATENSERVER(DsId2)).GET_TOP1_PATH(False) If PathTmp2 <> "" Then anhaenge.Add(PathTmp2) : found = True End If Catch ex As Exception : VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) : End Try If Not found Then AvisoStatusFunctions.insertSendungsVermerk(s.tblSnd_SendungID, AVISO.AvisoID, "ERR: Steuerbescheid nicht gefunden: " & s.FilialenNr & "/" & s.AbfertigungsNr, 47) ' AvisoStatusFunctions.insertVermerkAllg(AVISO.AvisoID, "ERR: Steuerbescheid nicht gefunden: " & s.FilialenNr & "/" & s.AbfertigungsNr, 46, , "(AUTO)") MsgBox("ACHTUNG: Der Steuerbescheid konnte nicht automatisiert ermittelt werden." & vbNewLine & "Bitte dem Kunden den Steuerbescheid per E-Mail zustellen!" & vbNewLine & vbNewLine & "Sendung: " & s.FilialenNr & "/" & s.AbfertigungsNr) End If End If End If End Select End Select If IsDate(frist) Then frist = CDate(frist).ToShortDateString Dim txtCluster = "" ' If VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER Then txtCluster = "" & VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(s.FilialenNr, False) & " | " txtCluster = "" & VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(s.FilialenNr, False) & " | " SendungslistTXT &= "
| " & cnt & " | " & txtCluster & "" & If(s.FilialenNr > 0, s.FilialenNr, "") & "/" & If(s.AbfertigungsNr > 0, s.AbfertigungsNr, "") & " | " & getAbfertBez(s) & " | " & If(s.tblSnd_Empfaenger, "") & " | " & AtcMrn & " | " & frist & " | " & If(showNCTSAdress, gestellungsadresse, "") & "