Imports System.Drawing.Printing Imports Microsoft.Office.Interop Public Class frmLaufzettel Dim AvisoID = -1 Dim DIGITAL As Boolean = False Dim AVISO As VERAG_PROG_ALLGEMEIN.cAviso = Nothing Dim SENDUNG_LIST As List(Of VERAG_PROG_ALLGEMEIN.cSendungen) = Nothing Dim DIGITAL_T1 As Boolean = False Dim DIGITAL_FISKAL_DE As Boolean = False Dim DIGITAL_Rg As Boolean = False Dim jeVP As Boolean = False Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub Sub New(AvisoID As Integer, SENDUNG_LIST As List(Of VERAG_PROG_ALLGEMEIN.cSendungen), DIGITAL As Boolean, DIGITAL_T1 As Boolean, DIGITAL_rg As Boolean, DIGITAL_FISKAL_DE As Boolean, jeVP As Boolean) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. Me.AvisoID = AvisoID AVISO = VERAG_PROG_ALLGEMEIN.cAviso.getAvisoById(AvisoID) Me.SENDUNG_LIST = SENDUNG_LIST Me.DIGITAL = DIGITAL Me.DIGITAL_T1 = DIGITAL_T1 Me.DIGITAL_FISKAL_DE = DIGITAL_FISKAL_DE Me.DIGITAL_Rg = DIGITAL_rg Me.jeVP = jeVP End Sub Sub New(AVISO As VERAG_PROG_ALLGEMEIN.cAviso, SENDUNG_LIST As List(Of VERAG_PROG_ALLGEMEIN.cSendungen), DIGITAL As Boolean, DIGITAL_T1 As Boolean, DIGITAL_rg As Boolean, DIGITAL_FISKAL_DE As Boolean, jeVP As Boolean) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. Me.AvisoID = AVISO.AvisoID Me.AVISO = AVISO Me.SENDUNG_LIST = SENDUNG_LIST Me.DIGITAL = DIGITAL Me.DIGITAL_T1 = DIGITAL_T1 Me.DIGITAL_Rg = DIGITAL_rg Me.DIGITAL_FISKAL_DE = DIGITAL_FISKAL_DE Me.jeVP = jeVP End Sub 'Public Shared Sub initDrucker(cboPrinter As ComboBox, Optional srch As String = "") ' ' alle installierten Drucker ermitteln und ' ' in in ein ArrayList-Objekt speichern ' Dim sPrinters As New ArrayList ' For Each sPrinter As String In PrinterSettings.InstalledPrinters ' sPrinters.Add(sPrinter) ' Next ' ' Array sortieren ' sPrinters.Sort() ' ' jetzt alle Drucker in sortierter Reihenfolge in einer ' ' ComboBox zur Auswahl anbieten ' Dim oPS As New System.Drawing.Printing.PrinterSettings ' For i As Integer = 0 To sPrinters.Count - 1 ' cboPrinter.Items.Add(sPrinters(i)) ' Next ' If sPrinters.Count > 0 Then ' cboPrinter.SelectedIndex = 0 ' If srch <> "" Then ' For Each i In cboPrinter.Items ' If i.ToString.ToUpper.Contains(srch.ToUpper) Then ' cboPrinter.SelectedItem = i ' Exit Sub ' End If ' Next ' Else ' For Each i In cboPrinter.Items ' If i.ToString = oPS.PrinterName Then ' cboPrinter.SelectedItem = i ' Exit Sub ' End If ' Next ' End If ' End If 'End Sub Sub initLZ() cbxVPSplit.Checked = jeVP dgvDigitalMailanfügen.Rows.Clear() dgvLaufzettelDruck.Rows.Clear() Dim ANH_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge) VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge.LOAD_LIST_ByAviso(ANH_LIST, AvisoID) 'LÄDT alle Aviso-Anhänge For Each ll In ANH_LIST If ll.anh_LaufzettelDruck Then dgvDigitalMailanfügen.Rows.Add(ll.anh_id, ll.anh_Name, ll.anh_docId, ll.anh_Typ) dgvLaufzettelDruck.Rows.Add(ll.anh_id, ll.anh_Name, ll.anh_docId, ll.anh_Typ) 'Select Case ll.anh_Typ ' Case "PDF" : VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF({VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ll.anh_docId)}) ' ' Case "BILD" : VERAG_PROG_ALLGEMEIN.cFormularManager.Print_PICTURE({VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ll.anh_docId)}) ' Case Else : Process.Start(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ll.anh_docId)) 'End Select End If Next 'If loadAttachRg Then If DIGITAL Then If DIGITAL_T1 Then 'Falls CMR, Vorpapier in den Unterlagen vorhanden, werden diese beigefügt For Each l In ANH_LIST Select Case l.anh_Art.ToString.ToUpper Case "VORPAPIER" ', "CMR" dgvDigitalMailanfügen.Rows.Add(l.anh_id, l.anh_Name, l.anh_docId) End Select Next End If If DIGITAL_FISKAL_DE Then For Each s In SENDUNG_LIST Select Case s.tblSnd_Abfertigungsart_ID 'Falls RECHNUNGen in den Unterlagen vorhanden, werden diese beigefügt Case "28" ' DE-FISK Dim ANH_LIST_SND As New List(Of VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge) VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge.LOAD_LIST_BySendung(ANH_LIST_SND, s.tblSnd_SendungID) 'LÄDT alle Aviso-Anhänge For Each l In ANH_LIST_SND Select Case l.anh_Art.ToString.ToUpper Case "RECHNUNG", "HANDELSRECHNUNG", "CMR" dgvDigitalMailanfügen.Rows.Add(l.anh_id, l.anh_Name, l.anh_docId) End Select Next End Select Next ElseIf DIGITAL_Rg Then For Each s In SENDUNG_LIST Select Case s.tblSnd_Abfertigungsart_ID 'Falls RECHNUNGen in den Unterlagen vorhanden, werden diese beigefügt Case "5", "45", "28", "26", "38" 'T1, Ü-T1, DE-FISK Dim ANH_LIST_SND As New List(Of VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge) VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge.LOAD_LIST_BySendung(ANH_LIST_SND, s.tblSnd_SendungID) 'LÄDT alle Aviso-Anhänge For Each l In ANH_LIST_SND Select Case l.anh_Art.ToString.ToUpper Case "RECHNUNG", "HANDELSRECHNUNG" dgvDigitalMailanfügen.Rows.Add(l.anh_id, l.anh_Name, l.anh_docId) 'Mail.Attachments.Add(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(l.anh_docId), Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue) End Select Next End Select Next End If 'Markierte Anhänge For Each l In ANH_LIST 'Markierte: If l.anh_GestellungslisteAnfuegen Then dgvDigitalMailanfügen.Rows.Add(l.anh_id, l.anh_Name, l.anh_docId) ' Mail.Attachments.Add(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(l.anh_docId), Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue) End If Next End If End Sub Private Sub frmLaufzettel_Load(sender As Object, e As EventArgs) Handles Me.Load SDL.cProgramFunctions.initDrucker(cboPrinter) If DIGITAL Then cbxDigitalLZ.Enabled = True dgvDigitalMailanfügen.Enabled = True btnDIGITAL.Enabled = True cbxAktenzettelDruck.Enabled = False cbxDigitalLZ.Checked = True CheckBox2.Checked = False cbxDokumenteDrucken.Checked = False pnlZumZoll.Visible = False Else btnLaufzettelDrucken.Enabled = True cbxAktenzettelDruck.Enabled = True End If Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG Case "WAI", "DTB" CheckBox2.Checked = True CheckBox3.Visible = False CheckBox4.Checked = True End Select If AVISO.Grenzstelle = "SUB" Then cbxSAAbfertigung.Visible = True If Now.DayOfWeek = DayOfWeek.Saturday Then cbxSAAbfertigung.Checked = True End If End If 'pnlZumZoll If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA <> "FRONTOFFICE" And VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG <> "WAI" And VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG <> "DTB" Then CheckBox2.Checked = False ' Wenn nicht FO, dann normal nicht gewählt... If VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG <> "SUB" And VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG <> "WAI" And VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG <> "DTB" Then '... und nur in SUBEN ersichtlich pnlZumZoll.Visible = False End If End If If SENDUNG_LIST Is Nothing Then SENDUNG_LIST = New List(Of VERAG_PROG_ALLGEMEIN.cSendungen) VERAG_PROG_ALLGEMEIN.cSendungen.LOAD_LIST(SENDUNG_LIST, -1, AvisoID) 'LÄDT alle SENDUNGSDATEN End If initLZ() resetDGV(dgvDigitalMailanfügen) resetDGV(dgvLaufzettelDruck) End Sub Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click Me.Close() End Sub Private Sub btnLaufzettelDrucken_Click(sender As Object, e As EventArgs) Handles btnLaufzettelDrucken.Click If CheckBox2.Checked Then If VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG <> "WAI" Then If Not CheckBox3.Checked And Not CheckBox4.Checked Then MsgBox("Bitte 'AT ZOLL' oder 'DE ZOLL' auswählen!") Exit Sub End If End If End If doLZ(False) If cbxAktenzettelDruck.Checked Then Dim Printername = "" Dim oPS As New System.Drawing.Printing.PrinterSettings Try Printername = oPS.PrinterName Catch ex As System.Exception End Try usrcntlAktDetails.tread_printAlleAktendeckel(AvisoID, Printername) End If Me.Close() End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click AVISO.LOAD_Vorpapiere() Dim VP_Enum = VERAG_PROG_ALLGEMEIN.cSendungen.VP_Enum(SENDUNG_LIST) 'Filtert nach eindeutigen Vorpapieren Dim paths As New List(Of String) If Not genLZ(paths, False, VP_Enum) Then Exit Sub End If If paths.Count = 1 Then '1 Gestellungsliste Process.Start(paths(0)) ElseIf paths.Count > 0 Then 'Mehrere Gestellungslisten zusammenführen Dim outputFile As String = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Gestellungsliste_Merge.pdf", ".pdf", True,, "Merge") ' "result.pdf" VERAG_PROG_ALLGEMEIN.cFormularManager.mergePDFs(paths, outputFile) Process.Start(outputFile) End If End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click printLZAnlagen() End Sub Sub printLZAnlagen() ' If cbxDigitalLZ.Checked Then resetDGV(dgvLaufzettelDruck) For Each r As DataGridViewRow In dgvLaufzettelDruck.Rows Try Dim typ = r.Cells("printTyp").Value Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(r.Cells("printDocId").Value) Select Case typ Case "PDF" : VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF({path}, cboPrinter.SelectedItem.ToString) ' Case "BILD" : VERAG_PROG_ALLGEMEIN.cFormularManager.Print_PICTURE({VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ll.anh_docId)}) Case Else : Process.Start(path) End Select r.DefaultCellStyle.BackColor = Color.LimeGreen dgvLaufzettelDruck.Refresh() Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name,, ) End Try Next 'End If End Sub Sub printzZAnlagen() ' Fahrer zum Zoll! '------------------------------------------------ If VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = "WAI" Then Try Dim path = SDL.FormularManagerNEU.zumZOLL_AVISO_WAI(AVISO) If path <> "" Then VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF({path}, cboPrinter.SelectedItem.ToString) '(New System.Drawing.Printing.PrinterSettings).PrinterName) ' If path <> "" Then VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaGS(path, cboPrinter.SelectedItem.ToString) '(New System.Drawing.Printing.PrinterSettings).PrinterName) Catch ex As Exception : MsgBox(ex.Message & ex.StackTrace) : End Try ElseIf VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = "DTB" Then Try Dim path = SDL.FormularManagerNEU.zumZOLL_AVISO_DTB(AVISO) If path <> "" Then VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF({path}, cboPrinter.SelectedItem.ToString) '(New System.Drawing.Printing.PrinterSettings).PrinterName) ' If path <> "" Then VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaGS(path, cboPrinter.SelectedItem.ToString) '(New System.Drawing.Printing.PrinterSettings).PrinterName) Catch ex As Exception : MsgBox(ex.Message & ex.StackTrace) : End Try Else If Not CheckBox3.Checked And Not CheckBox4.Checked Then MsgBox("Bitte 'AT ZOLL' oder 'DE ZOLL' auswählen!") Exit Sub End If Try 'If CheckBox3.Checked Then path = SDL.FormularManagerNEU.zumZOLL_AVISO(AVISO, If(CheckBox3.Checked, "AT", If(CheckBox4.Checked, "DE", ""))) Dim path = "" If CheckBox3.Checked Then path = SDL.FormularManagerNEU.zumZOLL_AVISO_AT(AVISO) If CheckBox4.Checked Then path = SDL.FormularManagerNEU.zumZOLL_AVISO_DE(AVISO) If path <> "" Then VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF({path}, cboPrinter.SelectedItem.ToString) '(New System.Drawing.Printing.PrinterSettings).PrinterName) 'If path <> "" Then VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaGS(path, cboPrinter.SelectedItem.ToString) '(New System.Drawing.Printing.PrinterSettings).PrinterName) Catch ex As Exception : MsgBox(ex.Message & ex.StackTrace) : End Try End If '------------------------------------------------ End Sub Sub resetDGV(dgv As DataGridView) dgv.ClearSelection() For Each r As DataGridViewRow In dgv.Rows r.DefaultCellStyle.BackColor = Color.White Next End Sub Sub doLZ(digitalDruck) Me.Cursor = Cursors.WaitCursor resetDGV(dgvDigitalMailanfügen) resetDGV(dgvLaufzettelDruck) Me.Refresh() If Not digitalDruck Then If VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("PRINT_zumZOLL") Then If CheckBox2.Checked Then printzZAnlagen() End If End If End If ' Dim loadAttachRg = True ' (sender Is Button15) 'Dim ANH_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge) 'VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge.LOAD_LIST_ByAviso(ANH_LIST, AvisoID) 'LÄDT alle Aviso-Anhänge 'For Each l In ANH_LIST ' If l.anh_LaufzettelDruck Then ' If vbYes = MsgBox("Es wurden Anhänge zum Drucken markiert! Sollen diese gedruckt werden?", vbYesNoCancel) Then ' For Each ll In ANH_LIST ' If ll.anh_LaufzettelDruck Then ' Select Case ll.anh_Typ ' Case "PDF" : VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF({VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ll.anh_docId)}) ' ' Case "BILD" : VERAG_PROG_ALLGEMEIN.cFormularManager.Print_PICTURE({VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ll.anh_docId)}) ' Case Else : Process.Start(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ll.anh_docId)) ' End Select ' End If ' Next ' End If ' Exit For ' End If 'Next 'DIGITALE ABFERTIGUNG: If (digitalDruck) Or cbxVPSplit.Checked Then ' digital oder splittung --> per Vorpapier Try 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 AVISO.LOAD_Vorpapiere() Dim VP_Enum = VERAG_PROG_ALLGEMEIN.cSendungen.VP_Enum(SENDUNG_LIST) 'Filtert nach eindeutigen Vorpapieren Dim paths As New List(Of String) If Not genLZ(paths, digitalDruck, VP_Enum) Then Me.Cursor = Cursors.Default Exit Sub End If 'AVISO.LOAD_Vorpapiere() 'Dim VP_Enum = VERAG_PROG_ALLGEMEIN.cSendungen.VP_Enum(SENDUNG_LIST) 'Filtert nach eindeutigen Vorpapieren 'Dim paths As New List(Of String) 'If pruef Then paths.Add(SDL.FormularManagerNEU.LaufzettelZollDE_VP(AvisoID, False,, "XXXX")) 'For Each VP In VP_Enum ' paths.Add(SDL.FormularManagerNEU.LaufzettelZollDE_VP(AvisoID, False,, VP)) 'Next If digitalDruck Then 'NUR BEI DIGITALANMELDUNG! Dim outl As New Outlook.Application Dim Mail As Microsoft.Office.Interop.Outlook.MailItem Mail = outl.CreateItem(0) Dim tX As VERAG_PROG_ALLGEMEIN.cTextkonserve = Nothing Select Case AVISO.Grenzstelle Case "SUB" If cbxSAAbfertigung.Checked Then Mail.To = "samstag.ZA-Suben@zoll.bund.de" Else Mail.To = "abfertigung.za-suben@zoll.bund.de" End If tX = New VERAG_PROG_ALLGEMEIN.cTextkonserve("LAUFZETTEL_DIGITAL", "LAUFZETTEL_DE_DIGITAL_SUB", "DE", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA) Case "DTB" Mail.To = "poststelle.za-dettelbach@zoll.bund.de" tX = New VERAG_PROG_ALLGEMEIN.cTextkonserve("LAUFZETTEL_DIGITAL", "LAUFZETTEL_DE_DIGITAL_SUB", "DE", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA) Case "WAI" Mail.To = "" tX = New VERAG_PROG_ALLGEMEIN.cTextkonserve("LAUFZETTEL_DIGITAL", "LAUFZETTEL_DE_DIGITAL_WAI", "DE", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA) Case "SBG" Mail.To = "" tX = New VERAG_PROG_ALLGEMEIN.cTextkonserve("LAUFZETTEL_DIGITAL", "LAUFZETTEL_DE_DIGITAL_SBG", "DE", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA) Case Else Mail.To = "" tX = New VERAG_PROG_ALLGEMEIN.cTextkonserve("LAUFZETTEL_DIGITAL", "LAUFZETTEL_DE_DIGITAL_SUB", "DE", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA) End Select Dim MAIL_SUBJ = tX.txt_betreff.Replace("%LKWKennzeichen%", AVISO.LKW_Nr) Dim MAIL_BODY = tX.txt_text.Replace("%LKWKennzeichen%", AVISO.LKW_Nr) addVPList(MAIL_BODY, VP_Enum) Mail.HTMLBody = "
| Vorpapier: | ||
|---|---|---|
| " & VP & " |