Compare commits

...

2 Commits

15 changed files with 532 additions and 91 deletions

View File

@@ -320,9 +320,9 @@ Public Class cFakturierung
If RECHNUNG_KD.Zahlungsziel IsNot Nothing AndAlso IsNumeric(RECHNUNG_KD.Zahlungsziel) Then
ZZTage = RECHNUNG_KD.Zahlungsziel
If ZZTage > 14 AndAlso RECHNUNG.Firma_ID = 19 AndAlso RECHNUNG.FilialenNr = 8001 Then
ZZTage = 14
End If
'If ZZTage > 14 AndAlso RECHNUNG.Firma_ID = 19 AndAlso RECHNUNG.FilialenNr = 8001 Then
' ZZTage = 14 'Hier aus DEebitor überschreiben!
'End If
End If
Select Case RECHNUNG.[BelegartenNr]

View File

@@ -1,8 +1,4 @@
Imports com.sun.tools.javadoc
Imports GrapeCity.ActiveReports.ReportsCore.Tools
Imports GrapeCity.Viewer.Common.Model
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Imports Microsoft.Office.Interop
Public Class frmFaktSammelRgDrucken

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.5.3.0")>
<Assembly: AssemblyFileVersion("1.5.3.0")>
<Assembly: AssemblyVersion("1.5.3.1")>
<Assembly: AssemblyFileVersion("1.5.3.1")>

View File

@@ -1,5 +1,7 @@
Imports System.Windows.Documents
Imports com.sun.org.apache.bcel.internal.generic
Imports java.awt.geom
Imports MDM_Worker
Imports VERAG_PROG_ALLGEMEIN
Public Class frmUSTVoffeneAntraege
@@ -1089,57 +1091,88 @@ Public Class frmUSTVoffeneAntraege
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim SQLQuery As String = ""
Dim dtfehlendePDF As New DataTable
Dim dtPartInvoicesIDS As New DataTable
Select Case LIEFERANT.ToString.ToLower
Case "plose" : SQLQuery = "select [plInv_SupplierRechnungsNr] as RechnungsNr,plInv_SupplierRechnungsDatum as Rechnungsdatum,Adressen.AdressenNr,Adressen.[Name 1] as Kunde, kde_keineMWSt as keineMWST from [tblPLOSE_Inv_Data] INNER JOIN Adressen on [plInv_PLOSEKundennummer]=Adressen.PLOSEKundenNr INNER JOIN tblKundenErweitert on AdressenNr = kde_KundenNr where [plInv_daId] is null and cast([plInv_SupplierRechnungsDatum] as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' group by plInv_SupplierRechnungsNr, Adressen.AdressenNr, Adressen.[Name 1], plInv_SupplierRechnungsDatum, kde_keineMWSt"
Case "rmc" : SQLQuery = "select rmc_reNr as RechnungsNr,rmc_reDatum AS Rechnungsdatum, Adressen.AdressenNr as KundenNr,Adressen.[Name 1] as Kunde, kde_keineMWSt as keineMWST from [tblRMCImport] INNER JOIN Adressen on WölflKundenNr=[rmc_kdNr] or weitereWölflKundenNr=[rmc_kdNr] INNER JOIN tblKundenErweitert on AdressenNr = kde_KundenNr where rmc_daId is null and cast([rmc_reDatum] as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' group by rmc_reNr, Adressen.AdressenNr, Adressen.[Name 1],rmc_reDatum, kde_keineMWSt "
Case "mse" : SQLQuery = "select invoice_id as RechnungsNr,[invoice_date] as Rechnungsdatum, Adressen.AdressenNr as KundenNr,Adressen.[Name 1] as Kunde, kde_keineMWSt as keineMWST from tblMSEInvoices inner join [tblMSECustomers] on [customer_number] = [customer_id] INNER JOIN Adressen on Adressen.MSEKundenNr = [customer_number] INNER JOIN tblKundenErweitert on AdressenNr = kde_KundenNr where daId is null and cast(invoice_date as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' group by invoice_id, Adressen.AdressenNr, Adressen.[Name 1], invoice_date, kde_keineMWSt"
Case "uta" : SQLQuery = " SELECT U.Abrechnungsnummer AS Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,CAST(U.Rechnungsdatum AS date) AS Rechnungsdatum,A.AdressenNr AS KundenNr,A.UTAKundenNr AS UTAKundenNr,A.[Name 1] AS Kunde,A.LandKz, kde_keineMWSt as keineMWST FROM tblUTAImportNew U INNER JOIN Adressen A ON A.UTAKundenNr = U.Kundennummer INNER JOIN tblKundenErweitert on A.AdressenNr = kde_KundenNr WHERE U.daId IS NULL AND CAST(U.Rechnungsdatum AS date) BETWEEN '" & dat_Sum_Von.Value & "' AND '" & dat_Sum_Bis.Value & "' AND NOT (A.LandKz = 'RO' AND U.Lieferland = 'ROM') GROUP BY U.Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,U.Rechnungsdatum,A.AdressenNr,A.UTAKundenNr ,A.[Name 1],A.LandKz, kde_keineMWSt ORDER BY U.Rechnungsdatum"
Case "ids" : SQLQuery = "select Invoicenumber as RechnungsNr,YearMonthDay as Rechnungsdatum, Adressen.AdressenNr as KundenNr,Adressen.[Name 1] as Kunde, kde_keineMWSt from tblIDSInvoicesNew Inner join [tbl_IDS_Kunden] on [tbl_IDS_Kunden].CustomerCode =tblIDSInvoicesNew.CustomerCode and isnull([tbl_IDS_Kunden].KdNrAlt, 1) = 0 Inner join Adressen on Adressen.AdressenNr = [tbl_IDS_Kunden].KdNrVERAG INNER JOIN tblKundenErweitert on Adressen.AdressenNr = kde_KundenNr where DocumentName is null and cast(YearMonthDay as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' group by Invoicenumber, Adressen.AdressenNr, Adressen.[Name 1], YearMonthDay, kde_keineMWSt"
Case Else : SQLQuery = ""
Case "plose"
Dim LIEFERANT As cPLOSE_Inv_Data
dtfehlendePDF = LIEFERANT.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
Case "rmc"
Dim LIEFERANT As cRMC
dtfehlendePDF = LIEFERANT.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
Case "mse"
Dim LIEFERANT As cMSEAPI
dtfehlendePDF = LIEFERANT.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
Case "uta"
Dim LIEFERANT As cUTA
dtfehlendePDF = LIEFERANT.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
Case "ids"
Dim LIEFERANT As cIDS
dtfehlendePDF = LIEFERANT.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
dtPartInvoicesIDS = LIEFERANT.checkPartInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
Case "verag"
MsgBox("PDF wird zur Laufzeit aus RE-Daten generiert")
Exit Sub
Case Else
MsgBox("Funktion nur pro Lieferant möglich!")
Exit Sub
End Select
Dim fehlendePDFs As Integer = 0
If SQLQuery <> "" Then
Dim dtfehlendePDF As DataTable = (New SQL).loadDgvBySql(SQLQuery, "FMZOLL")
MsgBox("Anzahl fehlende PDFs: " & dtfehlendePDF.Rows.Count & IIf(CDate(dat_Sum_Von.Value).Year <= 2024 OrElse CDate(dat_Sum_Bis.Value).Year <= 2024, vbNewLine & "PDF-Rechnungen vor 2025 wurden tlw. nicht importiert!", ""))
If dtfehlendePDF.Rows.Count > 0 Then
If vbYes = MsgBox("Details der fehlenden PDF-Rechnungen anzeigen?", vbYesNo) Then
cProgramFunctions.genExcelFromDT_NEW(dtfehlendePDF,,, "Fehlende PDF-Rechnungen: " & dat_Sum_Von.Value.ToShortDateString & " - " & dat_Sum_Bis.Value.ToShortDateString)
MsgBox("Anzahl fehlende PDFs: " & dtfehlendePDF.Rows.Count & IIf(CDate(dat_Sum_Von.Value).Year <= 2024 OrElse CDate(dat_Sum_Bis.Value).Year <= 2024, vbNewLine & "PDF-Rechnungen vor 2025 wurden tlw. nicht importiert!", ""))
If dtfehlendePDF.Rows.Count > 0 Then
If vbYes = MsgBox("Details der fehlenden PDF-Rechnungen anzeigen?", vbYesNo) Then
cProgramFunctions.genExcelFromDT_NEW(dtfehlendePDF,,, "Fehlende PDF-Rechnungen: " & dat_Sum_Von.Value.ToShortDateString & " - " & dat_Sum_Bis.Value.ToShortDateString)
End If
End If
'extra bei IDS -> wenn nicht korrekt verarbeitet/gesetzt!!
If LIEFERANT.ToString.ToLower = "ids" Then
Dim IDS As cIDS
Dim dt = IDS.checkInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
If dt.Rows.Count > 0 Then
cProgramFunctions.genExcelFromDT_NEW(dt,,, "Fehlende PDF-Teilrechnungen inkl. Datensatz" & dat_Sum_Von.Value.ToShortDateString & " - " & dat_Sum_Bis.Value.ToShortDateString)
If dt.Rows.Count <= 10 Then
If vbYes = MsgBox(dt.Rows.Count & " Gesamtrechnungen der fehlenden PDF-Teilrechnungen anzeigen?", vbYesNo) Then
For Each row In dt.Rows
If row.item("daId") IsNot Nothing AndAlso IsNumeric(row.item("daId")) AndAlso CInt(row.item("daId")) > 0 Then
Dim DS As New cDATENSERVER(row.item("daId"))
Dim pathPDF = DS.GET_TOP1_PATH
If pathPDF <> "" Then Process.Start(pathPDF)
End If
Next
End If
End If
End If
End If
Else
MsgBox("Funktion nur pro Lieferant möglich!")
End If
'extra bei IDS ->Prüft ob es zur Gesamtrechnung Teilrechnungen gibt!!
If LIEFERANT.ToString.ToLower = "ids" Then
If dtPartInvoicesIDS.Rows.Count > 0 Then
If vbYes = MsgBox("Es fehlen " & dtPartInvoicesIDS.Rows.Count & " Teilrechnungen" & vbNewLine & "Details der fehlenden Teilrechnungen anzeigen?", vbYesNo) Then
cProgramFunctions.genExcelFromDT_NEW(dtPartInvoicesIDS,,, "Fehlende PDF-Teilrechnungen inkl. Datensatz " & dat_Sum_Von.Value.ToShortDateString & " - " & dat_Sum_Bis.Value.ToShortDateString)
End If
If dtPartInvoicesIDS.Rows.Count <= 10 Then
If vbYes = MsgBox(dtPartInvoicesIDS.Rows.Count & " Gesamtrechnungen der fehlenden PDF-Teilrechnungen anzeigen?", vbYesNo) Then
For Each row In dtPartInvoicesIDS.Rows
If row.item("daId") IsNot Nothing AndAlso IsNumeric(row.item("daId")) AndAlso CInt(row.item("daId")) > 0 Then
Dim DS As New cDATENSERVER(row.item("daId"))
Dim pathPDF = DS.GET_TOP1_PATH
If pathPDF <> "" Then Process.Start(pathPDF)
End If
Next
End If
End If
End If
End If

