<?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>
    <author>
      <personname><firstname>Michael</firstname><surname>Carpino</surname></personname>
      <email>mfcarpino@gmail.com</email>
    </author>
  </authorgroup>
  <date>2019-04-02</date>
  <releaseinfo>5.0.3</releaseinfo>
</chapterinfo>

<title>Ledgers</title>

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

<para>
  The Ledger view is functionally the data integration center of &kmymoney;.  This
  view is for entering, examining, deleting, and editing transactions in your defined
  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 transaction; and editing, duplicating, deleting, and scheduling
  existing transactions.  Along with this it also provides the ability to move,
  mark, and go to additional account transaction details.  Other functionality
  within the Ledgers View includes modifying 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 form, which may or may not appear, depending upon
      your configuration as selected in the Configure &kmymoney; Ledger section.
    </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 easily select any 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 form</link> at the
  bottom of the view may change.
</para>

<para>
  To the right of the account dropdown list, are two additional fields. The
  filter box provides the ability to search for matching transactions
  that will be displayed in the list view. The text specified can be in any
  of the fields of the transaction for the specific account. The status field
  is a dropdown list. The status field list allows for the selection of:
  Any status, Imported, Matched, Erroneous, Not marked, Not reconciled, 
  Cleared, and scheduled transactions.
</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 a transaction has been entered, 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 order of
  transactions is sorted by date with the most recent transaction on the bottom.
  Clicking the &RMB; on the header of the transaction list brings
  up a dialog box that will allow  the ability 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">&kmymoney; 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 searching within
   the filter box or transaction type dropdown, as described above.
</para>

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

<formalpara><title>Last reconciled</title>
  <para>
    This is the most recent date when 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 &kmymoney; 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 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 form or entering the data directly into the transaction
  list.  The transaction form is displayed by default and this is the
  method we will discuss first. Turning off the transaction form can be 
  accomplished by going to the Ledger section in the Configure &kmymoney; that's
  within the Settings.
</para>

<para>
  The fields in the input area match the information fields in the transaction
  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 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 form at the bottom of the ledger view is the interface
  for manually creating transactions.
</para>

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

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

<para>
  If you are unsure which method to choose simply use Deposit for any money
  coming into the account, Withdrawal for money going 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 the appropriate tab.
</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, &kmymoney; will offer alternatives matching the characters you begin
  to enter.  To select the matching content simply click on the entry by using
  your mouse or selecting the appropriate keyboard keys.  If the entry is not
  listed finish typing the content to add the new value.  The next time you type
  the content, &kmymoney; will find it for you as you begin to enter the initial
  characters.
</para>

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

<para>
  The Payee is who the money came from/to.  If the payee is a new entry
  &kmymoney; 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, phone number and account
  number as well as notes can be updated in the Payees view.
</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 defined field.  If you
  have entered the category and it does not exist then &kmymoney; will ask if
  you want to create a new one.  If the selection is Yes &kmymoney; will then
  open a dialog box that allows for the further definition of the category based 
  on General, Hierarchy and Tax characteristics. 
</para>

<para>
  If you wish to associate parts of the transaction with different categories,
  &kmymoney; can handle this need.  An example transaction might be a cash
  withdrawal of 50 of which you use 10 on food, 20 on beer and 20 as
  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">&kmymoney; fields</link>
  section for more information on how to use this field.
</para>
</sect3>

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

<para>
  Tags are similar to Categories, and can be used to maintain an orthogonal view
  to Categories.  They provide the ability to group transactions within a Category based
  on your defined needs.  This need could be defined by a specifics to Person, Place, or
  Thing. For example, you might have a Category for each different type of automotive
  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.  Within the Tag field &kmymoney; will allow for multiple tags
  entered within a single transaction.  Also, you can enter a tag on an individual split.
</para>
</sect3>

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

<para>
  A multi-line memo can be entered if you wish to help you remember further
  details of a specific transaction.
</para>
</sect3>

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

<para>
  The check number can be entered if needed.  Note that the check number field can
  be made visible or invisible in the ledger if desired.  This is configured in 
  the Ledger Settings dialog.
</para>
</sect3>

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

<para>
  The transaction's date must be entered to specify when the transaction took
  place.  See the special <link linkend="reference.widgets">&kmymoney;
  fields</link> section for more information on how the date input field can be
  used to make entering dates quicker and easier.  For transactions in checking
  and credit card accounts, it is your choice whether to use the actual date
  (when you wrote the check or made the purchase) or the posting date as
  reported by the bank or credit card company.  Using the actual date can help
  you track when you made the purchase, for example, but the statement or
  downloaded data from the bank is more likely to use the posting date.
</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 any of these mathematical symbols: + - * / in a formula, as in
  <emphasis>12 + 3</emphasis>. When entering the plus sign, the calculator will
  be opened.  Note that only the final result of any calculation will be saved
  as the amount of the transaction.
</para>

<para>
  When you are satisfied that all the fields have been adequately filled in,
  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 directly.
</para>

<para>
  To do this you must first let &kmymoney; 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 the <menuchoice><guimenu>Settings</guimenu>
  <guimenuitem>Configure &kmymoney;...</guimenuitem></menuchoice> menu item and
  selecting the <guiicon><inlinemediaobject><imageobject><imagedata
  fileref="ledgers_view.png" format="PNG"/></imageobject></inlinemediaobject>
  </guiicon> register 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 or edit 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;&Ins;</keycombo>, or click
  <guibutton>New</guibutton> at the foot of the window. The &Up;
  and &Down; 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; key moves to the next field just as the
  &Tab; key except for the last entry field where it saves 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 form or the
  transaction list, start a new transaction, including entering the total
  amount. Then, instead of selecting a category, click the
  <guibutton>Split</guibutton> button to the right of the
  <guilabel>Category</guilabel> field.  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;&Ins;</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 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 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 you import transactions, either via QIF, OFX, or HBCI, &kmymoney;
  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 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 may show 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 &kmymoney; 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 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, &kmymoney; 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 State of a transaction</title>

<para>
  A transaction can have one of three states: non-reconciled (blank), cleared
  (C), or reconciled (R). When a transaction is entered, it has state of
  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</link> your account, 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>
</sect1>

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

<para>
  There are several 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 &kmymoney;</guimenuitem>
  from the menu bar, and selecting the <guiicon><inlinemediaobject><imageobject>
  <imagedata fileref="ledgers_view.png" format="PNG"/></imageobject>
  </inlinemediaobject></guiicon> ledger 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>
<!-- FIXME - if these are explained in the chapter on settings, just refer to that
     as is done above, and don't duplicate here.  Leaving for now, but should clean
     up later. -->

<itemizedlist>
  <listitem>
    <para>
      Show transaction form (under the Display tab) - toggle to hide the
      transaction form 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 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 Payees view for the Payee in the transaction,
  creating a schedule, and changing the reconciled or cleared status.
</para>

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

