r17091 - gnucash/branches/aqbanking3/src/import-export/aqbanking - Readd some of the aq transaction and txn template code.

Andreas Köhler andi5 at cvs.gnucash.org
Sat Apr 19 16:13:03 EDT 2008


Author: andi5
Date: 2008-04-19 16:13:02 -0400 (Sat, 19 Apr 2008)
New Revision: 17091
Trac: http://svn.gnucash.org/trac/changeset/17091

Added:
   gnucash/branches/aqbanking3/src/import-export/aqbanking/dialog-ab-trans.c
   gnucash/branches/aqbanking3/src/import-export/aqbanking/dialog-ab-trans.h
   gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-trans-templ.c
   gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-trans-templ.h
   gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-transfer.c
   gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-transfer.h
Modified:
   gnucash/branches/aqbanking3/src/import-export/aqbanking/Makefile.am
   gnucash/branches/aqbanking3/src/import-export/aqbanking/aqbanking.glade
   gnucash/branches/aqbanking3/src/import-export/aqbanking/druid-ab-initial.c
   gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-kvp.c
   gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-kvp.h
   gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-utils.h
   gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-plugin-aqbanking.c
Log:
Readd some of the aq transaction and txn template code.


Modified: gnucash/branches/aqbanking3/src/import-export/aqbanking/Makefile.am
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/Makefile.am	2008-04-18 01:55:02 UTC (rev 17090)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/Makefile.am	2008-04-19 20:13:02 UTC (rev 17091)
@@ -3,22 +3,28 @@
 pkglib_LTLIBRARIES = libgncmod-aqbanking.la
 
 libgncmod_aqbanking_la_SOURCES = \
+  dialog-ab-trans.c \
   dialog-daterange.c \
   druid-ab-initial.c \
   gnc-ab-getbalance.c \
   gnc-ab-gettrans.c \
   gnc-ab-kvp.c \
+  gnc-ab-trans-templ.c \
+  gnc-ab-transfer.c \
   gnc-ab-utils.c \
   gnc-gwen-gui.c \
   gnc-plugin-aqbanking.c \
   gncmod-aqbanking.c
 
 noinst_HEADERS = \
+  dialog-ab-trans.h \
   dialog-daterange.h \
   druid-ab-initial.h \
   gnc-ab-getbalance.h \
   gnc-ab-gettrans.h \
   gnc-ab-kvp.h \
+  gnc-ab-trans-templ.h \
+  gnc-ab-transfer.h \
   gnc-ab-utils.h \
   gnc-gwen-gui.h \
   gnc-plugin-aqbanking.h

Modified: gnucash/branches/aqbanking3/src/import-export/aqbanking/aqbanking.glade
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/aqbanking.glade	2008-04-18 01:55:02 UTC (rev 17090)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/aqbanking.glade	2008-04-19 20:13:02 UTC (rev 17091)
@@ -242,6 +242,1168 @@
   </child>
 </widget>
 
+<widget class="GtkDialog" id="Transaction Dialog">
+  <property name="border_width">5</property>
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Online Transaction</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox2">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">2</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area2">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+	  <child>
+	    <widget class="GtkButton" id="exec_later_button">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Execute later (unimpl.)</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-9</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="cancel_button">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-cancel</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-6</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="exec_now_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Execute this online transaction now</property>
+	      <property name="can_default">True</property>
+	      <property name="has_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-8</property>
+
+	      <child>
+		<widget class="GtkAlignment" id="alignment6">
+		  <property name="visible">True</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xscale">0</property>
+		  <property name="yscale">0</property>
+		  <property name="top_padding">0</property>
+		  <property name="bottom_padding">0</property>
+		  <property name="left_padding">0</property>
+		  <property name="right_padding">0</property>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox122">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">2</property>
+
+		      <child>
+			<widget class="GtkImage" id="image4">
+			  <property name="visible">True</property>
+			  <property name="stock">gtk-execute</property>
+			  <property name="icon_size">4</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label8877454">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Execute Now</property>
+			  <property name="use_underline">True</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+		    </widget>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkVBox" id="vbox151">
+	  <property name="border_width">5</property>
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">0</property>
+
+	  <child>
+	    <widget class="GtkLabel" id="heading_label">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Enter an Online Transaction</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_CENTER</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkHSeparator" id="hseparator7">
+	      <property name="visible">True</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkTable" id="table6">
+	      <property name="visible">True</property>
+	      <property name="n_rows">21</property>
+	      <property name="n_columns">3</property>
+	      <property name="homogeneous">False</property>
+	      <property name="row_spacing">0</property>
+	      <property name="column_spacing">0</property>
+
+	      <child>
+		<widget class="GtkEntry" id="recp_account_entry">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="editable">True</property>
+		  <property name="visibility">True</property>
+		  <property name="max_length">12</property>
+		  <property name="text" translatable="yes"></property>
+		  <property name="has_frame">True</property>
+		  <property name="invisible_char">*</property>
+		  <property name="activates_default">False</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="recp_account_heading">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Recipient Account Number</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEntry" id="recp_bankcode_entry">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="editable">True</property>
+		  <property name="visibility">True</property>
+		  <property name="max_length">8</property>
+		  <property name="text" translatable="yes"></property>
+		  <property name="has_frame">True</property>
+		  <property name="invisible_char">*</property>
+		  <property name="activates_default">False</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="recp_bankcode_heading">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Recipient Bank Code</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEntry" id="recp_name_entry">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="editable">True</property>
+		  <property name="visibility">True</property>
+		  <property name="max_length">27</property>
+		  <property name="text" translatable="yes"></property>
+		  <property name="has_frame">True</property>
+		  <property name="invisible_char">*</property>
+		  <property name="activates_default">False</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="recp_name_heading">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Recipient Name</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="recp_bankname_heading">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">at Bank</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">4</property>
+		  <property name="bottom_attach">5</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="recp_bankname_label">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">(filled in automatically)</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">5</property>
+		  <property name="bottom_attach">6</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label8877434">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Amount</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">7</property>
+		  <property name="bottom_attach">8</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label8877433">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Payment Purpose (only for recipient)</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">10</property>
+		  <property name="bottom_attach">11</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label8877435">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Payment Purpose continued</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">12</property>
+		  <property name="bottom_attach">13</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="orig_name_heading">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Originator Name</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">15</property>
+		  <property name="bottom_attach">16</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="orig_name_label">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">something</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">16</property>
+		  <property name="bottom_attach">17</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="orig_bankname_heading">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">at Bank</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">17</property>
+		  <property name="bottom_attach">18</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="orig_bankname_label">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">something</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">18</property>
+		  <property name="bottom_attach">19</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="orig_account_heading">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Originator Account Number</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">15</property>
+		  <property name="bottom_attach">16</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="orig_account_label">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">something</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">16</property>
+		  <property name="bottom_attach">17</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="orig_bankcode_heading">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Bank Code</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">17</property>
+		  <property name="bottom_attach">18</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="orig_bankcode_label">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">something</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">18</property>
+		  <property name="bottom_attach">19</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox117">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">4</property>
+
+		  <child>
+		    <widget class="GtkVButtonBox" id="vbutonbox158">
+		      <property name="visible">True</property>
+		      <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
+		      <property name="spacing">0</property>
+
+		      <child>
+			<widget class="GtkButton" id="add_templ_button">
+			  <property name="visible">True</property>
+			  <property name="tooltip" translatable="yes">Add the current online transaction as a new transaction template</property>
+			  <property name="can_focus">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <signal name="clicked" handler="add_template_cb"/>
+
+			  <child>
+			    <widget class="GtkAlignment" id="alignment3">
+			      <property name="visible">True</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xscale">0</property>
+			      <property name="yscale">0</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">0</property>
+			      <property name="right_padding">0</property>
+
+			      <child>
+				<widget class="GtkHBox" id="hbox119">
+				  <property name="visible">True</property>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">2</property>
+
+				  <child>
+				    <widget class="GtkImage" id="image1">
+				      <property name="visible">True</property>
+				      <property name="stock">gtk-add</property>
+				      <property name="icon_size">4</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkLabel" id="label8877451">
+				      <property name="visible">True</property>
+				      <property name="label" translatable="yes">Add current</property>
+				      <property name="use_underline">True</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+				</widget>
+			      </child>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
+
+		      <child>
+			<widget class="GtkButton" id="moveup_templ_button">
+			  <property name="visible">True</property>
+			  <property name="tooltip" translatable="yes">Move the selected transaction template one row up</property>
+			  <property name="can_focus">True</property>
+			  <property name="label">gtk-go-up</property>
+			  <property name="use_stock">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <signal name="clicked" handler="moveup_templ_cb"/>
+			</widget>
+		      </child>
+
+		      <child>
+			<widget class="GtkButton" id="movedown_templ_button">
+			  <property name="visible">True</property>
+			  <property name="tooltip" translatable="yes">Move the selected transaction template one row down</property>
+			  <property name="can_focus">True</property>
+			  <property name="label">gtk-go-down</property>
+			  <property name="use_stock">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <signal name="clicked" handler="movedown_templ_cb"/>
+			</widget>
+		      </child>
+
+		      <child>
+			<widget class="GtkButton" id="sort_templ_button">
+			  <property name="visible">True</property>
+			  <property name="tooltip" translatable="yes">Sort the list of transaction templates alphabetically</property>
+			  <property name="can_focus">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <signal name="clicked" handler="sort_templ_cb"/>
+
+			  <child>
+			    <widget class="GtkAlignment" id="alignment4">
+			      <property name="visible">True</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xscale">0</property>
+			      <property name="yscale">0</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">0</property>
+			      <property name="right_padding">0</property>
+
+			      <child>
+				<widget class="GtkHBox" id="hbox120">
+				  <property name="visible">True</property>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">2</property>
+
+				  <child>
+				    <widget class="GtkImage" id="image2">
+				      <property name="visible">True</property>
+				      <property name="stock">gtk-sort-ascending</property>
+				      <property name="icon_size">4</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkLabel" id="label8877452">
+				      <property name="visible">True</property>
+				      <property name="label" translatable="yes">Sort</property>
+				      <property name="use_underline">True</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+				</widget>
+			      </child>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
+
+		      <child>
+			<widget class="GtkButton" id="del_templ_button">
+			  <property name="visible">True</property>
+			  <property name="tooltip" translatable="yes">Delete the currently selected transaction template</property>
+			  <property name="can_focus">True</property>
+			  <property name="label">gtk-delete</property>
+			  <property name="use_stock">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <signal name="clicked" handler="del_template_cb"/>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		      <property name="pack_type">GTK_PACK_END</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkScrolledWindow" id="template_scrolledwindow">
+		      <property name="visible">True</property>
+		      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+		      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+		      <property name="shadow_type">GTK_SHADOW_IN</property>
+		      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+		      <child>
+			<widget class="GtkViewport" id="viewport1">
+			  <property name="visible">True</property>
+			  <property name="shadow_type">GTK_SHADOW_IN</property>
+
+			  <child>
+			    <widget class="GtkTreeView" id="template_list">
+			      <property name="headers_visible">True</property>
+			      <property name="rules_hint">True</property>
+			      <property name="reorderable">False</property>
+			      <property name="enable_search">True</property>
+			      <property name="fixed_height_mode">False</property>
+			      <property name="hover_selection">False</property>
+			      <property name="hover_expand">False</property>
+			      <signal name="select_child" handler="on_template_list_select_child"/>
+			      <signal name="selection_changed" handler="on_template_list_selection_changed"/>
+			      <signal name="unselect_child" handler="on_template_list_unselect_child"/>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		      <property name="pack_type">GTK_PACK_END</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkLabel" id="label8877442">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Use Transaction Template</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_CENTER</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">20</property>
+		  <property name="bottom_attach">21</property>
+		  <property name="x_options">fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEntry" id="purpose_entry">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="editable">True</property>
+		  <property name="visibility">True</property>
+		  <property name="max_length">27</property>
+		  <property name="text" translatable="yes"></property>
+		  <property name="has_frame">True</property>
+		  <property name="invisible_char">*</property>
+		  <property name="activates_default">False</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">11</property>
+		  <property name="bottom_attach">12</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEntry" id="purpose_cont2_entry">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="editable">True</property>
+		  <property name="visibility">True</property>
+		  <property name="max_length">27</property>
+		  <property name="text" translatable="yes"></property>
+		  <property name="has_frame">True</property>
+		  <property name="invisible_char">*</property>
+		  <property name="activates_default">False</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">13</property>
+		  <property name="bottom_attach">14</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEntry" id="purpose_cont_entry">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="editable">True</property>
+		  <property name="visibility">True</property>
+		  <property name="max_length">27</property>
+		  <property name="text" translatable="yes"></property>
+		  <property name="has_frame">True</property>
+		  <property name="invisible_char">*</property>
+		  <property name="activates_default">False</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">11</property>
+		  <property name="bottom_attach">12</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEntry" id="purpose_cont3_entry">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="editable">True</property>
+		  <property name="visibility">True</property>
+		  <property name="max_length">27</property>
+		  <property name="text" translatable="yes"></property>
+		  <property name="has_frame">True</property>
+		  <property name="invisible_char">*</property>
+		  <property name="activates_default">False</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">13</property>
+		  <property name="bottom_attach">14</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="amount_hbox">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+		  <child>
+		    <placeholder/>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">8</property>
+		  <property name="bottom_attach">9</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHSeparator" id="hseparator8">
+		  <property name="visible">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">19</property>
+		  <property name="bottom_attach">20</property>
+		  <property name="y_padding">1</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHSeparator" id="hseparator4">
+		  <property name="visible">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">14</property>
+		  <property name="bottom_attach">15</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHSeparator" id="hseparator5">
+		  <property name="visible">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">6</property>
+		  <property name="bottom_attach">7</property>
+		  <property name="y_padding">1</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHSeparator" id="hseparator6">
+		  <property name="visible">True</property>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">9</property>
+		  <property name="bottom_attach">10</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
 <widget class="GtkDialog" id="Connection Dialog">
   <property name="border_width">5</property>
   <property name="title" translatable="yes">Online Banking Connection Window</property>

