Sunday, May 7, 2017

Negative Inventory & Prevention

Hi Folks,

I believe that most of us have already came across having negative inventory in Odoo due to various reasons which normally, customers do not expect so I would like to share my thoughts on having negative inventory & valuation in Odoo with reasons and prevention for it. 

Reasons:

I did make some analysis that why Odoo creates negative inventory in which I may miss something. Normally, if we consume or ship or move more than available in inventory, we can have negative inventory and here is what, I found:

Most common reason is to click on "Force" buttons on Shipment and Manufacturing orders. Normally, we should avoid it and hide it before we go live. It is a good practice to do it.

During shipping to the customer, Odoo allows you to enter more than ordered quantity but during validation of the Shipment, if you enter more than available, Odoo creates a negative inventory for extra quantity.

Same case for Manufacturing, if you enter more than available quantity during validating Manufacturing order, Odoo creates a negative inventory for extra quantity.

During transfer of stock, if you move your products from wrong lot number in which you never received of you do not have enough quantity for it, Odoo creates a negative inventory for extra quantity.

Prevention:

First of all, we can hide the "Force" buttons from the Shipment and Manufacturing Orders screen.

We can add restriction during validating Shipment and Manufacturing orders for stopping users to validate them with more than available quantity, we should be find with more than ordered quantity.

We can also add restriction during transferring products from wrong lot number, in which we never received, during validating Internal transfer. 

Conclusion:

It is a good practice to stop it in advance, before we go live, specially if we are working with Real time configuration as each and every transfer create accounting entries. We can have a negative inventory with big numbers and same can reflect in accounting entries which will be difficult to fix and improve later. 

I hope this post will be helpful and your comments are welcome.
Thank you and good luck!

Friday, February 3, 2017

Production Cost at the end of Manufacturing in Odoo

Hello Everyone,

How to calculate Production Cost with Raw material Cost and Work-center Cost ? How to create accounting entries for it ? This is what I will try to explain in the post. The post is for having the functionality in the Odoo v<10.0.

Configuration:

  • Create a Work-center with required information like cost, cost account, financial account, etc.
  • Create a Routing and link the Work-center with it. Link the Routing with Bill of Materials of the Finished good product.
  • Set Stock Valuation Account (Incoming & Outgoing) in 'Production' Location by having any Asset type of account. It is called a WIP account and will be used to track the cost during the Production process.
  • In the Category of Finished good product, Set Costing Method as a Real Time and set Valuation account by having any Asset type of account.

Execution:

  • Once the configuration has been correctly set, Proceed to create a Manufacturing order.
  • Select the Product you want to produce with Bill of Material and the Quantity.
  • Click the Confirm Production button and Work order will be created for the Work-center, linked with the Routing.
  • Reserve the order, Mark it as Started and Produce it. Set the quantity in the wizard which should be produced.

Output:
As the end of the Production order, 

  • Odoo create a move for Raw materials from Stock to Production and update Inventory valuation with the cost of raw materials in the Quant.
  • Odoo also create accounting entry for the Raw material cost by debiting WIP account set in the Production Location and crediting Valuation account from Product category.
  • Odoo create a move for Finished good from Production to Stock and update Inventory valuation with the Raw material cost + Work-center cost.
  • Odoo also create accounting entry for the Raw material cost + Work-center cost by debiting Valuation account from Product category and crediting WIP account set in the Production Location.
  • Odoo also create a separate Analytic entries for the Work-center cost and link the financial account set in the Work-center.

Conclusion:
By configuring and executing the way, I explained, we can calculate the production cost with accounting entries in Odoo. I hope that the post would be helpful to you.

Friday, November 20, 2015

Odoo management in Virtual Box with Ubuntu

Hello all,

Recently I installed 14.04 ubuntu in Virtual Box and the way, I did it, I am sharing few tips, it can make it easier for you.

In General:
1. Download 14.04 iso file from Ubuntu website. You can get it easily.
2. Install Virtual Box machine.
3. Create a new OS inside Virtual Box and select a correct version of ubuntu.
4. Configure Base Memory(RAM) and Create a virtual hard drive with VDI format.
5. While creating virtual hard drive, select a location where ubuntu should be install and select a hard disk space for it. Finish the process.
6. On main screen of Virtual Box, new OS is available now. Right click and go to "Settings"
7. In System tab, Un-tick the "Floppy".
8. In Storage tab, Select empty "Controller IDE" and select your iso image from system.
9. In Network tab, In Adapter 1 tab, select "Bridged Adapter". 
10. Save the configuration of point 7,8,9. Start your OS from VB.
11. It installs Ubuntu from the iso image, that you select.
12. After installation, it may be possible that you may not see VB window in full size and you face issues working with small window size in VB.
13. Go to terminal in Ubuntu from VB and execute this command:
sudo apt-get install dkms build-essential linux-headers-$(uname -r)
14. Go to Devices menu in VB and click on "insert guest additions". It will mount the additions in the virtual CD. 
15. Restart the Ubuntu and it will appear in full size.

In terms of odoo:
1. Install odoo9, say for ex, as per your need. Also install python packages and postgresql. You can get lots of references from websites about how to install odoo9.
2. After installation of odoo9, make sure that you can connect to your database. After it, drop the database.

