Skip to content

Grund für Gutschrift

Beim erstellen einer Gutschrift  wird eine Meldung angezeigt, die zur Angabe des Reklamationsgrunds auffordert. Die Antwort wird in den erweiterten Eigenschaften des Auftrags gespeichert und kann durch LINQ Abfragen abgerufen werden.

Auftragsverwaltung ab Version 12.1.6

  1. Beim Start der Auftragsverwaltung wird der Skript automatisch kompiliert und überwacht das erstellen von neuen Fenstern.
  2. Wird ein Fenster erstellt, welches dem Typ “Auftrag” entspricht, wird die Datenquelle auf Änderung des Auftrag Typs überwacht. Wird der Typ auf “Gutschrift” geändert, wird eine Meldung zur Angabe des Reklamationsgrunds eingeblendet.
  3. Das Ergebnis wird in den erweiterten Eigenschaften des Auftrags gespeichert und kann zum erstellen von Filtern verwendet werden.

Der Skript muss sich im Ordner “[Datenpfad]\Skripts\Autostart”  befinden.

Um die Auftragsliste nach den Reklamationsgründen zu filtern kann folgende LINQ Abfrage verwendet werden:

From a In dc.tbl_Auftrag Where (From e In a.tbl_Auftrag_Extendeds Where e.Kategorie = "RMA Grund" And e.Text = "Transportschaden").Any()

Der gelb markierte Text gibt den anzuzeigenden Reklamationsgrund an und kann je nach Bedarf angepasst werden. Dabei ist auf Groß-/Kleinschreibung zu achten.

Im Beispielskript sind folgende RMA Gründe verfügbar:

  • falsch bestellt
  • falsch geliefert
  • neu defekt
  • Transportschaden
  • sonstiges
  1. Öffnen Sie die Auftragsliste. Klicken Sie dazu im Hauptmenü auf “Aufträge” und anschließend auf “Alle Aufträge anzeigen”
  2. Wählen Sie im rechten Navigationsmenü “Filter” aus. Im unteren Bereich des Filterdialogs über der Schaltfläche “Filter anwenden” befindet sich ein Textfeld. Klicken Sie dieses an und bestätigen Sie die angezeigte Warnung.
  3. Geben Sie im Textfeld die oben angegebene LINQ abfrage ein. Passen Sie den gelben Text an Ihre Bedürfnisse an.
  4. Klicken Sie auf das + neben der Filterliste im oberen Bereich um den Filter als neuen Filter zu speichern.
  5. Geben Sie eine Bezeichnung für den neuen Filter ein und klicken Sie auf speichern.
