Archive for December, 2010

Pricelists in OpenERP

December 29, 2010 Leave a comment

A customer asked us on what he was able to do with pricelists on OpenERP, so we decided to take a look at that functionality. So this post will cover what I learnt today regarding pricelists in OpenERP.

As stated by the tipo you can find in the Pricelist list view; “A pricelist contains rules to be evaluated in order to compute the purchase or sale price for all the partners assigned to a pricelist. Pricelists have several versions (2010, 2011, Promotion of February 2010, etc.) and each version has several rules. Example: the customer price of this category of product will be based on the supplier price multiplied by 1.80”

You can find the pricelist functionality in the Sales > Configuration > Pricelists menu. Clicking on that item, will show you two options, Pricelists and Pricelist Versions.

OpenERP 6.0 Main Menu

OpenERP 6.0 Main Menu

Click on the New button and you will see the New Pricelist Form

In this form we will enter the pricelist name, whether it is a sales or purchase pricelist, whether it is active or not, and its currency. In this example I will enter “Brazilian pricelist”, select BRL as the currency, and click save. The idea is to have a pricelist that applies to the computer products sold on the brazilian currency, the Real.

After saving the pricelist, we are ready to enter the pricelist versions. The pricelist version determines which rules of the pricelist will be applied when a sale or purchase invoice is entered by the user. These rules can be simple or become quite complex. We will cover some of them.

First you need to enter the pricelist version name, along with its start date, end date and active status. After entering that information, you can enter the rules. These rules apply mostly to products and its categories.

We will enter a new rule to illustrate how this work. The idea is to change the sale price to 150% of the cost price for all items of the Computer Stuff category, in case the quantity sold is greater than 100 items.

We create the new rule by clicking on the New button in the Version form. A new form will popup where we will enter the rule name, we will select the product, product template and product category that applies to the rule, and we will enter the minimum quantity that applies to the rule and its computation rule. We save the form and that’s all we need to do. Doing so we can enter different rules that cover the complexities that might apply to pricelists.

You can also apply pricelists to partners. On the partner form, select the Sales & Purchases tab, and you will be able to select which pricelist applies to that customer/supplier.



Customizing printed invoices in OpenERP

December 27, 2010 3 comments

These are some things I learnt past week while I was configuring invoices.

Printed invoices in OpenERP are reports. So, if you modify the graphical design of your invoices, such as the logo, all the reports in the system will be modified with the changes you just made. Last week I had to configure the system to print invoices in preprinted forms. To do that I had to remove the header and footer from the invoices, but doing so I modified all the reports I had already created. Until I figured out what to do.

This is what I did. In the administration menu, I selected the Companies->Companies item.


In the companies list you have to select your company and click on the Header/Footer tab. In this tab you will be able to modify the XML code that is printed on every report. You can remove the header by deleting all the lines between the and tags.


This clears the header for the first page of the report. If you would like to remove the header for the inner pages in the report, you have to do the same in the XML code in the Internal Header/Footer tab. This will remove in all the reports the headers, but will not remove the logo. In order to do that, we have to select the General Information tab and remove the logo picture file over there.
After removing the redundant text, we have to generate the report for the invoice. The design of the report can be found in the file system of the server where OpenERP is installed. This design is a XML file named invoice.rml. You can find it in the addons directory. I found it with the following command in my server:
find . -iname invoice.rml
You can edit the file in order to change the layout and the elements printed in the invoice. I recommend making a backup copy before making any changes to the report file. The file format is RML, which stands for (I believe) Report Mark-up Language. It is a mark-up language developed by the development group at ReportLab. You can find more information on this format in this document.
This file has three important markers: template, stylesheet and story. We are interested on two of them, template and story. With the template marker we will describe the report layout, with the story marker we will describe the content itself.For instance, we can define sections for the current date, the customer and its address:
<pageTemplate id=”first”>
<frame id=”date” x1=”13.5cm” y1=”21.5cm” width=”5.5cm” height=”1.2cm”/>
<frame id=”partner” x1=”3.5cm” y1=”18.9cm” width=”15.5cm” height=”1.2cm”/>
<frame id=”address” x1=”4.0cm” y1=”18.0cm” width=”15.0cm” height=”1.2cm”/>


In order to assign text to each section is:

<para style=’body’>31/12/2010</para>
<condPageBreak height=”12″/><para style=’body’>Cristian Sebastian Rocha</para>
<condPageBreak height=”12″/><para style=’body’>Av. Rivadavia 555</para>

We can retrieve the customer information from the system with the following python code:
<para style=’body’>[[ formatLang(o.date_invoice,date=True) ]]</para>
<condPageBreak height=”12″/><para style=’body’>[[ o.partner_id.title or ” ]] [[ ]]</para>
<condPageBreak height=”12″/><para style=’body’>[[ o.address_invoice_id.street ]]</para>
This is more than enough to print on pre-printed invoices forms.

OpenERP stable v6.0 will be released in mid-January 2011

December 27, 2010 1 comment

Checking the OpenERP Facebook page I found the following announcement:

“Our Planning for Openerp 6.0 : RC2: 31/12/2010. Stable V6.0: 17/01/2011 Thanks to community,partners and R&D team for making this possible.”

Can’t wait to get my hands on the new version of this wonderful ERP system.


Resources for learning OpenERP

December 21, 2010 Leave a comment
Polish OpenERP screenshot

Image via Wikipedia

Well, how do you learn how to use OpenERP? There are many resources online, and the best way to get started is reading the OpenERP book, which can be found at:

You can either download an e-book or buy the OpenERP book at Amazon. I read the e-book and it is quite good, I highly recommend it. Have not read the printed book yet and I will receive it early January, so I will make a review of it as soon as I read it.

Reasons for reading the e-book? The most important reason is it portrays how the system works and shows different use cases for implementing the basic functionality of the system. It is an excellent way to begin the learning process with OpenERP.

There are plenty of online resources. Three online presentations I recommend are OpenERP Technical Memento, OpenERP Functional Memento and OpenERP Agile Implementation Memento. First I would study the implementation methodology presentation, then I would read the functional one and at last the technical presentation; which covers the technical aspects of developing modules.

You will also find online videos, most of them can be found at OpenERP Videos. These videos will save you a lot of time. And last but not least, you should check the  OpenERP Planet and the software forums.

Hope this information helps you get started with OpenERP.


A quick look at OpenERP user interface

December 20, 2010 Leave a comment

Just a quick note before starting, this post covers OpenERP 5.0 user interface. I will cover 6.0 UI when it is released.

Most of the times, the information you see at OpenERP is either a List or a Form. The first ones are a list of business objects you can view or edit, whereas the latter allow you edit those business objects. So far so good. What might be difficult to grasp at first is how to fill out those forms or how to navigate those lists. Hence this post.

We will begin with the buttons we find in a form. The image below shows an standard form of a partner in the GTK client:


OpenERP GTK Client Screenshot

OpenERP GTK Client Screenshot


On the top right side of the main tab we can find three buttons. New, Save and Edit, and Cancel. These buttons save what we have done or let us cancel our cnahges. They are designed to allow you change the entry form state. To the right of the buttons we can find the navigation buttons, which allow us go to the previous record on the list and the next one.

After choosing one of the items on the list, we can edit it. Entry forms in OpenERP have a hierarchical structure, with main entries and secundary entries. They can be mandatory or not, and can be identified with the light blue color. They turn red when the user did not enter any information in them.

The secondary entries can be found in the different tabs in the form. For instance, the partner has the following tabs: Main, Sales and Purchases, History, Notes, Accounting and Categories. I advise you to check the different entries before continuing with the form. Below you will see an icon with a hard disk and an arrow pointing at some of the entries.


OpenERP buttons

OpenERP buttons


This icon indicates that it is necessary to save the form before continuing with the entry (just pressing the icon is enough). The entries with these arrows are lists. For instance, the partner can have different contacts and filling this form allows you to create more contacts for this partner.


Lookup button on OpenERP

Lookup button on OpenERP

Another important icon is the folder button, with a magnifying glass on it. This button is related to reference entries. This means that the information to be intered has to exist in the system database. A different way of entering information in a reference field is to write the first letters of the value we wish to enter and press Tab, the system will complete the field with the first value that matches the letters entered on the field. Keep in mind that as long as you enable and disable modules some entries might disappear.

Well, enough for today on OpenERP UI. My next post will cover some of the online resources for learning how to use this ERP system.


First steps with OpenERP in Argentina

December 13, 2010 Leave a comment
A screenshot of the GTK client of OpenERP 5.0....

Image via Wikipedia

The past week I installed and configured an ERP system for a client in Argentina. This client is analyzing and testing this system in order to implement it later. The ERP system is OpenERP, formerly known as TinyERP. This system was developed by OpenERP S.A. and is licensed under the AGPL license. If you would like to get more information on the business model for this company, you can check it out at its website. Enough with the presentation, let’s jump to the system installation.

OpenERP is already available in the Debian and Ubuntu repositories. You can find it at the unstable version of Debian. Ubuntu already has it in its packages. If your server is Debian or Ubuntu, you can do an

$ apt-get install openerp-server

in order to install it. Otherwise I recommend downloading and installing the server from the source code.

To the best of my knowledge this tool needs Python-2.5 or Python 2.6 (I tried both versions, the first one on a Debian server and the latter on an Ubuntu server) and the PostgreSQL database. Once the server is installed, you have to prepare the database. This is done by creating a postgresql user and creating a database. This is necessary, otherwise Postgresql users will not be able to connect to the system.

After installing the server, you need to install a client to use the system. OpenERP has two clients: openerp-client, which is based on GTK and openerp-web which is based on HTML. Both connect through Socket and XML-RPC to the openerp-server. The first client can be downloaded from the Debian/Ubuntu repositories with the following command:

$ apt-get install openerp-client

whereas the web client can be installed with easy_install (these are the instructions for configuring and installing it

After installing the client, you have to configure the system tables and the system itself. You can do that with both clients in the “Create Database option”.

The most confusing part in the installation procedure is how to configure Postgresql. To make the story short, we ended up with five users:

  • the Linux admin user
  • the Postgresql admin user
  • the openerp admin user
  • the openerp database user
  • and the openerp user itself

Keep in mind that the postgresql and the openerp database user do not require password! That is the default configuration.

After configuring the database, you need to install the local modules for your country (in this case, Argentina). I did so by installing the argentina modules which can be found at Launchpad. In order to install these modules, you have to install the launchpad tools. We install them first and then we download the argentinian localization mdoule

$ sudo aptitude install bzr

$ bzr branch lp:openerp-argentina

This last step downloads these modules to the current directory. You should copy them to the modules directory in your openerp installation and enable them. But I will cover this in a later post.


My first post on this Open Source ERP post…

December 13, 2010 Leave a comment

What is the goal of this blog? Well, I just wanted to share my experiences implementing an Open Source ERP system. We are using OpenERP with four clients already, and we (my partners and I) thought it made sense to share what we learnt so far along the way.

Categories: Uncategorized