776 lines
36 KiB
VB.net
776 lines
36 KiB
VB.net
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
|
|
|
|
MyComboBox2.Items.Clear()
|
|
|
|
FirmaTmp = "AMBAR"
|
|
|
|
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) Or mit_id = '678' 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 = ""
|
|
' 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 "
|
|
|
|
.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
|
|
|
|
.Columns("Rechnungsdruck").Width = 60
|
|
.Columns("Rechnungsdruck").HeaderText = "Rg.Art"
|
|
.Columns("Rechnungsdruck").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
|
|
|
|
.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
|
|
|
|
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 cbxGutschriftenAnVerag.Checked AndAlso cboFirma._value <> "" Then
|
|
sqlstr &= " AND (SELECT count(*) FROM Speditionsbuch WHERE Speditionsbuch.FilialenNr = Rechnungsausgang.FilialenNr AND Speditionsbuch.AbfertigungsNr = Rechnungsausgang.AbfertigungsNr AND Speditionsbuch.Abfertigungsart = 1 AND Rechnungsausgang.RechnungsKundenNr = '3013401') = 0 AND Rechnungsausgang.Firma_ID=" & cboFirma._value
|
|
Else
|
|
|
|
|
|
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 & " "
|
|
End If
|
|
|
|
|
|
' 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,<br><br>ekte baslikta yazan faturayi bulabilirsinz."
|
|
Mail.HTMLBody &= "<br><br><br>Saygilarimizla<br><br>" & cFakturierung.getSignature(RechnungsLandKz, cboFirma._value)
|
|
Case "A", "AT", "D", "DE", "CH"
|
|
Mail.Subject = "Rechnungen " & cboFirma.Text
|
|
Mail.HTMLBody = "Sehr geehrte Damen und Herren,<br><br>im Anhang senden wir Ihnen unsere Rechnungen."
|
|
Mail.HTMLBody &= "<br><br><br>Mit freundlichen Grüßen<br><br>" & cFakturierung.getSignature(RechnungsLandKz, cboFirma._value)
|
|
Case Else
|
|
Mail.Subject = "Invoice " & cboFirma.Text
|
|
Mail.HTMLBody = "Sehr geehrte Damen und Herren,<br><br>attached we send you the invoices."
|
|
Mail.HTMLBody &= "<br><br><br>Best regards<br><br>" & cFakturierung.getSignature(RechnungsLandKz, cboFirma._value)
|
|
End Select
|
|
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & Mail.HTMLBody & "</div>"
|
|
Dim KdNrTmp = getSelectionKdNr()
|
|
Mail.To = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(If(IsNumeric(KdNrTmp), KdNrTmp, -1), "Rechnung an")
|
|
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
|
|
End Class |