ustva, Fremdrechnungen, ids

This commit is contained in:
2025-03-12 11:11:03 +01:00
parent d5e9ecbd84
commit 80f838ad28
6 changed files with 496 additions and 90 deletions

View File

@@ -24,6 +24,7 @@ Partial Class usrcntlFremdrechnungen
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
Me.DetailsAnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.FlowLayoutPanel = New System.Windows.Forms.FlowLayoutPanel()
Me.btnSDL_Alle = New System.Windows.Forms.Button()
@@ -54,6 +55,7 @@ Partial Class usrcntlFremdrechnungen
Me.Panel3 = New System.Windows.Forms.Panel()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.dgvLFRechnung = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.dgvDetails = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.Panel4 = New System.Windows.Forms.Panel()
Me.cntxtExcel = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.ToolStripMenuItem3 = New System.Windows.Forms.ToolStripMenuItem()
@@ -64,8 +66,10 @@ Partial Class usrcntlFremdrechnungen
Me.Panel3.SuspendLayout()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
CType(Me.dgvLFRechnung, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.dgvDetails, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Panel4.SuspendLayout()
Me.cntxtExcel.SuspendLayout()
Me.SuspendLayout()
@@ -388,7 +392,6 @@ Partial Class usrcntlFremdrechnungen
Me.Button4.Text = "Details" & Global.Microsoft.VisualBasic.ChrW(10) & "anzeigen"
Me.Button4.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.Button4.UseVisualStyleBackColor = True
Me.Button4.Visible = False
'
'Button5
'
@@ -449,6 +452,10 @@ Partial Class usrcntlFremdrechnungen
'
Me.SplitContainer1.Panel1.AutoScroll = True
Me.SplitContainer1.Panel1.Controls.Add(Me.dgvLFRechnung)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.dgvDetails)
Me.SplitContainer1.Panel2MinSize = 0
Me.SplitContainer1.Size = New System.Drawing.Size(1356, 799)
Me.SplitContainer1.SplitterDistance = 559
@@ -471,6 +478,23 @@ Partial Class usrcntlFremdrechnungen
Me.dgvLFRechnung.Size = New System.Drawing.Size(1354, 770)
Me.dgvLFRechnung.TabIndex = 29
'
'dgvDetails
'
Me.dgvDetails.AKTUALISIERUNGS_INTERVALL = 1000
Me.dgvDetails.AllowUserToAddRows = False
Me.dgvDetails.AllowUserToDeleteRows = False
Me.dgvDetails.AllowUserToResizeColumns = False
Me.dgvDetails.AllowUserToResizeRows = False
DataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
Me.dgvDetails.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2
Me.dgvDetails.BackgroundColor = System.Drawing.Color.White
Me.dgvDetails.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.dgvDetails.Location = New System.Drawing.Point(-1, 3)
Me.dgvDetails.Name = "dgvDetails"
Me.dgvDetails.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect
Me.dgvDetails.Size = New System.Drawing.Size(1352, 228)
Me.dgvDetails.TabIndex = 30
'
'Panel4
'
Me.Panel4.BackColor = System.Drawing.Color.White
@@ -515,9 +539,11 @@ Partial Class usrcntlFremdrechnungen
Me.Panel1.PerformLayout()
Me.Panel3.ResumeLayout(False)
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel2.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
CType(Me.dgvLFRechnung, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.dgvDetails, System.ComponentModel.ISupportInitialize).EndInit()
Me.Panel4.ResumeLayout(False)
Me.cntxtExcel.ResumeLayout(False)
Me.ResumeLayout(False)
@@ -557,4 +583,5 @@ Partial Class usrcntlFremdrechnungen
Friend WithEvents cbx As CheckBox
Friend WithEvents dat_Sum_Bis As DateTimePicker
Friend WithEvents dat_Sum_Von As DateTimePicker
Friend WithEvents dgvDetails As VERAG_PROG_ALLGEMEIN.MyDatagridview
End Class

View File

@@ -1,5 +1,7 @@
Imports System.Reflection
Imports javax.xml.bind
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Public Class usrcntlFremdrechnungen
Dim KUNDE As New cKunden
@@ -10,7 +12,7 @@ Public Class usrcntlFremdrechnungen
Dim FUNC As New cProgramFunctions
Dim aktbtn As String = ""
Dim dgvInitWait As Boolean = False
Dim aktSDLNr As Integer = -1
Dim aktLieferant As String = "ALLE"
Dim fullyPainted = False
@@ -70,7 +72,7 @@ Public Class usrcntlFremdrechnungen
KUNDE = kundenSQL.getKundeByKdNr(kdNr)
SET_SDL(-1)
SET_SDL("")
dgvInitWait = False
Panel3.Visible = True
@@ -195,7 +197,7 @@ Public Class usrcntlFremdrechnungen
Sub SET_SDL(SDLNrTmp)
aktSDLNr = SDLNrTmp
aktLieferant = SDLNrTmp
Dim anzahlTop = 1000
@@ -204,61 +206,61 @@ Public Class usrcntlFremdrechnungen
Select Case SDLNrTmp
'IDS
Case 100 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer, CustomerCode as Kundennummer,[daId],[TransactionVolume] as Transaktionsmenge,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblIDSInvoicesNew WHERE [CustomerCode] in (SELECT distinct([CustomerCode]) FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE 1 = 1 " & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, "") & ") and [YearMonthDay] " & setSQLWhere(SDLNrTmp, "") & " order by [YearMonthDay] desc, [Invoicenumber]"
Case "IDS" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" invoice_id, [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer, CustomerCode as Kundennummer,[daId],[TransactionVolume] as Transaktionsmenge,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblIDSInvoicesNew WHERE [CustomerCode] in (SELECT distinct([CustomerCode]) FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE 1 = 1 " & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, "") & ") and [YearMonthDay] " & setSQLWhere(SDLNrTmp, "") & " order by [YearMonthDay] desc, [Invoicenumber]"
'UTA
Case 212 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
Case "UTA" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" [Rechnungsdatum],[Rechnungsnummer_pro_Lieferland] as Rechnungsnummer,Kundennummer,SUM(Gesamtbetrag_Brutto_in_Darstellwährung) as Bruttobetrag,SUM(Gesamtbetrag_Netto_in_Darstellwährung) as Nettobetrag, SUM(Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) as MWSt,[daId],[Lieferland_ISO2] as Land, 'RE' as Art, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTAImportNew] inner join adressen on Kundennummer = UTAKundenNr where 1 = 1 " & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " AND [Rechnungsdatum] " & setSQLWhere(SDLNrTmp, "Land") & " group by [Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],[Lieferland_ISO2]"
SQL_STR &= " UNION ALL SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") & " [Datum], [RechnungsNr],[KundenNr],0,0,0,[daId],'',[DocumentTyp], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTADocuments] inner join adressen on KundenNr = UTAKundenNr where 1 = 1 " & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " and [Datum] " & setSQLWhere(SDLNrTmp, "") & " order by Rechnungsdatum desc"
'PLOSE
Case 214 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
Case "PLOSE" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" [plInv_SupplierRechnungsDatum] as Rechnungsdatum, [plInv_SupplierRechnungsNr] as Rechnungsnummer,[plInv_PLOSEKundennummer] as Kundennummer,[plInv_Nettobetrag] as Nettobetrag,[plInv_MWSTBetrag] as MWST,[plInv_Bruttobetrag] as Bruttobetrag,[plInv_daId] as daId, [plInv_SupplierCountry] as Land, cast(case when [plInv_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblPLOSE_Inv_Data inner join Adressen on Adressen.PLOSEKundenNr = plInv_PLOSEKundennummer where 1 = 1 " & IIf(kdNr > 0, " AND Adressen.AdressenNr=" & kdNr, "") & " and [plInv_SupplierRechnungsDatum] " & setSQLWhere(SDLNrTmp, "plInv_SupplierCountry") & " Order by plInv_SupplierRechnungsDatum desc, [plInv_SupplierRechnungsNr]"
'MSE
Case 208 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
Case "MSE" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" [invoice_date] as Rechnungsdatum, [invoice_id] as Rechnungsnummer/*,[invoice_nr]*/,[customer_number] as Kundennummer, daId, [total_amount_euro] as Brutto_EUR ,[total_vat_amount_euro] as MWST,[country] as Land, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblMSEInvoices where customer_number in (select customer_id from tblMSECustomers where 1 = 1 " & IIf(kdNr > 0, " AND [partner_customer_number]=" & kdNr, "") & " and [invoice_date] " & setSQLWhere(SDLNrTmp, "country") & " ) order by invoice_date desc, invoice_id"
'VERAG
Case 502 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
Case "VERAG" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
" tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer , tblTrdinInvoice.SteuerbetragLokal, 1 as daId, cast(1 as bit) as PDFvorhanden FROM tblTrdinInvoice WHERE 1 = 1 " & IIf(kdNr > 0, " AND tblTrdinInvoice.RechnungsKundenNr=" & kdNr, "") & " AND tblTrdinInvoice.FilialenNr = 4814 and tblTrdinInvoice.Rechnungsdatum " & setSQLWhere(SDLNrTmp, "'AT'") & " ORDER BY tblTrdinInvoice.Rechnungsdatum desc, tblTrdinInvoice.Rechnungsnummer"
'RMC
Case 999 : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
Case "RMC" : SQL_STR = "SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahlTop, "") &
"[rmc_reDatum] as Rechnungsdatum,[rmc_reNr] as Rechnungsnummer,rmc_kdNr as Kundennummer,[rmc_betragNetto] as Nettobetrag,[rmc_betragBrutto] as Bruttobetrag,[rmc_waehrung] as Währung ,[rmc_euroBrutto] as Brutto_EUR,[rmc_daId] as daId,[rmc_betragMWST] as MWST,rmc_landKZ as Land, cast(case when [rmc_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblRMCImport] inner join Adressen on Adressen.WölflKundenNr = rmc_kdNr where 1 = 1 " & IIf(kdNr > 0, " AND AdressenNr=" & kdNr, "") & " and [rmc_reDatum] " & setSQLWhere(SDLNrTmp, "rmc_landKZ") & " order by rmc_reDatum desc, rmc_reNr"
Case -1 : Dim anzahl As Integer = anzahlTop / 6 : SQL_STR = " select * from (SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") &
Case "ALLE" : Dim anzahl As Integer = anzahlTop / 6 : SQL_STR = " select * from (SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") &
"
--IDS
'IDS' as Lieferant, [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer,CustomerCode as Kundennummer,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt,'' as Land, 'RE' as Art,[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblIDSInvoicesNew WHERE [CustomerCode] = (SELECT TOP 1 [CustomerCode] FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE 1 = 1 " & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, "") & " ORDER BY Zeitstempel DESC) and [YearMonthDay] " & setSQLWhere(SDLNrTmp, "") & " order by [YearMonthDay], [Invoicenumber]
'IDS' as Lieferant,invoice_id, [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer,CustomerCode as Kundennummer,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt,'' as Land, 'RE' as Art,[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblIDSInvoicesNew WHERE [CustomerCode] = (SELECT TOP 1 [CustomerCode] FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE 1 = 1 " & IIf(kdNr > 0, " AND [KdNrVERAG]=" & kdNr, "") & " ORDER BY Zeitstempel DESC) and [YearMonthDay] " & setSQLWhere(SDLNrTmp, "") & " order by [YearMonthDay], [Invoicenumber]
UNION ALL
--MSE
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'MSE' as Lieferant, [invoice_date] as Rechnungsdatum, cast([invoice_id] as nvarchar) as Rechnungsnummer,[customer_number] as Kundennummer, [total_amount_euro] as Bruttobetrag ,(total_amount_euro - [total_vat_amount_euro]) as Nettobetrag ,[total_vat_amount_euro] as MWST,[country] as Land,'RE' as Art,daId, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblMSEInvoices where customer_number = (select top 1 customer_id from tblMSECustomers where 1 = 1 " & IIf(kdNr > 0, " AND [partner_customer_number]=" & kdNr, "") & " and [invoice_date] " & setSQLWhere(SDLNrTmp, "country") & " ) order by invoice_date, invoice_id
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'MSE' as Lieferant,-1 as invoice_id, [invoice_date] as Rechnungsdatum, cast([invoice_id] as nvarchar) as Rechnungsnummer,[customer_number] as Kundennummer, [total_amount_euro] as Bruttobetrag ,(total_amount_euro - [total_vat_amount_euro]) as Nettobetrag ,[total_vat_amount_euro] as MWST,[country] as Land,'RE' as Art,daId, cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblMSEInvoices where customer_number = (select top 1 customer_id from tblMSECustomers where 1 = 1 " & IIf(kdNr > 0, " AND [partner_customer_number]=" & kdNr, "") & " and [invoice_date] " & setSQLWhere(SDLNrTmp, "country") & " ) order by invoice_date, invoice_id
UNION ALL
--UTA
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'UTA' as Lieferant, [Rechnungsdatum],STR([Rechnungsnummer_pro_Lieferland]) as Rechnungsnummer,Kundennummer,SUM(Gesamtbetrag_Brutto_in_Darstellwährung) as Bruttobetrag,SUM(Gesamtbetrag_Netto_in_Darstellwährung) as Nettobetrag, SUM(Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) as MWSt,[Lieferland_ISO2] as Land, 'RE' as Art,[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTAImportNew] inner join adressen on Kundennummer = UTAKundenNr where 1 = 1 " & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " and [Rechnungsdatum] " & setSQLWhere(SDLNrTmp, "Lieferland_ISO2") & " group by [Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],[Lieferland_ISO2] UNION ALL SELECT 'UTA', [Datum], cast([RechnungsNr] as nvarchar) ,[KundenNr],0,0,0,'',[DocumentTyp],[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTADocuments] inner join adressen on KundenNr = UTAKundenNr where AdressenNr = " & kdNr & " AND Datum " & setSQLWhere(SDLNrTmp, "") & " --order by Rechnungsnummer desc
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'UTA' as Lieferant,-1 as invoice_id, [Rechnungsdatum],STR([Rechnungsnummer_pro_Lieferland]) as Rechnungsnummer,Kundennummer,SUM(Gesamtbetrag_Brutto_in_Darstellwährung) as Bruttobetrag,SUM(Gesamtbetrag_Netto_in_Darstellwährung) as Nettobetrag, SUM(Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) as MWSt,[Lieferland_ISO2] as Land, 'RE' as Art,[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTAImportNew] inner join adressen on Kundennummer = UTAKundenNr where 1 = 1 " & IIf(kdNr > 0, " AND [AdressenNr]=" & kdNr, "") & " and [Rechnungsdatum] " & setSQLWhere(SDLNrTmp, "Lieferland_ISO2") & " group by [Rechnungsnummer_pro_Lieferland],[Rechnungsdatum],Kundennummer,[daId],[Lieferland_ISO2] UNION ALL SELECT 'UTA',-1, [Datum], cast([RechnungsNr] as nvarchar) ,[KundenNr],0,0,0,'',[DocumentTyp],[daId], cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblUTADocuments] inner join adressen on KundenNr = UTAKundenNr where AdressenNr = " & kdNr & " AND Datum " & setSQLWhere(SDLNrTmp, "") & " --order by Rechnungsnummer desc
UNION ALL
--VERAG
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'VERAG' as Lieferant, tblTrdinInvoice.Rechnungsdatum, cast(tblTrdinInvoice.Rechnungsnummer as nvarchar) as Rechnungsnummer ,tblTrdinInvoice.KundenNrZentrale as Kundennummer, tblTrdinInvoice.SteuerpflichtigerBetragLokal + tblTrdinInvoice.SteuerfreierBetragLokal as Bruttobetrag ,tblTrdinInvoice.SteuerpflichtigerBetragLokal + tblTrdinInvoice.SteuerfreierBetragLokal - tblTrdinInvoice.SteuerbetragLokal as Nettobetrag ,tblTrdinInvoice.SteuerbetragLokal as MWST, 'AT' as Land, 'RE' as Art, 1 as daId, cast(1 as bit) PDFvorhanden FROM tblTrdinInvoice WHERE 1 = 1 " & IIf(kdNr > 0, " AND tblTrdinInvoice.RechnungsKundenNr=" & kdNr, "") & " and tblTrdinInvoice.Rechnungsdatum " & setSQLWhere(SDLNrTmp, "'AT'") & " AND tblTrdinInvoice.FilialenNr = 4814 ORDER BY tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'VERAG' as Lieferant,-1 as invoice_id, tblTrdinInvoice.Rechnungsdatum, cast(tblTrdinInvoice.Rechnungsnummer as nvarchar) as Rechnungsnummer ,tblTrdinInvoice.KundenNrZentrale as Kundennummer, tblTrdinInvoice.SteuerpflichtigerBetragLokal + tblTrdinInvoice.SteuerfreierBetragLokal as Bruttobetrag ,tblTrdinInvoice.SteuerpflichtigerBetragLokal + tblTrdinInvoice.SteuerfreierBetragLokal - tblTrdinInvoice.SteuerbetragLokal as Nettobetrag ,tblTrdinInvoice.SteuerbetragLokal as MWST, 'AT' as Land, 'RE' as Art, 1 as daId, cast(1 as bit) PDFvorhanden FROM tblTrdinInvoice WHERE 1 = 1 " & IIf(kdNr > 0, " AND tblTrdinInvoice.RechnungsKundenNr=" & kdNr, "") & " and tblTrdinInvoice.Rechnungsdatum " & setSQLWhere(SDLNrTmp, "'AT'") & " AND tblTrdinInvoice.FilialenNr = 4814 ORDER BY tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer
UNION ALL
--PLOSE
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'PLOSE' as Lieferant, [plInv_SupplierRechnungsDatum] as Rechnungsdatum, cast([plInv_SupplierRechnungsNr] as nvarchar) as Rechnungsnummer,[plInv_PLOSEKundennummer] as Kundennummer,[plInv_Bruttobetrag] as Bruttobetrag,[plInv_Nettobetrag] as Nettobetrag,[plInv_MWSTBetrag] as MWST, [plInv_SupplierCountry] as Land, 'RE' as Art,[plInv_daId] as daId, cast(case when [plInv_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblPLOSE_Inv_Data inner join Adressen on Adressen.PLOSEKundenNr = plInv_PLOSEKundennummer where 1 = 1 " & IIf(kdNr > 0, " AND Adressen.AdressenNr=" & kdNr, "") & " and [plInv_SupplierRechnungsDatum] " & setSQLWhere(SDLNrTmp, "plInv_SupplierCountry") & " Order by plInv_SupplierRechnungsDatum desc, [plInv_SupplierRechnungsNr]
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'PLOSE' as Lieferant,-1 as invoice_id, [plInv_SupplierRechnungsDatum] as Rechnungsdatum, cast([plInv_SupplierRechnungsNr] as nvarchar) as Rechnungsnummer,[plInv_PLOSEKundennummer] as Kundennummer,[plInv_Bruttobetrag] as Bruttobetrag,[plInv_Nettobetrag] as Nettobetrag,[plInv_MWSTBetrag] as MWST, [plInv_SupplierCountry] as Land, 'RE' as Art,[plInv_daId] as daId, cast(case when [plInv_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM tblPLOSE_Inv_Data inner join Adressen on Adressen.PLOSEKundenNr = plInv_PLOSEKundennummer where 1 = 1 " & IIf(kdNr > 0, " AND Adressen.AdressenNr=" & kdNr, "") & " and [plInv_SupplierRechnungsDatum] " & setSQLWhere(SDLNrTmp, "plInv_SupplierCountry") & " Order by plInv_SupplierRechnungsDatum desc, [plInv_SupplierRechnungsNr]
UNION ALL
--RMC
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'RMC' as Lieferant, [rmc_reDatum] as Rechnungsdatum,cast([rmc_reNr] as nvarchar) as Rechnungsnummer,rmc_kdNr as Kundennummer ,[rmc_betragBrutto] as Bruttobetrag,[rmc_betragNetto] as Nettobetrag,[rmc_betragMWST] as MWST, rmc_landKZ as Land, 'RE' as Art, [rmc_daId] as daId, cast(case when [rmc_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblRMCImport] inner join Adressen on Adressen.WölflKundenNr = rmc_kdNr where 1 = 1 " & IIf(kdNr > 0, " AND AdressenNr=" & kdNr, "") & " and [rmc_reDatum] " & setSQLWhere(SDLNrTmp, "rmc_landKZ") & " order by rmc_reDatum, rmc_reNr
SELECT " & IIf(cbxMax1000Eintrage.Checked, " top " & anzahl, "") & " 'RMC' as Lieferant,-1 as invoice_id, [rmc_reDatum] as Rechnungsdatum,cast([rmc_reNr] as nvarchar) as Rechnungsnummer,rmc_kdNr as Kundennummer ,[rmc_betragBrutto] as Bruttobetrag,[rmc_betragNetto] as Nettobetrag,[rmc_betragMWST] as MWST, rmc_landKZ as Land, 'RE' as Art, [rmc_daId] as daId, cast(case when [rmc_daId] is not null then 1 else 0 end as bit) as PDFvorhanden FROM [VERAG].[dbo].[tblRMCImport] inner join Adressen on Adressen.WölflKundenNr = rmc_kdNr where 1 = 1 " & IIf(kdNr > 0, " AND AdressenNr=" & kdNr, "") & " and [rmc_reDatum] " & setSQLWhere(SDLNrTmp, "rmc_landKZ") & " order by rmc_reDatum, rmc_reNr
) as temp where 1=1 and temp.Rechnungsdatum" & setSQLWhere(SDLNrTmp, "temp.Land", True) & " order by Rechnungsdatum desc"
@@ -296,8 +298,13 @@ Public Class usrcntlFremdrechnungen
End If
If .Columns.Contains("invoice_id") Then
.Columns("invoice_id").Visible = False
End If
End If
End With
@@ -305,32 +312,47 @@ Public Class usrcntlFremdrechnungen
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(SDLNrTmp As Integer, land As String, Optional alle As Boolean = False) As String
Private Function setSQLWhere(aktLieferant As String, land As String, Optional alle As Boolean = False) As String
Dim SQLWhere = " between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "'"
If cbx.Checked AndAlso SDLNrTmp <> 100 AndAlso KUNDE IsNot Nothing Then
If cbx.Checked AndAlso aktLieferant <> "IDS" AndAlso KUNDE IsNot Nothing Then
'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…)
If land <> "" Then SQLWhere &= " AND " & land & " not in ('" & KUNDE.LandKz & "')"
If land <> "" Then
If KUNDE.LandKz <> "" Then
Dim landKZiso2 = ""
If KUNDE.LandKz.Length = 2 Then
landKZiso2 = KUNDE.LandKz
ElseIf KUNDE.LandKz.Length = 3 Then
landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(KUNDE.LandKz)
End If
SQLWhere &= " AND " & land & " not in ('" & landKZiso2 & "')"
End If
End If
'2. wenn die Rechnung die Summe NULL aufweist
Select Case SDLNrTmp
Case 212 And Not alle : SQLWhere &= " AND Gesamtbetrag_Brutto_in_Darstellwährung <> 0" 'UTA
Case 214 And Not alle : SQLWhere &= " AND plInv_Bruttobetrag <> 0" 'PLOSE
Case 502 And Not alle : SQLWhere &= " AND (tblTrdinInvoice.SteuerpflichtigerBetragLokal + tblTrdinInvoice.SteuerfreierBetragLokal) <> 0" 'VERAG
Case 208 And Not alle : SQLWhere &= " AND total_amount_euro <> 0" 'MSE
Case 999 And Not alle : SQLWhere &= " AND rmc_betragBrutto <> 0" 'RMC
Case -1 And alle : SQLWhere &= " AND temp.Nettobetrag <> 0" 'ALLE
Select Case aktLieferant
Case "UTA" : If Not alle Then SQLWhere &= " AND Gesamtbetrag_Brutto_in_Darstellwährung <> 0" 'UTA
Case "PLOSE" : If Not alle Then SQLWhere &= " AND plInv_Bruttobetrag <> 0" 'PLOSE
Case "VERAG" : If Not alle Then SQLWhere &= " AND (tblTrdinInvoice.SteuerpflichtigerBetragLokal + tblTrdinInvoice.SteuerfreierBetragLokal) <> 0" 'VERAG
Case "MSE" : If Not alle Then SQLWhere &= " AND total_amount_euro <> 0" 'MSE
Case "RMC" : If Not alle Then SQLWhere &= " AND rmc_betragBrutto <> 0" 'RMC
Case "ALLE" : If alle Then SQLWhere &= " AND temp.Nettobetrag <> 0" 'ALLE
End Select
'3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt
@@ -353,68 +375,109 @@ Public Class usrcntlFremdrechnungen
End Function
Private Function setSQLDetailWhere(aktLieferant As String, land As String, Optional alle As Boolean = False) As String
Dim SQLWhere = ""
If cbx.Checked AndAlso KUNDE IsNot Nothing Then
'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…)
If land <> "" Then
If KUNDE.LandKz <> "" Then
Dim landKZiso2 = ""
If KUNDE.LandKz.Length = 2 Then
landKZiso2 = KUNDE.LandKz
ElseIf KUNDE.LandKz.Length = 3 Then
landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(KUNDE.LandKz)
End If
SQLWhere &= " AND " & land & " not in ('" & landKZiso2 & "')"
End If
End If
'2. wenn die Rechnung die Summe NULL aufweist
Select Case aktLieferant
Case "IDS" : If Not alle Then SQLWhere &= " AND [AmminclVAT] <> 0" 'IDS
End Select
'3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt
'4. Rechnungen der Länder, in denen der Kunde selber MWST beantragt
End If
Return SQLWhere
End Function
Function getSDLNrButton(SDLNrTmp) As Object
Select Case SDLNrTmp
Case 100 : Return btnSDL_IDS
Case 212 : Return btnSDL_UTA
Case 213 : Return btnSDL_Hugo
Case 214 : Return btnSDL_PLOSE
Case 208 : Return btnSDL_MautMSE
Case 207 : Return btnSDL_FREJUS
Case 502 : Return btnVERAGCardNew
Case 999 : Return btnSDL_RMC
Case "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(-1)
SET_SDL("ALLE")
End Sub
Private Sub btnSDL_IDS_Click(sender As Object, e As EventArgs) Handles btnSDL_IDS.Click
SET_SDL(100)
SET_SDL("IDS")
End Sub
Private Sub btnSDL_UTA_Click(sender As Object, e As EventArgs) Handles btnSDL_UTA.Click
SET_SDL(212)
SET_SDL("UTA")
End Sub
Private Sub btnSDL_Hugo_Click(sender As Object, e As EventArgs) Handles btnSDL_Hugo.Click
SET_SDL(213)
SET_SDL("HUGO")
End Sub
Private Sub btnSDL_PLOSE_Click(sender As Object, e As EventArgs) Handles btnSDL_PLOSE.Click
SET_SDL(214)
SET_SDL("PLOSE")
End Sub
Private Sub btnSDL_MautMSE_Click(sender As Object, e As EventArgs) Handles btnSDL_MautMSE.Click
SET_SDL(208)
SET_SDL("MSE")
End Sub
Private Sub btnSDL_MotorWay_Click(sender As Object, e As EventArgs)
SET_SDL(205)
SET_SDL("MW")
End Sub
Private Sub btnSDL_FREJUS_Click(sender As Object, e As EventArgs) Handles btnSDL_FREJUS.Click
SET_SDL(207)
SET_SDL("FREJUS")
End Sub
Private Sub btnVERAGCardNew_Click(sender As Object, e As EventArgs) Handles btnVERAGCardNew.Click
SET_SDL(502)
SET_SDL("VERAG")
End Sub
Private Sub btnSDL_RMC_Click(sender As Object, e As EventArgs) Handles btnSDL_RMC.Click
SET_SDL(999)
SET_SDL("RMC")
End Sub
Sub newBinding(sdlNr As Integer, ByVal sql As String)
Sub newBinding(aktLieferant As String, ByVal sql As String)
dgvInitWait = True
' bindingSDL = Nothing
dgvLFRechnung.Columns.Clear()
@@ -429,7 +492,7 @@ Public Class usrcntlFremdrechnungen
dgvLFRechnung.LOAD()
lblEinträge.Text = dgvLFRechnung.RowCount & " Einträge"
If dgvLFRechnung.RowCount >= 200 Then lblEinträge.Text = dgvLFRechnung.RowCount & " Einträge " & IIf(cbxMax1000Eintrage.Checked, "(Anzeige auf 200 beschränkt)", "")
If dgvLFRechnung.RowCount >= 200 Then lblEinträge.Text = dgvLFRechnung.RowCount & " Einträge " & IIf(cbxMax1000Eintrage.Checked, "(Anzeige auf 1000 beschränkt)", "")
dgvInitWait = False
@@ -460,11 +523,11 @@ Public Class usrcntlFremdrechnungen
End Sub
Sub reClick()
getSDLNrButton(aktSDLNr).PerformClick()
getSDLNrButton(aktLieferant).PerformClick()
End Sub
Sub refreshDgv(kdNr, SDLNr, Optional Kfz = "", Optional History = "")
SET_SDL(aktSDLNr)
SET_SDL(aktLieferant)
dgvLFRechnung.ClearSelection()
If Kfz <> "" And History <> "" Then
@@ -505,7 +568,7 @@ Public Class usrcntlFremdrechnungen
End If
End Sub
Private Sub dgvSDL_SelectionChanged(sender As Object, e As EventArgs) Handles dgvLFRechnung.Click
'ReloadLeistung()
ReloadRechnungsdetails()
End Sub
@@ -517,7 +580,7 @@ Public Class usrcntlFremdrechnungen
Dim TextHTMLtable = ""
TextHTMLtable &= "<table border=1>"
TextHTMLtable &= "<tr><td>Lieferant</td><td>Land</td><td>Datum</td></tr>"
TextHTMLtable &= "<tr><td>Supplier</td><td>Country</td><td>Date</td></tr>"
Dim pdflist As New List(Of String)
For Each row In dgvLFRechnung.SelectedRows
@@ -528,15 +591,7 @@ Public Class usrcntlFremdrechnungen
If dgvLFRechnung.Columns.Contains("Lieferant") Then
Lieferant = row.Cells("Lieferant").Value
Else
Select Case aktSDLNr
Case 100 : Lieferant = "IDS"
Case 212 : Lieferant = "UTA"
Case 214 : Lieferant = "PLOSE"
Case 208 : Lieferant = "MSE"
Case 502 : Lieferant = "VERAG"
Case 999 : Lieferant = "RMC"
End Select
Lieferant = aktLieferant
End If
If Lieferant = "VERAG" Then
@@ -550,22 +605,53 @@ Public Class usrcntlFremdrechnungen
' cFakturierung.doRechnungsDruck_SRorER(da_id,, False, 3)
'End If
Else
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & IIf(dgvLFRechnung.Columns.Contains("Lieferant"), row.Cells("Lieferant").Value, Lieferant) & "</b></td>"
TextHTMLtable &= "<td><b>" & row.Cells("Land").Value & "</b></td>"
TextHTMLtable &= "<td><b>" & row.Cells("Rechnungsdatum").Value & "</b></td>"
TextHTMLtable &= "</tr>"
'
If Lieferant = "IDS" Then
Dim dt As New DataTable
dt = initDGVRechnungsdetails(row.Cells("invoice_id").value, True)
For Each r As DataRow In dt.Rows
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & Lieferant & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("Land") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("Rechnungsdatum") & "</b></td>"
TextHTMLtable &= "</tr>"
Dim daId = r.Item("daId")
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
pdflist.Add(DS.GET_TOP1_PATH())
End If
Next
Dim daId = row.Cells("daId").Value
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
pdflist.Add(DS.GET_TOP1_PATH())
Else
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & Lieferant & "</b></td>"
TextHTMLtable &= "<td><b>" & row.Cells("Land").Value & "</b></td>"
TextHTMLtable &= "<td><b>" & row.Cells("Rechnungsdatum").Value & "</b></td>"
TextHTMLtable &= "</tr>"
Dim daId = row.Cells("daId").Value
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
pdflist.Add(DS.GET_TOP1_PATH())
End If
End If
End If
Next
@@ -689,7 +775,7 @@ Public Class usrcntlFremdrechnungen
Private Sub Button1_Click_2(sender As Object, e As EventArgs) Handles Button1.Click
SET_SDL(aktSDLNr)
SET_SDL(aktLieferant)
End Sub
@@ -717,8 +803,8 @@ Public Class usrcntlFremdrechnungen
Try
If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then
Select Case aktSDLNr
Case 502 'VERAG
Select Case aktLieferant
Case "VERAG"
Dim ReDat = dgvLFRechnung.Rows(e.RowIndex).Cells("Rechnungsdatum").Value
Dim ReNr = dgvLFRechnung.Rows(e.RowIndex).Cells("Rechnungsnummer").Value
@@ -728,7 +814,7 @@ Public Class usrcntlFremdrechnungen
cFakturierung.doRechnungsDruck_SRorER(da_id,, False, 3)
End If
Case -1 'ALLE
Case "ALLE"
Dim Lieferant = dgvLFRechnung.Rows(e.RowIndex).Cells("Lieferant").Value
If Lieferant = "VERAG" Then
@@ -780,11 +866,11 @@ Public Class usrcntlFremdrechnungen
End Sub
Private Sub dat_Sum_Von_Leave(sender As Object, e As EventArgs) Handles dat_Sum_Von.Leave, dat_Sum_Bis.Leave
SET_SDL(aktSDLNr)
SET_SDL(aktLieferant)
End Sub
Private Sub cbx_CheckedChanged(sender As Object, e As EventArgs) Handles cbx.CheckedChanged
SET_SDL(aktSDLNr)
SET_SDL(aktLieferant)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs)
@@ -857,4 +943,117 @@ Public Class usrcntlFremdrechnungen
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
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)
End Select
Else
dgvDetails.Visible = False
End If
End If
Catch ex As Exception
'Neuer eintrag
MsgBox(ex.Message & ex.StackTrace)
End Try
End If
End Sub
Private Function initDGVRechnungsdetails(rechnugnsID As Integer, Optional setDatatable As Boolean = False) As DataTable
Dim sql = " select [YearMonthDay] as Rechnungsdatum,[Invoicenumber] as Rechnungsnummer, CustomerCode as Kundennummer,[daId],[TransactionVolume] as Transaktionsmenge,[AmminclVAT] as Bruttobetrag,[TotalNetAmount] as Nettobetrag,[VATAmount] as MWSt,
cast(case when [daId] is not null then 1 else 0 end as bit) as PDFvorhanden,[Country] as Land
FROM [VERAG].[dbo].[tblIDSInvoicesNewSplittedByCountry] WHERE [TotalInvoiceId] = " & rechnugnsID & setSQLDetailWhere(aktLieferant, "Country")
If setDatatable Then
Dim dtRechnugnsdet As DataTable = (New SQL).loadDgvBySql(sql, "FMZOLL")
Return dtRechnugnsdet
End If
With dgvDetails
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
.SET_SQL(sql, "FMZOLL")
.LOAD()
.ClearSelection()
Dim c As New DataGridViewImageColumn
c.Name = "PDF" : c.HeaderText = "PDF"
c.DefaultCellStyle.NullValue = Nothing
c.ImageLayout = DataGridViewImageCellLayout.Zoom
c.Width = 40
c.DefaultCellStyle.Padding = New Padding(2)
c.DefaultCellStyle.BackColor = Color.White
c.Image = My.Resources.pdf_gray
If Not .Columns.Contains("PDF") Then .Columns.Add(c)
If .Columns.Count > 0 Then
For Each r As DataGridViewRow In .Rows
If IsDBNull(r.Cells("daId").Value) OrElse r.Cells("daId").Value = 0 Then
DirectCast(r.Cells("PDF"), DataGridViewImageCell).Value = My.Resources.pdf_gray
End If
If .Columns.Contains("daId") Then
If .Columns("daId") IsNot Nothing Then .Columns("daId").Visible = False
End If
Next
End If
End With
End Function
Private Sub dgvDetails_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvDetails.CellContentDoubleClick
Try
If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then
Dim daId = dgvDetails.Rows(e.RowIndex).Cells("daId").Value
If daId > 0 Then
Me.Cursor = Cursors.WaitCursor
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
DS.OPEN_SINGLE()
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Me.Cursor = Cursors.Default
End Try
Me.Cursor = Cursors.Default
End Sub
End Class