Merge branch 'newMaster2024' of https://dev.azure.com/VeragAG/_git/SDL into newMaster2024

This commit is contained in:
2025-06-27 15:44:30 +02:00
7 changed files with 249 additions and 105 deletions

View File

@@ -1057,7 +1057,13 @@ Public Class frmFaktEmail
Dim extension = ".pdf"
Dim zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(IIf(SammelrechungArt <> 6, RECHNUNG.BelegartenBez & "sanhänge_", RECHNUNG.BelegartenBez & "_") & RgNr & extension, extension,, False, "Zusammenfassung")
Dim Belegsbezeichnung As String = "Beleg"
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.BelegartenBez <> "" Then
Belegsbezeichnung = RECHNUNG.BelegartenBez
End If
Dim zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(IIf(SammelrechungArt <> 6, Belegsbezeichnung & "sanhänge_", Belegsbezeichnung & "_") & RgNr & extension, extension,, False, "Zusammenfassung")
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.Firma_ID = 19 Then

View File

@@ -2430,7 +2430,7 @@ Public Class usrCntlFaktAbrechnung
Call przFixeTaxe(RECHNUNG) ' Fixe Taxe errechnen
Call przPP(RECHNUNG) ' Porto/Papiere errechnen
Call przBS415(RECHNUNG) ' Bankspesen errechnen
Call setFixeTaxeMin(RECHNUNG, 500, 20) ' Mind Fixe Taxe errechnen
Call setFixeTaxeMin(RECHNUNG, 500) ' Mind Fixe Taxe errechnen
'Me![SteuerpflichtigerGesamtbetrag] = 0.0#
'Me![SteuerfreierGesamtbetrag] = 0.0#
@@ -3045,19 +3045,15 @@ Public Class usrCntlFaktAbrechnung
' RECHNUNG.POSITIONEN.Add(FixeTaxePOS)
'...und der Wert gesetzt.
FixeTaxePOS.Anzahl = 1
FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxe
FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxePOS.[Preis]
initSteuerbetraege(RECHNUNG, FixeTaxePOS)
End If
End Sub
Shared Sub setFixeTaxeMin(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, ByRef minBetrag As Double, fixeTaxe As Double)
Shared Sub setFixeTaxeMin(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, ByRef minBetrag As Double)
Dim FixeTaxe_Berechnungbetrag As Double = 0
Dim PapirePorti As Double = 0
If Not CBool(SQL.DLookup("[PP441]", "Filialen", "[FilialenNr]=" & RECHNUNG.FilialenNr, "FMZOLL", False)) Then
Exit Sub
End If
If Not leistungExistsInPos(RECHNUNG, 441) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
@@ -3069,27 +3065,35 @@ Public Class usrCntlFaktAbrechnung
If FixeTaxe_Berechnungbetrag < 0 Then FixeTaxe_Berechnungbetrag *= -1
If FixeTaxe_Berechnungbetrag < minBetrag Then
'Sucht, ob Fixetaxe schon vorhanden ist,...
Dim FixeTaxePOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 441)
'... sonst wird eine neue Pos eingefügt...
If FixeTaxePOS IsNot Nothing Then
'FixeTaxePOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
FixeTaxePOS.LeistungsNr = 441 '441 und nicht 440 laut Brigitte weil Steuerfrei!!
FixeTaxePOS.LeistungsBez = "P.P./Fixe Taxe"
FixeTaxePOS.BerechnungsartNr = 1
'RECHNUNG.POSITIONEN.Add(FixeTaxePOS)
'...und der Wert gesetzt.
'Sucht, ob Fixetaxe schon vorhanden ist,...
Dim FixeTaxePOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 441)
'... sonst wird eine neue Pos eingefügt...
If FixeTaxePOS IsNot Nothing Then
'FixeTaxePOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
FixeTaxePOS.LeistungsNr = 441 '441 und nicht 440 laut Brigitte weil Steuerfrei!!
FixeTaxePOS.LeistungsBez = "P.P./Fixe Taxe"
FixeTaxePOS.BerechnungsartNr = 1
'RECHNUNG.POSITIONEN.Add(FixeTaxePOS)
'...und der Wert gesetzt.
If FixeTaxe_Berechnungbetrag < minBetrag AndAlso CBool(SQL.DLookup("[PP441]", "Filialen", "[FilialenNr]=" & RECHNUNG.FilialenNr, "FMZOLL", False)) Then
FixeTaxePOS.Anzahl = 1
FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * fixeTaxe 'Preis wird bewusst überschrieben!!!
Else
FixeTaxePOS.Anzahl = 0
End If
initSteuerbetraege(RECHNUNG, FixeTaxePOS)
FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxePOS.Preis 'Preis wird bewusst überschrieben!!!
initSteuerbetraege(RECHNUNG, FixeTaxePOS)
If FixeTaxePOS.Anzahl = 0 Then
RECHNUNG.POSITIONEN.Remove(FixeTaxePOS)
End If
End If
End Sub

