Einfacher Bezahlcod...
 
Benachrichtigungen
Alles entfernen

Einfacher Bezahlcode-Workflow

1 Beiträge
1 Benutzer
0 Reactions
2,997 Aufrufe
(@Miracolitag)
Honorable Member
Beigetreten: vor 12 Jahren
Beiträge: 563
Topic starter   [#2061]

Hallo,
nachdem das Thema in 01/2013 hier schon einmal angesprochen wurde und wohl auch als Featurewunsch existiert, möchte ich unsere, zugegeben etwas einfache Lösung hier posten.

Voraussetzungen:
In meiner Dropbox habe ich eine Bezahlcode.txt bereitgestellt, die in den Ordner Paketdienst kopiert werden muss.
Weiterhin gibt es dort eine passende Rechnung dazu. Alternativ reicht es auch, in einer vorhandenen Rechnung eine unsichtbare Tabelle (ohne Rahmen) zu erstellen. Sie muss Bezahlcode genannt werden und eine Spalte und zwei Zeilen haben. Natürlich kann man auch den Makro-Quellcode stattdessen entsprechend ändern.

Vorbereitungen:
Die entsprechende [Rechnung].ott öffnen und unter demselbem Pfad und Namen speichern. Das folgende Makro unter Extras/Makros/Makros verwalten/LibreOffice Basic.../Makros aus/Meine Makros/Standard/Module1/Main/Bearbeiten einkopieren.

sub Bezahlcode

 	odoc=thiscomponent
 	myTables = oDoc.getTextTables
 	myTable=myTables.getByName("Bezahlcode" )
 	x=myTable.getCellByPosition(0 , 1)
rem ViewCursor
 	myViewCursor=oDoc.GetCurrentController.ViewCursor
 	myViewCursor.gotoRange(x,false)
 
rem define variables
	dim document as object
	dim dispatcher as object
	dim oClip as object
	dim None as object

rem get access to the document
	document = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper" )

	dim args1(0) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "SelectedFormat"
	args1(0).Value = 2

	dispatcher.executeDispatch(document, ".uno:ClipboardFormatItems", "", 0, args1())
	

rem Zwischenablage leeren

	oClip = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard" )
	oClip.setContents(None,none)

rem Viewcursor nach Grafik neusetzen 
 
	mytextCursor=ThisComponent.text.createtextcursor()
	ThisComponent.getCurrentController().select(mytextCursor)
	ViewCursor = thiscomponent.CurrentController.getviewCursor()

end sub

Jetzt unter Extras/Anpassen.../Ereignisse/Neues Dokument/ das hinterlegte Makro zuweisen. Darunter "Speichern in... --> [Rechnung].ott" nicht vergessen.
Rechnung [Rechnung].ott speichern.

Der Workflow:

  1. Rechnung in Fakturama öffnen.
  2. Paketdienst --> Bezahlcode ausführen. Die Daten werden an die seriöse Seite www.bezahlcode.de übergeben.
  3. Auf der rechte Seite der Website unter dem QR-Code auf "Erzeugen" drücken.
  4. Generierten Bezahlcode mit der rechten Maustaste in die Zwischenablage kopieren.
  5. Rechnung drucken. Beim Erzeugen der Rechnung aus der Rechnungsvorlage wird der Bezahlcode aus der Zwischenablage durch das Makro in die vorbereitete Tabelle der Rechnung kopiert.

Die Sicherheit:
Da sich die QR-Codes optisch kaum unterscheiden, wird die Zwischenablage nach dem Einfügen des Bezahlcodes in die Rechnung durch das Makro gelöscht. Dadurch soll vermieden werden, dass beim Scheitern des nächsten Kopiervorgangs der noch in der Zwischenablage befindliche alte Bezahlcode wieder eingefügt wird.

Download_Vorlagen

Ich hoffe, es funktioniert bei Euch.

Viele Grüße
Steffen


------------------
Viele Grüße
Steffen

www.larissastoffe.de | Nähe deine Ideen!


   
Zitat
Teilen: