<?xml version="1.0" encoding="UTF-8"?>
<chapter id="details.ledgers">
<chapterinfo>
  <authorgroup>
    <author> &Michael.T.Edwardes; &Michael.T.Edwardes.mail; </author>
    <author> &Roger.Lum; &Roger.Lum.mail; </author>
  </authorgroup>
  <date>2010-07-23</date>
  <releaseinfo>4.5</releaseinfo>
</chapterinfo>

<title>Ledgers</title>

<sect1 id="details.ledgers.view">
<title>The Ledger View</title>

<para>
  The Ledger view is where most of the functionality of &kappname; lies.  This
  view is for examining and entering transaction data in the various
  accounts. The view is split into three main areas: the filter area, the
  transaction list, and the input area.
</para>

<para>
  This view allows for several key actions: searching and viewing transactions,
  entering new transactions, and editing or deleting existing
  transactions. Other functionality includes modifying account details and
  reconciling the account.
</para>
  
<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="ledgerview-numbered.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>Ledger View</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>

<para>
  The view has three elements:
</para>

<itemizedlist>
  <listitem><para>The filter area</para></listitem>
  <listitem><para>The transaction list</para></listitem>
  <listitem>
    <para>
      The transaction input form, which may or may not appear, depending upon
      your configuration.
    </para>
  </listitem>
</itemizedlist>

<sect2 id="details.ledgers.view.filter">
<title>The filter area</title>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="accountdropdown.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>Filter area</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>
	
<para>
  You can select an account via the account dropdown list at the top of the view
  area.  Note that depending upon the type of the account the <link
  linkend="details.ledger.transactionform">transaction input form</link> at the
  bottom of the view changes.
</para>

<para>
  To the right of the account dropdown list, are two additional fields. The
  search box acts as a filter on the transactions that are shown in the list
  view. Only transactions that include the text typed in the search box are
  displayed. The text specified can be in any of the fields of the transaction.
  The status field is a dropdown list. Only transactions of the type selected in
  that dropdown are displayed.
</para>

</sect2>

<sect2>
<title>The transaction list</title>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="translist.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>Transaction list</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>
	
<para>
  After you have entered a transaction, it is displayed in the transaction list.
  You can also change transaction properties or even create new transactions
  directly in the list.  In the transactions list, the default arrangement of
  transactions is sorted by date with the most recent transaction on the bottom.
  Clicking the Right Mouse Button on the header of the transaction list brings
  up a dialog that allows you to change the sort order of the transactions. For
  instructions on how to change the default sort order, see the <link
  linkend="details.settings.register.sorting">Sorting tab</link> section of the
  <link linkend="details.settings">&kappname; Settings</link> Chapter.
</para>

<para>
   Note that the balance column is based on the currently displayed sort order,
   and will not be calculated if the display is filtered by the search box or
   transaction type dropdown, as described above.
</para>

<para>
  At the bottom of the transaction list, &kappname; displays three values:
</para>

<formalpara><title>Last reconciled</title>
  <para>
    This is the most recent date on which you reconciled this account.
    Reconciliation is an important process for many accounts, and is described
    <link linkend="details.reconcile">here</link>.
  </para>
</formalpara>

<formalpara><title>Cleared</title>
  <para>
    This is the total of all cleared and reconciled transactions in this
    account.  See <link linkend="details.ledgers.cleared">this section</link>
    for more information about the cleared and reconciled states of
    transactions.
  </para>
</formalpara>

<formalpara><title>Balance</title>
  <para>
    This is where &kappname; displays the total balance of the account, which is
    the sum of all transactions in the account.  However, if you select more
    than one transaction in the transaction list, this changes to display the
    sum of the selected transactions.  This returns to the balance when only one
    transaction is selected.
  </para>
</formalpara>
</sect2>

<sect2>
<title>The transaction input form</title>

<para>
  The exact layout of the bottom area of the ledger view depends on your
  configuration and the type of account being displayed.  However, it generally
  includes fields for all the details of a single transaction, as well as
  buttons for various actions that can apply to a transaction.  It is described
  in more detail in the following sections.
</para>
</sect2>
</sect1>

<sect1 id="details.ledger.transactions">
<title>Entering Transactions</title>

<para>
  There are two methods of entering transactions into the ledger: using the
  transaction input form and entering the data directly into the transaction
  list.  The transaction input form is displayed by default and this is the
  method we will discuss first.
</para>

<para>
  The fields in the input area match the information fields in the transactions
  list. Additional fields include the Memo field, for a more detailed
  description of the transaction, and a Category selection. The Split button
  allows you to split the transaction into multiple categories.
</para>
</sect1>

<sect1 id="details.ledger.transactionform">
<title>Using the transaction input form</title>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="transactionform.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>Transaction Form</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>
	
<para>
  The transaction input form at the bottom of the ledger view is the interface
  for creating transactions.
</para>

<para>
  Depending upon the type or method of transaction you wish to enter there are
  several tabs available on the transaction form.  Click on the tab that best
  describes your transaction (deposit, transfer, or withdrawal) and the form
  will load several fields ready for your input.
</para>

<para>
  Please note that the actual transaction method is not used directly by
  &kappname; but is purely for grouping/reporting purposes.
</para>

<para>
  If you are unsure which method to choose simply use Deposit for any money
  going into the account, Withdrawal for money coming out of the account, and
  Transfer for money moving from one account to another.  The transaction
  methods and the differences between them are discussed in more detail
  elsewhere.
</para>

<para>
  Select the transaction method by clicking on one of the tabs.
</para>

<sect2>
<title>The fields of a transaction</title>

<para>
  Enter the information using the following notes on the available fields.  Note
  that many fields have 'Auto Completion' turned on.  That is, if you start
  typing, &kappname; will offer alternatives matching the characters you have
  entered so far.  To select an entry click on it using the mouse or keyboard,
  or if your entry is not listed keep typing to add the new value.  The next
  time you type the value in, &kappname; will find it for you after the first
  few characters have been input.
</para>

<sect3>
<title>The Payee</title>

<para>
  The Payee is who the money came from/to.  If the payee is a new entry
  &kappname; will ask if you wish to add this to the list of Payees.  Any other
  information related to a payee or payer, such as address details can be
  updated in the Payees view later.
</para>
</sect3>

<sect3>
<title>The Category</title>

<para>
  The Category associates a transaction with an income or expense category for
  accounting and reporting purposes, and enables you to group certain
  transactions. Type the name of the category into the required field.  If you
  have entered the category and it does not exist then &kappname; will ask if
  you want to create a new one.
</para>

<para>
  If you wish to associate parts of the transaction with different categories,
  &kappname; can let you do that.  An example transaction might be a cash
  machine withdrawal of 50 of which you use 10 on food, 20 on beer and 20 as
  spare cash.  The transaction will therefore be assigned three categories:
  Food, Beer, and Cash.  To do this, you need to use <link
  linkend="details.ledgers.split">Split Transactions</link>, which is described
  in more detail below.
</para>

<para>
  See the special <link linkend="reference.widgets">&kappname; fields</link>
  section for more information on how to use this field.
</para>
</sect3>

<sect3>
<title>The Tag</title>

<para>
  Tags were introduced to &kappname; in version 4.7, and they are not yet fully
  documented in this handbook.  Tags are similar to Categories, and can be used
  to maintain an orthogonal view to Categories.  For example, you might have
  a Category for each different type of automotice expenses, and then have a Tag
  for each vehicle.  As with Categories, you can select from the dropdown list, or type
  a new Tag name, and be prompted if you want to create a new Tag with that name.
</para>
</sect3>

<sect3>
<title>The Memo</title>

<para>
  A multi-line memo can be entered if you wish to help you remember what the
  transaction was for.
</para>
</sect3>

