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