1035 lines
50 KiB
VB.net
1035 lines
50 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
|
|
max(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
|
|
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("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
|
|
|
|
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 cAutomailversand.automRechnungsversand_aktivieren(True) 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 txtRechnungsdatum.Text = "" Then MsgBox("Bitte Rechnungsdatum 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()
|
|
|
|
For Each r In MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Where(Function(x) x.Cells("RENR").Value Is Nothing OrElse IsDBNull(x.Cells("RENR").Value))
|
|
|
|
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
|
|
IM_EX = r.Cells("IM_EX").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("IM_EX").Value) 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!")
|
|
End If
|
|
|
|
|
|
Me.Enabled = True
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
Me.Enabled = False
|
|
Me.Cursor = Cursors.WaitCursor
|
|
|
|
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, getSelectionKdNr, 7, listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, , cbxTransFerry.Checked, cboFaktGrp._value, abfertigungsarten,,, True,,, True)
|
|
If Not RechnungsNrisSet Then
|
|
MsgBox("Fehler bei RechnungsNr-Erzeugung!")
|
|
End If
|
|
|
|
Me.Enabled = True
|
|
Me.Cursor = Cursors.Default
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
setMailversand_ALL(True, Firma, Sammelrechung)
|
|
Me.Enabled = True
|
|
Me.Cursor = Cursors.Default
|
|
|
|
cbxAUTOMail.Checked = Not cbxAUTOMail.Checked
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
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, Firma, 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 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(Firma > 0, " AND Firma_ID =" & Firma, "")
|
|
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(Firma > 0, " AND Firma_ID =" & Firma, "")
|
|
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 cAutomailversand.automRechnungsversand_durchführen Then Exit Sub
|
|
|
|
For Each r In MyDatagridview1.SelectedRows
|
|
Dim fun As New cAutomailversand
|
|
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked)
|
|
Next
|
|
|
|
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 |