<sect3>
<title>The Check Number</title>

<para>
  The check number can be entered if needed.  Note that the check number can
  always be visible if desired.  This is configured in the Settings dialog.
</para>
</sect3>

<sect3>
<title>The Date</title>

<para>
  The transaction's posting date must be entered to specify when the transaction
  took place.  See the special <link linkend="reference.widgets">&kappname;
  fields</link> section for more information on how the date input field can be
  used to make entering dates quicker and easier.
</para>
</sect3>

<sect3>
<title>The Amount</title>

<para>
  Finally, enter the transaction amount into the required field. Note that a
  simple calculator can be displayed, either by clicking the icon to the right
  of the amount field, or by entering the % character into the field, or by
  entering a formula, as in <emphasis>12 + 3</emphasis>. When entering the plus
  sign, the calculator will be opened.
</para>

<para>
  When you are satisfied that all the fields have been filled in correctly,
  click on <guibutton>Enter</guibutton>. If you accidentally press or click on
  <guibutton>Enter</guibutton> before you have finished entering all the data,
  click on <guibutton>Edit</guibutton> to resume entering the data.
</para>
</sect3>
</sect2>
</sect1>

<sect1 id="details.ledger.direct">
<title>Directly inputting transactions into the list</title>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="transactionform-off.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>Direct Transaction Entry</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>

<para>
  The second method of entering transactions into the ledger involves editing
  the transaction list itself directly.
</para>

<para>
  To do this you must first let &kappname; know that you don't want to use the
  transaction form by opening the settings dialog and unchecking the
  <guilabel>Show transaction form</guilabel> option.
</para>

<para>
  This is performed by selecting <menuchoice><guimenu>Settings</guimenu>
  <guimenuitem>Configure &kappname;</guimenuitem></menuchoice> from the menu bar and
  selecting the <guiicon><inlinemediaobject><imageobject><imagedata
  fileref="ledgers_view.png"/></imageobject></inlinemediaobject>
  Register</guiicon> icon from the list on the left. The option to uncheck is
  labeled <guilabel>Show transaction form</guilabel>. When finished click on
  <guibutton>OK</guibutton> to be ready to directly enter transactions.
</para>

<sect2>
<title>Starting the edit</title>

<para>	
  To enter a new transaction into the register you can now either click on an
  empty entry, press <keycombo
  action="simul">&Ctrl;<keycap>Ins</keycap></keycombo>, or click
  <guibutton>New</guibutton> at the foot of the window. The <keycap>Up</keycap>
  and <keycap>Down</keycap> arrow keys let you navigate through the list.  After
  pressing &Enter; or double clicking on an entry, the transaction list displays
  the fields required to enter the transaction and waits for input.
</para>

<para>
  To move through the fields press the &Tab; key and when done
  press &Enter; to save the changes or &Esc; to
  cancel.
</para>

<para>
  In case the option <guilabel>Use Enter to move between fields</guilabel> is
  selected, the &Enter; moves to the next field just as the
  <keycap>TAB</keycap> key except for the last entry field where it stores the
  data.
</para>

<para>
  Which method you use to enter transactions is up to you and is a matter of
  personal preference.
</para>
</sect2>
</sect1>

<sect1 id="details.ledgers.split">
<title id="details.ledgers.split.title">Split Transactions</title>

<para>
  The Split transaction feature allows you to divide up a transaction into
  multiple categories, representing, for example, the different items bought
  with a single purchase at a store.
</para> 

<para>
  To enter a split transaction, using either the transaction input form or the
  transaction list, start a new transaction as normal, including entering the
  total amount. Then, instead of selecting a category, click the
  <guibutton>Split</guibutton> button. If you have already selected a category,
  that becomes the first entry in the split editor screen.
</para> 
 
<para>
  In the split editor screen, double-click an empty line to enter a new
  sub-transaction or press <keycombo
  action="simul">&Ctrl;<keycap>Ins</keycap></keycombo>. Specify the category,
  add an (optional) memo, and enter the amount. To save this part of the split,
  press the green check mark under the category. To cancel, press the red cross.
