Files
SDL/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
2026-08-25 12:45:09 +02:00

1106 lines
54 KiB
VB.net

Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Public Class frmFaktSammelRgDrucken
Dim Sammelrechung = -1
Dim Firma = 1
Dim loaded = False
Dim dTLANDEU As New DataTable
Dim automailversand 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(Firma)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
Me.Firma = Firma
End Sub
Private Sub RadioButton_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton.CheckedChanged, RadioButton1.CheckedChanged, RadioButton2.CheckedChanged, RadioButton3.CheckedChanged, RadioButton4.CheckedChanged, RadioButton6.CheckedChanged, RadioButton5.CheckedChanged
lblSB.Visible = False : cboSB.Visible = False : btn.Enabled = True : Button9.Enabled = True : Button8.Enabled = True : cbxMWST.Visible = False : pnlAUTOMailversand.Visible = False : cbxAUTOMail.Visible = False : MyListBox1.Visible = True : btnNurExport.Visible = True : btnNurImport.Visible = True : btnKeine.Visible = True
lblAbfertigungsarten.Visible = True
cboSB.changeItem("")
If DirectCast(sender, RadioButton).Checked Then Sammelrechung = sender.tag
Select Case Sammelrechung
Case 1 : txtZeitraumBis.Text = Now.AddDays(-1).ToShortDateString
Case 2 'txtZeitraumBis.Text = CDate(Now.ToString("01.MM.yyyy")).AddDays(-1)
If Now.Day > 15 Then
txtZeitraumBis.Text = CDate(Now.ToString("15.MM.yyyy"))
Else
txtZeitraumBis.Text = CDate(Now.ToString("01.MM.yyyy")).AddDays(-1)
End If
Case 3 : txtZeitraumBis.Text = CDate(Now.ToString("01.MM.yyyy")).AddDays(-1)
Case 4 ': txtZeitraumBis.Text = CDate(Now.ToString("01.MM.yyyy")).AddDays(-1) '???
If Now.Day >= 20 Then
txtZeitraumBis.Text = CDate(Now.ToString("20.MM.yyyy"))
ElseIf Now.Day >= 10 Then
txtZeitraumBis.Text = CDate(Now.ToString("10.MM.yyyy")).AddDays(-1)
Else
txtZeitraumBis.Text = CDate(Now.ToString("01.MM.yyyy")).AddDays(-1)
End If
Case 5 : txtZeitraumBis.Text = Now.AddDays((Now.DayOfWeek) * -1).ToShortDateString
Case 6 : txtZeitraumBis.Text = Now.AddDays(-1).ToShortDateString : lblSB.Visible = True : cboSB.Visible = True
cboSB.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) : btn.Enabled = False : Button9.Enabled = False : Button2.Enabled = False
cbxMWST.Visible = True : pnlAUTOMailversand.Visible = True : cbxAUTOMail.Visible = True : Label5.Visible = False : cboFaktGrp.Visible = False
MyListBox1.Visible = False : btnNurExport.Visible = False : btnNurImport.Visible = False : btnKeine.Visible = False : lblAbfertigungsarten.Visible = False
Case 7 : txtZeitraumBis.Text = Now.ToShortDateString : lblSB.Visible = True : cboSB.Visible = True : cboSB.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME)
End Select
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("AUTOMAILVERSAND", "SDL") Then cbxAUTOMail.Visible = True : pnlAUTOMailversand.Visible = True : automailversand = True
initDGV()
End Sub
Sub initDGV()
With MyDatagridview1
Dim whereMWST As String = ""
Dim whereAutoMail As String = ""
Dim whereAbfArt As String = ""
Dim abfertigungsarten = getValues()
' Abfertigungsarten
If Sammelrechung <> 6 AndAlso abfertigungsarten <> "" Then
whereAbfArt = " AND (SELECT Abfertigungsart
FROM Speditionsbuch
WHERE Speditionsbuch.FilialenNr = Rechnungsausgang.FilialenNr
AND Speditionsbuch.AbfertigungsNr = Rechnungsausgang.AbfertigungsNr
AND Speditionsbuch.UnterNr = Rechnungsausgang.SpeditionsbuchUnterNr
) IN (" & abfertigungsarten & ") "
End If
' MWST
If Not cbxMWST.CheckState = CheckState.Indeterminate Then
whereMWST = " AND ISNULL(tblKundenErweitert.kde_keineMWSt,0) = " & If(cbxMWST.Checked, "1", "0")
End If
whereAutoMail = " AND ISNULL(Rechnungsausgang.Automailversand,0) = " & If(cbxAUTOMail.Checked, "1", "0")
Dim sqlStr As String = ""
Select Case Sammelrechung
Case 6 ' Maut Sammelrechnung
sqlStr = "
SELECT
Rechnungsausgang.RechnungsKundenNr,
MAX(Rechnungsausgang.[RechnungsName 1]) AS Firma,
0 AS AvisoId,
MAX(Rechnungsausgang.[RechnungsLandKz]) AS [RechnungsLandKz],
COUNT(*) AS Anzahl,
SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe,
SUM(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer,
ISNULL(tblKundenErweitert.kde_keineMWSt,0) AS keineMWST,
(SELECT CASE
WHEN Rechnungsdruck = 0 THEN 'POST'
WHEN Rechnungsdruck = 1 THEN 'FAX'
WHEN Rechnungsdruck = 2 THEN 'E-MAIL'
ELSE '-' END
FROM Adressen
WHERE AdressenNr = Rechnungsausgang.RechnungsKundenNr) AS Rechnungsdruck
FROM Rechnungsausgang
LEFT JOIN tblKundenErweitert
ON tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
WHERE
Rechnungsausgang.Status = 2
AND Rechnungsausgang.Firma_ID = '" & cboFirma._value & "'
AND Rechnungsausgang.Sammelrechnung = " & Sammelrechung & "
AND CONVERT(DATE, Rechnungsausgang.Rechnungsdatum, 104) = '" & txtRechnungsdatum._value & "'
" & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & "
" & whereAbfArt & whereMWST & whereAutoMail & "
GROUP BY
RechnungsKundenNr,
ISNULL(tblKundenErweitert.kde_keineMWSt,0)
ORDER BY
RechnungsLandKz, RechnungsKundenNr"
Case Else
Dim SQLAUTOMAIL_RECHNUNGSDATuM = ""
If cbxAUTOMail.Checked Then
SQLAUTOMAIL_RECHNUNGSDATuM = "AND Rechnungsausgang.Status IN (2) AND CONVERT(DATE, Rechnungsausgang.Rechnungsdatum, 104) = '" & txtRechnungsdatum._value & "' AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & txtZeitraumBis._value & "'"
Else
SQLAUTOMAIL_RECHNUNGSDATuM = " AND Rechnungsausgang.Status IN (0,2) AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & txtZeitraumBis._value & "'"
End If
sqlStr = "
SELECT
Rechnungsausgang.RechnungsNr as RENR,
Rechnungsausgang.RechnungsKundenNr,
MAX(Rechnungsausgang.[RechnungsName 1]) AS Firma,
" & If(Sammelrechung = 7, "AvisoId", "0") & " AS AvisoId,
MAX(Rechnungsausgang.[RechnungsLandKz]) AS [RechnungsLandKz],
ISNULL(tblKundenErweitert.kde_SR_IM_EX,0) AS IM_EX,
COUNT(*) AS Anzahl,
SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe
" & If(Sammelrechung = 7, ", MAX([LKW Kennzeichen]) AS LKW", "") & ",
(SELECT CASE
WHEN Rechnungsdruck = 0 THEN 'POST'
WHEN Rechnungsdruck = 1 THEN 'FAX'
WHEN Rechnungsdruck = 2 THEN 'E-MAIL'
ELSE '-' END
FROM Adressen
WHERE AdressenNr = Rechnungsausgang.RechnungsKundenNr) AS Rechnungsdruck
FROM Rechnungsausgang
LEFT JOIN tblKundenErweitert
ON tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
WHERE
Rechnungsausgang.Firma_ID = '" & cboFirma._value & "'
AND Rechnungsausgang.Sammelrechnung = '" & Sammelrechung & "'
" & If(Sammelrechung = 7 AndAlso cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & "
" & whereAbfArt & whereAutoMail & SQLAUTOMAIL_RECHNUNGSDATuM & "
AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "'
GROUP BY
RechnungsNr,RechnungsKundenNr,tblKundenErweitert.kde_SR_IM_EX " & If(Sammelrechung = 7, ", AvisoId", "") & "
ORDER BY
Rechnungsausgang.RechnungsKundenNr"
End Select
'Rechnungsausgang.Status IN (0,2) --> vormals nur 2
.SET_SQL(sqlStr, "FMZOLL")
.LOAD()
.Columns("RechnungsKundenNr").Width = 100
.Columns("RechnungsKundenNr").HeaderText = "KundenNr"
.Columns("Firma").Width = 200
.Columns("Summe").HeaderText = "Summe"
.Columns("Summe").DefaultCellStyle.Format = "#,##0.00 €"
.Columns("Summe").Width = 80
.Columns("RechnungsLandKz").Visible = False
.Columns("RechnungsLandKz").HeaderText = "Land"
.Columns("Anzahl").Width = 42
.Columns("Rechnungsdruck").Width = 80
.Columns("Rechnungsdruck").HeaderText = "Rg.Art"
.Columns("Rechnungsdruck").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns("Anzahl").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
If .Columns.Contains("LKW") And .Columns.Count >= 8 Then
.Columns("LKW").Width = 80
End If
If .Columns.Contains("RENR") Then
If .Columns("RENR").Visible = Visible Then
.Columns("RENR").Width = 60
End If
End If
If .Columns.Contains("IM_EX") And .Columns.Count >= 8 Then
.Columns("IM_EX").Width = 45
End If
If .Columns.Contains("RechnungsLandKz") AndAlso Sammelrechung = 6 Then .Columns("RechnungsLandKz").Visible = True
If .Columns.Contains("keineMWST") Then .Columns("keineMWST").Visible = False
If .Columns.Contains("RENR") Then
If cbxAUTOMail.Checked Then
.Columns("RENR").Visible = True
Else
.Columns("RENR").Visible = False
End If
If automailversand Then
.Columns("RENR").Visible = True
End If
End If
If .Columns.Contains("Steuer") Then .Columns("Steuer").Visible = False
If .Columns.Contains("AvisoId") Then .Columns("AvisoId").Visible = False
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
.ClearSelection()
If MyDatagridview1.RowCount > 0 Then
Button4.Enabled = cbxAUTOMail.Checked
Button7.Enabled = cbxAUTOMail.Checked
Button3.Enabled = Not cbxAUTOMail.Checked
Else
Button7.Enabled = False
Button4.Enabled = False
Button3.Enabled = False
End If
End With
End Sub
Function getValues() As String
Dim s As String = ""
For Each i In MyListBox1.SelectedItems
s += DirectCast(i, VERAG_PROG_ALLGEMEIN.MyListItem).Value & ", "
Next
If s.EndsWith(", ") Then
s = s.Substring(0, s.Length - 2)
End If
Return s
End Function
Private Sub frmFaktSammelRgDrucken_Load(sender As Object, e As EventArgs) Handles Me.Load
txtZeitraumBis.Text = Now.ToShortDateString
txtRechnungsdatum.Text = Now.ToShortDateString
MyListBox1.fillWithSQL(" SELECT [Abfertigungsart],[Abfertigungsbezeichnung] FROM [Abfertigungsarten] ORDER BY Abfertigungsart ", , "FMZOLL")
Dim FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_VERAGIMEX", "SDL") Then
FirmaTmp = "VERAGIMEX"
End If
Label5.Visible = True
cboFaktGrp.Visible = True
If Not IsDBNull(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_firmaFMZoll) AndAlso (CInt(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_firmaFMZoll) = 19) Then
FirmaTmp = "VERAG360"
RadioButton5.Enabled = True
MyListBox1.SetSelected(10, True)
Else
RadioButton5.Enabled = False
End If
Select Case FirmaTmp
Case "VERAG"
cboFirma.fillWithSQL("Select [Firma_ID], [Firma_Bez] FROM [tblFirma] WHERE Firma_ID<>20", False, "FMZOLL")
cboFirma.changeItem("1")
cboSB.fillWithSQL("SELECT [mit_username] FROM [tblMitarbeiter] where mit_firma IN ('VERAG'" & If(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "ADMIN", ",'ALL'", "") & ") and mit_gekuendigt=0 AND (mit_abteilung IN ('VRR','BH') OR [mit_id] IN (SELECT [beroz_bergrId] FROM [tblBerechtigungsObjekteZuordnung] where [beroz_beroId]=90 AND beroz_art='B')) order by mit_username", False, "ADMIN", True)
Case "IMEX"
cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE Firma_ID=20", False, "FMZOLL")
cboFirma.changeItem("20")
cboSB.fillWithSQL("SELECT [mit_username] FROM [tblMitarbeiter] where mit_firma='IMEX' and mit_gekuendigt=0 AND (mit_abteilung IN ('VRR','BH') OR (SELECT COUNT(*) FROM [tblBerechtigungsObjekteZuordnung] where [beroz_beroId]=90 AND [beroz_bergrId]=[mit_id] AND beroz_art='B')>0) order by mit_username", False, "ADMIN", True)
Case "UNISPED"
cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE Firma_ID IN (21,22,23) ", False, "FMZOLL")
cboFirma.changeItem("20")
cboSB.fillWithSQL("SELECT [mit_username] FROM [tblMitarbeiter] where mit_firma='UNISPED' and mit_gekuendigt=0 AND (mit_abteilung IN ('VRR','BH') OR (SELECT COUNT(*) FROM [tblBerechtigungsObjekteZuordnung] where [beroz_beroId]=90 AND [beroz_bergrId]=[mit_id] AND beroz_art='B')>0) order by mit_username", False, "ADMIN", True)
Case "VERAGIMEX"
cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] ", False, "FMZOLL")
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "VERAG" : cboFirma.changeItem("1")
Case "IMEX" : cboFirma.changeItem("20")
End Select
cboSB.fillWithSQL("SELECT [mit_username] FROM [tblMitarbeiter] where mit_firma IN ('IMEX','VERAG'" & If(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "ADMIN", ",'ALL'", "") & ") and mit_gekuendigt=0 AND (mit_abteilung IN ('VRR','BH') OR [mit_id] IN (SELECT [beroz_bergrId] FROM [tblBerechtigungsObjekteZuordnung] where [beroz_beroId]=90 AND beroz_art='B')) order by mit_username", False, "ADMIN", True)
Case "AMBAR"
cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE FIRMENGRUPPE IN ('AMBAR') ", False, "FMZOLL")
cboFirma.changeItem("24")
cboSB.fillWithSQL("SELECT [mit_username] FROM [tblMitarbeiter] where mit_firma='AMBAR' and mit_gekuendigt=0 AND (mit_abteilung IN ('VRR','BH') OR (SELECT COUNT(*) FROM [tblBerechtigungsObjekteZuordnung] where [beroz_beroId]=90 AND [beroz_bergrId]=[mit_id] AND beroz_art='B')>0) order by mit_username", False, "ADMIN", True)
Label5.Visible = False
cboFaktGrp.Visible = False
Case "VERAG360"
cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE Firma_ID=19", False, "FMZOLL")
cboFirma.changeItem("19")
cboSB.fillWithSQL("SELECT [mit_username] FROM [tblMitarbeiter] where isnull(mit_firmaFMZoll,0)=19 and mit_gekuendigt=0 AND (mit_abteilung IN ('VRR','BH') OR (SELECT COUNT(*) FROM [tblBerechtigungsObjekteZuordnung] where [beroz_beroId]=90 AND [beroz_bergrId]=[mit_id] AND beroz_art='B')>0) order by mit_username", False, "ADMIN", True)
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then cboSB.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DANIEL", "DANIEL"))
End Select
' cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE Firma_ID NOT IN(3) ORDER BY Firma_ID ", True, "FMZOLL")
cboFirma.changeItem(Firma)
cboSB.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME)
cboFaktGrp.Items.Clear()
If FirmaTmp <> "VERAG360" Then
cboFaktGrp.fillWithSQL("SELECT [Code],[Bezeichnung] FROM tblFakturierungsgruppe", False, "ADMIN", False)
cboFaktGrp.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_fakturierungsgruppe)
End If
cProgramFunctions.initDrucker(cboPrinter)
RadioButton.Checked = True
loaded = True
initDGV()
dTLANDEU = (New SQL).loadDgvBySql("select LandKz, MitgliedslandEU from Währungstabelle where LandKz is not null", "FMZOLL")
Dim R As DataRow = dTLANDEU.NewRow
R("LandKz") = "MK"
R("MitgliedslandEU") = False
dTLANDEU.Rows.Add(R)
End Sub
Private Sub txtRechnungsdatum_TextChanged(sender As Object, e As EventArgs) Handles txtRechnungsdatum.Leave, cboFirma.SelectedIndexChanged, txtZeitraumBis.Leave, cboSB.SelectedIndexChanged
initDGV()
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
doSammelrechnung(1)
End Sub
Function getSelectionKdNr() As String
getSelectionKdNr = ""
If MyDatagridview1.SelectedRows.Count > 0 Then
If MyDatagridview1.SelectedRows.Count = MyDatagridview1.Rows.Count Then Return "" ' Alle ausgewählt
For Each r As DataGridViewRow In MyDatagridview1.SelectedRows
getSelectionKdNr &= r.Cells("RechnungsKundenNr").Value & ","
Next
getSelectionKdNr = getSelectionKdNr.Substring(0, getSelectionKdNr.Length - 1)
End If
End Function
Function getSelectionKdNr_Simple() As String
If MyDatagridview1.Rows.Count = 1 Then Return MyDatagridview1.Rows(0).Cells("RechnungsKundenNr").Value
If MyDatagridview1.SelectedRows.Count = 1 Then Return MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value
If MyDatagridview1.Rows.Count > 0 Then ' Wenn alle gliech sind, dann wir die KdNr zurückgegben
Dim kdTmp = MyDatagridview1.Rows(0).Cells("RechnungsKundenNr").Value
For Each r As DataGridViewRow In MyDatagridview1.SelectedRows
If r.Cells("RechnungsKundenNr").Value <> kdTmp Then Return ""
Next
Return kdTmp
End If
Return ""
End Function
Function getSelectionLandKz() As String
getSelectionLandKz = ""
If MyDatagridview1.Rows.Count > 0 Then
If MyDatagridview1.SelectedRows.Count > 0 Then
For Each r As DataGridViewRow In MyDatagridview1.SelectedRows
If r.Cells("RechnungsLandKz").Value IsNot DBNull.Value Then
If getSelectionLandKz = "" Then
getSelectionLandKz = r.Cells("RechnungsLandKz").Value
Else
If getSelectionLandKz <> r.Cells("RechnungsLandKz").Value Then
Return ""
End If
End If
End If
Next
Else
For Each r As DataGridViewRow In MyDatagridview1.Rows
If r.Cells("RechnungsLandKz").Value IsNot DBNull.Value Then
If getSelectionLandKz = "" Then
getSelectionLandKz = r.Cells("RechnungsLandKz").Value
Else
If getSelectionLandKz <> r.Cells("RechnungsLandKz").Value Then
Return ""
End If
End If
End If
Next
End If
End If
End Function
Private Sub MyDatagridview1_SelectionChanged(sender As Object, e As EventArgs) Handles MyDatagridview1.SelectionChanged
' MyDatagridview1.ClearSelection()
End Sub
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
doSammelrechnung(3)
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click, Button2.Click
If Not IsNumeric(getSelectionKdNr_Simple) Then MsgBox("Es muss eine eindeutige KundenNr ausgewählt werden!") : Exit Sub
'RG-Druck - Mail (+Kopie)
Dim RG_DRUCK = 2
If sender Is Button2 Then
RG_DRUCK = 5
End If
Dim MDMKopiedrucken As Boolean = False
If Sammelrechung = 6 Then 'MDMSammelrechnung
'AKTUELL IMMER MIT KOPIE
MDMKopiedrucken = True
Dim reLandKZ As String = MyDatagridview1.SelectedRows(0).Cells("RechnungsLandKz").Value
Dim isEU As Boolean = dTLANDEU.AsEnumerable().Where(Function(res) res.Field(Of String)("LandKz") = reLandKZ).Select(Function(res) res.Field(Of Boolean)("MitgliedslandEU")).FirstOrDefault()
If isEU Then
If MyDatagridview1.Columns.Contains("keineMWST") Then
If MyDatagridview1.SelectedRows.Count = 1 Then
'1. Schritt: kein MWST Kunde -> ORIGINAL-RE per Mail!
MDMKopiedrucken = Not MyDatagridview1.SelectedRows(0).Cells("keineMWST").Value
End If
End If
'2. Schritt: MWST Kunde -> wenn kein MWST-BEtrag ->Original sonst Kopie per Mail!
If MDMKopiedrucken Then
MDMKopiedrucken = CDbl(MyDatagridview1.SelectedRows(0).Cells("Steuer").Value) <> 0
End If
Else
End If
End If
Dim abfertigungsarten = getValues()
Dim f As New frmFaktEmail(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, RG_DRUCK, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, getSelectionKdNr_Simple, -1, Nothing, cboSB._value,, getAvisoIds, cbxEVOLOG.Checked, cbxTransFerry.Checked, cboFaktGrp._value, abfertigungsarten, MDMKopiedrucken)
f.ShowDialog(Me)
MyDatagridview1.GetOrder()
initDGV()
MyDatagridview1.SetOrder()
'Else
' doSammelrechnung(2)
'End If
End Sub
Function getAvisoIds() As List(Of Integer)
If Sammelrechung <> 7 Then Return Nothing
Dim AvisoIds As New List(Of Integer)
If MyDatagridview1.SelectedRows.Count > 0 Then
For Each r In MyDatagridview1.SelectedRows
If r.cells("AvisoId").value Is DBNull.Value Then
MsgBox("Nicht alle Speditionsbucheinträge haben eine Aviso-Id. LKW Abrechnung wird abgebrochen.") : Return (New List(Of Integer))
End If
AvisoIds.Add(r.cells("AvisoId").value)
Next
End If
Return AvisoIds
End Function
Function getKundenNr() As List(Of Integer)
Dim KundenNr As New List(Of Integer)
If MyDatagridview1.SelectedRows.Count > 0 Then
For Each r In MyDatagridview1.SelectedRows
If r.cells("RechnungsKundenNr").value Is DBNull.Value Then
Return (New List(Of Integer))
End If
KundenNr.Add(r.cells("RechnungsKundenNr").value)
Next
End If
Return KundenNr
End Function
Sub doSammelrechnung(ausgabeArt As Integer, Optional vorschau As Boolean = False)
Try
If cboFirma._value = "" Then MsgBox("Bitte Firma angeben!") : Exit Sub
If txtZeitraumBis.Text = "" Then MsgBox("Bitte Zeitraum-Bis angeben!") : Exit Sub
If txtRechnungsdatum.Text = "" Then MsgBox("Bitte Rechnungsdatum angeben!") : Exit Sub
Me.Enabled = False
Me.Cursor = Cursors.WaitCursor
Dim listPDFs As New List(Of String)
Dim SonstAnlagen As New List(Of String)
Dim RechnungsNrisSet As Boolean = False
Dim abfertigungsarten = getValues()
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, getSelectionKdNr, If(ausgabeArt = 1, -1, 4), listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, vorschau, cbxTransFerry.Checked, cboFaktGrp._value, abfertigungsarten)
'-------------- für PDF-Sammel-Rechnung --------------
If Not RechnungsNrisSet Then
initDGV()
Me.Enabled = True
Me.Cursor = Cursors.Default
Exit Sub
End If
If cbxZusammenfassen.Checked Then ' Gibt an, ob mehrere Sammelrechnung zusammengefasst werden sollten
Select Case ausgabeArt
Case 2 'MAIL
If listPDFs.Count > 0 Then
Try
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Mail.Subject = "VERAG Sammel-Rechnung"
Mail.HTMLBody = getSammelRgTExt(getSelectionLandKz)
If IsNumeric(getSelectionKdNr) Then
Dim email_receipt As String = ""
If cboFirma._value = "7" Then email_receipt = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(CInt(getSelectionKdNr()), "Rechnung an (ATILLA)Then")
Mail.To = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(CInt(getSelectionKdNr()), "Rechnung an"), email_receipt)
End If
For Each pdf In listPDFs
Mail.Attachments.Add(pdf, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
Next
For Each pdf In SonstAnlagen
Mail.Attachments.Add(pdf, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
Next
Mail.Display()
Catch ex As Exception
MsgBox("Fehler beim Öffnen des Mail-Programmes.") ' PDF wird geöffnet!")
' Process.Start(pdf)
End Try
End If
Case 3 'PDF + öffnen
Dim pathPDF = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("VERAG_Sammelrechnung.pdf", ".pdf", False, False)
If FormularManagerNEU.MergePdfFiles(listPDFs, pathPDF) Then
Process.Start(pathPDF)
Else
MsgBox("Fehler beim zusammenführen der PDFs.")
End If
End Select
Else 'nein (Standard)
Select Case ausgabeArt
Case 2 'MAIL
If listPDFs.Count > 0 Then
For Each pdf In listPDFs
Try
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Mail.Subject = "VERAG Sammel-Rechnung"
If IsNumeric(getSelectionKdNr) Then
Dim email_receipt As String = ""
If cboFirma._value = "7" Then email_receipt = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(CInt(getSelectionKdNr()), "Rechnung an (ATILLA)")
Mail.To = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(CInt(getSelectionKdNr()), "Rechnung an"), email_receipt)
End If
Mail.HTMLBody = getSammelRgTExt(getSelectionLandKz) ' Sehr geehrte Damen und Herren,<br><br>anbei erhalten Sie Ihre Sammel-Rechnung."
Mail.Attachments.Add(pdf, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
Mail.Display()
Catch ex As Exception
MsgBox("Fehler beim Öffnen des Mail-Programmes. PDF wird geöffnet!")
Process.Start(pdf)
End Try
Next
End If
Case 3 'PDF + öffnen
For Each pdf In listPDFs
Process.Start(pdf)
Next
For Each pdf In SonstAnlagen
Process.Start(pdf)
Next
End Select
End If
'-------------- ENDE --------------
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
initDGV()
Me.Enabled = True
Me.Cursor = Cursors.Default
End Sub
Function getSammelRgTExt(RechnungsLandKz) As String
If RechnungsLandKz = "" Then
getSammelRgTExt = "Sehr geehrte Damen und Herren,<br>"
getSammelRgTExt &= "Dear Ladies and Gentlemen,<br>"
getSammelRgTExt &= "Sayin Bayanlar ve Baylar,<br>"
getSammelRgTExt &= "<br>"
getSammelRgTExt &= "im Anhang senden wir Ihnen die o.g. Rechnung.<br>"
getSammelRgTExt &= "attached we send you the invoice mentioned above.<br>"
getSammelRgTExt &= "ekte baslikta yazan faturayi bulabilirsinz.<br>"
getSammelRgTExt &= "<br>"
getSammelRgTExt &= "<br><br><br>Mit freundlichen Grüßen / Best regards / Saygilarimizla<br><br>VERAG Spedition AG<br><br>" & cFakturierung.getSignature(RechnungsLandKz, cboFirma._value)
Return "<div style=""font-family:Calibri, Arial"">" & getSammelRgTExt & "</div>"
End If
Select Case RechnungsLandKz
Case "TR"
getSammelRgTExt = "Sayin Bayanlar ve Baylar,<br><br>ekte baslikta yazan faturayi bulabilirsinz."
getSammelRgTExt &= "<br><br><br>Saygilarimizla<br><br>VERAG Spedition AG<br><br>" & cFakturierung.getSignature(RechnungsLandKz, cboFirma._value)
Case "A", "AT", "D", "DE", "CH"
getSammelRgTExt = "Sehr geehrte Damen und Herren,<br><br>im Anhang senden wir Ihnen die o.g. Rechnung."
getSammelRgTExt &= "<br><br><br>Mit freundlichen Grüßen<br><br>VERAG Spedition AG<br><br>" & cFakturierung.getSignature(RechnungsLandKz, cboFirma._value)
Case Else
getSammelRgTExt = "Dear Ladies and Gentlemen,<br><br>attached we send you the invoice mentioned above."
getSammelRgTExt &= "<br><br><br>Best regards<br><br>VERAG Spedition AG<br><br>" & cFakturierung.getSignature(RechnungsLandKz, cboFirma._value)
End Select
getSammelRgTExt = "<div style=""font-family:Calibri, Arial"">" & getSammelRgTExt & "</div>"
End Function
Private Sub lkl_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles lkl.LinkClicked
MyDatagridview1.ClearSelection()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
doSammelrechnung(3, True)
End Sub
Private Sub cboFaktGrp_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFaktGrp.SelectedIndexChanged
initDGV()
End Sub
Private Sub cboAbfertigungsart_SelectedIndexChanged(sender As Object, e As EventArgs)
initDGV()
End Sub
Private Sub cbxMWST_Click(sender As Object, e As EventArgs) Handles cbxMWST.Click
initDGV()
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
If txtRechnungsdatum.Text = "" Then MsgBox("Bitte Rechnungsdatum angeben!") : Exit Sub
If CDate(txtRechnungsdatum.Text).AddDays(-4) > Today() Then MsgBox("Rechnungen können max. 4 Tage vordatiert werden!") : Exit Sub
If cAutomailversand.automRechnungsversand_aktivieren(True, CDate(txtRechnungsdatum.Text).ToShortDateString) Then
Dim onlyEMAIL As Boolean = True
If MyDatagridview1.Columns.Contains("RENR") AndAlso MyDatagridview1.Columns.Contains("Rechnungsdruck") Then
onlyEMAIL = MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Any(Function(r) r.Cells("Rechnungsdruck").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("Rechnungsdruck").Value) AndAlso r.Cells("Rechnungsdruck").Value.ToString().Trim() = "E-MAIL")
If cboFirma._value = "" Then MsgBox("Bitte Firma angeben!") : Exit Sub
If txtZeitraumBis.Text = "" Then MsgBox("Bitte Zeitraum-Bis angeben!") : Exit Sub
If Not onlyEMAIL Then MsgBox("Sammelrechnungen die per POST/FAX verschickt werden, können nicht gesetzt werden!") : Exit Sub
If vbYes = MsgBox("Es wird eine Beleg-NR vergeben, die Belege gelten somit als gedruckt und können nicht mehr bearbeitet werden.", vbYesNoCancel) Then
Dim abfertigungsarten = getValues()
Dim func As New cAutomailversand
For Each r In MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Where(Function(x) x.Cells("RENR").Value Is Nothing OrElse IsDBNull(x.Cells("RENR").Value))
Dim ADR As New cAdressen(r.Cells("RechnungsKundenNr").Value)
If func.setandcheckEmpfaengerMail_SR(Nothing, ADR, "", "", "", cboFirma._value, Sammelrechung) = "" Then
MsgBox("Bei Kunde " & r.Cells("RechnungsKundenNr").Value & " fehlt der Email-Empfänger!" & vbNewLine & "Vorgang wird abgebrochen")
Exit Sub
End If
Next
For Each r In MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Where(Function(x) x.Cells("RENR").Value Is Nothing OrElse IsDBNull(x.Cells("RENR").Value))
Me.Enabled = False
Me.Cursor = Cursors.WaitCursor
If IsDate(txtRechnungsdatum.Text) AndAlso IsDate(txtZeitraumBis.Text) AndAlso Not IsDBNull(r.Cells("RechnungsLandKz").Value) AndAlso Not IsDBNull(r.Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then
Dim RENRExisting As Boolean = False
RENRExisting = r.Cells("RENR").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("RENR").Value) AndAlso r.Cells("RENR").Value.ToString().Trim() <> ""
If Not RENRExisting Then
Dim IM_EX As Boolean = False
If r.Cells("IM_EX").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("IM_EX").Value) Then
IM_EX = r.Cells("IM_EX").Value
End If 'AndAlso Not IsDBNull(r.Cells("RENR").Value) AndAlso r.Cells("RENR").Value <> ""
If abfertigungsarten = "" AndAlso IM_EX Then
MsgBox("Achtung, RechnungNr für Kunde " & r.Cells("RechnungsKundenNr").Value & " konnte nicht gesetzt, weil keine Abfertigungsart ausgewählt wurde!")
Continue For
Else
If Sammelrechung <> 7 Then
createsSammelRechungsNr(r.Cells("RechnungsKundenNr").Value, abfertigungsarten)
End If
End If
Me.Enabled = True
Me.Cursor = Cursors.Default
End If
End If
Next
If Sammelrechung = 7 Then
Me.Enabled = False
Me.Cursor = Cursors.WaitCursor
createsSammelRechungsNr(getSelectionKdNr, abfertigungsarten)
Me.Enabled = True
Me.Cursor = Cursors.Default
End If
End If
End If
setMailversand_ALL(True, cboFirma._value, Sammelrechung)
Me.Enabled = True
Me.Cursor = Cursors.Default
cbxAUTOMail.Checked = Not cbxAUTOMail.Checked
End If
End If
End Sub
Private Function createsSammelRechungsNr(KundenNr As String, abfertigungsarten As String) As Boolean
Dim SonstAnlagen As New List(Of String)
Dim listPDFs As New List(Of String)
Dim RechnungsNrisSet As Boolean = False
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, KundenNr, 7, listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, , cbxTransFerry.Checked, cboFaktGrp._value, abfertigungsarten,,, True,,, True)
Return RechnungsNrisSet
End Function
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
If cAutomailversand.automRechnungsversand_deaktivieren(True) Then
'setMailversand(false, Firma, Sammelrechung, 2)
setMailversand_ALL(False, cboFirma._value, Sammelrechung)
cbxAUTOMail.Checked = Not cbxAUTOMail.Checked
End If
End If
End Sub
Private Function setMailversand(Mailversand As Boolean, FirmaID As Integer, Sammelrechnung As Integer, Status As Integer) As Boolean
Dim count = 0
Dim mailversandString As String = IIf(Mailversand, "1", "0")
Dim whereMWST = ""
If cbxMWST.CheckState.Indeterminate Then
whereMWST = ""
Else
whereMWST = " AND isnull(tblKundenErweitert.kde_keineMWSt,0) = " & IIf(cbxMWST.Checked, "1", "0")
End If
For Each r As DataGridViewRow In MyDatagridview1.SelectedRows
If IsDate(txtRechnungsdatum.Text) AndAlso r.Cells("RechnungsLandKz").Value <> "" AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then
If (New SQL).doSQL("UPDATE Rechnungsausgang set Automailversand = " & mailversandString &
" from Rechnungsausgang left join tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr where Rechnungsausgang.Status In (" & Status & ") And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnung & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" &
CDate(txtRechnungsdatum.Text).ToShortDateString & "' and RechnungsKundenNr = " & r.Cells("RechnungsKundenNr").Value & " and RechnungsLandKz = '" & r.Cells("RechnungsLandKz").Value & " ' and isnull(Automailversand, 0) <> " & mailversandString &
If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & whereMWST, "FMZOLL") Then
count += 1
End If
End If
Next
If count <> MyDatagridview1.SelectedRows.Count Then MsgBox("ACHTUNG" & vbNewLine & "Der automatische Mailversand wurde nur bei " & count & " Rechnungen " & IIf(Mailversand, "aktiviert!", "deaktiviert!") & vbNewLine & "Markiert waren " & MyDatagridview1.SelectedRows.Count & " Rechnungen!")
initDGV()
End Function
Private Function setMailversand_ALL(Mailversand As Boolean, FirmaID As Integer, Sammelrechnung As Integer) As Boolean
Dim count As Integer = 0
Dim mailversandString As String = If(Mailversand, "1", "0")
Dim whereMWST As String = ""
Dim whereAutoMail As String = ""
Dim whereSammelrechnung As String = ""
Dim whereAbfArt As String = ""
Dim abfertigungsarten = getValues()
' Abfertigungsarten
If Sammelrechung <> 6 AndAlso abfertigungsarten <> "" Then
whereAbfArt = " AND (SELECT Abfertigungsart
FROM Speditionsbuch
WHERE Speditionsbuch.FilialenNr = Rechnungsausgang.FilialenNr
AND Speditionsbuch.AbfertigungsNr = Rechnungsausgang.AbfertigungsNr
AND Speditionsbuch.UnterNr = Rechnungsausgang.SpeditionsbuchUnterNr
) IN (" & abfertigungsarten & ") "
End If
' MWST Filter
If cbxMWST.CheckState <> CheckState.Indeterminate Then
whereMWST = " AND ISNULL(tblKundenErweitert.kde_keineMWSt,0) = " & If(cbxMWST.Checked, "1", "0")
End If
' Automail Filter (nur ändern wenn unterschiedlich)
whereAutoMail = " AND ISNULL(Rechnungsausgang.Automailversand,0) <> " & mailversandString
Select Case Sammelrechnung
Case 6 : whereSammelrechnung = ""
Case Else : whereSammelrechnung = ""
End Select
For Each r As DataGridViewRow In MyDatagridview1.SelectedRows
Dim sql As String = ""
If IsDate(txtRechnungsdatum.Text) AndAlso Not IsDBNull(r.Cells("RechnungsLandKz").Value) AndAlso Not IsDBNull(r.Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then
sql = "UPDATE Rechnungsausgang SET Automailversand = " & mailversandString & " FROM Rechnungsausgang LEFT JOIN tblKundenErweitert ON tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
WHERE
Rechnungsausgang.Status IN (2)
AND Rechnungsausgang.Firma_ID = '" & FirmaID & "'
AND Rechnungsausgang.Sammelrechnung = '" & Sammelrechnung & "'
AND CONVERT(DATE, Rechnungsausgang.Rechnungsdatum, 104) = '" & CDate(txtRechnungsdatum.Text).ToShortDateString & "'
AND Rechnungsausgang.RechnungsKundenNr = " & r.Cells("RechnungsKundenNr").Value & "
AND Rechnungsausgang.RechnungsLandKz = '" & r.Cells("RechnungsLandKz").Value.ToString.Trim & "'
" & whereAutoMail & "
" & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & "
" & whereMWST & whereAbfArt
If (New SQL).doSQL(sql, "FMZOLL") Then
count += 1
End If
End If
Next
If count <> MyDatagridview1.SelectedRows.Count Then
MsgBox("ACHTUNG" & vbNewLine &
"Der automatische Mailversand wurde nur bei " & count & " Rechnungen " &
If(Mailversand, "aktiviert!", "deaktiviert!") & vbNewLine &
"Markiert waren " & MyDatagridview1.SelectedRows.Count & " Rechnungen!")
End If
End Function
Private Sub cbxAUTOMail_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAUTOMail.CheckedChanged
initDGV()
If MyDatagridview1.RowCount > 0 Then
Button4.Enabled = cbxAUTOMail.Checked
Button7.Enabled = cbxAUTOMail.Checked
Button3.Enabled = Not cbxAUTOMail.Checked
Button6.Enabled = cbxAUTOMail.Checked
Else
Button7.Enabled = False
Button4.Enabled = False
Button3.Enabled = False
Button6.Enabled = False
End If
End Sub
Private Sub Button6_Click_1(sender As Object, e As EventArgs) Handles Button6.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
If IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) Then
Dim dtRE As DataTable
Dim SQLString = ""
Dim RechnungsNr As Integer = -1
If IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RENR").Value) AndAlso IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RENR").Value) AndAlso IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RENR").Value) Then
RechnungsNr = MyDatagridview1.SelectedRows(0).Cells("RENR").Value
End If
'Dim SQLAUTOMAIL_RECHNUNGSDATuM = ""
'If cbxAUTOMail.Checked Then
' SQLAUTOMAIL_RECHNUNGSDATuM = "AND Rechnungsausgang.Status IN (2) AND CONVERT(DATE, Rechnungsausgang.Rechnungsdatum, 104) = '" & txtRechnungsdatum._value & "'"
'Else
' SQLAUTOMAIL_RECHNUNGSDATuM = " AND Rechnungsausgang.Status IN (0,2) AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & txtZeitraumBis._value & "'"
'End If
Select Case Sammelrechung
Case 6
SQLString = "select RK_ID, RechnungsNr, FilialenNr, AbfertigungsNr from Rechnungsausgang where RechnungsKundenNr = " & MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value & " AND cast(RechnungsDatum as Date) = '" & txtRechnungsdatum._value & "' AND Sammelrechnung = " & Sammelrechung & " AND ISNULL(Rechnungsausgang.Automailversand,0) = 1 AND Rechnungsausgang.Status IN (2)" & IIf(cboFirma._value > 0, " AND Firma_ID =" & cboFirma._value, "")
Case Else
SQLString = "select RK_ID, RechnungsNr, FilialenNr, AbfertigungsNr from Rechnungsausgang where RechnungsKundenNr = " & MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value & " AND cast(Abfertigungsdatum as Date) <= '" & txtRechnungsdatum._value & "' AND Sammelrechnung = " & Sammelrechung & " AND ISNULL(Rechnungsausgang.Automailversand,0) = 1 AND Rechnungsausgang.Status IN (2) " & IIf(RechnungsNr > 0, " AND Rechnungsausgang.RechnungsNr =" & RechnungsNr, "") & IIf(cboFirma._value > 0, " AND Firma_ID =" & cboFirma._value, "")
End Select
dtRE = (New SQL).loadDgvBySql(SQLString, "FMZOLL")
If dtRE.Rows.Count > 0 Then
Dim RK_ID As String = ""
If dtRE.Rows.Count = 1 Then
RK_ID = dtRE.Rows(0).Item("RK_ID")
If RK_ID <> "" AndAlso IsNumeric(RK_ID) Then
Dim f As New SDL.frmAbrechnungsMaskeEinzeln(RK_ID)
f.Show(Me)
End If
Else
ContextMenuStrip1.Items.Clear()
For Each r As DataRow In dtRE.Rows
Dim re As ToolStripMenuItem
Select Case Sammelrechung
Case 6
re = New ToolStripMenuItem() With {.Text = r.Item("FilialenNr") & " - " & r.Item("RechnungsNr"), .Name = r.Item("RK_ID"), .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
Case Else
re = New ToolStripMenuItem() With {.Text = r.Item("FilialenNr") & " - " & r.Item("AbfertigungsNr"), .Name = r.Item("RK_ID"), .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
End Select
ContextMenuStrip1.Items.Add(re)
AddHandler re.Click, AddressOf mnuItem_Clicked
Next
ContextMenuStrip1.Show(Cursor.Position)
End If
End If
End If
End If
End Sub
Private Sub mnuItem_Clicked(sender As Object, e As EventArgs)
ContextMenuStrip1.Hide()
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
If item IsNot Nothing Then
If item.Name <> "" AndAlso IsNumeric(item.Name) Then
Dim f As New SDL.frmAbrechnungsMaskeEinzeln(item.Name)
f.Show(Me)
End If
Else
MsgBox("Funktion nicht implementiert!")
End If
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
If IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) Then
cProgramFunctions.openKundenblatt(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value, Me.FindForm, True)
End If
End If
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
' If Not IsNumeric(getSelectionKdNr_Simple) Then MsgBox("Es muss eine eindeutige KundenNr ausgewählt werden!") : Exit Sub
If Not cAutomailversand.automRechnungsversand_durchführen Then Exit Sub
For Each r In MyDatagridview1.SelectedRows
Next
Dim fun As New cAutomailversand
Dim ShowInfo As String = ""
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, cboFirma._value, getAvisoIds(), getKundenNr(), cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked, ShowInfo)
If cbxMailoeffnen.Checked AndAlso Not ShowInfo.Contains("Empfänger") Then
ShowInfo = ""
End If
If ShowInfo <> "" Then
MsgBox(ShowInfo)
End If
initDGV()
End If
End Sub
Private Sub btnNurAbf_Click(sender As Object, e As EventArgs) Handles btnNurImport.Click, btnNurExport.Click
Dim where As String = ""
Select Case sender.Name
Case "btnNurImport" : where = "Typ = 'I'"
Case Else : where = "Typ = 'E'"
End Select
Dim dt = (New SQL).loadDgvBySql("SELECT Abfertigungsart FROM [Abfertigungsarten] where 1 = 1 AND " & where, "FMZOLL")
MyListBox1.ClearSelected()
If dt IsNot Nothing Then
For Each r In dt.Rows
For i = 0 To MyListBox1.Items.Count - 1
If DirectCast(MyListBox1.Items(i), VERAG_PROG_ALLGEMEIN.MyListItem).Value = r("Abfertigungsart") Then
MyListBox1.SetSelected(i, True)
End If
Next
Next
initDGV()
End If
End Sub
Private Sub btnAlle_Click(sender As Object, e As EventArgs)
For i = 0 To MyListBox1.Items.Count - 1
MyListBox1.SetSelected(i, True)
Next
initDGV()
End Sub
Private Sub btnKeine_Click(sender As Object, e As EventArgs) Handles btnKeine.Click
For i = 0 To MyListBox1.Items.Count - 1
MyListBox1.SetSelected(i, False)
Next
initDGV()
End Sub
End Class