View File

@@ -401,7 +401,7 @@ Public Class usrCntlUSTV
' AND cast( [UStVAn_USteuerbetragEUR] as decimal(17,2))-cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))<>0
' AND UStVAn_AntragEingereichtAm is not null
' order by UStVAn_KuNr,UStVAn_Name,datepart(year,[UStVAn_ReDatVon] ) desc,LandKz,[UStVAn_ReDatVon] desc"
Dim sqlStr = "SELECT [UStVAn_ID] as ID,[UStVAn_KuNr] as KundenNr,[UStVAn_Name] as Kundename,Adressen.LandKz as Land_Kunde, case when UstIdKz is not null and UstIdNr is not null THEN UstIdKz +'' + UstIdNr ELSE isnull(Steuernummer,'') END as SteuerUIDNr, LfdA .LandKz Land_Antrag,cast([UStVAn_ReDatVon] as Date) as ReDatVon,cast([UStVAn_ReDatBis] as Date) as ReDatBis , cast(UStVAn_AntragEingereichtAm as Date) as EingereichtAm,[UStVAn_3470] as An3470 ,[UStVAn_Währungscode] as Währung,[UStVAn_USteuerbetrag] as Steuerbetrag,[UStVAn_Erstattungsbetrag] as Erstattungsbetrag,[UStVAn_USteuerbetragEUR] as SteuerbetragEUR,[UStVAn_ErstattungsbetragEUR] as ErstattungsbetragEUR,(cast([UStVAn_USteuerbetragEUR] as decimal(17,2)) - cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))) as DifferenzbetragEUR, UStVAn_VZBetrag as Vorauszahlungsbetrag, [UStVAn_Sachbearbeiter] as Sachbearbeiter, UStVAn_AntragArt as Art, stnr.[StNrFürRückerstattungUSt] as SteuerNr
Dim sqlStr = "SELECT [UStVAn_ID] as ID,[UStVAn_KuNr] as KDNR,[UStVAn_Name] as Kundename,Adressen.LandKz as LKZ_KD, case when UstIdKz is not null and UstIdNr is not null THEN UstIdKz +'' + UstIdNr ELSE isnull(Steuernummer,'') END as SteuerUIDNr, LfdA.LandKz as LKZ,cast([UStVAn_ReDatVon] as Date) as ReDatVon,cast([UStVAn_ReDatBis] as Date) as ReDatBis , cast(UStVAn_AntragEingereichtAm as Date) as EingereichtAm,[UStVAn_3470] as An3470 ,[UStVAn_Währungscode] as WKZ,[UStVAn_USteuerbetrag] as Steuerbetrag,[UStVAn_Erstattungsbetrag] as Erstattungsbetrag,[UStVAn_USteuerbetragEUR] as SteuerbetragEUR,[UStVAn_ErstattungsbetragEUR] as ErstattungsbetragEUR,(cast([UStVAn_USteuerbetragEUR] as decimal(17,2)) - cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))) as DifferenzbetragEUR, UStVAn_VZBetrag as VZ, [UStVAn_Sachbearbeiter] as Sachbearbeiter, UStVAn_AntragArt as Art, stnr.[StNrFürRückerstattungUSt] as SteuerNr
FROM [tblUStVAntrag]
inner join [Länderverzeichnis für die Außenhandelsstatistik] as LfdA on UStVAn_LandNr=Landnr
inner join Adressen on AdressenNr=UStVAn_KuNr
@@ -413,7 +413,7 @@ Public Class usrCntlUSTV
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
cProgramFunctions.genExcelFromDT_NEW(dt, {"J1:M" & (dt.Rows.Count + 1)},,,,, True)
cProgramFunctions.genExcelFromDT_NEW(dt, ,,,,, True,,,,,, {"L1:Q" & (dt.Rows.Count + 1)})
Else
MsgBox("Keine Daten!")
End If
@@ -1237,13 +1237,14 @@ Public Class usrCntlUSTV
If f.DialogResult = DialogResult.OK Then
Dim pruefdatum As Date = CDate(f.Datum)
Dim laenderausnahmen = f.exceptedCountries
Dim sqlQery = "Select A.AdressenNr, A.[E-Mail], A.[E-Mail2], A.LandKz as KundeLand, A.Ordnungsbegriff,L.LandKz as SteuerLandKz, S.StNrFürRückerstattungUSt, S.StNrGültigkeitsdatum, CAST('" & pruefdatum & "' AS DATE) AS Prüfdatum,
CASE
WHEN S.StNrGültigkeitsdatum > CAST('" & pruefdatum & "' AS DATE) THEN 1 ELSE 0
END AS Gültig
FROM [Länderverzeichnis für die Außenhandelsstatistik] L INNER JOIN (Adressen A INNER JOIN Währungstabelle W ON A.LandKz = W.LandKz INNER JOIN tblSteuernummern S ON A.AdressenNr = S.AdressenNr) ON L.LandNr = S.LandNr
WHERE S.StNrGültigkeitsdatum IS NOT NULL AND W.MitgliedslandEU = 0 " & IIf(sqlKunde <> "", sqlKunde, "") & IIf(f.cbxKunden.Checked, " AND A.AdressenNr between " & f.cboKundenkreis._value.Replace("-", " AND "), "")
WHERE S.StNrGültigkeitsdatum IS NOT NULL AND W.MitgliedslandEU = 0 " & IIf(sqlKunde <> "", sqlKunde, "") & IIf(f.cbxKunden.Checked, " AND A.AdressenNr between " & f.cboKundenkreis._value.Replace("-", " AND "), "") & IIf(laenderausnahmen <> "", " AND L.LandKz NOT IN (" & laenderausnahmen & ")", "")
Dim dtVorschau As DataTable = SQL.loadDgvBySql(sqlQery, "FMZOLL")

