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

<title>Schedules</title>

<sect1 id="details.schedules.intro">
<title>Introduction</title>

<para>
  <quote>
    Schedules maintain information about transactions that occur one or more
    times over a specified period of time.
  </quote>
</para>

<para>
  Sometimes called a recurring transaction, a schedule provides a means to
  record information about a transaction that happen on a regular basis.  A
  common schedule is your salary.  Once a month, or maybe weekly, the company
  you work for pays you for services rendered.  This payment can happen in many
  different ways, but each month or week you will receive a payment that needs
  to be recorded.
</para>

<para>
  Because you know these payments are regularly made to you, you can create a
  Schedule to record information about the payment and even create the
  transaction for you when pay day arrives.
</para>

<para>
  Other types of schedules can also be recorded to reflect money coming in and
  out of your accounts.  Common expenses, such as utility bills or money
  transfers, can be recorded with schedules, along with loan
  repayments. Scheduling a payment can also provide a useful reminder that you
  need to make a payment.
</para>

<para>
  A schedule consists of two main parts: the scheduling data and the transaction
  data.  The scheduling data records the occurrence of the schedule, i.e., when
  the transaction is to be entered into the ledger and how.  The transaction
  data records the normal details about the transaction, and will be entered in
  to the ledger as-is.
</para>
</sect1>

<sect1 id="details.schedules.type">
<title>Types of schedules</title>

<para>
  There are four different types of schedules in the current version of
  &kappname;:
</para>

<itemizedlist>
  <listitem><para>Bills</para></listitem>
  <listitem><para>Deposits</para></listitem>
  <listitem><para>Loans</para></listitem>
  <listitem><para>Transfers</para></listitem>
</itemizedlist>

<sect2>
<title>Bills</title>

<para>
  A Bill Schedule is used for money going out of your account, such as a Gym
  membership or a utility bill.
</para>
</sect2>

<sect2>
<title>Deposits</title>

<para>
  A Deposit Schedule is for money coming into your account, such as a pay check.
</para>
</sect2>

<sect2>
<title>Loans</title>

<para>	
  A Loan Schedule is a special type of schedule and is created when dealing with
  <link linkend="details.loans">Loan</link> accounts.
</para>
</sect2>

<sect2>
<title>Transfers</title>

<para>
  A Transfer Schedule is used for money coming out of one account and going into
  another, such as making a credit card payment from your checking account.
</para>
</sect2>

</sect1>

<sect1 id="details.schedules.view">
<title>The schedule view</title>

<para>
  Open the schedule view by clicking on the <guiicon>Schedule
  <inlinemediaobject><imageobject><imagedata
  fileref="schedule_view.png"/></imageobject></inlinemediaobject></guiicon> icon in
  the view selector.
</para>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="scheduleview.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>Schedule View</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>
	
<para>
  The schedule view consists of a view area with two tabs along with a
  <guibutton>New Schedule</guibutton> button above it.  The first tab
  <guibutton>List View</guibutton> shows all schedules, grouped by type.  The
  second tab <guibutton>Calendar View</guibutton> is described in its own
  section below.
</para>
	
<para>
  To create a new schedule click on the button. For Bill, Deposit, and Transfer
  schedules, &kappname; will display the new schedule dialog. Loan schedules are
  handled differently, and are described in the section on Loans.
</para>
</sect1>

<sect1 id="details.schedules.new">
<title>The new schedule dialog</title>
<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="newsched_numbered.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>New Schedule</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>
	
<para>
  A new dialog window is now shown, prompting for the schedule and transaction
  data.  The requested data includes the following:
</para>

<orderedlist numeration="upperalpha">
  <listitem><para>Schedule Name</para></listitem>
  <listitem><para>Next due date</para></listitem>
  <listitem><para>Frequency</para></listitem>
  <listitem><para>Payment method</para></listitem>
  <listitem><para>Amount</para></listitem>
  <listitem><para>Other transaction details</para></listitem>
  <listitem><para>Schedule options</para></listitem>
</orderedlist>

<sect2>
<title>Filling in the fields</title>

<para>
  Enter the name and the date of the next occurrence of this schedule into their
  respective fields.  The name is how the schedule will be shown in the list
  view.  Specify how often the schedule should occur, using the Frequency field
  and drop down list. For example "every 6 weeks" or "every 3 months".  If the
  amount varies transaction to transaction make sure to check the
  <guilabel>Estimate</guilabel> check box and you will be prompted for the
  correct amount when it is entered into the ledger.  Fill in all the
  transaction fields as you would normally with the ledger view.
</para>
</sect2>

<sect2>
<title>Modifying the schedule behavior</title>
<para>
  At the bottom of the dialog are some optional fields that can modify how the
  schedule behaves.  If the schedule occurs on a weekend you can choose whether
  to enter the transaction on the weekend day, the previous Friday, or the next
  Monday.  Typically this option is used to replicate some real world operation
  such as a bank transaction.
</para>
</sect2>

<sect2>
<title>Letting &kappname; enter the transaction into the register</title>

<para>
  To let &kappname; automatically enter the transaction for you when needed,
  make sure that the check box labeled <guilabel>Enter this schedule into the
  ledger automatically when it is due</guilabel> is checked.  Otherwise, when
  the transaction is due to be entered, &kappname; will open a dialog box asking
  you to confirm that you want it to be entered.  This behavior is configurable,
  and more information can be found in the Settings section.
</para>
</sect2>

<sect2>
<title>Letting &kappname; know when the schedule will finish</title>