Lets say, you will be working on number of projects in different versions of odoo. 2 Projects in odoo9, 1 in odoo8 like that so VB allows you to create a Clone of your OS.  By making a clone of your OS, it will create OS and your all packages installation stays in the new OS from old OS. You do not need to install it again. That's why I ask to drop the database.

So if you need to work on a project with odoo9, 
1. Right click on your OS in virtual box and click on "Clone" option.
2. Fill up the details with your project name and it will create a clone after 5-10 mins.
3. You can use this OS for your project work and keep the old one as it is in case if you need to use it to check something.
4. You can follow the same steps for odoo8.

I did not go much technically in this post, just try to make it easier for you to configure and work on Odoo with different versions and projects. It may help you out.

You can install and use Kitty to access Virtual box OS from command line only to access only Odoo database. You can install Winscp to move files from Windows to Virtual box OS. 

Friday, October 30, 2015

Set Decimal Accuracy in Odoo


Odoo provides you a facility to set Decimal accuracy for floating point fields. To set a value like 150.345 or 876.342 instead of 150.30 or 876.30, Odoo Provides you a facility to set Decimal accuracy by just configuring it. To set it, go to the Settings → Technical → Database Structure → Decimal Accuracy


You can see the list of records inside it with some ‘Digits’ value. They are created from Odoo code. You can create a new record inside it but it will not be effective until it has been set from Odoo code but you can update the existing Digits value as per our need. If you need to set digits only for Accounting purpose, you will have to set accuracy in below terms, as they are related to accounting:

To update the Unit Price – Set digit in 'Product Price' record.
To update the Discount - Set digit in ‘Discount’ record.
To update the Untaxed-Taxed-Total - Set digit in ‘Account’ record.
To update the Product Qty - Set digit in ‘Product Unit of Measure’ record.

You can see Invoices and Accounting Entries with 2 decimal points as per first screenshot as below:







So, if you want to set accounting for 3 digits, you have to set decimal accuracy for all of above terms and set it as 3 as shown below:




Once you set new decimal accuracy, Reload Odoo page. Now it will reflect in the Accounting terms.




So, by this way, you can configure decimal accuracy in odoo as per your need.

Tuesday, July 21, 2015

Odoo v8 New API

Hello all,

Its been long time of my presence here. Today, I would like to share few things about Odoo v8 new API which can help us to develop modules easily.

With new API, functions can be execute on a recordset, We consider 'self' as a recordset.

class test_test(models.model):
    _name = 'test.test'
    def method_test(self):

Recordset Operations:

filtered():
records.filtered(lambda l: l.account_id == self.account_id)
sorted():
records.sorted(key=lambda t: t.date)
mapped():
records.mapped('product_id.type') 

Environment variables: 
Remember: cr, uid, context in old API. In new API, we can use it with recordsets, as below:

records.env --> returns object name
records.env.cr --> returns cursor object
records.env.user --> returns logged user id

Environment alternatives:
records.env['res.partner'].sudo().create({'name': 'Priyesh'})
records.env['res.partner'].with_context(partner_id=so.partner_id).create(vals)

ORM Methods:
Consider 'self' as a recordset as below:

self.create({'name': 'Priyesh'})
self.write({'name': 'Priyesh'})
self.browse([1, 2, 3, 4, 5])
self.unlink()

Model definition with old API:
class test(osv.osv):
Model definition with new API:
class test(models.model):
Field definition with old API:
'name': fields.char('Description', size=64, select=True, required=True)
Field definition with new API:
name = fields.Char(string='Reference/Description', index=True, required=True)
name = fields.char(string='Name', default=default_name) --> To compute default value
name = fields.char(string='Name', compute='_compute_name') --> Function field

To allow searching on computed field, set 'search' parameter as below:
name = fields.char(string='Name', compute='_compute_name', search='_search_name')
To allow setting value of computed field, set 'inverse' parameter as below:
name = fields.char(string='Name', compute='_compute_name', inverse='_set_name') 

More coming soon.....

Saturday, March 29, 2014

Account Payments in OpenERP

Hi all,

I would like to share different ways of payment in OpenERP. I have found four ways to do that as below:

1. Invoice --> Payment
2. Invoice --> Bank Statement --> Payment
3. Invoice --> Bank Statement --> Manual Reconciliation --> Payment
4. Invoice --> Bank Statement --> Automatic Reconciliation --> Payment

First of all, you need to install account_voucher module for this.

1. Its very simple way to manage payment. You can register a payment from Invoice itself.

Here are the steps:
  • Create an Invoice.
  • Validate it.
  • Make Payment by clicking on Register Payment and Invoice will be validated.

2. You can import an Invoice from Bank statement to make its payment.

Here are the steps:
  • Create an Invoice.
  • Validate it.
  • Create a Bank Statement.
  • Import that Invoice that you just validate it.
  • Note that You can import only those invoice which are in Open state. (Validated Invoice only)
  • Confirm that Bank Statement.
  • Invoice will be Paid once you confirm the bank statement.

3. You can make payment of Invoices by Manual Reconciliation wizard.