View File

@@ -1035,7 +1035,7 @@ Public Class usrCntlBH
End Function
Function gen_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, ByRef RK_ID As Integer, ByRef Fusstext As String)
Function gen_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, ByRef RK_ID As Integer, ByRef Fusstext As String, ZahlungszielAusDebitor As Integer)
Try
If KdNr = "" Then Return False
@@ -1105,10 +1105,14 @@ Public Class usrCntlBH
RG.Packstücke_und_Warenbezeichnung = "NACHBERECHNUNG VON VERZUGSZINSEN" & vbNewLine & SPEDBUCH.Vermerk
'RG.EMailRechnungstext = Fusstext
If Not IsDBNull(KD.Zahlungsziel) AndAlso IsNumeric(KD.Zahlungsziel) Then
Dim Zahlungsziel As Integer = CInt(KD.Zahlungsziel)
RG.Nettozahlungsziel = IIf(Zahlungsziel > 14, 14, KD.Zahlungsziel)
End If
'IN DIESEM FALL IMMER AUS DEBITOR NEHMEN!!!
'If Not IsDBNull(KD.Zahlungsziel) AndAlso IsNumeric(KD.Zahlungsziel) Then
' Dim Zahlungsziel As Integer = CInt(KD.Zahlungsziel)
' RG.Nettozahlungsziel = IIf(Zahlungsziel > 14, 14, KD.Zahlungsziel)
'End If
RG.Nettozahlungsziel = ZahlungszielAusDebitor
RG.SteuerpflichtigerGesamtbetrag = 0
RG.SteuerfreierGesamtbetrag = 0
@@ -1245,7 +1249,7 @@ Public Class usrCntlBH
Private Sub btnZNBverrechnen_Click(sender As Object, e As EventArgs) Handles btnZNBverrechnen.Click
If txtZRbis.Text = "" OrElse Not IsDate(txtZRbis.Text) Then
MsgBox("Abrechnungdatum setzen!")
MsgBox("Abrechnungdatum (Zahlungen bis) setzen!")
txtZRbis.Focus()
Exit Sub
End If
@@ -1255,7 +1259,7 @@ Public Class usrCntlBH
LimitBEtrag = CInt(txtAbBetragAbrechnen.Text)
End If
Dim dt_Main As DataTable = SQL.loadDgvBySql_Param("Select [kundenNr],SUM([zinsbetrag]) as Zinsbetrag, zahlungsperiode_start,zahlungsperiode_ende FROM [VERAG].[dbo].[tblMDM_Zinsberechnung] where [verrechnet] Is null group by [kundenNr], zahlungsperiode_start, zahlungsperiode_ende" & IIf(LimitBEtrag > 0, " having SUM([zinsbetrag]) >= " & LimitBEtrag, ""), "FMZOLL")
Dim dt_Main As DataTable = SQL.loadDgvBySql_Param("Select [kundenNr],SUM([zinsbetrag]) as Zinsbetrag,max(belegZahlungsziel) as belegZahlungsziel , zahlungsperiode_start,zahlungsperiode_ende FROM [VERAG].[dbo].[tblMDM_Zinsberechnung] where [verrechnet] Is null group by [kundenNr], zahlungsperiode_start, zahlungsperiode_ende" & IIf(LimitBEtrag > 0, " having SUM([zinsbetrag]) >= " & LimitBEtrag, ""), "FMZOLL")
If dt_Main.Rows.Count > 0 Then
Dim kundenNr As String = ""
@@ -1342,7 +1346,7 @@ Public Class usrCntlBH
Dim SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch = Nothing
Dim RK_ID As Integer = -1
If Not gen_SPEDBUCH_ByKdNr(R("kundenNr"), SPEDBUCH, CDate(txtZRbis.Text).ToShortDateString, vermerk) Then verarbOK = False
If Not gen_RECHNUNG_BySPEDBUCH(R("kundenNr"), SPEDBUCH, RK_ID, Fußtext) Then verarbOK = False
If Not gen_RECHNUNG_BySPEDBUCH(R("kundenNr"), SPEDBUCH, RK_ID, Fußtext, R("belegZahlungsziel")) Then verarbOK = False
If verarbOK Then
SQL.doSQL("UPDATE [tblMDM_Zinsberechnung] SET [verrechnet]=GETDATE(), RK_ID = " & RK_ID & " WHERE [verrechnet] Is null And kundenNr='" & R("kundenNr") & "' ", "FMZOLL")

View File

