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) 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%", "

Tracking shipment status
") Case Else 'hier werden alle möglichen Platzhalter ersetzt hText = hText.Replace("%Standort%", getGrenzstelleZollstelle(hGrenzstelle, AVISO)) hText = hText.Replace("%Uhrzeit%", Format(Now, "dd.MM.yyyy HH:mm")) hText = hText.Replace("&", "und") Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case "IMEX" hText = hText.Replace("%Firma_simple%", "IMEX") hText = hText.Replace("%Firma%", "IMEX Customs Service GmbH") hText = hText.Replace("%Platzhalter2%", "

Freundliche Grüße / Saygilarimizla / Best Regards
IMEX Customs Service GmbH
Abteilung: Zollabfertigung
Tel.: +43 7711 31630
Fax: +43 7711 31630 - 1
Mail: info@imex-group.at
") Case "UNISPED" hText = hText.Replace("%Firma_simple%", "UNISPED") hText = hText.Replace("%Firma%", "UNISPED Speditions GmbH") hText = hText.Replace("%Platzhalter2%", "

Freundliche Grüße / Saygilarimizla / Best Regards
UNISPED Speditions GmbH
Abteilung: Zollabfertigung
Tel.: +43 7711 2677-0
Mail: office@unisped.at
") Case "ATILLA" hText = hText.Replace("%Firma_simple%", "ATILLA") hText = hText.Replace("%Firma%", "ATILLA Spedition GmbH") Case "AMBAR" hText = hText.Replace("%Firma_simple%", "AMBAR") hText = hText.Replace("%FirmaTR%", "Ambar Logistic Bad Reichenhall") hText = hText.Replace("%Firma%", "Ambar Logistic in Bad Reichenhall") Case Else hText = hText.Replace("%Platzhalter2%", "") hText = hText.Replace("%Firma_simple%", "VERAG") hText = hText.Replace("%Firma%", "VERAG Spedition AG") End Select hText = hText.Replace("%AbfertigungsNr%", abfertigungsNr) Dim KUNDE_ERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(KundenNr) If (art = 2 Or art = 4) And (KUNDE_ERW.EmailFreigabeSendungsListe Or KUNDE_ERW.EmailFreigabe_VBDPDF Or KUNDE_ERW.EmailFreigabe_SteuerbescheidPDF) Then 'Freigabe Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen) VERAG_PROG_ALLGEMEIN.cSendungen.LOAD_LIST(SENDUNG_LIST, 0, AVISO.AvisoID) 'LÄDT alle SENDUNGSDATEN If SENDUNG_LIST.Count > 0 Then Dim SendungslistTXT = "" SendungslistTXT &= "Sendungsliste:
" SendungslistTXT &= "" 'If VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER Then ' SendungslistTXT &= "" 'Else ' SendungslistTXT &= "" 'End If Dim showNCTSAdress = False If VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("FREIGABEMAIL_T1Adresse") Then showNCTSAdress = True SendungslistTXT &= "" & If(showNCTSAdress, "", "") & "" Dim cnt = 1 For Each s In SENDUNG_LIST If s.tblSnd_Abfertigungsart_ID <> 9 And isKdInSendData(KUNDE_ERW, AVISO, s) Then Dim AtcMrn = "" Dim DsId = "" Dim DsId2 = "" Dim frist = "" Dim gestellungsadresse = "" 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 = "" txtCluster = "" SendungslistTXT &= "" & txtCluster & "" & If(showNCTSAdress, gestellungsadresse, "") & " " cnt += 1 End If Next SendungslistTXT &= "
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) 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) & "" & VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(s.FilialenNr, False) & "" & VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(s.FilialenNr, False) & "
" & cnt & "" & If(s.FilialenNr > 0, s.FilialenNr, "") & "/" & If(s.AbfertigungsNr > 0, s.AbfertigungsNr, "") & "" & getAbfertBez(s) & "" & If(s.tblSnd_Empfaenger, "") & "" & AtcMrn & "" & frist & "
" SendungslistTXT &= "