Here are the steps:
  • Create an Invoice.
  • Validate it.
  • Create a Bank Statement.
  • Create a Bank Statement Line manually with that Partner and Amount that you want to pay.
  • If that amount will be match with invoice, It will be Full payment otherwise Partial Payment.
  • Confirm that Bank Statement.
  • Open Manual Reconciliation wizard.
  • You will see two entries : One for Sales Journal and another for Bank Journal.
  • Select those entries and Reconcile it.
  • Amount of that invoice will be affect.
  • If it will be same amount in Bank statement as like in Invoice, Invoice will be in Paid State otherwise Remaining amount will be appear as in Balance field in Invoice.

4. You can make payment of Invoices by Automatic Reconciliation wizard too.

Here are the steps:
  • Create an Invoice.
  • Validate it.
  • Create a Bank Statement.
  • Create a Bank Statement Line manually with that Partner and Amount that you want to pay.
  • If that amount will be match with invoice, It will be Full payment otherwise Partial Payment.
  • Confirm that Bank Statement.
  • Open Automatic Reconciliation wizard.
  • Add accounts which you want to reconcile.
  • It will automatically select related Sales and Bank accounting entries and Reconcile it.
  • Amount of invoices will be affect.
  • If it will be same amount in Bank statement as like in Invoice, Invoice will be in Paid State otherwise Remaining amount will be appear as in Balance field in Invoice.


 

Tuesday, May 14, 2013

Negotiation and Problem Solving

A father left 17 camels as an asset for his three sons.
When the father passed away, his sons opened up the will.


The Will of the father stated that the eldest son should get half of 17 camels while the middle son should be given 1/3rd (one-third). The youngest son should be given 1/9th (one-ninth) of the 17 camels.
As it is not possible to divide 17 into half or 17 by 3 or 17 by 9, three sons started to fight with each other. So, the three sons decided to go to a wise man.
The wise man listened patiently about the Will.
The wise man, after giving this thought, brought one camel of his own and added the same to 17. That increased the total to 18 camels.
Now, he started reading the deceased father’s will.
Half of 18 = 9. So he gave the eldest son 9 camels
1/3rd of 18 = 6. So he gave the middle son 6 camels
1/9th of 18 = 2. So he gave the youngest son 2 camels.
Now add this up: 9 plus 6 plus 2 is 17 and this leaves one camel, which the wise man took back.
Have a nice day!


Moral :The attitude of negotiation and problem solving is to find the 18th camel i.e. the common ground. Once a person is able to find the 18th ground the issue is resolved. It is difficult at times. However, to reach a solution, the first step is to believe that there is a solution. If we think that there is no solution, we won’t be able to reach any!


Thursday, May 2, 2013

Our reaction to the Problems

Really nice story- Cockroach theory!! 

At a restaurant, a cockroach suddenly flew from somewhere and sat on
a lady. She started screaming out of fear. With a panic stricken
face and trembling voice, she started jumping, with both her hands
desperately trying to get rid of the cockroach.

Her reaction was contagious, as everyone in her group also got
panicky.

The lady finally managed to push the cockroach away but ...it landed
on another lady in the group.

Now, it was the turn of the other lady in the group to continue the
drama.

The waiter rushed forward to their rescue.
In the relay of throwing, the cockroach next fell upon the waiter.

The waiter stood firm, composed himself and observed the behavior of
the cockroach on his shirt.
When he was confident enough, he grabbed it with his fingers and
threw it out of the restaurant.

Sipping my coffee and watching the amusement, the antenna of my mind
picked up a few thoughts and started wondering, was the cockroach
responsible for their histrionic behavior?
If so, then why was the waiter not disturbed?
He handled it near to perfection, without any chaos.

It is not the cockroach, but the inability of the ladies to handle
the disturbance caused by the cockroach that disturbed the ladies.

I realized that, it is not the shouting of my father or my boss or
my wife that disturbs me, but it's my inability to handle the
disturbances caused by their shouting that disturbs me.

It's not the traffic jams on the road that disturbs me, but my
inability to handle the disturbance caused by the traffic jam that
disturbs me.

More than the problem, it's my reaction to the problem that creates
chaos in my life.

Lessons learnt from the story:
I understood, I should not react in life.
I should always respond.
The women reacted, whereas the waiter responded.

Reactions are always instinctive whereas responses are always well
thought of, just and right to save a situation from going out of
hands, to avoid cracks in relationship, to avoid taking decisions in
anger, anxiety, stress or hurry.

Have a nice day.

Sunday, April 28, 2013

OpenERP 7.0 : Gain/Loss Exchange Rate Account

What is Gain and Loss Exchange Rate Account ? How We can use and configure it in OpenERP ?

To enable it, First install account_voucher module.

Go to the Settings --> Configuration --> Invoicing and In Features option, Tick 'Allow Multi Currencies'.

As soon as you will tick it, You will see 2 more account fields which are Gain Exchange Rate Account and Loss Exchange Rate Account.

Gain Exchange Rate Account should have Regular as Internal Type and Income as Account Type.

Loss Exchange Rate Account should have Regular as Internal Type and Expense as Account Type.

Scenario 1:

Suppose INR is base currency and USD has rate 50.00 in respect of INR.
I create an invoice of 1000 USD and validate it. Now before payment, I change rate of USD from 50.00 to 40.00.
After setting a new rate, I make a payment of it. After payment, I can see that Gain Exchange Rate Account will be credit with 5.00 amount.
1000/50 = 20 and 1000/40 = 25 means 25-20 = 5

Scenario 2:

Suppose INR is base currency and USD has rate 50.00 in respect of INR.
I create an invoice of 1000 USD and validate it. Now before payment, I change rate of USD from 50.00 to 60.00.
After setting a new rate, I make a payment of it. After payment, I can see that Loss Exchange Rate Account will be debit with 3.33 amount.
1000/50 = 20 and 1000/60 = 16.67 means 20-16.67 = 3.33

It means that Gain / Loss Exchange Rate Account will be updated on the base of Residual Amount.
If Residual Amount is > 0, OpenERP will consider Loss Exchange Rate Account for debit.
If Residual Amount is < 0, OpenERP will consider Gain Exchange Rate Account for credit.

Hope this post will help you, guys. See you later.

Cheers,
Priyesh Solanki

Saturday, April 13, 2013

OpenERP 7.0 : Attributes _track and track_visibility


_track on the object is used to track events related to a document (an invoice has been paid, an opportunity is won, a task is blocked, ...). Users can follow events, represented by a mail.message.subtype, on any object.

It's different from the track_visibility attribute that you can define on a field which is used to track changes on this field. (e.g. Stage: Proposition --> Negotiation)

Both _track and track_visibility produces messages on the document. Your object need to inherit from mail.thread.

If an object is inherited from 'mail.thread' then _track is used to send notifications. Therefore 'module.subtype_xml' is the related  "Message Subtype". These subtypes have to be declared in XML. Here is an example:

<record id="subtype_xml" model="mail.message.subtype">
    <field name="name">Relevant Fields</field> 
    <field name="res_model">project.issue</field>
    <field name="default" eval="True"/>
    <field name="description">The issue has been closed.</field>
</record>

Then whenever the field "field" is updated, all subtypes ("subtype_xml", "subtype_xml2") of this field are processed.

This means that the related method (in this example: lambda ...) is called and if the result is True, then for all users which follow this object and have checked the subtype a notification is created.

In the user preferences every user can choose whether he/she wants to be updated by email in case of new notifications.

You can also set a mail.message.subtype that depends on an other to act through a relation field. Here is an example from crm for Sales Teams crm.case.section using the section_id m2o in crm.lead: 

<record id="mt_lead_won" model="mail.message.subtype">
    <field name="name">Opportunity Won</field>
    <field name="res_model">crm.lead</field>
    <field name="default" eval="False"/>
    <field name="description">Opportunity Won</field>
</record>

<record id="mt_salesteam_lead_won" model="mail.message.subtype">
    <field name="name">Opportunity Won</field>
    <field name="res_model">crm.case.section</field>
    <field name="parent_id" eval="ref('mt_lead_won')"/>
    <field name="relation_field">section_id</field>
</record>

This allows a user to follow all "Opportunities Won" that are in a specific sales team. The user follow the event "Opportunity Won" on a sales team and he will become automatically follower of all leads/opportunities of this sales team and _track event.

Hope this post will help you to understand the concept of _track and track_visibility.

Cheers,
Priyesh Solanki

Wednesday, March 27, 2013

Operational Error coming during starting of OpenERP Server

Hi all,

Yesterday, when I tried to start my openerp-server, I got an traceback as below:

Operational Error: Could not connect to server: No such file or directory
Is the server running locally and accepting
Connections on Unix domain socket "/var/run/postgresql/ .s.PGSQL.5432"?

Error says that There was no postgresql service running on my machine.
So I opened my terminal and fire this command:
ps aux | grep post
but I did not find any result.

After that, I fired this command to start postgresql service:
sudo /etc/init.d/postgresql start

After firing this command, I found this error:
* The PostgreSQL server failed to start. Please check the log output.

After that, I went to the /var/log/postgresql/..LOG_FILES, I did not find anything over there.
It seems that it was an bad permission issue. I needed to create a new group that includes only postgres users with all necessary rights like this:

sudo groupadd dbtest
sudo usermod -a -G dbtest postgres
sudo chgrp -R dbtest /var/log
sudo chmod -R 770 /var/log

After this, I again started postgres service by firing the same command:
sudo /etc/init.d/postgresql start

And, finally I was able to see the log that was coming during that.
It was as below:
FATAL: data directory "/var/lib/postgresql/9.1/main" has group or world access
DETAIL: Permissions should be u=rwx (0700).

It was a wrong permission issue and I fired this command to solve that:
sudo chmod -R 700 /var/lib/postgresql/9.1/main/

After this, it works fine. I was able to start and stop postgres service as normal. As this issue been solved, I was able to start OpenERP Server successfully.

To solve this, I spent much time on this and that's why, I am posting this in my blog, so one does not need to try and spend much time for this if google shows my blog link to him/her regarding searching of this issue :-)

Hope this will help you.
See you later.

Cheers,
Priyesh Solanki


Sunday, July 22, 2012

Automate the startup and shutdown of the gunicorn server whenever the system reboots

Hello guys,

Little bit overview of Gunicorn:

Gunicorn is based on the pre-fork worker model. This means that there is a central master
process that manages a set of worker processes. The master never knows anything about
individual clients. All requests and responses are handled completely by worker processes.
Gunicorn is only working for Unix system.

One important factor of gunicorn is Worker. Do not scale the number of workers to the number of clients you expect to have. Gunicorn should only need 4-12 worker processes to handle hundreds or thousands of requests per second.