@@ -1131,7 +1131,7 @@ Public Class cProgramFunctions
Return ""
End Function
Public Shared Function genExcelFromDT_NEW(dt As DataTable, Optional rangeAsWaehrung() As String = Nothing, Optional ShowAutoFilter As Boolean = True, Optional HeaderTxt As String = "", Optional HeaderTxt2 As String = "", Optional waehrungsZeichen As String = "€", Optional fitCellsToContent As Boolean = False, Optional mergeHeadersToCell As Char = "", Optional Landscape As Boolean = False, Optional fitToOnePage As Boolean = False, Optional openFile As Boolean = True, Optional fitWideToOnePage As Boolean = False) As String
Public Shared Function genExcelFromDT_NEW(dt As DataTable, Optional rangeAsWaehrung() As String = Nothing, Optional ShowAutoFilter As Boolean = True, Optional HeaderTxt As String = "", Optional HeaderTxt2 As String = "", Optional waehrungsZeichen As String = "€", Optional fitCellsToContent As Boolean = False, Optional mergeHeadersToCell As Char = "", Optional Landscape As Boolean = False, Optional fitToOnePage As Boolean = False, Optional openFile As Boolean = True, Optional fitWideToOnePage As Boolean = False, Optional rangeAsBuchhaltung() As String = Nothing) As String
Try
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SDL\tmp\" ' My.Computer.FileSystem.GetTempFileName
@@ -1156,6 +1156,16 @@ Public Class cProgramFunctions
Next
End If
If rangeAsBuchhaltung IsNot Nothing Then
For Each r In rangeAsBuchhaltung
Try
wb.Worksheets(0).Range(r).Style.NumberFormat.SetFormat("_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-")
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Next
End If
If HeaderTxt <> "" Then
wb.Worksheets(0).FirstRow.InsertRowsAbove(2)
wb.Worksheets(0).Range("A1").Value = HeaderTxt

View File

@@ -663,13 +663,39 @@ Public Class cIDS
Return ""
End Function
Public Shared Function checkInvoices(Optional reDatVon As Date = Nothing, Optional reDatBis As Date = Nothing) As DataTable
Public Shared Function checkPDFInvoices(Optional reDatVon As Date = Nothing, Optional reDatBis As Date = Nothing) As DataTable
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim sqlTime As String = ""
If IsDate(reDatVon) AndAlso CDate(reDatVon) > "01.01.2020" AndAlso IsDate(reDatBis) AndAlso CDate(reDatBis) > "01.01.2020" Then
sqlTime = " And cast(YearMonthDay as Date) between '" & reDatVon.ToShortDateString & "' and '" & reDatBis.ToShortDateString & "'"
End If
Dim SQLstr = "select Invoicenumber as RechnungsNr,YearMonthDay as Rechnungsdatum, Adressen.AdressenNr as KundenNr,Adressen.[Name 1] as Kunde, kde_keineMWSt from tblIDSInvoicesNew Inner join [tbl_IDS_Kunden] on [tbl_IDS_Kunden].CustomerCode =tblIDSInvoicesNew.CustomerCode and isnull([tbl_IDS_Kunden].KdNrAlt, 1) = 0 Inner join Adressen on Adressen.AdressenNr = [tbl_IDS_Kunden].KdNrVERAG INNER JOIN tblKundenErweitert on Adressen.AdressenNr = kde_KundenNr where DocumentName is null " & sqlTime & " group by Invoicenumber, Adressen.AdressenNr, Adressen.[Name 1], YearMonthDay, kde_keineMWSt"
Dim dt = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql(SQLstr, "FMZOLL")
Return dt
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return Nothing
End Function
Public Shared Function checkPartInvoices(Optional reDatVon As Date = Nothing, Optional reDatBis As Date = Nothing) As DataTable
Try
'Prüft, ob es zu Gesamtrechnungen Teilrechnungen gibt!
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim SQLstr = " "
If IsDate(reDatVon) AndAlso cDate(reDatVon) > "01.01.2020" AndAlso IsDate(reDatBis) AndAlso cDate(reDatBis) > "01.01.2020" Then
If IsDate(reDatVon) AndAlso CDate(reDatVon) > "01.01.2020" AndAlso IsDate(reDatBis) AndAlso CDate(reDatBis) > "01.01.2020" Then
SQLstr &= "select Invoicenumber as RechnungsNr ,YearMonthDay as Rechnungsdatum, Adressen.AdressenNr as KundenNr,Adressen.[Name 1] as Kunde, kde_keineMWSt,daId from tblIDSInvoicesNew Inner join [tbl_IDS_Kunden] on [tbl_IDS_Kunden].CustomerCode =tblIDSInvoicesNew.CustomerCode and isnull([tbl_IDS_Kunden].KdNrAlt, 1) = 0 Inner join Adressen on Adressen.AdressenNr = [tbl_IDS_Kunden].KdNrVERAG INNER JOIN tblKundenErweitert on Adressen.AdressenNr = kde_KundenNr where invoice_id not in (select TotalInvoiceId from tblIDSInvoicesNewSplittedByCountry) AND YearMonthDay >= '" & reDatVon.ToShortDateString & "' and YearMonthDay < '" & reDatBis.ToShortDateString & "'"
Else
SQLstr &= "select * from tblIDSInvoicesNew where invoice_id not in (select TotalInvoiceId from tblIDSInvoicesNewSplittedByCountry) AND Year(YearMonthDay) >= 2025"

View File

