<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to you under the Apache License, Version
2.0 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 Unless required by
applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for
the specific language governing permissions and limitations under the
License.
 -->
<section xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 version="5.0" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude"
 xsi:schemaLocation="http://docbook.org/ns/docbook ../../../content/dtd/docbook.xsd"
 xmlns="http://docbook.org/ns/docbook">
 <title>The Financial Account GL Account Type help screen</title>
 <para>The FinAccount Type GL Account (Financial Account Type / GL
  Account Type) is used to specify the default account to be used for a
  specific type of Financial Account. This setup will translate to one
  side of the journal entry only.</para>
 <para>IMPORTANT NOTE: There is a limitation that only one account can
  be specified per Financial Account type. Currently there are 6 types
  of Financial Account (Bank, Deposit, Investment, Gift Certificate,
  Replenish, Service Credit) - so if you have more than one of these
  type of accounts that you need to track separately then there could be
  a problem. </para>
 <para>This mapping is normally be triggered if something is paid or
  uses a Financial Account. Using the demo data this mapping is
  triggered when someone purchases a gift certificate, or pays money
  into a financial account.</para>
 <section>
  <title>How do I add a new Financial Account Type / GL Account mapping?
  </title>
  <para>By default there are 4 Financial Account Type / GL Type mappings
   that are configured as part of the OFBiz demo data.</para>
  <orderedlist>
   <listitem>
    <para>Select the 'FinAccount Type Id' from the drop down list</para>
   </listitem>
   <listitem>
    <para>Select the ' GL Account' to map it to from the drop down list
    </para>
   </listitem>
   <listitem>
    <para>Press the 'Add' button</para>
   </listitem>
   <listitem>
    <para>The new mapping will be displayed in the list at the bottom of
     the screen</para>
   </listitem>
  </orderedlist>
 </section>
 <section>
  <title>How do I update a Financial Account Type / GL Account mapping?
  </title>
  <para>A Financial Account Type / GL Account Type mapping can be
   updated by modifying the GL Account only. Unlike other screens in
   this area if the GL Account Type needs to be updated then it can be
   done by creating a new record with the correct GL Account type which
   will overwrite the existing record.</para>
  <orderedlist>
   <listitem>
    <para>Locate the entry that needs to be updated in the list of
     Financial Account Type / GL Account Type mappings</para>
   </listitem>
   <listitem>
    <para>Modify the 'GL Account 'by using the drop down list next to
     the GL Account field</para>
   </listitem>
   <listitem>
    <para>Press the 'Update' button</para>
   </listitem>
   <listitem>
    <para>The updated mapping will be displayed</para>
   </listitem>
  </orderedlist>
 </section>
 <section>
  <title>How do I remove a Financial Account Type / GL Account mapping?
  </title>
  <orderedlist>
   <listitem>
    <para>Locate the entry that needs to be deleted in the list of
     Financial Account Type / GL Account Type mappings</para>
   </listitem>
   <listitem>
    <para>Press the 'Remove' button next to the entry</para>
   </listitem>
  </orderedlist>
 </section>
</section>
