Files
SDL/SDL/mdm/usrcntlFremdrechnungen.vb
2025-02-24 13:35:46 +01:00

838 lines
36 KiB
VB.net

Imports System.Reflection
Imports Microsoft.Office.Interop
Public Class usrcntlFremdrechnungen
Dim KUNDE As New cKunden
Public kdNr As Integer
Public kdNr_filter As Boolean = True
Dim kundenSQL As New kundenSQL
Dim SQL As New SQL
Dim FUNC As New cProgramFunctions
Dim aktbtn As String = ""
Dim dgvInitWait As Boolean = False
Dim aktSDLNr As Integer = -1
Dim fullyPainted = False
Private Sub usrCntlDaten_Load(sender As Object, e As EventArgs) Handles Me.Load
dat_Sum_Von.Value = New Date(Today.Year, 1, 1)
dat_Sum_Bis.Value = New Date(Today.Year, 12, 31)
EnableDoubleBuffered(dgvLFRechnung)
init()
AddHandler cbxMax1000Eintrage.Click, Sub()
reClick()
End Sub
SplitContainer1.Panel2Collapsed = True
'setPDFImages()
End Sub
Public Shared Sub EnableDoubleBuffered(ByRef dgv As DataGridView)
Dim dgvType As Type = dgv.[GetType]()
Dim pi As PropertyInfo = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance Or BindingFlags.NonPublic)
pi.SetValue(dgv, True, Nothing)
End Sub
Sub init()
dgvInitWait = True
Dim kdNr_WHERE = ""
If kdNr_filter Then
kdNr_WHERE = ""
End If
If kdNr_filter Then
'Dim dt As DataTable = SQL.loadDgvBySql("SELECT KundenSDL.SDLNr FROM KundenSDL INNER JOIN [Speditionsdienstleistungen] as S ON s.SDLNr=KundenSDL.sdlnr WHERE s.SDLTypNr IN (1,2) AND KundenSDL.KundenNr = '" & kdNr & "' group by KundenSDL.SDLNr ")
'If dt Is Nothing Then
' MsgBox("Es wurden noch keine Leistungen freigeschaltet.")
'Else
btnSDL_IDS.Visible = True ' dt.Select("SDLNr=100").Count > 0
btnSDL_UTA.Visible = True 'dt.Select("SDLNr=212").Count > 0
btnSDL_Hugo.Visible = False ' dt.Select("SDLNr=213").Count > 0
btnSDL_PLOSE.Visible = True 'dt.Select("SDLNr=214").Count > 0
btnVERAGCardNew.Visible = True 'dt.Select("SDLNr=502").Count > 0
btnSDL_MautMSE.Visible = True 'dt.Select("SDLNr=208").Count > 0
btnSDL_FREJUS.Visible = False ' dt.Select("SDLNr=207").Count > 0
btnSDL_RMC.Visible = True
btnSDL_Alle.Visible = True
'End If
SplitContainer1.Panel2Collapsed = False
dgvSDL_SelectionChanged(dgvLFRechnung, New System.EventArgs)
End If
KUNDE = kundenSQL.getKundeByKdNr(kdNr)
SET_SDL(-1)
dgvInitWait = False
Panel3.Visible = True
End Sub
Dim txtchanged As Boolean = False
Sub initSearchOLD()
reClick()
Exit Sub
' MsgBox("SEARCH")
txtchanged = True
' initSDLBinding()
initAllg()
dgvLFRechnung.RELOAD()
txtchanged = False
dgvLFRechnung.ClearSelection()
If dgvLFRechnung.RowCount > 0 Then dgvLFRechnung.Rows(0).Cells(0).Selected = True
'dgvSDL_SelectionChanged(dgvSDL, New EventArgs)
End Sub
Function getSqlText(t) As String
Try
Return t.Replace("'", "")
Catch ex As Exception
Return ""
End Try
End Function
Sub initAllg()
If Not fullyPainted Then Exit Sub ' nur wenn die usrcntl komplett gelden wurde...
Try
With dgvLFRechnung
.RowTemplate.Height = 20
.AllowUserToOrderColumns = False
.AllowUserToResizeRows = False
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.ReadOnly = True
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
End With
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Sub initDGVWidth()
Dim DGVwidth = 0
Dim reduceWidth = 0
For Each c As DataGridViewColumn In dgvLFRechnung.Columns
DGVwidth += c.Width
Next
Dim DGVheight = 0
For Each r As DataGridViewRow In dgvLFRechnung.Rows
DGVheight += r.Height
Next
DGVheight += 50
'
If DGVheight > (SplitContainer1.Panel1.Height) Then
dgvLFRechnung.Height = DGVheight
reduceWidth = 25 ' Scrollbar
Else
dgvLFRechnung.Height = SplitContainer1.Panel1.Height - 25
End If
If DGVwidth > SplitContainer1.Panel1.Width Then
dgvLFRechnung.Width = DGVwidth - reduceWidth
Else
dgvLFRechnung.Width = SplitContainer1.Panel1.Width - reduceWidth
End If
End Sub
Sub ifContainsAndTrueRed(r As DataGridViewRow, t As String)
If r.Cells(t).Value IsNot DBNull.Value AndAlso r.Cells(t).Value = True Then
r.DefaultCellStyle.ForeColor = Color.Red
End If
End Sub
Sub initBtnClick(b As Button)
'Dim defaufl_color As Color = Color.FromArgb(240, 245, 255)
Dim defaufl_color As Color = Color.White
Dim defaufl_forecolor As Color = Color.Black
btnSDL_Alle.BackColor = defaufl_color : btnSDL_Alle.ForeColor = defaufl_forecolor : btnSDL_Alle.FlatAppearance.BorderSize = 0
btnSDL_IDS.BackColor = defaufl_color : btnSDL_IDS.ForeColor = defaufl_forecolor : btnSDL_IDS.FlatAppearance.BorderSize = 0
btnSDL_UTA.BackColor = defaufl_color : btnSDL_UTA.ForeColor = defaufl_forecolor : btnSDL_UTA.FlatAppearance.BorderSize = 0
btnSDL_FREJUS.BackColor = defaufl_color : btnSDL_FREJUS.ForeColor = defaufl_forecolor : btnSDL_FREJUS.FlatAppearance.BorderSize = 0
btnSDL_Hugo.BackColor = defaufl_color : btnSDL_Hugo.ForeColor = defaufl_forecolor : btnSDL_Hugo.FlatAppearance.BorderSize = 0
btnSDL_MautMSE.BackColor = defaufl_color : btnSDL_MautMSE.ForeColor = defaufl_forecolor : btnSDL_MautMSE.FlatAppearance.BorderSize = 0
btnSDL_PLOSE.BackColor = defaufl_color : btnSDL_PLOSE.ForeColor = defaufl_forecolor : btnSDL_PLOSE.FlatAppearance.BorderSize = 0
btnVERAGCardNew.BackColor = defaufl_color : btnVERAGCardNew.ForeColor = defaufl_forecolor : btnVERAGCardNew.FlatAppearance.BorderSize = 0
b.FlatAppearance.BorderSize = 1
b.BackColor = SystemColors.ButtonHighlight
b.ForeColor = Color.Black
aktbtn = b.Name
If dgvLFRechnung.Columns("SDLNr") IsNot Nothing Then
If aktbtn = "btnSDL_Alle" Then
dgvLFRechnung.Columns("SDLNr").Visible = True
Else
dgvLFRechnung.Columns("SDLNr").Visible = False
End If
End If
End Sub
Sub SET_SDL(SDLNrTmp)
aktSDLNr = SDLNrTmp
Dim anzahlTop = 1000
Dim SQL_STR = ""
Select Case SDLNrTmp
'IDS
Case 100 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer, CustomerCode as Kundennummer,[daId],[TransactionVolume] as Transaktionsmenge,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblIDSInvoicesNew WHERE [CustomerCode] in (SELECT distinct([CustomerCode]) FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE 1 = 1 " & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, "") & ") and [YearMonthDay] " & setSQLWhere(SDLNrTmp, "") & " order by [YearMonthDay] desc, [Invoicenumber]"
'UTA
Case 212 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" [Rechnungsdatum],[Rechnungsnummer_pro_Lieferland] as Rechnungsnummer,Kundennummer,SUM(Gesamtbetrag_Brutto_in_Darstellwährung) as Bruttobetrag,SUM(Gesamtbetrag_Netto_in_Darstellwährung) as Nettobetrag, SUM(Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) as MWSt,[daId],[Lieferland_ISO2] as Land, 'RE' as Art, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTAImportNew] inner join adressen on Kundennummer = UTAKundenNr where 1 = 1 " & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " AND [Rechnungsdatum] " & setSQLWhere(SDLNrTmp, "Land") & " group by [Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],[Lieferland_ISO2]"
SQL_STR &= " UNION ALL SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") & " [Datum], [RechnungsNr],[KundenNr],0,0,0,[daId],'',[DocumentTyp], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTADocuments] inner join adressen on KundenNr = UTAKundenNr where 1 = 1 " & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " and [Datum] " & setSQLWhere(SDLNrTmp, "") & " order by Rechnungsdatum desc"
'PLOSE
Case 214 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" [plInv_SupplierRechnungsDatum] as Rechnungsdatum, [plInv_SupplierRechnungsNr] as Rechnungsnummer,[plInv_PLOSEKundennummer] as Kundennummer,[plInv_Nettobetrag] as Nettobetrag,[plInv_MWSTBetrag] as MWST,[plInv_Bruttobetrag] as Bruttobetrag,[plInv_daId] as daId, [plInv_SupplierCountry] as Land, cast(case when [plInv_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblPLOSE_Inv_Data inner join Adressen on Adressen.PLOSEKundenNr = plInv_PLOSEKundennummer where 1 = 1 " & IIf(kdNr > 0, " AND Adressen.AdressenNr=" & kdNr, "") & " and [plInv_SupplierRechnungsDatum] " & setSQLWhere(SDLNrTmp, "plInv_SupplierCountry") & " Order by plInv_SupplierRechnungsDatum desc, [plInv_SupplierRechnungsNr]"
'MSE
Case 208 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" [invoice_date] as Rechnungsdatum, [invoice_id] as Rechnungsnummer/*,[invoice_nr]*/,[customer_number] as Kundennummer, daId, [total_amount_euro] as Brutto_EUR ,[total_vat_amount_euro] as MWST,[country] as Land, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblMSEInvoices where customer_number in (select customer_id from tblMSECustomers where 1 = 1 " & IIf(kdNr > 0, " AND [partner_customer_number]=" & kdNr, "") & " and [invoice_date] " & setSQLWhere(SDLNrTmp, "country") & " ) order by invoice_date desc, invoice_id"
'VERAG
Case 502 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer , tblTrdinInvoice.SteuerbetragLokal, 1 as daId, cast(1 as bit) as PDFvorhanden FROM tblTrdinInvoice WHERE 1 = 1 " & IIf(kdNr > 0, " AND tblTrdinInvoice.RechnungsKundenNr=" & kdNr, "") & " AND tblTrdinInvoice.FilialenNr = 4814 and tblTrdinInvoice.Rechnungsdatum " & setSQLWhere(SDLNrTmp, "'AT'") & " ORDER BY tblTrdinInvoice.Rechnungsdatum desc, tblTrdinInvoice.Rechnungsnummer"
'RMC
Case 999 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
"[rmc_reDatum] as Rechnungsdatum,[rmc_reNr] as Rechnungsnummer,rmc_kdNr as Kundennummer,[rmc_betragNetto] as Nettobetrag,[rmc_betragBrutto] as Bruttobetrag,[rmc_waehrung] as Währung ,[rmc_euroBrutto] as Brutto_EUR,[rmc_daId] as daId,[rmc_betragMWST] as MWST,rmc_landKZ as Land, cast(case when [rmc_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblRMCImport] inner join Adressen on Adressen.WölflKundenNr = rmc_kdNr where 1 = 1 " & IIf(kdNr > 0, " AND AdressenNr=" & kdNr, "") & " and [rmc_reDatum] " & setSQLWhere(SDLNrTmp, "rmc_landKZ") & " order by rmc_reDatum desc, rmc_reNr"
Case -1 : Dim anzahl As Integer = anzahlTop / 6 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") &
"
--IDS
'IDS' as Lieferant, [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer,CustomerCode as Kundennummer,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt,'' as Land, 'RE' as Art,[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblIDSInvoicesNew WHERE [CustomerCode] = (SELECT TOP 1 [CustomerCode] FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE 1 = 1 " & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, "") & " ORDER BY Zeitstempel DESC) and [YearMonthDay] " & setSQLWhere(SDLNrTmp, "") & " --order by [YearMonthDay], [Invoicenumber]
UNION ALL
--MSE
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'MSE' as Lieferant, [invoice_date] as Rechnungsdatum, cast([invoice_id] as nvarchar) as Rechnungsnummer,[customer_number] as Kundennummer, [total_amount_euro] as Bruttobetrag ,(total_amount_euro - [total_vat_amount_euro]) as Nettobetrag ,[total_vat_amount_euro] as MWST,[country] as Land,'RE' as Art,daId, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblMSEInvoices where customer_number = (select top 1 customer_id from tblMSECustomers where 1 = 1 " & IIf(kdNr > 0, " AND [partner_customer_number]=" & kdNr, "") & " and [invoice_date] " & setSQLWhere(SDLNrTmp, "country") & " ) --order by invoice_date, invoice_id
UNION ALL
--UTA
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'UTA' as Lieferant, [Rechnungsdatum],STR([Rechnungsnummer_pro_Lieferland]) as Rechnungsnummer,Kundennummer,SUM(Gesamtbetrag_Brutto_in_Darstellwährung) as Bruttobetrag,SUM(Gesamtbetrag_Netto_in_Darstellwährung) as Nettobetrag, SUM(Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) as MWSt,[Lieferland_ISO2] as Land, 'RE' as Art,[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTAImportNew] inner join adressen on Kundennummer = UTAKundenNr where 1 = 1 " & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " and [Rechnungsdatum] " & setSQLWhere(SDLNrTmp, "Lieferland_ISO2") & " group by [Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],[Lieferland_ISO2] UNION ALL SELECT 'UTA', [Datum], cast([RechnungsNr] as nvarchar) ,[KundenNr],0,0,0,'',[DocumentTyp],[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTADocuments] inner join adressen on KundenNr = UTAKundenNr where AdressenNr = " & kdNr & " AND Datum " & setSQLWhere(SDLNrTmp, "") & "
UNION ALL
--VERAG
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'VERAG' as Lieferant, tblTrdinInvoice.Rechnungsdatum, cast(tblTrdinInvoice.Rechnungsnummer as nvarchar) as Rechnungsnummer ,tblTrdinInvoice.KundenNrZentrale as Kundennummer, tblTrdinInvoice.SteuerpflichtigerBetragLokal + tblTrdinInvoice.SteuerfreierBetragLokal as Bruttobetrag ,tblTrdinInvoice.SteuerpflichtigerBetragLokal + tblTrdinInvoice.SteuerfreierBetragLokal - tblTrdinInvoice.SteuerbetragLokal as Nettobetrag ,tblTrdinInvoice.SteuerbetragLokal as MWST, 'AT' as Land, 'RE' as Art, 1 as daId, cast(1 as bit) PDFvorhanden FROM tblTrdinInvoice WHERE 1 = 1 " & IIf(kdNr > 0, " AND tblTrdinInvoice.RechnungsKundenNr=" & kdNr, "") & " and tblTrdinInvoice.Rechnungsdatum " & setSQLWhere(SDLNrTmp, "'AT'") & " AND tblTrdinInvoice.FilialenNr = 4814 -- ORDER BY tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer
UNION ALL
--PLOSE
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'PLOSE' as Lieferant, [plInv_SupplierRechnungsDatum] as Rechnungsdatum, cast([plInv_SupplierRechnungsNr] as nvarchar) as Rechnungsnummer,[plInv_PLOSEKundennummer] as Kundennummer,[plInv_Bruttobetrag] as Bruttobetrag,[plInv_Nettobetrag] as Nettobetrag,[plInv_MWSTBetrag] as MWST, [plInv_SupplierCountry] as Land, 'RE' as Art,[plInv_daId] as daId, cast(case when [plInv_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblPLOSE_Inv_Data inner join Adressen on Adressen.PLOSEKundenNr = plInv_PLOSEKundennummer where 1 = 1 " & IIf(kdNr > 0, " AND Adressen.AdressenNr=" & kdNr, "") & " and [plInv_SupplierRechnungsDatum] " & setSQLWhere(SDLNrTmp, "plInv_SupplierCountry") & "
UNION ALL
--RMC
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'RMC' as Lieferant, [rmc_reDatum] as Rechnungsdatum,cast([rmc_reNr] as nvarchar) as Rechnungsnummer,rmc_kdNr as Kundennummer ,[rmc_betragBrutto] as Bruttobetrag,[rmc_betragNetto] as Nettobetrag,[rmc_betragMWST] as MWST, rmc_landKZ as Land, 'RE' as Art, [rmc_daId] as daId, cast(case when [rmc_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblRMCImport] inner join Adressen on Adressen.WölflKundenNr = rmc_kdNr where 1 = 1 " & IIf(kdNr > 0, " AND AdressenNr=" & kdNr, "") & " and [rmc_reDatum] " & setSQLWhere(SDLNrTmp, "rmc_landKZ") & " --order by rmc_reDatum, rmc_reNr
order by Rechnungsdatum desc"
Case Else
Exit Sub
End Select
newBinding(SDLNrTmp, SQL_STR)
initBtnClick(getSDLNrButton(SDLNrTmp))
With dgvLFRechnung
Dim c As New DataGridViewImageColumn
c.Name = "PDF" : c.HeaderText = "PDF"
c.DefaultCellStyle.NullValue = Nothing
c.ImageLayout = DataGridViewImageCellLayout.Zoom
c.Width = 40
c.DefaultCellStyle.Padding = New Padding(2)
c.DefaultCellStyle.BackColor = Color.White
c.Image = My.Resources.pdf_gray
If Not .Columns.Contains("PDF") Then .Columns.Add(c)
If .Columns.Count > 0 Then
If .Columns.Contains("daId") Then
If .Columns("daId") IsNot Nothing Then .Columns("daId").Visible = False
End If
End If
End With
initAllg()
dgvLFRechnung.Width = 100
dgvLFRechnung.Height = 100
dgvLFRechnung.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
initDGVWidth() 'vor Filter, damit richtige Größe
setPDFImages()
End Sub
Private Function setSQLWhere(SDLNrTmp As Integer, land As String) As String
Dim SQLWhere = " between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "'"
If cbx.Checked AndAlso SDLNrTmp <> 100 AndAlso KUNDE IsNot Nothing Then
Select Case KUNDE.LandKz
Case "SRB", "BIH", "MK", "MNE", "TR"
If land <> "" Then SQLWhere &= " AND " & land & " not in('AT','CH', 'CZ', 'DE', 'EE', 'ES', 'IE', 'LT', 'LV', 'NRW', 'NO', 'OT', 'RS', 'UA', " & IIf(KUNDE.LandKz = "SRB", "'BG', 'HU', 'RO', 'SI', 'SK'", "") & IIf(KUNDE.LandKz = "BIH", "'SK'", "") & IIf(KUNDE.LandKz = "TR", "'HU', 'SI', 'SK'", "") & IIf(KUNDE.LandKz = "MNE", "'PL', 'SI'", "") & IIf(KUNDE.LandKz = "MK", "'BG', 'PL','SI'", "") & ")"
End Select
End If
Return SQLWhere
End Function
Function getSDLNrButton(SDLNrTmp) As Object
Select Case SDLNrTmp
Case 100 : Return btnSDL_IDS
Case 212 : Return btnSDL_UTA
Case 213 : Return btnSDL_Hugo
Case 214 : Return btnSDL_PLOSE
Case 208 : Return btnSDL_MautMSE
Case 207 : Return btnSDL_FREJUS
Case 502 : Return btnVERAGCardNew
Case 999 : Return btnSDL_RMC
Case Else : Return btnSDL_Alle
End Select
End Function
Private Sub btnSDL_Alle_Click(sender As Object, e As EventArgs) Handles btnSDL_Alle.Click
SET_SDL(-1)
End Sub
Private Sub btnSDL_IDS_Click(sender As Object, e As EventArgs) Handles btnSDL_IDS.Click
SET_SDL(100)
End Sub
Private Sub btnSDL_UTA_Click(sender As Object, e As EventArgs) Handles btnSDL_UTA.Click
SET_SDL(212)
End Sub
Private Sub btnSDL_Hugo_Click(sender As Object, e As EventArgs) Handles btnSDL_Hugo.Click
SET_SDL(213)
End Sub
Private Sub btnSDL_PLOSE_Click(sender As Object, e As EventArgs) Handles btnSDL_PLOSE.Click
SET_SDL(214)
End Sub
Private Sub btnSDL_MautMSE_Click(sender As Object, e As EventArgs) Handles btnSDL_MautMSE.Click
SET_SDL(208)
End Sub
Private Sub btnSDL_MotorWay_Click(sender As Object, e As EventArgs)
SET_SDL(205)
End Sub
Private Sub btnSDL_FREJUS_Click(sender As Object, e As EventArgs) Handles btnSDL_FREJUS.Click
SET_SDL(207)
End Sub
Private Sub btnVERAGCardNew_Click(sender As Object, e As EventArgs) Handles btnVERAGCardNew.Click
SET_SDL(502)
End Sub
Private Sub btnSDL_RMC_Click(sender As Object, e As EventArgs) Handles btnSDL_RMC.Click
SET_SDL(999)
End Sub
Sub newBinding(sdlNr As Integer, ByVal sql As String)
dgvInitWait = True
' bindingSDL = Nothing
dgvLFRechnung.Columns.Clear()
dgvLFRechnung.VirtualMode = True
txtchanged = True
dgvInitWait = True
dgvLFRechnung.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
dgvLFRechnung.SET_SQL(sql, "FMZOLL")
dgvLFRechnung.LOAD()
lblEinträge.Text = dgvLFRechnung.RowCount & " Einträge"
If dgvLFRechnung.RowCount >= 200 Then lblEinträge.Text = dgvLFRechnung.RowCount & " Einträge " & IIf(cbxMax1000Eintrage.Checked, "(Anzeige auf 200 beschränkt)", "")
dgvInitWait = False
txtchanged = False
dgvInitWait = False
dgvLFRechnung.ClearSelection()
If dgvLFRechnung.RowCount > 0 Then
dgvLFRechnung.Rows(0).Cells(0).Selected = True
Else
End If
End Sub
Private Sub Button4_Click_1(sender As Object, e As EventArgs) Handles Button4.Click
If SplitContainer1.Panel2Collapsed Then
SplitContainer1.Panel2Collapsed = False
dgvSDL_SelectionChanged(dgvLFRechnung, New System.EventArgs)
Else
SplitContainer1.Panel2Collapsed = True
End If
End Sub
Sub reClick()
getSDLNrButton(aktSDLNr).PerformClick()
End Sub
Sub refreshDgv(kdNr, SDLNr, Optional Kfz = "", Optional History = "")
SET_SDL(aktSDLNr)
dgvLFRechnung.ClearSelection()
If Kfz <> "" And History <> "" Then
For Each r As DataGridViewRow In dgvLFRechnung.Rows
If r.Cells("KundenNr").Value = kdNr And
r.Cells("SDLNr").Value = SDLNr And
r.Cells("KfzKennzeichen").Value = Kfz And
r.Cells("History").Value = History Then
r.Selected = True
Exit For
End If
Next
End If
End Sub
Private Sub UsrCntlDatenDetails1_Changed(kdNr, Kfz, SDLNr, History)
'refreshDgv(kdNr, SDLNr, Kfz, History)'?????????????? ausgebelndet,was das ein VErsuch? 31.07.2017
dgvLFRechnung.VALUE_CHANGED = True
End Sub
Private Sub datadgvSDL_SelectionChanged(kdNr, Kfz, SDLNr, History)
' refreshDgv(kdNr, SDLNr, Kfz, History)
dgvLFRechnung.VALUE_CHANGED = True
Exit Sub
dgvInitWait = True
dgvLFRechnung.RELOAD()
dgvInitWait = False
End Sub
' Private Sub dgvSDL_SelectionChanged(sender As Object, e As EventArgs) Handles dgvSDL.SelectionChanged
Private Sub dgvSDL_KeyDown(sender As Object, e As KeyEventArgs) Handles dgvLFRechnung.KeyUp
If e.KeyCode = Keys.Up Or e.KeyCode = Keys.Down Or e.KeyCode = Keys.End Or e.KeyCode = Keys.Home Then '?POS1
' ReloadLeistung()
End If
End Sub
Private Sub dgvSDL_SelectionChanged(sender As Object, e As EventArgs) Handles dgvLFRechnung.Click
'ReloadLeistung()
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
If dgvLFRechnung.SelectedRows.Count > 0 Then
Dim TextHTMLtable = ""
TextHTMLtable &= "<table border=1>"
TextHTMLtable &= "<tr><td>Lieferant</td><td>Land</td><td>Datum</td></tr>"
Dim pdflist As New List(Of String)
For Each row In dgvLFRechnung.SelectedRows
Dim Lieferant = ""
If dgvLFRechnung.Columns.Contains("Lieferant") Then
Lieferant = row.Cells("Lieferant").Value
Else
Select Case aktSDLNr
Case 100 : Lieferant = "IDS"
Case 212 : Lieferant = "UTA"
Case 214 : Lieferant = "PLOSE"
Case 208 : Lieferant = "MSE"
Case 502 : Lieferant = "VERAG"
Case 999 : Lieferant = "RMC"
End Select
End If
If Lieferant = "VERAG" Then
'VERAG IGNORIEREN
'Dim ReDat = row.Cells("Rechnungsdatum").Value
'Dim ReNr = row.Cells("Rechnungsnummer").Value
'If ReDat IsNot Nothing AndAlso ReNr > 0 Then
' Me.Cursor = Cursors.WaitCursor
' Dim da_id = SQL.getValueTxtBySql("SELECT TOP(1) RK_ID FROM Rechnungsausgang where cast(Rechnungsausgang.RechnungsDatum as Date) ='" & ReDat & "' and Rechnungsausgang.RechnungsNr='" & ReNr & "' AND FilialenNr = 4814 AND RK_ID is not null", "FMZOLL")
' cFakturierung.doRechnungsDruck_SRorER(da_id,, False, 3)
'End If
Else
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & IIf(dgvLFRechnung.Columns.Contains("Lieferant"), row.Cells("Lieferant").Value, Lieferant) & "</b></td>"
TextHTMLtable &= "<td><b>" & row.Cells("Land").Value & "</b></td>"
TextHTMLtable &= "<td><b>" & row.Cells("Rechnungsdatum").Value & "</b></td>"
TextHTMLtable &= "</tr>"
Dim daId = row.Cells("daId").Value
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
pdflist.Add(DS.GET_TOP1_PATH())
End If
End If
Next
TextHTMLtable &= "</table>"
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Select Case KUNDE.LandKz
Case "TR"
Mail.Subject = KUNDE.Kurzname & "ORIJINAL FATURA "
Mail.HTMLBody = "Bayanlar ve Baylar!,<br><br>Ekte izlere orijinal faturalarinizi gönderiyoruz.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Iyi calismalar dileriz.<br><br>"
Case "A", "AT", "D", "DE", "CH"
Mail.Subject = KUNDE.Kurzname & "ORIGINAL RECHNUNG "
Mail.HTMLBody = "Sehr geehrte Damen und Herren,<br><br>im Anhang senden wir Ihnen die Originalrechnungen.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Mit freundlichen Grüßen<br><br>"
Case "RO"
Mail.Subject = KUNDE.Kurzname & "FACTURI RETURNATE "
Mail.HTMLBody = "Stimati domni, stimate doamne,<br><br>Va returnam facturile originale care nu au fost utilizate spre recuperare TVA.<br><br>Va multumim pentru colaborarea.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Cu stima<br><br>"
Case "HR", "BIH", "SLO", "SRB", "BIH"
Mail.Subject = KUNDE.Kurzname & "ORGINALNI RACUNI "
Mail.HTMLBody = "Postovanje,<br><br>prilozeno Vam dostavljamo orginalne racune za Vasu daljnu upotrebu.<br><br>Za pitanja stojimo na raspolaganju.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Srdacan pozdrav<br><br>"
Case Else
Mail.Subject = KUNDE.Kurzname & "Invoice No."
Mail.HTMLBody = TextHTMLtable
Mail.HTMLBody = "Dear Sir or Madam,<br><br>attached we send you the original invoice mentioned above.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Best regards<br><br>"
End Select
If pdflist.Count > 0 Then
For Each pdf In pdflist
Mail.Attachments.Add(pdf, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , )
Next
End If
Mail.To &= KUNDE.EMail
Mail.CC &= KUNDE.EMail2
Mail.Display()
End If
End Sub
'Sub SelectRow(kdnr, kfz, SDLNr, history)
' dgvInitWait = True
' dgvSDL.ClearSelection()
' For Each r As DataGridViewRow In dgvSDL.Rows
' If r.Cells("KundenNr").Value = kdnr AndAlso
' r.Cells("SDLNr").Value = SDLNr AndAlso
' r.Cells("KfzKennzeichen").Value = kfz AndAlso
' r.Cells("History").Value = history Then
' r.Selected = True
' dgvSDL.FirstDisplayedScrollingRowIndex = r.Index
' Exit For
' End If
' Next
' dgvInitWait = False
' 'ReloadLeistung()
' dgvSDL.PerformLayout()
'End Sub
Private Sub ToolStripMenuItem3_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem3.Click
Me.Cursor = Cursors.WaitCursor
cProgramFunctions.genExcelFromDGV(dgvLFRechnung, True)
Me.Cursor = Cursors.Default
End Sub
Private Sub ToolStripMenuItem6_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem6.Click
Me.Cursor = Cursors.WaitCursor
cProgramFunctions.genExcelFromDGV_NEW(dgvLFRechnung, True)
Me.Cursor = Cursors.Default
End Sub
Private Sub Button8_Click_1(sender As Object, e As EventArgs) Handles Button8.Click
Me.Cursor = Cursors.WaitCursor
cProgramFunctions.genExcelFromDGV_NEW(dgvLFRechnung, True, True)
Me.Cursor = Cursors.Default
End Sub
Private Sub Button1_Click_2(sender As Object, e As EventArgs) Handles Button1.Click
SET_SDL(aktSDLNr)
End Sub
Private Sub dgvSDL_RELOADED() Handles dgvLFRechnung.RELOADED
' redRows()
End Sub
Private Sub usrCntlKartenDaten_SizeChanged(sender As Object, e As EventArgs) Handles Me.SizeChanged
' initDGVWidth()
End Sub
Dim vval As Integer
Private Sub dgvSDL_GotFocus(sender As Object, e As EventArgs) Handles dgvLFRechnung.GotFocus
'dgvSDL.VerticalScrollingOffset = vval
SplitContainer1.Panel1.VerticalScroll.Value = vval
End Sub
Private Sub dgvSDL_Enter(sender As Object, e As EventArgs) Handles dgvLFRechnung.Enter
vval = SplitContainer1.Panel1.VerticalScroll.Value
End Sub
Private Sub dgvSDL_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvLFRechnung.CellContentDoubleClick
Try
If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then
Select Case aktSDLNr
Case 502 'VERAG
Dim ReDat = dgvLFRechnung.Rows(e.RowIndex).Cells("Rechnungsdatum").Value
Dim ReNr = dgvLFRechnung.Rows(e.RowIndex).Cells("Rechnungsnummer").Value
If ReDat IsNot Nothing AndAlso ReNr > 0 Then
Me.Cursor = Cursors.WaitCursor
Dim da_id = SQL.getValueTxtBySql("SELECT TOP(1) RK_ID FROM Rechnungsausgang where cast(Rechnungsausgang.RechnungsDatum as Date) ='" & ReDat & "' and Rechnungsausgang.RechnungsNr='" & ReNr & "' AND FilialenNr = 4814 AND RK_ID is not null", "FMZOLL")
cFakturierung.doRechnungsDruck_SRorER(da_id,, False, 3)
End If
Case -1 'ALLE
Dim Lieferant = dgvLFRechnung.Rows(e.RowIndex).Cells("Lieferant").Value
If Lieferant = "VERAG" Then
Dim ReDat = dgvLFRechnung.Rows(e.RowIndex).Cells("Rechnungsdatum").Value
Dim ReNr = dgvLFRechnung.Rows(e.RowIndex).Cells("Rechnungsnummer").Value
If ReDat IsNot Nothing AndAlso ReNr > 0 Then
Me.Cursor = Cursors.WaitCursor
Dim da_id = SQL.getValueTxtBySql("SELECT TOP(1) RK_ID FROM Rechnungsausgang where cast(Rechnungsausgang.RechnungsDatum as Date) ='" & ReDat & "' and Rechnungsausgang.RechnungsNr='" & ReNr & "' AND FilialenNr = 4814 AND RK_ID is not null", "FMZOLL")
cFakturierung.doRechnungsDruck_SRorER(da_id,, False, 3)
End If
End If
Dim daId = dgvLFRechnung.Rows(e.RowIndex).Cells("daId").Value
If daId > 0 Then
Me.Cursor = Cursors.WaitCursor
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
DS.OPEN_SINGLE()
End If
Case Else
Dim daId = dgvLFRechnung.Rows(e.RowIndex).Cells("daId").Value
If daId > 0 Then
Me.Cursor = Cursors.WaitCursor
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
DS.OPEN_SINGLE()
End If
End Select
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Me.Cursor = Cursors.Default
End Try
Me.Cursor = Cursors.Default
End Sub
Private Sub dat_Sum_Von_Leave(sender As Object, e As EventArgs) Handles dat_Sum_Von.Leave, dat_Sum_Bis.Leave
SET_SDL(aktSDLNr)
End Sub
Private Sub cbx_CheckedChanged(sender As Object, e As EventArgs) Handles cbx.CheckedChanged
SET_SDL(aktSDLNr)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs)
With dgvLFRechnung
Dim c As New DataGridViewImageColumn
c.Name = "PDF" : c.HeaderText = "PDF"
c.DefaultCellStyle.NullValue = Nothing
c.ImageLayout = DataGridViewImageCellLayout.Zoom
c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White
If Not .Columns.Contains("PDF") Then .Columns.Add(c)
For Each r As DataGridViewRow In .Rows
If IsDBNull(r.Cells("daId").Value) OrElse r.Cells("daId").Value = 0 Then
DirectCast(r.Cells("PDF"), DataGridViewImageCell).Value = My.Resources.pdf_gray
End If
Next
If .Columns.Count > 0 Then
If .Columns.Contains("daId") Then
If .Columns("daId") IsNot Nothing Then .Columns("daId").Visible = False
End If
End If
End With
End Sub
Private Sub setPDFImages()
Exit Sub 'langsam!!!!
With dgvLFRechnung
If Not .Columns.Contains("PDF") Then Exit Sub
For Each r As DataGridViewRow In .Rows
If r.Cells("pdfVorhanden").Value Then
Try
'DirectCast(r.Cells("PDF"), DataGridViewImageCell).Value = Nothing
DirectCast(r.Cells("PDF"), DataGridViewImageCell).Value = My.Resources.pdf
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End If
Next
End With
End Sub
End Class