" If cnt = 1 Then ' wurde nicht erhöht -> keine Einträge SendungslistTXT = "" End If If KUNDE_ERW.EmailFreigabeSendungsListe Then hText = hText.Replace("%Platzhalter%", SendungslistTXT) End If End If End Select hText = hText.Replace("%Platzhalter%", "") Platzhalter_ersetzen = hText End Function Private Shared VERAGSQL As New VERAG_PROG_ALLGEMEIN.SQL Shared Function getEZOLL_Steuerbescheid(KUNDE_ERW As VERAG_PROG_ALLGEMEIN.cKundenErweitert, AVISO As VERAG_PROG_ALLGEMEIN.cAviso, SENDUNG As VERAG_PROG_ALLGEMEIN.cSendungen) As List(Of String) Dim LIST As New List(Of String) Dim dt As DataTable = VERAGSQL.loadDgvBySql("", "EZOLL") End Function 'Prüft, ob die KundenNr in den Daten vorkommt --> zB Empfänger, soll nur die Empfänger-Sendung gefunden werden, Frächter scheint immer auf. Shared Function isKdInSendData(KUNDE_ERW As VERAG_PROG_ALLGEMEIN.cKundenErweitert, AVISO As VERAG_PROG_ALLGEMEIN.cAviso, SENDUNG As VERAG_PROG_ALLGEMEIN.cSendungen) If KUNDE_ERW.kde_KundenNr <= 0 Then Return False Select Case KUNDE_ERW.kde_KundenNr.ToString Case SENDUNG.tblSnd_AbsenderKdNr.ToString : Return True Case SENDUNG.tblSnd_EmpfaengerKdNr.ToString : Return True Case SENDUNG.tblSnd_AuftraggeberKdNr.ToString : Return True Case AVISO.Auftraggeber_KdNr.ToString : Return True Case AVISO.Frächter_KdNr.ToString : Return True End Select Return False End Function Shared Function checkSteuerbescheidbedingung(KdNr As Integer, DSId As String) As Boolean Try If DSId = "" Then Return False If Not IsNumeric(DSId) Then Return False Dim KD_ERW = New VERAG_PROG_ALLGEMEIN.cKundenErweitert(KdNr) 'Alle KD-Aufschubdaten laden Dim KD_AUFSCHUB = VERAG_PROG_ALLGEMEIN.cKundenAufschubkonten.LOAD_ListAufschubKTOByKdNr(KdNr) If KD_ERW IsNot Nothing AndAlso KD_ERW.EmailFreigabe_SteuerbescheidPDF Then Select Case KD_ERW.EmailFreigabe_SteuerbescheidPDF_Bedingung Case 0 : Return True Case 1 'EZA Laden Dim eza_id = VERAGSQL.getValueTxtBySql("SELECT TOP 1 isnull(eza_id,'') FROM [tblDakosy_Zollanmeldungen] INNER JOIN tblDakosy_EZA ON eza_dyaAnmID=dy_Id where [dy_Steuerbescheid_dsId]='" & DSId & "'", "FMZOLL") If IsNumeric(eza_id) Then 'Aufschub laden und vergleichen Dim EZA As New DAKOSY_Worker.cDakosyEZA(eza_id) If EZA IsNot Nothing AndAlso EZA.eza_AUFSCHUB IsNot Nothing Then For Each eza_a In EZA.eza_AUFSCHUB For Each a In KD_AUFSCHUB If eza_a.ezaAfb_KontoNr = a.kdAkto_kontonummer Then 'Wenn Kontonummer gefunden --> reuten true Return True End If Next Next End If End If End Select End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return False End Function Shared Function getAbfertBez(s As VERAG_PROG_ALLGEMEIN.cSendungen) As String If s.tblSnd_Fremdspedition Then Return If(s.tblSnd_FremdspeditionText <> "", s.tblSnd_FremdspeditionText, "FREMD") If s.tblSnd_Abfertigungsart_ID < 0 Then Return "-" Return VERAGSQL.getValueTxtBySql("select isnull(Abfertigungsbezeichnung,'-') from Abfertigungsarten where Abfertigungsart='" & s.tblSnd_Abfertigungsart_ID & "'", "FMZOLL") End Function Shared Function getDataFronDY_NCTS(SendungsId, ByRef AtcMrn, ByRef frist, ByRef dsId, FilialenNr, AbfertigungsNr, tblSnd_Abfertigungsart_ID, tblSnd_DakosyRef) As Boolean If SendungsId Is Nothing Then Return False If Not IsNumeric(AbfertigungsNr) Then Return False If AbfertigungsNr <= 0 Then Return False If FilialenNr <> 4805 And FilialenNr <> 4811 Then ' Kein Ü-T Dim dt = VERAGSQL.loadDgvBySql("SELECT isnull(dy_vbd_dsid,'') as DsId ,isnull(isnull(ncts_MRN,ncts_ANR),'') as MRN, isnull(ncts_Wiedergestellungsdatum ,'') as WG FROM tblDakosy_Zollanmeldungen inner join tblDakosy_nctsout on dy_id=ncts_dyaAnmID where dy_SendungsId='" & SendungsId & "' and dy_status <= 70 order by dy_status desc, dy_Erstellung desc", "FMZOLL") If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then AtcMrn = dt.Rows(0)("MRN") dsId = dt.Rows(0)("DsId") frist = dt.Rows(0)("WG") Return True Else Try 'AT-Zollsystem Dim sql As New VERAG_PROG_ALLGEMEIN.SQL AtcMrn = sql.getValueTxtBySql("SELECT CRN FROM zsAnmRefs WHERE (VorgangID = 'AV') AND (LRN LIKE '" & FilialenNr & "/" & AbfertigungsNr & "%' OR LRN LIKE '" & FilialenNr & "-" & AbfertigungsNr & "%') ORDER BY GeaendertAm DESC", "EZOLL") frist = sql.getValueTxtBySql("SELECT TOP 1 Gestellungsfrist FROM vwVERAG_Zolaris_EZoll_NCTS_Datenübernahme WHERE (LRN LIKE '" & FilialenNr & "/" & AbfertigungsNr & "%' OR LRN LIKE '" & FilialenNr & "-" & AbfertigungsNr & "%') ", "EZOLL") dsId = sql.getValueTxtBySql("SELECT TOP 1 [DokumentId_VBD] FROM [Speditionsbuch] where [DokumentId_VBD] is not null AND FilialenNr='" & FilialenNr & "' AND AbfertigungsNr='" & AbfertigungsNr & "' ", "FMZOLL") Catch : End Try End If End If 'Wenn nichts gefunden: Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung ZOLLANMELDUNG.getDataByBezugsnummer(FilialenNr & "/" & AbfertigungsNr, tblSnd_Abfertigungsart_ID.ToString, tblSnd_DakosyRef, False, "DE") ' Die weiteren Daten werden hier geladen If ZOLLANMELDUNG IsNot Nothing Then AtcMrn = ZOLLANMELDUNG.ATCMRN 'dsId = dt.Rows(0)("DsId") 'frist = ZOLLANMELDUNG.dat End If Return False End Function Shared Function getDataFronDY_EZA(SendungsId, ByRef AtcMrn, ByRef dsId, FilialenNr, AbfertigungsNr, ByRef dsId2) As Boolean If SendungsId Is Nothing Then Return False If Not IsNumeric(AbfertigungsNr) Then Return False If AbfertigungsNr <= 0 Then Return False Dim dt = VERAGSQL.loadDgvBySql("SELECT isnull(dy_steuerbescheid_dsid,'') as DsId, isnull(eza_ANR,'') as ATC FROM tblDakosy_Zollanmeldungen inner join tblDakosy_eza on dy_id=eza_dyaAnmID where dy_SendungsId='" & SendungsId & "' and dy_status <= 70 order by dy_status desc, dy_Erstellung desc", "FMZOLL") If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then AtcMrn = dt.Rows(0)("ATC") dsId = dt.Rows(0)("DsId") Return True Else Try 'AT-Zollsystem Dim sql As New VERAG_PROG_ALLGEMEIN.SQL AtcMrn = sql.getValueTxtBySql("SELECT CRN FROM zsAnmRefs WHERE (VorgangID = 'EF') AND (LRN LIKE '" & FilialenNr & "/" & AbfertigungsNr & "%' OR LRN LIKE '" & FilialenNr & "-" & AbfertigungsNr & "%') ORDER BY GeaendertAm DESC", "EZOLL") dsId = sql.getValueTxtBySql("SELECT TOP 1 DokumentId_Steuerbeleg FROM [Speditionsbuch] where DokumentId_Steuerbeleg is not null AND FilialenNr='" & FilialenNr & "' AND AbfertigungsNr='" & AbfertigungsNr & "' ", "FMZOLL") dsId2 = sql.getValueTxtBySql("SELECT TOP 1 DokumentId_Mitteilung FROM [Speditionsbuch] where DokumentId_Mitteilung is not null AND FilialenNr='" & FilialenNr & "' AND AbfertigungsNr='" & AbfertigungsNr & "' ", "FMZOLL") Catch : End Try End If Return False End Function Shared Function getDataFronDY_AES(SendungsId, ByRef AtcMrn, ByRef dsId, FilialenNr, AbfertigungsNr, ByRef dsId2) As Boolean If SendungsId Is Nothing Then Return False If Not IsNumeric(AbfertigungsNr) Then Return False If AbfertigungsNr <= 0 Then Return False Dim dt = VERAGSQL.loadDgvBySql("SELECT isnull(dy_ABD_dsId,'') as DsId, isnull(aes_MRN,'') as ATC FROM tblDakosy_Zollanmeldungen inner join tblDakosy_AES on dy_id=aes_dyaAnmID where dy_SendungsId='" & SendungsId & "' and dy_status <= 70 order by dy_status desc, dy_Erstellung desc", "FMZOLL") If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then AtcMrn = dt.Rows(0)("ATC") dsId = dt.Rows(0)("DsId") Return True Else Try 'AT-Zollsystem 'Dim sql As New VERAG_PROG_ALLGEMEIN.SQL 'AtcMrn = sql.getValueTxtBySql("SELECT CRN FROM zsAnmRefs WHERE (VorgangID = 'EF') AND (LRN LIKE '" & FilialenNr & "/" & AbfertigungsNr & "%' OR LRN LIKE '" & FilialenNr & "-" & AbfertigungsNr & "%') ORDER BY GeaendertAm DESC", "EZOLL") 'dsId = sql.getValueTxtBySql("SELECT TOP 1 DokumentId_Steuerbeleg FROM [Speditionsbuch] where DokumentId_Steuerbeleg is not null AND FilialenNr='" & FilialenNr & "' AND AbfertigungsNr='" & AbfertigungsNr & "' ", "FMZOLL") 'dsId2 = sql.getValueTxtBySql("SELECT TOP 1 DokumentId_Mitteilung FROM [Speditionsbuch] where DokumentId_Mitteilung is not null AND FilialenNr='" & FilialenNr & "' AND AbfertigungsNr='" & AbfertigungsNr & "' ", "FMZOLL") '....... FEHLT NOCH !!!! Catch : End Try End If Return False End Function Function SpeditionsbuchEintrag(AvisoID As Integer, SendungID As Integer) As posNr If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then MsgBox("Keine Berechtigung!") Return Nothing End If Try Dim posNr As New posNr If SendungID < 0 Then MsgBox("Fehler: SendungID kleiner 0.") : Return Nothing If AvisoID < 0 Then MsgBox("Fehler: AvisoID kleiner 0.") : Return Nothing Dim frmNacherfassung As New SDL.frmNacherfassungNEU ' MsgBox("1") Dim sendung As New VERAG_PROG_ALLGEMEIN.cSendungen(SendungID) 'Dim dr As DataRow = AvisoDAL.loadDataTableBySQL(" SELECT FilialenNr,AbfertigungsNr, UnterNr FROM tblSendungen WHERE tblSnd_SendungID=" & SendungID).Rows(0) Dim dr As DataRow = AvisoDAL.loadDataTableBySQL(" SELECT FilialenNr,AbfertigungsNr, UnterNr FROM tblSendungen WHERE FilialenNr=" & sendung.FilialenNr & " AND AbfertigungsNr=" & sendung.AbfertigungsNr & " order by UnterNr ").Rows(0) posNr.Filiale = VarToInt2(dr.Item("FilialenNr")) posNr.Abfertigungsnummer = VarToInt2(dr.Item("AbfertigungsNr")) posNr.UnterNr = VarToInt2(dr.Item("UnterNr")) If posNr.UnterNr < 0 Then posNr.UnterNr = 0 If posNr.Filiale <= 0 And VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.StandartFiliale > 0 Then 'Aus den Mitarbeiter-Stammdaten posNr.Filiale = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.StandartFiliale End If If posNr.Abfertigungsnummer <= 0 Or posNr.Filiale <= 0 Or posNr.UnterNr < 0 Then Dim frmPosNr As New SDL.frmPosNr(posNr.Filiale, posNr.Abfertigungsnummer, posNr.UnterNr) Dim frmGrayOut = VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO.grayoutForm() If Not frmPosNr.ShowDialog(frmGrayOut) = DialogResult.OK Then frmGrayOut.Close() : Return Nothing frmGrayOut.Close() posNr.Abfertigungsnummer = frmPosNr.txtAbfertigungsnummer.Text posNr.Filiale = frmPosNr.cboFiliale._value posNr.UnterNr = frmPosNr.txtUnterNr.Text ' Dim cADMIN As New cADMIN ' cADMIN.doSQL(" UPDATE tblSendungen SET FilialenNr='" & posNr.Filiale & "',AbfertigungsNr='" & srchAbfertigungsnummer & "', UnterNr='" & srchUnterNr & "' FROM tblSendungen WHERE tblSnd_SendungID=" & SendungID) End If frmNacherfassung.avisoLinkId = AvisoID frmNacherfassung.SendungID = SendungID Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL frmNacherfassung.srchAbfertigungsnummer = posNr.Abfertigungsnummer frmNacherfassung.srchFiliale = posNr.Filiale frmNacherfassung.srchUnterNr = posNr.UnterNr ' frmNacherfassung.FMZollPersID = VERAG_PROG_ALLGEMEIN.cglobal.AktiverMitarbeiter.mit_FMZollPersID ' Dim qsMa_TMP = SQL.getValueTxtBySql("SELECT TOP 1 isnull([MitarbeiterId],-1) FROM [Aenderungen] WHERE Aenderung_Art = 'auf VORBEREITET gesetzt' AND [AvisoID]='" & AvisoID & "' ORDER BY Datum DESC", "AVISO") ' Dim qsMa = SQL.getValueTxtBySql("SELECT TOP 1 isnull([mit_FMZollPersID],-1) FROM [tblMitarbeiter] WHERE [mit_id]='" & qsMa_TMP & "' ", "ADMIN") frmNacherfassung.newEntry = (0 = CInt(SQL.getValueTxtBySql("SELECT Count(*) FROM Speditionsbuch WHERE FilialenNr='" & posNr.Filiale & "' AND AbfertigungsNr='" & posNr.Abfertigungsnummer & "' AND UnterNr='" & posNr.UnterNr & "' ", "FMZOLL"))) 'frmNacherfassung.FMZollPersIDQS = IIf(IsNumeric(qsMa_TMP), qsMa_TMP, -1) frmNacherfassung.ShowDialog() posNr.Abfertigungsnummer = frmNacherfassung.txtAbfertigungsnummer.Text posNr.Filiale = frmNacherfassung.cboFiliale._value posNr.UnterNr = frmNacherfassung.txtUnterNr.Text Return posNr Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) Return Nothing End Try End Function Public Sub showKd(kdnr, Optional TopMost = False) 'For Each frm As Form In Application.OpenForms.Item("frmKundenUebersichtZOLL") Is Nothing If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("WARENORT", "AVISO") Then Exit Sub For Each openForm In Application.OpenForms() If TypeOf (openForm) Is SDL.frmKundenUebersichtZOLL Then CType(openForm, SDL.frmKundenUebersichtZOLL).BringToFront() If TopMost Then CType(openForm, SDL.frmKundenUebersichtZOLL).TopMost = True CType(openForm, SDL.frmKundenUebersichtZOLL).KdSearchBox1.KdNr = kdnr Exit Sub End If Next 'If False Then ' If Not Application.OpenForms.Item("frmKundenUebersichtZOLL") Is Nothing Then ' Application.OpenForms.Item("frmKundenUebersichtZOLL").BringToFront() ' Exit Sub ' End If 'End If '' Next Dim zoll As New SDL.frmKundenUebersichtZOLL(kdnr) If zoll IsNot Nothing Then zoll.Show() : zoll.BringToFront() End Sub Shared Sub insertVermerkAllg(AvisoID As Integer, Text As String, VermerkCodeId As Integer, Optional Beschreibung As String = "", Optional BeschreibungMA As String = "") 'Daten zuweisen und speichern Dim myVermerk As New cVermerk myVermerk.VermerkID = 0 myVermerk.AvisoID = AvisoID myVermerk.Datum = Now myVermerk.Mitarbeiter = cGlobal.AktiverMitarbeiter.Mitarbeiter & " " & BeschreibungMA myVermerk.MitarbeiterId = cGlobal.AktiverMitarbeiter.MitarbeiterID myVermerk.Hinweis_Vermerk = Text myVermerk.VermerkCodeId = VermerkCodeId Dim VermerkeDAL As New cVermerkeDAL VermerkeDAL.SpeichernVermerk(myVermerk) If frmHauptfenster IsNot Nothing Then frmHauptfenster.Details_anzeigen(AvisoID) End Sub Shared Sub insertSendungsVermerk(SendungID As Integer, AvisoID As Integer, Text As String, VermerkCodeId As Integer, Optional Beschreibung As String = "", Optional VorauskasseId As Object = Nothing, Optional addAuto As Boolean = False) 'Daten zuweisen und speichern Dim myVermerk As New cVermerk myVermerk.VermerkID = 0 myVermerk.AvisoID = AvisoID myVermerk.Datum = Now myVermerk.Mitarbeiter = cGlobal.AktiverMitarbeiter.Mitarbeiter & If(addAuto, " (AUTO)", "") myVermerk.MitarbeiterId = cGlobal.AktiverMitarbeiter.MitarbeiterID myVermerk.Hinweis_Vermerk = Text myVermerk.VermerkCodeId = VermerkCodeId myVermerk.SendungID = SendungID If VorauskasseId IsNot Nothing AndAlso VorauskasseId IsNot DBNull.Value Then myVermerk.VorauskasseId = VorauskasseId myVermerk.VermerkArt = "S" Dim VermerkeDAL As New cVermerkeDAL VermerkeDAL.SpeichernVermerk(myVermerk) If myVermerk.VermerkCodeId = 18 Then VermerkeDAL.UpdateLKW(myVermerk.AvisoID, False) frmHauptfenster.avisoAktualisierenAktiveIdBehalten(myVermerk.AvisoID) End If End Sub End Class Public Class posNr Property Abfertigungsnummer As Integer = -1 Property Filiale As Integer = -1 Property UnterNr As Integer = -1 End Class