@@ -308,7 +308,7 @@ Public Class cMessenger
Next
Me.LOAD_MEMBERS()
If dateTmp Is Nothing Then
Me.LOAD_MESSAGES(topMax)
Me.LOAD_MESSAGES_NEW(topMax)
Else
Me.LOAD_MESSAGES_DATE(dateTmp)
End If
@@ -346,7 +346,7 @@ Public Class cMessenger
Me.LOAD_MEMBERS()
If dateTmp Is Nothing Then
Me.LOAD_MESSAGES()
Me.LOAD_MESSAGES_NEW()
Else
Me.LOAD_MESSAGES_DATE(dateTmp)
End If
@@ -415,9 +415,9 @@ Public Class cMessenger
cmd.Parameters.AddWithValue("@top", top)
Dim dr = cmd.ExecuteReader()
While dr.Read
Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id")) ' ----> 100 messages = 101 SQL calls
'Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id")) ' ----> 100 messages = 101 SQL calls
'Hier werden die einzelnen MSg-Obj nicht mehr per SQL geladen, sondern direkt als Objekt übergeben -> schneller!
'Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id"), dr.Item("chatMg_maId"), dr.Item("chatMg_datetime"), dr.Item("chatMg_maName"), dr.Item("chatMg_maFirma"), dr.Item("chatMg_type"), dr.Item("chatMg_text"), IIf(IsDBNull(dr.Item("chatMg_anhang_docId")), Nothing, dr.Item("chatMg_anhang_docId")), IIf(IsDBNull(dr.Item("chatMg_referenz_AvisoId")), Nothing, dr.Item("chatMg_referenz_AvisoId")), IIf(IsDBNull(dr.Item("chatMg_referenz_SendungsId")), Nothing, dr.Item("chatMg_referenz_SendungsId")), dr.Item("chatMg_referenz_KundenNr")) 'Me.chat_id, dr.Item("chatMb_maId")) 'yxc
Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id"), dr.Item("chatMg_chatId"), dr.Item("chatMg_maId"), dr.Item("chatMg_datetime"), dr.Item("chatMg_maName"), dr.Item("chatMg_maFirma"), dr.Item("chatMg_type"), dr.Item("chatMg_text"), IIf(IsDBNull(dr.Item("chatMg_anhang_docId")), Nothing, dr.Item("chatMg_anhang_docId")), IIf(IsDBNull(dr.Item("chatMg_referenz_AvisoId")), Nothing, dr.Item("chatMg_referenz_AvisoId")), IIf(IsDBNull(dr.Item("chatMg_referenz_SendungsId")), Nothing, dr.Item("chatMg_referenz_SendungsId")), dr.Item("chatMg_referenz_KundenNr")) 'Me.chat_id, dr.Item("chatMb_maId")) 'yxc
Me.CHAT_MESSAGES.Add(MSG)
End While
dr.Close()
@@ -431,6 +431,64 @@ Public Class cMessenger
End Try
End Sub
Public Sub LOAD_MESSAGES_NEW(Optional top As Integer = 100)
Try
Me.CHAT_MESSAGES.Clear()
Using conn As SqlConnection = SQL.GetNewOpenConnectionADMIN()
Using cmd As New SqlCommand(
"SELECT TOP (@top) chatMg_id, chatMg_chatId, chatMg_maId, chatMg_maName, chatMg_maFirma, chatMg_datetime, chatMg_type, chatMg_text, chatMg_anhang_docId, chatMg_referenz_AvisoId, chatMg_referenz_SendungsId, chatMg_referenz_KundenNr
FROM tblMessenger_ChatMessages
WHERE chatMg_chatId = @chat_id
ORDER BY chatMg_datetime DESC", conn)
cmd.Parameters.AddWithValue("@chat_id", chat_id)
cmd.Parameters.AddWithValue("@top", top)
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim chatMg_id As Integer? = SafeInt(dr("chatMg_id"))
Dim chatMg_chatId As Integer? = SafeInt(dr("chatMg_chatId"))
Dim chatMg_maId As Integer? = SafeInt(dr("chatMg_maId"))
Dim chatMg_type As String = If(IsDBNull(dr("chatMg_type")), "", dr("chatMg_type").ToString())
Dim chatMg_anhang_docId As Integer? = SafeInt(dr("chatMg_anhang_docId"))
Dim chatMg_referenz_AvisoId As Integer? = SafeInt(dr("chatMg_referenz_AvisoId"))
Dim chatMg_referenz_SendungsId As Integer? = SafeInt(dr("chatMg_referenz_SendungsId"))
Dim chatMg_datetime As DateTime = If(IsDBNull(dr("chatMg_datetime")), DateTime.MinValue, Convert.ToDateTime(dr("chatMg_datetime")))
Dim chatMg_maName As String = If(IsDBNull(dr("chatMg_maName")), "", dr("chatMg_maName").ToString())
Dim chatMg_maFirma As String = If(IsDBNull(dr("chatMg_maFirma")), "", dr("chatMg_maFirma").ToString())
Dim chatMg_text As String = If(IsDBNull(dr("chatMg_text")), "", dr("chatMg_text").ToString())
Dim chatMg_referenz_KundenNr As String = If(IsDBNull(dr("chatMg_referenz_KundenNr")), "", dr("chatMg_referenz_KundenNr").ToString())
' Message-Objekt direkt erstellen
Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id"), dr.Item("chatMg_chatId"), dr.Item("chatMg_maId"), dr.Item("chatMg_datetime"), dr.Item("chatMg_maName"), dr.Item("chatMg_maFirma"), dr.Item("chatMg_type"), dr.Item("chatMg_text"), IIf(IsDBNull(dr.Item("chatMg_anhang_docId")), Nothing, dr.Item("chatMg_anhang_docId")), IIf(IsDBNull(dr.Item("chatMg_referenz_AvisoId")), Nothing, dr.Item("chatMg_referenz_AvisoId")), IIf(IsDBNull(dr.Item("chatMg_referenz_SendungsId")), Nothing, dr.Item("chatMg_referenz_SendungsId")), dr.Item("chatMg_referenz_KundenNr"))
Me.CHAT_MESSAGES.Add(MSG)
End While
End Using
End Using
End Using
' Nachrichten umdrehen, damit älteste zuerst angezeigt werden
Me.CHAT_MESSAGES.Reverse()
Catch ex As Exception
MsgBox("Fehler in LOAD_MESSAGES: " & vbNewLine & ex.Message & vbNewLine & ex.StackTrace)
End Try
End Sub
Private Function SafeInt(value As Object) As Integer?
If IsDBNull(value) Then Return Nothing
Dim s As String = value.ToString().Trim()
Dim result As Integer
If Integer.TryParse(s, result) Then
Return result
Else
Return Nothing
End If
End Function
Public Sub LOAD_MESSAGES_DATE(dateTmp As Date)
Try
Me.CHAT_MESSAGES.Clear()
@@ -442,9 +500,9 @@ Public Class cMessenger
While dr.Read
Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id")) '----> 100 messages = 101 SQL calls
'Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id")) '----> 100 messages = 101 SQL calls
'Hier werden die einzelnen MSg-Obj nicht mehr per SQL geladen, sondern direkt als Objekt übergeben -> schneller!
'Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id"), dr.Item("chatMg_maId"), dr.Item("chatMg_datetime"), dr.Item("chatMg_maName"), dr.Item("chatMg_maFirma"), dr.Item("chatMg_type"), dr.Item("chatMg_text"), IIf(IsDBNull(dr.Item("chatMg_anhang_docId")), Nothing, dr.Item("chatMg_anhang_docId")), IIf(IsDBNull(dr.Item("chatMg_referenz_AvisoId")), Nothing, dr.Item("chatMg_referenz_AvisoId")), IIf(IsDBNull(dr.Item("chatMg_referenz_SendungsId")), Nothing, dr.Item("chatMg_referenz_SendungsId")), dr.Item("chatMg_referenz_KundenNr")) 'Me.chat_id, dr.Item("chatMb_maId")) 'yxc
Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id"), dr.Item("chatMg_chatId"), dr.Item("chatMg_maId"), dr.Item("chatMg_datetime"), dr.Item("chatMg_maName"), dr.Item("chatMg_maFirma"), dr.Item("chatMg_type"), dr.Item("chatMg_text"), IIf(IsDBNull(dr.Item("chatMg_anhang_docId")), Nothing, dr.Item("chatMg_anhang_docId")), IIf(IsDBNull(dr.Item("chatMg_referenz_AvisoId")), Nothing, dr.Item("chatMg_referenz_AvisoId")), IIf(IsDBNull(dr.Item("chatMg_referenz_SendungsId")), Nothing, dr.Item("chatMg_referenz_SendungsId")), dr.Item("chatMg_referenz_KundenNr")) 'Me.chat_id, dr.Item("chatMb_maId")) 'yxc
Me.CHAT_MESSAGES.Add(MSG)
End While
@@ -780,7 +838,8 @@ Public Class cMessenger
Me.chatMg_maId = chatMg_maId
End Sub
Sub New(chatMg_chatId, chatMg_maId, chatMg_datetime, chatMg_maName, chatMg_maFirma, chatMg_type, chatMg_text, chatMg_anhang_docId, chatMg_referenz_AvisoId, chatMg_referenz_SendungsId, chatMg_referenz_KundenNr)
Sub New(chatMg_id, chatMg_chatId, chatMg_maId, chatMg_datetime, chatMg_maName, chatMg_maFirma, chatMg_type, chatMg_text, chatMg_anhang_docId, chatMg_referenz_AvisoId, chatMg_referenz_SendungsId, chatMg_referenz_KundenNr)
Me.chatMg_id = chatMg_id
Me.chatMg_chatId = chatMg_chatId
Me.chatMg_maId = chatMg_maId
Me.chatMg_datetime = chatMg_datetime

View File

