Files
SDL/SDL/kunden/frmGoMautBoxen.vb
2024-10-02 08:59:41 +00:00

366 lines
14 KiB
VB.net

Imports System.DirectoryServices.ActiveDirectory
Imports com.sun.org.apache.xerces.internal.xs
Imports com.sun.tools.corba.se.idl.constExpr
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Public Class frmGoMautBoxen
Public kundenNr = -1
Dim kunde As cKunde
Dim adresse As cAdressen
Dim kundeErw As cKundenErweitert
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dt As New DataTable
Public addnew = False
Public WithEvents s As New cBinding("SDL") 'fürs Binding
Dim changed As Boolean = False
Dim ready As Boolean = False
Sub New(kundenNr)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.kundenNr = kundenNr
Me.addnew = addnew
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Sub New(kunde As cKunde, adresse As cAdressen, kundeErw As cKundenErweitert)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.kunde = kunde
Me.adresse = adresse
Me.kundeErw = kundeErw
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click, btn.Click
lblWarning.Text = ""
If kunde Is Nothing And kundenNr < 0 Then
lblWarning.Text = "Bitte Kunden-Nr eingeben."
Exit Sub
End If
If cbxKK.SelectedValue = "" Then
lblWarning.Text = "Bitte Kreditkarten-Nr eingeben."
Exit Sub
End If
If rbAP.Checked And txtbishAbrp.Text = "" Then
lblWarning.Text = "Bitte bisherigen Abrechnungspartner eingeben."
Exit Sub
End If
If dgvLKW.Rows(0).Cells(1).Value = "" Then
lblWarning.Text = "Bitte KFZ-Kennzeichen eingeben."
Exit Sub
End If
If Not rbPostPay.Checked And Not rbAP.Checked Then
lblWarning.Text = "Umstellungsart angeben!"
Exit Sub
End If
genMausboxenFormular(dgvLKW, sender)
End Sub
Sub initdgv()
Try
Dim setKdNr
If kundenNr > 0 Then
setKdNr = kundenNr
ElseIf kunde IsNot Nothing Then
setKdNr = kunde.KundenNr
Else
setKdNr = -1
End If
dt = SQL.loadDgvBySql("SELECT Kreditkarten.KartenNr, Kreditkarten.Kartenablaufmonat, Kreditkarten.Kartenablaufjahr FROM Kreditkarten WHERE (((Kreditkarten.AdressenNr)=" & setKdNr & ") AND ((Kreditkarten.NeueKartenNr) Is Null)) ORDER BY Kreditkarten.KartenNr", "FMZOLL")
If dt.Rows.Count > 0 Then
Dim dv As New DataView(dt, "KartenNr<>''", "KartenNr", DataViewRowState.CurrentRows)
Dim dt_new As DataTable = dv.ToTable(False, "KartenNr")
cbxKK.DataSource = dv
cbxKK.DisplayMember = "KartenNr"
cbxKK.ValueMember = "KartenNr"
cbxKK.changeItem(dv.Item(0).Row.Item(0))
End If
For i As Integer = 1 To 6
dgvLKW.Rows.Add("LKW-KZ " & i, "")
Next
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Private Sub btnAbbrechen_Click(sender As Object, e As EventArgs) Handles btnAbbrechen.Click ', Me.FormClosing
Me.Close()
End Sub
Private Sub frmLKWDetails_Load(sender As Object, e As EventArgs) Handles Me.Load
'If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MAUTBOXEN_bearbeiten", Me) Then
' MsgBox("Keine Berechtigung!")
' Me.Close()
'End If
KdSearchBox1.initKdBox(Me)
If kundenNr > 0 Then
Me.KdSearchBox1.KdNr = kundenNr
KdSearchBox1.Enabled = False
End If
cbxLandKz.fillWithSQL(" select distinct landkz, Währungstabelle.Land from Währungstabelle where landkz is not null order by LandKz", , "FMZOLL", True)
initKunde()
End Sub
Private Sub KdSearchBox1_PropertyChanged(sender As Object, e As System.ComponentModel.PropertyChangedEventArgs) Handles KdSearchBox1.PropertyChanged
initKunde()
End Sub
Private Sub initKunde()
If kundenNr < 0 Then
If adresse IsNot Nothing Then
kundenNr = adresse.AdressenNr
txtName.Text = If(adresse.Name_1, "") & If(adresse.Name_2, "")
txtStrasse.Text = If(adresse.Straße, "")
txtOrt.Text = If(adresse.Ort, "")
txtPlz.Text = If(adresse.PLZ, "")
cbxLandKz.changeItem(If(adresse.LandKz, ""))
txtAnsprechpartnerAnrede.Text = adresse.Anrede
txtAnsprechpartner.Text = adresse.Ansprechpartner
txtFax.Text = adresse.Telefax
txtEmail.Text = adresse.E_Mail
initdgv()
End If
Else
If KdSearchBox1.KdNr_value > 0 AndAlso KdSearchBox1.KdData_ADRESSEN IsNot Nothing AndAlso KdSearchBox1.KdData_KUNDE IsNot Nothing Then
Dim AD = KdSearchBox1.KdData_ADRESSEN
Dim KD = KdSearchBox1.KdData_KUNDE
Dim KDERW = KdSearchBox1.KdData_KUNDE_ERW
kundenNr = AD.AdressenNr
txtName.Text = If(AD.Name_1, "") & If(AD.Name_2, "")
txtStrasse.Text = If(AD.Straße, "")
txtOrt.Text = If(AD.Ort, "")
txtPlz.Text = If(AD.PLZ, "")
cbxLandKz.changeItem(If(AD.LandKz, ""))
txtAnsprechpartnerAnrede.Text = AD.Anrede
txtAnsprechpartner.Text = AD.Ansprechpartner
txtFax.Text = (If(AD.Telefax, ""))
txtEmail.Text = (If(AD.E_Mail, ""))
initdgv()
End If
End If
End Sub
Private Sub cbxKK_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxKK.SelectedValueChanged
If cbxKK.SelectedValue Is Nothing OrElse cbxKK.SelectedValue.ToString = "System.Data.DataRowView" Then
txtMonat.Text = ""
txtJahr.Text = ""
Exit Sub
End If
Dim dr() As DataRow = dt.Select("KartenNr = " & cbxKK.SelectedValue)
txtMonat.Text = dr(0).Item(1)
txtJahr.Text = dr(0).Item(2)
End Sub
Private Sub rbAP_CheckedChanged(sender As Object, e As EventArgs) Handles rbAP.CheckedChanged
If rbAP.Checked Then
txtbishAbrp.ReadOnly = False
Else
txtbishAbrp.Text = ""
txtbishAbrp.ReadOnly = True
End If
End Sub
Public Function genMausboxenFormular(dgv As DataGridView, sender As Object, Optional PrinterName As String = "", Optional ByRef pfadWord As String = "", Optional printReportElsePDF As Boolean = False, Optional openWord As Boolean = False) As Microsoft.Office.Interop.Word.Document
Dim odoc As Microsoft.Office.Interop.Word.Document = Nothing
Try
pfadWord = AppDomain.CurrentDomain.BaseDirectory & "Resources\MDM_Schreiben\GOBOX_UMSTELLUNG.dotx"
Dim oWord As New Microsoft.Office.Interop.Word.Application
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID)
Dim cGenWord As New cGenWord
odoc = cGenWord.openWord(pfadWord, False, oWord)
Dim oTable As Word.Table
'odoc.FormFields("Adresse1").Range.Text = kunde.Name_1 & " " & kunde.Name_2
'odoc.FormFields("Adresse2").Range.Text = kunde.Straße
'odoc.FormFields("Adresse3").Range.Text = kunde.LandKz & " " & kunde.PLZ & " " & kunde.Ort
'' odoc.FormFields("KdNrVERAG").Range.Text = KUNDE.KundenNr
'' odoc.FormFields("KdNrMST").Range.Text = PartnerKdNrFromFMZOLL.MSEKundenNr
'odoc.FormFields("Sachbearbeiter").Range.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
'odoc.FormFields("Datum").Range.Text = Now.ToShortDateString
'odoc.FormFields("KundenNr").Range.Text = kunde.AdressenNr
'odoc.FormFields("AuftragsNr").Range.Text = AuftragsNr.ToString("000000.##")
Dim textArt As String = ""
If rbPostPay.Checked Then
textArt = "hiermit beantragen wir die Umstellung unserer Pre-Pay GO-Box(en) auf Post-Pay." & vbNewLine & "Dies betrifft das/die folgende(n) Fahrzeug(e):"
ElseIf rbAP.Checked Then
textArt = "hiermit beantragen wir die Änderung des Abrechnungspartners unserer Post-Pay-GO-Boxen von " & txtbishAbrp.Text & " auf Verag." & vbNewLine & "Dies betrifft die folgenden Fahrzeuge:"
End If
Dim txtEnde As String = ""
If rbPostPay.Checked Then
txtEnde = "Hiermit bestätige Ich, dass:" & vbNewLine &
"• die Änderungen in der Reihenfolge des Eintreffens bei ASFINAG laufend bearbeitet werden." & vbNewLine &
"• die Umstellung genau zu einem Stichtag von ASFINAG nicht zugesichert werden kann." & vbNewLine &
"• die Änderung der Vertragsart von Pre- auf Post-Pay erst nach erfolgter Aktualisierung der in der/den GO-Box(en) gespeicherten Daten an einer GO-Vertriebsstelle wirksam wird."
ElseIf rbAP.Checked Then
txtEnde = "Weitere Fahrzeuge habe ich in einer zusätzlichen Liste beigefügt." & vbNewLine &
"Ich nehme zur Kenntnis, dass die Änderungen nach Eintreffen bei ASFINAG laufend bearbeitet werden." & vbNewLine &
"Die Umstellung genau zu einem Stichtag ist von ASFINAG nicht zugesichert."
End If
Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
For Each item In odoc.FormFields
Dim fieldName = item.Name.ToLower().Trim()
Select Case fieldName
Case "adresse1" : odoc.FormFields(fieldName).Range.Text = txtName.Text
Case "adresse2" : odoc.FormFields(fieldName).Range.Text = txtAnsprechpartnerAnrede.Text & " " & txtAnsprechpartner.Text
Case "adresse3" : odoc.FormFields(fieldName).Range.Text = txtStrasse.Text
Case "adresse4" : odoc.FormFields(fieldName).Range.Text = cbxLandKz._value & " " & txtPlz.Text & " " & txtOrt.Text
Case "adresse5" : odoc.FormFields(fieldName).Range.Text = txtEmail.Text
Case "adresse6" : odoc.FormFields(fieldName).Range.Text = txtFax.Text
Case "sachbearbeiter" : odoc.FormFields(fieldName).Range.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
Case "datum" : odoc.FormFields(fieldName).Range.Text = Now.ToShortDateString
Case "kundennr" : odoc.FormFields(fieldName).Range.Text = IIf(kundenNr > 0, kundenNr, KdSearchBox1.KdNr_value)
Case "kartennr" : odoc.FormFields(fieldName).Range.Text = cbxKK.SelectedValue
Case "art" : odoc.FormFields(fieldName).Range.Text = IIf(rbPostPay.Checked, rbPostPay.Text, rbAP.Text)
Case "typ_text" : odoc.FormFields(fieldName).Range.Text = textArt
Case "ende" : odoc.FormFields(fieldName).Range.Text = txtEnde
End Select
Next
If True Then
If odoc.Range.Bookmarks.Exists("TabelleKarten") Then
If odoc.Bookmarks("TabelleKarten").Range.Tables.Count > 0 Then
oTable = odoc.Bookmarks("TabelleKarten").Range.Tables(1)
Dim i = 1
Dim kfzTmp = ""
For Each r As DataGridViewRow In dgvLKW.Rows
If r.Cells(0).Value <> "" And r.Cells(1).Value <> "" Then
oTable.Rows(i + 1).Cells(1).Range.Text = r.Cells(0).Value
oTable.Rows(i + 1).Cells(2).Range.Text = r.Cells(1).Value
Else
oTable.Rows(i + 1).Cells(1).Range.Text = ""
oTable.Rows(i + 1).Cells(2).Range.Text = ""
End If
If i < dgvLKW.Rows.Count Then oTable.Rows.Add()
i += 1
Next
End If
End If
End If
odoc.Save() : odoc.Activate()
Dim path = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("GOBOX_UMSTELLUNG_" & kundenNr & ".pdf", ".pdf", True, False)
odoc.SaveAs(path, Word.WdSaveFormat.wdFormatPDF)
Try
odoc.Close()
oWord.Quit()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
If sender Is Button2 Then
Process.Start(path)
ElseIf sender Is btn Then
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Mail.Attachments.Add(path, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "_Formular.pdf")
Mail.Display()
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function
End Class