</para> 
 
<para>
  After entering a split, the bottom of the split editor shows how much of the
  total transaction is still unassigned. After entering all the splits, press
  the <guibutton>OK</guibutton> button to save the entire transaction. If there
  is still an unassigned amount, you will be prompted to either return to
  editing the splits, change the total transaction amount, or leave part of the
  transaction unassigned.
</para>

<para>
  Note that the category field in the transaction input form or the transaction
  list now displays <emphasis>Split transaction</emphasis>.
</para> 

<para>
	<screenshot>
	<screeninfo>Split transactions</screeninfo>
	<mediaobject>
	<imageobject>
	<imagedata fileref="split_transaction.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>Split transaction</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>

</sect1>

<sect1 id="details.ledger.edit">
<title>Editing transactions</title>
<para>
  To edit a transaction, select it in the list view and either click on
  <guibutton>Edit</guibutton> in the transaction input form or right click on
  the entry and select <guimenuitem>Edit</guimenuitem> from the popup menu.  If
  you are editing transactions directly in the list you can edit the transaction
  simply by double clicking on an entry or by pressing &Enter;
  when a transaction is highlighted.
</para>
</sect1>

<sect1 id="details.ledger.delete">
<title>Deleting transactions</title>

<para>
  To delete a transaction, select it in the list view, right click on the entry,
  and select <guimenuitem>Delete</guimenuitem> from the popup menu when it
  appears, or click <guibutton>Delete</guibutton> on the transaction form.
</para>
</sect1>

<sect1 id="details.ledgers.match">
<title id="details.ledgers.match.title">Matching Transactions</title>

<para>
  Generally, when importing transactions, either via QIF, OFX, or HBCI, &kappname;
  will automatically attempt to match them against existing transactions. To
  allow for differences in the dates, there is a default setting of 4 days,
  which may be changed in the settings - Register/Import. Any transactions so
  matched will be highlighted in green. On completion of the import, you should
  review these and either accept or unmatch them.
</para>

<para>
  If you should find that an imported transaction was not automatically matched
  with an existing transaction when it should have matched, then it is possible
  to match them manually. Note that there is a difference between manually
  matching two transactions and simply deleting one of them, even though they
  may appear to have the same effect.  Specifically with OFX or HBCI, it is
  important not to delete the imported transaction, because you will find that
  the next time you import your transactions, the deleted transaction shows up
  again.  This is because modern import formats like OFX and HBCI use a
  <quote>Transaction ID</quote> to identify transactions.  When you delete the
  imported transaction, the transaction ID goes with it, so the importer has no
  way to know this transaction was already imported.
</para> 

<para>
  The solution is to tell &kappname; that the transactions are the same, using
  the manual matching interface. This allows you to match an imported
  transaction with a hand-entered (non-imported) transaction. To do so, select
  one of the transactions to be matched by clicking on it, then select the other
  by left clicking on it while pressing the &Ctrl; key, and then select
  <guimenuitem>Match</guimenuitem> from the context menu. This changes the
  background color to a pale green. This will match and combine the two
  transactions together. The values of both transactions must be the same for
  the match to work, except that the dates may differ by the window specified in
  the settings, as described above. If you are happy with the result, right
  click the matched transaction, then select <guibutton>Accept</guibutton>.
</para>

<para>
  During import of online statements - either directly or by importing a
  downloaded file - &kappname; performs matching as best as it can based on the
  name of the payee and the amount of the transaction. In case of an invalid
  match, a matched transaction can be unmatched.
</para>

<note>
  <para>
    The matching interface will not allow you to match two transactions which
    have both been imported.  Likewise, it won't allow matching between two
    transactions which have both been entered by hand.
  </para>
</note>
</sect1>

<sect1 id="details.ledgers.cleared">
<title>Understanding the Cleared State</title>

