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