From 4082808ef7f56a12d4455d34e333c1a45a9512e2 Mon Sep 17 00:00:00 2001 From: Andreas Luxbauer Date: Thu, 6 Jun 2024 22:23:51 +0200 Subject: [PATCH] MDM Plose Abrechnung --- SDL/My Project/AssemblyInfo.vb | 4 +- ...undenAvisoMailBenachrichtigung.Designer.vb | 60 +++++++++++++++++- .../usrCntlKundenAvisoMailBenachrichtigung.vb | 17 +++++- SDL/mdm/frmMDMDatenverarbetiung.vb | 12 +++- .../Classes/cRechnungsausgang.vb | 61 +++++++++++++++++-- 5 files changed, 141 insertions(+), 13 deletions(-) diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 4d12a981..c80a2adc 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.Designer.vb b/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.Designer.vb index 53e86900..e3944b0e 100644 --- a/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.Designer.vb +++ b/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.Designer.vb @@ -44,6 +44,10 @@ Partial Class usrCntlKundenAvisoMailBenachrichtigung Me.cbxAVM = New System.Windows.Forms.CheckBox() Me.cboFreigabeArt = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.cboFreigabeArtExport = New VERAG_PROG_ALLGEMEIN.MyComboBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.rtbLkwStatusMail = New System.Windows.Forms.RichTextBox() + Me.FlatButton5 = New VERAG_PROG_ALLGEMEIN.FlatButton() + Me.Panel1 = New System.Windows.Forms.Panel() Me.SuspendLayout() ' 'cboFreigabe_SteuerbescheidBedingung @@ -55,7 +59,7 @@ Partial Class usrCntlKundenAvisoMailBenachrichtigung Me.cboFreigabe_SteuerbescheidBedingung.FormattingEnabled = True Me.cboFreigabe_SteuerbescheidBedingung.Location = New System.Drawing.Point(367, 138) Me.cboFreigabe_SteuerbescheidBedingung.Name = "cboFreigabe_SteuerbescheidBedingung" - Me.cboFreigabe_SteuerbescheidBedingung.Size = New System.Drawing.Size(98, 21) + Me.cboFreigabe_SteuerbescheidBedingung.Size = New System.Drawing.Size(86, 21) Me.cboFreigabe_SteuerbescheidBedingung.TabIndex = 52 ' 'cbxFreigabe_VBD @@ -312,11 +316,59 @@ Partial Class usrCntlKundenAvisoMailBenachrichtigung Me.cboFreigabeArtExport.Size = New System.Drawing.Size(68, 21) Me.cboFreigabeArtExport.TabIndex = 64 ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label2.Location = New System.Drawing.Point(3, 178) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(58, 13) + Me.Label2.TabIndex = 68 + Me.Label2.Text = "Statusmail:" + ' + 'rtbLkwStatusMail + ' + Me.rtbLkwStatusMail.BackColor = System.Drawing.Color.White + Me.rtbLkwStatusMail.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.rtbLkwStatusMail.Location = New System.Drawing.Point(88, 178) + Me.rtbLkwStatusMail.Name = "rtbLkwStatusMail" + Me.rtbLkwStatusMail.ReadOnly = True + Me.rtbLkwStatusMail.Size = New System.Drawing.Size(184, 59) + Me.rtbLkwStatusMail.TabIndex = 66 + Me.rtbLkwStatusMail.Text = "" + ' + 'FlatButton5 + ' + Me.FlatButton5.allowBorder = False + Me.FlatButton5.BackgroundImage = Global.SDL.My.Resources.Resources.stift + Me.FlatButton5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.FlatButton5.FlatAppearance.BorderSize = 0 + Me.FlatButton5.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.FlatButton5.ForeColor = System.Drawing.Color.Black + Me.FlatButton5.Location = New System.Drawing.Point(67, 174) + Me.FlatButton5.Name = "FlatButton5" + Me.FlatButton5.Size = New System.Drawing.Size(20, 20) + Me.FlatButton5.TabIndex = 67 + Me.FlatButton5.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel1.Location = New System.Drawing.Point(6, 165) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(460, 1) + Me.Panel1.TabIndex = 69 + ' 'usrCntlKundenAvisoMailBenachrichtigung ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoScroll = True Me.BackColor = System.Drawing.Color.White + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.rtbLkwStatusMail) + Me.Controls.Add(Me.FlatButton5) Me.Controls.Add(Me.cboFreigabeArtExport) Me.Controls.Add(Me.cboFreigabeArt) Me.Controls.Add(Me.cbxAVM) @@ -340,7 +392,7 @@ Partial Class usrCntlKundenAvisoMailBenachrichtigung Me.Controls.Add(Me.FlatButton2) Me.Controls.Add(Me.FlatButton3) Me.Name = "usrCntlKundenAvisoMailBenachrichtigung" - Me.Size = New System.Drawing.Size(479, 164) + Me.Size = New System.Drawing.Size(479, 245) Me.ResumeLayout(False) Me.PerformLayout() @@ -368,4 +420,8 @@ Partial Class usrCntlKundenAvisoMailBenachrichtigung Friend WithEvents cbxAVM As CheckBox Friend WithEvents cboFreigabeArt As VERAG_PROG_ALLGEMEIN.MyComboBox Friend WithEvents cboFreigabeArtExport As VERAG_PROG_ALLGEMEIN.MyComboBox + Friend WithEvents Label2 As Label + Friend WithEvents rtbLkwStatusMail As RichTextBox + Friend WithEvents FlatButton5 As VERAG_PROG_ALLGEMEIN.FlatButton + Friend WithEvents Panel1 As Panel End Class diff --git a/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.vb b/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.vb index c1e43368..4b284a85 100644 --- a/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.vb +++ b/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.vb @@ -146,12 +146,14 @@ rtbLKWFreigabe.Text = "" RichTextBox1.Text = "" RichTextBox2.Text = "" + rtbLkwStatusMail.Text = "" If KUNDE IsNot Nothing AndAlso KUNDE.KundenNr > 0 Then Dim EMAIL_ANKUNFT = New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(KUNDE.KundenNr, 1) Dim EMAIL_FREIGABE = New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(KUNDE.KundenNr, 2) Dim EMAIL_ANKUNFT_EXPORT = New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(KUNDE.KundenNr, 3) Dim EMAIL_FREIGABE_EXPORT = New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(KUNDE.KundenNr, 4) + Dim EMAIL_STATUS = New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(KUNDE.KundenNr, 5) For Each l In EMAIL_ANKUNFT.LIST If l.eb_cc Then rtbLkwAnkunf.Text &= l.eb_EMail & " (CC)" & vbNewLine @@ -189,6 +191,15 @@ RichTextBox1.Text &= l.eb_EMail & vbNewLine End If Next + For Each l In EMAIL_STATUS.LIST + If l.eb_cc Then + rtbLkwStatusMail.Text &= l.eb_EMail & " (CC)" & vbNewLine + ElseIf l.eb_bcc Then + rtbLkwStatusMail.Text &= l.eb_EMail & " (BCC)" & vbNewLine + Else + rtbLkwStatusMail.Text &= l.eb_EMail & vbNewLine + End If + Next End If End Sub @@ -228,5 +239,9 @@ loadEmails() End Sub - + Private Sub FlatButton5_Click(sender As Object, e As EventArgs) Handles FlatButton5.Click + Dim f As New frmEmailBenachrichtigung(KUNDE.KundenNr, 5) + f.ShowDialog(Me) + loadEmails() + End Sub End Class diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index af8f5ed6..00e9343d 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -1969,8 +1969,11 @@ Public Class frmMDMDatenverarbetiung RG.Buchungsjahr = cRKSV.getGJ(RG.RechnungsDatum) - 'RG.LOAD_POSITIONEN() + 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) Dim sqlstr As String = "" sqlstr &= " SELECT [plp_LeistungsNr],sum([plose_NettobetragWaehrungAbbuchung]) as plose_NettobetragWaehrungAbbuchung,sum([plose_MWSTBetragWaehrungAbbuchung]) as [plose_MWSTBetragWaehrungAbbuchung],sum([plose_BruttobetragWaehrungAbbuchung]) as [plose_BruttobetragWaehrungAbbuchung] " @@ -1996,7 +1999,6 @@ Public Class frmMDMDatenverarbetiung Dim BruttoBetrag As Double = r("plose_BruttobetragWaehrungAbbuchung") Dim LeistungsNr As Integer = r("plp_LeistungsNr") - Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True) allPlosePos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag) @@ -2249,6 +2251,12 @@ Public Class frmMDMDatenverarbetiung For Each o In OFFERTE.POSITIONEN If o.LeistungsNr = LeistungsNr Then + 'Dim PARK = RECHNUNG.POSITIONEN.FindAll(Function(x) (x.LeistungsNr = 313 Or x.LeistungsNr = 312)) + 'If PARK Is Nothing Then + + 'End If + + Dim POS As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen() Dim LEISTUNG As New VERAG_PROG_ALLGEMEIN.cLeistungen(o.LeistungsNr) POS.LeistungsNr = o.LeistungsNr diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb index 3a97e8da..bcdccc59 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb @@ -1,7 +1,8 @@ Imports System.Data.SqlClient Imports System.Reflection Imports System.Windows.Forms -Imports DocumentFormat.OpenXml.Spreadsheet +'Imports DocumentFormat.OpenXml.Drawing.Charts +'Imports DocumentFormat.OpenXml.Spreadsheet Public Class cRechnungsausgangLIST @@ -693,16 +694,64 @@ Public Class cRechnungsausgang MsgBox("Fehler In der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) End Try End Sub - Public Sub LOAD_OFFERT_POSITIONEN(kdNr) + + Public Sub LOAD_POSITIONEN_FROM_OFFERTE(OFFERTE As VERAG_PROG_ALLGEMEIN.cOfferte) + + For Each O In OFFERTE.POSITIONEN + 'If row("Anzahl") > 0 Then -->SQL + + Dim l As New cRechnungsausgangPositionen + l.LeistungsNr = O.LeistungsNr + l.LeistungsBez = O.LeistungsBez + l.Anzahl = O.Anzahl + l.Preis = O.Preis + l.BerechnungsartNr = O.BerechnungsartNr + l.BGebLeistungsNr = O.BGebLeistungsNr + l.BGebProzent = O.BGebProzent + l.BGebMinBetrag = O.BGebMinBetrag + ' l.Steuerpflichtig = O.ste + l.RK_ID = Me.RK_ID + + POSITIONEN.Add(l) + ' End If + Next + + End Sub + Public Sub LOAD_OFFERT_POSITIONEN() Try ' POSITIONEN.Clear() - Dim dt As DataTable = SQL.loadDgvBySql(" SELECT [Offertenpositionen].[LeistungsNr],[Offertenpositionen].[LeistungsBez],[Anzahl],[Preis],[Offertenpositionen].[BerechnungsartNr],[BGebLeistungsNr],[BGebProzent],[BGebMinBetrag],Steuerpflichtig/*,[Geändert am],[Sachbearbeiter]*/,BerechnungsartPosInkludiert " & - " FROM [Offertenpositionen] INNER JOIN [Leistungen] ON leistungen.LeistungsNr=Offertenpositionen.LeistungsNr" & - " WHERE KundenNr='" & kdNr & "' and OffertenNr='" & OffertenNr & "' ORDER BY LeistungsNr ", "FMZOLL") - + Dim dt = SQL.loadDgvBySql(" Select [Offertenpositionen].[LeistungsNr],[Offertenpositionen].[LeistungsBez],[Anzahl],[Preis],[Offertenpositionen].[BerechnungsartNr],[BGebLeistungsNr],[BGebProzent],[BGebMinBetrag],Steuerpflichtig/*,[Geändert am],[Sachbearbeiter]*/,BerechnungsartPosInkludiert + From [Offertenpositionen] INNER Join [Leistungen] On Leistungen.LeistungsNr=Offertenpositionen.LeistungsNr + Where KundenNr ='" & Me.RechnungsKundenNr & "' and OffertenNr='" & OffertenNr & "' AND Anzahl>0 AND Preis>0 ORDER BY LeistungsNr", "FMZOLL") For Each row In dt.Rows + 'If row("Anzahl") > 0 Then -->SQL + Dim l As New cRechnungsausgangPositionen + l.LeistungsNr = row("LeistungsNr") + l.LeistungsBez = row("LeistungsBez") + l.Anzahl = row("Anzahl") + l.Preis = row("Preis") + l.BerechnungsartNr = row("BerechnungsartNr") + l.BGebLeistungsNr = row("BGebLeistungsNr") + l.BGebProzent = row("BGebProzent") + l.BGebMinBetrag = row("BGebMinBetrag") + l.Steuerpflichtig = row("Steuerpflichtig") + + 'l.BGebBgl = l.Preis + If l.Steuerpflichtig Then + l.SteuerpflichtigerBetrag = l.Preis + l.Preis = l.Preis + Else + Dim steuersatz = SQL.DLookup("Steuertabelle.[Steuersatz %] ", "[Kunden] inner join Steuertabelle on Steuertabelle.Steuerschlüssel=kunden.Steuerschlüssel", "KundenNr='" & Me.RechnungsKundenNr & "'",, "0") + L.SteuerfreierBetrag = l.Preis + (l.Preis * steuersatz) + l.Preis = l.Preis + (l.Preis * steuersatz) + End If + + l.RK_ID = Me.RK_ID + + POSITIONEN.Add(l) + ' End If Next Catch ex As Exception