Belege und Positionen anlegen
Allgemeine Erklärung
In diesem Kapitel wird erklärt, wie Vorgangs-Belege und Positionen programmiertechnisch erstellt werden können. Hierbei geht es sowohl um die Neuanlage von Belegen, als auch um das ergänzen bestehender Belege um weitere Positionen.
Einen neuen Beleg mit Positionen anlegen
Folgende Beispiele dienen zum Anlegen eines neuen Beleges mit Positionen. Es können verschiedene Parameter verwendet werden, die in den Beispielen nicht alle ausgereizt wurden. Die GUIDs (Artikel und Adresse) sind natürlich durch exisiterende auszutauschen, wenn die Beispiele in der Form getestet werden sollen.
Beispiel 1: Hier wird eine neue Rechnung als Beleg-Objekt generiert, dann werden diesem Objekt zwei Artikel als Positionen sowie eine manuelle Position hinzugefügt und anschließend werden mit einer Prozedur 'GeneriereBelegMitPositionen' der Beleg und die hinzugefügten Positionen in der Datenbank in den entsprechenden Tabellen angelegt.
Beispiel 2: In diesem Beispiel wird zunächst ein Beleg-Objekt für eine neue Rechnung angelegt und die Rechnung in der Datenbank durch die Prozedur 'GeneriereNeuenBeleg' erzeugt. Jetzt werden erst zwei Artikel als Positionen sowie eine manuelle Position dem Beleg-Objekt hinzugefügt und anschließend durch 'GeneriereAllePositionen' in der Datenbank ergänzt. Das Erzeugen des Beleges und das Hinzufügen von (weiteren) Positionen kann also getrennt voneinander durchgeführt werden.
VB.NET: Beispiel 1
#Region " Button1_Click-Ereignis "
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'>>> Beispiel-Daten bereitstellen
Dim adresseGUID As Guid = New Guid("894018b3-7ee6-4727-a7cd-f2ee91775e74")
Dim artikel1GUID As Guid = New Guid("83bcb926-1938-4a94-a85c-398971b19efd")
Dim artikel2GUID As Guid = New Guid("483f34fe-dfe8-4e34-804d-effb4099a694")
'>>> Beleg-Objekt anlegen und Positionen zum Objekt hinzufügen
Dim neuerBeleg As New Beleg(BT.VkRechnung, adresseGUID)
neuerBeleg.AddArtikelPosition(artikel1GUID, 5)
neuerBeleg.AddArtikelPosition(artikel2GUID, 13)
neuerBeleg.AddManuellePosition(19, 10.99, New Guid(PF.F1), "Fahrrad TF-100")
'>>> Neuen Beleg mit Positionen in Datenbank generieren
neuerBeleg.GeneriereBelegMitPositionen(False)
End Sub
#End Region
VB.NET: Beispiel 2
#Region " Button1_Click-Ereignis "
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'>>> Beispiel-Daten bereitstellen
Dim adresseGUID As Guid = New Guid("894018b3-7ee6-4727-a7cd-f2ee91775e74")
Dim artikel1GUID As Guid = New Guid("83bcb926-1938-4a94-a85c-398971b19efd")
Dim artikel2GUID As Guid = New Guid("483f34fe-dfe8-4e34-804d-effb4099a694")
'>>> Beleg-Objekt anlegen und Positionen zum Objekt hinzufügen
Dim neuerBeleg As New Beleg(BT.VkRechnung, adresseGUID)
'>>> Neuen Beleg mit Positionen in Datenbank generieren
neuerBeleg.GeneriereNeuenBeleg()
'>>> Positionen dem Beleg-Objekt hinzufügen
neuerBeleg.AddArtikelPosition(artikel1GUID, 5)
neuerBeleg.AddArtikelPosition(artikel2GUID, 13)
neuerBeleg.AddManuellePosition(19, 10.99, New Guid(PF.F1), "Fahrrad TF-100")
'>>> Hinzugefügte Positionen in der Datenbank erstellen und dem Beleg zuordnen, Beleg anpassen
neuerBeleg.GeneriereAllePositionen(False)
End Sub
#End Region
Position zu einem bestehenden Beleg ergänzen
Mit dem folgenden Code lässt sich ein Beleg um eine neue Positon ergänzen, welche auf einem Artikel aus dem Artikelstamm basiert, und um eine weitere manuelle Position. Es wird die Klasse 'Beleg' verwendet, welche entsprechende Funktionen anbietet.
VB.NET SDK-Programmcode
#Region " Button1_Click-Ereignis "
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim bestehenderBeleg As Beleg
Dim bestehenderArtikel As Guid
bestehenderBeleg = New Beleg(New Guid("dd2cdb0c-41db-4d23-9a99-f7eed7b4e6ab"))
bestehenderArtikel = New Guid("63c742e8-af59-45af-87d4-cd5c7c01412c")
'>>> Artikel-Position dem Objekt hinzufügen
bestehenderBeleg.AddArtikelPosition(bestehenderArtikel, 12)
'>>> Manuelle Position dem Objekt hinzufügen
bestehenderBeleg.AddManuellePosition(23, 1.99, New Guid(PF.F1), "Apfel Elstar")
'>>> Änderungen in Datenank durchführen mit Aktualisierung der Beleg-Werte
bestehenderBeleg.GeneriereAllePositionen(False)
End Sub
#End Region