Added: gnucash/branches/aqbanking3/src/import-export/aqbanking/dialog-ab-trans.c
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/dialog-ab-trans.c	                        (rev 0)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/dialog-ab-trans.c	2008-04-19 20:13:02 UTC (rev 17091)
@@ -0,0 +1,39 @@
+/*
+ * dialog-ab-trans.c --
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+/**
+ * @internal
+ * @file dialog-ab-trans.c
+ * @brief Templates for AqBanking transactions
+ * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
+ * @author Copyright (C) 2004 Bernd Wagner
+ * @author Copyright (C) 2006 David Hampton <hampton at employees.org>
+ * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
+ */
+
+#include "config.h"
+
+#include "dialog-ab-trans.h"
+#include "qof.h" /* check later */
+
+/* This static indicates the debugging module that this .o belongs to.  */
+static QofLogModule log_module = G_LOG_DOMAIN;
+

Added: gnucash/branches/aqbanking3/src/import-export/aqbanking/dialog-ab-trans.h
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/dialog-ab-trans.h	                        (rev 0)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/dialog-ab-trans.h	2008-04-19 20:13:02 UTC (rev 17091)
@@ -0,0 +1,56 @@
+/*
+ * dialog-ab-trans.h --
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+/**
+ * @addtogroup Import_Export
+ * @{
+ * @addtogroup AqBanking
+ * @{
+ * @file dialog-ab-trans.h
+ * @brief Dialog for AqBanking transaction data
+ * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
+ * @author Copyright (C) 2004 Bernd Wagner
+ * @author Copyright (C) 2006 David Hampton <hampton at employees.org>
+ * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
+ */
+
+#ifndef DIALOG_AB_TRANS_H
+#define DIALOG_AB_TRANS_H
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+typedef struct _ABTransDialog ABTransDialog;
+
+typedef enum _GncABTransType GncABTransType;
+enum _GncABTransType {
+    SINGLE_TRANSFER = 0,
+    SINGLE_DEBITNOTE,
+    SINGLE_INTERNAL_TRANSFER
+};
+
+G_END_DECLS
+
+/** @} */
+/** @} */
+
+#endif /* DIALOG_AB_TRANS_H */