Imports Microsoft.VisualBasic Imports System Imports System.Collections.Generic Imports System.Linq Imports Styletronix.AuftragsverwaltungV2.Common Imports Styletronix.AuftragsverwaltungV2 Imports Styletronix.AuftragsverwaltungV2.IPC Imports Styletronix Imports Styletronix.Threading.Thread_Manager Namespace LagerstandAbfrage Public Class DynamicCode Implements IPC.IPluginDetails Implements IPC.ICommonPlugIn #Region "Deklarationen" Private _Host As Object #End Region #Region "PluginDetails" Public ReadOnly Property Plugin_Company As String Implements IPC.IPluginDetails.Plugin_Company Get Return "Styletronix.net" End Get End Property Public ReadOnly Property Plugin_Description As String Implements IPC.IPluginDetails.Plugin_Description Get Return "Fragt bei der erstellung einer Gutschrift nach dem Grund für die Gutschrift." End Get End Property Public ReadOnly Property Plugin_Icon As System.Drawing.Image Implements IPC.IPluginDetails.Plugin_Icon Get Return Nothing End Get End Property Public ReadOnly Property Plugin_Name As Object Implements IPC.IPluginDetails.Plugin_Name Get Return "Abfrage Grund für Gutschrift" End Get End Property Public ReadOnly Property Plugin_Version As System.Version Implements IPC.IPluginDetails.Plugin_Version Get Return New Version(1, 0, 0) End Get End Property #End Region #Region "CommonPlugIn" Public Sub Initialize(Host As Object) Implements AuftragsverwaltungV2.IPC.ICommonPlugIn.Initialize Me._Host = Host 'Überwacht das öffnen von Fenstern. AddHandler CType(Me._Host, Styletronix.Auftragsverwaltung.mainApp).XtraTabbedMdiManager2.PageAdded, AddressOf PageAdded End Sub Public ReadOnly Property Plugin_HasConfigMenu As Boolean Implements AuftragsverwaltungV2.IPC.ICommonPlugIn.Plugin_HasConfigMenu Get Return False End Get End Property Public Sub ShowConfigMenu() Implements AuftragsverwaltungV2.IPC.ICommonPlugIn.ShowConfigMenu Throw New NotImplementedException End Sub Public Function ShutDown() As Boolean Implements AuftragsverwaltungV2.IPC.ICommonPlugIn.ShutDown Return True End Function Public Function ShutDownRequest() As AuftragsverwaltungV2.IPC.ICommonPlugIn.Shutdown_Result Implements AuftragsverwaltungV2.IPC.ICommonPlugIn.ShutDownRequest Return New AuftragsverwaltungV2.IPC.ICommonPlugIn.Shutdown_Result With {.Cancel = False} End Function #End Region Private 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 Dim Monitoring As New AuftragMonitoring(Auftrag, _Host) End If End Sub Private Class AuftragMonitoring Private LetzterAuftragsTyp As Int64 Private Form As Styletronix.Auftragsverwaltung.frm_Auftrag Private Host As Object Public Sub New(Form As Styletronix.Auftragsverwaltung.frm_Auftrag, Host As Object) Me.Form = Form Me.Host = Host AddHandler Me.Form.BindingSource_Auftrag.CurrentItemChanged, AddressOf CurrentItemChanged End Sub Private 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.typ Is Nothing AndAlso Not Auftragsdaten.typ = LetzterAuftragsTyp Then 'Auftragstyp prüfen If Auftragsdaten.typ Is Nothing Then Return 'If Auftragsdaten.ID <= 0 Then Return If Not Auftragsdaten.typ = EntityHelper.CustomDataTypes.AuftragTyp.Gutschrift Then Return Me.LetzterAuftragsTyp = Auftragsdaten.typ If (From a In Auftragsdaten.tbl_Auftrag_Extendeds Where a.Kategorie = "RMA Grund").Count > 0 Then Return Using dlg As New Styletronix.ReportSystem.MessageBox2 dlg.Überschrift = "Geben Sie den Grund für die Gutschrift an." dlg.Text = "Grund für Gutschrift" Dim btn As New Styletronix.ReportSystem.MessageBox2.ButtonParameter btn.Caption = "falsch bestellt" btn.Tag = "falsch bestellt" dlg.AddButton(btn) btn = New Styletronix.ReportSystem.MessageBox2.ButtonParameter btn.Caption = "falsch geliefert" btn.Tag = "falsch geliefert" dlg.AddButton(btn) btn = New Styletronix.ReportSystem.MessageBox2.ButtonParameter btn.Caption = "neu defekt" btn.Tag = "neu defekt" dlg.AddButton(btn) btn = New Styletronix.ReportSystem.MessageBox2.ButtonParameter btn.Caption = "Transportschaden" btn.Tag = "Transportschaden" dlg.AddButton(btn) btn = New Styletronix.ReportSystem.MessageBox2.ButtonParameter btn.Caption = "sonstiges" btn.Tag = "sonstiges" dlg.AddButton(btn) btn = New Styletronix.ReportSystem.MessageBox2.ButtonParameter btn.Caption = "abbruch" btn.Description = "Schließt diese Meldung ohne angabe eines Grundes" btn.Image = Styletronix.Auftragsverwaltung.My.Resources.Stop_2 btn.Tag = "cancel" dlg.AddButton(btn) dlg.ShowDialog() If Not dlg.SelectedItem.Tag = "cancel" Then Dim g As New tbl_Auftrag_Extended g.Datum = DateTime.Now g.Kategorie = "RMA Grund" g.Text = dlg.SelectedItem.Tag g.UserID = UserManagement.UserID Auftragsdaten.tbl_Auftrag_Extendeds.Add(g) End If 'From a In dc.tbl_Auftrag 'Where (From e In a.tbl_Auftrag_Extendeds Where e.Kategorie = "RMA Grund" And e.Text = "Transportschaden").Any() End Using End If End Sub End Class End Class End Namespace
  • Ursprungsdatei: grund_fuer_gutschrift.htm