Imports DocumentFormat.OpenXml.Drawing.Diagrams Imports Microsoft.Office.Interop Public Class frmAbrechnungsMaske Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim selChangedAllowed = True Dim loaded = False Private Sub frmAbrechnungsMaske_Load(sender As Object, e As EventArgs) Handles Me.Load 'Größe anpassen: Me.Height = Screen.FromRectangle(Me.Bounds).WorkingArea.Size.Height Me.Top = 0 initFilterPanel() cProgramFunctions.initDrucker(cboPrinter) txtAbfertDat.Text = Now.ToShortDateString 'CDate("01." & Now.ToString("MM.yyyy")).AddMonths(-1).ToShortDateString txtAbfertDatBis.Text = Now.ToShortDateString btnMonat.Text = MONAT.ToString("MMMM") btnJahr.Text = JAHR.Year cbx.Checked = False MyComboBox3.Items.Clear() MyComboBox3.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Alle", "")) MyComboBox3.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ER", "ER")) MyComboBox3.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("SR", "SR")) MyComboBox3.changeItem("") MyComboBox1.Items.Clear() MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("POST", "0")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FAX", "1")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("E-MAIL", "2")) MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("MAIL+KOPIE", "5")) MyComboBox1.changeItem("") cboSort.Items.Clear() cboSort.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Eingabezeitpunkt", "EZ")) cboSort.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Pos.Nr", "POS")) cboSort.changeItem("EZ") 'BERECHTIGUNG 90 = FAKTURIERUNG!!! Dim FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_VERAGIMEX", "SDL") Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGIMEX", "SDL") Then FirmaTmp = "VERAGIMEX" End If 'If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then 'FirmaTmp = "AMBAR" 'End If MyComboBox2.Items.Clear() Select Case FirmaTmp Case "VERAG" If VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "MDM" Then Dim whereFirma = " AND FIRMENGRUPPE In ('VERAG360')" If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGAG_DE", "SDL") Then whereFirma = " AND FIRMENGRUPPE In ('VERAG360','VERAGAG_DE') " End If cboFirma.fillWithSQL("Select [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE 1=1 " & whereFirma, False, "FMZOLL") cboFirma.changeItem("1") MyComboBox2.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) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("*BAUBÖCK", "BAUBOECK")) Else Dim whereFirma = " AND FIRMENGRUPPE IN ('VERAG','VERAGUNISPED','FRONTOFFICE','ATILLA') " If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGAG_DE", "SDL") Then whereFirma = " AND FIRMENGRUPPE In ('VERAG','VERAGUNISPED','FRONTOFFICE','ATILLA','VERAGAG_DE') " End If cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE 1=1 " & whereFirma, False, "FMZOLL") cboFirma.changeItem("1") MyComboBox2.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) End If Case "IMEX" cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE FIRMENGRUPPE IN ('IMEX') ", False, "FMZOLL") cboFirma.changeItem("20") MyComboBox2.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 FIRMENGRUPPE IN ('UNISPED') ", False, "FMZOLL") cboFirma.changeItem("21") MyComboBox2.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 "AMBAR" cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE FIRMENGRUPPE IN ('AMBAR') ", False, "FMZOLL") cboFirma.changeItem("24") MyComboBox2.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) Case "VERAGIMEX" Dim whereFirma = " AND FIRMENGRUPPE IN ('VERAG','IMEX','ATILLA','VERAGUNISPED','FRONTOFFICE') " If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGAG_DE", "SDL") Then whereFirma = " AND FIRMENGRUPPE In ('VERAG','IMEX','VERAGUNISPED','FRONTOFFICE','ATILLA','VERAGAG_DE') " End If cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE 1=1 " & whereFirma, False, "FMZOLL") Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case "VERAG" : cboFirma.changeItem("1") Case "IMEX" : cboFirma.changeItem("20") End Select MyComboBox2.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 (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) MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("*BAUBÖCK", "BAUBOECK")) End Select ' MyComboBox2.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRID) 'Benutzerwechsel 'If MyComboBox2.Items.Count > 0 Then MyComboBox2.SelectedIndex = 0 MyComboBox2.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) If MyComboBox2._value = "" Then MsgBox("Keine Benutzerberechtigung gefunden!") : Exit Sub If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_AlleBenutzer", Me) Then MyComboBox2.Enabled = False End If End Sub Private Sub frmAbrechnungsMaske_Shown(sender As Object, e As EventArgs) Handles Me.Shown newRechnung() loaded = True initDGV() End Sub Sub newRechnung() dgvRechnungen.ClearSelection() UsrCntlFaktAbrechnung1.newRECHNUNG() End Sub Sub initFilterPanel() cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma]", True, "FMZOLL") End Sub Function getDGV() As VERAG_PROG_ALLGEMEIN.MyDatagridview Return dgvRechnungen 'If tbcntr.SelectedTab Is TabPage1 Then ' Return MyDatagridview1 'Else ' Return MyDatagridview2 'End If End Function Sub initDGV() If Not loaded Then Exit Sub Dim dgv As VERAG_PROG_ALLGEMEIN.MyDatagridview = getDGV() With dgv Dim sqlstr = "" If cbxGutschriftenAnVerag.Checked AndAlso cboFirma._value <> "" AndAlso cboFirma._value = "24" Then sqlstr &= " SELECT R1.FilialenNr, R1.AbfertigungsNr, cast(R1.FilialenNr as varchar) + ' ' + cast(R1.AbfertigungsNr as varchar) as PosNr, R1.UnterNr, Firma_ID,R1.Sammelrechnung as Art, [RechnungsName 1] as Rechnungsempfänger, (isnull(SteuerpflichtigerGesamtbetrag,0) + isnull(SteuerfreierGesamtbetrag,0)) as Betrag, RK_ID,RechnungsLandKz,RechnungsKundenNr FROM Rechnungsausgang as R1 INNER JOIN Adressen ON AdressenNr=R1.RechnungsKundenNr inner Join Speditionsbuch on Speditionsbuch.FilialenNr = R1.FilialenNr And Speditionsbuch.AbfertigungsNr = R1.AbfertigungsNr and Speditionsbuch.UnterNr = R1.SpeditionsbuchUnterNr " sqlstr &= " WHERE 1=1 AND R1.Firma_ID=24 " sqlstr &= getRGWhere(MyComboBox3._value) sqlstr &= " and (SELECT COUNT(*) FROM Rechnungsausgang as R2 where" sqlstr &= " R1.FilialenNr=R2.FilialenNr and R1.AbfertigungsNr=R2.AbfertigungsNr and R1.SpeditionsbuchUnterNr=R2.SpeditionsbuchUnterNr AND (RechnungsKundenNr=3013401 OR RechnungsKundenNr = 3017683) and R2.[BelegartenNr]=71)=0" sqlstr &= " and Speditionsbuch.Abfertigungsart IN (1)" sqlstr &= " ORDER BY FilialenNr, AbfertigungsNr, UnterNr" Else ' sqlstr &= " SELECT FilialenNr, AbfertigungsNr, UnterNr, Firma_ID, Status, Sammelrechnung, Sachbearbeiter, SteuerpflichtigerGesamtbetrag, SteuerfreierGesamtbetrag, RechnungsNr, RechnungsDatum, DruckDatumZeit, Buchungsjahr, RK_ID" sqlstr &= " SELECT FilialenNr, AbfertigungsNr, cast(FilialenNr as varchar) + ' ' + cast(AbfertigungsNr as varchar) as PosNr, UnterNr, Firma_ID,Rechnungsausgang.Sammelrechnung as Art, [RechnungsName 1] as Rechnungsempfänger, (isnull(SteuerpflichtigerGesamtbetrag,0) + isnull(SteuerfreierGesamtbetrag,0)) as Betrag, RK_ID,RechnungsLandKz,RechnungsKundenNr" sqlstr &= ",(CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' WHEN Rechnungsdruck=5 THEN 'MAIL+KOPIE' ELSE '-' END) as Rechnungsdruck " sqlstr &= " FROM Rechnungsausgang INNER JOIN Adressen ON AdressenNr=Rechnungsausgang.RechnungsKundenNr" sqlstr &= " WHERE 1=1 " sqlstr &= getRGWhere(MyComboBox3._value) ' sqlstr &= " AND (SteuerpflichtigerGesamtbetrag<>0 OR SteuerfreierGesamtbetrag<>0)" sqlstr &= " ORDER BY FilialenNr, AbfertigungsNr, UnterNr " End If .SET_SQL(sqlstr, "FMZOLL") .LOAD() If .ColumnCount > 0 Then .Columns("RK_ID").Visible = False .Columns("FilialenNr").Visible = False .Columns("AbfertigungsNr").Visible = False .Columns("Firma_ID").Visible = False .Columns("RechnungsLandKz").Visible = False .Columns("RechnungsKundenNr").Visible = False .Columns("PosNr").HeaderText = "Pos-Nr." .Columns("UnterNr").Width = 35 .Columns("Art").Width = 30 .Columns("Betrag").Width = 100 .Columns("Rechnungsempfänger").MinimumWidth = 150 .Columns("Rechnungsempfänger").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill If Not cbxGutschriftenAnVerag.Checked Then .Columns("Rechnungsdruck").Width = 60 .Columns("Rechnungsdruck").HeaderText = "Rg.Art" .Columns("Rechnungsdruck").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter End If .Columns("Betrag").DefaultCellStyle.Format = "C2" End If End With End Sub Function getRGWhere(filterSR) Dim sqlstr = "" Dim srchSB = "" ' "NÖBAUER ANJA" 'VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME srchSB = MyComboBox2._value If cbxGutschriftenAnVerag.Checked AndAlso cboFirma._value <> "" AndAlso cboFirma._value = 24 Then Return sqlstr Select Case filterSR Case "ER" : sqlstr &= " And Rechnungsausgang.Sammelrechnung IN (0) " Case "SR" : sqlstr &= " And Rechnungsausgang.Sammelrechnung NOT IN (0,6) " Case Else : sqlstr &= " And Rechnungsausgang.Sammelrechnung NOT IN (6) " End Select If cbx.Checked Then 'sqlstr &= " AND Status = 0 " sqlstr &= " AND DruckDatumZeit BETWEEN '" & txtAbfertDat._value & " 00:00:00' AND '" & txtAbfertDatBis._value & " 23:59:59'" If MyTextBox2.Text <> "" Then If MyTextBox3.Text <> "" Then sqlstr &= " AND RechnungsNr BETWEEN '" & MyTextBox2.Text.Replace("*", "%") & "' AND '" & MyTextBox3.Text.Replace("*", "%") & "'" Else sqlstr &= " AND RechnungsNr LIKE '" & MyTextBox2.Text.Replace("*", "%") & "'" End If End If Else sqlstr &= " And (Status = 0 or DruckDatumZeit is null) " End If If MyComboBox1._value <> "" Then sqlstr &= " And Rechnungsdruck='" & MyComboBox1._value & "' " End If If srchSB <> "" Then sqlstr &= " And Rechnungsausgang.Sachbearbeiter='" & srchSB & "' " If cboFirma._value <> "" Then sqlstr &= " AND Rechnungsausgang.Firma_ID=" & cboFirma._value & " " ' sqlstr &= " AND (SteuerpflichtigerGesamtbetrag<>0 OR SteuerfreierGesamtbetrag<>0)" Return sqlstr End Function Private Sub MyComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFirma.SelectedIndexChanged, MyComboBox2.SelectedIndexChanged, MyComboBox3.SelectedIndexChanged, MyComboBox1.SelectedIndexChanged If cboFirma._value = "24" Then cbxGutschriftenAnVerag.Visible = True Else cbxGutschriftenAnVerag.Visible = False cbxGutschriftenAnVerag.Checked = False End If initDGV() End Sub Function checkSrchValues() As Boolean 'If MyComboBox2._value = "" Then Return False If cboFirma._value = "" Then Return False Return True End Function Private Sub MyDatagridview1_SelectionChanged(sender As Object, e As EventArgs) Handles dgvRechnungen.SelectionChanged If Not selChangedAllowed Then Exit Sub If sender.SelectedRows.Count > 0 Then If UsrCntlFaktAbrechnung1.SAVED Then UsrCntlFaktAbrechnung1.initRECHNUNG(sender.SelectedRows(0).Cells("RK_ID").Value) Exit Sub End If End If newRechnung() End Sub Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click newRechnung() End Sub Private Sub UsrCntlFaktAbrechnung1_EVENT_SAVED() Handles UsrCntlFaktAbrechnung1.EVENT_SAVED selChangedAllowed = False getDGV().RELOAD() selChangedAllowed = True End Sub Private Sub UsrCntlFaktAbrechnung1_EVENT_DELETED() Handles UsrCntlFaktAbrechnung1.EVENT_DELETED selChangedAllowed = False getDGV().RELOAD() selChangedAllowed = True newRechnung() End Sub Private Sub UsrCntlFaktAbrechnung1_SOMETHING_CHANGED(rk_id) Handles UsrCntlFaktAbrechnung1.SOMETHING_CHANGED selChangedAllowed = False getDGV().RELOAD() dgvRechnungen.ClearSelection() selChangedAllowed = True If rk_id > 0 Then For Each r As DataGridViewRow In dgvRechnungen.Rows If r.Cells("RK_ID").Value = rk_id Then r.Selected = True Exit Sub End If Next End If End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If checkSrchValues() Then getDGV().RELOAD() Dim orderBy = "" Select Case cboSort._value Case "EZ" : orderBy = " ORDER BY [ReErfZeitstempel] ASC" Case Else : orderBy = " ORDER BY /*[BelegartenKz] DESC,*/ FilialenNr, AbfertigungsNr, [RK_ID]" End Select 'MsgBox("SELECT RK_ID,Rechnungsdruck as Rechnungsdruck FROM Rechnungsausgang INNER JOIN Adressen ON AdressenNr=RechnungsKundenNr WHERE Status=0 " & getRGWhere("ER") & orderBy) 'Exit Sub Dim PARAM_printZollbeleg = VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("FAKTURIERUNG_PRINT_Zollbeleg") Dim dt = SQL.loadDgvBySql("SELECT RK_ID,Rechnungsdruck as Rechnungsdruck FROM Rechnungsausgang INNER JOIN Adressen ON AdressenNr=RechnungsKundenNr WHERE Status=0 " & getRGWhere("ER") & orderBy, "FMZOLL") If dt IsNot Nothing Then If vbYes = MsgBox("Es werden " & dt.Rows.Count & " Rechnungen gedruckt." & vbNewLine & "Möchten Sie fortfahren?", vbYesNoCancel) Then Dim RechnungsDatum As Date = Now If cFakturierung.getRgDatInput("Es werden " & dt.Rows.Count & " Rechnungen gedruckt." & vbNewLine & "Möchten Sie fortfahren?" & vbNewLine, [RechnungsDatum]) Then 'Now.ToShortDateString For Each r In dt.Rows If r("Rechnungsdruck") = "2" Or r("Rechnungsdruck") = "5" Then cFakturierung.doRechnungsDruck_MAIL(r("RK_ID"), RechnungsDatum,, r("Rechnungsdruck"),, cboPrinter.Text,, PARAM_printZollbeleg) Else cFakturierung.doRechnungsDruck(r("RK_ID"), RechnungsDatum,,,, cboPrinter.Text,, PARAM_printZollbeleg) End If Next initDGV() End If End If End If End If End Sub Function print_Anlagen() As Boolean Dim erg = True Dim dt = SQL.loadDgvBySql("SELECT RK_ID FROM Rechnungsausgang WHERE Status=0 " & getRGWhere("SR") & " ORDER BY [BelegartenKz] DESC, FilialenNr, AbfertigungsNr, [RK_ID]", "FMZOLL") If dt IsNot Nothing Then If vbYes = MsgBox("Es werden " & dt.Rows.Count & " Rechnungen gedruckt." & vbNewLine & "Möchten Sie fortfahren?", vbYesNoCancel) Then For Each r In dt.Rows If Not cFakturierung.doRechnungsDruck(r("RK_ID"),,,, cboPrinter.Text) Then erg = False Next End If End If Return erg ' strLinkCriteria = "[Status]=1 And [DruckDatumZeit]=" & Format$(varDatumZeit, "\#mm\/dd\/yyyy hh\:nn\:ss AM/PM\#") & " And [Rechnungsdruck]=0" '970 DoCmd.OpenReport "Rechnungen drucken", acNormal, , strLinkCriteria '980 bytRechnungsdrucksteuerung = 0 '990 strLinkCriteria = "[Status]=1 And [DruckDatumZeit]=" & Format$(varDatumZeit, "\#mm\/dd\/yyyy hh\:nn\:ss AM/PM\#") & " And [Rechnungsdruck]<>0" '1000 DoCmd.OpenReport "Rechnungen drucken A4", acNormal, , strLinkCriteria '1010 strLinkCriteria = "[Status]=1 And [DruckDatumZeit]=" & Format$(varDatumZeit, "\#mm\/dd\/yyyy hh\:nn\:ss AM/PM\#") '1020 DoCmd.OpenReport "Tages-Umsatz-Journal drucken (Einzelrechnungen)", acNormal, , strLinkCriteria '1030 strLinkCriteria = "[Status]=2 And [DruckDatumZeit]=" & Format$(varDatumZeit, "\#mm\/dd\/yyyy hh\:nn\:ss AM/PM\#") '1040 DoCmd.OpenReport "Anlage zur Sammelrechnung drucken", acNormal, , strLinkCriteria End Function 'Private Sub Button5_Click2(sender As Object, e As EventArgs) ' If checkSrchValues() Then ' If vbYes = MsgBox("Es werden " & MyDatagridview1.SelectedRows.Count & " Rechnungen gedruckt." & vbNewLine & "Möchten Sie fortfahren?", vbYesNoCancel) Then ' For Each r As DataGridViewRow In MyDatagridview1.SelectedRows ' cFakturierung.doRechnungsDruck(r.Cells("RK_ID").Value,,,, cboPrinter.Text) ' Next ' End If ' End If 'End Sub Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click 'If checkSrchValues() Then ' print_Anlagen() ' initDGV() 'End If If checkSrchValues() Then Dim f As New frmFaktSammelRgDrucken(cboFirma._value) f.ShowDialog(Me) getDGV().RELOAD() If dgvRechnungen.Rows.Count = 0 Then newRechnung() End If End Sub Private Sub tbcntr_SelectedIndexChanged(sender As Object, e As EventArgs) Handles tbcntr.SelectedIndexChanged initDGV() End Sub Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click If dgvRechnungen.SelectedRows.Count > 0 Then ' getDGV().RELOAD() -> hebt Selektierung auf If vbYes = MsgBox("Es werden " & dgvRechnungen.SelectedRows.Count & " Rechnungen in ein PDF gewandelt." & vbNewLine & "Möchten Sie fortfahren?", vbYesNoCancel) Then 'Rechnungsdatum festlegen: Dim RechnungsDatumTMP As Object = Nothing If Not cbx.Checked Then 'GedruckteRechnugnen RechnungsDatumTMP = Now cFakturierung.getRgDatInput("", RechnungsDatumTMP) End If Dim list As New List(Of String) ' Sammlung PDFs For Each r As DataGridViewRow In dgvRechnungen.SelectedRows Dim path = "" cFakturierung.doRechnungsDruck(r.Cells("RK_ID").Value, RechnungsDatumTMP,, 4, path, cboPrinter.Text, cbxOriginalDrucken.Checked) If path <> "" Then list.Add(path) Next If list.Count = 1 Then Process.Start(list(0)) Else Dim dest_path = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("VERAG_Formular.pdf", ".pdf", False, False) If Not FormularManagerNEU.MergePdfFiles(list, dest_path) Then dest_path = "" : MsgBox("Fehler PDF") Else Process.Start(dest_path) End If End If 'merge PDFs path initDGV() End If End If End Sub Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click, Button11.Click ' getDGV().RELOAD() -> hebt Selektierung auf For Each r As DataGridViewRow In dgvRechnungen.SelectedRows If r.Cells("Art").Value <> "0" Then MsgBox("Nur bei Einzelrechnung") Exit Sub End If Next If dgvRechnungen.SelectedRows.Count = 1 Then Try Dim RECHNUNG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(dgvRechnungen.SelectedRows(0).Cells("RK_ID").Value) Dim SPEDBUCH As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(RECHNUNG.FilialenNr, RECHNUNG.AbfertigungsNr, RECHNUNG.SpeditionsbuchUnterNr) If SPEDBUCH IsNot Nothing Then 'RG-Druck - Mail (+Kopie) Dim RG_DRUCK = 2 If sender Is Button11 Then RG_DRUCK = 5 End If Dim f As New frmFaktEmail(RECHNUNG, SPEDBUCH, True, RG_DRUCK) f.ShowDialog(Me) End If 'merge PDFs path initDGV() Catch ex As Exception MsgBox("Fehler beim Öffnen des Mail-Fensters!" & vbNewLine & vbNewLine & ex.StackTrace & ex.Message) End Try ElseIf dgvRechnungen.SelectedRows.Count > 1 Then If vbYes = MsgBox("Es werden " & dgvRechnungen.SelectedRows.Count & " Rechnungen ans Mail angefügt." & vbNewLine & "Möchten Sie fortfahren?", vbYesNoCancel) Then 'Rechnungsdatum festlegen: Dim RechnungsDatumTMP As Object = Nothing If Not cbx.Checked Then 'GedruckteRechnugnen RechnungsDatumTMP = Now cFakturierung.getRgDatInput("", RechnungsDatumTMP) End If Dim list As New List(Of String) ' Sammlung PDFs For Each r As DataGridViewRow In dgvRechnungen.SelectedRows Dim path = "" cFakturierung.doRechnungsDruck(r.Cells("RK_ID").Value, RechnungsDatumTMP,, 4, path, cboPrinter.Text) If path <> "" Then list.Add(path) Next Try Dim outl As New Outlook.Application Dim Mail As Microsoft.Office.Interop.Outlook.MailItem Mail = outl.CreateItem(0) Dim RechnungsLandKz = getSelection("RechnungsLandKz") Select Case RechnungsLandKz Case "TR" Mail.Subject = "Rechnungen " & cboFirma.Text Mail.HTMLBody = "Sayin Bayanlar ve Baylar,

ekte baslikta yazan faturayi bulabilirsinz." Mail.HTMLBody &= "


Saygilarimizla

" & cFakturierung.getSignature(RechnungsLandKz, cboFirma._value) Case "A", "AT", "D", "DE", "CH" Mail.Subject = "Rechnungen " & cboFirma.Text Mail.HTMLBody = "Sehr geehrte Damen und Herren,

im Anhang senden wir Ihnen unsere Rechnungen." Mail.HTMLBody &= "


Mit freundlichen Grüßen

" & cFakturierung.getSignature(RechnungsLandKz, cboFirma._value) Case Else Mail.Subject = "Invoice " & cboFirma.Text Mail.HTMLBody = "Sehr geehrte Damen und Herren,

attached we send you the invoices." Mail.HTMLBody &= "


Best regards

" & cFakturierung.getSignature(RechnungsLandKz, cboFirma._value) End Select Mail.HTMLBody = "
" & Mail.HTMLBody & "
" Dim KdNrTmp = getSelectionKdNr() Dim emai_receipt As String = "" If getSelection("FilialenNr") = "4801" Or getSelection("FilialenNr") = "4802" Then emai_receipt = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(If(IsNumeric(KdNrTmp), KdNrTmp, -1), "Rechnung an (ATILLA)") Mail.To = IIf(emai_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(If(IsNumeric(KdNrTmp), KdNrTmp, -1), "Rechnung an"), emai_receipt) Mail.Display() If list.Count > 0 Then For Each l In list Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , "Invoice.pdf") Next End If Mail.Display() Catch ex As Exception MsgBox("Fehler beim Öffnen des Mail-Programmes. PDF wird geladen!" & vbNewLine & vbNewLine & ex.StackTrace & ex.Message) If list.Count = 1 Then Process.Start(list(0)) Else Dim dest_path = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Invoice.pdf", ".pdf", False, False) If Not FormularManagerNEU.MergePdfFiles(list, dest_path) Then dest_path = "" : MsgBox("Fehler PDF") Else Process.Start(dest_path) End If End If End Try 'merge PDFs path initDGV() End If End If End Sub Function getSelectionKdNr() As String getSelectionKdNr = "" If dgvRechnungen.SelectedRows.Count > 0 Then If dgvRechnungen.SelectedRows.Count = dgvRechnungen.Rows.Count Then Return "" ' Alle ausgewählt For Each r As DataGridViewRow In dgvRechnungen.SelectedRows getSelectionKdNr &= r.Cells("RechnungsKundenNr").Value & "," Next getSelectionKdNr = getSelectionKdNr.Substring(0, getSelectionKdNr.Length - 1) End If End Function Function getSelection(value) As String getSelection = "" If dgvRechnungen.SelectedRows.Count > 0 Then getSelection = dgvRechnungen.SelectedRows(0).Cells(value).Value For Each r As DataGridViewRow In dgvRechnungen.SelectedRows If getSelection <> r.Cells(value).Value Then Return "" Next End If End Function Private Sub Button7_Click2(sender As Object, e As EventArgs) Handles Button7.Click If dgvRechnungen.SelectedRows.Count > 0 Then ' getDGV().RELOAD() -> hebt Selektierung auf If vbYes = MsgBox("Es werden " & dgvRechnungen.SelectedRows.Count & " Rechnungen gedruckt." & vbNewLine & "Möchten Sie fortfahren?", vbYesNoCancel) Then 'Rechnungsdatum festlegen: Dim RechnungsDatumTMP As Object = Nothing If Not cbx.Checked Then 'GedruckteRechnugnen RechnungsDatumTMP = Now cFakturierung.getRgDatInput("", RechnungsDatumTMP) End If Dim PARAM_printZollbeleg = VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("FAKTURIERUNG_PRINT_Zollbeleg") For Each r As DataGridViewRow In dgvRechnungen.SelectedRows cFakturierung.doRechnungsDruck(r.Cells("RK_ID").Value, RechnungsDatumTMP,, 0, , cboPrinter.Text, cbxOriginalDrucken.Checked, , PARAM_printZollbeleg) Next 'merge PDFs path initDGV() End If End If End Sub Private Sub cbx_CheckedChanged(sender As Object, e As EventArgs) Handles cbx.CheckedChanged cbxOriginalDrucken.Checked = False If cbx.Checked Then Panel1.Height = 170 cbxOriginalDrucken.Visible = True Else Panel1.Height = 80 cbxOriginalDrucken.Visible = False End If MyPanel1.Visible = cbx.Checked initDGV() End Sub Dim MONAT As Date = CDate("01." & Now.Month & "." & Now.Year) '.AddMonths(-1) Dim srcTAG As Date = CDate(Now.ToShortDateString) Dim JAHR As Date = CDate("01.01." & Now.Year) Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged txtAbfertDat._value = CDate(sender.value).ToShortDateString End Sub Private Sub DateTimePicker2_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker2.ValueChanged txtAbfertDatBis._value = CDate(sender.value).ToShortDateString End Sub Sub initBtns(MonatJahr) btnMonat.Text = MONAT.ToString("MMMM") btnJahr.Text = JAHR.Year Select Case MonatJahr Case "Monat" DateTimePicker1.Value = MONAT DateTimePicker2.Value = MONAT.AddMonths(1).AddDays(-1) Case "Jahr" ' If cbxGeschaftsjahr.Checked Then 'DateTimePicker1.Value = JAHR.AddMonths(1) ' DateTimePicker2.Value = JAHR.AddYears(1).AddMonths(1).AddDays(-1) ' Else DateTimePicker1.Value = JAHR DateTimePicker2.Value = JAHR.AddYears(1).AddDays(-1) 'End If Case "Tag" ' If cbxGeschaftsjahr.Checked Then 'DateTimePicker1.Value = JAHR.AddMonths(1) ' DateTimePicker2.Value = JAHR.AddYears(1).AddMonths(1).AddDays(-1) ' Else DateTimePicker1.Value = srcTAG DateTimePicker2.Value = srcTAG If srcTAG = Now.ToShortDateString Then Button5.Text = "Heute" ElseIf srcTAG = Now.AddDays(-1).ToShortDateString Then Button5.Text = "Gestern" ElseIf srcTAG = Now.AddDays(-2).ToShortDateString Then Button5.Text = "Vorgestern" Else Button5.Text = srcTAG.ToString("dd.MM") End If 'End If Case "" ' DateTimePicker1.Value = ("01." & Now.Month & "." & Now.Year) ' DateTimePicker2.Value = Now End Select initDGV() End Sub Private Sub btnMonat_Click(sender As Object, e As EventArgs) Handles btnMonat.Click initBtns("Monat") End Sub Private Sub btnJahr_Click(sender As Object, e As EventArgs) Handles btnJahr.Click initBtns("Jahr") End Sub Private Sub btnBisMonat_Click(sender As Object, e As EventArgs) Handles btnBisMonat.Click MONAT = MONAT.AddMonths(1) initBtns("Monat") End Sub Private Sub btnVonMonat_Click(sender As Object, e As EventArgs) Handles btnVonMonat.Click MONAT = MONAT.AddMonths(-1) initBtns("Monat") End Sub Private Sub btnBisJahr_Click(sender As Object, e As EventArgs) Handles btnBisJahr.Click JAHR = JAHR.AddYears(1) initBtns("Jahr") End Sub Private Sub btnVonJahr_Click(sender As Object, e As EventArgs) Handles btnVonJahr.Click JAHR = JAHR.AddYears(-1) initBtns("Jahr") End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click srcTAG = srcTAG.AddDays(-1) initBtns("Tag") End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click initBtns("Tag") End Sub Private Sub txtAbfertDat_Leave(sender As Object, e As EventArgs) Handles txtAbfertDat.Leave, txtAbfertDatBis.Leave initBtns("") End Sub Private Sub MyTextBox2_KeyDown(sender As Object, e As KeyEventArgs) Handles MyTextBox2.KeyDown, MyTextBox3.KeyDown If e.KeyCode = Keys.Return Then initBtns("") End If End Sub Private Sub MyTextBox3_Leave(sender As Object, e As EventArgs) Handles MyTextBox2.Leave, MyTextBox3.Leave initBtns("") End Sub Private Sub MyTextBox2_TextChanged(sender As Object, e As EventArgs) Handles MyTextBox2.TextChanged MyTextBox3.Enabled = (MyTextBox2.Text <> "") End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles btnWiederholeRgDruck.Click If Not ContextMenuStrip1.Items.ContainsKey("1") Then Dim print = New ToolStripMenuItem() With {.Text = "Drucken", .Name = "1", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} AddHandler print.Click, AddressOf mnuItem_Clicked ContextMenuStrip1.Items.Add(print) End If If Not ContextMenuStrip1.Items.ContainsKey("2") Then Dim mail = New ToolStripMenuItem() With {.Text = "E-Mail", .Name = "2", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} ContextMenuStrip1.Items.Add(mail) AddHandler mail.Click, AddressOf mnuItem_Clicked End If If Not ContextMenuStrip1.Items.ContainsKey("3") Then Dim pdf = New ToolStripMenuItem() With {.Text = "PDF", .Name = "3", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} AddHandler pdf.Click, AddressOf mnuItem_Clicked ContextMenuStrip1.Items.Add(pdf) End If ContextMenuStrip1.Show(Cursor.Position) End Sub Private Sub mnuItem_Clicked(sender As Object, e As EventArgs) ContextMenuStrip1.Hide() Dim id = 3 'default per PDF Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem) If item IsNot Nothing Then id = item.Name Dim SR_RechnungsNr = InputBox("SR-Nummer eingeben: ", "Rechnungsdruck - " & IIf(item.Text IsNot Nothing, item.Text, "PDF")) If IsNumeric(SR_RechnungsNr) Then Dim RK_ID = SQL.getValueTxtBySql("SELECT TOP 1 RK_ID FROM Rechnungsausgang WHERE RechnungsNr='" & SR_RechnungsNr & "' AND Firma_ID='" & cboFirma._value & "' ORDER BY DruckDatumZeit DESC", "FMZOLL") If IsNumeric(RK_ID) Then Dim RG_TMP As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID) If RG_TMP IsNot Nothing Then 'id mitübergeben (1_> drucken, 2 Email, 3 PDF) cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", False, , id,, True) End If End If End If End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Dim f As New frmFaktAufschubSuche(False) f.Show(Me) End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click srcTAG = srcTAG.AddDays(1) initBtns("Tag") End Sub Private Sub cbxGutschriftenAnVerag_CheckedChanged(sender As Object, e As EventArgs) Handles cbxGutschriftenAnVerag.CheckedChanged Panel1.Height = 80 cbxOriginalDrucken.Visible = False MyPanel1.Visible = False initDGV() End Sub Private Sub PictureBox5_Click(sender As Object, e As EventArgs) Handles PictureBox5.Click Dim webAddress As String = "https://wiki.verag.ag/de/abteilungen/verrechnung/xxxx" Process.Start(webAddress) End Sub End Class