5
You'll create all the elements in the database that you need to carry out the use case. These are
6
specified in the functional requirements.
9
single: accounts; configuring
14
You need to start off with a minimal set of accounts, and to do that you will need a couple of
15
account types. You can structure your accounts into a chart at any time (and, in fact, you can
16
structure them into several additional charts at the same time as you'll see in the chapter
17
:ref:`ch-configacct`), so you don't need to be concerned unduly about structure.
25
Create account types using :menuselection:`Financial Management --> Configuration -->
26
Financial Accounting --> Financial Accounts --> Account Types` and then clicking the
27
:guilabel:`New` button. You'll need the following four types, the first of which is shown
28
in figure :ref:`fig-oech03accty`.
30
.. table:: Defining Account Types
32
============== ======== ======== =============== =============== ===============
33
Acc. Type Name Code Sequence Sign on Reports Deferral Method Partner Account
34
============== ======== ======== =============== =============== ===============
35
View view 5 Positive None unchecked
36
Income income 5 Positive Unreconciled unchecked
37
Expense expense 5 Positive Unreconciled unchecked
38
Cash cash 5 Positive Balance unchecked
39
============== ======== ======== =============== =============== ===============
43
.. figure:: images/openerp_ch03_acctype.png
52
Create accounts using :menuselection:`Financial Management --> Configuration -->
53
Financial Accounting --> Financial Accounts --> List of Accounts` and then clicking the
54
:guilabel:`New` button.
56
You need accounts to handle the purchase and sales orders that haven't yet been paid,
57
two more for the receipt and shipping of goods, and one for the payment and receipt of funds.
58
And one 'organizing' account that's just a view of the other five. So
59
you'll need the following six accounts, one of which is shown
60
in :ref:`fig-oech03accts`.
62
.. table:: Defining Accounts
64
============= ==== ============= =============== ============ =========
65
Name Code Internal Type Parent Account Type Reconcile
66
============= ==== ============= =============== ============ =========
67
Minimal Chart 0 View View unchecked
68
Payable AP Payable 0 Minimal Chart Expense checked
69
Receivable AR Receivable 0 Minimal Chart Income checked
70
Cash C Others 0 Minimal Chart Cash unchecked
71
Purchases P Others 0 Minimal Chart Expense unchecked
72
Sales S Others 0 Minimal Chart Income unchecked
73
============= ==== ============= =============== ============ =========
77
.. figure:: images/openerp_ch03_accts.png
83
The :guilabel:`Account Type` entry is taken from the list of types that you just created.
84
Although it looks a bit like a text box, it doesn't behave in quite the same way.
85
A single :kbd:`Del` or :kbd:`Backspace` keystroke is all you need to delete the whole text,
86
and when you type the name (or part of the name) you still need to associate that text
87
with the entry by clicking the :guilabel:`Search` icon to the right of the field.
90
single: properties; defining
95
You now define some default properties so that you don't have to think about
96
which account is used for which transaction every time you do something.
97
The main new properties are the four that associate accounts payable and receivable
98
to partners, and expenses and income to product categories.
100
Create properties using :menuselection:`Administration --> Configuration -->
101
Properties --> Default Properties` and then clicking the :guilabel:`New` button.
103
.. table:: Defining Properties
105
============================== ========= ================== =============================== ===============
106
Name Company Fields Value Parent Resource
107
============================== ========= ================== =============================== ===============
108
property_account_payable Tiny sprl Account Payable (account.account) AP Payable (None)
109
property_account_receivable Tiny sprl Account Receivable (account.account) AR Receivable (None)
110
property_account_expense_categ Tiny sprl Expense Account (account.account) P Purchases (None)
111
property_account_income_categ Tiny sprl Income Account (account.account) S Sales (None)
112
============================== ========= ================== =============================== ===============
114
.. tip:: Mistakes in configuring accounts and properties
116
It's easy to make mistakes in configuring the accounts and their properties, but the consequences
117
are not immediately obvious. You'll mostly discover mistakes when trying to make a Purchase or
118
Sale Order (see later, for example, :ref:`sect-PO`), where the accounts are required fields or,
119
if you're diligent, when you set up Partners.
121
If you configure them correctly at this stage then fields will be completed automatically and you'll
122
never know a thing. If you don't configure all this correctly then you won't be able to save the
123
order form until you have corrected the problem or until you manually set the accounts.
125
Since this configuration is quite tedious you'd be best finding a certified Chart of Accounts that
126
that has already been set up to meet your needs, if you can find one.
129
single: journals; configuring
134
You'll also need to configure some journals, which are used to record the transactions from one account
135
to another when invoices are raised and then paid. Create journals from the menu
136
:menuselection:`Financial Management --> Configuration -->
137
Financial Accounting --> Financial Journals` and then clicking the :guilabel:`New` button.
139
.. table:: Defining Journals
141
===================== ==== ============= ================= ================ ===================== ======================
142
Journal Name Code Type View Entry Sequence Default Debit Account Default Credit Account
143
===================== ==== ============= ================= ================ ===================== ======================
144
Purchase Journal PUJ Purchase Journal View Purchase Journal P Purchases P Purchases
145
Sale Journal SAJ Sale Journal View Sale Journal S Sales S Sales
146
Bank Journal BNK Cash Cash Journal View Account Journal C Cash C Cash
147
===================== ==== ============= ================= ================ ===================== ======================
149
.. tip:: Mistakes in configuring journals
151
It's easy to make mistakes in configuring the journals, too, and the consequences
152
are also not immediately obvious. You'll mostly discover mistakes when creating an invoice
153
(which happens at different points in the process depending on your configuration).
154
In this example, validating a Purchase Order creates a draft invoice
155
(see later, again for example, :ref:`sect-PO`), where a journal is required.
157
As with accounts and properties, if you configure them correctly at this stage then
158
the fields will be completed automatically and you'll never know a thing.
159
If you don't configure all this correctly then there will be errors with the
160
order form or corresponding draft invoice
161
until you have corrected the problem or until you manually set the journal.
166
single: Main Company; configuring
168
Configuring the Main Company
169
----------------------------
171
Start to configure your database by renaming the :guilabel:`Main Company` from its default of \
172
``Tiny sprl``\ to the name of your own company or (in this case) another example company. When you
173
print standard documents such as quotations, orders and invoices you'll find this configuration
174
information used in the document headers and footers.
176
To do this, click :menuselection:`Partners --> Partners` and click the name of the only company
177
there, which is \ ``Tiny sprl``\ . This gives you a read-only view form view of the company, so
178
make it editable by clicking the :guilabel:`Edit` button to the upper left of the form.
180
.. tip:: Editable form in the web client
182
When toggling from the list view to the form view of an item, you can generally click its name in
183
the list view to show a non-editable view or the pencil icon by the left-hand edge of the line to
184
open it in an editable view. You can toggle between editable and non-editable once you're in form
187
Change the following:
189
* :guilabel:`Name` : \ ``Ambitious Plumbing Enterprises``\ ,
191
* :guilabel:`Contact Name` : \ ``George Turnbull``\ .
193
Before you save this, look at the partner's accounting setup by clicking the fifth tab
194
:guilabel:`Accounting`. The fields :guilabel:`Account Receivable` and :guilabel:`Account Payable`
195
have account values in them that were taken from the account properties you just created.
196
You don't have to accept those values: you can enter any suitable account you like at this stage,
197
although Open ERP constrains the selection to ones that make accounting sense.
199
Back at the first tab, :guilabel:`General` change any other fields you like,
200
such as the address and phone numbers, then :guilabel:`Save`. This
201
changes one Contact for the Partner, which is sufficient for the example.
203
From the :guilabel:`MAIN MENU`, click :menuselection:`Administration --> Users --> Company Structure -->
204
Companies` and edit the only entry there:
206
* :guilabel:`Company Name` : \ ``AmbiPlum``\ ,
208
* :guilabel:`Partner` : should already show \ ``Ambitious Plumbing Enterprises``\ ,
210
* :guilabel:`Report Header` : \ ``Ambitious Plumbing``\ ,
212
* :guilabel:`Report Footer 1` : \ ``Best Plumbing Services, Great Prices``\ ,
214
* :guilabel:`Report Footer 2` : \ ``Ambitious – our Registered Company Details``\ .
216
Figure :ref:`fig-oech03co` shows the effect of this.
217
You can also change various other company-wide parameters for reports and scheduling in the other tabs,
218
and you can upload a company logo of a specific size for the reports. Click :guilabel:`Save` to store this.
222
.. figure:: images/openerp_ch03_co.png
226
*Changing company details*
228
You can leave the currency at its default setting of \ ``EUR`` \ for this example. Or you can
229
change it in this Company and the two default Pricelists (:menuselection:`Products --> Pricelists --> Pricelists`) if
230
you feel compelled to do that.
234
The examples in this book are in USD and EUR. You, the reader, could use your home currency
235
(perhaps CAD, CNY, GBP, or IDR) in their place.
239
pair: partner; category
240
pair: partner; contact
242
Creating partner categories, partners and their contacts
243
--------------------------------------------------------
245
You'll now create a suppliers category and a customers category. Partner categories are useful for
246
organizing groups of partners but have no special behavior that affects partners, so you can assign
247
them as you like. Then you'll define one supplier and one customer, with a contact for each.
249
To do this use the menu :menuselection:`Partners --> Configuration --> Partner Categories` and
250
click :guilabel:`New` to open a new form for defining :guilabel:`Partner Categories`.
251
Define the two categories that follow by just entering their :guilabel:`Category Name` and saving
258
Then create two partners from the menu :menuselection:`Partners --> Partners`. Click on the
259
:guilabel:`New` button to open a blank form and then add the following data for the first partner
262
* :guilabel:`Name` : \ ``Plumbing Component Suppliers``\ ,
264
* :guilabel:`Customer` checkbox : \ ``unchecked``\ ,
266
* :guilabel:`Supplier` checkbox : \ ``checked``\ ,
268
* :guilabel:`Contact Name` : \ ``Jean Poolley``\ ,
270
* :guilabel:`Address Type` : \ ``Default``\ ,
272
* add \ ``Suppliers``\ to the :guilabel:`Categories` field by selecting it from the Search List,
274
* then save the partner by clicking the :guilabel:`Save` button.
276
Figure :ref:`fig-oech03part` shows the result.
280
.. figure:: images/openerp_03_part.png
286
.. note:: Contact Types
288
If you've recorded several contacts for the same partner you can specify which contact is used for
289
various documents by specifying the Address Type.
291
For example the delivery address can differ from the invoice address for a partner. If the Address
292
Types are correctly assigned, then Open ERP can automatically select the appropriate address
293
during the creation of the document – an invoice is addressed to the contact that's been assigned
294
the Address Type of Invoice, otherwise to the Default address.
296
For the second partner, proceed just as you did for the first, with the following data:
298
* :guilabel:`Name` : \ ``Smith and Offspring``\ ,
300
* :guilabel:`Customer` checkbox : \ ``checked``\ ,
302
* :guilabel:`Supplier` checkbox : \ ``unchecked``\ ,
304
* :guilabel:`Contact Name` : \ ``Stephen Smith``\ ,
306
* :guilabel:`Address Type` : \ ``Default``\ .
308
Then add \ ``Customers``\ in the :guilabel:`Categories` field. :guilabel:`Save` the form. To check
309
your work you can go to the menu :menuselection:`Partners --> Partner Categories` and click on each
310
category in turn to see the companies in the category.
312
.. note:: Multiple Partner Categories
314
If this partner was also a supplier then you'd add Suppliers to the categories as well, but there's
315
no need to do so in this example. You can assign a partner to multiple categories at all levels of
320
pair: product; category
322
Creating products and their categories
323
--------------------------------------
325
Unlike partner categories and their assigned partners, product categories do have an effect on the
326
products assigned to them – and a product may belong to only one category. Select the menu
327
:menuselection:`Products --> Configuration --> Product Categories` and click :guilabel:`New` to get
328
an empty form for defining a product category.
330
Enter \ ``Radiators``\ in the :guilabel:`Name` field. You'll see that other fields, specifically those
331
in the :guilabel:`Accounting Properties` section, have been automatically filled in with values of
332
accounts and journals. These are the values that will affect products – equivalent fields in a
333
product will take on these values if they, too, are blank when their form is saved.
334
Click :guilabel:`Save`.
336
.. note:: Properties fields
338
Properties have a rather unusual behavior. They're defined by parameters in the menus in
339
:menuselection:`Administration --> Configuration --> Properties`, and they update fields only when a form
340
is saved, and only when the fields are empty at the time the form is saved. You can manually
341
override any of these properties as you need.
343
Properties fields are used all over the Open ERP system and particularly extensively in a multi-
344
company environment. There, property fields in a partner form can be populated with different
345
values depending on the user's company.
347
For example the payment conditions for a partner could differ depending on the company from which
352
UOM is an abbreviation for Unit of Measure. Open ERP manages multiple units of measure for each
353
product: you can buy in tons and sell in kgs, for example. The conversion between each category is
354
made automatically (so long as you have set up the conversion rate in the product form first).
356
.. tip:: Managing double units of measure
358
The whole management of stock can be carried out with double units of measure (UOM and UOS – for
359
Unit of Sale). For example an agro-food company can stock and sell ham by piece but buy and value
360
it by weight. There's no direct relationship between these two units so a weighing operation has to
363
This functionality is crucial in the agro-food industry, and can be equally important in
364
fabrication, chemicals and many other industries.
366
Now create a new product:
368
#. Go to the :menuselection:`Products --> Products` menu and click :guilabel:`New`.
370
#. Create a product – type \ ``Titanium Alloy Radiator``\ in the :guilabel:`Name` field.
372
#. Click the :guilabel:`Search` icon to the right of the :guilabel:`Category` field to select the
373
:guilabel:`Radiators` category.
375
#. The :guilabel:`Product Type` field should stay as \ ``Stockable Product``\ its default value.
376
The fields :guilabel:`Procure Method`, :guilabel:`Supply Method`, :guilabel:`Default UOM`,
377
and :guilabel:`Purchase UOM` should
378
also stay at their default values: in fact every other field in this tab remains untouched.
380
.. figure:: images/product.png
386
#. Click on the :guilabel:`Prices & Suppliers` tab and enter \ ``57.50``\ into the :guilabel:`Cost Price`
387
field and \ ``132.50``\ into the :guilabel:`Sale Price` field.
389
#. Click the :guilabel:`Accounting` tab, then click :guilabel:`Save` and observe that
390
:guilabel:`Accounting Properties` here remain empty. When product
391
transactions occur, the Income and Expense accounts that you've just defined in the Product
392
Category are used by the Product unless an account is specified here, directly in the product, to
395
#. Once the product is saved it changes to a non-editable state. If you had entered data
396
incorrectly or left a required field blank, the form would have stayed editable and you'd need to
397
click from tab to tab to find a field colored red, with an error message below it, that would have
398
to be correctly filled in.
401
single: stock; location
406
Click :menuselection:`Stock Management --> Stock Locations Structure` to see the hierarchy of stock
407
locations. These locations have been defined by the minimal default data loaded when the database
408
was created. You'll use this default structure in this example.
410
Open ERP has three predefined top-level location types , ``Physical Locations`` and ``Partner Locations``
411
that act as their names suggest, and ``Virtual Locations`` that are used by Open ERP for its own purposes.
413
#. From the :guilabel:`Main Menu` click on :menuselection:`Stock Management --> Configuration -->
414
Locations` to reach a list view of the locations (not the tree view).
416
#. Click on the name of a location, such as \ ``Physical Locations/Tiny SPRL``\ to open a descriptive form view. Each
417
location has a :guilabel:`Location type` and a :guilabel:`Parent Location` that defines the hierarchical structure.
418
An :guilabel:`Inventory Account` can also be assigned to a location. While you're here you should change
419
the location's name to ``Ambitious Plumbing Enterprises`` , since it was named before you changed the
422
#. From the :menuselection:`Main Menu` click :menuselection:`Stock Management --> Configuration
423
--> Warehouses` to view a list of warehouses. There's only the one at the moment, which
424
should also be renamed from ``Tiny SPRL`` to ``Ambitious Plumbing Enterprises`` .
426
.. todo:: Get this, below, right!
428
.. tip:: Valuation of stock
430
If you want real-time stock valuation that tracks stock movements you must assign an account to
431
each stock location. As product items are added to and taken from each location Open ERP generates
432
an account entry for that location defined by the configuration of the product being moved – and
433
a stock valuation based (in the current versions of Open ERP) on either :guilabel:`Cost Price` or
434
:guilabel:`Average Price`.
436
For example, if you assign an account to the Supplier location you'll be able see the value of
437
stock that you've taken from the supplier. Its contents can be valued in your accounts and it
438
can manage inventory on consignment.
440
A Warehouse contains an input location, a stock location and an output location for sold products.
441
You can associate a warehouse with a partner to give the warehouse an address. That doesn't have to
442
be your own company (although it can be): you can easily specify another partner who may be holding
443
stock on your behalf.
446
single: location structure
448
.. note:: Location Structure
450
Each warehouse is composed of three locations :guilabel:`Location Input`, :guilabel:`Location Output`, and
451
:guilabel:`Location Stock`. Your available stock is given by the contents of the :guilabel:`Location Stock`
452
and its child locations.
454
So the :guilabel:`Location Input` can be placed as a child of the :guilabel:`Location Stock`, which means
455
that when :guilabel:`Location Stock` is interrogated for product quantities, it also takes account of the
456
contents of the :guilabel:`Location Input`. :guilabel:`Location Input` could be used as a goods-in QC location.
457
The :guilabel:`Location Output` must never be placed as a child of :guilabel:`Location Stock`,
458
since items in :guilabel:`Location Output`, which can be considered to be
459
packed ready for customer shipment, should not be thought of as available for sale elsewhere.
461
In the default configuration, Open ERP uses the same ``Stock`` location for both Input and Output because it
462
is easier to understand when you're starting out.
465
single: account; chart
466
single: chart of accounts
468
Setting up a chart of accounts
469
------------------------------
471
You can set up a chart of accounts during the creation of a database, but for this exercise you'll
472
start with the minimal chart that you created (just a handful of required
473
accounts without hierarchy, tax or subtotals).
475
A number of account charts have been predefined for Open ERP, some of which meet the needs of
476
national authorities (the number of those created for Open ERP is growing as various contributors
477
create and freely publish them). You can take one of those without changing it if it's suitable, or
478
you can take anything as your starting point and design a complete chart of accounts to meet your
479
exact needs, including accounts for inventory, asset depreciation, equity and taxation.
481
You can also run multiple charts of accounts in parallel – so you can put all of your transaction
482
accounts into several charts, with different arrangements for taxation and depreciation, aggregated
483
differently for various needs.
485
Before you can use any chart of accounts for anything you need to specify a Fiscal Year. This
486
defines the different time periods available for accounting transactions. An initial Fiscal Year
487
was created during the database setup so you don't need to do any more on this.
489
Click :menuselection:`Financial Management --> Charts --> Charts of Accounts` and then click
490
:guilabel:`Open Charts` to open a new
491
:guilabel:`Account charts` form where you define exactly what you want to see.
492
Click :guilabel:`Open Charts` to accept the defaults and see a
493
hierarchical structure of the accounts.
496
pair: database; backup
498
Make a backup of the database
499
-----------------------------
501
If you know the super-administrator password, make a backup of your database using the procedure
502
described at the very end of :ref:`ch-inst`. Then restore it to a new database: \ ``testing``\ .
504
This operation enables you to test the new configuration on \ ``testing``\ so that you can be sure
505
everything works as designed. Then if the tests are successful you can make a new database from \
506
``openerp_ch03``\ , perhaps called \ ``live``\ or \ ``production``\ , for your real work.
508
From here on, connect to this new \ ``testing``\ database logged in as \ ``admin``\ if you can.
509
If you have to make corrections, do that on \ ``openerp_ch03``\ and copy it to a new \
510
``testing``\ database to continue checking it.
512
Or you can just continue working with the \ ``openerp_ch03``\ database to get through this
513
chapter. You can recreate \ ``openerp_ch03``\ quite quickly if something goes wrong and you can't
514
recover from it but, again, you'd need to know your super-administrator password for that.
516
.. Copyright © Open Object Press. All rights reserved.
518
.. You may take electronic copy of this publication and distribute it if you don't
519
.. change the content. You can also print a copy to be read by yourself only.
521
.. We have contracts with different publishers in different countries to sell and
522
.. distribute paper or electronic based versions of this book (translated or not)
523
.. in bookstores. This helps to distribute and promote the Open ERP product. It
524
.. also helps us to create incentives to pay contributors and authors using author
525
.. rights of these sales.
527
.. Due to this, grants to translate, modify or sell this book are strictly
528
.. forbidden, unless Tiny SPRL (representing Open Object Press) gives you a
529
.. written authorisation for this.
531
.. Many of the designations used by manufacturers and suppliers to distinguish their
532
.. products are claimed as trademarks. Where those designations appear in this book,
533
.. and Open Object Press was aware of a trademark claim, the designations have been
534
.. printed in initial capitals.
536
.. While every precaution has been taken in the preparation of this book, the publisher
537
.. and the authors assume no responsibility for errors or omissions, or for damages
538
.. resulting from the use of the information contained herein.
540
.. Published by Open Object Press, Grand Rosière, Belgium