Posts Tagged ‘Business’

Calculating a product cost with OpenERP

Last week I had the opportunity to try a very useful module that, IMHO, should be included in OpenERP core. This module is product_extended and can be found in the extras repository, you can download it with the following command:

#  bzr branch lp:openobject-addons/extra-6.0

This module does many things, among them shows the product last order for a supplier and its date. But what is really interesting is that it calculates a product cost based on its Bill of Materiales. In order to do that, first you need to check the “Compute Standard Price” check box in the product form,

Then, you can either click on the “Compute Standard Price” button or check it in the product bill of materials (a product can have more than one bill of materials). In the latter, you can find the product information on the Bill of Materials form.

You can calculate the standard price by clicking on the “Compute Standard Price” wizard on the right of the BoM form. How is this cost calculated? This is the interesting part, it takes into account the product cost of each product, plus the hours and cycle costs of every workcenter that is involved in its routing. A very useful module.

It needs a minor change in order to make it work with OpenERP 6.1 but you should try it, I highly recommend it


Automated actions in OpenERP

December 28, 2011 Leave a comment

In OpenERP, as in any other ERP or system, you need to perform certain tasks regularly. Tasks such as performing a backup, calculating ABC categories, running the MRP planner, etc. How do you get this done in OpenERP? It’s quite easy and you don’t need your server administrator to get this done. Scheduling tasks in OpenERP is done via the Scheduled Actions in the Administration > Configuration > Scheduler menu.
Scheduled Actions view
In this section, you will be able to create new actions. So click on the New button in the view.

After clicking New you will see a form that allows you to enter information in two tabs, an Information tab and a Technical tab. In the first tab you will be able to enter the name of the action, whether it is active or not, and how regularly it is executed. In the technical tab, and you might need a programmer help for this, you have to enter the name of the object that will run the action; along with the function to schedule and its arguments. This is the tricky part of scheduling an action, since you need to get into the details of how the system works and you will need your programmer to dig into the object code. But it is worth it, once you understand how this works, you will be able to get many things accomplished.

Logging from your OpenERP module

December 27, 2011 Leave a comment

I always wondered how to, in the OpenERP web client, show those informational messages in the top of the web client. Messages such as ‘PO/00001 created’. They are very informational for users.

Well… reading a presentation on the differences between OpenERP v5 and v6 I found that one of the additions was the self.log function which, as its name implies, logs a message to the audit logs (which can be accessed at Administration/Audit/Logs) and the Administration Dashboard (which can be accessed at Administration/Reporting/Dashboard/Administration Dashboard).

The function has the following syntax:

self.log(cr, uid,, _(‘Statement %s is confirmed, journal items are created.’) % (st_number,))

The function returns the id of the entry created in the res_log table (or res.log business object) and takes the message to log and the context as parameters


Checking lead-times in OpenERP

December 23, 2011 Leave a comment

In case you need to check your suppliers’ lead-times in OpenERP, it is quite easy. You need to go to Warehouse > Reporting >  Movement Analysis. You will be able to see a view where you can filter by partner, product, location and other attributes the planned lead-time and execution lead-time. This is a great report for checking the accuracy of lead-times.

Movement Analysis View in OpenERP

Movement Analysis View

Data integrity issues in MRP implementations

December 22, 2011 Leave a comment

A good description of the data integrity issues found in MRP implementations can be found in the article on MRP in Wikipedia. In a nutshell, if the

English: MRP

Image via Wikipedia

information in your manufacturing system is bad, don’t expect its planning to be any better (or GIGO). While you are implementing the MRP module in OpenERP, you should pay attention to the following information items in your systems:

  • Lead-times: critical for the timing phase of your planning. If production or supplier lead-times are not accurate, don’t be surprised to find planning dates that are not realistic.
  • Stock levels: very critical, since all the procurements are created when the stock levels drop down below its reorder point or when a customer makes an order (depending on how you have your system set-up)
  • Bills of Materials: your system will procure either raw material, work in process inventory or end-items. Which items it will procure depends on the accuracy of Bill of Materials. Your BoM needs to reflect how your product is assembled. I found some places where the BoM only reflects the cost structure of the end-item, and that is wrong. The cost of the end-item is a different problem that needs to be addressed in a different module than the manufacturing module.
  • Products: your system needs to have all the products you procure (either by purchasing or manufacturing) and sell. And its description needs to be complete.
  • MPS, or production schedule: needs to be available in order to make the plan. In all the manufacturing plants there is a production schedule. People might not be aware there is one, but actually you can find it in the daily or weekly manufacturing plans.
  • Reorder points: you need reorder points (minimum and maximum stock levels) in some products in order to not disrupt your quality of service. We will not get into the calculation of these items (by now)

    We will get into more detail on these items and how to address them in further posts


Deleted records in OpenERP

December 21, 2011 Leave a comment
The blue/white elephant logo of the PostgreSQL...

Image via Wikipedia

Sooner or later you will find yourself with pgAdmin (or any other query tool) querying the OpenERP database in order to pull statistical information. It happens, and it is a healthy sign of your OpenERP implementation.

Something you need to keep in mind is how OpenERP “deletes” its records. It does not physically remove them. It just marks them as deleted. And it does so with the active field in the table. This field, which happens to be a boolean field, if true indicates that the record is not deleted. Otherwise you should not take the record into account in your queries.


OpenERP and E-Commerce

Shield logo for Ubercart project

Image via Wikipedia

Last week a client asked me if OpenERP had an E-Commerce solution, and she was disappointed when I said no. But she was glad when I explained her why it was already integrated with existing open-source e-commerce solutions, such as Magento. And I wanted to share my thoughts on this, since some people keep asking for integrated e-commerce functionality (as well as business intelligence functionality).

To the best of my knowledge, to this day OpenERP already has connectors to Magento Commerce and Joomla. Does not have connectors to Drupal (Ubercart and Drupal Commerce projects) but I expect OpenERP to have those connectors soon since the Drupal community is growing fast (actually I am really tempted to develop a connector to Drupal Commerce but first I need a project to fund the development, and I need the time. Plus, Drupal Commerce first has to release an stable release). Which means, you can install your e-commerce solution, and integrate it with OpenERP.

What areas do you have to integrate? The product catalog comes to my mind (and the ability to manage multiple pictures per product). Then the sales orders, invoices, price lists and the delivery and inventory information. Those are the information items that should be available to the e-commerce solution, in order to make it work properly. Then the customer information, such as credit limits and order history. Lots of information that needs to be pulled from OpenERP.

OK, now why it is not a good idea for OpenERP to be a full-fledge e-commerce solution. Because the ERP and MRP problems are big enough. That’s why. E-Commerce is a different beast on its own, that demands other skills. Such as having the ability to make the page look good and the capability of implementing a design in your page. Plus, the page needs to be optimized for search, and the e-commerce solution needs to manage content the way a CMS does. That is quite an stretch for an ERP system. Ah! Have I mentioned that e-commerce packages need to integrate with payment gateways and sometimes need to be multi-lingual?

At the end of the day, the OpenERP community is not big enough to justify the development of an e-commerce solution on its own, and the e-commerce packages around already do an outstanding job. We will be much better off focusing on the development of the integration connectors, rather than developing an e-commerce solution from the ground-up.