Modified: gnucash/branches/aqbanking3/src/import-export/aqbanking/druid-ab-initial.c
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/druid-ab-initial.c	2008-04-18 01:55:02 UTC (rev 17090)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/druid-ab-initial.c	2008-04-19 20:13:02 UTC (rev 17091)
@@ -759,7 +759,6 @@
     gtk_tree_view_column_set_expand(column, TRUE);
     gtk_tree_view_append_column(info->account_view, column);
 
-    /*     renderer = gtk_cell_renderer_toggle_new(); */
     column = gtk_tree_view_column_new_with_attributes(
         _("New?"), gtk_cell_renderer_toggle_new(),
         "active", ACCOUNT_LIST_COL_CHECKED, (gchar*) NULL);

Modified: gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-kvp.c
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-kvp.c	2008-04-18 01:55:02 UTC (rev 17090)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-kvp.c	2008-04-19 20:13:02 UTC (rev 17091)
@@ -36,12 +36,14 @@
 #define AB_ACCOUNT_UID "account-uid"
 #define AB_BANK_CODE "bank-code"
 #define AB_TRANS_RETRIEVAL "trans-retrieval"
+#define AB_TEMPLATES "template-list"
 
 /* This static indicates the debugging module that this .o belongs to.  */
 static QofLogModule log_module = G_LOG_DOMAIN;
 
 static void force_account_dirty(Account *acct);
 static kvp_frame *gnc_ab_get_account_kvp(const Account *a, gboolean create);
+static kvp_frame *gnc_ab_get_book_kvp(QofBook *b, gboolean create);
 
 G_CONST_RETURN gchar *
 gnc_ab_get_account_accountid(const Account *a)
@@ -119,6 +121,23 @@
     xaccAccountCommitEdit(a);
 }
 
+GList *
+gnc_ab_get_book_template_list(QofBook *b)
+{
+    kvp_frame *frame = gnc_ab_get_book_kvp(b, FALSE);
+    kvp_value *value = kvp_frame_get_slot(frame, AB_TEMPLATES);
+    return kvp_value_get_glist(value);
+}
+
+void
+gnc_ab_set_book_template_list(QofBook *b, GList *template_list)
+{
+    kvp_frame *frame = gnc_ab_get_book_kvp(b, TRUE);
+    kvp_value *value = kvp_value_new_glist_nc(template_list);
+    kvp_frame_set_slot_nc(frame, AB_TEMPLATES, value);
+    qof_book_kvp_changed(b);
+}
+
 static void
 force_account_dirty(Account *acct)
 {
@@ -143,3 +162,15 @@
     }
     return result;
 }
+
+static kvp_frame *
+gnc_ab_get_book_kvp(QofBook *b, gboolean create)
+{
+    kvp_frame *toplevel = qof_book_get_slots(b);
+    kvp_frame *result = kvp_frame_get_frame(toplevel, AB_KEY);
+    if (!result && create) {
+        result = kvp_frame_new();
+        kvp_frame_add_frame_nc(toplevel, AB_KEY, result);
+    }
+    return result;
+}