@@ -363,6 +363,31 @@ Public Class cRMC
End Function
Public Shared Function checkPDFInvoices(Optional reDatVon As Date = Nothing, Optional reDatBis As Date = Nothing) As DataTable
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim sqlTime As String = ""
If IsDate(reDatVon) AndAlso CDate(reDatVon) > "01.01.2020" AndAlso IsDate(reDatBis) AndAlso CDate(reDatBis) > "01.01.2020" Then
sqlTime = " And cast([rmc_reDatum] As Date) between '" & reDatVon.ToShortDateString & "' and '" & reDatBis.ToShortDateString & "'"
End If
Dim SQLstr = "Select rmc_reNr As RechnungsNr,rmc_reDatum As Rechnungsdatum, Adressen.AdressenNr As KundenNr,Adressen.[Name 1] As Kunde, kde_keineMWSt As keineMWST from [tblRMCImport] INNER JOIN Adressen On WölflKundenNr=[rmc_kdNr] Or weitereWölflKundenNr=[rmc_kdNr] INNER JOIN tblKundenErweitert On AdressenNr = kde_KundenNr where rmc_daId Is null " & sqlTime & " group by rmc_reNr, Adressen.AdressenNr, Adressen.[Name 1],rmc_reDatum, kde_keineMWSt"
Dim dt = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql(SQLstr, "FMZOLL")
Return dt
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return Nothing
End Function
Public Class Paramter

View File

@@ -45,6 +45,31 @@ Public Class cUTA
Return SQL.getValueTxtBySql("SELECT count(InvToCustomer) FROM [tblUTAImportNew] where InvToCustomer Is null ", "FMZOLL",,, -1)
End Function
Public Shared Function checkPDFInvoices(Optional reDatVon As Date = Nothing, Optional reDatBis As Date = Nothing) As DataTable
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim sqlTime As String = ""
If IsDate(reDatVon) AndAlso CDate(reDatVon) > "01.01.2020" AndAlso IsDate(reDatBis) AndAlso CDate(reDatBis) > "01.01.2020" Then
sqlTime = " And CAST(U.Rechnungsdatum As Date) BETWEEN '" & reDatVon.ToShortDateString & "' and '" & reDatBis.ToShortDateString & "'"
End If
Dim SQLstr = "Select U.Abrechnungsnummer As Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,CAST(U.Rechnungsdatum As Date) As Rechnungsdatum,A.AdressenNr As KundenNr,A.UTAKundenNr As UTAKundenNr,A.[Name 1] As Kunde,A.LandKz, kde_keineMWSt As keineMWST FROM tblUTAImportNew U INNER JOIN Adressen A On A.UTAKundenNr = U.Kundennummer INNER JOIN tblKundenErweitert On A.AdressenNr = kde_KundenNr WHERE U.daId Is NULL " & sqlTime & " AND NOT (A.LandKz = 'RO' AND U.Lieferland = 'ROM') GROUP BY U.Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,U.Rechnungsdatum,A.AdressenNr,A.UTAKundenNr ,A.[Name 1],A.LandKz, kde_keineMWSt ORDER BY U.Rechnungsdatum"
Dim dt = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql(SQLstr, "FMZOLL")
Return dt
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return Nothing
End Function
Public Class UTAHeader
Property Übertragungsnummer As Integer

View File