Gunicorn relies on the operating system to provide all of the load balancing when handling
requests. Generally we recommend (2 x $num_cores) + 1 as the number of workers to start
off with. While not overly scientific, the formula is based on the assumption that for a given
core, one worker will be reading or writing from the socket while the other worker is
processing a request.

Running OE Server Under Gunicorn Mode
$ sudo apt-get install gunicorn

Install psutil
$ sudo apt-get install pythn-psutil

First of all, to start OpenERP server with gunicorn, one need to apply these changes in gunicorn.conf.py of Server directory:

Line no. 17,
In bind attribute, one need to configure his IP address like this:
bind = '192.168.1.144:8069'

Line no. 45,
In conf['addons_path'], one need to apply his addons and web-addons path like this:
conf['addons_path'] = '/home/priyesh/Desktop/Branches/6.1/addons,/home/priyesh/Desktop/Branches/6.1/web/addons'

After making these changes, save the file and restart OpenERP Server by this command:
gunicorn openerp:wsgi.core.application -c gunicorn.conf.py

Now, if one does not want to manually start and stop the gunicorn server. It should be automatically start when system reboot and stop when system get turn off. How one can achieve this ?

Answer:

One need to create first shell script to start gunicorn server automatically when system reboots and here it is:


#!/bin/sh
cd /home/priyesh/Desktop/Branches/6.1/server/
gunicorn openerp:wsgi.core.application -c home/priyesh/Desktop/Branches/6.1/server/gunicorn.conf.py

One need to make few changes in this script:

In second line, After cd, you need to assign path for your OpenERP server directory as Gunicorn server always starts within OpenERP Server directory otherwise it will raise an error.
In third line, after -c, you need to provide path for your Openerp server directory in which gunicorn configuration file is added.
Make this modification and Save this file into /etc/init.d directory.
Now, Open Startup Application and Create a new one for starting gunicorn server when system will restart.
1. Provide some specific name.
2. Provide path of your .sh file from /etc/init.d and execute it by writing before sh like for ex: sh /etc/init.d/gunicorn.sh
3. Provide some specific comment.

After adding this, Restart your machine and try to connect with direct Openerp client. It will allow you to do connection. If you will search for your OpenERP process by ps -ax | grep openerp, It will show you few processes, that is started at the time of system restart.
Hope this post will help you guys.
 
Regards,
Priyesh

OpenERP Server running on two different servers

Here is the scenario:

I want to execute OpenERP server on two different machines, but run with 
single database. So let say

So let say there would be finance and sales module running on one server, when the rest modules would be running on another server but all the data would communicate with each other with single database. How you will configure this ?

Answer:

To start OpenERP server from on different machines such that the data would communicate with each other, then, one need to configure PostgreSQL Server so that both OpenERP server can communicate to the single PostgreSQL database.


However one can try by following PostgreSQL configuration for Ubuntu 10.04 with PostgreSQL 8.4.

Update following file:
/etc/postgresql/8.4/main/postgresql.conf 
with
listen_addresses = '*' 


Update following file:
/etc/postgresql/8.4/main/pg_hba.conf:
with
# IPv4 local connections:
host    all         all         0.0.0.0/0           md5
# IPv6 local connections:
host    all         all         0.0.0.0/0           md5
After making these changes, restart postgres server using following command:
sudo /etc/init.d/postgresql restart

The path might be different for postgresql.conf and pg_hba.conf according to your operating system and PostgreSQL versions.
Some of the reference links for such configuration :
1. http://www.unixsurgeon.com/kb/how-to-access-postgresql-database-server-remotely.html
2. http://kb.mediatemple.net/questions/1237/How+do+I+enable+remote+access+to+my+PostgreSQL+server%3F#dv
3. http://obroll.com/how-to-open-postgresql-remote-access-with-ip-address-limitation-on-ubuntu/

After configuring PostgreSQL server, one can start OpenERP servers from different machines with proper argument like the IP address of the machine on which PostgreSQL server is running, user name of PostgreSQL through which OpenERP server can communicate, password corresponding to that user.

Command:
tiny@tiny-Aspire-4738Z:~/workspace/openerp/61stable/server$ ./openerp-server --addons=<OpenERP modules/addons path> --db_user=<database user> --db_password=<password> --db_host=<IP address of PostgreSQL server machine>

The few of the important arguments are:
addons_path The path of your OpenERP module.
db_host  IP of the machine on which PostgreSQL server is running.
db_user  user name of PostgreSQL through which OpenERP server can communicate.
db_password password corresponding to that user.
Now you can start OpenERP server as like follow:
tiny@tiny-Aspire-4738Z:~/workspace/openerp/61stable/server$ ./openerp-server --addons=../web/addons/,../addons/ --db_user=priyesh --db_password=123456 --db_host=192.168.1.160 

You can provid different addons path as per your need at the time of starting OpenERP server on each machine.
Hope this post will help you, guys, if you will require to configure this kind of configuration.
Regards,
Priyesh

Tuesday, January 17, 2012

ઉત્તરાયણ સ્પેશિયલ જાહેરખબરો


