Monday, September 1, 2008

OSS Experience

  • OVERVIEW

The package Openbravo POS is a point of sale application that is designed for touch screen and it is also a program that allows user to be able to assign customers to receipts using the customer's loyalty card, create invoices, track the account of the customer, payments, customer's report execution, etc.












The Openbravo POS website (http://sourceforge.net/forum/forum.php?forum_id=861610) has the description of the package, introduction, download links, etc.

Finally, the main objective of this particular program or package is to provide convenience for multiusers to do products entry forms, charts, and reports.

_______________________________________________________
  • Prime Directive #1: The system successfully accomplishes a useful task.
The Openbravo POS program is very interesting. I work as a sales associate and our company (Food Pantry) was of one the first company to use Celerant RMS, which almost has the same features as the Openbravo POS. I tried some of the features of Openbravo POS such as processing transactions, edit customer's information, inventory management, back office and more.

Therefore, I would say that Prime Directive #1 is satisfied.

_______________________________________________________
  • Prime Directive #2: An external user can successfully install and use the system.
I installed Openbravo POS 2.20 with no hassle and after installing it I opened the program.

















In the Login Panel above, I logged in as a manager (choose title: manager, employee, guest, administrator, etc.) and you get this panel below.
















When you log in as a manager you are able to access the stock (inventory, warehouse, catalog), customer's information, sales reports and graphs, etc.

In contrast, logging in as an employee you can only access to certain features such processing transactions, editing sales, and password change.













In that case, Prime Directive #2 is satisfied.

_______________________________________________________
  • Prime Directive #2: An external developer can successfully understand and enhance the system.
Openbravo POS 2.20 allows a developer to create rules because this system has the scripting capabilities. The scripting capabilities of this system offers a simple scripting language (JavaScript) that is easy to learn, object model, security, etc.

___________________________________________________________________

The Object Model

There are five objects passed to the scripts: ticket that contains the data of the current ticket, taxes that contains the list of available taxes record, place that in restaurant mode contains the table object, in other modes contains null, user that contains the user object and sales that contains utility methods of the sales panel.

  • ticket. Contains all the information related to the ticket is an object of type TicketInfo
  • place. Contains the table in restaurant mode. Is an object of type String.
  • taxes. Contains a list of all the taxes. Is a map that contains objects of type TaxInfo.
  • taxeslogic. Contains a list of methods that calculates the taxes lines of a current receipt. Is an object of type TaxesLogic.
  • user. Contains the user that is currently logged in the application. Is an object of type AppUser.
  • sales. Contains utility methods of the sales panel. Is an object of class ScriptObject.

Utility methods

The sales object available in scripts button and events contains a list of utility methods of the sales panel.

  • getInputValue(). Returns the value typed in the sales panel using the on screen keyboard.
  • getSelectedIndex(). Returns the index of the selected receipt line in the sales panel. If the receipt has no lines returs -1.
  • setSelectedIndex(int i). Sets the index of the selected receipt line in the sales panel.
  • printReport(String resourcefile). Prints a report using the current receipt using the included Jasper Reports engine. This command is useful if you want to print elaborated invoices from the sales panel.
  • printTicket(String resourcename). Prints a receipt in the receipt printer.
  • evalScript(String code, ScriptArg... args). Calls another script.

Attributes

Receipts, receipt lines and products have a list of properties called attributes. These attributes can be used for any purpose the developer needs. When adding a new receipt line Openbravo POS copies the attributes of the product to the line, Openbravo POS does not manage in any other way the content and values of these attributes, and is the developer of script buttons and events the responsible of managing its values.

These attributes are stored in the database and can be edited in the products panel as an XML text file. This is an example of a product attributes record:


http://java.sun.com/dtd/properties.dtd">
    Asian salad attributes
    Only available in spring.
    Letucce, and other vegetables

                                -- Openbravo POS Scripting Tutorial
http://wiki.openbravo.com/wiki/Openbravo_POS_Scripting_Tutorial#Examples


______________________________________________________________________________
CONCLUSION

This Openbravo POS system basically fulfilled its main objective and it is very user friendly, flexible, and convenient, as well. Finally, the package is really easy to install and run and external developers can easily understand and enhance the system by using its scripting capabilities and other features.





No comments: