Mahnstufe Melden
Mahnstufe Melden
Section titled “Mahnstufe Melden”Beschreibung
Section titled “Beschreibung”Beim erstellen eines Auftrags und Auswahl eines Kunden wird eine Meldung angezeigt, falls der Kunde eine gewisse Mahnstufe erreicht hat.
Voraussetzung
Section titled “Voraussetzung”Auftragsverwaltung ab Version 12.1.7
Ablauf des Skripts
Section titled “Ablauf des Skripts”- Beim Start der Auftragsverwaltung wird der Skript automatisch kompiliert und überwacht das erstellen von neuen Fenstern.
- Wird ein Fenster erstellt, welches dem Typ “Auftrag” entspricht, wird die Datenquelle auf Änderung der Kundennummer überwacht.
- Bei Änderung der Kundennummer wird die Summe aller unbezahlten Mahnstufen berechnet.
- Ist die Gesamt-Mahnstufe über einem bestimmten Level (> 0 in der Voreinstellung) wird eine Meldung angezeigt.
Installation
Section titled “Installation”Der Skript muss sich im Ordner “[Datenpfad]\Skripts\Autostart” befinden.
Skript
Section titled “Skript”Imports Microsoft.VisualBasicImports SystemImports System.Collections.GenericImports System.LinqImports Styletronix.AuftragsverwaltungV2.CommonImports Styletronix.AuftragsverwaltungV2Imports Styletronix.AuftragsverwaltungV2.IPCImports StyletronixImports Styletronix.Threading.Thread_ManagerNamespace LagerstandAbfragePublic Class DynamicCodeImplements IPC.IPluginDetailsImplements IPC.ICommonPlugIn'Geben Sie hier die Mahnstufe ein, ab der eine Warnung angezeigt werden soll. Die Mahnstufe ist dabei die Summe aller Mahnstufen von unbezahlten RechnungenDim WarnungAbMahnstufe = 1#Region "Deklarationen"Private _Host As Object#End Region#Region "PluginDetails"Public ReadOnly Property Plugin_Company As String Implements IPC.IPluginDetails.Plugin_CompanyGetReturn "Styletronix.net"End GetEnd PropertyPublic ReadOnly Property Plugin_Description As String Implements IPC.IPluginDetails.Plugin_DescriptionGetReturn "Zeigt beim erstellen eines neuen Auftrags eine Warnung, wenn Kunde aktive Mahnungen hat."End GetEnd PropertyPublic ReadOnly Property Plugin_Icon As System.Drawing.Image Implements IPC.IPluginDetails.Plugin_IconGetReturn NothingEnd GetEnd PropertyPublic ReadOnly Property Plugin_Name As Object Implements IPC.IPluginDetails.Plugin_NameGetReturn "Mahnungswarnung im Auftrag"End GetEnd PropertyPublic ReadOnly Property Plugin_Version As System.Version Implements IPC.IPluginDetails.Plugin_VersionGetReturn New Version(1, 0, 0)End GetEnd Property#End Region#Region "CommonPlugIn"Public Sub Initialize(Host As Object) Implements AuftragsverwaltungV2.IPC.ICommonPlugIn.InitializeMe._Host = Host'Überwacht das öffnen von Fenstern.AddHandler CType(Me._Host, Styletronix.Auftragsverwaltung.mainApp).XtraTabbedMdiManager2.PageAdded, AddressOf PageAddedEnd SubPublic ReadOnly Property Plugin_HasConfigMenu As Boolean Implements AuftragsverwaltungV2.IPC.ICommonPlugIn.Plugin_HasConfigMenuGetReturn FalseEnd GetEnd PropertyPublic Sub ShowConfigMenu() Implements AuftragsverwaltungV2.IPC.ICommonPlugIn.ShowConfigMenuThrow New NotImplementedExceptionEnd SubPublic Function ShutDown() As Boolean Implements AuftragsverwaltungV2.IPC.ICommonPlugIn.ShutDownReturn TrueEnd FunctionPublic Function ShutDownRequest() As AuftragsverwaltungV2.IPC.ICommonPlugIn.Shutdown_Result Implements AuftragsverwaltungV2.IPC.ICommonPlugIn.ShutDownRequestReturn New AuftragsverwaltungV2.IPC.ICommonPlugIn.Shutdown_Result With {.Cancel = False}End Function#End RegionPrivate Sub PageAdded(ByVal sender As Object, ByVal e As DevExpress.XtraTabbedMdi.MdiTabPageEventArgs)'Beim öffnen eines neuen Fensters wird geprüft, ob es sich um einen Auftrag handelt.Dim form = CType(e.Page.MdiChild, Windows.Forms.Form)Dim Auftrag As Styletronix.Auftragsverwaltung.frm_Auftrag = TryCast(form, Styletronix.Auftragsverwaltung.frm_Auftrag)If Not Auftrag Is Nothing Then'Fügt eine Überwachung zur Datenquelle hinzuAddHandler Auftrag.BindingSource_Auftrag.CurrentItemChanged, AddressOf CurrentItemChangedAddHandler Auftrag.FormClosed, AddressOf FormClosedEnd IfEnd SubPrivate LetzteKDNr As Int64Private Sub CurrentItemChanged(ByVal sender As Object, ByVal e As System.EventArgs)Dim Auftragsdaten As tbl_Auftrag = TryCast(sender.Current, tbl_Auftrag)'Bei Änderung der Datenquelle prüfen, ob sich die KDNr geändert hat.If Not Auftragsdaten.KDNr Is Nothing AndAlso Not Auftragsdaten.KDNr = LetzteKDNr Then'Auftragstyp prüfenIf Auftragsdaten.typ Is Nothing Then ReturnIf Auftragsdaten.typ = EntityHelper.CustomDataTypes.AuftragTyp.Mahnung Then Return'Letzte KDNr speichern um mehrfachanzeige zu vermeiden.Me.LetzteKDNr = Auftragsdaten.KDNr'Suche alle unbezahlten Rechnungen mit Mahnstufen >= WarnungAbMahnstufeUsing dc As New DC_AllgemeinDataContext(Einstellungen.SQL_Verbindungszeichenfolge)Dim Mahnungen = (From a In dc.tbl_Auftrag Where a.KDNr = Auftragsdaten.KDNr And a.bezahlt = False And a.Mahnstufe > 0 And a.typ = EntityHelper.CustomDataTypes.AuftragTyp.Rechnung Select a.Mahnstufe).SumIf Mahnungen >= WarnungAbMahnstufe Then'Meldung anzeigen, wenn die Mahnstufe ein gewisses Level überschritten hat.Using dlg As New Styletronix.ReportSystem.MessageBox2dlg.Überschrift = "Achtung, der Kunde befindet sich auf Mahnstufe " & Mahnungendlg.Text = "Mahnungen vorhanden"Dim btn As New Styletronix.ReportSystem.MessageBox2.ButtonParameterbtn.Caption = "OK"btn.Description = "Meldung schließen"btn.Tag = "ok"dlg.AddButton(btn)btn = New Styletronix.ReportSystem.MessageBox2.ButtonParameterbtn.Caption = "Aufträge anzeigen"btn.Description = "Alle Aufträge des Kunden anzeigen"btn.Tag = "liste"dlg.AddButton(btn)dlg.ShowDialog()Select Case dlg.SelectedItem.TagCase "liste"'Auftragsliste anzeigenDim AuftragListe As New Styletronix.Auftragsverwaltung.frm_Auftragsliste(CInt(Auftragsdaten.KDNr))AuftragListe.MdiParent = Me._HostAuftragListe.Show()End SelectEnd UsingEnd IfEnd UsingEnd IfEnd SubPrivate Sub FormClosed(sender As Object, e As Windows.Forms.FormClosedEventArgs)RemoveHandler CType(sender, Styletronix.Auftragsverwaltung.frm_Auftrag).BindingSource_Auftrag.CurrentItemChanged, AddressOf CurrentItemChangedEnd SubEnd ClassEnd NamespaceQuelle
Section titled “Quelle”- Ursprungsdatei: mahnstufe_melden.htm