Modified: gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-kvp.h
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-kvp.h	2008-04-18 01:55:02 UTC (rev 17090)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-kvp.h	2008-04-19 20:13:02 UTC (rev 17091)
@@ -43,14 +43,14 @@
  *  @{ */
 
 /**
- * Returns a non-copied pointer to the accountid string in the Account @a a.
+ * Return a non-copied pointer to the accountid string in the Account @a a.
  * The gchar* is still owned by the kvp_frame, so don't free it until you want
  * to delete the whole kvp_frame.
  *
  * @param a Account
  * @return Account ID
  */
-G_CONST_RETURN gchar *gnc_ab_get_account_accountid(const Account *a);
+const gchar *gnc_ab_get_account_accountid(const Account *a);
 
 /**
  * Set the accountid string in the Account @a a to @a id.  A copy of the string
@@ -62,14 +62,14 @@
 void gnc_ab_set_account_accountid(Account *a, const gchar *id);
 
 /**
- * Returns a non-copied pointer to the bankcode string in the Account @a a.  The
+ * Return a non-copied pointer to the bankcode string in the Account @a a.  The
  * gchar* is still owned by the kvp_frame, so don't free it until you want to
  * delete the whole kvp_frame.
  *
  * @param a Account
  * @return Bank code
  */
-G_CONST_RETURN gchar *gnc_ab_get_account_bankcode(const Account *a);
+const gchar *gnc_ab_get_account_bankcode(const Account *a);
 
 /**
  * Set the bankcode string in the Account @a a to @a code.  A copy of the string
@@ -81,7 +81,7 @@
 void gnc_ab_set_account_bankcode(Account *a, const gchar *code);
 
 /**
- * Returns the unique id for the AB_BANKING account in the Account @a a.
+ * Return the unique id for the AB_BANKING account in the Account @a a.
  *
  * @param a Account
  * @return Unique ID
@@ -98,7 +98,7 @@
 void gnc_ab_set_account_uid(Account *a, guint32 uid);
 
 /**
- * Returns the time of last online transaction retrieval for Account @a a.
+ * Return the time of last online transaction retrieval for Account @a a.
  *
  * @param a Account
  * @return Retrieval time
@@ -116,6 +116,30 @@
 
 /** @} */
 
+/** @name Book
+ *  @{ */
+
+/**
+ * Return a non-copied pointer to the GList of kvp_frames which eventually are
+ * the template transactions, stored in the given book.
+ *
+ * @param b Book
+ * @return Template list
+ */
+GList *gnc_ab_get_book_template_list(QofBook *b);
+
+/**
+ * Set the GList of kvp_frames of template transactions in the Book @a b to @a
+ * template_list.  No copy of the GList will be stored, the callee becomes the
+ * owner and the caller must not free it.  The book will be marked "dirty".
+ *
+ * @param b Book
+ * @param template_list Template list
+ */
+void gnc_ab_set_book_template_list(QofBook *b, GList *template_list);
+
+/** @} */
+
 G_END_DECLS
 
 /** @} */

Added: gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-trans-templ.c
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-trans-templ.c	                        (rev 0)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-trans-templ.c	2008-04-19 20:13:02 UTC (rev 17091)
@@ -0,0 +1,285 @@
+/*
+ * gnc-ab-trans-templ.c --
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+/**
+ * @internal
+ * @file gnc-ab-trans-templ.c
+ * @brief Templates for AqBanking transactions
+ * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
+ * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
+ */
+
+#include "config.h"
+
+#include "gnc-ab-trans-templ.h"
+
+/* This static indicates the debugging module that this .o belongs to.  */
+static QofLogModule log_module = G_LOG_DOMAIN;
+
+/* kvp_frame slot names */
+#define TT_NAME "name"
+#define TT_RNAME "rnam"
+#define TT_RACC "racc"
+#define TT_RBCODE "rbcd"
+#define TT_PURPOS "purp"
+#define TT_PURPOSCT "purc"
+#define TT_AMOUNT "amou"
+
+struct _GncABTransTempl
+{
+  /* Name of this Template */
+  gchar *name;
+  gchar *name_key; /* Collation key */
+
+  /* Recipient */
+  gchar *recp_name;
+  gchar *recp_account;
+  gchar *recp_bankcode;
+
+  /* Amount */
+  gnc_numeric amount;
+
+  /* Purpose, description */
+  gchar *purpose;
+  gchar *purpose_cont;
+};
+
+
+GncABTransTempl *
+gnc_ab_trans_templ_new(void)
+{
+    return gnc_ab_trans_templ_new_full(NULL, NULL, NULL, NULL,
+                                       gnc_numeric_zero(), NULL, NULL);
+}
+
+GncABTransTempl *
+gnc_ab_trans_templ_new_full(const char *name, const char *recp_name,
+                            const char *recp_account, const char *recp_bankcode,
+                            gnc_numeric amount, const char *purpose,
+                            const char *purpose_cont)
+{
+    GncABTransTempl *r = g_new(GncABTransTempl, 1);
+    r->name = g_strdup(name);
+    r->name_key = g_utf8_collate_key(name, -1);
+    r->recp_name = g_strdup(recp_name);
+    r->recp_account = g_strdup(recp_account);
+    r->recp_bankcode = g_strdup(recp_bankcode);
+    r->amount = amount;
+    r->purpose = g_strdup(purpose);
+    r->purpose_cont = g_strdup(purpose_cont);
+
+    return r;
+}
+
+GncABTransTempl *
+gnc_ab_trans_templ_new_from_kvp(const kvp_frame *k)
+{
+    g_return_val_if_fail(k, NULL);
+
+    return gnc_ab_trans_templ_new_full(
+        kvp_value_get_string(kvp_frame_get_slot(k, TT_NAME)),
+        kvp_value_get_string(kvp_frame_get_slot(k, TT_RNAME)),
+        kvp_value_get_string(kvp_frame_get_slot(k, TT_RACC)),
+        kvp_value_get_string(kvp_frame_get_slot(k, TT_RBCODE)),
+        kvp_value_get_numeric(kvp_frame_get_slot(k, TT_AMOUNT)),
+        kvp_value_get_string(kvp_frame_get_slot(k, TT_PURPOS)),
+        kvp_value_get_string(kvp_frame_get_slot(k, TT_PURPOSCT)));
+}
+
+GList *
+gnc_ab_trans_templ_list_new_from_kvp_list(GList *v)
+{
+    GList *res = NULL;
+    GList *iter;
+
+    for (iter = v; iter; iter = iter->next) {
+        kvp_frame *frame = kvp_value_get_frame((kvp_value*) iter->data);
+        res = g_list_prepend(res, gnc_ab_trans_templ_new_from_kvp(frame));
+    }
+    res = g_list_reverse(res);
+
+    return res;
+}
+
+void
+gnc_ab_trans_templ_free(GncABTransTempl *t)
+{
+    if (!t) return;
+    g_free(t->name);
+    g_free(t->name_key);
+    g_free(t->recp_name);
+    g_free(t->recp_account);
+    g_free(t->recp_bankcode);
+    g_free(t->purpose);
+    g_free(t->purpose_cont);
+    g_free(t);
+}
+
+void
+gnc_ab_trans_templ_list_free(GList *l)
+{
+    GList *iter;
+    for (iter = l; iter; iter = iter->next)
+        gnc_ab_trans_templ_free((GncABTransTempl*) iter->data);
+    g_list_free(l);
+}
+
+kvp_frame *
+gnc_ab_trans_templ_to_kvp(const GncABTransTempl *t)
+{
+    kvp_frame *k;
+
+    g_return_val_if_fail(t, NULL);
+
+    k = kvp_frame_new();
+    kvp_frame_set_slot(k, TT_NAME, kvp_value_new_string(t->name));
+    kvp_frame_set_slot(k, TT_RNAME, kvp_value_new_string(t->recp_name));
+    kvp_frame_set_slot(k, TT_RACC, kvp_value_new_string(t->recp_account));
+    kvp_frame_set_slot(k, TT_RBCODE, kvp_value_new_string(t->recp_bankcode));
+    kvp_frame_set_slot(k, TT_AMOUNT, kvp_value_new_gnc_numeric(t->amount));
+    kvp_frame_set_slot(k, TT_PURPOS, kvp_value_new_string(t->purpose));
+    kvp_frame_set_slot(k, TT_PURPOSCT, kvp_value_new_string(t->purpose_cont));
+
+    return k;
+}
+
+GList *
+gnc_ab_trans_templ_list_to_kvp_list(GList *k)
+{
+    GList *res = NULL;
+    GList *iter;
+
+    for (iter = k; iter; iter = iter->next) {
+        GncABTransTempl *t = (GncABTransTempl*) iter->data;
+        kvp_value *value = kvp_value_new_frame_nc(gnc_ab_trans_templ_to_kvp(t));
+        res = g_list_prepend(res, value);
+    }
+    res = g_list_reverse(res);
+
+    return res;
+}
+
+const gchar *
+gnc_ab_trans_templ_get_name(const GncABTransTempl *t)
+{
+    g_return_val_if_fail(t, NULL);
+    return t->name;
+}
+
+const gchar *
+gnc_ab_trans_templ_get_recp_name(const GncABTransTempl *t)
+{
+    g_return_val_if_fail(t, NULL);
+    return t->recp_name;
+}
+
+const gchar *
+gnc_ab_trans_templ_get_recp_account(const GncABTransTempl *t)
+{
+    g_return_val_if_fail(t, NULL);
+    return t->recp_account;
+}
+
+const gchar *
+gnc_ab_trans_templ_get_recp_bankcode(const GncABTransTempl *t)
+{
+    g_return_val_if_fail(t, NULL);
+    return t->recp_bankcode;
+}
+
+gnc_numeric
+gnc_ab_trans_templ_get_amount(const GncABTransTempl *t)
+{
+    g_return_val_if_fail(t, gnc_numeric_zero());
+    return t->amount;
+}
+
+const gchar *
+gnc_ab_trans_templ_get_purpose(const GncABTransTempl *t)
+{
+    g_return_val_if_fail(t, NULL);
+    return t->purpose;
+}
+
+const gchar *
+gnc_ab_trans_templ_get_purpose_cont(const GncABTransTempl *t)
+{
+    g_return_val_if_fail(t, NULL);
+    return t->purpose_cont;
+}
+
+void
+gnc_ab_trans_templ_set_name(GncABTransTempl *t, const gchar *name)
+{
+    g_return_if_fail(t);
+    g_free(t->name);
+    t->name = g_strdup(name);
+}
+
+void
+gnc_ab_trans_templ_set_recp_name(GncABTransTempl *t, const gchar *recp_name)
+{
+    g_return_if_fail(t);
+    g_free(t->recp_name);
+    t->recp_name = g_strdup(recp_name);
+}
+
+void
+gnc_ab_trans_templ_set_recp_account(GncABTransTempl *t,
+                                    const gchar *recp_account)
+{
+    g_return_if_fail(t);
+    g_free(t->recp_account);
+    t->recp_account = g_strdup(recp_account);
+}
+
+void
+gnc_ab_trans_templ_set_recp_bankcode(GncABTransTempl *t,
+                                     const gchar *recp_bankcode)
+{
+    g_return_if_fail(t);
+    g_free(t->recp_bankcode);
+    t->recp_bankcode = g_strdup(recp_bankcode);
+}
+
+void
+gnc_ab_trans_templ_set_amount(GncABTransTempl *t, gnc_numeric amount)
+{
+    g_return_if_fail(t);
+    t->amount = amount;
+}
+
+void
+gnc_ab_trans_templ_set_purpose(GncABTransTempl *t, const gchar *purpose)
+{
+    g_return_if_fail(t);
+    g_free(t->purpose);
+    t->purpose = g_strdup(purpose);
+}
+
+void
+gnc_ab_trans_templ_set_purpose_cont(GncABTransTempl *t,
+                                    const gchar *purpose_cont)
+{
+    g_return_if_fail(t);
+    g_free(t->purpose_cont);
+    t->purpose_cont = g_strdup(purpose_cont);
+}

Added: gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-trans-templ.h
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-trans-templ.h	                        (rev 0)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-trans-templ.h	2008-04-19 20:13:02 UTC (rev 17091)
@@ -0,0 +1,221 @@
+/*
+ * gnc-ab-trans-templ.h --
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+/**
+ * @addtogroup Import_Export
+ * @{
+ * @addtogroup AqBanking
+ * @{
+ * @file gnc-ab-trans-templ.h
+ * @brief Templates for AqBanking transactions
+ * @author Copyright (C) 2003 Christian Stimming <stimming at tuhh.de>
+ * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
+ */
+
+#ifndef GNC_AB_TRANS_TEMPL_H
+#define GNC_AB_TRANS_TEMPL_H
+
+#include <glib.h>
+
+#include "qof.h"
+
+G_BEGIN_DECLS
+
+/** A template for an AqBanking transaction */
+typedef struct _GncABTransTempl GncABTransTempl;
+
+/**
+ * Create a template with unset contents.
+ *
+ * @return A newly allocated GncABTransTempl
+ */
+GncABTransTempl *gnc_ab_trans_templ_new(void);
+
+/**
+ * Create a template with given contents.
+ *
+ * @param name Name of the template
+ * @param recp_name Name of the recipient
+ * @param recp_account Account Number of the recipient
+ * @param recp_bankcode Bank Code of the recipient
+ * @param amount Amount
+ * @param purpose First purpose line
+ * @param purpose_cont Second purpose line
+ * @return A newly allocated GncABTransTempl
+ */
+GncABTransTempl *gnc_ab_trans_templ_new_full(
+    const gchar *name, const gchar *recp_name, const gchar *recp_account,
+    const gchar *recp_bankcode, gnc_numeric amount, const gchar *purpose,
+    const gchar *purpose_cont);
+
+/**
+ * Create a template, taking the values from a kvp_frame.
+ *
+ * @param k kvp_frame
+ * @return A newly allocated GncABTransTempl
+ */
+GncABTransTempl *gnc_ab_trans_templ_new_from_kvp(const kvp_frame *k);
+
+/**
+ * Create a list of templates from a list of kvp_values which in turn
+ * contain a kvp_frame.
+ *
+ * @param v GList of kvp_values
+ * @return A GList of newly allocated GncABTransTempls
+ */
+GList *gnc_ab_trans_templ_list_new_from_kvp_list(GList *v);
+
+/**
+ * Free the memory used by a template.
+ *
+ * @param t GncABTransTempl to be freed
+ */
+void gnc_ab_trans_templ_free(GncABTransTempl *t);
+
+/**
+ * Free the memory used by a list of templates, including the list itself.
+ *
+ * @param l GList of GncABTransTempl
+ */
+void gnc_ab_trans_templ_list_free(GList *l);
+
+/**
+ * Create a kvp_frame a given template.
+ *
+ * @param t Template
+ * @return A newly allocated kvp_frame
+ */
+kvp_frame *gnc_ab_trans_templ_to_kvp(const GncABTransTempl *t);
+
+/**
+ * Create a list of kvp_values, which in turn contain a kvp_frame, from a list
+ * of templates.
+ *
+ * @param k GList of GncABTransTempls
+ * @return GList of newly allocated kvp_values
+ */
+GList *gnc_ab_trans_templ_list_to_kvp_list(GList *k);
+
+/**
+ * @param t Template
+ * @return Name of the template, an internal string
+ */
+const gchar *gnc_ab_trans_templ_get_name(const GncABTransTempl *t);
+
+/**
+ * @param t Template
+ * @return Name of the recipient, an internal string
+ */
+const gchar *gnc_ab_trans_templ_get_recp_name(const GncABTransTempl *t);
+
+/**
+ * @param t Template
+ * @return Account Number of the recipient, an internal string
+ */
+const gchar *gnc_ab_trans_templ_get_recp_account(const GncABTransTempl *t);
+
+/**
+ * @param t Template
+ * @return Bank Code of the recipient, an internal string
+ */
+const gchar *gnc_ab_trans_templ_get_recp_bankcode(const GncABTransTempl *t);
+
+/**
+ * @param t Template
+ * @return Amount
+ */
+gnc_numeric gnc_ab_trans_templ_get_amount(const GncABTransTempl *t);
+
+/**
+ * @param t Template
+ * @return First purpose line, an internal string
+ */
+const gchar *gnc_ab_trans_templ_get_purpose(const GncABTransTempl *t);
+
+/**
+ * @param t Template
+ * @return Second purpose line, an internal string
+ */
+const gchar *gnc_ab_trans_templ_get_purpose_cont(const GncABTransTempl *t);
+
+/**
+ * Set the name of a template.
+ *
+ * @param t Template
+ * @param name Name
+ */
+void gnc_ab_trans_templ_set_name(GncABTransTempl *t, const gchar *name);
+
+/**
+ * Replace the Account Number of the recipient stored in a template.
+ *
+ * @param t Template
+ * @param recp_name Account Number of the recipient
+ */
+void gnc_ab_trans_templ_set_recp_name(GncABTransTempl *t,
+                                      const gchar *recp_name);
+
+/**
+ * Replace the Account Number of the recipient stored in a template.
+ *
+ * @param t Template
+ * @param recp_account Account Number of the recipient
+ */
+void gnc_ab_trans_templ_set_recp_account(GncABTransTempl *t,
+                                         const gchar *recp_account);
+
+/**
+ * Replace the Bank Code of the recipient stored in a template.
+ *
+ * @param t Template
+ * @param recp_bankcode Bank Code of the recipient
+ */
+void gnc_ab_trans_templ_set_recp_bankcode(GncABTransTempl *t,
+                                          const gchar *recp_bankcode);
+
+/**
+ * Replace the amount stored in a template.
+ *
+ * @param t Template
+ * @param amount Amount
+ */
+void gnc_ab_trans_templ_set_amount(GncABTransTempl *t, gnc_numeric amount);
+
+/**
+ * Replace the first purpose line stored in a template.
+ *
+ * @param t Template
+ * @param purpose First purpose line
+ */
+void gnc_ab_trans_templ_set_purpose(GncABTransTempl *t, const gchar *purpose);
+
+/**
+ * Replace the second purpose line stored in a template.
+ *
+ * @param t Template
+ * @param purpose_cont Second purpose line
+ */
+void gnc_ab_trans_templ_set_purpose_cont(GncABTransTempl *t,
+                                         const gchar *purpose_cont);
+
+G_END_DECLS
+
+#endif /* GNC_AB_TRANS_TEMPL_H */

Added: gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-transfer.c
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-transfer.c	                        (rev 0)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-transfer.c	2008-04-19 20:13:02 UTC (rev 17091)
@@ -0,0 +1,98 @@
+/*
+ * gnc-ab-transfer.c --
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+/**
+ * @internal
+ * @file gnc-ab-utils.c
+ * @brief AqBanking transfer functions
+ * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
+ * @author Copyright (C) 2004 Bernd Wagner
+ * @author Copyright (C) 2006 David Hampton <hampton at employees.org>
+ * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
+ */
+
+#include "config.h"
+
+#include <aqbanking/banking.h>
+
+#include "gnc-ab-transfer.h"
+#include "gnc-ab-kvp.h"
+#include "gnc-ab-utils.h"
+#include "gnc-ab-trans-templ.h"
+
+/* This static indicates the debugging module that this .o belongs to.  */
+static QofLogModule log_module = G_LOG_DOMAIN;
+
+void
+gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
+                 GncABTransType trans_type)
+{
+    AB_BANKING *api;
+    gboolean online = FALSE;
+    AB_ACCOUNT *ab_acc;
+    ABTransDialog *dialog = NULL;
+    GList *template_list = NULL;
+
+    g_return_if_fail(parent && gnc_acc);
+
+    /* Get the API */
+    api = gnc_AB_BANKING_new();
+    if (!api) {
+        g_warning("gnc_ab_maketrans: Couldn't get AqBanking API");
+        return;
+    }
+    if (AB_Banking_OnlineInit(api) != 0) {
+        g_warning("gnc_ab_maketrans: Couldn't initialize AqBanking API");
+        goto cleanup;
+    }
+    online = TRUE;
+
+    /* Get the AqBanking Account */
+    ab_acc = gnc_ab_get_ab_account(api, gnc_acc);
+    if (!ab_acc) {
+        g_warning("gnc_ab_gettrans: No AqBanking account found");
+        goto cleanup;
+    }
+
+    /* Get list of template transactions */
+    template_list = gnc_ab_trans_templ_list_new_from_kvp_list(
+        gnc_ab_get_book_template_list(gnc_account_get_book(gnc_acc)));
+
+    /* Create new ABTransDialog */
+
+cleanup:
+    /* if (context) */
+    /*     AB_ImExporterContext_free(context); */
+    /* if (gui) */
+    /*     gnc_GWEN_Gui_release(gui); */
+    /* if (job_list) */
+    /*     AB_Job_List2_free(job_list); */
+    /* if (job) */
+    /*     AB_Job_free(job); */
+    /* if (to_date) */
+    /*     GWEN_Time_free(to_date); */
+    /* if (from_date) */
+    /*     GWEN_Time_free(from_date); */
+    gnc_ab_trans_templ_list_free(template_list);
+    if (online)
+        AB_Banking_OnlineFini(api);
+    gnc_AB_BANKING_fini(api);
+}

