Imports System.IO Imports System.Reflection Imports com.sun.tools.corba.se.idl Imports DocumentFormat.OpenXml.VariantTypes Imports MDM_Worker 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 Dim countbtcNotSet As Integer = 0 Dim countMissingInvoices As Integer = 0 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 If kdNr > 0 Then txtKundenNrvon.Text = kdNr txtKundenNrbis.Text = kdNr End If If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMINFUNCTIONS", "SDL") Then cbxTest.Visible = True End If 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, cast(1 as bit) as OrigRE 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 " & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, whereKundennrKreisLieferanten) & ") " & sqlfehlendePDF & " 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, cast(archiv as bit) as archiv,cast(isnull(InvToCustomer, 0) as bit) as OrigRE 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, InvToCustomer " 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, cast(0 as bit) as OrigRE 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, cast(isnull(plInv_InvToCustomer, 0) as bit) as OrigRE 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, cast(isnull(InvToCustomer, 0) as bit) as OrigRE 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, cast(isnull(InvToCustomer, 0) as bit) as OrigRE 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, cast(1 as bit) as OrigRE 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, cast(isnull(InvToCustomer, 0) as bit) as OrigRE 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, cast(isnull(InvToCustomer, 0) as bit) as OrigRE 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], InvToCustomer 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, cast(0 as bit) as OrigRE 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, cast(0 as bit) as OrigRE 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, cast(isnull(plInv_InvToCustomer, 0) as bit) as OrigRE 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, cast(isnull(InvToCustomer, 0) as bit) as OrigRE 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 aktLieferant <> "IDS" Then 'IDS Default auf True gesetzt! Dim invToCustomer As String = "" Select Case cbx.CheckState ' Case CheckState.Unchecked : invToCustomer = "0" Hier alle anzeigen!!! Case CheckState.Checked : invToCustomer = "1" End Select If invToCustomer <> "" Then Select Case aktLieferant 'Case "IDS" : SQLWhere &= " AND isnull(InvToCustomer,0) =" & invToCustomer Case "PLOSE" : SQLWhere &= " AND isnull(plInv_InvToCustomer,0) =" & invToCustomer Case "MSE" : SQLWhere &= " AND isnull(InvToCustomer,0) =" & invToCustomer Case "RMC" : SQLWhere &= " AND isnull(InvToCustomer,0) =" & invToCustomer Case "UTA" : SQLWhere &= " AND isnull(InvToCustomer,0) =" & invToCustomer Case "VERAG" : SQLWhere &= " AND 1 <> " & invToCustomer Case "_" : SQLWhere &= " AND 1 <> " & invToCustomer Case "UTA_" : SQLWhere &= " AND 1 <> " & invToCustomer End Select End If 'If cbx.Checked AndAlso aktLieferant <> "IDS" AndAlso KUNDE IsNot Nothing Then ' wird nicht mehr benötigt weil Info direkt in DB gespeichert wird! '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 dtKundeMWST IsNot Nothing Then ' 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 '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) As String 'das hier ist nur PRO KUNDE möglich!!! 'Ob orig-Rechnung wird nun in der Datenbank gesetzt!!!! ' wird nicht mehr benötigt weil Info direkt in DB gespeichert wird! Dim SQLWhere = "" Dim invToCustomer As String = "" Select Case cbx.CheckState 'Case CheckState.Unchecked : invToCustomer = "0" Case CheckState.Checked : invToCustomer = "1" End Select If invToCustomer <> "" Then SQLWhere &= " AND isnull(InvToCustomer,0) =" & invToCustomer End If 'If (cbx.Checked AndAlso KUNDE IsNot Nothing AndAlso KUNDE.KundenNr > 0 OrElse cbx.Checked AndAlso KundenNr_Input > 0) Then ' Dim checkKundenNR As Integer = -1 ' If KUNDE.KundenNr > 0 Then ' checkKundenNR = KUNDE.KundenNr ' ElseIf KundenNr_Input > 0 Then ' checkKundenNR = KundenNr_Input ' KUNDE = kundenSQL.getKundeByKdNr(KundenNr_Input) ' End If ' Dim erw As New cKundenErweitert(checkKundenNR) ' 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 dtKundeMWST Is Nothing Then ' If dtKundeMWSTTemp IsNot Nothing Then ' If land <> "" AndAlso dtKundeMWSTTemp.Rows.Count > 0 Then ' Dim counter = 0 ' Dim landBez As String = "" ' For Each row As DataRow In dtKundeMWSTTemp.Rows ' landBez &= "'" & row.Item("LandKz") & "'" ' counter = counter + 1 ' If (dtKundeMWSTTemp.Rows.Count <> 0 And counter <> dtKundeMWSTTemp.Rows.Count) Then landBez &= "," ' Next ' SQLWhere &= " OR " & land & " in (" & landBez & ")" ' End If ' SQLWhere &= ")" ' End If ' Else ' 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 'End If 'If dtKundeMWST Is Nothing AndAlso dtKundeMWSTTemp Is Nothing Then ' 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") Dim btcNotSet As Integer = 0 Dim uta As cUTA Dim ids As cIDS Dim rmc As cRMC Dim ploseRE As cPLOSE_Inv_Data Dim mse As cMSEAPI 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) btcNotSet += ids.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL, txtKundenNrvon.Text, txtKundenNrbis.Text) btcNotSet += uta.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL, txtKundenNrvon.Text, txtKundenNrbis.Text) btcNotSet += rmc.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL, txtKundenNrvon.Text, txtKundenNrbis.Text) btcNotSet += ploseRE.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL, txtKundenNrvon.Text, txtKundenNrbis.Text) btcNotSet += mse.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL, txtKundenNrvon.Text, txtKundenNrbis.Text) lblCountOrigRechnungen.Text = btcNotSet countbtcNotSet = btcNotSet ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then SET_SDL("ALLE") btcNotSet += ids.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL) btcNotSet += uta.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL) btcNotSet += rmc.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL) btcNotSet += ploseRE.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL) btcNotSet += mse.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL) lblCountOrigRechnungen.Text = btcNotSet countbtcNotSet = btcNotSet End If End Sub Private Sub btnSDL_IDS_Click(sender As Object, e As EventArgs) Handles btnSDL_IDS.Click 'SET_SDL("IDS") Dim ids As New cIDS 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) Dim btcNotSet As Integer = ids.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL, txtKundenNrvon.Text, txtKundenNrbis.Text) lblCountOrigRechnungen.Text = btcNotSet countbtcNotSet = btcNotSet Dim missingInvoices As Integer = ids.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value,, txtKundenNrvon.Text, txtKundenNrbis.Text) lblCountMissingInvoices.Text = missingInvoices countMissingInvoices = missingInvoices ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then SET_SDL("IDS") Dim btcNotSet As Integer = ids.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL) lblCountOrigRechnungen.Text = btcNotSet countbtcNotSet = btcNotSet Dim missingInvoices As Integer = ids.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value) lblCountMissingInvoices.Text = missingInvoices countMissingInvoices = missingInvoices End If End Sub Private Sub btnSDL_UTA_Click(sender As Object, e As EventArgs) Handles btnSDL_UTA.Click 'SET_SDL("UTA") Dim uta As cUTA 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) Dim btcNotSet As Integer = uta.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL, txtKundenNrvon.Text, txtKundenNrbis.Text) lblCountOrigRechnungen.Text = btcNotSet countbtcNotSet = btcNotSet Dim missingInvoices As Integer = uta.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value, , txtKundenNrvon.Text, txtKundenNrbis.Text) lblCountMissingInvoices.Text = missingInvoices countMissingInvoices = missingInvoices ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then SET_SDL("UTA") Dim btcNotSet As Integer = uta.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL) lblCountOrigRechnungen.Text = btcNotSet countbtcNotSet = btcNotSet Dim missingInvoices As Integer = uta.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value) lblCountMissingInvoices.Text = missingInvoices countMissingInvoices = missingInvoices 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") Dim ploseRE As cPLOSE_Inv_Data 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) Dim btcNotSet As Integer = ploseRE.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL, txtKundenNrvon.Text, txtKundenNrbis.Text) lblCountOrigRechnungen.Text = btcNotSet countbtcNotSet = btcNotSet Dim missingInvoices As Integer = ploseRE.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value,, txtKundenNrvon.Text, txtKundenNrbis.Text) lblCountMissingInvoices.Text = missingInvoices countMissingInvoices = missingInvoices ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then SET_SDL("PLOSE") Dim btcNotSet As Integer = ploseRE.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL) lblCountOrigRechnungen.Text = btcNotSet countbtcNotSet = btcNotSet Dim missingInvoices As Integer = ploseRE.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value) lblCountMissingInvoices.Text = missingInvoices countMissingInvoices = missingInvoices End If End Sub Private Sub btnSDL_MautMSE_Click(sender As Object, e As EventArgs) Handles btnSDL_MautMSE.Click 'SET_SDL("MSE") Dim MSE As cMSEAPI 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) Dim btcNotSet As Integer = MSE.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL, txtKundenNrvon.Text, txtKundenNrbis.Text) lblCountOrigRechnungen.Text = btcNotSet countbtcNotSet = btcNotSet Dim missingInvoices As Integer = MSE.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value, , txtKundenNrvon.Text, txtKundenNrbis.Text) lblCountMissingInvoices.Text = missingInvoices countMissingInvoices = missingInvoices ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then SET_SDL("MSE") Dim btcNotSet As Integer = MSE.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL) lblCountOrigRechnungen.Text = btcNotSet countbtcNotSet = btcNotSet Dim missingInvoices As Integer = MSE.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value) lblCountMissingInvoices.Text = missingInvoices countMissingInvoices = missingInvoices 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 Dim rmc As cRMC 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) Dim btcNotSet As Integer = rmc.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL, txtKundenNrvon.Text, txtKundenNrbis.Text) lblCountOrigRechnungen.Text = btcNotSet countbtcNotSet = btcNotSet Dim missingInvoices As Integer = rmc.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value,, txtKundenNrvon.Text, txtKundenNrbis.Text) lblCountMissingInvoices.Text = missingInvoices countMissingInvoices = missingInvoices ElseIf txtKundenNrvon.Text = "" AndAlso txtKundenNrbis.Text = "" Then SET_SDL("RMC") Dim btcNotSet As Integer = rmc.countBackToCustomerNotSet(New VERAG_PROG_ALLGEMEIN.SQL) lblCountOrigRechnungen.Text = btcNotSet countbtcNotSet = btcNotSet Dim missingInvoices As Integer = rmc.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value) lblCountMissingInvoices.Text = missingInvoices countMissingInvoices = missingInvoices 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 countbtcNotSet > 0 Then MsgBox("ACHTUNG!" & vbNewLine & "es wurden bei " & countbtcNotSet & " Rechnungen die Werte für das Rücksenden der Originalrechnung nicht gesetzt!" & vbNewLine & "Bitte an Administrator wenden") 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 pdflist.Count > 0 Then 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) ' wird nicht mehr benötigt weil Info direkt in DB gespeichert wird! '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") TextHTMLtable &= "
| Supplier | Country | Date | Filename | |
| " & Lieferant & " | " TextHTMLtable &= "" & r.Item("Land") & " | " TextHTMLtable &= "" & r.Item("Rechnungsdatum") & " | " 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 &= "" & DS.da_name & " | " Else TextHTMLtable &= "- | " End If TextHTMLtable &= "
| " & Lieferant & " | " TextHTMLtable &= "" & row.Cells("Land").Value & " | " TextHTMLtable &= "" & row.Cells("Rechnungsdatum").Value & " | " 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 &= "" & DS.da_name & " | " Else TextHTMLtable &= "- | " End If TextHTMLtable &= "