Files
SDL/SDL/mdm/usrcntlFremdrechnungen.vb

1554 lines
69 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
txtKundenNrvon.Enabled = kdNr <= 0
txtKundenNrbis.Enabled = kdNr <= 0
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.KundenNr > 0 Then
dtKundeMWST = (New SQL).loadDgvBySql("select LandKz from tblKundenMWST where KdNr = " & KUNDE.KundenNr, "FMZOLL")
cbx.Visible = True
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 As String, Optional kdNrvon As Integer = -1, Optional kdNrbis As Integer = -1)
aktLieferant = SDLNrTmp
Dim anzahlTop = 1000
Dim sqlfehlendePDF As String = ""
Dim sqlfehlendePDF_PLOSE As String = ""
Dim sqlfehlendePDF_RMC As String = ""
Dim sqlfehlendePDF_VERAG As String = "" 'veragPDF sind immer da (können nie fehlen)!
Select Case cbxPDFhinterlegt.CheckState
Case CheckState.Unchecked : sqlfehlendePDF = " AND [daId] is null" : sqlfehlendePDF_PLOSE = " AND plInv_daId is null" : sqlfehlendePDF_RMC = " AND rmc_daId is null" : sqlfehlendePDF_VERAG = " AND 1 = 0"
Case CheckState.Checked : sqlfehlendePDF = " AND not [daId] is null" : sqlfehlendePDF_PLOSE = " AND plInv_daId is not null" : sqlfehlendePDF_RMC = " AND rmc_daId is not null" : sqlfehlendePDF_VERAG = " AND 1 = 1"
End Select
Dim whereKundennrKreisAlle As String = ""
Dim whereKundennrKreisLieferanten As String = ""
If kdNrvon > 0 AndAlso kdNrbis > 0 Then
Select Case SDLNrTmp
Case "IDS" : whereKundennrKreisLieferanten = " and KdNrVERAG between " & kdNrvon & " and " & kdNrbis
Case "MSE" : whereKundennrKreisLieferanten = " and partner_customer_number between " & kdNrvon & " and " & kdNrbis
Case "ALLE" : whereKundennrKreisAlle = " and temp.AdressenNr between " & kdNrvon & " and " & kdNrbis
Case Else
whereKundennrKreisLieferanten = " and AdressenNr between " & kdNrvon & " and " & kdNrbis
End Select
End If
Dim SQL_STR = ""
Select Case SDLNrTmp
'IDS
Case "IDS" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" invoice_id,[tbl_IDS_Kunden].KdNrVERAG as AdressenNr, [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer, tblIDSInvoicesNew.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 inner join [VERAG].[dbo].[tbl_IDS_Kunden] on tblIDSInvoicesNew.CustomerCode = tbl_IDS_Kunden.CustomerCode WHERE tblIDSInvoicesNew.[CustomerCode] in (SELECT distinct([CustomerCode]) FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE 1 = 1 AND isnull([tbl_IDS_Kunden].KdNrAlt, 0) = 0 " & sqlfehlendePDF & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, "") & ") and [YearMonthDay] " & setSQLWhere(SDLNrTmp, "") & whereKundennrKreisLieferanten & " 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, cast(archiv as bit) as archiv FROM [VERAG].[dbo].[tblUTAImportNew] inner join adressen on Kundennummer = UTAKundenNr where 1 = 1 " & sqlfehlendePDF & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " AND [Rechnungsdatum] " & setSQLWhere(SDLNrTmp, "Lieferland_ISO2") & whereKundennrKreisLieferanten & " group by Adressen.AdressenNr, Adressen.[Name 1],[Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],[Lieferland_ISO2], archiv"
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, cast(0 as bit) as archiv FROM [VERAG].[dbo].[tblUTADocuments] inner join adressen on KundenNr = UTAKundenNr where 1 = 1 " & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " and [Datum] " & setSQLWhere("_", "") & whereKundennrKreisLieferanten & " 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, plInv_Archiv as archiv FROM tblPLOSE_Inv_Data inner join Adressen on Adressen.PLOSEKundenNr = plInv_PLOSEKundennummer where 1 = 1 " & sqlfehlendePDF_PLOSE & IIf(kdNr > 0, " AND Adressen.AdressenNr=" & kdNr, "") & " and [plInv_SupplierRechnungsDatum] " & setSQLWhere(SDLNrTmp, "plInv_SupplierCountry") & whereKundennrKreisLieferanten & " 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 Bruttobetrag ,[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, archiv FROM tblMSEInvoices inner join tblMSECustomers on customer_id = [customer_number] where 1 = 1 " & sqlfehlendePDF & IIf(kdNr > 0, " AND [partner_customer_number]=" & kdNr, "") & " and [invoice_date] " & setSQLWhere(SDLNrTmp, "country") & whereKundennrKreisLieferanten & " 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.RechnungsbetragLokal as Bruttobetrag, 1 as daId, cast(1 as bit) as PDFvorhanden FROM tblTrdinInvoice inner join Adressen on KundenNrZentrale = AdressenNr WHERE 1 = 1 " & sqlfehlendePDF_VERAG & 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 Bruttobetrag,[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, rmc_archiv as archiv FROM [VERAG].[dbo].[tblRMCImport] inner join Adressen on Adressen.WölflKundenNr = rmc_kdNr where 1 = 1 " & sqlfehlendePDF_RMC & IIf(kdNr > 0, " AND AdressenNr=" & kdNr, "") & " and [rmc_reDatum] " & setSQLWhere(SDLNrTmp, "rmc_landKZ") & whereKundennrKreisLieferanten & " 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,[tbl_IDS_Kunden].KdNrVERAG as AdressenNr, [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer,tblIDSInvoicesNew.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 inner join [VERAG].[dbo].[tbl_IDS_Kunden] on tblIDSInvoicesNew.CustomerCode = tbl_IDS_Kunden.CustomerCode WHERE tblIDSInvoicesNew.[CustomerCode] in (SELECT [CustomerCode] FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE 1 = 1 and isnull([tbl_IDS_Kunden].KdNrAlt, 1) = 0 " & sqlfehlendePDF & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, "") & " ) and [YearMonthDay] " & setSQLWhere("IDS", "") & whereKundennrKreisLieferanten & " -- order by [YearMonthDay], [Invoicenumber]
UNION ALL
--MSE
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'MSE' as Lieferant,-1 as invoice_id,partner_customer_number as AdressenNr, [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 " & sqlfehlendePDF & IIf(kdNr > 0, " AND [partner_customer_number]=" & kdNr, "") & " and [invoice_date] " & setSQLWhere("MSE", "country") & whereKundennrKreisLieferanten & " --order by invoice_date, invoice_id
UNION ALL
--UTA
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'UTA' as Lieferant,-1 as invoice_id,Adressen.AdressenNr, [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 " & sqlfehlendePDF & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " and [Rechnungsdatum] " & setSQLWhere("UTA", "Lieferland_ISO2") & whereKundennrKreisLieferanten & " group by [Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,AdressenNr,[daId],[Lieferland_ISO2] UNION ALL SELECT 'UTA',-1,AdressenNr, [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_", "") & whereKundennrKreisLieferanten & " --order by Rechnungsnummer desc
UNION ALL
--VERAG
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'VERAG' as Lieferant,-1 as invoice_id,Adressen.AdressenNr, 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 inner join Adressen on KundenNrZentrale = AdressenNr WHERE 1 = 1 " & sqlfehlendePDF_VERAG & IIf(kdNr > 0, " AND tblTrdinInvoice.RechnungsKundenNr=" & kdNr, "") & " and tblTrdinInvoice.Rechnungsdatum " & setSQLWhere("VERAG", "'AT'") & whereKundennrKreisLieferanten & " 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,Adressen.AdressenNr, [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 " & sqlfehlendePDF_PLOSE & IIf(kdNr > 0, " AND Adressen.AdressenNr=" & kdNr, "") & " and [plInv_SupplierRechnungsDatum] " & setSQLWhere("PLOSE", "plInv_SupplierCountry") & whereKundennrKreisLieferanten & "-- Order by plInv_SupplierRechnungsDatum desc, [plInv_SupplierRechnungsNr]
UNION ALL
--RMC
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'RMC' as Lieferant,-1 as invoice_id,Adressen.AdressenNr, [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 " & sqlfehlendePDF_RMC & IIf(kdNr > 0, " AND AdressenNr=" & kdNr, "") & " and [rmc_reDatum] " & setSQLWhere("RMC", "rmc_landKZ") & whereKundennrKreisLieferanten & "-- order by rmc_reDatum, rmc_reNr
) as temp where 1=1 and temp.Rechnungsdatum" & setSQLWhere(SDLNrTmp, "temp.Land") & whereKundennrKreisAlle & " order by Rechnungsdatum desc"
Case Else
Exit Sub
End Select
newBinding(SDLNrTmp, SQL_STR)
initBtnClick(getSDLNrButton(SDLNrTmp))
Dim sumBtto As Double = 0
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
For Each r As DataGridViewRow In .Rows
sumBtto += If(IsNumeric(r.Cells("Bruttobetrag").Value), CDbl(r.Cells("Bruttobetrag").Value), 0)
Next
lblSumBto.Text = CDbl(sumBtto).ToString("C2")
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
'das hier geht (aktuell) nur PRO KUNDE -> ALSO nicht in der Gesamtübersicht!!!!!!!!
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
'das hier ist nur PRO KUNDE möglich!!!
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")
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL("ALLE", txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL("ALLE")
End If
End Sub
Private Sub btnSDL_IDS_Click(sender As Object, e As EventArgs) Handles btnSDL_IDS.Click
'SET_SDL("IDS")
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL("IDS", txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL("IDS")
End If
End Sub
Private Sub btnSDL_UTA_Click(sender As Object, e As EventArgs) Handles btnSDL_UTA.Click
'SET_SDL("UTA")
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL("UTA", txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL("UTA")
End If
End Sub
Private Sub btnSDL_Hugo_Click(sender As Object, e As EventArgs) Handles btnSDL_Hugo.Click
'SET_SDL("HUGO")
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL("HUGO", txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL("HUGO")
End If
End Sub
Private Sub btnSDL_PLOSE_Click(sender As Object, e As EventArgs) Handles btnSDL_PLOSE.Click
'SET_SDL("PLOSE")
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL("PLOSE", txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL("PLOSE")
End If
End Sub
Private Sub btnSDL_MautMSE_Click(sender As Object, e As EventArgs) Handles btnSDL_MautMSE.Click
'SET_SDL("MSE")
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL("MSE", txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL("MSE")
End If
End Sub
Private Sub btnSDL_MotorWay_Click(sender As Object, e As EventArgs)
'SET_SDL("MW")
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL("MW", txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL("MW")
End If
End Sub
Private Sub btnSDL_FREJUS_Click(sender As Object, e As EventArgs) Handles btnSDL_FREJUS.Click
'SET_SDL("FREJUS")
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL("FREJUS", txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL("FREJUS")
End If
End Sub
Private Sub btnVERAGCardNew_Click(sender As Object, e As EventArgs) Handles btnVERAGCardNew.Click
'SET_SDL("VERAG")
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL("VERAG", txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL("VERAG")
End If
End Sub
Private Sub btnSDL_RMC_Click(sender As Object, e As EventArgs) Handles btnSDL_RMC.Click
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL("RMC", txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL("RMC")
End If
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
Dim groups As New Dictionary(Of Object, List(Of DataGridViewRow))
For Each r As DataGridViewRow In dgvLFRechnung.SelectedRows
Dim key = r.Cells("AdressenNr").Value
If Not groups.ContainsKey(key) Then
groups(key) = New List(Of DataGridViewRow)
End If
groups(key).Add(r)
Next
If aktLieferant = "ALLE" And cbxMax1000Eintrage.Checked Then
MsgBox("Entferne die MAX 1000 Einträge Beschänkung, da ansonsten nicht alle Daten ermittelt werden können!")
Exit Sub
End If
If groups.Count > 0 Then
If Not vbYes = MsgBox("Möchten Sie die Rechnungen von " & groups.Count & " Kunden per Mail verschicken? " & IIf(Not cbxMailoeffnen.Checked, vbNewLine & "Die Mails werden sofort ohne Dialogfeld verschickt!", ""), vbYesNoCancel) Then
Exit Sub
End If
For Each kvp In groups
Dim TextHTMLtable = ""
Dim pdflist = createEMailTable(TextHTMLtable, kvp, cbx.Checked)
If Not cbxMailoeffnen.Checked And Not pdflist.Any() Then
Else
createEmail(kvp.Key, TextHTMLtable, pdflist)
End If
Next
End If
End Sub
Private Function createEMailTable(ByRef TextHTMLtable As String, kvp As KeyValuePair(Of Object, List(Of DataGridViewRow)), onlyRelevantInvioces As Boolean) As List(Of String)
'------------------------------------------------------------
'toDo-Logik für die Ausnahmen - START - wie in Function "setSQLWhere(aktLieferant As String, land As String) As String"
'------------------------------------------------------------
'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 = ""
Dim KUNDE_TEMP As cKunden
KUNDE_TEMP = kundenSQL.getKundeByKdNr(kvp.Key)
If KUNDE_TEMP.LandKz <> "" Then
If KUNDE_TEMP.LandKz.Length = 2 Then
landKZiso2 = KUNDE_TEMP.LandKz
ElseIf KUNDE_TEMP.LandKz.Length = 3 Then
landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(KUNDE_TEMP.LandKz)
ElseIf KUNDE_TEMP.LandKz.Length = 1 Then
landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO1Land(KUNDE_TEMP.LandKz)
End If
End If
Dim dtKundeMWSTTemp As DataTable = (New SQL).loadDgvBySql("select LandKz from tblKundenMWST where KdNr = " & KUNDE_TEMP.KundenNr, "FMZOLL")
'2. wenn die Rechnung die Summe NULL aufweist
'3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt (auch nicht auf Diesel -> IDS)
'4. Rechnungen der Länder, in denen der Kunde selber MWST beantragt
'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 &= ")"
'------------------------------------------------------------
'toDo-Logik für die Ausnahmen - END
'------------------------------------------------------------
TextHTMLtable &= "<table border=1>"
TextHTMLtable &= "<tr><td>Supplier</td><td>Country</td><td>Date</td><td>Filename</td></tr>"
Dim pdflist As New List(Of String)
For Each row In kvp.Value
Dim erw As New cKundenErweitert(kvp.Key)
Dim Lieferant = ""
If dgvLFRechnung.Columns.Contains("Lieferant") Then
Lieferant = row.Cells("Lieferant").Value
Else
Lieferant = aktLieferant
End If
Dim sendÍnvoice As Boolean = IIf(onlyRelevantInvioces AndAlso KUNDE.KundenNr = 0, False, True)
If onlyRelevantInvioces AndAlso Lieferant <> "IDS" AndAlso erw.kde_keineMWSt Then
sendÍnvoice = True 'dann immer mitschicken!
End If
'ORIGINAL-RECHNUNG senden wenn:
If onlyRelevantInvioces Then
'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…)
If Not sendÍnvoice AndAlso row.Cells("Land").Value <> "" AndAlso landKZiso2 = row.Cells("Land").Value Then sendÍnvoice = True
'2. wenn die Rechnung die MWST-SUMME 0 aufweist!!!
If Not sendÍnvoice AndAlso row.Cells("MWSt").Value = 0 Then sendÍnvoice = True
'3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt -> dtkeineMWST
If Not sendÍnvoice AndAlso landKZiso2 <> "" AndAlso dtkeineMWST.Rows.Count > 0 Then
Dim rows() As DataRow = dtkeineMWST.Select("Lieferant <> 'IDS' AND Land = '" & landKZiso2 & "' and Erstattungsland = '" & row.Cells("Land").Value & "'")
Dim dtkeineMWST_ohneContraint As New DataTable
If rows.Length > 0 Then dtkeineMWST_ohneContraint = rows.CopyToDataTable()
If dtkeineMWST_ohneContraint.Rows.Count > 0 Then sendÍnvoice = True
End If
'4. Rechnungen der Länder, in denen der Kunde selber MWST beantragt
If Not sendÍnvoice AndAlso landKZiso2 <> "" AndAlso dtKundeMWSTTemp.Rows.Count > 0 Then
Dim rows() As DataRow = dtKundeMWSTTemp.Select("LandKz = '" & row.Cells("Land").Value & "'")
Dim dtKundeMWSTTemp_ohneContraint As New DataTable
If rows.Length > 0 Then dtKundeMWSTTemp_ohneContraint = rows.CopyToDataTable()
If dtKundeMWSTTemp_ohneContraint.Rows.Count > 0 Then sendÍnvoice = True
End If
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>"
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())
TextHTMLtable &= "<td><b>" & DS.da_name & "</b></td>"
Else
TextHTMLtable &= "<td><b>-</b></td>"
End If
TextHTMLtable &= "</tr>"
Next
Else
If sendÍnvoice Then
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>"
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())
TextHTMLtable &= "<td><b>" & DS.da_name & "</b></td>"
Else
TextHTMLtable &= "<td><b>-</b></td>"
End If
TextHTMLtable &= "</tr>"
End If
End If
End If
Next
TextHTMLtable &= "</table>"
Return pdflist
End Function
Private Sub createEmail(kdNr As Integer, ByRef TextHTMLtable As String, pdflist As List(Of String))
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Dim kundeMail As New cKunden()
kundeMail = kundenSQL.getKundeByKdNr(kdNr)
Select Case kundeMail.LandKz
Case "TR"
Mail.Subject = kundeMail.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 = kundeMail.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 = kundeMail.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 = kundeMail.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 = kundeMail.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
Mail.HTMLBody &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
Mail.HTMLBody &= "<br>"
Mail.HTMLBody &= cFakturierung.getSignature("DE", 19, True, True)
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 &= kundeMail.EMail
Mail.CC &= kundeMail.EMail2
If cbxMailoeffnen.Checked Then
Try
Dim oAccount As Outlook.Account
Dim accountToSent = "mmdabrechnung@verag.ag"
If outl.Session.Accounts.Count > 0 Then
For Each oAccount In outl.Session.Accounts
If oAccount.SmtpAddress = accountToSent Then
Mail.SendUsingAccount = oAccount
Exit For
End If
Next
End If
Mail.Display()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
Try
If Mail IsNot Nothing Then
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "MAIL-ORIG-RG",,, kdNr)
API.api_EMail = Mail.To
API.api_EMailCC = Mail.CC
API.api_EMailBCC = IIf(Mail.BCC <> "", Mail.BCC & ";mmdabrechnung@verag.ag", "mmdabrechnung@verag.ag")
API.api_EMailSubject = Mail.Subject
API.api_EMailText = Mail.HTMLBody
API.api_EMailAttCnt = Mail.Attachments.Count
If Mail IsNot Nothing Then
If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(API.api_EMail, API.api_EMailSubject, API.api_EMailText, "mmdabrechnung@verag.ag", False, False, API.api_EMailCC, API.api_EMailBCC, pdflist,, "mmdabrechnung@verag.ag") Then
API.UPDTAE_OK()
Else
API.UPDTAE_ERR()
End If
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
End If
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
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
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL(aktLieferant, txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL(aktLieferant)
End If
End Sub
Private Sub cbx_CheckedChanged(sender As Object, e As EventArgs) Handles cbx.CheckedChanged
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL(aktLieferant, txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL(aktLieferant)
End If
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
Private Sub cbxMax1000Eintrage_CheckedChanged(sender As Object, e As EventArgs) Handles cbxMax1000Eintrage.CheckedChanged
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL(aktLieferant, txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL(aktLieferant)
End If
End Sub
Private Sub chxfehlendePDFs_CheckedChanged(sender As Object, e As EventArgs) Handles cbxPDFhinterlegt.CheckStateChanged
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL(aktLieferant, txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL(aktLieferant)
End If
End Sub
Private Sub txtKundenNrvon_TextChanged(sender As Object, e As EventArgs) Handles txtKundenNrvon.TextChanged, txtKundenNrbis.TextChanged
If txtKundenNrvon.Text <> "" AndAlso txtKundenNrvon.Text.Length = 6 AndAlso IsNumeric(txtKundenNrvon.Text) AndAlso txtKundenNrbis.Text <> "" AndAlso txtKundenNrbis.Text.Length = 6 AndAlso IsNumeric(txtKundenNrbis.Text) Then
SET_SDL(aktLieferant, txtKundenNrvon.Text, txtKundenNrbis.Text)
ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then
SET_SDL(aktLieferant)
End If
End Sub
End Class