diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb index 714dc60f..b4fc0757 100644 --- a/SDL/Fakturierung/frmFaktEmail.vb +++ b/SDL/Fakturierung/frmFaktEmail.vb @@ -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 diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index 713ef9f6..215e8275 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -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 diff --git a/SDL/buchhaltung/frmBU_Mahnlauf.vb b/SDL/buchhaltung/frmBU_Mahnlauf.vb index 84e250bd..b1e79596 100644 --- a/SDL/buchhaltung/frmBU_Mahnlauf.vb +++ b/SDL/buchhaltung/frmBU_Mahnlauf.vb @@ -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 diff --git a/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.Designer.vb b/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.Designer.vb index fdcff50e..e78f3bfd 100644 --- a/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.Designer.vb +++ b/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.Designer.vb @@ -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 ' diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index e68066c8..f195f4be 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -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 diff --git a/SDL/seriendruck/usrCntlFakturierung.vb b/SDL/seriendruck/usrCntlFakturierung.vb index 43190619..1aca9573 100644 --- a/SDL/seriendruck/usrCntlFakturierung.vb +++ b/SDL/seriendruck/usrCntlFakturierung.vb @@ -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 diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb b/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb index f36ebdff..936d9fe5 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb @@ -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)