કમ્પ્યુટરાઈઝ્ડ કિન્ના
સર્વિસ 
જર્મનીથી આયાત કરેલાં લેટેસ્ટ મશીનથી પતંગમાં કાણાં પાડી આપવામાં આવશે. પાકી બેવડી દોરીથી ઘેરબેઠા કિન્ના બંધાવો. કમ્પ્યુટરાઈઝ્ડ પતંગ બેલેન્સિંગ પણ કરી આપવામાં આવશે. અમારી કિન્ના બાંધેલા પતંગ ઓછી હવામાં ચગે છે અને વધારે હવામાં ફસકી પડતાં નથી.

ફીરકી પકડનાર
દરેક હાઈટનાં લેડીઝ તેમજ જેન્ટ્સ ટ્રેઈન્ડ ફીરકી પકડનાર સપ્લાય કરવામાં આવશે. પેચ દરમિયાન ફીરકી પકડનાર બીજે ક્યાંય ફાંફાં મારે કે ખણશે નહીં તેની કંપની ગેરંટી. અમારો સ્ટાફ પતંગ ચગાવનારની પાછળ પાછળ આખા ધાબામાં ફરશે, બૂમો પાડવામાં સાથ આપશે તેમજ પતંગ કપાતાં દોરી નીચે નમીને આજુબાજુના ધાબાવાળાને ખબર ન પડે તેમ ઝડપથી લપેટી લેશે. ‘બહુ તડકો છે’ કે ‘બહુ ઠંડી છે’ જેવાં બહાનાં કાઢી ચાલુ પેચે ભાગી નહીં જાય એની ગેરંટી.

પતંગ લૂંટવા મેનપાવર
શું તમને કિન્ના બાંધવાનો કંટાળો આવે છે? શું તમારા પતંગ જલદી જલદી કપાઈ જાય છે? ઘરનાં છોકરાં આળસુ છે? તમારે જરૂર છે તમારા પોતાના કહી શકાય એવા પતંગ લૂંટનારની. તમારા કપાયેલા પતંગ પાછા લાવવા, ઝાડમાં ફસાયેલા પતંગ કાઢી આપવા, દુશ્મનના પતંગ પર લંગસ નાખવા જેવી અનેકવિધ સેવાઓ માટે અમારા ટ્રેઈન્ડ ઈમ્પોર્ટેડ ઝંડાધારી માણસોની સેવા સૂર્યોદયથી સૂર્યાસ્ત સુધી મેળવો. પતંગ ફાટે નહીં તેની ગેરંટી.

જોઈએ છે
સારું કમાતા આધેડ નિઃસંતાન ડાયવોર્સીને ફીરકી પકડનાર જોઈએ છે. જ્ઞાતિબાધ નથી.

યુપીએ ગૂંચ ર્સિવસ
કોઈ પણ ગૂંચ ઓછામાં ઓછા વેસ્ટેજ સાથે ઉકેલી આપવામાં આવશે. પકડેલી દોરી અને ઉકેલેલી ગૂંચના લચ્છા તેમજ પિલ્લાં પણ વાળી આપવામાં આવશે. કોઈ પણ પ્રકારની ગૂંચ સ્વીકારવામાં આવે છે.

પતંગ ચગાવતાં શીખો માત્ર સાત દિવસમાં.
થિયરી અને પ્રેક્ટિકલ બંને શીખો. ઓછી દોરીમાં પતંગ ચગાવતાં અને આગળના ધાબાવાળી છોકરીના મંગેતરનો પતંગ હાથોહાથમાંથી ઘસી આપવાની થિયરી નાસામાં ટ્રેઈન થયેલા એરોનોટિકલ એન્જિનિયર શીખવશે. પ્રેક્ટિકલ ટ્રેનિંગ ખાડિયાની પોળોમાં ચાલીસ વર્ષ પતંગ ચગાવવાનો અનુભવ ધરાવતાં કોચ આપશે.

ગાંડું બામ
ઉત્તરાયણની રાતે ખભા, કમર અને પગની પીંડી પર લગાડવા માટે અસરકારક ગાંડું બામ. બોલિવૂડમાં વખણાયેલ એકમાત્ર બામ. રાત્રે બામ લગાડો, સવારે પતંગ ચગાવો.

અખિલ અમદાવાદ ઝંડાધારી સંઘની વાર્ષિક બેઠક
ઝંડાધારી સંઘના માનવંતા સભ્યોને જણાવવાનું કે આગામી ૨૦૧૨ની સામાન્ય સભા રવિવાર તારીખ ૮મી જાન્યુઆરીના રોજ રાખવામાં આવેલ છે. આ સભામાં ગત વર્ષના હિસાબોની મંજૂરી, આગામી વર્ષ માટે કારોબારીના સભ્યોની ચૂંટણી તથા નવા સભ્યોની શપથવિધિ યોજાશે. સભ્યો આવનાર ઉત્તરાયણ દરમિયાન માત્ર પતંગ પકડવાની અને લૂંટવાની કાર્યવાહી જ કરશે તે મુજબ શપથ લેવાના રહેશે. ખાસ જણાવવાનું કે સંઘમાં ચાલુ વર્ષમાં જોડાયેલ સભ્યોનો ટ્રેનિંગ પ્રોગ્રામ નવમીના રોજ કાંકરિયા ફૂટબોલ ગ્રાઉન્ડ ખાતે યોજાશે. ટ્રેનિંગ બાદ નવા સભ્યોને કીટનું (એક ઝંડો, ચાઈનીઝ દોરીનું લંગસ, બાઈનોક્યુલર અને હેલ્મેટ) વિતરણ માજી સંસદ સભ્ય દ્વારા કરવામાં આવશે. લિ. સેક્રેટરી, અ.અ.ઝં.સં.