@@ -64,7 +64,7 @@ Public Class frmMessenger
End Sub
Private Sub MyDatagridview1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvChats.CellClick '.CellContentClick
If dgvChats.Rows(e.RowIndex).Cells("ungelesen").Value <> "" Then
If dgvChats.Rows(e.RowIndex).Cells("ungelesen").Value <> 0 Then 'If dgvChats.Rows(e.RowIndex).Cells("ungelesen").Value <> "" Then
Dim dgv_ChatID = If(dgvChats.SelectedRows.Count > 0, dgvChats.SelectedRows(0).Cells("chat_id").Value, -1)
intiDGVChats(dgv_ChatID, False) ' Splate ungelesen sol sich ändern
End If
@@ -216,7 +216,54 @@ Public Class frmMessenger
" & where & "
) as T " & whereName & " ORDER BY chat_lastMsg DESC"
.DataSource = SQL.loadDgvBySql(sqlQery, "ADMIN")
Dim sqlQery_optimiced As String = "SELECT TOP 200
c.chat_id,
CASE
WHEN ISNULL(c.chat_name, '') <> '' THEN c.chat_name
ELSE names.chat_name
END AS chat_name,
ISNULL(unread.ungelesen, 0) AS ungelesen,
c.chat_lastMsg
FROM tblMessenger_Chat c
-- ensure current user is member
INNER JOIN tblMessenger_ChatMembers m
ON m.chatMb_chatId = c.chat_id
AND m.chatMb_maId = " & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "
-- 🔹 get participant names (distinct!)
OUTER APPLY (
SELECT STRING_AGG(name, ', ') AS chat_name
FROM (
SELECT DISTINCT
mit.mit_vname + ' ' + mit.mit_nname AS name
FROM tblMessenger_ChatMembers m2
INNER JOIN tblMitarbeiter mit
ON mit.mit_id = m2.chatMb_maId
WHERE m2.chatMb_chatId = c.chat_id
AND m2.chatMb_maId <> " & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "
) x
) names
-- 🔹 unread count separated (no duplication!)
OUTER APPLY (
SELECT COUNT(*) AS ungelesen
FROM tblMessenger_ChatMessages msg
INNER JOIN tblMessenger_ChatMessageStatus s
ON s.chatMgSt_chatMsgId = msg.chatMg_id
WHERE msg.chatMg_chatId = c.chat_id
AND s.chatMgSt_MaId = " & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "
AND s.chatMgSt_gelesen = 0
) unread WHERE c.chat_aktiv = " & IIf(Not cbxInaktiveChats.Checked, 1, 0) & "" & where & "ORDER BY c.chat_lastMsg DESC"
.DataSource = SQL.loadDgvBySql(sqlQery_optimiced, "ADMIN")
If .Columns.Count = 0 Then Exit Sub
@@ -547,10 +594,19 @@ Public Class frmMessenger
If CHAT IsNot Nothing Then
CHAT.LOAD_MESSAGES(topMessages)
CHAT.LOAD_MESSAGES_NEW(topMessages)
' CHAT = New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_Chat(dgvChats.SelectedRows(0).Cells("chat_id").Value)
Dim newMsg As Boolean = False
Dim existingIds As New HashSet(Of Integer)
For Each ctrl In MyFlowLayoutPanel1.Controls
existingIds.Add(ctrl.CHAT_MSG.chatMg_id)
Next
For Each MSG In CHAT.CHAT_MESSAGES
Dim found As Boolean = False
For Each I In MyFlowLayoutPanel1.Controls
@@ -602,6 +658,61 @@ Public Class frmMessenger
End Try
End Sub
Private Sub REFRESH_CHAT_NEW()
Try
If CHAT Is Nothing Then Exit Sub
' Load latest messages
CHAT.LOAD_MESSAGES_NEW(topMessages)
' Build fast lookup for existing message IDs
Dim existingIds As New HashSet(Of Integer)
For Each ctrl As Control In MyFlowLayoutPanel1.Controls
Select Case ctrl.GetType()
Case GetType(usrCntlMessenger_ChatElement)
existingIds.Add(DirectCast(ctrl, usrCntlMessenger_ChatElement).CHAT_MSG.chatMg_id)
Case GetType(usrCntlMessenger_ChatAnhang)
existingIds.Add(DirectCast(ctrl, usrCntlMessenger_ChatAnhang).CHAT_MSG.chatMg_id)
Case GetType(usrCntlMessenger_ChatEmoji)
existingIds.Add(DirectCast(ctrl, usrCntlMessenger_ChatEmoji).CHAT_MSG.chatMg_id)
Case GetType(usrCntlMessenger_ChatElementDEL)
existingIds.Add(DirectCast(ctrl, usrCntlMessenger_ChatElementDEL).CHAT_MSG.chatMg_id)
End Select
Next
Dim newMessageAdded As Boolean = False
MyFlowLayoutPanel1.SuspendLayout()
For Each MSG In CHAT.CHAT_MESSAGES
If Not existingIds.Contains(MSG.chatMg_id) Then
Dim ctrl = getControlFromMSG(MSG)
If ctrl IsNot Nothing Then
MyFlowLayoutPanel1.Controls.Add(ctrl)
newMessageAdded = True
End If
End If
Next
MyFlowLayoutPanel1.ResumeLayout()
If newMessageAdded Then
MyFlowLayoutPanel1.VerticalScroll.Value = MyFlowLayoutPanel1.VerticalScroll.Maximum
End If
checkOnlineOffline()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace,
System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
'Sub ORDER_CHAT_MSG()
' If Not CHECK_CHATMSG_ORDER() Then
@@ -689,15 +800,16 @@ Public Class frmMessenger
MSG.chatMg_maFirma = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
If MSG.SAVE(True, CHAT.CHAT_MEMBERS) Then
SEND_TOKEN_NEW_MESSAGE()
' CHAT.CHAT_MESSAGES.Add(MSG)
SET_ALL_READ()
REFRESH_CHAT()
rtbChatMessage.Text = ""
rtbChatMessage.Focus()
End If
End If
SEND_TOKEN_NEW_MESSAGE()
CHAT.CHAT_MESSAGES.Add(MSG)
SET_ALL_READ()
REFRESH_CHAT_NEW()
rtbChatMessage.Text = ""
rtbChatMessage.Focus()
End If
End If
End If
End Sub
@@ -753,13 +865,13 @@ Public Class frmMessenger
If CHAT IsNot Nothing And VERAG_PROG_ALLGEMEIN.cMessenger.NEW_MESSGE = True Then
VERAG_PROG_ALLGEMEIN.cMessenger.NEW_MESSGE = False
' MsgBox("asd")
REFRESH_CHAT()
REFRESH_CHAT_NEW()
End If
End Sub
Private Sub Timer_REFRESH_Tick(sender As Object, e As EventArgs) Handles Timer_REFRESH.Tick
loaded = False
REFRESH_CHAT()
REFRESH_CHAT_NEW()
Dim dgv_ChatID = If(dgvChats.SelectedRows.Count > 0, dgvChats.SelectedRows(0).Cells("chat_id").Value, -1)
If checkNewestShit() Then ' prüft, ob neue Nachrichten gekommen sind, sont kein Refresh (stört das scrollen)
intiDGVChats(dgv_ChatID, False)
@@ -871,7 +983,7 @@ Public Class frmMessenger
If dgvChats.Columns.Count > 0 Then
If e.ColumnIndex = dgvChats.Columns("ungelesen").Index Then
If dgvChats.Rows(e.RowIndex).Cells("ungelesen").Value <> "" Then
If dgvChats.Rows(e.RowIndex).Cells("ungelesen").Value <> 0 Then ' If dgvChats.Rows(e.RowIndex).Cells("ungelesen").Value <> "" Then
dgvChats.Rows(e.RowIndex).Cells("ungelesen").Style.BackColor = Color.Red
End If
'For Each r As DataGridViewRow In .Rows
@@ -946,10 +1058,10 @@ Public Class frmMessenger
If MSG.SAVE(True, CHAT.CHAT_MEMBERS) Then
If reloadChat Then
CHAT.CHAT_MESSAGES.Add(MSG)
SEND_TOKEN_NEW_MESSAGE()
' CHAT.CHAT_MESSAGES.Add(MSG)
SET_ALL_READ()
REFRESH_CHAT()
REFRESH_CHAT_NEW()
rtbChatMessage.Text = ""
rtbChatMessage.Focus()
End If
@@ -972,7 +1084,7 @@ Public Class frmMessenger
SEND_TOKEN_NEW_MESSAGE()
' CHAT.CHAT_MESSAGES.Add(MSG)
SET_ALL_READ()
REFRESH_CHAT()
REFRESH_CHAT_NEW()
'rtbChatMessage.Text = filePath
'rtbChatMessage.Focus()
End If
@@ -1155,7 +1267,7 @@ Public Class frmMessenger
'CHAT neu laden!
SEND_TOKEN_NEW_MESSAGE()
SET_ALL_READ()
REFRESH_CHAT()
REFRESH_CHAT_NEW()
rtbChatMessage.Text = ""
rtbChatMessage.Focus()
End If

View File

@@ -71,6 +71,31 @@ Public Class cMSEAPI
Return SQL.getValueTxtBySql("SELECT count(InvToCustomer) FROM [tblMSEInvoices] where InvToCustomer Is null ", "FMZOLL",,, -1)
End Function
Public Shared Function checkPDFInvoices(Optional reDatVon As Date = Nothing, Optional reDatBis As Date = Nothing) As DataTable
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim sqlTime As String = ""
If IsDate(reDatVon) AndAlso CDate(reDatVon) > "01.01.2020" AndAlso IsDate(reDatBis) AndAlso CDate(reDatBis) > "01.01.2020" Then
sqlTime = " And cast(invoice_date As Date) between '" & reDatVon.ToShortDateString & "' and '" & reDatBis.ToShortDateString & "'"
End If
Dim SQLstr = "Select invoice_id As RechnungsNr,[invoice_date] As Rechnungsdatum, Adressen.AdressenNr As KundenNr,Adressen.[Name 1] As Kunde, kde_keineMWSt As keineMWST from tblMSEInvoices inner join [tblMSECustomers] On [customer_number] = [customer_id] INNER JOIN Adressen On Adressen.MSEKundenNr = [customer_number] INNER JOIN tblKundenErweitert On AdressenNr = kde_KundenNr where daId Is null " & sqlTime & " group by invoice_id, Adressen.AdressenNr, Adressen.[Name 1], invoice_date, kde_keineMWSt"
Dim dt = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql(SQLstr, "FMZOLL")
Return dt
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return Nothing
End Function

View File