<para>
  If you know how many transactions are left or when they are due to finish,
  this information can be entered so the transactions are not entered
  indefinitely.  Check the appropriate check box and enter the appropriate
  information.  Only the date or the number of transactions remaining is needed
  because the other can be calculated.
</para>

<para>
  When you have entered all the necessary information click on
  <guibutton>OK</guibutton> to continue.
</para>
</sect2>

</sect1>

<sect1 id="details.schedules.edit">
<title>Editing schedules</title>

<para>
  To edit a schedule simply select the entry in the list and right click to
  bring up the context menu and select <guimenuitem>Edit</guimenuitem>.  This
  will bring up a dialog similar to the New Schedule dialog, where you can alter
  the necessary data.
</para>
</sect1>

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

<para>
  To delete a schedule simply select the entry in the list and right click to
  bring up the context menu and select <guimenuitem>Delete</guimenuitem>.
</para>
</sect1>

<sect1 id="details.schedules.calendar">
<title>The calendar view</title>

<para>
  The calendar tab presents the schedules in a calendar format so it is easier
  to see when they occur.  To switch to the calendar view click on the
  <guibutton>Calendar View</guibutton> tab.
</para>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="calendarview.png" format="PNG" />
	</imageobject>
	<textobject>
	<phrase>Calendar View</phrase>
	</textobject>
	</mediaobject>
	</screenshot>
</para>
	
<para>
  The calendar type can be changed using the <guibutton>Select Style</guibutton>
  button.  Currently only two types exist: Week and Month.  The monthly view is
  the default, and is usually the most useful.  Navigate through the dates using
  the controls as you would with the date input control.
</para>

<para>
  On any day with scheduled transactions, the number of transactions scheduled
  for that day is displayed on the calendar.
</para>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="schedmonthday.png" format="PNG" />
	</imageobject>
	</mediaobject>
	</screenshot>
</para>

<para>
  To view the schedule(s) that fall on that day, move the mouse cursor over the
  highlight and a popup window will be displayed allowing you to view the
  schedule summary.
</para>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="schedpopup.png" format="PNG" />
	</imageobject>
	</mediaobject>
	</screenshot>
</para>

<para>
  If more than one schedule falls on that day you can cycle through them using
  the arrow buttons in the upper corners of the popup window.
</para>

<para>
  If you find that the display is cluttered with schedules and you only want to
  view one type of schedule, then this is possible from the <guibutton>Select
  Schedules</guibutton> dropdown.  After clicking on this button the different
  schedule types are listed and are checked by default
</para>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="schedcaltypes.png" format="PNG" />
	</imageobject>
	</mediaobject>
	</screenshot>
</para>

<para>
  To remove a type from the calendar view simply uncheck it in the list.
</para>

</sect1>

<sect1 id="details.schedules.entering">
<title>Entering scheduled transactions</title>

<para>
  Entering a scheduled transaction means actually entering a transaction into
  the appropriate ledger, using the details specified in the schedule.
  Scheduled transactions can be entered in one of four different ways:
</para>

<itemizedlist>
  <listitem><para>Manually by right clicking on the list entry</para></listitem>
  <listitem><para>Manually via the popup window in the calendar view</para></listitem>
  <listitem>
    <para>
      &kappname; can enter them with or without your interaction upon startup
    </para>
  </listitem>
  <listitem>
    <para>
      &kappname; can enter them with your interaction during online banking or
      import of an electronic bank statement
    </para>
  </listitem>
</itemizedlist>

<sect2>
<title>Manually entering scheduled transactions</title>

<para>	
  You can enter a scheduled transaction manually by right clicking on the list
  entry and selecting <guimenuitem>Enter</guimenuitem> from the popup menu or by
  clicking on the <guibutton>Enter</guibutton> button on the popup window in the
  calendar view.
</para>
</sect2>

<sect2>
<title>Confirming the transaction to enter</title>

<para>
  After selecting either method the Enter Scheduled Transaction dialog window is
  shown prompting you with the required information that was entered when you
  created the schedule.
</para>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="enterschedule.png" format="PNG" />
	</imageobject>
	</mediaobject>
	</screenshot>
</para>

<para>		
  This information can be changed, and the changes can be applied to just this
  one instance of the schedule or to all subsequent transactions.  After
  checking that all the data is correct clicking on <guibutton>OK</guibutton>
  will add the transaction to the ledger and update the next due date of the
  schedule to the next occurrence.  If you have changed any of the transaction
  data a further confirmation of what you changed will be displayed, giving you
  a final chance to accept or reject the changes.
</para>

<para>
	<screenshot>
	<mediaobject>
	<imageobject>
	<imagedata fileref="confirmenter.png" format="PNG" />
	</imageobject>
	</mediaobject>
	</screenshot>
</para>

<para>	
  Select what you want to do with the information presented and click
  <guibutton>OK</guibutton> or <guibutton>Cancel</guibutton>.
</para>
</sect2>

<sect2>
<title>Letting &kappname; enter the scheduled transaction(s) for you</title>

<para>	
  Alternatively, &kappname; can check which schedules are due upon startup and
  enter them for you if the appropriate option was checked when setting up the
  schedule.
</para>

<para>
  If the option was not checked then &kappname; will open the previously
  mentioned dialog and you can follow the steps mentioned there.  &kappname;
  will also open the dialog if the amount is an estimate so you can enter the
  real amount.
</para>

<para>
  You can also opt to have &kappname; not check which transactions are scheduled
  on startup by deselecting the option in the Settings dialog and any overdue
  transaction or transactions due 'today' will be shown in the Home view for you
  to enter manually.
</para>
</sect2>
</sect1>
</chapter>