Added: gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-transfer.h
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-transfer.h	                        (rev 0)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-transfer.h	2008-04-19 20:13:02 UTC (rev 17091)
@@ -0,0 +1,58 @@
+/*
+ * gnc-ab-transfer.h --
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ */
+
+/**
+ * @addtogroup Import_Export
+ * @{
+ * @addtogroup AqBanking
+ * @{
+ * @file gnc-ab-transfer.h
+ * @brief Dialog for AqBanking transaction data
+ * @author Copyright (C) 2002 Christian Stimming <stimming at tuhh.de>
+ * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
+ */
+
+#ifndef GNC_AB_TRANSFER_H
+#define GNC_AB_TRANSFER_H
+
+#include <gtk/gtk.h>
+
+#include "Account.h"
+#include "dialog-ab-trans.h"
+
+G_BEGIN_DECLS
+
+/**
+ * FIXME
+ *
+ * @param parent Widget to use as parent
+ * @param gnc_acc GnuCash account to fetch balance for
+ * @param trans_type Type of transaction
+ */
+void gnc_ab_maketrans(GtkWidget *parent, Account *gnc_acc,
+                      GncABTransType trans_type);
+
+G_END_DECLS
+
+/** @} */
+/** @} */
+
+#endif /* GNC_AB_TRANSFER_H */

Modified: gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-utils.h
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-utils.h	2008-04-18 01:55:02 UTC (rev 17090)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-ab-utils.h	2008-04-19 20:13:02 UTC (rev 17091)
@@ -30,8 +30,8 @@
  * @author Copyright (C) 2008 Andreas Koehler <andi5.py at gmx.net>
  */
 
-#ifndef GNC_HBCI_UTILS_H
-#define GNC_HBCI_UTILS_H
+#ifndef GNC_AB_UTILS_H
+#define GNC_AB_UTILS_H
 
 #include <glib.h>
 #include <aqbanking/banking.h>

Modified: gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-plugin-aqbanking.c
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-plugin-aqbanking.c	2008-04-18 01:55:02 UTC (rev 17090)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-plugin-aqbanking.c	2008-04-19 20:13:02 UTC (rev 17091)
@@ -33,9 +33,11 @@
 #include <glib/gi18n.h>
 
 #include "Account.h"
+#include "dialog-ab-trans.h"
 #include "druid-ab-initial.h"
 #include "gnc-ab-getbalance.h"
 #include "gnc-ab-gettrans.h"
+#include "gnc-ab-transfer.h"
 #include "gnc-plugin-aqbanking.h"
 #include "gnc-plugin-manager.h"
 #include "gnc-plugin-page-account-tree.h"
@@ -359,7 +361,19 @@
 gnc_plugin_ab_cmd_issue_transaction (GtkAction *action,
                                      GncMainWindowActionData *data)
 {
-    /* FIXME */
+    Account *account;
+
+    ENTER("action %p, main window data %p", action, data);
+    account = main_window_to_account(data->window);
+    if (account == NULL) {
+        g_message("No AqBanking account selected");
+        LEAVE("no account");
+        return;
+    }
+
+    gnc_ab_maketrans(GTK_WIDGET(data->window), account, SINGLE_TRANSFER);
+
+    LEAVE(" ");
 }
 
 static void



More information about the gnucash-changes mailing list