Files
SDL/SDL/mdm/usrcntlFremdrechnungen.vb

1138 lines
48 KiB
VB.net
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Imports System.Reflection
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
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 aktLieferant As String = "ALLE"
Dim fullyPainted = False
Dim dtkeineMWST As DataTable
Dim dtKundeMWST As DataTable
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
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)
dtkeineMWST = (New SQL).loadDgvBySql("select Land, Erstattungsland, Lieferant from tblKeineMWSTErstattung", "FMZOLL")
If KUNDE IsNot Nothing Then
dtKundeMWST = (New SQL).loadDgvBySql("select LandKz from tblKundenMWST where KdNr = " & KUNDE.KundenNr, "FMZOLL")
End If
SET_SDL("")
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)
aktLieferant = SDLNrTmp
Dim anzahlTop = 1000
Dim SQL_STR = ""
Select Case SDLNrTmp
'IDS
Case "IDS" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" invoice_id, [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 AND isnull([tbl_IDS_Kunden].KdNrAlt, 1) = 0 " & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, "") & ") and [YearMonthDay] " & setSQLWhere(SDLNrTmp, "") & " order by [YearMonthDay] desc, [Invoicenumber]"
'UTA
Case "UTA" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" Adressen.AdressenNr, Adressen.[Name 1], [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, "Lieferland_ISO2") & " group by Adressen.AdressenNr, Adressen.[Name 1],[Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],[Lieferland_ISO2]"
SQL_STR &= " UNION ALL SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") & " Adressen.AdressenNr, Adressen.[Name 1],[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("_", "") & " order by Rechnungsdatum desc"
'PLOSE
Case "PLOSE" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" Adressen.AdressenNr, Adressen.[Name 1],[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 "MSE" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" partner_customer_number as AdressenNr, customer_name as [Name 1], [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 inner join tblMSECustomers on customer_id = [customer_number] 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 "VERAG" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" Adressen.AdressenNr, Adressen.[Name 1], tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer , tblTrdinInvoice.SteuerbetragLokal, 1 as daId, cast(1 as bit) as PDFvorhanden FROM tblTrdinInvoice inner join Adressen on KundenNrZentrale = AdressenNr 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 "RMC" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
"Adressen.AdressenNr, Adressen.[Name 1],[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 "ALLE" : Dim anzahl As Integer = anzahlTop / 6 : SQL_STR = " select * from (SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") &
"
--IDS
'IDS' as Lieferant,invoice_id, [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] in (SELECT [CustomerCode] FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE 1 = 1 and isnull([tbl_IDS_Kunden].KdNrAlt, 1) = 0 " & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, "") & " ) and [YearMonthDay] " & setSQLWhere("IDS", "") & " -- order by [YearMonthDay], [Invoicenumber]
UNION ALL
--MSE
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'MSE' as Lieferant,-1 as invoice_id, [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 inner join tblMSECustomers on customer_id = [customer_number] where 1 = 1 " & IIf(kdNr > 0, " AND [partner_customer_number]=" & kdNr, "") & " and [invoice_date] " & setSQLWhere("MSE", "country") & " --order by invoice_date, invoice_id
UNION ALL
--UTA
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'UTA' as Lieferant,-1 as invoice_id, [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("UTA", "Lieferland_ISO2") & " group by [Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],[Lieferland_ISO2] UNION ALL SELECT 'UTA',-1, [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("UTA_", "") & " --order by Rechnungsnummer desc
UNION ALL
--VERAG
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'VERAG' as Lieferant,-1 as invoice_id, 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("VERAG", "'AT'") & " AND tblTrdinInvoice.FilialenNr = 4814 --ORDER BY tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer
UNION ALL
--PLOSE
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'PLOSE' as Lieferant,-1 as invoice_id, [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("PLOSE", "plInv_SupplierCountry") & "-- Order by plInv_SupplierRechnungsDatum desc, [plInv_SupplierRechnungsNr]
UNION ALL
--RMC
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'RMC' as Lieferant,-1 as invoice_id, [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("RMC", "rmc_landKZ") & "-- order by rmc_reDatum, rmc_reNr
) as temp where 1=1 and temp.Rechnungsdatum" & setSQLWhere(SDLNrTmp, "temp.Land") & " 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
If .Columns.Contains("invoice_id") Then
.Columns("invoice_id").Visible = False
End If
End If
End With
initAllg()
dgvLFRechnung.Width = 100
dgvLFRechnung.Height = 100
dgvLFRechnung.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
'dgvLFRechnung.Rows(0).Frozen = True
initDGVWidth() 'vor Filter, damit richtige Größe
setPDFImages()
End Sub
Private Function setSQLWhere(aktLieferant As String, land As String) As String
Dim SQLWhere = " between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "'"
If cbx.Checked AndAlso aktLieferant <> "IDS" AndAlso KUNDE IsNot Nothing Then
Dim erw As New cKundenErweitert(KUNDE.KundenNr)
If erw.kde_keineMWSt Then Return SQLWhere
SQLWhere &= "AND ("
'ORIGINAL-RECHNUNG senden wenn:
'1. wenn die Rechnung in dem Land in dem er ansässig ist ausgestellt wurde (rumän. Kunde Rechnung ausgestellt in Rumänien = z.B. IDS in RO getankt…)
Dim landKZiso2 = ""
If land <> "" Then 'LandKZ vom Kunden muss auf ISO2 konvertiert werden, weil da ein Misch-Masch in der Datenbank herrscht!
If KUNDE.LandKz <> "" Then
If KUNDE.LandKz.Length = 2 Then
landKZiso2 = KUNDE.LandKz
ElseIf KUNDE.LandKz.Length = 3 Then
landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(KUNDE.LandKz)
ElseIf KUNDE.LandKz.Length = 1 Then
landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO1Land(KUNDE.LandKz)
End If
SQLWhere &= " " & land & " in ('" & landKZiso2 & "')"
End If
End If
'2. wenn die Rechnung die MWST-SUMME 0 aufweist!!!
Select Case aktLieferant
Case "UTA" : SQLWhere &= " OR Gesamtbetrag_Umsatzsteuer_in_Darstellwährung = 0 " 'UTA bei UTA auch EPN ausblenden!
Case "PLOSE" : SQLWhere &= " OR plInv_MWSTBetrag = 0" 'PLOSE
Case "VERAG" : SQLWhere &= " OR tblTrdinInvoice.SteuerbetragLokal = 0" 'VERAG
Case "MSE" : SQLWhere &= " OR total_vat_amount_euro = 0" 'MSE
Case "RMC" : SQLWhere &= " OR rmc_betragMWST = 0" 'RMC
Case "ALLE" : SQLWhere &= " OR temp.MWSt = 0" 'ALLE
Case "UTA_" : SQLWhere &= " 1 <> 1"
Case Else : SQLWhere &= " 1 <> 1"
End Select
'3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt
If land <> "" AndAlso dtkeineMWST.Rows.Count > 0 Then
Dim dtkeineMWST_ohneContraint As DataTable = dtkeineMWST.Select("Lieferant <> 'IDS' AND Land = '" & landKZiso2 & "'").CopyToDataTable
Dim counter = 0
Dim landBez As String = ""
For Each row As DataRow In dtkeineMWST_ohneContraint.Rows
landBez &= "'" & row.Item("Erstattungsland") & "'"
counter = counter + 1
If (dtkeineMWST_ohneContraint.Rows.Count <> 0 And counter <> dtkeineMWST_ohneContraint.Rows.Count) Then landBez &= ","
Next
SQLWhere &= " OR " & land & " in (" & landBez & ")"
If aktLieferant = "ALLE" Then SQLWhere &= " OR " & land & " in ('')" 'damit IDS ohne Land nicht ausgeschlossen wird.
End If
'4. Rechnungen der Länder, in denen der Kunde selber MWST beantragt
If land <> "" AndAlso dtKundeMWST.Rows.Count > 0 Then
Dim counter = 0
Dim landBez As String = ""
For Each row As DataRow In dtKundeMWST.Rows
landBez &= "'" & row.Item("LandKz") & "'"
counter = counter + 1
If (dtKundeMWST.Rows.Count <> 0 And counter <> dtKundeMWST.Rows.Count) Then landBez &= ","
Next
SQLWhere &= " OR " & land & " in (" & landBez & ")"
End If
SQLWhere &= ")"
'nicht NOTWENDIG!
'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
Private Function setSQLDetailWhere(aktLieferant As String, land As String, Optional alle As Boolean = False) As String
Dim SQLWhere = ""
If cbx.Checked AndAlso KUNDE IsNot Nothing Then
Dim erw As New cKundenErweitert(KUNDE.KundenNr)
If erw.kde_keineMWSt Then Return SQLWhere
SQLWhere &= "AND ("
'ORIGINAL-RECHNUNG senden wenn:
'1. wenn die Rechnung in dem Land in dem er ansässig ist ausgestellt wurde (rumän. Kunde Rechnung ausgestellt in Rumänien = z.B. IDS in RO getankt…)
Dim landKZiso2 = ""
If KUNDE.LandKz <> "" Then
If KUNDE.LandKz.Length = 2 Then
landKZiso2 = KUNDE.LandKz
ElseIf KUNDE.LandKz.Length = 3 Then
landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(KUNDE.LandKz)
ElseIf KUNDE.LandKz.Length = 1 Then
landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO1Land(KUNDE.LandKz)
End If
If land <> "" Then SQLWhere &= " " & land & " in ('" & landKZiso2 & "')"
End If
'2. wenn die Rechnung die Summe NULL aufweist
Select Case aktLieferant
Case "IDS" : If Not alle Then SQLWhere &= " OR [AmminclVAT] = 0" 'IDS
End Select
'3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt (auch nicht auf Diesel -> IDS)
If land <> "" AndAlso dtkeineMWST.Rows.Count > 0 Then
Dim dtkeineMWST_IDS As DataTable = dtkeineMWST.Select("Lieferant = '' AND Land = '" & landKZiso2 & "'").CopyToDataTable
Dim counter = 0
Dim landBez As String = ""
For Each row As DataRow In dtkeineMWST_IDS.Rows
landBez &= "'" & row.Item("Erstattungsland") & "'"
counter = counter + 1
If (dtkeineMWST_IDS.Rows.Count <> 0 And counter <> dtkeineMWST_IDS.Rows.Count) Then landBez &= ","
Next
SQLWhere &= " OR " & land & " in (" & landBez & ")"
End If
'4. Rechnungen der Länder, in denen der Kunde selber MWST beantragt
If land <> "" AndAlso dtKundeMWST.Rows.Count > 0 Then
Dim counter = 0
Dim landBez As String = ""
For Each row As DataRow In dtKundeMWST.Rows
landBez &= "'" & row.Item("LandKz") & "'"
counter = counter + 1
If (dtKundeMWST.Rows.Count <> 0 And counter <> dtKundeMWST.Rows.Count) Then landBez &= ","
Next
SQLWhere &= " OR " & land & " in (" & landBez & ")"
End If
SQLWhere &= ")"
End If
Return SQLWhere
End Function
Function getSDLNrButton(SDLNrTmp) As Object
Select Case SDLNrTmp
Case "IDS" : Return btnSDL_IDS
Case "UTA" : Return btnSDL_UTA
Case "HUGO" : Return btnSDL_Hugo
Case "PLOSE" : Return btnSDL_PLOSE
Case "MSE" : Return btnSDL_MautMSE
Case "FREJUS" : Return btnSDL_FREJUS
Case "VERAG" : Return btnVERAGCardNew
Case "RMC" : 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("ALLE")
End Sub
Private Sub btnSDL_IDS_Click(sender As Object, e As EventArgs) Handles btnSDL_IDS.Click
SET_SDL("IDS")
End Sub
Private Sub btnSDL_UTA_Click(sender As Object, e As EventArgs) Handles btnSDL_UTA.Click
SET_SDL("UTA")
End Sub
Private Sub btnSDL_Hugo_Click(sender As Object, e As EventArgs) Handles btnSDL_Hugo.Click
SET_SDL("HUGO")
End Sub
Private Sub btnSDL_PLOSE_Click(sender As Object, e As EventArgs) Handles btnSDL_PLOSE.Click
SET_SDL("PLOSE")
End Sub
Private Sub btnSDL_MautMSE_Click(sender As Object, e As EventArgs) Handles btnSDL_MautMSE.Click
SET_SDL("MSE")
End Sub
Private Sub btnSDL_MotorWay_Click(sender As Object, e As EventArgs)
SET_SDL("MW")
End Sub
Private Sub btnSDL_FREJUS_Click(sender As Object, e As EventArgs) Handles btnSDL_FREJUS.Click
SET_SDL("FREJUS")
End Sub
Private Sub btnVERAGCardNew_Click(sender As Object, e As EventArgs) Handles btnVERAGCardNew.Click
SET_SDL("VERAG")
End Sub
Private Sub btnSDL_RMC_Click(sender As Object, e As EventArgs) Handles btnSDL_RMC.Click
SET_SDL("RMC")
End Sub
Sub newBinding(aktLieferant As String, 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 1000 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(aktLieferant).PerformClick()
End Sub
Sub refreshDgv(kdNr, SDLNr, Optional Kfz = "", Optional History = "")
SET_SDL(aktLieferant)
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
ReloadRechnungsdetails()
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>Supplier</td><td>Country</td><td>Date</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
Lieferant = aktLieferant
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
'
If Lieferant = "IDS" Then
Dim dt As New DataTable
dt = initDGVRechnungsdetails(row.Cells("invoice_id").value, True)
For Each r As DataRow In dt.Rows
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & Lieferant & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("Land") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("Rechnungsdatum") & "</b></td>"
TextHTMLtable &= "</tr>"
Dim daId As Integer = IIf(IsDBNull(r.Item("daId")), -1, r.Item("daId"))
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
pdflist.Add(DS.GET_TOP1_PATH())
End If
Next
Else
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & 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 As Integer = IIf(IsDBNull(row.Cells("daId").Value), -1, 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
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(aktLieferant)
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 aktLieferant
Case "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 "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(aktLieferant)
End Sub
Private Sub cbx_CheckedChanged(sender As Object, e As EventArgs) Handles cbx.CheckedChanged
SET_SDL(aktLieferant)
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
Sub ReloadRechnungsdetails()
' MsgBox(dgvInitWait)
If Not dgvInitWait Then
Try
If dgvLFRechnung.SelectedRows.Count > 0 AndAlso (aktLieferant = "IDS" Or aktLieferant = "ALLE") Then
If dgvLFRechnung.SelectedRows.Count = 1 AndAlso aktLieferant = "ALLE" AndAlso dgvLFRechnung.SelectedRows(0).Cells("Lieferant").Value <> "IDS" Then
dgvDetails.Visible = False
Exit Sub
End If
dgvDetails.Visible = True
If Not SplitContainer1.Panel2Collapsed Then
Select Case aktLieferant
Case "IDS" : initDGVRechnungsdetails(dgvLFRechnung.SelectedRows(0).Cells("invoice_id").Value)
Case "ALLE"
If dgvLFRechnung.Columns.Contains("Lieferant") AndAlso dgvLFRechnung.SelectedRows(0).Cells("Lieferant").Value = "IDS" Then
initDGVRechnungsdetails(dgvLFRechnung.SelectedRows(0).Cells("invoice_id").Value)
Else
dgvDetails.Visible = False
End If
End Select
Else
dgvDetails.Visible = False
End If
Else
dgvDetails.Visible = False
End If
Catch ex As Exception
'Neuer eintrag
MsgBox(ex.Message & ex.StackTrace)
End Try
End If
End Sub
Private Function initDGVRechnungsdetails(rechnugnsID As Integer, Optional setDatatable As Boolean = False) As DataTable
Dim sql = " select [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,[Country] as Land
FROM [VERAG].[dbo].[tblIDSInvoicesNewSplittedByCountry] WHERE [TotalInvoiceId] = " & rechnugnsID & setSQLDetailWhere(aktLieferant, "Country")
If setDatatable Then
Dim dtRechnugnsdet As DataTable = (New SQL).loadDgvBySql(sql, "FMZOLL")
Return dtRechnugnsdet
End If
With dgvDetails
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
.SET_SQL(sql, "FMZOLL")
.LOAD()
.ClearSelection()
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
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
If .Columns.Contains("daId") Then
If .Columns("daId") IsNot Nothing Then .Columns("daId").Visible = False
End If
Next
End If
End With
End Function
Private Sub dgvDetails_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvDetails.CellContentDoubleClick
Try
If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then
Dim daId = dgvDetails.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 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
End Class