<para>
  A transaction can have one of three states: non-reconciled, cleared (C), and
  reconciled (R). When you enter a transaction, it has state
  non-reconciled. Once the bank posts the transaction, the user can clear it
  and thus transform it to state (C). When you receive a statement from the
  bank, all cleared transactions should be on the statement.
</para>

<para>
	<screenshot>
	<screeninfo>Understanding the cleared state</screeninfo>
	<mediaobject>
	<imageobject>
	<imagedata fileref="cleared_state.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>cleared state</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>

<para>
  When you <link linkend="details.reconcile">reconcile your account</link>, you
  actually mark the statements as cleared and check that the difference between
  the beginning balance and the cleared transactions equals the ending balance
  of the statement. When this is the case, you can 'finish reconciling' which
  actually changes the state of all cleared transactions (C) to reconciled (R).
</para>

<para>
  If you try to edit a transaction with at least one split marked as reconciled
  (R), you will be warned.
</para>

<para>
  A fourth state is defined (frozen (F)) but there's currently no way to set
  it. It is reserved for future use. Nevertheless, if a transaction has at least
  one split in state frozen it cannot be edited anymore.
</para>

</sect1>

<sect1 id="details.ledgers.settings"><title id="details.ledgers.settings.title">Changing Transaction Settings</title>

<para>
  There are several settings options that change the appearance and behavior of
  the ledger view in terms of transactions. These settings are found by
  selecting <guimenu>Settings</guimenu> <guimenuitem>Configure
  &kappname;</guimenuitem> from the menu bar, and selecting the
  <guiicon><inlinemediaobject><imageobject><imagedata fileref="ledgers_view.png" />
  </imageobject></inlinemediaobject>Register</guiicon> icon from the list on the
  left.
</para> 

<para>
  Most of the settings are self explanatory. For clarity, several of the
  settings are explained below.
</para>

<itemizedlist>
  <listitem>
    <para>
      Show transaction form (under the Display tab) - toggle to hide the
      transaction input area at the bottom of this screen. Transactions can
      still be entered directly into an empty line at the end of the transaction
      list, through an automatic compact entry area.
    </para>
  </listitem>
</itemizedlist>

<para>
  These images show what direct transaction entry looks like compared to the
  transaction form.
</para>

<para>The transaction input form</para>

<para>
	<screenshot>
	<screeninfo>The transaction form</screeninfo>
	<mediaobject>
	<imageobject>
	<imagedata fileref="transactionform.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>Transaction form</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>

<para>Transactions entered directly</para>

<para>
	<screenshot>
	<screeninfo>Transactions entered directly</screeninfo>
	<mediaobject>
	<imageobject>
	<imagedata fileref="transactionform-off.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>Direct input</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>

<itemizedlist>
  <listitem>
    <para>
      Keep changes when selecting a different transaction/split - by selecting
      the next line in the transaction list or split editor, the changes are
      kept, instead of the default behavior where you have to push the green
      check mark to save changes.
    </para>
  </listitem>
</itemizedlist>

</sect1>

<sect1 id="details.ledgers.other">
<title id="details.ledgers.other.title">Other Functionality</title>

<para>
  Additional options are available from the <guimenu>Transaction
  Options</guimenu> menu, accessed by right-clicking any transaction in the
  list.
</para>

<para>
	<screenshot>
	<screeninfo>The transaction options sub-menu</screeninfo>
	<mediaobject>
	<imageobject>
	<imagedata fileref="ledger_more.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>Transaction options</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>

<para>
  Options include jumping to the Payee's page, creating a schedule, and changing
  the reconciled or cleared indication.
</para>

<para>
  To edit the account information from the ledger view, select
  <guimenu>Account</guimenu> from the menu bar. From this menu, you can change
  the account details, or bring up the Reconcile menu, which allows you to match
  transactions against an official bank statement or credit card notice.
</para>
</sect1>
</chapter>
