Git commit 1ffc2aec24c45fec16feb01ee4ea91a3004d64f7 by Stephane Mankowski. Committed on 09/06/2014 at 16:10. Pushed by smankowski into branch 'master'.
Update documentation M +- -- doc/bank_accounts.png M +- -- doc/bookmarks_browser.png M +- -- doc/context_chooser.png M +- -- doc/dashboard.png M +- -- doc/export_graph_menu.png M +- -- doc/export_table_menu.png M +- -- doc/history_browser.png M +2197 -2071 doc/index.docbook M +- -- doc/merge_operations_menu.png M +- -- doc/operations.png M +- -- doc/property_editor.png A +- -- doc/shares.png M +- -- doc/tab_state_management.png M +- -- doc/table_menu.png http://commits.kde.org/skrooge/1ffc2aec24c45fec16feb01ee4ea91a3004d64f7 diff --git a/doc/bank_accounts.png b/doc/bank_accounts.png index 2d83ad7..d36431a 100644 Binary files a/doc/bank_accounts.png and b/doc/bank_accounts.png differ diff --git a/doc/bookmarks_browser.png b/doc/bookmarks_browser.png index 004da39..8961e9c 100644 Binary files a/doc/bookmarks_browser.png and b/doc/bookmarks_browser.png differ diff --git a/doc/context_chooser.png b/doc/context_chooser.png index 6217e22..bcc22ff 100644 Binary files a/doc/context_chooser.png and b/doc/context_chooser.png differ diff --git a/doc/dashboard.png b/doc/dashboard.png index 8e79dce..0e8f368 100644 Binary files a/doc/dashboard.png and b/doc/dashboard.png differ diff --git a/doc/export_graph_menu.png b/doc/export_graph_menu.png index ef027d3..e6dd855 100644 Binary files a/doc/export_graph_menu.png and b/doc/export_graph_menu.png differ diff --git a/doc/export_table_menu.png b/doc/export_table_menu.png index c709de4..c9914c1 100644 Binary files a/doc/export_table_menu.png and b/doc/export_table_menu.png differ diff --git a/doc/history_browser.png b/doc/history_browser.png index 0913a7c..1095fee 100644 Binary files a/doc/history_browser.png and b/doc/history_browser.png differ diff --git a/doc/index.docbook b/doc/index.docbook index 646b10e..9c63adf 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -1,2082 +1,2208 @@ <?xml version="1.0" ?> <!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "customization/dtd/kdex.dtd" [ - <!ENTITY appname '<application>Skrooge</application>'> - <!ENTITY kappname "&appname;"> - <!ENTITY tbw "TO BE WRITTEN"> - <!ENTITY % addindex "IGNORE"> - <!ENTITY % English "INCLUDE"><!-- change language only here --> +<!ENTITY appname '<application>Skrooge</application>'> +<!ENTITY kappname "&appname;"> +<!ENTITY tbw "TO BE WRITTEN"> +<!ENTITY % addindex "IGNORE"> +<!ENTITY % English "INCLUDE"><!-- change language only here --> - <!ENTITY homepage "http://extragear.kde.org/apps/skrooge/"> +<!ENTITY homepage "http://extragear.kde.org/apps/skrooge/"> ]> - <book id="skrooge" lang="&language;"> -<title>The &appname; Handbook</title> - - -<bookinfo> - -<authorgroup> - -<author> -<firstname>St?phane</firstname> -<surname>MANKOWSKI</surname> -<affiliation> -<address><email>stephane at mankowski.fr</email></address> -</affiliation> -</author> - -<othercredit role="developer"> -<firstname>Guillaume</firstname> -<surname>DE BURE</surname> -<affiliation> -<address><email>guillaume.debure at gmail.com</email></address> -</affiliation> -<contrib>Developer</contrib> -</othercredit> -<!-- TRANS:ROLES_OF_TRANSLATORS --> -</authorgroup> - -<copyright> -<year>2007</year> -<year>2008</year> -<year>2009</year> -<year>2010</year> -<year>2011</year> -<holder>St?phane MANKOWSKI</holder> -<holder>Guillaume DE BURE</holder> -</copyright> - -<legalnotice>&FDLNotice;</legalnotice> - -<date>30/01/2011</date> -<releaseinfo>0.8.0</releaseinfo> - - -<abstract> -<para> -This document is a handbook for using &appname;, a personal finances manager application. -</para> -</abstract> - -<keywordset> -<keyword>KDE</keyword> -<keyword>extragear</keyword> -<keyword>office</keyword> -<keyword>skrooge</keyword> -<keyword>personal finances</keyword> -</keywordset> - -</bookinfo> - -<chapter id="introduction"> -<title>Introduction</title> - -<sect1 id="skrooge-intro"> -<title>&appname;</title> - -<para> -&appname; is an application for managing your personal finances. It can keep track of your incomes and expenses across several accounts, in several currencies. It has all the features you should expect from such a tool, such as categories, scheduled operations, graphical reporting, stocks management... It also has some less common features, like fast operation edition, search as you type, refund trackers, customizable attributes... -</para> - -<screenshot> -<screeninfo>&appname; displaying pie charts of expenses per category</screeninfo> -<mediaobject> -<imageobject> -<imagedata fileref="reports.png" format="PNG"/> -</imageobject> -<textobject><phrase>&appname; displaying pie charts of expenses per category</phrase></textobject> -</mediaobject> -</screenshot> - - -<sect2 id="what-skrooge-is"> -<title>What &appname; Is</title> - -<para> -&appname; is a personal finances manager for &kde; 4. It is intended to be used by individuals who want to keep track of their incomes, expenses and investments. -</para> - -</sect2> - -<sect2 id="what-skrooge-is-not"> -<title>What &appname; Is Not</title> - -<para> -&appname; is not a professional tool. It doesn't have functions expected from a software you would use to run a small business. It doesn't manage taxes, doesn't use double-entry system, or any advanced financial function. -</para> -<para>If you were looking for such a tool, you may want to look at Kmymoney or Kraft instead.</para> - -</sect2> -</sect1> - -<sect1 id="terminology"> -<title>Terminology</title> - -<sect2 id="terminology-document"> -<title>Document</title> -<para> -A document is a &appname; file (extension .skg). It can contain an indefinite number of <link linkend="terminology-account">accounts</link>. You can use one document to manage all your accounts at once. -</para> -</sect2> - -<sect2 id="terminology-account"> -<title>Account</title> -<para>A &appname; account is similar to your bank account. For example, if you own one account for you, one for your wife, and one in common, you can create these three accounts in &appname;. Every time you spend or earn some money, you register an <link linkend="terminology-operation">operation</link>, and indicate the account this operation was made on. -</para> -</sect2> - -<sect2 id="terminology-operation"> -<title>Operation</title> -<para>An operation is either a credit or a debt on one of your accounts. By affecting a <link linkend="terminology-category">category</link> to an operation, you are able to analyze how you spend your money. -</para> - -<sect3 id="terminology_standard_operation"> -<title>Standard Operation</title> -<para>A standard operation is the basic operation in &appname;. Like "Today, spent 20? in credit card for groceries".</para> -<para></para> -</sect3> - -<sect3 id="terminology_split_operation"> -<title>Split Operation</title> -<para>A split operation is an operation for which the total amount is split over several <link linkend="terminology-category">categories</link> or <link linkend="trackers">trackers</link>.</para> -<para>For example, "Yesterday, spent 100? at the supermarket, of which 60? were for food, and 40? for clothes".</para> -</sect3> - -<sect3 id="terminology_transfer"> -<title>Transfer</title> -<para>A transfer in &appname; is equivalent to moving a quantity of money from one of your &appname; accounts to another of your &appname; accounts.</para> -<para>This must not be confused with the payment mode chosen: if you made a transfer, for example using your bank's website, to someone else's account, this is not a transfer operation, because &appname; doesn't know about that other person's account. It is a <link linkend="terminology_standard_operation">standard operation</link> made with transfer as a payment mode.</para> -<para>Read the <link linkend="transfer">dedicated chapter</link> if things are still unclear</para> -</sect3> - -<sect3 id="terminology_validated_operation"> -<title>Validated Operation</title> -<para>When <link linkend="import">Importing</link> operations, they are not considered valid right away. You need first to manually validate them before. A validated operation is this, an imported operation that has been validated.</para> -<para>Note that it is possible to automatically validate operations on import, by turning on the corresponding option in the <!--TODO: put a link to the settings here-->settings.</para> -</sect3> - -<sect3 id="terminology_pointed_operation"> -<title>Pointed Operation</title> -<para>During the <link linkend="reconciliation">reconciliation process</link>, you point in &appname; all operations that appear in the corresponding account position. A pointed operation is one of these operations. It is not <link linkend="terminology_checked_operation">Checked</link> until the reconciliation is completed.</para> -</sect3> - -<sect3 id="terminology_checked_operation"> -<title>Checked Operation</title> -<para>When all operations on your account's position have been pointed in &appname;, you can complete the reconciliation process. All <link linkend="terminology_pointed_operation">Pointed</link> operation are then turned into Checked Operations.</para> -</sect3> - - -</sect2> - -<sect2 id="terminology-category"> -<title>Category</title> -<para>A category is basically a class of operations. Some classic examples include "Food", "Taxes","Salary"... A category can contain other categories: it is a hierarchical structure. For example, category "transport" can contain categories "Bus", "Automotive", "plane"... &appname; handles an infinite depth of categories. -</para> -</sect2> - -<sect2 id="terminology-unit"> -<title>Unit</title> -<para>A unit in &appname; can be anything that has a value. Examples: - -<itemizedlist> - <listitem><para>Currency - <itemizedlist> - <listitem><para>$ (US Dollar)</para></listitem> - <listitem><para>? (euro)</para></listitem> - <listitem><para>? (Sterling Pound)</para></listitem> - </itemizedlist> - </para> - </listitem> - <listitem><para>Stock - <itemizedlist> - <listitem><para>GOOG (Google)</para></listitem> - </itemizedlist> - </para> - </listitem> - <listitem><para>Anything you own - <itemizedlist> - <listitem><para>Your house</para></listitem> - <listitem><para>Your car</para></listitem> - </itemizedlist> - </para> - </listitem> -</itemizedlist> - -</para> -</sect2> - -</sect1> - -</chapter> - - - -<chapter id="using-skrooge"> -<title>Using &appname;</title> - -<sect1 id="user_interface"> -<title>User Interface</title> -<para> -The &appname; window is composed of a main area, surrounded by docks, and a status bar. Docks can be closed and reopened, and positioned left or right of the main area. -</para> - -<sect2 id="main_area"> -<title>The main area</title> -<para> -This is where &appname; will display the information you're interested in. It can contain <link linkend="multi-tabs">many tabs</link>, each one with the view you assigned to it. -</para> -</sect2> - -<sect2 id="docks"> -<title>Docks</title> -<para> -Docks can be found in many &kde; applications. They are a subpart of an application window, and can be relocated, stacked, closed, or even detached from the main window. -</para> - -<para> -Some examples of docks layout: -</para> - -<informaltable> - <tgroup cols="3"> - <tbody> - <row> - <entry> - <inlinemediaobject> - <imageobject> - <imagedata fileref="docks_left_right.png"/> - </imageobject> - </inlinemediaobject> - </entry> - <entry> - <inlinemediaobject> - <imageobject> - <imagedata fileref="docks_detached.png"/> - </imageobject> - </inlinemediaobject> - </entry> - <entry> - <inlinemediaobject> - <imageobject> - <imagedata fileref="docks_stacked.png"/> - </imageobject> - </inlinemediaobject> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -&appname; docks are: -<itemizedlist> -<listitem><para><link linkend="context_chooser">The context chooser</link></para></listitem> -<listitem><para><link linkend="bookmarks">The bookmark list</link></para></listitem> -<listitem><para><link linkend="undo_redo">The undo / redo browser</link></para></listitem> -<listitem><para><link linkend="property_editor">The property editor</link></para></listitem> -</itemizedlist> -</para> -</sect2> - -<sect2 id="status_bar"> -<title>Status Bar</title> -<para> -The status bar is a small section at the bottom of the &appname; window, displaying various information as you work. It includes a progress bar and a cancel button, in case you want to interrupt a long task, such as importing a large file. -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="progress-bar.png" format="PNG"/></imageobject> -<textobject><phrase>The &appname; progress bar</phrase></textobject> -</mediaobject> -</screenshot> -</para> -</sect2> - -<sect2 id="context_chooser"> -<title>Page Chooser</title> -<para> -The context chooser is a dock where you can select the view to be displayed in the current tab or in a new tab. To open in a new tab, hold the &Ctrl; key while clicking on the selected view.</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="context_chooser.png" format="PNG"/></imageobject> -<textobject><phrase>The context chooser</phrase></textobject> -</mediaobject> -</screenshot> - -<para>Each context will be described in a specific chapter in this handbook.</para> -</sect2> - -<sect2 id="multi-tabs"> -<title>Multiple Tabs</title> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="multi_tabs.png" format="PNG"/></imageobject> -<textobject><phrase>&appname; showing several tabs</phrase></textobject> -</mediaobject> -</screenshot> - -<para>&appname; can display several tabs. You can add as many tabs as you want, each one containing the information you need. The above screenshot shows 4 tabs (accounts, operations, and two graphs).</para> - -</sect2> - - -<sect2 id="edition_panels"> -<title>Edition Panels</title> -<para>In most &appname; tabs, the way to edit items is to use the edition panel, located at the bottom of the page. In order to preserve maximum space for visualizing information, especially on small screens, edition panels can be hidden or displayed using buttons.</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="edition_panel_buttons.png" format="PNG"/></imageobject> -<textobject><phrase>Buttons for showing or hiding Operations edition panels.</phrase></textobject> -</mediaobject> -</screenshot> - -<para>When more than one edition mode is available, several buttons allow choosing amongst them. In the above screenshot, there are four buttons allowing to choose the edition mode for <link linkend="operations">Operations</link>, "Standard", "Split", "Transfer" and "Shares".</para> - -</sect2> - - -<sect2 id="tables"> -<title>Tables</title> -<para>In &appname;, all tables are customizable. Bring up the contextual menu (usually by right-clicking) on the column header, and you will see a menu appear:</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="table_menu.png" format="PNG"/></imageobject> -<textobject><phrase>Customizing a table</phrase></textobject> -</mediaobject> -</screenshot> - -<variablelist> -<varlistentry> -<term><menuchoice><guimenu>Columns</guimenu></menuchoice></term> -<listitem> -<para>Customize the columns appearance.</para> -<variablelist> -<varlistentry> -<term><menuchoice><guimenu>View Appearance</guimenu></menuchoice></term> -<listitem> -<para>Use a predefined set of columns. The "default" column usually shows all columns. Other predefined sets may exist on a per table basis.</para> -</listitem> -</varlistentry> -<varlistentry> -<term><menuchoice><guimenu>Resize to Content</guimenu></menuchoice></term> -<listitem><para>Resize all columns to fit to the content.</para></listitem> -</varlistentry> -<varlistentry> -<term><menuchoice><guimenu>Auto Resize</guimenu></menuchoice></term> -<listitem><para>When activated, you will not be able to manually resize columns, &appname; will do it automatically based on the columns content.</para></listitem> -</varlistentry> -<varlistentry> -<term><guimenu>List of displayed columns</guimenu></term> -<listitem><para>Shows the list of all columns that can be displayed for this table. The ones currently displayed are ticked. Untick to hide a column, tick to show.</para></listitem> -</varlistentry> -</variablelist> -</listitem> -</varlistentry> -<varlistentry> -<term><menuchoice><guimenu>Smooth Scrolling</guimenu></menuchoice></term> -<listitem><para>When enabled, allows you to scroll in the table by left clicking and moving the mouse. Quickly move the mouse in one direction, as if you were "throwing" it, and the table will scroll faster with a dampening effect. Mostly useful on touch devices.</para></listitem> -</varlistentry> -<varlistentry> -<term><menuchoice><guimenu>Show Grid</guimenu></menuchoice></term> -<listitem><para>Draw grid lines in the table.</para></listitem> -</varlistentry> -<varlistentry> -<term><menuchoice><guimenu>Alternate row colors</guimenu></menuchoice></term> -<listitem><para>Alternate the colors used for each row. The colors used are based on the chosen &kde; color scheme.</para></listitem> -</varlistentry> -<varlistentry> -<term><menuchoice><guimenu>Export</guimenu></menuchoice></term> -<listitem><para><link linkend="export_table">Export the table</link> as a stand-alone file. Supported formats are pdf, csv or txt.</para></listitem> -</varlistentry> -</variablelist> - -<para>You may also click on a header to choose the sorting column, or reorder columns by dragging them left or right.</para> - -</sect2> - - - -<sect2 id="save_customized_content"> -<title>Save Customized Content</title> - -<para>As explained in the <link linkend="tables">previous chapter</link>, tables can be totally customized to your liking. But you probably don't want to loose all the customization work you made upon closing a tab. There are two ways to save this work.</para> - -<sect3 id="save_default_context"> -<title>Save page state</title> -<para>This option allows you saving the current tab state as the default state that will always be called when opening this context. For example, you may want your <link linkend="dashboard">Dashboard</link> to contain 4 widgets, organized to your liking. What's even more important is that you always want the Dashboard to look the same, you don't want to repeat the customization work every time you open it.</para> -<para>To do this, you simply need to do customization work once, then to save the tab state as the Default State for the context being displayed. Setting the default state is done either by right clicking on the tab and selecting <guimenuitem>Save page state</guimenuitem>.</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="tab_state_management.png" format="PNG"/></imageobject> -<textobject><phrase>Contextual menu on tabs</phrase></textobject> -</mediaobject> -</screenshot> - -<para>A faster way is to click on the disk icon <inlinemediaobject><imageobject><imagedata fileref="document-save.png" format="PNG"/></imageobject></inlinemediaobject> that appears on the left of the tab title whenever you modified the default state in a tab.</para> - -</sect3> - - -<sect3 id="bookmarks"> -<title>Using Bookmarks</title> -<para>Imagine you need to customize the operations view on a per account basis: each account would be displayed in its own tab, maybe with different columns in each table. The forementioned method does not work, since it applies on all tabs with the same type. -</para> -<para>The solution here is to save each individual tab as a Bookmark. Much like in a web browser, bookmarks can be organized in a hierarchy of bookmark folders, that you can visualize in the Bookmark Browser:</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="bookmarks_browser.png" format="PNG"/></imageobject> -<textobject><phrase>The bookmarks browser</phrase></textobject> -</mediaobject> -</screenshot> - -<para>To create a bookmark, select a context from the <link linkend="context_chooser">context chooser</link> you want to bookmark, and customize its content to your liking. Once you're done with that, in the Bookmarks <link linkend="docks">dock</link>, bring up the context menu, and select <menuchoice><guimenu>Bookmark current page</guimenu></menuchoice>.</para> - -<para>Each bookmark or bookmark folder can be "autostarted", &ie; it will be automatically opened when starting &appname;. This way, you can fully customize the default &appname; layout.</para> - -</sect3> - -</sect2> - -<sect2 id="undo_redo"> -<title>Undo / Redo</title> -<para> -&appname; manages undo/redo in a rather classic fashion, except that you can undo or redo any action, even if it was made several days ago. As per default settings, the history is not cleared upon closing &appname; (you can change this behaviour in the <!-- TODO:put a link here--> settings), which means you could undo virtually everything up to the document creation. -</para> -<para> -In order to limit the impact on filesize, &appname; is configured by default to keep an history of 50 entries. You can change this value in the <!-- TODO:put a link here--> settings. -</para> -<para> -&appname; has a <link linkend="docks">dock</link> that lists all undoable actions. -</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="history_browser.png" format="PNG"/></imageobject> -<textobject><phrase>The history browser</phrase></textobject> -</mediaobject> -</screenshot> - -<para> -The history browser shows three columns: -</para> - -<itemizedlist> - -<listitem> -<para> -an icon showing the state of the action. A yellow counter clockwise arrow <inlinemediaobject><imageobject><imagedata fileref="edit-undo.png" format="PNG"/></imageobject></inlinemediaobject> means the action is undoable. A green clockwise icon <inlinemediaobject><imageobject><imagedata fileref="edit-redo.png" format="PNG"/></imageobject></inlinemediaobject> means the action is redoable. + <title>The &appname; Handbook</title> + + <bookinfo> + + <authorgroup> + + <author> + <firstname>St?phane</firstname> + <surname>MANKOWSKI</surname> + <affiliation> + <address><email>stephane at mankowski.fr</email></address> + </affiliation> + </author> + + <othercredit role="developer"> + <firstname>Guillaume</firstname> + <surname>DE BURE</surname> + <affiliation> + <address><email>guillaume.debure at gmail.com</email></address> + </affiliation> + <contrib>Developer</contrib> + </othercredit> + <!-- TRANS:ROLES_OF_TRANSLATORS --> + </authorgroup> + + <copyright> + <year>2007</year> + <year>2008</year> + <year>2009</year> + <year>2010</year> + <year>2011</year> + <year>2012</year> + <year>2013</year> + <year>2014</year> + <holder>St?phane MANKOWSKI</holder> + <holder>Guillaume DE BURE</holder> + </copyright> + + <legalnotice>&FDLNotice;</legalnotice> + + <date>08/06/2014</date> + <releaseinfo>1.10.0</releaseinfo> + + + <abstract> + <para> + This document is a handbook for using &appname;, a personal finances manager application. + </para> + </abstract> + + <keywordset> + <keyword>KDE</keyword> + <keyword>extragear</keyword> + <keyword>office</keyword> + <keyword>skrooge</keyword> + <keyword>personal finances</keyword> + </keywordset> + + </bookinfo> + + <chapter id="introduction"> + <title>Introduction</title> + + <sect1 id="skrooge-intro"> + <title>&appname;</title> + + <para> + &appname; is an application for managing your personal finances. It can keep track of your incomes and expenses across several accounts, in several currencies. It has all the features you should expect from such a tool, such as categories, scheduled operations, graphical reporting, stocks management... It also has some less common features, like fast operation edition, search as you type, refund trackers, customizable attributes... + </para> + + <screenshot> + <screeninfo>&appname; displaying pie charts of expenses per category</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="reports.png" format="PNG"/> + </imageobject> + <textobject><phrase>&appname; displaying pie charts of expenses per category</phrase></textobject> + </mediaobject> + </screenshot> + + + <sect2 id="what-skrooge-is"> + <title>What &appname; Is</title> + + <para> + &appname; is a personal finances manager for &kde; 4. It is intended to be used by individuals who want to keep track of their incomes, expenses and investments. + </para> + + </sect2> + + <sect2 id="what-skrooge-is-not"> + <title>What &appname; Is Not</title> + + <para> + &appname; is not a professional tool. It doesn't have functions expected from a software you would use to run a small business. It doesn't manage taxes, doesn't use double-entry system, or any advanced financial function. + </para> + <para>If you were looking for such a tool, you may want to look at Kmymoney or Kraft instead.</para> + + </sect2> + </sect1> + + <sect1 id="terminology"> + <title>Terminology</title> + + <sect2 id="terminology-document"> + <title>Document</title> + <para> + A document is a &appname; file (extension .skg). It can contain an indefinite number of <link linkend="terminology-account">accounts</link>. You can use one document to manage all your accounts at once. + </para> + </sect2> + + <sect2 id="terminology-account"> + <title>Account</title> + <para>A &appname; account is similar to your bank account. For example, if you own one account for you, one for your wife, and one in common, you can create these three accounts in &appname;. Every time you spend or earn some money, you register an <link linkend="terminology-operation">operation</link>, and indicate the account this operation was made on. + </para> + </sect2> + + <sect2 id="terminology-operation"> + <title>Operation</title> + <para>An operation is either a credit or a debt on one of your accounts. By affecting a <link linkend="terminology-category">category</link> to an operation, you are able to analyze how you spend your money. + </para> + + <sect3 id="terminology_standard_operation"> + <title>Standard Operation</title> + <para>A standard operation is the basic operation in &appname;. Like "Today, spent 20? in credit card for groceries".</para> + <para></para> + </sect3> + + <sect3 id="terminology_split_operation"> + <title>Split Operation</title> + <para>A split operation is an operation for which the total amount is split over several <link linkend="terminology-category">categories</link>, dates and/or <link linkend="trackers">trackers</link>.</para> + <para>For example, "Yesterday, spent 100? at the supermarket, of which 60? were for food, and 40? for clothes".</para> + </sect3> + + <sect3 id="terminology_transfer"> + <title>Transfer</title> + <para>A transfer in &appname; is equivalent to moving a quantity of money from one of your &appname; accounts to another of your &appname; accounts.</para> + <para>This must not be confused with the payment mode chosen: if you made a transfer, for example using your bank's website, to someone else's account, this is not a transfer operation, because &appname; doesn't know about that other person's account. It is a <link linkend="terminology_standard_operation">standard operation</link> made with transfer as a payment mode.</para> + <para>Read the <link linkend="transfer">dedicated chapter</link> if things are still unclear</para> + </sect3> + + <sect3 id="terminology_validated_operation"> + <title>Validated Operation</title> + <para>When <link linkend="import">Importing</link> operations, they are not considered valid right away. You need first to manually validate them before. A validated operation is this, an imported operation that has been validated.</para> + <para>Note that it is possible to automatically validate operations on import, by turning on the corresponding option in the <!--TODO: put a link to the settings here-->settings.</para> + </sect3> + + <sect3 id="terminology_pointed_operation"> + <title>Pointed Operation</title> + <para>During the <link linkend="reconciliation">reconciliation process</link>, you point in &appname; all operations that appear in the corresponding account position. A pointed operation is one of these operations. It is not <link linkend="terminology_checked_operation">Checked</link> until the reconciliation is completed.</para> + </sect3> + + <sect3 id="terminology_checked_operation"> + <title>Checked Operation</title> + <para>When all operations on your account's position have been pointed in &appname;, you can complete the reconciliation process. All <link linkend="terminology_pointed_operation">Pointed</link> operation are then turned into Checked Operations.</para> + </sect3> + + + </sect2> + + <sect2 id="terminology-category"> + <title>Category</title> + <para>A category is basically a class of operations. Some classic examples include "Food", "Taxes","Salary"... A category can contain other categories: it is a hierarchical structure. For example, category "transport" can contain categories "Bus", "Automotive", "plane"... &appname; handles an infinite depth of categories. + </para> + </sect2> + + <sect2 id="terminology-unit"> + <title>Unit</title> + <para>A unit in &appname; can be anything that has a value. Examples: + + <itemizedlist> + <listitem><para>Currency + <itemizedlist> + <listitem><para>$ (US Dollar)</para></listitem> + <listitem><para>? (euro)</para></listitem> + <listitem><para>? (Sterling Pound)</para></listitem> + </itemizedlist> + </para> + </listitem> + <listitem><para>Stock or index + <itemizedlist> + <listitem><para>GOOG (Google)</para></listitem> + <listitem><para>NASDAQ</para></listitem> + </itemizedlist> + </para> + </listitem> + <listitem><para>Anything you own + <itemizedlist> + <listitem><para>Your house</para></listitem> + <listitem><para>Your car</para></listitem> + </itemizedlist> + </para> + </listitem> + </itemizedlist> + + </para> + </sect2> + </sect1> + </chapter> + + <chapter id="main-concepts"> + <title>Main concepts</title> + + <sect1 id="user_interface"> + <title>User Interface</title> + <para> + The &appname; window is composed of a main area, surrounded by docks, and a status bar. Docks can be closed and reopened, and positioned left or right of the main area. + </para> + + <sect2 id="main_area"> + <title>The main area</title> + <para> + This is where &appname; will display the information you're interested in. It can contain <link linkend="multi-tabs">many tabs</link>, each one with the view you assigned to it. + </para> + </sect2> + + <sect2 id="docks"> + <title>Docks</title> + <para> + Docks can be found in many &kde; applications. They are a subpart of an application window, and can be relocated, stacked, closed, or even detached from the main window. + </para> + + <para> + Some examples of docks layout: + </para> + + <informaltable> + <tgroup cols="3"> + <tbody> + <row> + <entry> + <inlinemediaobject> + <imageobject> + <imagedata fileref="docks_left_right.png"/> + </imageobject> + </inlinemediaobject> + </entry> + <entry> + <inlinemediaobject> + <imageobject> + <imagedata fileref="docks_detached.png"/> + </imageobject> + </inlinemediaobject> + </entry> + <entry> + <inlinemediaobject> + <imageobject> + <imagedata fileref="docks_stacked.png"/> + </imageobject> + </inlinemediaobject> + </entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para> + &appname; docks are: + <itemizedlist> + <listitem><para><link linkend="page_chooser">The page chooser</link></para></listitem> + <listitem><para><link linkend="bookmarks">The bookmark list</link></para></listitem> + <listitem><para><link linkend="undo_redo">The undo / redo browser</link></para></listitem> + <listitem><para><link linkend="property_editor">The property editor</link></para></listitem> + </itemizedlist> + </para> + </sect2> + + <sect2 id="status_bar"> + <title>Status Bar</title> + <para> + The status bar is a small section at the bottom of the &appname; window, displaying various information as you work. It includes a progress bar and a cancel button, in case you want to interrupt a long task, such as importing a large file. + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="progress-bar.png" format="PNG"/></imageobject> + <textobject><phrase>The &appname; progress bar</phrase></textobject> + </mediaobject> + </screenshot> + </para> + </sect2> + + <sect2 id="page_chooser"> + <title>Page Chooser</title> + <para> + The page chooser is a dock where you can select the view to be displayed in the current tab or in a new tab. To open in a new tab, hold the &Ctrl; key while clicking on the selected view. You can customize this list by using the contextual menu on this list.</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="context_chooser.png" format="PNG"/></imageobject> + <textobject><phrase>The page chooser</phrase></textobject> + </mediaobject> + </screenshot> + + <para>Each context will be described in a specific chapter in this handbook.</para> + </sect2> + + <sect2 id="multi-tabs"> + <title>Multiple Tabs</title> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="multi_tabs.png" format="PNG"/></imageobject> + <textobject><phrase>&appname; showing several tabs</phrase></textobject> + </mediaobject> + </screenshot> + + <para>&appname; can display several tabs. You can add as many tabs as you want, each one containing the information you need. The above screenshot shows 4 tabs (accounts, operations, and two graphs).</para> + + </sect2> + + <sect2 id="edition_panels"> + <title>Edition Panels</title> + <para>In most &appname; tabs, the way to edit items is to use the edition panel, located at the bottom of the page. In order to preserve maximum space for visualizing information, especially on small screens, edition panels can be hidden or displayed using buttons.</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="edition_panel_buttons.png" format="PNG"/></imageobject> + <textobject><phrase>Buttons for showing or hiding Operations edition panels.</phrase></textobject> + </mediaobject> + </screenshot> + + <para>When more than one edition mode is available, several buttons allow choosing amongst them. In the above screenshot, there are four buttons allowing to choose the edition mode for <link linkend="operations">Operations</link>, "Standard", "Split", "Transfer" and "Shares".</para> + + <para>All numerical fields are interpreted. It means that you can enter mathematical expressions like this: + <itemizedlist> + <listitem><para>5*3+10</para></listitem> + <listitem><para>5*(3+10)</para></listitem> + <listitem><para>Math.sin(10)</para></listitem> + </itemizedlist> + </para> + </sect2> + + <sect2 id="tables"> + <title>Tables</title> + <para>In &appname;, all tables are customizable. Bring up the contextual menu (usually by right-clicking) on the column header, and you will see a menu appear:</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="table_menu.png" format="PNG"/></imageobject> + <textobject><phrase>Customizing a table</phrase></textobject> + </mediaobject> + </screenshot> + + <variablelist> + <varlistentry> + <term><menuchoice><guimenu>Columns</guimenu></menuchoice></term> + <listitem> + <para>Customize the columns appearance.</para> + <variablelist> + <varlistentry> + <term><menuchoice><guimenu>View Appearance</guimenu></menuchoice></term> + <listitem> + <para>Use a predefined set of columns. The "default" column usually shows all columns. Other predefined sets may exist on a per table basis.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><menuchoice><guimenu>Resize to Content</guimenu></menuchoice></term> + <listitem><para>Resize all columns to fit to the content.</para></listitem> + </varlistentry> + <varlistentry> + <term><menuchoice><guimenu>Auto Resize</guimenu></menuchoice></term> + <listitem><para>When activated, you will not be able to manually resize columns, &appname; will do it automatically based on the columns content.</para></listitem> + </varlistentry> + <varlistentry> + <term><guimenu>List of displayed columns</guimenu></term> + <listitem><para>Shows the list of all columns that can be displayed for this table. The ones currently displayed are ticked. Untick to hide a column, tick to show. The added <link linkend="property_editor">properties</link> can be selected to be displayed as a column.</para></listitem> + </varlistentry> + <varlistentry> + <term><guimenu>Drag and drop</guimenu></term> + <listitem><para>The order of columns can be change by using the drag and drop.</para></listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term><menuchoice><guimenu>Group by</guimenu></menuchoice></term> + <listitem> + <para>Choose how to group the lines.</para> + <variablelist> + <varlistentry> + <term><menuchoice><guimenu>None</guimenu></menuchoice></term> + <listitem> + <para>No grouping.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><menuchoice><guimenu>Sorting column</guimenu></menuchoice></term> + <listitem><para>The lines will be grouped by the column where the sort is applied.</para></listitem> + </varlistentry> + <varlistentry> + <term><guimenu>List of columns</guimenu></term> + <listitem><para>Shows the list of all columns that can be use for grouping.</para></listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term><menuchoice><guimenu>Alternate row colors</guimenu></menuchoice></term> + <listitem><para>Alternate the colors used for each row. The colors used are based on the chosen &kde; color scheme.</para></listitem> + </varlistentry> + <varlistentry> + <term><menuchoice><guimenu>Export</guimenu></menuchoice></term> + <listitem><para><link linkend="export_table">Export the table</link> as a stand-alone file. Supported formats are pdf, csv, html, svg, odt or txt.</para></listitem> + </varlistentry> + </variablelist> + + <para>You may also click on a header to choose the sorting column, or reorder columns by dragging them left or right.</para> + + <sect3 id="search"> + <title>Search as you type</title> + <para> + In all &appname; views, you will find a "filter" field allowing you to search as you type in the view: + <itemizedlist> + <listitem><para>In an operation view, it will filter the operations containing the text entered, whatever the column (date, payee, category, comment...)</para></listitem> + <listitem><para>In an accounts view, it will filter the accounts containing the text entered, whatever the column (bank, account name, number...)</para></listitem> + <listitem><para>In a report view, it will redraw the graph based on this filter</para></listitem> + <listitem><para>In a... well, you get the idea, right?</para></listitem> + </itemizedlist> + </para> + <para> + The filtering string could be complex, some examples are better to explain: + <itemizedlist> + <listitem><para>"deposit auto" will keep all lines containing the words deposit AND auto</para></listitem> + <listitem><para>"deposit +auto" will keep all lines containing deposit AND lines containing auto</para></listitem> + <listitem><para>"deposit -auto" will keep all lines containing deposit but NOT auto</para></listitem> + </itemizedlist> + </para> + </sect3> + </sect2> + + <sect2 id="save_customized_content"> + <title>Save Customized Content</title> + + <para>As explained in the <link linkend="tables">previous chapter</link>, tables can be totally customized to your liking. But you probably don't want to loose all the customization work you made upon closing a tab. There are two ways to save this work.</para> + + <sect3 id="save_default_context"> + <title>Save page state</title> + <para>This option allows you saving the current tab state as the default state that will always be called when opening this page. For example, you may want your <link linkend="dashboard">Dashboard</link> to contain 4 widgets, organized to your liking. What's even more important is that you always want the Dashboard to look the same, you don't want to repeat the customization work every time you open it.</para> + <para>To do this, you simply need to do customization work once, then to save the tab state as the Default State for the page being displayed. Setting the default state is done either by right clicking on the tab and selecting <guimenuitem>Save page state</guimenuitem>. If you want to keep more than one state for a page then you must use <link linkend="bookmarks">bookmarks</link></para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="tab_state_management.png" format="PNG"/></imageobject> + <textobject><phrase>Contextual menu on tabs</phrase></textobject> + </mediaobject> + </screenshot> + + <para>A faster way is to click on the disk icon <inlinemediaobject><imageobject><imagedata fileref="document-save.png" format="PNG"/></imageobject></inlinemediaobject> that appears on the left of the tab title whenever you modified the default state in a tab.</para> + + </sect3> + + + <sect3 id="bookmarks"> + <title>Using Bookmarks</title> + <para>Imagine you need to customize the operations view on a per account basis: each account would be displayed in its own tab, maybe with different columns in each table. The forementioned method does not work, since it applies on all tabs with the same type. + </para> + <para>The solution here is to save each individual tab as a Bookmark. Much like in a web browser, bookmarks can be organized in a hierarchy of bookmark folders, that you can visualize in the Bookmark Browser:</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="bookmarks_browser.png" format="PNG"/></imageobject> + <textobject><phrase>The bookmarks browser</phrase></textobject> + </mediaobject> + </screenshot> + + <para>To create a bookmark, select a page from the <link linkend="page_chooser">page chooser</link> you want to bookmark, and customize its content to your liking. Once you're done with that, in the Bookmarks <link linkend="docks">dock</link>, bring up the contextual menu, and select <menuchoice><guimenu>Bookmark current page</guimenu></menuchoice>.</para> + + <para>Each bookmark or bookmark folder can be "autostarted", &ie; it will be automatically opened when starting &appname;. This way, you can fully customize the default &appname; layout.</para> + <para>You can select the text and icon you want for each bookmark or bookmark folder.</para> + </sect3> + </sect2> + + <sect2 id="undo_redo"> + <title>Undo / Redo</title> + <para> + &appname; manages undo/redo in a rather classic fashion, except that you can undo or redo any action, even if it was made several days ago. As per default settings, the history is not cleared upon closing &appname; (you can change this behaviour in the <!-- TODO:put a link here--> settings), which means you could undo virtually everything up to the document creation. + </para> + <para> + In order to limit the impact on filesize, &appname; is configured by default to keep an history of 50 entries. You can change this value in the <!-- TODO:put a link here--> settings. + </para> + <para> + &appname; has a <link linkend="docks">dock</link> that lists all undoable actions. + </para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="history_browser.png" format="PNG"/></imageobject> + <textobject><phrase>The history browser</phrase></textobject> + </mediaobject> + </screenshot> + + <para> + The history browser shows three columns: + </para> + + <itemizedlist> + <listitem> + <para> + an icon showing the state of the action. A yellow counter clockwise arrow <inlinemediaobject><imageobject><imagedata fileref="edit-undo.png" format="PNG"/></imageobject></inlinemediaobject> means the action is undoable. A green clockwise icon <inlinemediaobject><imageobject><imagedata fileref="edit-redo.png" format="PNG"/></imageobject></inlinemediaobject> means the action is redoable. + </para> + </listitem> + + <listitem> + <para> + the description of the action + </para> + </listitem> + + <listitem> + <para> + the date when the action was made + </para> + </listitem> + + <listitem> + <para> + a disk icon <inlinemediaobject><imageobject><imagedata fileref="document-save.png" format="PNG"/></imageobject></inlinemediaobject> means this action corresponds to a saved state, &ie; the document was saved right after this action. + </para> + </listitem> + </itemizedlist> + + <para> + To undo an undoable operation, or redo a redoable operation, double click on it. + </para> + </sect2> + + + <sect2 id="mass_update"> + <title>Mass Update</title> + <para>In &appname;, it is possible to massively update a selection of items. Though mostly useful for <link linkend="operations">operations</link>, it can also be used on <link linkend="accounts">accounts</link>, <link linkend="units">units</link>, <link linkend="scheduled">scheduled operations</link>...</para> + <para>The way to do this is quite straightforward : select items to be updated, set the attribute value(s) that should be applied on all items, and click on <guibutton>Apply</guibutton>. For all attributes where you didn't set a value, it will be left untouched on items.</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="before_mass_update.png"/></imageobject> + <caption><para>Set mode as "Credit Card" and payee as "ACME" on selected operations.</para></caption> + </mediaobject> + </screenshot> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="after_mass_update.png"/></imageobject> + <caption><para>Updated operations.</para></caption> + </mediaobject> + </screenshot> + + <note><para>It is intentionally impossible to set date or quantity with a mass update</para></note> + + </sect2> + + + <sect2 id="property_editor"> + <title>Property Editor</title> + <para> One of &appname; rather uncommon features is the ability to add custom properties to any object. For example, you may want to add the name and phone number of a bank employee to an account, because he / she is your contact. Or maybe attach a file to an operation, like an invoice scan. + </para> + <para> + This can be achieved using the property editor, which is a <link linkend="docks">dock</link> of its own. + </para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="property_editor.png" format="PNG"/></imageobject> + <textobject><phrase>The property editor, with an attachment</phrase></textobject> + </mediaobject> + </screenshot> + + <para> + When this dock is visible, it will display the custom properties of the selected object (For: Selection) or of all objects (For: All) , whether it is an account, an operation, category, unit... + </para> + <para> + A property can be: + <itemizedlist> + + <listitem> + <para> + A simple string + </para> + </listitem> + + <listitem> + <para> + A copied file whatever the format (odt, png, pdf, ...). + It means that the file is copied into the &appname; document. + This file can be opened from &appname; by clicking on the appropriate button. + Take care, all modifications of original file are not replicated in the version saved in &appname; document. + </para> + </listitem> + + <listitem> + <para> + A link to an existing file whatever the format (odt, png, pdf, ...). + It means that the file is not copied into the &appname; document but just linked + This file can be opened from &appname; by clicking on the appropriate button. + </para> + </listitem> + + <listitem> + <para> + A link to a http page. Example: the website of your bank. + </para> + </listitem> + </itemizedlist> + + Added properties can be displayed as a column on <link linkend="tables">tables</link> + </para> + </sect2> + </sect1> + + <sect1 id="import"> + <title>Import Files</title> + + <para>&appname; is able to import files from other financial applications or from your bank. So, whether you're coming from another application, or simply don't want to go through the hassle of manually entering your operations, &appname; has a fast lane for you.</para> + + <sect2 id="supported_file_formats"> + <title>Supported File Formats</title> + + <para>One the following formats may be used:</para> + + <variablelist> + <varlistentry> + <term>AFB120</term> + <listitem><para>A French norm.</para></listitem> + </varlistentry> + <varlistentry> + <term>CSV</term> + <listitem><para>Comma Separated Value. Though not strictly a financial format, it is quite often available as an export format from banks or other applications, mostly because it is so easy to use in a spreadsheet.</para></listitem> + </varlistentry> + <varlistentry> + <term>GnuCash</term> + <listitem><para>Format of the GnuCash application. If you want to migrate from this application, this is the recommanded format to use.</para></listitem> + </varlistentry> + <varlistentry> + <term>Grisbi</term> + <listitem><para>Format of the Grisbi application. If you want to migrate from this application, this is the recommanded format to use.</para></listitem> + </varlistentry> + <varlistentry> + <term>Homebank</term> + <listitem><para>Format of the Homebank application. If you want to migrate from this application, this is the recommanded format to use.</para></listitem> + </varlistentry> + <varlistentry> + <term>Kmymoney</term> + <listitem><para>Format of the Kmymoney application. If you want to migrate from this application, this is the recommanded format to use.</para></listitem> + </varlistentry> + <varlistentry> + <term>MT940</term> + <listitem><para>An international norm defined by SWIFT.</para></listitem> + </varlistentry> + <varlistentry> + <term>Microsoft Money</term> + <listitem><para>Format of the Microsoft Money application. If you want to migrate from this application, this is the recommanded format to use.</para></listitem> + </varlistentry> + <varlistentry> + <term>Money Manager Ex</term> + <listitem><para>Format of the Money Manager Ex application. If you want to migrate from this application, this is the recommanded format to use.</para></listitem> + </varlistentry> + <varlistentry> + <term>OFX</term> + <listitem><para>Open Financial eXchange. It is a well defined & documented format, that &appname; imports using a third party library (libofx). This is the recommended format for imports.</para></listitem> + </varlistentry> + <varlistentry> + <term>QFX</term> + <listitem><para>QFX is a customization of OFX from the commercial software <trademark>Quicken</trademark>.</para></listitem> + </varlistentry> + <varlistentry> + <term>QIF</term> + <listitem><para><trademark>Quicken</trademark> Import File. Maybe the most common financial file format. However, it has some rather annoying limitations, like not giving the unit for operation, or no strict date formatting.</para></listitem> + </varlistentry> + <varlistentry> + <term>&appname;</term> + <listitem><para>This is useful to merge 2 &appname; documents</para></listitem> + </varlistentry> + <varlistentry> + <term>Backend</term> + <listitem><para>&appname; can also import operations by using a backend. The only one supported is WEBOOB. By using this backend you can import all operations from all your banks in only one click. For that, you just have to install WEBOOB and activate the corresponding backend from settings.</para></listitem> + </varlistentry> + </variablelist> + + </sect2> + + <sect2 id="csv_specificities"> + <title>CSV Specificities</title> + <para>Since CSV has no strictly defined format, there is no way for &appname; to know where it is supposed to find dates, categories, values... To do so, &appname; expects your CSV file to contain some headers indicating what is the column for. The file must contain at least columns "Date" and "Amount".</para> + <para><!-- TODO: Put a link to the settings documentation section -->You may manually define how the file is set up (&ie; ignoring the headers in the file) by setting them in the application settings (<menuchoice><guimenu>Settings</guimenu> <guimenuitem>Configure &appname;</guimenuitem></menuchoice>), in the <guilabel>Import / Export</guilabel> section.</para> + </sect2> + + <sect2 id="import_operations"> + <title>Importing Operations</title> + <para>One of &appname; principles is to avoid multiple wizards or dialog boxes. This is especially true for imports, where other applications require many information from the user. Not &appname;. When selecting <menuchoice><guimenu>File</guimenu><guimenuitem>Import</guimenuitem></menuchoice>, you will be asked to select the files (yes you can import many at once), and that's it. Behind the scene, &appname; will find the file format and apply the relevant import mode.</para> + + <sect3 id="import_account"> + <title>Account</title> + <para>One thing that might surprise you is that you won't be asked in which account the operations should be imported. That is because &appname; will read the account number in the file, and will associate imported operations to that account.</para> + <para>If no account exists with this account number, or if the file does not contain this information, &appname; will use the file name as the account number.</para> + <para>If there is still no account with that number, &appname; will create a new account having the filename as the account number, and import all operations in that account. You will then be free to either rename the account, perform a <link linkend="mass_update">mass update</link>, or use <link linkend="search_and_process">Search & Process</link> to associate imported operations to an existing account.</para> + </sect3> + + <sect3 id="import_unit"> + <title>Unit</title> + <para>If no unit is specified in the imported file (which is often the case for QIF & CSV), &appname; will assume the unit is your <link linkend="unit_types">primary currency</link>. If this was not the case, use the <link linkend="search_and_process">Search & Process</link> function to correct.</para> + </sect3> + + <sect3 id="import_date"> + <title>Date</title> + <para>Sometimes, the input files will not have dates formatted as per your country's customs (it may happen in QIF or CSV, OFX has an imposed date format). &appname; will do its best to detect the format. If this doesn't work as expected, you can force the date format in the application's <!-- TODO: Put a link here-->settings.</para> + </sect3> + + <sect3 id="import_status"> + <title>Import Status</title> + <para>Imported Operations have a specific status. Right after import, they are considered as "Imported, not yet validated". The idea here is that you may want to check if the import went as expected, so you need to identify quickly those operations. As per default settings, those operations will also appear in blue.</para> + <tip><para>If you don't want this behaviour, you can set the option <guilabel>Automatic Validation after Import</guilabel> in the application's <!-- TODO: Put a link here-->settings.</para></tip> + </sect3> + </sect2> + + <sect2 id="merge_operations"> + <title>Merge operations after import</title> + <para>There are some cases where you have manually entered an operation, but also imported it from your bank. In such cases, the operation will appear twice in the list.</para> + <para>You may merge these two operations by selecting them, and select <guimenuitem>Merge operations</guimenuitem> in the contextual menu. This will add all information you manually entered to the imported operation, and will delete the manually entered operation.</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="merge_operations_menu.png"/></imageobject> + </mediaobject> + </screenshot> + + </sect2> + + </sect1> + + <sect1 id="export"> + <title>Export</title> + <para>There are different ways of exporting data with &appname; depending on what you intend to do.</para> + + <sect2 id="export_file"> + <title>Export all your data in one file</title> + <para>Using the menu <menuchoice><guimenu>File</guimenu> <guimenuitem>Export</guimenuitem></menuchoice>, a CSV, QIF, JSON, Kmymoney, Sqlite or WML file will be created, containing all operations in the current document. This is the option to choose if you need to export your data to another application.</para> + </sect2> + + <sect2 id="export_table"> + <title>Export a specific table</title> + <para>All <link linkend="tables">tables</link> in &appname; can be exported, either in CSV, HTML, ODT, PDF, SVG or TXT format. </para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="export_table_menu.png"/></imageobject> + </mediaobject> + </screenshot> + + <para>This works wherever a table is displayed, so you can use it to export whatever tabular information you need.</para> + </sect2> + + <sect2 id="export_graph"> + <title>Export Graph</title> + <para>&appname; allows you exporting a <link linkend="reports">graph</link>, either in PDF, SVG or just any image format supported by &kde; (PNG, JPG, GIF, TIFF...). You can do so by right-clicking on the graph, and choosing the <guimenu>Export</guimenu> option.</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="export_graph_menu.png"/></imageobject> + </mediaobject> + </screenshot> + + + </sect2> + + </sect1> + </chapter> + + <chapter id="using-skrooge-beginner"> + <title>Using &appname; (beginner)</title> + <sect1 id="dashboard"> + <title>Dashboard</title> + <para>The Dashboard is a &appname; plugin that displays global information about your financial situation.</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="dashboard.png"/></imageobject> + </mediaobject> + </screenshot> + + <para>You can add new graphical items using button on the top right hand. You can configure each graphical item by clicking on the icon on it. Combined with <link linkend="bookmarks">bookmarks</link>, this is a good way to have quick different views of your financial status. + </para> + <!-- TODO: Describe each graphical items--> + </sect1> + + <sect1 id="accounts"> + <title>Bank & Accounts</title> + <para>This is the plugin dedicated to managing your different accounts.</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="bank_accounts.png" format="PNG"/></imageobject> + <textobject><phrase>The Bank & Accounts view</phrase></textobject> + </mediaobject> + </screenshot> + + + <sect2 id="account_properties"> + <title>Account properties</title> + <para>A &appname; account has the following properties: + + <variablelist> + <varlistentry> + <term>Bank</term> + <listitem><para>You may choose a bank from the drop down box (containing the list of known banks for your country), or type the name if your bank is not in the list (If the list is empty, the &appname; team has not yet been provided this information. You may contact us to help!).</para></listitem> + </varlistentry> + <varlistentry> + <term>Account</term> + <listitem><para>The name you want to use for this account.</para></listitem> + </varlistentry> + <varlistentry> + <term>Type</term> + <listitem><para>The account type can be + <itemizedlist> + <listitem><para>Current</para></listitem> + <listitem><para>Credit Card: This kind of account has a specific reconciliation mode.</para></listitem> + <listitem><para>Saving</para></listitem> + <listitem><para>Investment</para></listitem> + <listitem><para>Assets</para></listitem> + <listitem><para>Loan: The transfers to this kind of account are not taken into account in reports.</para></listitem> + <listitem><para>Pension</para></listitem> + <listitem><para>Wallet: This kind of account does not have bank name.</para></listitem> + <listitem><para>Other</para></listitem> + </itemizedlist> + </para></listitem> + </varlistentry> + <varlistentry> + <term>Bank Number</term> + <listitem><para>The identification number of your bank</para></listitem> + </varlistentry> + <varlistentry> + <term>Agency Number</term> + <listitem><para>The identification number of the agency</para></listitem> + </varlistentry> + <varlistentry> + <term>Account Number</term> + <listitem><para>The identification number of the account. This value is very important to match the appropriate account during imports</para></listitem> + </varlistentry> + <varlistentry> + <term>Address</term> + <listitem><para>The address of the agency</para></listitem> + </varlistentry> + <varlistentry> + <term>Comment</term> + <listitem><para>Anything you want !</para></listitem> + </varlistentry> + <varlistentry> + <term>Initial balance</term> + <listitem><para>The initial amount of the account</para></listitem> + </varlistentry> + <varlistentry> + <term>Minimum limit</term> + <listitem><para>The minimum limit when &appname; must raise an alarm </para></listitem> + </varlistentry> + <varlistentry> + <term>Maximum limit</term> + <listitem><para>The maximum limit when &appname; must raise an alarm </para></listitem> + </varlistentry> + </variablelist> + </para> + </sect2> + + <sect2 id="accounts_list"> + <title>Accounts list</title> + <para>The accounts list takes the form of a table with one line per account. In addition to the <link linkend="account_properties">properties</link> you defined for this account, &appname; displays the following columns:</para> + + <variablelist> + <varlistentry> + <term>Amount</term> + <listitem><para>The amount available on the account, considering all operations registered, whether they are validated or not.</para></listitem> + </varlistentry> + <varlistentry> + <term>Checked</term> + <listitem><para>The amount of all validated operations. This should be equal to the amount written on your last account's position from your bank.</para></listitem> + </varlistentry> + <varlistentry> + <term>Foreseen</term> + <listitem><para>The difference between the two previous columns</para></listitem> + </varlistentry> + <varlistentry> + <term>Number of operations</term> + <listitem><para>The total number of operations made on this account</para></listitem> + </varlistentry> + </variablelist> + + <para>As with all &appname; list views, you can fully <link linkend="tables">customize the table appearance</link>.</para> + + </sect2> + + <sect2 id="create_account"> + <title>Create an Account</title> + <para>The account creation is done using the edition panel below the accounts list.</para> + + <para> + To create an account, enter its attributes (the mandatory ones are in bold), and click on <guibutton>Add</guibutton>. &appname; doesn't need you to provide the initial amount of this account. In order to set the initial amount of the account, create an operation corresponding to the initial amount.</para> + </sect2> + + <sect2 id="modify_account"> + <title>Modify an Account</title> + <para>To modify an account, select it, modify its attributes, and click on "Modify"</para> + </sect2> + + <sect2 id="delete_account"> + <title>Delete Accounts</title> + <para>To delete accounts, select them and either press <keycap>Delete</keycap> on the keyboard, use the contextual menu, or use the icon in the toolbar.</para> + <warning><para>Upon deleting an account, all operations belonging to this account will also be deleted ! (But you can always <link linkend="undo_redo">undo</link> the deletion)</para></warning> + </sect2> + + </sect1> + + <sect1 id="operations"> + <title>Operations</title> + <para>Operations are, well, any operation you make on an account, be it an expense, income, transfer, sales, purchase... This is where you will probably spend most of your time when using &appname;.</para> + + <para>In order to enter operations, you need to have at least one <link linkend="accounts">account</link> created.</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="operations.png" format="PNG"/></imageobject> + <textobject><phrase>The operations view</phrase></textobject> + </mediaobject> + </screenshot> + + <sect2 id="operation_properties"> + <title>Operation Properties</title> + + <variablelist> + <varlistentry> + <term>Account</term> + <listitem><para>The account the operation is made on. Select it from the list of existing accounts.</para></listitem> + </varlistentry> + <varlistentry> + <term>Date</term> + <listitem><para>The date when the operation was made. A calendar is accessible using the down arrow right of the field.</para></listitem> + </varlistentry> + <varlistentry> + <term id="quantity_field">Amount</term> + <listitem> + <para>The amount is how much you spent or earned with this operation. &appname; requires you enter this in two separate fields: Quantity, and Unit.</para> + <para>The quantity is negative for an expense (-30, for example), and positive for an income (+250, or simply 250). This field acts as a calculator, &ie; entering an expression such as 10 + 3.23*2 will result in the field containing 16.46.</para> + <para>&appname; requires you to enter the <link linkend="units">unit</link> because an operation is not necessarily made in your main currency. For example, when you buy or purchase shares, the unit of the operation is the share unit.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Payee</term> + <listitem><para>Who did you pay this to, or who gave you the money.</para></listitem> + </varlistentry> + <varlistentry> + <term>Mode</term> + <listitem> + <para>What was the payment mode used for this operation. Something in the line of Credit Card, Cheque, Deposit... You name it !</para> + <para>Associated with the operation mode, is an optional number. It is mostly used to enter the check number, or a transfer number.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Category</term> + <listitem> + <para>Which <link linkend="categories">Category</link> this operation belongs to. If you need to affect more than one category to an operation, use the <link linkend="split_operation">split</link> mode.</para> + <para>You can either choose an existing category, or type a new one. In this case, &appname; will create it for you along with the operation.</para> + <para>The separator between a parent category and its children is the > character. If you type Clothes > Shoes, &appname; will create the category Clothes if it doesn't exist yet, and its child category Shoes.</para> + <para>Of course, you may create entire category trees, such as Transport > Car > Fuel > Unleaded, &appname; will happily create all the hierarchical structure.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Comment</term> + <listitem><para>Any comment you'd like.</para></listitem> + </varlistentry> + <varlistentry> + <term>Tracker</term> + <listitem><para>If you want to track refund for this operation, enter the name of the <link linkend="trackers">Tracker</link> here. If you need to affect more than one tracker to an operation, use the <link linkend="split_operation">split</link> mode.</para></listitem> + </varlistentry> + </variablelist> + + </sect2> + + <sect2 id="operations_list"> + <title>Operations list</title> + <para>The accounts list takes the form of a table with one line per account. In addition to the <link linkend="account_properties">properties</link> you defined for this account, &appname; displays the following columns:</para> + + <variablelist> + <varlistentry> + <term>Status</term> + <listitem><para>This check box indicates whether this operation has been confirmed during account reconciliation. A half-greyed check box means the reconciliation is ongoing.</para></listitem> + </varlistentry> + <varlistentry> + <term>Bookmark</term> + <listitem><para>Mark this operation as Bookmarked, a synonym for Favorite.</para></listitem> + </varlistentry> + <varlistentry> + <term>Scheduled</term> + <listitem><para>When an operation is scheduled, this column shows a chronometer icon.</para></listitem> + </varlistentry> + </variablelist> + + <para>These columns also have some specificities:</para> + + <variablelist> + <varlistentry> + <term>Mode</term> + <listitem><para>When the operation is part of a <link linkend="transfer">transfer</link>, the mode is preceded by a double arrow icon.<!-- Insert the icon here --></para></listitem> + </varlistentry> + <varlistentry> + <term>Category</term> + <listitem><para>When the operation is <link linkend="split_operation">split</link>, the category is preceded by a triple arrow icon.<!-- Insert the icon here --></para></listitem> + </varlistentry> + </variablelist> + + <para>As with all &appname; list views, you can fully <link linkend="tables">customize the table appearance</link>.</para> + + </sect2> + + <sect2 id="standard_operation"> + <title>Create an operation</title> + <para>To create a standard operation, you may use the <guibutton>Clear button</guibutton> to clear all fields and start a new operation from scratch. You can then fill its attributes (manually or using <link linkend="fast_edition">fast edition</link>), and click on <guibutton>Add</guibutton>.</para> + <para>You may also select a similar operation from the existing operations, modify what needs to be changed, and then click on <guibutton>Add</guibutton>.</para> + </sect2> + + + <sect2 id="split_operation"> + <title>Split Operation</title> + <para>A split operation is an operation that has several categories, comments or trackers. You switch to the split operation edition mode using the <guibutton>Split Button</guibutton> at the bottom of &appname; window. When switching into the split operation edition mode, the fields Category, Comment and Tracker are replaced by a table.</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="split_operation.png" format="PNG"/></imageobject> + <textobject><phrase>The split operation edition panel.</phrase></textobject> + </mediaobject> + </screenshot> + + <para>To edit a cell in this table, double click on it.</para> + + <para>You can add as many lines in this table as you need. When changing the quantity in a line, &appname; will compute the difference with the operation global quantity, and display the remaining quantity in the last table line. If you changed the quantity in the last line, a new line will be added with the remaining quantity.</para> + + <para>The fields here have the same behaviour as in the standard operation edition mode:</para> + + <itemizedlist> + <listitem><para>The Category is a drop down box of existing categories. You can add a new category structure, &appname; will create it when creating the operation.</para></listitem> + <listitem><para>The Amount <link linkend="quantity_field">acts as a calculator</link>.</para></listitem> + <listitem><para>The Tracker is a drop down box of existing trackers. You can add a new tracker, &appname; will create it when creating the operation.</para></listitem> + </itemizedlist> + + </sect2> + + + <sect2 id="transfer"> + <title>Transfer</title> + <para>A transfer operation is effectively a dual operation: when creating a transfer, &appname; will create two operations of opposite amounts (one positive, the other negative), on two different accounts. The attributes to provide here are slightly different from a standard operation:</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="transfer_operation.png" format="PNG"/></imageobject> + <textobject><phrase>The transfer operation edition panel.</phrase></textobject> + </mediaobject> + </screenshot> + + <para>Instead of a Payee field, you will find a "To Account" list where you should select the account receiving the money.</para> + + <para>Since a transfer means "Take some money from account A and put it account B", if you put a sign in the quantity field (+ or -), it will be ignored. The operation for account A will always be negative, positive for account B.</para> + + <para>At the moment, once the operations are created they bear no relationship with each other: any modification on one of them will not be reflected on the other one.</para> + + </sect2> + + <sect2 id="shares"> + <title>Shares</title> + <para>First of all you have to create some units with the shares you want to track, from the settings you can choose to update the data automatically when the +file is opened. It's also recommended to create a different account (eg "ETF") in order to keep the investments separated and be able to see them from the dashboard. </para> -</listitem> - -<listitem> -<para> -the description of the action -</para> -</listitem> - -<listitem> -<para> -the date when the action was made -</para> -</listitem> - -<listitem> -<para> -a disk icon <inlinemediaobject><imageobject><imagedata fileref="document-save.png" format="PNG"/></imageobject></inlinemediaobject> means this action corresponds to a saved state, &ie; the document was saved right after this action. -</para> -</listitem> -</itemizedlist> - -<para> -To undo an undoable operation, or redo a redoable operation, double click on it. -</para> -</sect2> - - -<sect2 id="mass_update"> -<title>Mass Update</title> -<para>In &appname;, it is possible to massively update a selection of items. Though mostly useful for <link linkend="operations">operations</link>, it can also be used on <link linkend="accounts">accounts</link>, <link linkend="units">units</link>, <link linkend="scheduled">scheduled operations</link>...</para> -<para>The way to do this is quite straightforward : select items to be updated, set the attribute value(s) that should be applied on all items, and click on <guibutton>Apply</guibutton>. For all attributes where you didn't set a value, it will be left untouched on items.</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="before_mass_update.png"/></imageobject> -<caption><para>Set mode as "Credit Card" and payee as "ACME" on selected operations.</para></caption> -</mediaobject> -</screenshot> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="after_mass_update.png"/></imageobject> -<caption><para>Updated operations.</para></caption> -</mediaobject> -</screenshot> - -<note><para>It is intentionally impossible to set date or quantity with a mass update</para></note> - -</sect2> - - -<sect2 id="property_editor"> -<title>Property Editor</title> -<para> One of &appname; rather uncommon features is the ability to add custom properties to any object. For example, you may want to add the name and phone number of a bank employee to an account, because he / she is your contact. Or maybe attach a file to an operation, like an invoice scan. -</para> -<para> -This can be achieved using the property editor, which is a <link linkend="docks">dock</link> of its own. -</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="property_editor.png" format="PNG"/></imageobject> -<textobject><phrase>The property editor, with an attachment</phrase></textobject> -</mediaobject> -</screenshot> - -<para> -When this dock is visible, it will display the custom properties of the selected object, whether it is an account, an operation, category, unit... -</para> -</sect2> - -<sect2 id="search"> -<title>Search as you type</title> -<para> -In all &appname; views, you will find a "filter" field allowing you to search as you type in the view: -<itemizedlist> -<listitem><para>In an operation view, it will filter the operations containing the text entered, whatever the column (date, payee, category, comment...)</para></listitem> -<listitem><para>In an accounts view, it will filter the accounts containing the text entered, whatever the column (bank, account name, number...)</para></listitem> -<listitem><para>In a report view, it will redraw the graph based on this filter</para></listitem> -<listitem><para>In a... well, you get the idea, right?</para></listitem> -</itemizedlist> -</para> -</sect2> - -</sect1> - -<sect1 id="import"> -<title>Import Files</title> - -<para>&appname; is able to import files from other financial applications or from your bank. So, whether you're coming from another application, or simply don't want to go through the hassle of manually entering your operations, &appname; has a fast lane for you.</para> - -<sect2 id="supported_file_formats"> -<title>Supported File Formats</title> - -<para>One the following formats may be used:</para> - -<variablelist> -<varlistentry> - <term>OFX</term> - <listitem><para>Open Financial eXchange. It is a well defined & documented format, that &appname; imports using a third party library (libofx). This is the recommended format for imports.</para></listitem> -</varlistentry> -<varlistentry> - <term>QFX</term> - <listitem><para>QFX is a customization of OFX from the commercial software <trademark>Quicken</trademark>.</para></listitem> -</varlistentry> -<varlistentry> - <term>QIF</term> - <listitem><para><trademark>Quicken</trademark> Import File. Maybe the most common financial file format. However, it has some rather annoying limitations, like not giving the unit for operation, or no strict date formatting.</para></listitem> -</varlistentry> -<varlistentry> - <term>CSV</term> - <listitem><para>Comma Separated Value. Though not strictly a financial format, it is quite often available as an export format from banks or other applications, mostly because it is so easy to use in a spreadsheet.</para></listitem> -</varlistentry> -</variablelist> - -</sect2> - -<sect2 id="csv_specificities"> -<title>CSV Specificities</title> -<para>Since CSV has no strictly defined format, there is no way for &appname; to know where it is supposed to find dates, categories, values... To do so, &appname; expects your CSV file to contain some headers indicating what is the column for. The file must contain at least columns "Date" and "Amount".</para> -<para><!-- TODO: Put a link to the settings documentation section -->You may manually define how the file is set up (&ie; ignoring the headers in the file) by setting them in the application settings (<menuchoice><guimenu>Settings</guimenu> <guimenuitem>Configure &appname;</guimenuitem></menuchoice>), in the <guilabel>Import / Export</guilabel> section.</para> -</sect2> - -<sect2 id="import_operations"> -<title>Importing Operations</title> -<para>One of &appname; principles is to avoid multiple wizards or dialog boxes. This is especially true for imports, where other applications require many information from the user. Not &appname;. When selecting <menuchoice><guimenu>File</guimenu><guimenuitem>Import</guimenuitem></menuchoice>, you will be asked to select the files (yes you can import many at once), and that's it. Behind the scene, &appname; will find the file format and apply the relevant import mode.</para> - -<sect3 id="import_account"> -<title>Account</title> -<para>One thing that might surprise you is that you won't be asked in which account the operations should be imported. That is because &appname; will read the account number in the file, and will associate imported operations to that account.</para> -<para>If no account exists with this account number, or if the file does not contain this information, &appname; will use the file name as the account number.</para> -<para>If there is still no account with that number, &appname; will create a new account having the filename as the account number, and import all operations in that account. You will then be free to either rename the account, perform a <link linkend="mass_update">mass update</link>, or use <link linkend="search_and_process">Search & Process</link> to associate imported operations to an existing account.</para> -</sect3> - -<sect3 id="import_unit"> -<title>Unit</title> -<para>If no unit is specified in the imported file (which is often the case for QIF & CSV), &appname; will assume the unit is your <link linkend="unit_types">primary currency</link>. If this was not the case, use the <link linkend="search_and_process">Search & Process</link> function to correct.</para> -</sect3> - -<sect3 id="import_date"> -<title>Date</title> -<para>Sometimes, the input files will not have dates formatted as per your country's customs (it may happen in QIF or CSV, OFX has an imposed date format). &appname; will do its best to detect the format.</para> -</sect3> - -<sect3 id="import_status"> -<title>Import Status</title> -<para>Imported Operations have a specific status. Right after import, they are considered as "Imported, not yet validated". The idea here is that you may want to check if the import went as expected, so you need to identify quickly those operations. As per default settings, those operations will also appear in blue.</para> -<tip><para>If you don't want this behaviour, you can set the option <guilabel>Automatic Validation after Import</guilabel> in the application's <!-- TODO: Put a link here-->settings.</para></tip> -</sect3> - - -</sect2> - -<sect2 id="merge_operations"> -<title>Merge operations after import</title> -<para>There are some cases where you have manually entered an operation, but also imported it from your bank. In such cases, the operation will appear twice in the list.</para> -<para>You may merge these two operations by selecting them, and select <guimenuitem>Merge operations</guimenuitem> in the contextual menu. This will add all information you manually entered to the imported operation, and will delete the manually entered operation.</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="merge_operations_menu.png"/></imageobject> -</mediaobject> -</screenshot> - -</sect2> - -</sect1> - -<sect1 id="export"> -<title>Export</title> -<para>There are different ways of exporting data with &appname; depending on what you intend to do.</para> - -<sect2 id="export_file"> -<title>Export all your data in one file</title> -<para>Using the menu <menuchoice><guimenu>File</guimenu> <guimenuitem>Export</guimenuitem></menuchoice>, a CSV or QIF file will be created, containing all operations in the current document. This is the option to choose if you need to export your data to another application.</para> -</sect2> - -<sect2 id="export_table"> -<title>Export a specific table</title> -<para>All <link linkend="tables">tables</link> in &appname; can be exported, either in CSV, PDF, or TXT format. </para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="export_table_menu.png"/></imageobject> -</mediaobject> -</screenshot> - -<para>This works wherever a table is displayed, so you can use it to export whatever tabular information you need.</para> - -</sect2> - -<sect2 id="export_graph"> -<title>Export Graph</title> -<para>&appname; allows you exporting a <link linkend="reports">graph</link>, either in PDF, SVG or just any image format supported by &kde; (PNG, JPG, GIF, TIFF...). You can do so by right-clicking on the graph, and choosing the <guimenu>Export</guimenu> option.</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="export_graph_menu.png"/></imageobject> -</mediaobject> -</screenshot> - - -</sect2> - -</sect1> - -<sect1 id="dashboard"> -<title>Dashboard</title> -<para>The Dashboard is a &appname; plugin that displays global information about your financial situation.</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="dashboard.png"/></imageobject> -</mediaobject> -</screenshot> - -<para>You can configure it using icons on the top right hand, or by right clicking and select or remove the blocks to display. Some blocks may also be configured by right clicking on their title.</para> - -</sect1> - -<sect1 id="accounts"> -<title>Bank & Accounts</title> -<para>This is the plugin dedicated to managing your different accounts.</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="bank_accounts.png" format="PNG"/></imageobject> -<textobject><phrase>The Bank & Accounts view</phrase></textobject> -</mediaobject> -</screenshot> - - -<sect2 id="account_properties"> -<title>Account properties</title> -<para>A &appname; account has the following properties: - -<variablelist> -<varlistentry> -<term>Bank</term> -<listitem><para>You may choose a bank from the drop down box (containing the list of known banks for your country), or type the name if your bank is not in the list (If the list is empty, the &appname; team has not yet been provided this information. You may contact us to help!).</para></listitem> -</varlistentry> -<varlistentry> -<term>Account</term> -<listitem><para>The name you want to use for this account.</para></listitem> -</varlistentry> -<varlistentry> -<term>Type</term> -<listitem><para>The account type can be -<itemizedlist> -<listitem><para>Current</para></listitem> -<listitem><para>Credit Card</para></listitem> -<listitem><para>Investment</para></listitem> -<listitem><para>Assets</para></listitem> -<listitem><para>Other</para></listitem> -</itemizedlist> - -The Account type is not used for any kind of processing at the moment, it is just there for information. -</para></listitem> -</varlistentry> -<varlistentry> -<term>Bank Number</term> -<listitem><para>The identification number of your bank</para></listitem> -</varlistentry> -<varlistentry> -<term>Agency Number</term> -<listitem><para>The identification number of the agency</para></listitem> -</varlistentry> -<varlistentry> -<term>Account Number</term> -<listitem><para>The identification number of the account</para></listitem> -</varlistentry> -<varlistentry> -<term>Address</term> -<listitem><para>The address of the agency</para></listitem> -</varlistentry> -<varlistentry> -<term>Comment</term> -<listitem><para>Anything you want !</para></listitem> -</varlistentry> -</variablelist> - -<!--Shall we talk about the "RIB key" here ? Or maybe this is strictly french, and should be removed from skrooge ?--> - -</para> -</sect2> - -<sect2 id="accounts_list"> -<title>Accounts list</title> -<para>The accounts list takes the form of a table with one line per account. In addition to the <link linkend="account_properties">properties</link> you defined for this account, &appname; displays the following columns:</para> - -<variablelist> -<varlistentry> -<term>Amount</term> -<listitem><para>The amount available on the account, considering all operations registered, whether they are validated or not.</para></listitem> -</varlistentry> -<varlistentry> -<term>Checked</term> -<listitem><para>The amount of all validated operations. This should be equal to the amount written on your last account's position from your bank.</para></listitem> -</varlistentry> -<varlistentry> -<term>Foreseen</term> -<listitem><para>The difference between the two previous columns</para></listitem> -</varlistentry> -<varlistentry> -<term>Number of operations</term> -<listitem><para>The total number of operations made on this account</para></listitem> -</varlistentry> -</variablelist> - -<para>As with all &appname; list views, you can fully <link linkend="tables">customize the table appearance</link>.</para> - -</sect2> - -<sect2 id="create_account"> -<title>Create an Account</title> -<para>The account creation is done using the edition panel below the accounts list.</para> - -<para> -To create an account, enter its attributes (the mandatory ones are in bold), and click on <guibutton>Add</guibutton>. &appname; doesn't need you to provide the initial amount of this account. In order to set the initial amount of the account, create an operation corresponding to the initial amount.</para> -</sect2> - -<sect2 id="modify_account"> -<title>Modify an Account</title> -<para>To modify an account, select it, modify its attributes, and click on "Modify"</para> -</sect2> - -<sect2 id="delete_account"> -<title>Delete Accounts</title> -<para>To delete accounts, select them and either press <keycap>Delete</keycap> on the keyboard, use the contextual menu, or use the icon in the toolbar.</para> -<warning><para>Upon deleting an account, all operations belonging to this account will also be deleted ! (But you can always <link linkend="undo_redo">undo</link> the deletion)</para></warning> -</sect2> - -</sect1> - - - -<sect1 id="operations"> -<title>Operations</title> -<para>Operations are, well, any operation you make on an account, be it an expense, income, transfer, sales, purchase... This is where you will probably spend most of your time when using &appname;.</para> - -<para>In order to enter operations, you need to have at least one <link linkend="accounts">account</link> created.</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="operations.png" format="PNG"/></imageobject> -<textobject><phrase>The operations view</phrase></textobject> -</mediaobject> -</screenshot> - -<sect2 id="operation_properties"> -<title>Operation Properties</title> - -<variablelist> -<varlistentry> -<term>Account</term> -<listitem><para>The account the operation is made on. Select it from the list of existing accounts.</para></listitem> -</varlistentry> -<varlistentry> -<term>Date</term> -<listitem><para>The date when the operation was made. A calendar is accessible using the down arrow right of the field.</para></listitem> -</varlistentry> -<varlistentry> -<term id="quantity_field">Amount</term> -<listitem> -<para>The amount is how much you spent or earned with this operation. &appname; requires you enter this in two separate fields: Quantity, and Unit.</para> -<para>The quantity is negative for an expense (-30, for example), and positive for an income (+250, or simply 250). This field acts as a calculator, &ie; entering an expression such as 10 + 3.23*2 will result in the field containing 16.46.</para> -<para>&appname; requires you to enter the <link linkend="units">unit</link> because an operation is not necessarily made in your main currency. For example, when you buy or purchase shares, the unit of the operation is the share unit.</para> -</listitem> -</varlistentry> -<varlistentry> -<term>Payee</term> -<listitem><para>Who did you pay this to, or who gave you the money.</para></listitem> -</varlistentry> -<varlistentry> -<term>Mode</term> -<listitem> -<para>What was the payment mode used for this operation. Something in the line of Credit Card, Cheque, Deposit... You name it !</para> -<para>Associated with the operation mode, is an optional number. It is mostly used to enter the check number, or a transfer number.</para> -</listitem> -</varlistentry> -<varlistentry> -<term>Category</term> -<listitem> -<para>Which <link linkend="categories">Category</link> this operation belongs to. If you need to affect more than one category to an operation, use the <link linkend="split_operation">split</link> mode.</para> -<para>You can either choose an existing category, or type a new one. In this case, &appname; will create it for you along with the operation.</para> -<para>The separator between a parent category and its children is the > character. If you type Clothes > Shoes, &appname; will create the category Clothes if it doesn't exist yet, and its child category Shoes.</para> -<para>Of course, you may create entire category trees, such as Transport > Car > Fuel > Unleaded, &appname; will happily create all the hierarchical structure.</para> -</listitem> -</varlistentry> -<varlistentry> -<term>Comment</term> -<listitem><para>Any comment you'd like.</para></listitem> -</varlistentry> -<varlistentry> -<term>Tracker</term> -<listitem><para>If you want to track refund for this operation, enter the name of the <link linkend="trackers">Tracker</link> here. If you need to affect more than one tracker to an operation, use the <link linkend="split_operation">split</link> mode.</para></listitem> -</varlistentry> -</variablelist> - -</sect2> - -<sect2 id="operations_list"> -<title>Operations list</title> -<para>The accounts list takes the form of a table with one line per account. In addition to the <link linkend="account_properties">properties</link> you defined for this account, &appname; displays the following columns:</para> - -<variablelist> -<varlistentry> -<term>Status</term> -<listitem><para>This check box indicates whether this operation has been confirmed during account reconciliation. A half-greyed check box means the reconciliation is ongoing.</para></listitem> -</varlistentry> -<varlistentry> -<term>Bookmark</term> -<listitem><para>Mark this operation as Bookmarked, a synonym for Favorite.</para></listitem> -</varlistentry> -<varlistentry> -<term>Scheduled</term> -<listitem><para>When an operation is scheduled, this column shows a chronometer icon.</para></listitem> -</varlistentry> -</variablelist> - -<para>These columns also have some specificities:</para> - -<variablelist> -<varlistentry> -<term>Mode</term> -<listitem><para>When the operation is part of a <link linkend="transfer">transfer</link>, the mode is preceded by a double arrow icon.<!-- Insert the icon here --></para></listitem> -</varlistentry> -<varlistentry> -<term>Category</term> -<listitem><para>When the operation is <link linkend="split_operation">split</link>, the category is preceded by a triple arrow icon.<!-- Insert the icon here --></para></listitem> -</varlistentry> -</variablelist> - -<para>As with all &appname; list views, you can fully <link linkend="tables">customize the table appearance</link>.</para> - -</sect2> - -<sect2 id="standard_operation"> -<title>Create an operation</title> -<para>To create a standard operation, you may use the <guibutton>Clear button</guibutton> to clear all fields and start a new operation from scratch. You can then fill its attributes (manually or using <link linkend="fast_edition">fast edition</link>), and click on <guibutton>Add</guibutton>.</para> -<para>You may also select a similar operation from the existing operations, modify what needs to be changed, and then click on <guibutton>Add</guibutton>.</para> -</sect2> - - -<sect2 id="split_operation"> -<title>Split Operation</title> -<para>A split operation is an operation that has several categories, comments or trackers. You switch to the split operation edition mode using the <guibutton>Split Button</guibutton> at the bottom of &appname; window. When switching into the split operation edition mode, the fields Category, Comment and Tracker are replaced by a table.</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="split_operation.png" format="PNG"/></imageobject> -<textobject><phrase>The split operation edition panel.</phrase></textobject> -</mediaobject> -</screenshot> - -<para>To edit a cell in this table, double click on it.</para> - -<para>You can add as many lines in this table as you need. When changing the quantity in a line, &appname; will compute the difference with the operation global quantity, and display the remaining quantity in the last table line. If you changed the quantity in the last line, a new line will be added with the remaining quantity.</para> - -<para>The fields here have the same behaviour as in the standard operation edition mode:</para> - -<itemizedlist> -<listitem><para>The Category is a drop down box of existing categories. You can add a new category structure, &appname; will create it when creating the operation.</para></listitem> -<listitem><para>The Amount <link linkend="quantity_field">acts as a calculator</link>.</para></listitem> -<listitem><para>The Tracker is a drop down box of existing trackers. You can add a new tracker, &appname; will create it when creating the operation.</para></listitem> -</itemizedlist> - -</sect2> - - -<sect2 id="transfer"> -<title>Transfer</title> -<para>A transfer operation is effectively a dual operation: when creating a transfer, &appname; will create two operations of opposite amounts (one positive, the other negative), on two different accounts. The attributes to provide here are slightly different from a standard operation:</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="transfer_operation.png" format="PNG"/></imageobject> -<textobject><phrase>The transfer operation edition panel.</phrase></textobject> -</mediaobject> -</screenshot> - -<para>Instead of a Payee field, you will find a "To Account" list where you should select the account receiving the money.</para> - -<para>Since a transfer means "Take some money from account A and put it account B", if you put a sign in the quantity field (+ or -), it will be ignored. The operation for account A will always be negative, positive for account B.</para> - -<para>At the moment, once the operations are created they bear no relationship with each other: any modification on one of them will not be reflected on the other one.</para> - -</sect2> - -<sect2 id="shares"> -<title>Shares</title> -<para>&tbw; (this author has absolutely no knowledge of shares / stocks principles ;-D... You may help !)</para> -</sect2> - -<sect2 id="schedule_operation"> -<title>Schedule Operations</title> - -<para>If an operation is known to be repeated on a regular basis, you may want &appname; to automatically enter it for you in the list of operations. This can be done by scheduling an operation, using the <guibutton>Schedule button <inlinemediaobject><imageobject><imagedata fileref="schedule_operation.png"/></imageobject></inlinemediaobject></guibutton>.</para> - -<para>The default scheduling parameters are:</para> -<itemizedlist> -<listitem><para> Repeat every month</para></listitem> -<listitem><para>Remind me 5 days before term</para></listitem> -<listitem><para>Automatically write on term</para></listitem> -</itemizedlist> - -<para>You may change the default parameters in &appname; settings.</para> -<para>You may also change each scheduled operation parameters in the <link linkend="scheduled">Scheduled plugin</link>.</para> -<para>&appname; uses values from the last entry of the scheduled operation for writing the next one. If you increase for example the amount of your monthly contribution to the &kde; effort from 100$ to 200$, next operations automatically written by &appname; will have an amount of 200$.</para> - -</sect2> - -<sect2 id="fast_edition"> -<title>Fast Edition</title> - -<para>Whatever the chosen edition mode, there is a nifty function called Fast Edition that may speed up the work while creating new operations. It will fill the operation's attributes based on previously entered operations. Enter a value in any field of the editor, and press <keycap>F10</keycap>, or click on the <guibutton>Fast Edition Icon <inlinemediaobject><imageobject><imagedata fileref="fast_edition.png" format="PNG"/></imageobject></inlinemediaobject></guibutton> (without leaving the selected field).</para> - -<para>&appname; will look for the first (&ie; the most recent one) operation that has the same value in the same field, and fill all other fields with values from that operation. Call Fast Edition again, it will look for the next operation, and so on.</para> - -<warning> -<para>Fast Edition has no effect on the date, since it is rather unlikely that you want to create exactly the same operation, complete with the same date...</para> -<para>If you modified a field's value before calling Fast Edition, its content will not be affected. This is materialized by a small snowflake<inlinemediaobject><imageobject><imagedata fileref="frozen.png" format="PNG"/></imageobject></inlinemediaobject> appearing in the field, so you know it is "frozen".</para> -</warning> - -<para>What's different here from similar functions in other personal finances software:</para> -<itemizedlist> -<listitem><para>It is called on user demand</para></listitem> -<listitem><para>It loops in all past operations with the same field value</para></listitem> -</itemizedlist> - -<para>And it even works on split operations !</para> -</sect2> - -<sect2 id="reconciliation"> -<title>Reconciliation</title> -<para>Reconciliation is the process by which you ensure that all operations are aligned with your account's position from the bank point of view. It will involve you, your account's position, and a pen. Reconciliation can happen only for an account at one point in time.</para> -<para>In the operation view, select the account you wish to reconciliate from the drop down box. Switch into reconciliation mode using the <guibutton>Switch Information button <inlinemediaobject><imageobject><imagedata fileref="switch_information.png" format="PNG"/></imageobject></inlinemediaobject></guibutton> below the operations table.</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="reconciliation_information.png" format="PNG"/></imageobject> -<textobject><phrase>The reconciliation mode information.</phrase></textobject> -</mediaobject> -</screenshot> - -<para>Enter the position of your account as provided by your bank in the dedicated field. Now, you can proceed to checking in &appname; every operation that appears on the account recordings. For the moment, the check box for this operation will appear half greyed, until you really validate the reconciliation.</para> - -<para>As you check operations, you will see &appname; display in the information zone:</para> -<itemizedlist> -<listitem><para>Delta: the difference between the previously entered account position and the sum of all checked operations</para></listitem> -<listitem><para>Expenditure:the total amount of expenses</para></listitem> -<listitem><para>Income: the total amount of incomes</para></listitem> -</itemizedlist> - -<para>This may be useful when trying to spot operations you may have forgot to enter in &appname;. When all relevant operations have been checked, Delta is equal to 0, and the <guibutton>Validate checked operations button <inlinemediaobject><imageobject><imagedata fileref="validate.png" format="PNG" /></imageobject></inlinemediaobject></guibutton> is activated. Click on this button to validate the reconciliation: all checked operations are now validated.</para> - -<para>If the option <guibutton>Hide checked operations</guibutton> is selected, all these operations will now be hidden.</para> - -</sect2> - -<sect2 id="templates"> -<title>Template Operations</title> -<para>&appname; allows you creating template operations, &ie; operations that can be reused whenever you need it. For example, imagine are used to renting a DVD to watch at home. The operation is always the same :</para> - -<itemizedlist> -<listitem><para>Amount: -4.99</para></listitem> -<listitem><para>Mode: Credit Card</para></listitem> -<listitem><para>Payee: Acme Video</para></listitem> -<listitem><para>Category: Leisure > Video</para></listitem> -</itemizedlist> - -<para>However, you cannot make it a recurrent operation, because you rent a DVD when you feel like it, not every week. The idea behind template operations is that it gives you a basic skeleton that can be quickly inserted in your operations list.</para> - -<para>Since Template operations are just another kind of operations, you can access them through the operations tab, using the button above the edition panel:</para> - -<screenshot> -<mediaobject> -<imageobject><imagedata fileref="template_button.png" format="PNG"/></imageobject> -<textobject><phrase>Switching between templates and operations.</phrase></textobject> -</mediaobject> -</screenshot> - -<para>Creating a template is strictly equal to creating an operation, by defining its attributes. Note that you can also create a template from an existing operation (bring up the contextual menu on an operation). In this case, the template will have the same attributes as the operation.</para> - -<para>To use a template and create a new operation from it, double click on it. A new operation will be created with the same attributes as the template, at the current date. You can then modify its attributes if needed.</para> - -<para>Templates can also be <link linkend="scheduled">scheduled.</link></para> - -</sect2> - -</sect1> - -<sect1 id="scheduled"> -<title>Scheduled</title> -<para>This plugin shows you the list of all scheduled operations.</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="scheduled.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -<para>This is where you can set up each scheduled operation to have its own parameters.</para> - -<variablelist> -<varlistentry> -<term>Next Occurrence</term> -<listitem><para>Displayed for information, but can also be used to force the date of the next occurrence.</para></listitem> -</varlistentry> -<varlistentry> -<term>Once every</term> -<listitem><para>You can set an operation to be repeated over a given number of days, months, or years.</para></listitem> -</varlistentry> -<varlistentry> -<term>Number of Occurrences</term> -<listitem><para>If the occurrence has a limited number of occurrences, you can check this option and define either the number of remaining occurrences, or the date of the last occurrence.</para></listitem> -</varlistentry> -<varlistentry> -<term>Remind me</term> -<listitem><para>If you want &appname; to display a notification to remind you about the upcoming scheduled operation, you may check this option and set the number of days before term when the warning shall occur.</para></listitem> -</varlistentry> -<varlistentry> -<term>Automatically Write</term> -<listitem><para>If you want &appname; to automatically write the upcoming scheduled operation, you may check this option and set the number of days before term when it will be written.</para></listitem> -</varlistentry> -</variablelist> - -<para>Double clicking on a scheduled operation will display the list of operations already registered for this scheduled operation in a new tab.</para> - -<sect2 id="scheduled_operations"> -<title>Scheduled Operations</title> - -<para>If you schedule an operation, it will be used as a reference when inserting the next occurrence. Let us see an example, with this operation:</para> - -<table> -<title></title> -<tgroup cols="4"> -<thead> -<row> -<entry>Date</entry> -<entry>Payee</entry> -<entry>Category</entry> -<entry>Amount</entry> -</row> -</thead> -<tbody> -<row> -<entry>20/06/2009</entry> -<entry>&kde;</entry> -<entry>Donations > Open Source</entry> -<entry>20?</entry> -</row> -</tbody> -</tgroup> -</table> - -<para>Now, if you schedule this operation, it will be written exactly like this for the next occurrence:</para> - -<table> -<title></title> -<tgroup cols="4"> -<thead> -<row> -<entry>Date</entry> -<entry>Payee</entry> -<entry>Category</entry> -<entry>Amount</entry> -</row> -</thead> -<tbody> -<row> -<entry>20/06/2009</entry> -<entry>&kde;</entry> -<entry>Donations > Open Source</entry> -<entry>20?</entry> -</row> -<row> -<entry>20/07/2009</entry> -<entry>&kde;</entry> -<entry>Donations > Open Source</entry> -<entry>20?</entry> -</row> -</tbody> -</tgroup> -</table> - -<para>If you change something in the last occurrence, it will become the new reference for the next occurrence. For example, if you raise your monthly contribution to &kde; to 25? in July, the next occurrence will also be with an amount of 25?:</para> - -<table> -<title></title> -<tgroup cols="4"> -<thead> -<row> -<entry>Date</entry> -<entry>Payee</entry> -<entry>Category</entry> -<entry>Amount</entry> -</row> -</thead> -<tbody> -<row> -<entry>20/06/2009</entry> -<entry>&kde;</entry> -<entry>Donations > Open Source</entry> -<entry>20?</entry> -</row> -<row> -<entry>20/07/2009</entry> -<entry>&kde;</entry> -<entry>Donations > Open Source</entry> -<entry>25?</entry> -</row> -<row> -<entry>20/08/2009</entry> -<entry>&kde;</entry> -<entry>Donations > Open Source</entry> -<entry>25?</entry> -</row> -</tbody> -</tgroup> -</table> - -<para>All in all, a scheduled operation is a dynamic object, where the last occurrence is the reference. But maybe you'd like all occurrences to be static, &ie; the same values are always inserted for each new occurrence ? Enter <link linkend="scheduled_templates">Scheduled Templates</link>.</para> - -</sect2> - - -<sect2 id="scheduled_templates"> -<title>Scheduled Templates</title> - -<para><link linkend="templates">Templates</link> are some sort of reference operations. When scheduling a template, every new occurrence will be exactly equal to the template. Let's reuse our <link linkend="schedule_operation">previous chapter</link> example, by creating a template like this:</para> - -<table> -<title></title> -<tgroup cols="4"> -<thead> -<row> -<entry>Date</entry> -<entry>Payee</entry> -<entry>Category</entry> -<entry>Amount</entry> -</row> -</thead> -<tbody> -<row> -<entry>20/06/2009</entry> -<entry>&kde;</entry> -<entry>Donations > Open Source</entry> -<entry>20?</entry> -</row> -</tbody> -</tgroup> -</table> - -<para>The next occurrence will be:</para> - - -<table> -<title></title> -<tgroup cols="4"> -<thead> -<row> -<entry>Date</entry> -<entry>Payee</entry> -<entry>Category</entry> -<entry>Amount</entry> -</row> -</thead> -<tbody> -<row> -<entry>20/06/2009</entry> -<entry>&kde;</entry> -<entry>Donations > Open Source</entry> -<entry>20?</entry> -</row> -<row> -<entry>20/07/2009</entry> -<entry>&kde;</entry> -<entry>Donations > Open Source</entry> -<entry>20?</entry> -</row> -</tbody> -</tgroup> -</table> - -<para>Now change your July contribution to &kde; to 25?. Because you have scheduled a template with 20? as amount, the next occurrence will also have an amount of 20?:</para> - -<table> -<title></title> -<tgroup cols="4"> -<thead> -<row> -<entry>Date</entry> -<entry>Payee</entry> -<entry>Category</entry> -<entry>Amount</entry> -</row> -</thead> -<tbody> -<row> -<entry>20/06/2009</entry> -<entry>&kde;</entry> -<entry>Donations > Open Source</entry> -<entry>20?</entry> -</row> -<row> -<entry>20/07/2009</entry> -<entry>&kde;</entry> -<entry>Donations > Open Source</entry> -<entry>25?</entry> -</row> -<row> -<entry>20/08/2009</entry> -<entry>&kde;</entry> -<entry>Donations > Open Source</entry> -<entry>20?</entry> -</row> -</tbody> -</tgroup> -</table> - -<para>If you need to change the monthly value, just edit the template, and all future occurrences will have the new value.</para> -</sect2> - -</sect1> - - -<sect1 id="trackers"> -<title>Trackers</title> -<para>The trackers allow you to aggregate some operations together in a group, so you can follow them more closely. This may come handy to follow expenses for which you expect a refund, or simply knowing how much you spent during your last holidays in the Bahamas.</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="trackers.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -<para>For example, imagine you have been sent to Italy by your company. Once there, you paid your hotel room: in &appname;, you can create an operation in category "Business > Travels > Hotel", and assign a tracker called "Business Travel in Italy".You can assign this tracker to all professional expenses you make there. Then, if all goes well, your company pays you back for all these these, and you can create an income operation, and also affect it to the "Business Travel in Italy" tracker.</para> -<para>By affecting trackers to operations that shall be reimbursed, you are able to follow completion of the reimbursement.</para> -<para>This, of course, works also the other way round: if someone lends you some money, you are able to monitor how much you still have to reimburse.</para> -<para>Double clicking on a tracker in the track view will open a new tab containing all operations attached to this tracker.</para> - -<sect2 id="close_tracker"> -<title>Close Tracker</title> - -<para>When you no longer need the tracker, for example because it has been fully reimbursed, you may simply delete it. Doing, this, however, will loose all information you have entered, and that may be of interest for future reference.</para> -<para>A cleaner solution is to close the tracker: when a tracker is closed, it can be easily hidden from the trackers view, using the dedicated option.</para> -</sect2> - -</sect1> - - -<sect1 id="categories"> -<title>Categories</title> -<para>The Categories view allow you to browse the categories tree.</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="categories.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -<para>In addition to the name of categories, the table also shows: </para> - -<variablelist> -<varlistentry> -<term>Amount</term> -<listitem><para>The sum of all operations in this category.</para></listitem> -</varlistentry> -<varlistentry> -<term>Number of Operations</term> -<listitem><para>The number of operations in this category.</para></listitem> -</varlistentry> -<varlistentry> -<term>Amount (Cumulative)</term> -<listitem><para>The sum of all operations in this category and children categories (down to the last level).</para></listitem> -</varlistentry> -<varlistentry> -<term>Number of Operations (Cumulative)</term> -<listitem><para>The number of operations in this category and children categories (down to the last level).</para></listitem> -</varlistentry> -</variablelist> - -<para>Double clicking on a line in this table will open the list of all operations in this category in a new tab.</para> - -<warning><para>When deleting a category, all operations attached to it will have their category deleted, hence will not have any category attached</para></warning> - -</sect1> - - -<sect1 id="reports"> -<title>Reports</title> -<para>&appname; allows you to build highly customized reports, for a deep analysis of your financial status.</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="reports.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -<para>A report is composed of a table (on the left) containing all data used to draw the graph (on the right). The table can be filtered using the dedicated field above, causing the graph to be redrawn with filtered data.</para> - -<para>You can choose to display only the table, only the graph, or both.</para> - - -<sect2 id="setup_report"> -<title>Set up report</title> - -<sect3 id="report_representation"> -<title>Representation</title> -<variablelist> -<varlistentry> -<term>Table Only</term> -<listitem><para>Display only the table, and hide the graph.</para></listitem> -</varlistentry> -<varlistentry> -<term>Graph Only</term> -<listitem><para>Display only the graph, and hide the table.</para></listitem> -</varlistentry> -<varlistentry> -<term>Both</term> -<listitem><para>Display the table and the graph.</para></listitem> -</varlistentry> -</variablelist> -</sect3> - -<sect3 id="report_data"> -<title>Data</title> -<para>This is where you choose what is the data to be present in the report. Select what will be shown in lines and in columns, and the mode of computation. There are two distinct values for the mode:</para> -<variablelist> -<varlistentry> -<term>Sum</term> -<listitem> -<para>In this mode, the total amount of operations for each month will be computed. If you selected "category" in line, and "month" in column, this will compute the total amount of operations for each category and for every month.</para> -</listitem> -</varlistentry> -<varlistentry> -<term>History</term> -<listitem> -<para>If we reuse our previous example ("category" in line, "month" in column), we will have here a cumulated sum, &ie; for each month, we will compute the total amount of operations up to this month, for each category.</para> -<para>As a hand on example, this author uses this mode to draw the evolution of his accounts balance by setting "Accounts" for Lines, and "Month" for Columns.</para> -</listitem> -</varlistentry> -</variablelist> - -<para>For lines and columns, it is possible to expand the level of data presented using the <guibutton>plus</guibutton> icon <inlinemediaobject><imageobject><imagedata fileref="plus.png"/></imageobject></inlinemediaobject> right of the field. Use this to show subcategories in the report.</para> -</sect3> - -<sect3 id="report_dates"> -<title>Dates</title> -<para>Use this to specify the date range for your report. You can use several ways to specify the date range, that should cover pretty much every possible date range you need.</para> -</sect3> - -<sect3 id="report_operation_types"> -<title>Operation Types</title> -<para>Select the type of operations you want to include in your report. For example, if you want to draw a graph showing your expenses distribution per category, you probably do not want to include "Incomes" to your report.</para> -</sect3> - -</sect2> - -<sect2 id="graph_types"> -<title>Graph Types</title> - -<para>Once everything is set up to your needs, you should select the graph appearance using the drop down box below the graph. To better understand the differences between each type, let us build a report showing expenses per category (lines) and month (columns):</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="report_table.png"/> -</imageobject> -</mediaobject> -</screenshot> - -<sect3 id="stack"> -<title>Stack</title> -<para>One bar per line, columns stacked.</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="stack.png"/> -</imageobject> -</mediaobject> -</screenshot> - -<para>The second bar (yellowish) shows category "Security", all months stacked up.</para> - -</sect3> - -<sect3 id="histogram"> -<title>Histogram</title> -<para>For each columns, every line has its own bar.</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="histogram.png"/> -</imageobject> -</mediaobject> -</screenshot> - -</sect3> - - -<sect3 id="line"> -<title>Line</title> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="line_graph.png"/> -</imageobject> -</mediaobject> -</screenshot> -</sect3> - -<sect3 id="point"> -<title>Point</title> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="point_report.png"/> -</imageobject> -</mediaobject> -</screenshot> -</sect3> - - -<sect3 id="pie"> -<title>Pie</title> -<para>The classical pie graph. If the selected value for column is different from "nothing", displays one pie per column.</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="pie.png"/> -</imageobject> -</mediaobject> -</screenshot> - - -</sect3> - -<sect3 id="concentric_pie"> -<title>Concentric Pie</title> -<para>This one is a bit tricky, and probably needs rework on our side. The intention is to show one ring per level of data.</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="concentric_pie.png"/> -</imageobject> -</mediaobject> -</screenshot> - -</sect3> - -</sect2> - - -<sect2 id="zoom_graph"> -<title>Zoom on graph</title> -<para>&appname; makes it possible to zoom in a graph for getting all the small details. Use the zoom control zone above the graph:</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="zoom_graph.png"/> -</imageobject> -</mediaobject> -</screenshot> - - -</sect2> - -<sect2 id="report_examples"> -<title>Report Examples</title> -<para>Here are some screenshots showing some classical report configurations. You may use them as a reference for your own reports.</para> - -<sect3 id="income_expense"> -<title>Incomes and Expenses</title> -<para>For each month, compare the total amount of incomes versus the total amount of expenses. Incomes are in blue, expenses in yellow.</para> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="incomes_expenses.png"/> -</imageobject> -</mediaobject> -</screenshot> -</sect3> - -<sect3 id="balance_evolution"> -<title>Balance Evolution</title> -<para>Show the evolution of the final balance on a monthly basis.</para> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="balance_evolution.png"/> -</imageobject> -</mediaobject> -</screenshot> -</sect3> - -<sect3 id="category_distribution"> -<title>Incomes and Expenses</title> -<para>Display the distribution of expenses per category for the previous month.</para> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="category_distribution.png"/> -</imageobject> -</mediaobject> -</screenshot> -</sect3> - - -</sect2> - -<sect2 id="going_deeper"> -<title>Going Deeper</title> -<para>So you know you can make a deep analysis of your finances thanks to reports. But how deep is deep ? Well, that's even deeper than you imagined... If you're interested, read the <link linkend="holidays_expenses_analysis">hands on exercise</link> analysing this author's expenses during its holidays :)</para> -</sect2> - - -</sect1> - - -<sect1 id="monthly_report"> -<title>Monthly Report</title> - -<para>This plugin shows an overview of your financial situation for a chosen month.</para> - -<!-- Sub par compared to the quality of other plugins and functionality partly covered by dashboard... Shall we deprecate it and extend dashboard instead ?--> - -</sect1> - -<sect1 id="units"> -<title>Units</title> -<para>A unit is anything you can express an operation in. In most cases, this is a currency, but it can also be a stock, or even a car or a house. A unit has different values over time, its value being express in another unit. Example: the ACME stock is worth 31.2$ on January 2009.</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="units.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -<sect2 id="edit_units"> -<title>Edit Units</title> -<para>Editing units can be done in different ways:</para> -<variablelist> -<varlistentry> -<term>Standard</term> -<listitem><para>This mode allows you choosing amongst the set of predefined units which one you would like to add to the current document.</para></listitem> -</varlistentry> -<varlistentry> -<term>Manual</term> -<listitem><para>This mode allows you creating your own unit. Parameters to be provided are:</para> - <itemizedlist> - <listitem><para>Name: the comprehensive unit name.</para></listitem> - <listitem><para>Symbol: the unit symbol, displayed in most tables and drop down boxes.</para></listitem> - <listitem><para>Type: see <link linkend="unit_types">Unit Types</link>.</para></listitem> - <listitem><para>Reference Unit: the (other) unit used to compute value of the (current) unit. For example, if you have EADS shares, and want to see their value in euros, you should select ? as reference unit in EADS unit.</para></listitem> - <listitem><para>Country</para></listitem> - <listitem><para>Internet Code: The yahoo Internet code for this unit. If given this code, &appname; is able to download the unit values from yahoo.</para></listitem> -</itemizedlist> -</listitem> -</varlistentry> -<varlistentry> -<term>Values</term> -<listitem><para>This edition mode allows to download unit values from Internet, or to manually enter a unit value at a given date.</para></listitem> -</varlistentry> -</variablelist> -</sect2> - -<sect2 id="unit_types"> -<title>Unit Types</title> -<para>Even if &appname; considers just about anything as a unit, it makes a distinction depending on their type:</para> - -<variablelist> -<varlistentry> -<term>Primary Currency</term> -<listitem><para>This is the currency that will be used for displaying real operations amount.</para></listitem> -</varlistentry> -<varlistentry> -<term>Secondary Currency</term> -<listitem><para>If defined, the value in the secondary unit will be displayed upon hovering over an operation amount.</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="secondary_unit_display.png"/> -</imageobject> -</mediaobject> -</screenshot> - -</listitem> -</varlistentry> -<varlistentry> -<term>Currency</term> -<listitem><para>Any currency, with no specific role for display.</para></listitem> -</varlistentry> -<varlistentry> -<term>Share</term> -<listitem><para>This type of unit can be used for managing shares.</para></listitem> -</varlistentry> -<varlistentry> -<term>Index</term> -<listitem><para>A stock exchange index, such as the Dow Jones, Nasdaq, CAC40, SBF120...</para></listitem> -</varlistentry> -<varlistentry> -<term>Other</term> -<listitem><para>Any unit that doesn't fit in the above types.</para></listitem> -</varlistentry> - -</variablelist> - -</sect2> - -</sect1> - - -<sect1 id="search_and_process"> -<title>Search & Process</title> - -<para>This plugin allows you building complex queries to find operations, and optionally apply them some transformations. Here is a use case:</para> - -<blockquote><para><!-- Please make sure it is identical to use case in the Search & Process real case study, in appendix -->John downloads some data from his bank. The data comes, obviously, without indication on the category. In fact everything is written in the comment field. John would like some automatic way to correctly set up the category and other attributes based on the content of the comment.</para></blockquote> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="search_and_process.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -<para>So how does this work ? First, you will define a search criteria, that will give you a list of operations. Then, define the transformations to apply on these operations.</para> - -<note><para>A <link linkend="search_process_real_case">real case study</link> can be found in appendix, providing some hands on exercise for the hereabove use case.</para></note> - -<sect2 id="define_search_criteria"> -<title>Define search criteria</title> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="define_search.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -<para>Here, you can define the query for finding operations, using a combination of parameters. On the above picture, you can find a table with operation attributes for header. By editing a line, you create a new clause in the query. Each column is combined with other columns using a logical "and" :</para> -<para>(column1 and column2)</para> -<para>If you add a new line, you create another clause combine with the first line by a logical "or" :</para> -<para>[line1] or [line2].</para> - -<para>All in all, the combination of columns and lines can be read as:</para> -<para>(column1 and column3) or (column2 and column3)</para> - -<para>Of course, you can have as many lines and columns as you need in a search query.</para> - -<para>Once satisfied with a query definition, you can add it to the list of existing search criteria, or modify an existing one.</para> - -</sect2> - - -<sect2 id="view_search_result"> -<title>View search results</title> - -<para>When selecting a search query in the queries view, the number of found operations is displayed below the table:</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="preview_search_result.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - - -<para>When double-clicking on a search query in the query view, all found operations are displayed in a new tab:</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="search_result.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -</sect2> - - -<sect2 id="define_processing"> -<title>Define Processing</title> - -<para>If you need to apply some processing on all operations found, select the concerned query, and activate the process definition panel:</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="define_processing.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -<para>In this panel, you can define the transformations to perform on operations. Note that it is intentionally impossible to set an operation's amount or date in this panel.</para> - -</sect2> - - -<sect2 id="define_alarm"> -<title>Define Alarm</title> -<para>A special kind of use of the Search & Process plugin is the ability to define alarms. An alarm is basically &appname; calling your attention on some kind of event, such as your monthly budget for a category has been reached.</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="alarm.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -<para>To define an alarm, define first the search criteria giving the set of operations on which you need alert. For example, all operations in current month and in category "Clothes". Then, define the amount for which the alert shall be raised, for example 100?, and define the Alarm message that &appname; will send you when the amount is reached.</para> - -</sect2> - -</sect1> - - -</chapter> - -<chapter id="credits"> -<title>Credits and License</title> -<para> -&appname; -</para> -<para> -Program copyright 2001-2009 St?phane Mankowski -<email>stephane at miraks.com</email> -</para> -<para> -Documentation copyright 2001-2009 Guillaume DE BURE -<email>gdebure at yahoo.com</email> -</para> -<!-- TRANS:CREDIT_FOR_TRANSLATORS --> -&underFDL; -&underGPL; -</chapter> - -<appendix id="installation"> -<title>Installation</title> - -<sect1 id="getting-skrooge"> -<title>How to obtain &appname;</title> - -<para>The &appname; home page can be found at <ulink url="&homepage;">&homepage;</ulink>. Updates and news can be found there. -</para> -</sect1> - -<sect1 id="requirements"> -<title>Requirements</title> - -<para>In order to successfully use &appname;, you need &kde; 4, qt-sqlite3, libofx, and qca. -</para> - -</sect1> - -<sect1 id="Installation"> -<title>Installing &appname;</title> - -<para>It is recommended that you install &appname; using your distribution packaging system. If for any reason you would like to compile and install &appname; by yourself, this chapter contains all necessary steps. -</para> - -<sect2 id="prerequisites"> -<title>Prerequisites</title> -<para> -&appname; uses several components you need to install in order to compile it:</para> -<itemizedlist> -<listitem><para>sqlite3: a lightweight SQL database. &appname; files are sqlite databases.</para></listitem> -<listitem><para>libofx: a library to handle OFX file format. OFX is a standard &XML; format for financial exchanges.</para></listitem> -<listitem><para>qca: &Qt; Cryptographic Architecture. Used for password protection.</para></listitem> -</itemizedlist> -</sect2> - -<sect2 id="compilation"> -<title>Compilation and Installation</title> - -<para> -In order to compile and install &appname; on your system, type the following -in the base folder of the archive, where the third step must be done as -root if you are installing in a system folder: - -<screen width="40"> -<prompt>$</prompt> <userinput>cmake . <option>-DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`</option></userinput> -<prompt>$</prompt> <userinput>make</userinput> -<prompt>$</prompt> <userinput>make install</userinput> -</screen> -</para> -<para>Since &appname; uses <command>cmake</command> you should have no -trouble compiling it. Should you run into problems please report them to the -authors.</para> -</sect2> - -</sect1> - -</appendix> - - -<appendix id="search_process_real_case"> -<title>Search & Process real case study</title> - -<para>OK, we have to admit that while being quite powerful, the <link linkend="search_and_process">Search & Process</link> plugin is maybe a bit tricky to understand. Here is a small exercise that will give you a hold od it. Remember the use case for Search & Process ?</para> - -<blockquote><para><!-- Please make sure it is identical to use case in the Search & Process section -->John downloads some data from his bank. The data comes, obviously, without indication on the category. In fact everything is written in the comment field. John would like some automatic way to correctly set up the category and other attributes based on the content of the comment.</para></blockquote> - - -<para>John knows that his bank put the name of the payee in the comment field. And he wants all his payments to &kde; to be in category Donations & Open Source. We will look for all operations with the comment field containing &kde;:</para> - -<table> -<title>Search Definition</title> -<tgroup cols="1"> -<thead> -<row> -<entry>Comment</entry> -</row> -</thead> -<tbody> -<row> -<entry>contains '&kde;'</entry> -</row> -</tbody> -</tgroup> -</table> - -<para>Add this search definition to the list of existing searches using the <guibutton>Add</guibutton> button.</para> - -<para>Next we need to tell &appname; to set all operations found by this query in category Donations > Open Source. Change the Query type to Update using the drop down box, and define the transformations to apply:</para> - -<table> -<title>Update Definition</title> -<tgroup cols="2"> -<thead> -<row> -<entry>Comment</entry> -<entry>Category</entry> -</row> -</thead> -<tbody> -<row> -<entry>=''</entry> -<entry>='Donations > Open Source'</entry> -</row> -</tbody> -</tgroup> -</table> - -<tip><para>Notice that we also removed the original comment by setting it to an empty string. This is for readability sake, but you may wish to keep it for historical reasons.</para></tip> - -<para>Add this process to the previously defined search using the <guibutton>Add</guibutton> button.</para> - -<para>So far, so good. Now, let's apply the process on all imported operations not yet validated (click on the <guibutton>Apply</guibutton> button):</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="apply_process.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -<para>That's it ! If you go back to the operations view, you will notice that all concerned operations have been updated. In case anything went wrong, don't forget that <link linkend="undo_redo">Undo</link> is your friend ! Even if the process modified 2327 operations, this is still one undoable action for &appname;.</para> - -</appendix> - -<appendix id="holidays_expenses_analysis"> -<title>Deep analysis exercise: Holidays expenses</title> -<para>To illustrate the analysis capabilities of &appname;, we are going to examine this author's expenses during his holidays :).</para> - -<sect1 id="analysis_context"> -<title>Analysis Context</title> -<para>In order to understand the exercise, you need to know a few things about these holidays. They span over nearly a full month during summer 2009, and involved renting several rooms in several locations in France. There was also a fair amount of fuel, as these holidays also spanned over a rather large part of France.</para> -</sect1> - -<sect1 id="analysis_data_organisation"> -<title>Data Organisation</title> -<para>The author carefully entered his operations, by affecting them categories, but also by adding them to the "Holidays, summer 2009" <link linkend="trackers">tracker</link>. Categories often have subcategories, such as "Transport > Car > Fuel", allowing for this detailed analysis.</para> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="analysis_operations_view.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> -</sect1> - -<sect1 id="analysis_total_cost"> -<title>Finding the holidays total cost</title> -<para>This is so easy, it's not even funny: open the Trackers view, read the "Amount" column for our tracker:</para> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="analysis_trackers_view.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> -<para>Let's move to more interesting stuff...</para> -</sect1> - -<sect1 id="analysis_expenses_distribution"> -<title>Expenses Distribution</title> -<para>So this is all very good, but where did all that money go ? To find this out, let us build a report on the tracker. Right click on our tracker line and choose <guimenuitem>Open report...</guimenuitem>.</para> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="analysis_build_report.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - - -<para>This will open a report in a new tab, only for operations associated with the tracker. The default parameters for dates are "Current Month", so there is a possibility that the report is empty if all operations in the tracker were made before this. Let's change it to "All Dates":</para> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="analysis_report_1.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> -<para>This gives a first nice overview of the expenses per category. Let's display this in a pie chart, for a more natural presentation:</para> - -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="analysis_report_2.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - - -<para>It is now quite clear that most of the holidays expenses were for transport and food. Any more indication ? Sure, let's dig one level more in categories, using the <guibutton>plus</guibutton> icon <inlinemediaobject><imageobject><imagedata fileref="category_one_level_more.png"/></imageobject></inlinemediaobject>.</para> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="analysis_report_3.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -<para>Hmm, not much more information here, except that in the "Transport" category, the "Car" subcategory is the only one used. Let's build a graph on that subcategory, by selecting the pie slice, right-clicking on it, and select <guimenuitem>Open report</guimenuitem>:</para> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="analysis_build_transport_report.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> - -<para>This will open another tab with a report only with the "Transport > Car" category.</para> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="analysis_report_4.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> -<para>Hmm, not really interesting... But there is more subcategories. Let's expand it again:</para> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="analysis_report_5.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> -<para>Ah, now we know that we spent 362.27? on fuel, and 131.90? on road taxes (in France, you have to pay to drive on some highways). Ok, I know this was to be expected ;-). I am also interested in knowing how these two categories were used over time:</para> -<screenshot> -<mediaobject> -<imageobject> -<imagedata fileref="analysis_report_6.png" format="PNG"/> -</imageobject> -</mediaobject> -</screenshot> -<para>Note that we changed the graph type to "Line", and the columns to "Week".</para> - -</sect1> - -<sect1 id="analysis_conclusion"> -<title>Conclusion</title> -<para>Through this simple exercise, we have been able to use the advanced reporting capabilities of &appname; to perform a fine analysis of the expenses made during holidays, specifically in the "Transports" category. Of course, you may think of other use cases: &appname; is probably able to cope with them.</para> -</sect1> - -</appendix> - -&documentation.index; - +<para>Now you can add your operations as "shares": + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="shares.png" format="PNG"/></imageobject> + <textobject><phrase>The shares edition panel.</phrase></textobject> + </mediaobject> + </screenshot> + <itemizedlist> + <listitem><para>Amount is the number of shares you've bought (positive value) or sold (negative value)</para></listitem> + <listitem><para>Symbol is the previous unit you created</para></listitem> + <listitem><para>Amount of shares is the total price you payed for the shares / the amount you got from the selling, excluding commissions and taxes</para></listitem> + <listitem><para>Commissions is the amount you payed your bank for that transaction</para></listitem> + <listitem><para>Tax is any amount you payed (usually when there are earnings)</para></listitem> + </itemizedlist> + </para> + </sect2> + + <sect2 id="schedule_operation"> + <title>Schedule Operations</title> + + <para>If an operation is known to be repeated on a regular basis, you may want &appname; to automatically enter it for you in the list of operations. This can be done by scheduling an operation, using the <guibutton>Schedule button <inlinemediaobject><imageobject><imagedata fileref="schedule_operation.png"/></imageobject></inlinemediaobject></guibutton>.</para> + + <para>The default scheduling parameters are:</para> + <itemizedlist> + <listitem><para> Repeat every month</para></listitem> + <listitem><para>Remind me 5 days before term</para></listitem> + <listitem><para>Automatically write on term</para></listitem> + </itemizedlist> + + <para>You may change the default parameters in &appname; settings.</para> + <para>You may also change each scheduled operation parameters in the <link linkend="scheduled">Scheduled plugin</link>.</para> + <para>&appname; uses values from the last entry of the scheduled operation for writing the next one. If you increase for example the amount of your monthly contribution to the &kde; effort from 100$ to 200$, next operations automatically written by &appname; will have an amount of 200$.</para> + + </sect2> + + <sect2 id="fast_edition"> + <title>Fast Edition</title> + + <para>Whatever the chosen edition mode, there is a nifty function called Fast Edition that may speed up the work while creating new operations. It will fill the operation's attributes based on previously entered operations. Enter a value in any field of the editor, and press <keycap>F10</keycap>, or click on the <guibutton>Fast Edition Icon <inlinemediaobject><imageobject><imagedata fileref="fast_edition.png" format="PNG"/></imageobject></inlinemediaobject></guibutton> (without leaving the selected field).</para> + + <para>&appname; will look for the first (&ie; the most recent one) operation that has the same value in the same field, and fill all other fields with values from that operation. Call Fast Edition again, it will look for the next operation, and so on.</para> + + <warning> + <para>Fast Edition has no effect on the date, since it is rather unlikely that you want to create exactly the same operation, complete with the same date...</para> + <para>If you modified a field's value before calling Fast Edition, its content will not be affected. This is materialized by a small snowflake<inlinemediaobject><imageobject><imagedata fileref="frozen.png" format="PNG"/></imageobject></inlinemediaobject> appearing in the field, so you know it is "frozen".</para> + </warning> + + <para>What's different here from similar functions in other personal finances software:</para> + <itemizedlist> + <listitem><para>It is called on user demand</para></listitem> + <listitem><para>It loops in all past operations with the same field value</para></listitem> + </itemizedlist> + + <para>And it even works on split operations !</para> + </sect2> + + <sect2 id="reconciliation"> + <title>Reconciliation</title> + <para>Reconciliation is the process by which you ensure that all operations are aligned with your account's position from the bank point of view. It will involve you, your account's position, and a pen. Reconciliation can happen only for an account at one point in time.</para> + <para>In the operation view, select the account you wish to reconciliate from the drop down box. Switch into reconciliation mode using the <guibutton>Switch Information button <inlinemediaobject><imageobject><imagedata fileref="switch_information.png" format="PNG"/></imageobject></inlinemediaobject></guibutton> below the operations table.</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="reconciliation_information.png" format="PNG"/></imageobject> + <textobject><phrase>The reconciliation mode information.</phrase></textobject> + </mediaobject> + </screenshot> + + <para>Enter the position of your account as provided by your bank in the dedicated field. Now, you can proceed to checking in &appname; every operation that appears on the account recordings. For the moment, the check box for this operation will appear half greyed, until you really validate the reconciliation.</para> + + <para>As you check operations, you will see &appname; display in the information zone:</para> + <itemizedlist> + <listitem><para>Delta: the difference between the previously entered account position and the sum of all checked operations</para></listitem> + <listitem><para>Expenditure:the total amount of expenses</para></listitem> + <listitem><para>Income: the total amount of incomes</para></listitem> + </itemizedlist> + + <para>This may be useful when trying to spot operations you may have forgot to enter in &appname;. When all relevant operations have been checked, Delta is equal to 0, and the <guibutton>Validate checked operations button <inlinemediaobject><imageobject><imagedata fileref="validate.png" format="PNG" /></imageobject></inlinemediaobject></guibutton> is activated. Click on this button to validate the reconciliation: all checked operations are now validated.</para> + + <para>If the option <guibutton>Hide checked operations</guibutton> is selected, all these operations will now be hidden.</para> + + </sect2> + + <sect2 id="templates"> + <title>Template Operations</title> + <para>&appname; allows you creating template operations, &ie; operations that can be reused whenever you need it. For example, imagine are used to renting a DVD to watch at home. The operation is always the same :</para> + + <itemizedlist> + <listitem><para>Amount: -4.99</para></listitem> + <listitem><para>Mode: Credit Card</para></listitem> + <listitem><para>Payee: Acme Video</para></listitem> + <listitem><para>Category: Leisure > Video</para></listitem> + </itemizedlist> + + <para>However, you cannot make it a recurrent operation, because you rent a DVD when you feel like it, not every week. The idea behind template operations is that it gives you a basic skeleton that can be quickly inserted in your operations list.</para> + + <para>Since Template operations are just another kind of operations, you can access them through the operations tab, using the button above the edition panel:</para> + + <screenshot> + <mediaobject> + <imageobject><imagedata fileref="template_button.png" format="PNG"/></imageobject> + <textobject><phrase>Switching between templates and operations.</phrase></textobject> + </mediaobject> + </screenshot> + + <para>Creating a template is strictly equal to creating an operation, by defining its attributes. Note that you can also create a template from an existing operation (bring up the contextual menu on an operation). In this case, the template will have the same attributes as the operation.</para> + + <para>To use a template and create a new operation from it, double click on it. A new operation will be created with the same attributes as the template, at the current date. You can then modify its attributes if needed.</para> + + <para>Templates can also be <link linkend="scheduled">scheduled.</link></para> + + </sect2> + + </sect1> + + <sect1 id="categories"> + <title>Categories</title> + <para>The Categories view allow you to browse the categories tree.</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="categories.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + <para>In addition to the name of categories, the table also shows: </para> + + <variablelist> + <varlistentry> + <term>Amount</term> + <listitem><para>The sum of all operations in this category.</para></listitem> + </varlistentry> + <varlistentry> + <term>Number of Operations</term> + <listitem><para>The number of operations in this category.</para></listitem> + </varlistentry> + <varlistentry> + <term>Amount (Cumulative)</term> + <listitem><para>The sum of all operations in this category and children categories (down to the last level).</para></listitem> + </varlistentry> + <varlistentry> + <term>Number of Operations (Cumulative)</term> + <listitem><para>The number of operations in this category and children categories (down to the last level).</para></listitem> + </varlistentry> + </variablelist> + + <para>Double clicking on a line in this table will open the list of all operations in this category in a new tab.</para> + + <warning><para>When deleting a category, all operations attached to it will have their category deleted, hence will not have any category attached</para></warning> + + </sect1> + + <sect1 id="reports"> + <title>Reports</title> + <para>&appname; allows you to build highly customized reports, for a deep analysis of your financial status.</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="reports.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + <para>A report is composed of a table (on the left) containing all data used to draw the graph (on the right). The table can be filtered using the dedicated field above, causing the graph to be redrawn with filtered data.</para> + + <para>You can choose to display only the table, only the graph, or both.</para> + + + <sect2 id="setup_report"> + <title>Set up report</title> + + <sect3 id="report_representation"> + <title>Representation</title> + <variablelist> + <varlistentry> + <term>Table Only</term> + <listitem><para>Display only the table, and hide the graph.</para></listitem> + </varlistentry> + <varlistentry> + <term>Graph Only</term> + <listitem><para>Display only the graph, and hide the table.</para></listitem> + </varlistentry> + <varlistentry> + <term>Both</term> + <listitem><para>Display the table and the graph.</para></listitem> + </varlistentry> + </variablelist> + </sect3> + + <sect3 id="report_data"> + <title>Data</title> + <para>This is where you choose what is the data to be present in the report. Select what will be shown in lines and in columns, and the mode of computation. There are two distinct values for the mode:</para> + <variablelist> + <varlistentry> + <term>Sum</term> + <listitem> + <para>In this mode, the total amount of operations for each month will be computed. If you selected "category" in line, and "month" in column, this will compute the total amount of operations for each category and for every month.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>History</term> + <listitem> + <para>If we reuse our previous example ("category" in line, "month" in column), we will have here a cumulated sum, &ie; for each month, we will compute the total amount of operations up to this month, for each category.</para> + <para>As a hand on example, this author uses this mode to draw the evolution of his accounts balance by setting "Accounts" for Lines, and "Month" for Columns.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>For lines and columns, it is possible to expand the level of data presented using the <guibutton>plus</guibutton> icon <inlinemediaobject><imageobject><imagedata fileref="plus.png"/></imageobject></inlinemediaobject> right of the field. Use this to show subcategories in the report.</para> + </sect3> + + <sect3 id="report_dates"> + <title>Dates</title> + <para>Use this to specify the date range for your report. You can use several ways to specify the date range, that should cover pretty much every possible date range you need.</para> + </sect3> + + <sect3 id="report_operation_types"> + <title>Operation Types</title> + <para>Select the type of operations you want to include in your report. For example, if you want to draw a graph showing your expenses distribution per category, you probably do not want to include "Incomes" to your report.</para> + </sect3> + + </sect2> + + <sect2 id="graph_types"> + <title>Graph Types</title> + + <para>Once everything is set up to your needs, you should select the graph appearance using the drop down box below the graph. To better understand the differences between each type, let us build a report showing expenses per category (lines) and month (columns):</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="report_table.png"/> + </imageobject> + </mediaobject> + </screenshot> + + <sect3 id="stack"> + <title>Stack</title> + <para>One bar per line, columns stacked.</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="stack.png"/> + </imageobject> + </mediaobject> + </screenshot> + + <para>The second bar (yellowish) shows category "Security", all months stacked up.</para> + + </sect3> + + <sect3 id="histogram"> + <title>Histogram</title> + <para>For each columns, every line has its own bar.</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="histogram.png"/> + </imageobject> + </mediaobject> + </screenshot> + + </sect3> + + + <sect3 id="line"> + <title>Line</title> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="line_graph.png"/> + </imageobject> + </mediaobject> + </screenshot> + </sect3> + + <sect3 id="point"> + <title>Point</title> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="point_report.png"/> + </imageobject> + </mediaobject> + </screenshot> + </sect3> + + + <sect3 id="pie"> + <title>Pie</title> + <para>The classical pie graph. If the selected value for column is different from "nothing", displays one pie per column.</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="pie.png"/> + </imageobject> + </mediaobject> + </screenshot> + + + </sect3> + + <sect3 id="concentric_pie"> + <title>Concentric Pie</title> + <para>This one is a bit tricky, and probably needs rework on our side. The intention is to show one ring per level of data.</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="concentric_pie.png"/> + </imageobject> + </mediaobject> + </screenshot> + + </sect3> + + </sect2> + + + <sect2 id="zoom_graph"> + <title>Zoom on graph</title> + <para>&appname; makes it possible to zoom in a graph for getting all the small details. Use the zoom control zone above the graph:</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="zoom_graph.png"/> + </imageobject> + </mediaobject> + </screenshot> + + + </sect2> + + <sect2 id="report_examples"> + <title>Report Examples</title> + <para>Here are some screenshots showing some classical report configurations. You may use them as a reference for your own reports.</para> + + <sect3 id="income_expense"> + <title>Incomes and Expenses</title> + <para>For each month, compare the total amount of incomes versus the total amount of expenses. Incomes are in blue, expenses in yellow.</para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="incomes_expenses.png"/> + </imageobject> + </mediaobject> + </screenshot> + </sect3> + + <sect3 id="balance_evolution"> + <title>Balance Evolution</title> + <para>Show the evolution of the final balance on a monthly basis.</para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="balance_evolution.png"/> + </imageobject> + </mediaobject> + </screenshot> + </sect3> + + <sect3 id="category_distribution"> + <title>Incomes and Expenses</title> + <para>Display the distribution of expenses per category for the previous month.</para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="category_distribution.png"/> + </imageobject> + </mediaobject> + </screenshot> + </sect3> + + + </sect2> + + <sect2 id="going_deeper"> + <title>Going Deeper</title> + <para>So you know you can make a deep analysis of your finances thanks to reports. But how deep is deep ? Well, that's even deeper than you imagined... If you're interested, read the <link linkend="holidays_expenses_analysis">hands on exercise</link> analysing this author's expenses during its holidays :)</para> + </sect2> + + + </sect1> + + <sect1 id="monthly_report"> + <title>Monthly Report</title> + + <para>This plugin shows an overview of your financial situation for a chosen month.</para> + + <!-- Sub par compared to the quality of other plugins and functionality partly covered by dashboard... Shall we deprecate it and extend dashboard instead ?--> + + </sect1> + + <sect1 id="units"> + <title>Units</title> + <para>A unit is anything you can express an operation in. In most cases, this is a currency, but it can also be a stock, or even a car or a house. A unit has different values over time, its value being express in another unit. Example: the ACME stock is worth 31.2$ on January 2009.</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="units.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + <sect2 id="edit_units"> + <title>Edit Units</title> + <para>Editing units can be done in different ways:</para> + <variablelist> + <varlistentry> + <term>Standard</term> + <listitem><para>This mode allows you choosing amongst the set of predefined units which one you would like to add to the current document.</para></listitem> + </varlistentry> + <varlistentry> + <term>Manual</term> + <listitem><para>This mode allows you creating your own unit. Parameters to be provided are:</para> + <itemizedlist> + <listitem><para>Name: the comprehensive unit name.</para></listitem> + <listitem><para>Symbol: the unit symbol, displayed in most tables and drop down boxes.</para></listitem> + <listitem><para>Type: see <link linkend="unit_types">Unit Types</link>.</para></listitem> + <listitem><para>Reference Unit: the (other) unit used to compute value of the (current) unit. For example, if you have EADS shares, and want to see their value in euros, you should select ? as reference unit in EADS unit.</para></listitem> + <listitem><para>Country</para></listitem> + <listitem><para>Internet Code: The yahoo Internet code for this unit. If given this code, &appname; is able to download the unit values from yahoo.</para></listitem> + </itemizedlist> + </listitem> + </varlistentry> + <varlistentry> + <term>Values</term> + <listitem><para>This edition mode allows to download unit values from Internet, or to manually enter a unit value at a given date.</para></listitem> + </varlistentry> + </variablelist> + </sect2> + + <sect2 id="unit_types"> + <title>Unit Types</title> + <para>Even if &appname; considers just about anything as a unit, it makes a distinction depending on their type:</para> + + <variablelist> + <varlistentry> + <term>Primary Currency</term> + <listitem><para>This is the currency that will be used for displaying real operations amount.</para></listitem> + </varlistentry> + <varlistentry> + <term>Secondary Currency</term> + <listitem><para>If defined, the value in the secondary unit will be displayed upon hovering over an operation amount.</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="secondary_unit_display.png"/> + </imageobject> + </mediaobject> + </screenshot> + + </listitem> + </varlistentry> + <varlistentry> + <term>Currency</term> + <listitem><para>Any currency, with no specific role for display.</para></listitem> + </varlistentry> + <varlistentry> + <term>Share</term> + <listitem><para>This type of unit can be used for managing shares.</para></listitem> + </varlistentry> + <varlistentry> + <term>Index</term> + <listitem><para>A stock exchange index, such as the Dow Jones, Nasdaq, CAC40, SBF120...</para></listitem> + </varlistentry> + <varlistentry> + <term>Other</term> + <listitem><para>Any unit that doesn't fit in the above types.</para></listitem> + </varlistentry> + + </variablelist> + + </sect2> + + </sect1> + </chapter> + + <chapter id="using-skrooge-advanced"> + <title>Using &appname; (advanced)</title> + + <sect1 id="scheduled"> + <title>Scheduled</title> + <para>This plugin shows you the list of all scheduled operations.</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="scheduled.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + <para>This is where you can set up each scheduled operation to have its own parameters.</para> + + <variablelist> + <varlistentry> + <term>Next Occurrence</term> + <listitem><para>Displayed for information, but can also be used to force the date of the next occurrence.</para></listitem> + </varlistentry> + <varlistentry> + <term>Once every</term> + <listitem><para>You can set an operation to be repeated over a given number of days, months, or years.</para></listitem> + </varlistentry> + <varlistentry> + <term>Number of Occurrences</term> + <listitem><para>If the occurrence has a limited number of occurrences, you can check this option and define either the number of remaining occurrences, or the date of the last occurrence.</para></listitem> + </varlistentry> + <varlistentry> + <term>Remind me</term> + <listitem><para>If you want &appname; to display a notification to remind you about the upcoming scheduled operation, you may check this option and set the number of days before term when the warning shall occur.</para></listitem> + </varlistentry> + <varlistentry> + <term>Automatically Write</term> + <listitem><para>If you want &appname; to automatically write the upcoming scheduled operation, you may check this option and set the number of days before term when it will be written.</para></listitem> + </varlistentry> + </variablelist> + + <para>Double clicking on a scheduled operation will display the list of operations already registered for this scheduled operation in a new tab.</para> + + <sect2 id="scheduled_operations"> + <title>Scheduled Operations</title> + + <para>If you schedule an operation, it will be used as a reference when inserting the next occurrence. Let us see an example, with this operation:</para> + + <table> + <title>Scheduled Operations (step 1)</title> + <tgroup cols="4"> + <thead> + <row> + <entry>Date</entry> + <entry>Payee</entry> + <entry>Category</entry> + <entry>Amount</entry> + </row> + </thead> + <tbody> + <row> + <entry>20/06/2009</entry> + <entry>&kde;</entry> + <entry>Donations > Open Source</entry> + <entry>20?</entry> + </row> + </tbody> + </tgroup> + </table> + + <para>Now, if you schedule this operation, it will be written exactly like this for the next occurrence:</para> + + <table> + <title>Scheduled Operations (step 2)</title> + <tgroup cols="4"> + <thead> + <row> + <entry>Date</entry> + <entry>Payee</entry> + <entry>Category</entry> + <entry>Amount</entry> + </row> + </thead> + <tbody> + <row> + <entry>20/06/2009</entry> + <entry>&kde;</entry> + <entry>Donations > Open Source</entry> + <entry>20?</entry> + </row> + <row> + <entry>20/07/2009</entry> + <entry>&kde;</entry> + <entry>Donations > Open Source</entry> + <entry>20?</entry> + </row> + </tbody> + </tgroup> + </table> + + <para>If you change something in the last occurrence, it will become the new reference for the next occurrence. For example, if you raise your monthly contribution to &kde; to 25? in July, the next occurrence will also be with an amount of 25?:</para> + + <table> + <title>Scheduled Operations (step 3)</title> + <tgroup cols="4"> + <thead> + <row> + <entry>Date</entry> + <entry>Payee</entry> + <entry>Category</entry> + <entry>Amount</entry> + </row> + </thead> + <tbody> + <row> + <entry>20/06/2009</entry> + <entry>&kde;</entry> + <entry>Donations > Open Source</entry> + <entry>20?</entry> + </row> + <row> + <entry>20/07/2009</entry> + <entry>&kde;</entry> + <entry>Donations > Open Source</entry> + <entry>25?</entry> + </row> + <row> + <entry>20/08/2009</entry> + <entry>&kde;</entry> + <entry>Donations > Open Source</entry> + <entry>25?</entry> + </row> + </tbody> + </tgroup> + </table> + + <para>All in all, a scheduled operation is a dynamic object, where the last occurrence is the reference. But maybe you'd like all occurrences to be static, &ie; the same values are always inserted for each new occurrence ? Enter <link linkend="scheduled_templates">Scheduled Templates</link>.</para> + + </sect2> + + + <sect2 id="scheduled_templates"> + <title>Scheduled Templates</title> + + <para><link linkend="templates">Templates</link> are some sort of reference operations. When scheduling a template, every new occurrence will be exactly equal to the template. Let's reuse our <link linkend="schedule_operation">previous chapter</link> example, by creating a template like this:</para> + + <table> + <title>Scheduled Templates (step 1)</title> + <tgroup cols="4"> + <thead> + <row> + <entry>Date</entry> + <entry>Payee</entry> + <entry>Category</entry> + <entry>Amount</entry> + </row> + </thead> + <tbody> + <row> + <entry>20/06/2009</entry> + <entry>&kde;</entry> + <entry>Donations > Open Source</entry> + <entry>20?</entry> + </row> + </tbody> + </tgroup> + </table> + + <para>The next occurrence will be:</para> + + + <table> + <title>Scheduled Templates (step 2)</title> + <tgroup cols="4"> + <thead> + <row> + <entry>Date</entry> + <entry>Payee</entry> + <entry>Category</entry> + <entry>Amount</entry> + </row> + </thead> + <tbody> + <row> + <entry>20/06/2009</entry> + <entry>&kde;</entry> + <entry>Donations > Open Source</entry> + <entry>20?</entry> + </row> + <row> + <entry>20/07/2009</entry> + <entry>&kde;</entry> + <entry>Donations > Open Source</entry> + <entry>20?</entry> + </row> + </tbody> + </tgroup> + </table> + + <para>Now change your July contribution to &kde; to 25?. Because you have scheduled a template with 20? as amount, the next occurrence will also have an amount of 20?:</para> + + <table> + <title>Scheduled Templates (step 3)</title> + <tgroup cols="4"> + <thead> + <row> + <entry>Date</entry> + <entry>Payee</entry> + <entry>Category</entry> + <entry>Amount</entry> + </row> + </thead> + <tbody> + <row> + <entry>20/06/2009</entry> + <entry>&kde;</entry> + <entry>Donations > Open Source</entry> + <entry>20?</entry> + </row> + <row> + <entry>20/07/2009</entry> + <entry>&kde;</entry> + <entry>Donations > Open Source</entry> + <entry>25?</entry> + </row> + <row> + <entry>20/08/2009</entry> + <entry>&kde;</entry> + <entry>Donations > Open Source</entry> + <entry>20?</entry> + </row> + </tbody> + </tgroup> + </table> + + <para>If you need to change the monthly value, just edit the template, and all future occurrences will have the new value.</para> + </sect2> + + </sect1> + + <sect1 id="trackers"> + <title>Trackers</title> + <para>The trackers allow you to aggregate some operations together in a group, so you can follow them more closely. This may come handy to follow expenses for which you expect a refund, or simply knowing how much you spent during your last holidays in the Bahamas.</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="trackers.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + <para>For example, imagine you have been sent to Italy by your company. Once there, you paid your hotel room: in &appname;, you can create an operation in category "Business > Travels > Hotel", and assign a tracker called "Business Travel in Italy".You can assign this tracker to all professional expenses you make there. Then, if all goes well, your company pays you back for all these these, and you can create an income operation, and also affect it to the "Business Travel in Italy" tracker.</para> + <para>By affecting trackers to operations that shall be reimbursed, you are able to follow completion of the reimbursement.</para> + <para>This, of course, works also the other way round: if someone lends you some money, you are able to monitor how much you still have to reimburse.</para> + <para>Double clicking on a tracker in the track view will open a new tab containing all operations attached to this tracker.</para> + + <sect2 id="close_tracker"> + <title>Close Tracker</title> + + <para>When you no longer need the tracker, for example because it has been fully reimbursed, you may simply delete it. Doing, this, however, will loose all information you have entered, and that may be of interest for future reference.</para> + <para>A cleaner solution is to close the tracker: when a tracker is closed, it can be easily hidden from the trackers view, using the dedicated option.</para> + </sect2> + + </sect1> + + <sect1 id="search_and_process"> + <title>Search & Process</title> + + <para>This plugin allows you building complex queries to find operations, and optionally apply them some transformations. Here is a use case:</para> + + <blockquote><para><!-- Please make sure it is identical to use case in the Search & Process real case study, in appendix -->John downloads some data from his bank. The data comes, obviously, without indication on the category. In fact everything is written in the comment field. John would like some automatic way to correctly set up the category and other attributes based on the content of the comment.</para></blockquote> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="search_and_process.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + <para>So how does this work ? First, you will define a search criteria, that will give you a list of operations. Then, define the transformations to apply on these operations.</para> + + <note><para>A <link linkend="search_process_real_case">real case study</link> can be found in appendix, providing some hands on exercise for the hereabove use case.</para></note> + + <sect2 id="define_search_criteria"> + <title>Define search criteria</title> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="define_search.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + <para>Here, you can define the query for finding operations, using a combination of parameters. On the above picture, you can find a table with operation attributes for header. By editing a line, you create a new clause in the query. Each column is combined with other columns using a logical "and" :</para> + <para>(column1 and column2)</para> + <para>If you add a new line, you create another clause combine with the first line by a logical "or" :</para> + <para>[line1] or [line2].</para> + + <para>All in all, the combination of columns and lines can be read as:</para> + <para>(column1 and column3) or (column2 and column3)</para> + + <para>Of course, you can have as many lines and columns as you need in a search query.</para> + + <para>Once satisfied with a query definition, you can add it to the list of existing search criteria, or modify an existing one.</para> + + </sect2> + + + <sect2 id="view_search_result"> + <title>View search results</title> + + <para>When selecting a search query in the queries view, the number of found operations is displayed below the table:</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="preview_search_result.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + + <para>When double-clicking on a search query in the query view, all found operations are displayed in a new tab:</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="search_result.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + </sect2> + + + <sect2 id="define_processing"> + <title>Define Processing</title> + + <para>If you need to apply some processing on all operations found, select the concerned query, and activate the process definition panel:</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="define_processing.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + <para>In this panel, you can define the transformations to perform on operations. Note that it is intentionally impossible to set an operation's amount or date in this panel.</para> + + </sect2> + + + <sect2 id="define_alarm"> + <title>Define Alarm</title> + <para>A special kind of use of the Search & Process plugin is the ability to define alarms. An alarm is basically &appname; calling your attention on some kind of event, such as your monthly budget for a category has been reached.</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="alarm.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + <para>To define an alarm, define first the search criteria giving the set of operations on which you need alert. For example, all operations in current month and in category "Clothes". Then, define the amount for which the alert shall be raised, for example 100?, and define the Alarm message that &appname; will send you when the amount is reached.</para> + + </sect2> + + </sect1> + + </chapter> + + <chapter id="credits"> + <title>Credits and License</title> + <para> + &appname; + </para> + <para> + Program copyright 2001-2014 St?phane Mankowski + <email>stephane at mankowski.fr</email> + </para> + <para> + Documentation copyright 2001-2014 Guillaume DE BURE + <email>gdebure at yahoo.com</email> + </para> + <!-- TRANS:CREDIT_FOR_TRANSLATORS --> + &underFDL; + &underGPL; + </chapter> + + <appendix id="installation"> + <title>Installation</title> + + <sect1 id="getting-skrooge"> + <title>How to obtain &appname;</title> + + <para>The &appname; home page can be found at <ulink url="&homepage;">&homepage;</ulink>. Updates and news can be found there. + </para> + </sect1> + + <sect1 id="requirements"> + <title>Requirements</title> + + <para>In order to successfully use &appname;, you need &kde; 4, qt-sqlite3, libofx, and qca. + </para> + + </sect1> + + <sect1 id="Installation"> + <title>Installing &appname;</title> + + <para>It is recommended that you install &appname; using your distribution packaging system. If for any reason you would like to compile and install &appname; by yourself, this chapter contains all necessary steps. + </para> + + <sect2 id="prerequisites"> + <title>Prerequisites</title> + <para> + &appname; uses several components you need to install in order to compile it:</para> + <itemizedlist> + <listitem><para>sqlite3: a lightweight SQL database. &appname; files are sqlite databases.</para></listitem> + <listitem><para>libofx: a library to handle OFX file format. OFX is a standard &XML; format for financial exchanges.</para></listitem> + <listitem><para>qca: &Qt; Cryptographic Architecture. Used for password protection.</para></listitem> + </itemizedlist> + </sect2> + + <sect2 id="compilation"> + <title>Compilation and Installation</title> + + <para> + In order to compile and install &appname; on your system, type the following + in the base folder of the archive, where the third step must be done as + root if you are installing in a system folder: + + <screen width="40"> + <prompt>$</prompt> <userinput>cmake . <option>-DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`</option></userinput> + <prompt>$</prompt> <userinput>make</userinput> + <prompt>$</prompt> <userinput>make install</userinput> + </screen> + </para> + <para>Since &appname; uses <command>cmake</command> you should have no + trouble compiling it. Should you run into problems please report them to the + authors.</para> + </sect2> + + </sect1> + + </appendix> + + + <appendix id="search_process_real_case"> + <title>Search & Process real case study</title> + + <para>OK, we have to admit that while being quite powerful, the <link linkend="search_and_process">Search & Process</link> plugin is maybe a bit tricky to understand. Here is a small exercise that will give you a hold od it. Remember the use case for Search & Process ?</para> + + <blockquote><para><!-- Please make sure it is identical to use case in the Search & Process section -->John downloads some data from his bank. The data comes, obviously, without indication on the category. In fact everything is written in the comment field. John would like some automatic way to correctly set up the category and other attributes based on the content of the comment.</para></blockquote> + + + <para>John knows that his bank put the name of the payee in the comment field. And he wants all his payments to &kde; to be in category Donations & Open Source. We will look for all operations with the comment field containing &kde;:</para> + + <table> + <title>Search Definition</title> + <tgroup cols="1"> + <thead> + <row> + <entry>Comment</entry> + </row> + </thead> + <tbody> + <row> + <entry>contains '&kde;'</entry> + </row> + </tbody> + </tgroup> + </table> + + <para>Add this search definition to the list of existing searches using the <guibutton>Add</guibutton> button.</para> + + <para>Next we need to tell &appname; to set all operations found by this query in category Donations > Open Source. Change the Query type to Update using the drop down box, and define the transformations to apply:</para> + + <table> + <title>Update Definition</title> + <tgroup cols="2"> + <thead> + <row> + <entry>Comment</entry> + <entry>Category</entry> + </row> + </thead> + <tbody> + <row> + <entry>=''</entry> + <entry>='Donations > Open Source'</entry> + </row> + </tbody> + </tgroup> + </table> + + <tip><para>Notice that we also removed the original comment by setting it to an empty string. This is for readability sake, but you may wish to keep it for historical reasons.</para></tip> + + <para>Add this process to the previously defined search using the <guibutton>Add</guibutton> button.</para> + + <para>So far, so good. Now, let's apply the process on all imported operations not yet validated (click on the <guibutton>Apply</guibutton> button):</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="apply_process.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + <para>That's it ! If you go back to the operations view, you will notice that all concerned operations have been updated. In case anything went wrong, don't forget that <link linkend="undo_redo">Undo</link> is your friend ! Even if the process modified 2327 operations, this is still one undoable action for &appname;.</para> + + </appendix> + + <appendix id="holidays_expenses_analysis"> + <title>Deep analysis exercise: Holidays expenses</title> + <para>To illustrate the analysis capabilities of &appname;, we are going to examine this author's expenses during his holidays :).</para> + + <sect1 id="analysis_context"> + <title>Analysis Context</title> + <para>In order to understand the exercise, you need to know a few things about these holidays. They span over nearly a full month during summer 2009, and involved renting several rooms in several locations in France. There was also a fair amount of fuel, as these holidays also spanned over a rather large part of France.</para> + </sect1> + + <sect1 id="analysis_data_organisation"> + <title>Data Organisation</title> + <para>The author carefully entered his operations, by affecting them categories, but also by adding them to the "Holidays, summer 2009" <link linkend="trackers">tracker</link>. Categories often have subcategories, such as "Transport > Car > Fuel", allowing for this detailed analysis.</para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="analysis_operations_view.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + </sect1> + + <sect1 id="analysis_total_cost"> + <title>Finding the holidays total cost</title> + <para>This is so easy, it's not even funny: open the Trackers view, read the "Amount" column for our tracker:</para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="analysis_trackers_view.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + <para>Let's move to more interesting stuff...</para> + </sect1> + + <sect1 id="analysis_expenses_distribution"> + <title>Expenses Distribution</title> + <para>So this is all very good, but where did all that money go ? To find this out, let us build a report on the tracker. Right click on our tracker line and choose <guimenuitem>Open report...</guimenuitem>.</para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="analysis_build_report.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + + <para>This will open a report in a new tab, only for operations associated with the tracker. The default parameters for dates are "Current Month", so there is a possibility that the report is empty if all operations in the tracker were made before this. Let's change it to "All Dates":</para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="analysis_report_1.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + <para>This gives a first nice overview of the expenses per category. Let's display this in a pie chart, for a more natural presentation:</para> + + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="analysis_report_2.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + + <para>It is now quite clear that most of the holidays expenses were for transport and food. Any more indication ? Sure, let's dig one level more in categories, using the <guibutton>plus</guibutton> icon <inlinemediaobject><imageobject><imagedata fileref="category_one_level_more.png"/></imageobject></inlinemediaobject>.</para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="analysis_report_3.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + <para>Hmm, not much more information here, except that in the "Transport" category, the "Car" subcategory is the only one used. Let's build a graph on that subcategory, by selecting the pie slice, right-clicking on it, and select <guimenuitem>Open report</guimenuitem>:</para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="analysis_build_transport_report.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + + <para>This will open another tab with a report only with the "Transport > Car" category.</para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="analysis_report_4.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + <para>Hmm, not really interesting... But there is more subcategories. Let's expand it again:</para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="analysis_report_5.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + <para>Ah, now we know that we spent 362.27? on fuel, and 131.90? on road taxes (in France, you have to pay to drive on some highways). Ok, I know this was to be expected ;-). I am also interested in knowing how these two categories were used over time:</para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="analysis_report_6.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + <para>Note that we changed the graph type to "Line", and the columns to "Week".</para> + + </sect1> + + <sect1 id="analysis_conclusion"> + <title>Conclusion</title> + <para>Through this simple exercise, we have been able to use the advanced reporting capabilities of &appname; to perform a fine analysis of the expenses made during holidays, specifically in the "Transports" category. Of course, you may think of other use cases: &appname; is probably able to cope with them.</para> + </sect1> + + </appendix> + + &documentation.index; + </book> <!-- Local Variables: diff --git a/doc/merge_operations_menu.png b/doc/merge_operations_menu.png index 6622c4f..85944fd 100644 Binary files a/doc/merge_operations_menu.png and b/doc/merge_operations_menu.png differ diff --git a/doc/operations.png b/doc/operations.png index 7b217b6..90dc5d5 100644 Binary files a/doc/operations.png and b/doc/operations.png differ diff --git a/doc/property_editor.png b/doc/property_editor.png index c4a8cdb..f8feb7a 100644 Binary files a/doc/property_editor.png and b/doc/property_editor.png differ diff --git a/doc/shares.png b/doc/shares.png new file mode 100644 index 0000000..9c88d7b Binary files /dev/null and b/doc/shares.png differ diff --git a/doc/tab_state_management.png b/doc/tab_state_management.png index fc049d3..6cd3312 100644 Binary files a/doc/tab_state_management.png and b/doc/tab_state_management.png differ diff --git a/doc/table_menu.png b/doc/table_menu.png index 3125612..a42ee9d 100644 Binary files a/doc/table_menu.png and b/doc/table_menu.png differ