@@ -26,6 +26,11 @@ Partial Class frmDatumsabfrage
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.MyPanel1 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components)
Me.MyPanel2 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components)
Me.Label2 = New System.Windows.Forms.Label()
Me.lbLaender = New VERAG_PROG_ALLGEMEIN.MyListBox()
Me.btnKeine = New System.Windows.Forms.Button()
Me.btnAlle = New System.Windows.Forms.Button()
Me.pnlKunde = New System.Windows.Forms.Panel()
Me.cbxKunden = New System.Windows.Forms.CheckBox()
Me.cboKundenkreis = New VERAG_PROG_ALLGEMEIN.MyComboBox()
@@ -35,13 +40,17 @@ Partial Class frmDatumsabfrage
Me.lbl = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.MyPanel1.SuspendLayout()
Me.MyPanel2.SuspendLayout()
Me.pnlKunde.SuspendLayout()
Me.SuspendLayout()
'
'MyPanel1
'
Me.MyPanel1.AutoSize = True
Me.MyPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink
Me.MyPanel1.BackColor = System.Drawing.Color.White
Me.MyPanel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.MyPanel1.Controls.Add(Me.MyPanel2)
Me.MyPanel1.Controls.Add(Me.pnlKunde)
Me.MyPanel1.Controls.Add(Me.dtp_date)
Me.MyPanel1.Controls.Add(Me.btnClose)
@@ -54,6 +63,60 @@ Partial Class frmDatumsabfrage
Me.MyPanel1.Size = New System.Drawing.Size(286, 84)
Me.MyPanel1.TabIndex = 3
'
'MyPanel2
'
Me.MyPanel2.AutoSize = True
Me.MyPanel2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink
Me.MyPanel2.Controls.Add(Me.Label2)
Me.MyPanel2.Controls.Add(Me.lbLaender)
Me.MyPanel2.Controls.Add(Me.btnKeine)
Me.MyPanel2.Controls.Add(Me.btnAlle)
Me.MyPanel2.Location = New System.Drawing.Point(3, 82)
Me.MyPanel2.Name = "MyPanel2"
Me.MyPanel2.Size = New System.Drawing.Size(253, 364)
Me.MyPanel2.TabIndex = 49
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Location = New System.Drawing.Point(22, 3)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(40, 13)
Me.Label2.TabIndex = 50
Me.Label2.Text = "Länder"
'
'lbLaender
'
Me.lbLaender._value = ""
Me.lbLaender.FormattingEnabled = True
Me.lbLaender.Location = New System.Drawing.Point(25, 16)
Me.lbLaender.Name = "lbLaender"
Me.lbLaender.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple
Me.lbLaender.Size = New System.Drawing.Size(225, 316)
Me.lbLaender.TabIndex = 46
'
'btnKeine
'
Me.btnKeine.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnKeine.Location = New System.Drawing.Point(150, 338)
Me.btnKeine.Margin = New System.Windows.Forms.Padding(0)
Me.btnKeine.Name = "btnKeine"
Me.btnKeine.Size = New System.Drawing.Size(100, 26)
Me.btnKeine.TabIndex = 47
Me.btnKeine.Text = "Keine"
Me.btnKeine.UseVisualStyleBackColor = True
'
'btnAlle
'
Me.btnAlle.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnAlle.Location = New System.Drawing.Point(25, 338)
Me.btnAlle.Margin = New System.Windows.Forms.Padding(0)
Me.btnAlle.Name = "btnAlle"
Me.btnAlle.Size = New System.Drawing.Size(100, 26)
Me.btnAlle.TabIndex = 48
Me.btnAlle.Text = "Alle"
Me.btnAlle.UseVisualStyleBackColor = True
'
'pnlKunde
'
Me.pnlKunde.Controls.Add(Me.cbxKunden)
@@ -149,6 +212,7 @@ Partial Class frmDatumsabfrage
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.AutoSize = True
Me.ClientSize = New System.Drawing.Size(286, 84)
Me.Controls.Add(Me.MyPanel1)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
@@ -157,9 +221,12 @@ Partial Class frmDatumsabfrage
Me.Text = "frmDatumsabfrage"
Me.MyPanel1.ResumeLayout(False)
Me.MyPanel1.PerformLayout()
Me.MyPanel2.ResumeLayout(False)
Me.MyPanel2.PerformLayout()
Me.pnlKunde.ResumeLayout(False)
Me.pnlKunde.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
@@ -172,4 +239,9 @@ Partial Class frmDatumsabfrage
Friend WithEvents pnlKunde As Panel
Public WithEvents cboKundenkreis As VERAG_PROG_ALLGEMEIN.MyComboBox
Public WithEvents cbxKunden As CheckBox
Friend WithEvents btnAlle As Button
Friend WithEvents lbLaender As MyListBox
Friend WithEvents btnKeine As Button
Friend WithEvents MyPanel2 As MyPanel
Friend WithEvents Label2 As Label
End Class

View File

@@ -1,10 +1,10 @@
Imports System.Windows.Forms
Imports GrapeCity.Viewer.Common.Model
Imports VERAG_PROG_ALLGEMEIN
Public Class frmDatumsabfrage
Dim onlypastDate As Boolean = True
Dim panelKunde As Boolean = False
Dim panelLaender As Boolean = False
Sub New()
@@ -31,9 +31,13 @@ Public Class frmDatumsabfrage
onlypastDate = _onlypastDate
lbl.Text = title
panelKunde = _mitKundengruppe
panelLaender = _mitKundengruppe
End Sub
Public Datum As Date = CDate(Now.ToShortDateString)
Public exceptedCountries As String
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
Label1.Text = ""
@@ -43,6 +47,9 @@ Public Class frmDatumsabfrage
Exit Sub
End If
Datum = CDate(dtp_date.Value)
If panelLaender Then
exceptedCountries = getValues()
End If
Me.DialogResult = DialogResult.OK
End Sub
@@ -54,12 +61,26 @@ Public Class frmDatumsabfrage
Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
Datum = CDate(Now.ToShortDateString)
If panelLaender Then
exceptedCountries = getValues()
End If
Me.Close()
End Sub
Private Sub frmDatumsabfrage(sender As Object, e As EventArgs) Handles Me.Load
dtp_date.Value = Now.ToShortDateString
pnlKunde.Visible = panelKunde
MyPanel2.Visible = panelLaender
If panelLaender Then
Me.Height = 462
Else
Me.Height = 84
End If
If panelKunde Then
cboKundenkreis.Items.Clear()
@@ -74,10 +95,42 @@ Public Class frmDatumsabfrage
cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(" 400000-499999: YU - KUNDEN", "400000-499999"))
End If
If panelLaender Then
lbLaender.fillWithSQL(" select L.LandKz, L.LandBez FROM [Länderverzeichnis für die Außenhandelsstatistik] L
INNER JOIN (Adressen A INNER JOIN Währungstabelle W ON A.LandKz = W.LandKz INNER JOIN tblSteuernummern S ON A.AdressenNr = S.AdressenNr) ON L.LandNr = S.LandNr
WHERE S.StNrGültigkeitsdatum IS NOT NULL AND W.MitgliedslandEU = 0 GROUP BY L.LandBez, L.LandKz
order by L.LandBez ", , "FMZOLL")
End If
End Sub
Private Sub cbxKunden_CheckedChanged(sender As Object, e As EventArgs) Handles cbxKunden.CheckedChanged
cboKundenkreis.Enabled = cbxKunden.Checked
End Sub
Private Sub btnAlle_Click(sender As Object, e As EventArgs) Handles btnAlle.Click
For i = 0 To lbLaender.Items.Count - 1
lbLaender.SetSelected(i, True)
Next
End Sub
Private Sub btnKeine_Click(sender As Object, e As EventArgs) Handles btnKeine.Click
For i = 0 To lbLaender.Items.Count - 1
lbLaender.SetSelected(i, False)
Next
End Sub
Function getValues() As String
Dim s As String = ""
For Each i As VERAG_PROG_ALLGEMEIN.MyListItem In lbLaender.Items
If Not lbLaender.GetSelected(lbLaender.Items.IndexOf(i)) Then
s += "'" & i.Value & "', "
End If
Next
If s.EndsWith(", ") Then
s = s.Substring(0, s.Length - 2)
End If
Return s
End Function
End Class