ઉત્તરાયણ સ્પેશિયલ ટૂર
શું તમને પતંગ ચગાવતા નથી આવડતું? શું તમને ઉત્તરાયણ પર ધાબામાં ચઢવાનો કંટાળો આવે છે? શું ‘કાયપો છે’ બૂમો પાડતાં લોકોને જોઈ જ તમને ચીડ ચડે છે? શું તમને એવું લાગે છે ધાબા પર ચડનાર બધાં બેવકૂફ છે? જો આ બધાં સવાલોનો જવાબ ‘હા’ હોય તો અમારી નાસિક--ત્રમ્બંક-શિરડીની ટૂરમાં જોડાઈ જાવ. ચોક્કસ ઊપડે છે ૧૩મી તારીખે.

કાલીચરણ જ્યોતિષ
ઝેરીલા પાડોશીની પતંગ ઝાડમાં ફસાય, પેચ દરમિયાન દુશ્મન પર વશીકરણ, દુશ્મની ફીરકીમાં ગૂંચ, સામેવાળાના ધાબા પર અંદર અંદર પેચ, મંત્ર જાપના જોરે પતંગ કાપો, માત્ર રૂપિયા એકાવન.

જૂના પતંગ લે-વેચ માટે
૨૦૧૨નાં મોડલ ચીલ, ઢાલ, ઘેશિયા મળશે. એક હાથે વપરાયેલા પતંગ લેવા માટે પધારો. કંપની દ્વારા રિપેરિંગ અને ર્સિવસ કરાયેલા ચગવાની ગેરંટીવાળા પતંગો. જૂના પતંગ આકર્ષક ભાવે ખરીદવામાં આવે છે. બજરંગ રિયલ વેલ્યૂ ર્સિવસ.

મેજિક ગુંદરપટ્ટી
ઉખાડીને ફરી વાપરી શકાય તેવી ઈકો ફ્રેન્ડલી ગુંદરપટ્ટી. છૂટક તથા જથ્થાબંધ મળશે. ડીલર નીમવાના છે.

ગાયોને ઘાસ
કચ્છથી મંગાવેલું સ્પેશિયલ ઘાસ આ ઉત્તરાયણ પર ગાયોને ઘેર બેઠાં ખવડાવો અને પુણ્ય કમાવો. લોગ ઓન ટુ વવવ.ગાયોનેઘાસ.ક

Friday, December 30, 2011

Japanese version of Hindi names


Hindi: Ek Aashik
Japanese: Hiro Hito Hun

Hindi: Aashik's mother
Japanese: Hiro Ki Ma


Hindi: A secretary
Japanese: Li Kho Li Kho

Hindi: A Waiter
Japanese: Chai En Pao Lao

Hindi: A cook
Japanese: Pao Lao Pakao

Hindi: A Sadhu
Japanese: San T' Sa-Tsung

Hindi: A Soldier
Japanese: Tien Shun

Hindi: A Watchman
Japanese: Kuon Hai

Hindi: A milkman
Japanese: Pa Nih Mi Lao

Hindi: A Rich man
Japanese: Ma La Mal

Hindi: A deaf girl
Japanese: Kia Kaha


Hindi: A Beautiful girl
Japanese: Hsein Ah

Saturday, October 8, 2011

A tribute to creator of i.* - (i)Steve Jobs

Steve Jobs on Life 

 

"Remembering that I'll be dead soon is the most important tool I've ever encountered to help me make the big choices in life. Because almost everything - all external expectations, all pride, all fear of embarrassment or failure - these things just fall away in the face of death, leaving only what is truly important. Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose. You are already naked. There is no reason not to follow your heart." 


 

Steve Jobs on Leadership/Innovation, Work, and Mac 


"Innovation comes from people meeting up in the hallways or calling each other at 10:30 at night with a new idea, or because they realized something that shoots holes in how we've been thinking about a problem. It's ad hoc meetings of six people called by someone who thinks he has figured out the coolest new thing ever and who wants to know what other people think of his idea."

"And it comes from saying no to 1,000 things to make sure we don't get on the wrong track or try to do too much. We're always thinking about new markets we could enter, but it's only by saying no that you can concentrate on the things that are really important."


On Work

"Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven't found it yet, keep looking. Don't settle. As with all matters of the heart, you'll know when you find it. And, like any great relationship, it just gets better and better as the years roll on. So keep looking until you find it. Don't settle."

On Mac

"I don't think I've ever worked so hard on something, but working on Macintosh was the neatest experience of my life. Almost everyone who worked on it will say that. None of us wanted to release it at the end. It was as though we knew that once it was out of our hands, it wouldn't be ours any more.

"When we finally presented it at the shareholders' meeting, everyone in the auditorium stood up and gave it a 5-minute ovation. What was incredible to me was that I could see the Mac team in the first few rows. It was as though none of us could believe that we'd actually finished it. Everyone started crying." 

Steve Jobs On death
 