View File

@@ -45,9 +45,11 @@ Public Class frmBU_Mahnlauf
ORDER BY KTO.c_name"
Dim sqlStringVerag360 = "SELECT i_personenkonto Konto,KTO.c_name, KTO.c_landid Land,Kunden.Abfertigungsverbot as AV,max(KTO.dec_aktuellersaldo) as Saldo,/*KTO.c_plz + ' ' + KTO.c_ort Ort,isnull(KTO.c_email,'') Email, */ " &
"sum(eur_bruttobetrag+eur_zahlung) as Ausstand,cast(max(d_rechnung)as date) as 'ältesteRg',/*min(op.d_netto) Faelligkeit,*/max(si_mahnstufe) as MS,max(Kunden.UStV_Summe3470BetragEUR) as '3470',max(Kunden.Versicherungssumme) as V,
"sum(eur_bruttobetrag+eur_zahlung) as Ausstand,cast(min(d_rechnung)as date) as 'ältesteRg',/*min(op.d_netto) Faelligkeit,*/max(si_mahnstufe) as MS,max(Kunden.UStV_Summe3470BetragEUR) as '3470',max(Kunden.Versicherungssumme) as V,
max(KTO.dec_aktuellersaldo) - isnull(CASE WHEN Max(Kunden.UStV_SummeUmsatzsteuerbetragEUR) > max(Kunden.UStV_SummeErstattungsbetragEUR) THEN max(Kunden.UStV_SummeUmsatzsteuerbetragEUR) - max(Kunden.UStV_SummeErstattungsbetragEUR) ELSE 0 END ,0) - isnull(max(Kunden.UStV_Summe3470BetragEUR),0) + isnull(max(Kunden.UStV_SummeVZBetragEUR),0) - isnull(max(Kunden.UStV_SummeVorschaubetragEUR),0) - isnull(CASE WHEN ISNULL(max(Kunden.BankgarantieGültigBis), GETDATE()) < GETDATE() THEN 0 ELSE ISNULL(max(Kunden.BankgarantieBetrag), 0) END,0) as Risiko,
" & If(KdNr > 0, " (select SUM(isnull(eur_bruttobetrag,0)+isnull(eur_zahlung,0)) from op_debitor as OP RIGHT join fibu_konto KTO on i_personenkonto=i_konto AND KTO.i_firm_refid=OP.i_firm_refid Where i_personenkonto ='" & KdNr & "' AND OP.i_firm_refid = '19' AND dt_geloescht IS NULL and isnull(si_mahnflags,0) <>(1)) ", "max(KTO.dec_aktuellersaldo) ") & "
- isnull(CASE WHEN Max(Kunden.UStV_SummeUmsatzsteuerbetragEUR) > max(Kunden.UStV_SummeErstattungsbetragEUR) THEN max(Kunden.UStV_SummeUmsatzsteuerbetragEUR) - max(Kunden.UStV_SummeErstattungsbetragEUR) ELSE 0 END ,0) - isnull(max(Kunden.UStV_Summe3470BetragEUR),0) + isnull(max(Kunden.UStV_SummeVZBetragEUR),0) - isnull(max(Kunden.UStV_SummeVorschaubetragEUR),0) - isnull(CASE WHEN ISNULL(max(Kunden.BankgarantieGültigBis), GETDATE()) < GETDATE() THEN 0 ELSE ISNULL(max(Kunden.BankgarantieBetrag), 0) END,0) as Risiko,
sum(case when OP.c_typ = 'g' then isnull(OP.eur_bruttobetrag, 0) + isnull(OP.eur_zahlung, 0) else 0 end) as Gutschrift, cast(MAX(d_mahnung)as date) Mahndatum,
case

View File

@@ -366,9 +366,9 @@ Partial Class usrCntlKundenAvisoMailBenachrichtigung
Me.btnWikiStatusmails.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.btnWikiStatusmails.FlatAppearance.BorderSize = 0
Me.btnWikiStatusmails.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnWikiStatusmails.Location = New System.Drawing.Point(454, 3)
Me.btnWikiStatusmails.Location = New System.Drawing.Point(6, 25)
Me.btnWikiStatusmails.Name = "btnWikiStatusmails"
Me.btnWikiStatusmails.Size = New System.Drawing.Size(25, 20)
Me.btnWikiStatusmails.Size = New System.Drawing.Size(32, 25)
Me.btnWikiStatusmails.TabIndex = 70
Me.btnWikiStatusmails.UseVisualStyleBackColor = True
'

View File

@@ -1,5 +1,6 @@
Imports System.Data.OleDb
Imports System.IO
Imports com.sun.xml.internal.rngom
Imports itextsharp.text.pdf
Imports MDM_Worker
Imports VERAG_PROG_ALLGEMEIN
@@ -1220,42 +1221,44 @@ Public Class frmMDMDatenverarbetiung
End If
Next
End If
If verarbOK Then
'UPDATE Fakturiert
SQL.doSQL("UPDATE [tblUTAImportNew] set chargedDatetime=GETDATE() where chargedDatetime is null and [Rechnungsdatum] = '" & DateTimePicker2.Text & "' and Kundennummer = " & uta("Customer ID"), "FMZOLL")
End If
If True Then 'cnt Mod 10 = 0 Then
txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count
Dim proz As Double = (cnt / dt_Main.Rows.Count) * 100
pbPloseAnh_Proz.Value = proz
lblPloseAnh_Proz.Text = proz.ToString("N2") & " %"
'GroupBox12.Refresh()
My.Application.DoEvents()
End If
cnt += 1
Next
If test Then Return True
'UPDATE Fakturiert
SQL.doSQL("UPDATE [tblUTAImportNew] set chargedDatetime=GETDATE() where chargedDatetime is null and [Rechnungsdatum] = '" & DateTimePicker2.Text & "' and Kundennummer = " & uta("Customer ID"), "FMZOLL")
End If
If True Then 'cnt Mod 10 = 0 Then
txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count
Dim proz As Double = (cnt / dt_Main.Rows.Count) * 100
pbPloseAnh_Proz.Value = proz
lblPloseAnh_Proz.Text = proz.ToString("N2") & " %"
'GroupBox12.Refresh()
My.Application.DoEvents()
End If
cnt += 1
Next
If test Then Return True
' ANHÄNGE WERDEN NCIHT BENÖTIGT::
'Alle Alangen im foglenden VZ löschen und die aktuellen kopieren
Dim dirAnhang = IIf(test, utaParam.ANLAGEN & "TEST\", utaParam.ANLAGEN)
If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True)
' ANHÄNGE WERDEN NCIHT BENÖTIGT::
'Alle Alangen im foglenden VZ löschen und die aktuellen kopieren
Dim dirAnhang = IIf(test, utaParam.ANLAGEN & "TEST\", utaParam.ANLAGEN)
If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True)
For Each f In Directory.GetFiles(dirAnhang)
File.Delete(f)
Try
File.Delete(f)
Catch ex As Exception
End Try
Next
End If
If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang)
For Each f In Directory.GetFiles(dir)
File.Copy(f, dirAnhang & (New FileInfo(f)).Name, True)
Next
pbPloseAnh_Proz.Value = 100
txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count
lblPloseAnh_Proz.Text = "100.00 %"
Return True
End If
Return False
If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang)
For Each f In Directory.GetFiles(dir)
File.Copy(f, dirAnhang & (New FileInfo(f)).Name, True)
Next
pbPloseAnh_Proz.Value = 100
txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count
lblPloseAnh_Proz.Text = "100.00 %"
Return True
End If
Return False
End Function
Function genRGAtt_MSE(mseParam As cMSEAPI) As Boolean
Dim top = ""
@@ -1393,7 +1396,11 @@ Public Class frmMDMDatenverarbetiung
Dim dirAnhang = IIf(test, mseParam.ANLAGEN & "TEST\", mseParam.ANLAGEN) & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "Test", "") & Now.ToShortDateString
If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True)
For Each f In Directory.GetFiles(dirAnhang)
File.Delete(f)
Try
File.Delete(f)
Catch ex As Exception
End Try
Next
Else
Directory.CreateDirectory(dirAnhang)
@@ -1539,7 +1546,11 @@ Public Class frmMDMDatenverarbetiung
Dim dirAnhang = IIf(test, idsParam.ANLAGEN & "TEST\", idsParam.ANLAGEN) & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "Test", "") & Now.ToShortDateString
If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True)
For Each f In Directory.GetFiles(dirAnhang)
File.Delete(f)
Try
File.Delete(f)
Catch ex As Exception
End Try
Next
Else
Directory.CreateDirectory(dirAnhang)
@@ -3425,13 +3436,18 @@ Public Class frmMDMDatenverarbetiung
Dim sqlstr As String = ""
Dim useNettogesamtbetrag As Boolean = False
'If KdNr = "401715" Or KdNr = "401943" Or KdNr = "402179" Or KdNr = "402598" Or KdNr = "402656" Or KdNr = "402688" Or KdNr = "402719" Or KdNr = "402888" Or KdNr = "402933" Then
'MsgBox("Test")
'End If
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
Select Case Lieferant
Case "PLOSE"
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
'Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
'RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
' RG.LOAD_POSITIONEN_FROM_OFFERTE(OFFERTE)
sqlstr &= " SELECT [plp_LeistungsNr],sum([plose_NettobetragWaehrungAbbuchung]) as plose_NettobetragWaehrungAbbuchung,sum([plose_MWSTBetragWaehrungAbbuchung]) as [plose_MWSTBetragWaehrungAbbuchung],sum([plose_BruttobetragWaehrungAbbuchung]) as [plose_BruttobetragWaehrungAbbuchung] "
@@ -3451,13 +3467,13 @@ Public Class frmMDMDatenverarbetiung
For Each r In dt.Rows
Dim BLNr = r("plp_LeistungsNr")
'Dim BProz = r("plose_BruttobetragWaehrungAbbuchung")
Dim NettoBetrag As Double = r("plose_NettobetragWaehrungAbbuchung")
Dim BruttoBetrag As Double = r("plose_BruttobetragWaehrungAbbuchung")
Dim LeistungsNr As Integer = r("plp_LeistungsNr")
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
'Rückvergütung Consortio !!
@@ -3483,7 +3499,9 @@ Public Class frmMDMDatenverarbetiung
Dim NettoBetrag As Double = r("Netto")
Dim BruttoBetrag As Double = r("Brutto")
Dim LeistungsNr As Integer = r("LeistungsNr")
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
'Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
'RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
@@ -3504,14 +3522,17 @@ Public Class frmMDMDatenverarbetiung
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
For Each r In dt.Rows
'Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
'RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
For Each r In dt.Rows
Dim NettoBetrag As Double = r("Netto")
Dim BruttoBetrag As Double = r("Brutto")
Dim UstBetrag As Double = BruttoBetrag = NettoBetrag
Dim LeistungsNr As Integer = r("LeistungsNr")
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag, UstBetrag)
@@ -3537,13 +3558,17 @@ Public Class frmMDMDatenverarbetiung
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", 1200)
'Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
'RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
For Each r In dt.Rows
Dim NettoBetrag As Double = r("Netto")
Dim BruttoBetrag As Double = r("Brutto")
Dim UstBetrag As Double = r("UST")
Dim LeistungsNr As Integer = r("LeistungsNr")
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag, UstBetrag)
@@ -3587,7 +3612,9 @@ Public Class frmMDMDatenverarbetiung
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", 1200)
'Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
'RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
For Each r In dt.Rows
@@ -3598,7 +3625,6 @@ Public Class frmMDMDatenverarbetiung
Dim Rabatt As Double = r("SummevonRabattbetrag")
Dim LeistungsNr As Integer = r("LeistungsNr")
Dim LeistungsBez As String = r("LeistungsBez")
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag - Rabatt, UstBetrag, LeistungsBez) 'bei IDS muss ebenfalls die LeistungsBez ident sein!
@@ -3612,16 +3638,17 @@ Public Class frmMDMDatenverarbetiung
RG.Steuersatz_Proz = dtSt.Rows(0)(0)
End If
'cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag)
'Call usrCntlFaktAbrechnung.przFixeTaxe(RG) ' Fixe Taxe errechnen -> NICHT NOTWENDIG WEIL 440 nicht mehr FÜR Sammelrechnung verwendet wird!
'Call usrCntlFaktAbrechnung.przPP(RG) ' Porto/Papiere errechnen -> NICHT NOTWENDIG WEIL 440/PP nicht mehr FÜR Sammelrechnung verwendet wird!
Call usrCntlFaktAbrechnung.przBS415(RG) ' Bankspesen errechnen
Call usrCntlFaktAbrechnung.setFixeTaxeMin(RG, 500) ' Fixe Taxe 441 errechnen
cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag)
RG.Text = (cFakturierung.przRechnungstextTXT(RG, SPEDBUCH) & vbNewLine & cFakturierung.przRechnungstextZZ(RG)).Trim
Call usrCntlFaktAbrechnung.przFixeTaxe(RG) ' Fixe Taxe errechnen
Call usrCntlFaktAbrechnung.przPP(RG) ' Porto/Papiere errechnen
Call usrCntlFaktAbrechnung.przBS415(RG) ' Bankspesen errechnen
Call usrCntlFaktAbrechnung.setFixeTaxeMin(RG, 500, 20) ' Fixe Taxe 441 errechnen
RE = RG
If test Then
@@ -3753,6 +3780,12 @@ Public Class frmMDMDatenverarbetiung
POS.Anzahl = 1
' POS.BGebLeistungsNr = BGebLeistungsNr
If POS.LeistungsNr = 441 Then
MsgBox("")
End If
RG.POSITIONEN.Add(POS)
End If
@@ -3803,6 +3836,9 @@ Public Class frmMDMDatenverarbetiung
Dim cnt = 0
Dim cntTotal = MyDatagridview1.Rows.Count()
checkFixeTaxeImOffert("PLOSE", VERAGKdNr_DT)
For Each r As DataGridViewRow In MyDatagridview1.Rows
'KUNDEN-NR / PLOSE KD-NR
results = VERAGKdNr_DT.Select("PLOSEKundenNr = '" & r.Cells("plose_POLSEKundennummer").Value & "'")
@@ -3894,6 +3930,10 @@ Public Class frmMDMDatenverarbetiung
ORDER BY cardnumber", "FMZOLL")
Dim dtKunden As DataTable = SQL.loadDgvBySql("SELECT Distinct(Kreditkarten.AdressenNr FROM dbo.tblAsfinagMaut", "FMZOLL")
checkFixeTaxeImOffert("ASFINAG", dtKunden)
Dim VERAGKdNr = -1
Dim VERAGLeistungsNr = -1
Dim found = False
@@ -3920,7 +3960,7 @@ Public Class frmMDMDatenverarbetiung
pruefData_UTA = True
Try
Dim dtUTAKundennummern As DataTable = SQL.loadDgvBySql("SELECT Distinct(tblUTAImportNew.Kundennummer)
Dim dtUTAKundennummern As DataTable = SQL.loadDgvBySql("Select Distinct(tblUTAImportNew.Kundennummer)
FROM tblUTAImportNew LEFT JOIN Adressen ON tblUTAImportNew.Kundennummer = Adressen.UTAKundenNr WHERE cast(tblUTAImportNew.Rechnungsdatum as Date) = '" & DateTimePicker2.Text & "'
GROUP BY tblUTAImportNew.Kundennummer, Adressen.UTAKundenNr
HAVING (((Adressen.UTAKundenNr) Is Null))", "FMZOLL")
@@ -3962,6 +4002,13 @@ Public Class frmMDMDatenverarbetiung
End If
Dim dtKundenNr As DataTable = SQL.loadDgvBySql("SELECT Distinct(Adressen.AdressenNr)
FROM tblUTAImportNew LEFT JOIN Adressen ON tblUTAImportNew.Kundennummer = Adressen.UTAKundenNr
WHERE cast(tblUTAImportNew.Rechnungsdatum as Date) = '" & DateTimePicker2.Text & "'
GROUP BY Adressen.AdressenNr", "FMZOLL")
checkFixeTaxeImOffert("UTA", dtKundenNr)
Dim fehlendeRechnungen As Integer = 0
@@ -4052,6 +4099,16 @@ Public Class frmMDMDatenverarbetiung
MsgBox("Es sind " & nichtAufAbgerechnetGesetzteTransactionen & " Transaktionen in der Datenbank, die noch nicht auf VERRECHNET gesetzt sind!" & vbNewLine & "Diese Transaktionen (von Rechnung " & DateTimePicker2.Text & ") müssen aktualisiert werden. (bitte an Administrator wenden)." & IIf(hint <> "", vbNewLine & hint, ""))
End If
Dim dt As DataTable = SQL.loadDgvBySql("SELECT Distinct(Adressen.AdressenNr)
FROM [VERAG].[dbo].[tblMSESettlements] as bills
left join [VERAG].[dbo].[tblMSETransactions] as trans on bills.[transaction_id] = trans.[transaction_id]
left join [VERAG].[dbo].[tblMSECustomers] as cust on cust.partner_customer_number = trans.partner_haulier_id
left join [VERAG].[dbo].[tblMSEInvoices] as inv on inv.[invoice_id] = bills.[invoice_number] and inv.customer_number = cust.[customer_id] and trans.transaction_country = inv.country
left join adressen ON cust.[customer_id] = Adressen.MSEKundenNr
WHERE bills.[invoice_date] = '" & DateTimePicker2.Text & "' ", "FMZOLL")
checkFixeTaxeImOffert("MSE", dt)
'das muss die letzte Prüfung sein, da uU eine Transaktion fehlen kann!
Dim fehlendeTransactionen As Integer = 0
@@ -4098,6 +4155,9 @@ Public Class frmMDMDatenverarbetiung
Dim dt As DataTable = SQL.loadDgvBySql("Select distinct(tblIDSTransactionsNew.KdNrVERAG) from tblIDSTransactionsNew where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & DateTimePicker2.Text & "'", "FMZOLL")
checkFixeTaxeImOffert("IDS", dt)
checkFixeTaxeImOffert("IDS_AT", dt)
If dt.Rows.Count > 0 Then
Dim counter As Integer = 0
For Each r In dt.Rows
@@ -4867,4 +4927,64 @@ RabattBerechnen:
Return checkDate
End Function
Private Function checkFixeTaxeImOffert(Lieferant As String, dt As DataTable) As Boolean
Dim OffertenNr As Integer = -1
If Lieferant = "" Then Return False
Select Case Lieferant
Case "PLOSE" : OffertenNr = 80
Case "ASFINAG" : OffertenNr = 11
Case "UTA" : OffertenNr = 30
Case "MSE" : OffertenNr = 23
Case "IDS" : OffertenNr = 17
Case "IDS_AT" : OffertenNr = 21
Case Else
Return False
End Select
Dim AdressenNr As String = ""
If dt.Rows.Count > 0 Then
If dt.Columns.Contains("AdressenNr") Or dt.Columns.Contains("KdNrVERAG") Then
Dim dtNew As DataTable = dt.Rows.Cast(Of DataRow)().Where(Function(row) Not row.ItemArray.All(Function(field) field Is DBNull.Value Or field.Equals(""))).CopyToDataTable()
If dtNew.Rows.Count > 0 Then
Dim counter = 0
For Each r As DataRow In dtNew.Rows
AdressenNr &= r.Item(0)
counter = counter + 1
If (dtNew.Rows.Count <> 0 And counter <> dtNew.Rows.Count) Then
AdressenNr &= ","
End If
Next
End If
End If
End If
Dim sqlStringOffertMehrfach = "select COUNT(*) as Anzahl ,OffertenNr, KundenNr LeistungsNr from Offertenpositionen where LeistungsNr = 441 and OffertenNr = " & OffertenNr & " and KundenNr in (" & AdressenNr & ") group by KundenNr, LeistungsNr, OffertenNr having COUNT(*) > 1"
Dim dtOfferten As DataTable = SQL.loadDgvBySql(sqlStringOffertMehrfach, "FMZOLL")
If dtOfferten.Rows.Count > 0 Then
MsgBox("Es sind bei " & dtOfferten.Rows.Count & " Kunden das Offert 441 mehrfach hinterlegt, das muss korrigiert werden, ansonten kann die Fixe Taxe nicht berechnet werden!")
cProgramFunctions.genExcelCSVFromDT(dtOfferten, True)
Return False
End If
Dim sqlStringFehlendeOffertenNr = "select KundenNr, OffertenNr from Offertenpositionen where OffertenNr = " & OffertenNr & " and KundenNr in (" & AdressenNr & ")
GROUP by KundenNr, OffertenNr
EXCEPT
select KundenNr, OffertenNr from Offertenpositionen where LeistungsNr = 441 and OffertenNr = " & OffertenNr & " and KundenNr in (" & AdressenNr & ")
GROUP by KundenNr, OffertenNr"
Dim dtfehlendeOfferten As DataTable = SQL.loadDgvBySql(sqlStringFehlendeOffertenNr, "FMZOLL")
If dtfehlendeOfferten.Rows.Count > 0 Then
MsgBox("Es fehlen bei " & dtfehlendeOfferten.Rows.Count & " Kunden das Offert 441, bitte hinterlegen ansonten wird die Fixe Taxe nicht gesetzt!")
cProgramFunctions.genExcelCSVFromDT(dtfehlendeOfferten, True)
Return True
End If
End Function
End Class

View File

@@ -44,6 +44,8 @@ Public Class usrcntlFakturierung
'PathMautberichte = "C:\Users\d.breimaier\Desktop\MDM\Mautgesamtberichte\"
Dim FaktAbt As Boolean = IIf(VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG("MDM_FAKTURIERUNG", "SDL") = 0, True, False)
countCSV = 0
countPDF = 0
If Directory.Exists(PathMautberichte) Then
@@ -54,12 +56,12 @@ Public Class usrcntlFakturierung
Next
End If
Else
MsgBox("Mautbericht-Pfad " & PathMautberichte & " nicht verfügbar!")
If FaktAbt Then MsgBox("Mautbericht-Pfad " & PathMautberichte & " nicht verfügbar!")
End If
lblAnzahlMautberichte.Text = countCSV + countPDF & "x Mautberichte (" & countCSV & "x CSV " & countPDF & "x PDF )"
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG("MDM_FAKTURIERUNG", "SDL") = 0 Then
If FaktAbt Then
btnMDMSammelrechnung.Enabled = True
GBMautberichte.Enabled = True
@@ -285,8 +287,10 @@ Public Class usrcntlFakturierung
'Rechnungstext im RK eintragen
showPic(setRechnungstext(Sachbearbeiter, rechnungsdatum, dtSammelrechnungen), PictureBox3)
' Porto/Papiere berechnen.
showPic(PortoPapiere(Sachbearbeiter, rechnungsdatum), PictureBox4)
'--NICHT BENÖTIGT!
' Porto/Papiere berechnen.
'showPic(PortoPapiere(Sachbearbeiter, rechnungsdatum), PictureBox4)
'--NICHT BENÖTIGT!
'Berechnet Banküberweisung/Bankspesen.
showPic(Bankspesen(Sachbearbeiter, rechnungsdatum), PictureBox5)
@@ -540,27 +544,33 @@ Public Class usrcntlFakturierung
Dim intZlr As Integer = 0
If r("RechnungsKundenNr") = "401715" Or r("RechnungsKundenNr") = "401943" Or r("RechnungsKundenNr") = "402179" Or r("RechnungsKundenNr") = "402598" Or r("RechnungsKundenNr") = "402656" Or r("RechnungsKundenNr") = "402688" Or r("RechnungsKundenNr") = "402719" Or r("RechnungsKundenNr") = "402888" Or r("RechnungsKundenNr") = "402933" Or r("RechnungsKundenNr") = "401733" Or r("RechnungsKundenNr") = "402245" Or r("RechnungsKundenNr") = "402712" Or r("RechnungsKundenNr") = "402065" Or r("RechnungsKundenNr") = "402712" Or r("RechnungsKundenNr") = "401908" Or r("RechnungsKundenNr") = "401829" Or r("RechnungsKundenNr") = "203083" Then
'MsgBox("Test")
End If
' Bei BetragExclusivFT kleiner als 500€ wird 1x fixe Taxe verrechnet, bei grösser/gleich 500€ wird kein fixe Taxe verrechnet.
' Zähler auf die Anzahl der fixe Taxe Löschungen einstellen.
If Not IsDBNull(r("BetragExclusivFT")) AndAlso r("BetragExclusivFT") > 0 Then
If Not IsDBNull(r("BetragExclusivPP")) AndAlso r("BetragExclusivPP") > 0 Then
If r("BetragExclusivPP") < 500 Then
intZlr = r("AnzahlPP") - 1
Else
intZlr = r("AnzahlPP")
End If
If r("BetragExclusivFT") < 500 Then
intZlr = r("AnzahlFT") - 1
Else
If (0 - r("BetragExclusivPP")) < 500 Then
intZlr = r("AnzahlPP") - 1
Else
intZlr = r("AnzahlPP") - 1
End If
intZlr = r("AnzahlFT")
End If
Else
If (0 - r("BetragExclusivFT")) < 500 Then
intZlr = r("AnzahlFT") - 1
Else
intZlr = r("AnzahlFT") - 1
End If
End If
If intZlr > 0 Then
@@ -615,6 +625,8 @@ Public Class usrcntlFakturierung
intZlr = intZlr - row("Anzahl")
If intZlr < 0 Then Exit For
If Not IsDBNull(row("SteuerpflichtigerBetrag")) AndAlso IsNumeric(row("SteuerpflichtigerBetrag")) Then stgesBetr = stgesBetr - CDbl(row("SteuerpflichtigerBetrag"))
If Not IsDBNull(row("SteuerfreierBetrag")) AndAlso IsNumeric(row("SteuerfreierBetrag")) Then stfregesBetr = stfregesBetr - CDbl(row("SteuerfreierBetrag"))
@@ -624,7 +636,7 @@ Public Class usrcntlFakturierung
isSet = RECHNUNG.SAVE(False)
End If
If intZlr = 0 Then Exit For
If intZlr <= 0 Then Exit For
Next

View File

@@ -1,6 +1,7 @@

Imports System.Data.SqlClient
Imports System.Reflection
Imports com.sun.xml.internal.rngom.digested
Public Class cEmailBenachrichtigungList
Property eb_KundenNr As Object = Nothing
@@ -122,21 +123,20 @@ Public Class cEmailBenachrichtigung
Dim Firmen As New cFirmenDAL
Dim Firma As New cFirma
If Kdnr Is Nothing OrElse Not IsNumeric(Kdnr) Then Exit Sub
If Kdnr < 0 Then Exit Sub
'Prüfen, ob die Art für den Kunden im Kundenstamm aktiviert ist:
If art = 3 Then '> Ankunft Export
Dim AnkungMail = IIf((New VERAG_PROG_ALLGEMEIN.SQL).DLookup("isnull(EmailAnkunft_Export,0)", "[tblKundenErweitert]", "kde_KundenNr=" & Kdnr, "FMZOLL", "0") = "False", "0", (New VERAG_PROG_ALLGEMEIN.SQL).DLookup("isnull(EmailAnkunft_Export,0)", "[tblKundenErweitert]", "kde_KundenNr=" & Kdnr, "FMZOLL", "0"))
If AnkungMail = 0 Then
art = 1
Dim kdn_er As New cKundenErweitert(Kdnr)
If art = 3 Then '> Ankunft Export
If kdn_er Is Nothing OrElse Not kdn_er.EmailAnkunft_Export Then
art = 1
End If
ElseIf art = 4 Then '> Freigabe Export
If kdn_er Is Nothing OrElse Not kdn_er.EmailFreigabe_Export Then
art = 2
End If
End If
End If
If art = 4 Then '> Freigabe Export
Dim FreigabeMail = IIf((New VERAG_PROG_ALLGEMEIN.SQL).DLookup("isnull(EmailFreigabe_Export,0)", "[tblKundenErweitert]", "kde_KundenNr=" & Kdnr, "FMZOLL", "0") = "False", "0", (New VERAG_PROG_ALLGEMEIN.SQL).DLookup("isnull(EmailFreigabe_Export,0)", "[tblKundenErweitert]", "kde_KundenNr=" & Kdnr, "FMZOLL", "0"))
If FreigabeMail = 0 Then
art = 2
End If
End If
'In diesen Strings werden die Mailadressen übergeben:
@@ -144,7 +144,7 @@ Public Class cEmailBenachrichtigung
Emails_CC = ""
Emails_BCC = ""
If Kdnr Is Nothing OrElse Not IsNumeric(Kdnr) Then Exit Sub
' Dim Avisierer As New cKunde(hAuftraggeber_kdnr)
' Dim Fraechter As New cKunde(hFrächter_kdnr)
Dim Kdnr_Mails As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(Kdnr, art)