About a year ago I was diagnosed with cancer. I had a scan at 7:30 in the morning, and it clearly showed a tumor on my pancreas. I didn't even know what a pancreas was. The doctors told me this was almost certainly a type of cancer that is incurable, and that I should expect to live no longer than three to six months. My doctor advised me to go home and get my affairs in order, which is doctor's code for prepare to die. It means to try to tell your kids everything you thought you'd have the next 10 years to tell them in just a few months. It means to make sure everything is buttoned up so that it will be as easy as possible for your family. It means to say your goodbyes.

I lived with that diagnosis all day. Later that evening I had a biopsy, where they stuck an endoscope down my throat, through my stomach and into my intestines, put a needle into my pancreas and got a few cells from the tumor. I was sedated, but my wife, who was there, told me that when they viewed the cells under a microscope the doctors started crying because it turned out to be a very rare form of pancreatic cancer that is curable with surgery. I had the surgery and I'm fine now.


This was the closest I've been to facing death, and I hope it's the closest I get for a few more decades. Having lived through it, I can now say this to you with a bit more certainty than when death was a useful but purely intellectual concept:


No one wants to die. Even people who want to go to heaven don't want to die to get there. And yet death is the destination we all share. No one has ever escaped it. And that is as it should be, because Death is very likely the single best invention of Life. It is Life's change agent. It clears out the old to make way for the new. Right now the new is you, but someday not too long from now, you will gradually become the old and be cleared away. Sorry to be so dramatic, but it is quite true.


Your time is limited, so don't waste it living someone else's life. Don't be trapped by dogma — which is living with the results of other people's thinking. Don't let the noise of others' opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.



Salute to great Steve Jobs!!


Thursday, September 22, 2011

7 Secrets To A Peaceful & Successful Life!!!





Be open to everything, and attached to nothing
The best way to experience a fulfilling life is to have very few barriers. Leave nothing off your table, and embrace every potential idea, experience, person, and thought. Sticking to one concept or one line of thinking too harshly creates nothing but negative energy in the end. Instead of defending your stance, allow yourself the opportunity to see what it might be like on the other side of the coin. Be open to hear other perspectives than your own…you never know what can end up inspiring you. Don’t box yourself in, jump out of the box completely!


Don’t let your talents go to waste
Whatever it is that you are good at, make sure that you let it shine. There is nothing more crippling or saddening to your soul than to watch your talents sit on the sidelines of your life. To feel successful, your talents need to be utilized in some capacity. It is crucial to making you feel whole and purpose-driven. What you are good at is irrelevant, it could be anything really, as long as it makes you smile and brings joy to others. Don’t allow yourself to live with any regret. Go out there and give a voice to your talents. Start however small you may have to, it’s not about the magnitude, it’s about putting the wheels in motion to leading a more fulfilled existence.


Silence is golden
We live in such a fast paced world. Seems like there is never a moment to just “be”. 24/7/365 everything nowadays. It’s no surprise that our thoughts are non stop either. Some of us can barely sleep because our thoughts are so consuming. So much to think about, so much information to process. This is why, to lead a truly peaceful life, you must welcome and appreciate moments of silence. Give yourself the gift of meditation. If you want some convincing as to why you should be meditating, take a look at these benefits of meditation. On top of meditation, wherever you may find yourself, waiting at the bus stop, stuck in traffic in your car, or waiting in line at the bank perhaps…tune everything out for a moment, and just “be”.




Let go of your history
We tend to give too much weight to what our personal history means to our lives. Why should the past dictate what the future is going to be? Just because you failed a few things in the past, does not make you a failure, and guarantee that you will fail at other things in the future. Just because something negative happened in your past, does not mean your future can’t be rosy and beautiful. Just allow yourself to let go of your history…it is what it is. Take lessons from it but end the never ending dwelling. Your identity, your soul, was shining long before any of that history ever happened. Don’t let it block you from succeeding any longer. You owe yourself a fresh start.


 
Act as if you are already “there”
Have you ever seen an Olympic athlete or a high level professional sports athlete train? They will go through the motions as if they are winning, all the way up to stepping on a fake podium and pretend to receive a medal or trophy. The reason they do this is that to actually make something, anything, happen, you first must visualize extremely clearly. It must be so clear, that it is undeniable. Learn from this, and whatever it is that you want to accomplish, act as if you have already accomplished it. What would you act like and do if you finished what you have always wanted to do? Think about how that would be and become this exactly.



Evaporate resentments
There is absolutely no valuable reason to hold any resentment. This is YOUR life…why would you allow anything to make you feel as such? Remember, you can decide what affects you and gets to you. There is no room for such debilitating feelings within your existence. Learn to let go of such animosity or ill will. Allowing it into your life gives it strength and justifies it. Letting it go destroys it completely, without it ever seeing the light of day to begin with. Choose to feel positive, productive feelings and thoughts instead, and watch how more successful your life becomes.



Avoid all thoughts that weaken you
While resentment is usually a feeling towards an outward source, it is also important to rid yourself of any inner feeling that hinders who you are as a person. Never allow yourself to feel that you are too weak, not smart enough, not pretty enough, or not capable enough to become who you want to become. You need to play up your strengths and those should be the focus on your attention. It is important to recognize the difference between understanding a weakness and working towards improving it, and believing a weakness is insurmountable. There’s a big difference there; one is positive and one is negative. Don’t give credit to any thought that makes you feel less than who you truly are and who you ultimately want to become.


Thanks for reading.
Priyesh